@solidxai/core-ui 0.1.9-beta.2 → 0.1.9-beta.20

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 (577) hide show
  1. package/dist/adapters/auth/handleLogout.d.ts +1 -1
  2. package/dist/adapters/auth/handleLogout.d.ts.map +1 -1
  3. package/dist/adapters/auth/handleLogout.js +20 -32
  4. package/dist/adapters/auth/handleLogout.js.map +1 -1
  5. package/dist/adapters/auth/handleLogout.ts +7 -14
  6. package/dist/components/auth/AuthLayout.d.ts.map +1 -1
  7. package/dist/components/auth/AuthLayout.js +2 -1
  8. package/dist/components/auth/AuthLayout.js.map +1 -1
  9. package/dist/components/auth/AuthLayout.tsx +2 -0
  10. package/dist/components/auth/ForgotPasswordThankYou.js +1 -1
  11. package/dist/components/auth/ForgotPasswordThankYou.js.map +1 -1
  12. package/dist/components/auth/ForgotPasswordThankYou.tsx +2 -2
  13. package/dist/components/auth/SolidForgotPassword.js +1 -1
  14. package/dist/components/auth/SolidForgotPassword.js.map +1 -1
  15. package/dist/components/auth/SolidForgotPassword.tsx +2 -2
  16. package/dist/components/auth/SolidInitialLoginOtp.js +8 -8
  17. package/dist/components/auth/SolidInitialLoginOtp.js.map +1 -1
  18. package/dist/components/auth/SolidInitialLoginOtp.tsx +1 -1
  19. package/dist/components/auth/SolidInitiateRegisterOtp.js +8 -8
  20. package/dist/components/auth/SolidInitiateRegisterOtp.js.map +1 -1
  21. package/dist/components/auth/SolidInitiateRegisterOtp.tsx +1 -1
  22. package/dist/components/auth/SolidLogin.js +9 -10
  23. package/dist/components/auth/SolidLogin.js.map +1 -1
  24. package/dist/components/auth/SolidLogin.tsx +3 -3
  25. package/dist/components/auth/SolidRegister.js +10 -10
  26. package/dist/components/auth/SolidRegister.js.map +1 -1
  27. package/dist/components/auth/SolidRegister.tsx +3 -3
  28. package/dist/components/common/GeneralSettings.js +1 -1
  29. package/dist/components/common/GeneralSettings.js.map +1 -1
  30. package/dist/components/common/GeneralSettings.tsx +1 -1
  31. package/dist/components/common/SettingsComponent.d.ts.map +1 -1
  32. package/dist/components/common/SettingsComponent.js +4 -1
  33. package/dist/components/common/SettingsComponent.js.map +1 -1
  34. package/dist/components/common/SettingsComponent.module.css +95 -2
  35. package/dist/components/common/SettingsComponent.tsx +4 -1
  36. package/dist/components/common/SocialMediaLogin.d.ts.map +1 -1
  37. package/dist/components/common/SocialMediaLogin.js +2 -2
  38. package/dist/components/common/SocialMediaLogin.js.map +1 -1
  39. package/dist/components/common/SocialMediaLogin.tsx +8 -4
  40. package/dist/components/common/SolidExport.d.ts.map +1 -1
  41. package/dist/components/common/SolidExport.js +1 -1
  42. package/dist/components/common/SolidExport.js.map +1 -1
  43. package/dist/components/common/SolidExport.tsx +2 -0
  44. package/dist/components/common/SolidFaviconProvider.d.ts +3 -0
  45. package/dist/components/common/SolidFaviconProvider.d.ts.map +1 -0
  46. package/dist/components/common/SolidFaviconProvider.js +102 -0
  47. package/dist/components/common/SolidFaviconProvider.js.map +1 -0
  48. package/dist/components/common/SolidFaviconProvider.tsx +55 -0
  49. package/dist/components/core/card/SolidCardView.js +1 -1
  50. package/dist/components/core/card/SolidCardView.js.map +1 -1
  51. package/dist/components/core/card/SolidCardView.tsx +1 -1
  52. package/dist/components/core/chatter/SolidChatter.d.ts.map +1 -1
  53. package/dist/components/core/chatter/SolidChatter.js +24 -11
  54. package/dist/components/core/chatter/SolidChatter.js.map +1 -1
  55. package/dist/components/core/chatter/SolidChatter.tsx +20 -6
  56. package/dist/components/core/chatter/SolidChatterHeader.d.ts.map +1 -1
  57. package/dist/components/core/chatter/SolidChatterHeader.js +1 -1
  58. package/dist/components/core/chatter/SolidChatterHeader.js.map +1 -1
  59. package/dist/components/core/chatter/SolidChatterHeader.tsx +4 -0
  60. package/dist/components/core/chatter/SolidChatterMessageBox.d.ts +1 -0
  61. package/dist/components/core/chatter/SolidChatterMessageBox.d.ts.map +1 -1
  62. package/dist/components/core/chatter/SolidChatterMessageBox.js +150 -11
  63. package/dist/components/core/chatter/SolidChatterMessageBox.js.map +1 -1
  64. package/dist/components/core/chatter/SolidChatterMessageBox.tsx +252 -11
  65. package/dist/components/core/chatter/SolidMessageComposer.d.ts.map +1 -1
  66. package/dist/components/core/chatter/SolidMessageComposer.js +3 -2
  67. package/dist/components/core/chatter/SolidMessageComposer.js.map +1 -1
  68. package/dist/components/core/chatter/SolidMessageComposer.tsx +4 -2
  69. package/dist/components/core/chatter/chatter.module.css +1 -1
  70. package/dist/components/core/common/FilterComponent.d.ts.map +1 -1
  71. package/dist/components/core/common/FilterComponent.js +5 -3
  72. package/dist/components/core/common/FilterComponent.js.map +1 -1
  73. package/dist/components/core/common/FilterComponent.tsx +6 -2
  74. package/dist/components/core/common/GroupingComponent.d.ts.map +1 -1
  75. package/dist/components/core/common/GroupingComponent.js +2 -2
  76. package/dist/components/core/common/GroupingComponent.js.map +1 -1
  77. package/dist/components/core/common/GroupingComponent.tsx +2 -0
  78. package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.d.ts.map +1 -1
  79. package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.js +1 -10
  80. package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.js.map +1 -1
  81. package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.tsx +1 -8
  82. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.d.ts.map +1 -1
  83. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.js +6 -11
  84. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.js.map +1 -1
  85. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.tsx +5 -31
  86. package/dist/components/core/common/SolidGenericImport/SolidImport.module.css +1 -1
  87. package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.d.ts.map +1 -1
  88. package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.js +2 -0
  89. package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.js.map +1 -1
  90. package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.tsx +2 -0
  91. package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
  92. package/dist/components/core/common/SolidGlobalSearchElement.js +137 -57
  93. package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
  94. package/dist/components/core/common/SolidGlobalSearchElement.tsx +92 -11
  95. package/dist/components/core/common/SolidSaveCustomFilterForm.d.ts.map +1 -1
  96. package/dist/components/core/common/SolidSaveCustomFilterForm.js +1 -1
  97. package/dist/components/core/common/SolidSaveCustomFilterForm.js.map +1 -1
  98. package/dist/components/core/common/SolidSaveCustomFilterForm.tsx +0 -1
  99. package/dist/components/core/dashboard/mappers/echartsOptionMapper.d.ts +4 -0
  100. package/dist/components/core/dashboard/mappers/echartsOptionMapper.d.ts.map +1 -0
  101. package/dist/components/core/dashboard/mappers/echartsOptionMapper.js +79 -0
  102. package/dist/components/core/dashboard/mappers/echartsOptionMapper.js.map +1 -0
  103. package/dist/components/core/dashboard/mappers/echartsOptionMapper.ts +81 -0
  104. package/dist/components/core/dashboard/widgets/DefaultDashboardBarChartWidget.d.ts +3 -0
  105. package/dist/components/core/dashboard/widgets/DefaultDashboardBarChartWidget.d.ts.map +1 -0
  106. package/dist/components/core/dashboard/widgets/DefaultDashboardBarChartWidget.js +17 -0
  107. package/dist/components/core/dashboard/widgets/DefaultDashboardBarChartWidget.js.map +1 -0
  108. package/dist/components/core/dashboard/widgets/DefaultDashboardBarChartWidget.tsx +6 -0
  109. package/dist/components/core/dashboard/widgets/DefaultDashboardChartWidget.d.ts +3 -0
  110. package/dist/components/core/dashboard/widgets/DefaultDashboardChartWidget.d.ts.map +1 -0
  111. package/dist/components/core/dashboard/widgets/DefaultDashboardChartWidget.js +41 -0
  112. package/dist/components/core/dashboard/widgets/DefaultDashboardChartWidget.js.map +1 -0
  113. package/dist/components/core/dashboard/widgets/DefaultDashboardChartWidget.tsx +56 -0
  114. package/dist/components/core/dashboard/widgets/DefaultDashboardKpiWidget.d.ts +3 -0
  115. package/dist/components/core/dashboard/widgets/DefaultDashboardKpiWidget.d.ts.map +1 -0
  116. package/dist/components/core/dashboard/widgets/DefaultDashboardKpiWidget.js +14 -0
  117. package/dist/components/core/dashboard/widgets/DefaultDashboardKpiWidget.js.map +1 -0
  118. package/dist/components/core/dashboard/widgets/DefaultDashboardKpiWidget.tsx +19 -0
  119. package/dist/components/core/dashboard/widgets/DefaultDashboardLineChartWidget.d.ts +3 -0
  120. package/dist/components/core/dashboard/widgets/DefaultDashboardLineChartWidget.d.ts.map +1 -0
  121. package/dist/components/core/dashboard/widgets/DefaultDashboardLineChartWidget.js +17 -0
  122. package/dist/components/core/dashboard/widgets/DefaultDashboardLineChartWidget.js.map +1 -0
  123. package/dist/components/core/dashboard/widgets/DefaultDashboardLineChartWidget.tsx +6 -0
  124. package/dist/components/core/dashboard/widgets/DefaultDashboardPieChartWidget.d.ts +3 -0
  125. package/dist/components/core/dashboard/widgets/DefaultDashboardPieChartWidget.d.ts.map +1 -0
  126. package/dist/components/core/dashboard/widgets/DefaultDashboardPieChartWidget.js +17 -0
  127. package/dist/components/core/dashboard/widgets/DefaultDashboardPieChartWidget.js.map +1 -0
  128. package/dist/components/core/dashboard/widgets/DefaultDashboardPieChartWidget.tsx +6 -0
  129. package/dist/components/core/dashboard/widgets/DefaultDashboardTableWidget.d.ts +3 -0
  130. package/dist/components/core/dashboard/widgets/DefaultDashboardTableWidget.d.ts.map +1 -0
  131. package/dist/components/core/dashboard/widgets/DefaultDashboardTableWidget.js +12 -0
  132. package/dist/components/core/dashboard/widgets/DefaultDashboardTableWidget.js.map +1 -0
  133. package/dist/components/core/dashboard/widgets/DefaultDashboardTableWidget.tsx +39 -0
  134. package/dist/components/core/dashboard/widgets/DefaultDashboardUnknownWidget.d.ts +3 -0
  135. package/dist/components/core/dashboard/widgets/DefaultDashboardUnknownWidget.d.ts.map +1 -0
  136. package/dist/components/core/dashboard/widgets/DefaultDashboardUnknownWidget.js +7 -0
  137. package/dist/components/core/dashboard/widgets/DefaultDashboardUnknownWidget.js.map +1 -0
  138. package/dist/components/core/dashboard/widgets/DefaultDashboardUnknownWidget.tsx +9 -0
  139. package/dist/components/core/dashboard/widgets/QueueSlaHeatmapWidget.d.ts +3 -0
  140. package/dist/components/core/dashboard/widgets/QueueSlaHeatmapWidget.d.ts.map +1 -0
  141. package/dist/components/core/dashboard/widgets/QueueSlaHeatmapWidget.js +203 -0
  142. package/dist/components/core/dashboard/widgets/QueueSlaHeatmapWidget.js.map +1 -0
  143. package/dist/components/core/dashboard/widgets/QueueSlaHeatmapWidget.tsx +251 -0
  144. package/dist/components/core/extension/solid-core/metadata/MetadataExplorerFormWidget.d.ts +16 -0
  145. package/dist/components/core/extension/solid-core/metadata/MetadataExplorerFormWidget.d.ts.map +1 -0
  146. package/dist/components/core/extension/solid-core/metadata/MetadataExplorerFormWidget.js +31 -0
  147. package/dist/components/core/extension/solid-core/metadata/MetadataExplorerFormWidget.js.map +1 -0
  148. package/dist/components/core/extension/solid-core/metadata/MetadataExplorerFormWidget.tsx +43 -0
  149. package/dist/components/core/extension/solid-core/moduleMetadata/list/ClearModulePackageRuntimeHeaderAction.d.ts +3 -0
  150. package/dist/components/core/extension/solid-core/moduleMetadata/list/ClearModulePackageRuntimeHeaderAction.d.ts.map +1 -0
  151. package/dist/components/core/extension/solid-core/moduleMetadata/list/ClearModulePackageRuntimeHeaderAction.js +141 -0
  152. package/dist/components/core/extension/solid-core/moduleMetadata/list/ClearModulePackageRuntimeHeaderAction.js.map +1 -0
  153. package/dist/components/core/extension/solid-core/moduleMetadata/list/ClearModulePackageRuntimeHeaderAction.tsx +205 -0
  154. package/dist/components/core/extension/solid-core/moduleMetadata/list/ExportModulePackageRowAction.d.ts +4 -0
  155. package/dist/components/core/extension/solid-core/moduleMetadata/list/ExportModulePackageRowAction.d.ts.map +1 -0
  156. package/dist/components/core/extension/solid-core/moduleMetadata/list/ExportModulePackageRowAction.js +112 -0
  157. package/dist/components/core/extension/solid-core/moduleMetadata/list/ExportModulePackageRowAction.js.map +1 -0
  158. package/dist/components/core/extension/solid-core/moduleMetadata/list/ExportModulePackageRowAction.tsx +146 -0
  159. package/dist/components/core/extension/solid-core/moduleMetadata/list/ModuleImportListHeaderAction.d.ts +11 -0
  160. package/dist/components/core/extension/solid-core/moduleMetadata/list/ModuleImportListHeaderAction.d.ts.map +1 -0
  161. package/dist/components/core/extension/solid-core/moduleMetadata/list/ModuleImportListHeaderAction.js +22 -0
  162. package/dist/components/core/extension/solid-core/moduleMetadata/list/ModuleImportListHeaderAction.js.map +1 -0
  163. package/dist/components/core/extension/solid-core/moduleMetadata/list/ModuleImportListHeaderAction.tsx +36 -0
  164. package/dist/components/core/extension/solid-core/moduleMetadata/list/moduleMetadataListOnLoad.d.ts +3 -0
  165. package/dist/components/core/extension/solid-core/moduleMetadata/list/moduleMetadataListOnLoad.d.ts.map +1 -0
  166. package/dist/components/core/extension/solid-core/moduleMetadata/list/moduleMetadataListOnLoad.js +133 -0
  167. package/dist/components/core/extension/solid-core/moduleMetadata/list/moduleMetadataListOnLoad.js.map +1 -0
  168. package/dist/components/core/extension/solid-core/moduleMetadata/list/moduleMetadataListOnLoad.ts +76 -0
  169. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.js +1 -1
  170. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.js.map +1 -1
  171. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.tsx +1 -1
  172. package/dist/components/core/filter/fields/SolidBooleanField.d.ts.map +1 -1
  173. package/dist/components/core/filter/fields/SolidBooleanField.js +1 -1
  174. package/dist/components/core/filter/fields/SolidBooleanField.js.map +1 -1
  175. package/dist/components/core/filter/fields/SolidBooleanField.tsx +3 -2
  176. package/dist/components/core/filter/fields/SolidDateField.d.ts.map +1 -1
  177. package/dist/components/core/filter/fields/SolidDateField.js +1 -1
  178. package/dist/components/core/filter/fields/SolidDateField.js.map +1 -1
  179. package/dist/components/core/filter/fields/SolidDateField.tsx +2 -1
  180. package/dist/components/core/filter/fields/SolidDatetimeField.d.ts.map +1 -1
  181. package/dist/components/core/filter/fields/SolidDatetimeField.js +1 -1
  182. package/dist/components/core/filter/fields/SolidDatetimeField.js.map +1 -1
  183. package/dist/components/core/filter/fields/SolidDatetimeField.tsx +3 -2
  184. package/dist/components/core/filter/fields/SolidExternalIdField.d.ts.map +1 -1
  185. package/dist/components/core/filter/fields/SolidExternalIdField.js +1 -1
  186. package/dist/components/core/filter/fields/SolidExternalIdField.js.map +1 -1
  187. package/dist/components/core/filter/fields/SolidExternalIdField.tsx +2 -1
  188. package/dist/components/core/filter/fields/SolidIdField.d.ts.map +1 -1
  189. package/dist/components/core/filter/fields/SolidIdField.js +1 -1
  190. package/dist/components/core/filter/fields/SolidIdField.js.map +1 -1
  191. package/dist/components/core/filter/fields/SolidIdField.tsx +1 -0
  192. package/dist/components/core/filter/fields/SolidIntField.d.ts.map +1 -1
  193. package/dist/components/core/filter/fields/SolidIntField.js +1 -1
  194. package/dist/components/core/filter/fields/SolidIntField.js.map +1 -1
  195. package/dist/components/core/filter/fields/SolidIntField.tsx +2 -1
  196. package/dist/components/core/filter/fields/SolidMediaMultipleField.d.ts.map +1 -1
  197. package/dist/components/core/filter/fields/SolidMediaMultipleField.js +1 -1
  198. package/dist/components/core/filter/fields/SolidMediaMultipleField.js.map +1 -1
  199. package/dist/components/core/filter/fields/SolidMediaMultipleField.tsx +2 -1
  200. package/dist/components/core/filter/fields/SolidMediaSingleField.d.ts.map +1 -1
  201. package/dist/components/core/filter/fields/SolidMediaSingleField.js +1 -1
  202. package/dist/components/core/filter/fields/SolidMediaSingleField.js.map +1 -1
  203. package/dist/components/core/filter/fields/SolidMediaSingleField.tsx +2 -1
  204. package/dist/components/core/filter/fields/SolidSelectionDynamicField.d.ts.map +1 -1
  205. package/dist/components/core/filter/fields/SolidSelectionDynamicField.js +1 -1
  206. package/dist/components/core/filter/fields/SolidSelectionDynamicField.js.map +1 -1
  207. package/dist/components/core/filter/fields/SolidSelectionDynamicField.tsx +3 -2
  208. package/dist/components/core/filter/fields/SolidSelectionStaticField.d.ts.map +1 -1
  209. package/dist/components/core/filter/fields/SolidSelectionStaticField.js +1 -1
  210. package/dist/components/core/filter/fields/SolidSelectionStaticField.js.map +1 -1
  211. package/dist/components/core/filter/fields/SolidSelectionStaticField.tsx +3 -2
  212. package/dist/components/core/filter/fields/SolidShortTextField.d.ts.map +1 -1
  213. package/dist/components/core/filter/fields/SolidShortTextField.js +1 -1
  214. package/dist/components/core/filter/fields/SolidShortTextField.js.map +1 -1
  215. package/dist/components/core/filter/fields/SolidShortTextField.tsx +2 -1
  216. package/dist/components/core/filter/fields/SolidTimeField.d.ts.map +1 -1
  217. package/dist/components/core/filter/fields/SolidTimeField.js +1 -1
  218. package/dist/components/core/filter/fields/SolidTimeField.js.map +1 -1
  219. package/dist/components/core/filter/fields/SolidTimeField.tsx +3 -2
  220. package/dist/components/core/filter/fields/SolidUuidField.d.ts.map +1 -1
  221. package/dist/components/core/filter/fields/SolidUuidField.js +1 -1
  222. package/dist/components/core/filter/fields/SolidUuidField.js.map +1 -1
  223. package/dist/components/core/filter/fields/SolidUuidField.tsx +2 -1
  224. package/dist/components/core/filter/fields/relations/SolidRelationManyToManyField.d.ts.map +1 -1
  225. package/dist/components/core/filter/fields/relations/SolidRelationManyToManyField.js +1 -1
  226. package/dist/components/core/filter/fields/relations/SolidRelationManyToManyField.js.map +1 -1
  227. package/dist/components/core/filter/fields/relations/SolidRelationManyToManyField.tsx +3 -2
  228. package/dist/components/core/filter/fields/relations/SolidRelationManyToOneField.d.ts.map +1 -1
  229. package/dist/components/core/filter/fields/relations/SolidRelationManyToOneField.js +1 -1
  230. package/dist/components/core/filter/fields/relations/SolidRelationManyToOneField.js.map +1 -1
  231. package/dist/components/core/filter/fields/relations/SolidRelationManyToOneField.tsx +3 -2
  232. package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.d.ts.map +1 -1
  233. package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.js +1 -1
  234. package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.js.map +1 -1
  235. package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.tsx +3 -2
  236. package/dist/components/core/form/SolidFormActionHeader.d.ts.map +1 -1
  237. package/dist/components/core/form/SolidFormActionHeader.js +1 -0
  238. package/dist/components/core/form/SolidFormActionHeader.js.map +1 -1
  239. package/dist/components/core/form/SolidFormActionHeader.tsx +2 -1
  240. package/dist/components/core/form/SolidFormFooter.d.ts.map +1 -1
  241. package/dist/components/core/form/SolidFormFooter.js +16 -9
  242. package/dist/components/core/form/SolidFormFooter.js.map +1 -1
  243. package/dist/components/core/form/SolidFormFooter.tsx +16 -8
  244. package/dist/components/core/form/SolidFormView.d.ts.map +1 -1
  245. package/dist/components/core/form/SolidFormView.js +12 -7
  246. package/dist/components/core/form/SolidFormView.js.map +1 -1
  247. package/dist/components/core/form/SolidFormView.tsx +11 -5
  248. package/dist/components/core/form/SolidFormViewContextMenuHeaderButton.d.ts.map +1 -1
  249. package/dist/components/core/form/SolidFormViewContextMenuHeaderButton.js +12 -3
  250. package/dist/components/core/form/SolidFormViewContextMenuHeaderButton.js.map +1 -1
  251. package/dist/components/core/form/SolidFormViewContextMenuHeaderButton.tsx +21 -16
  252. package/dist/components/core/form/SolidFormViewNormalHeaderButton.d.ts.map +1 -1
  253. package/dist/components/core/form/SolidFormViewNormalHeaderButton.js +15 -5
  254. package/dist/components/core/form/SolidFormViewNormalHeaderButton.js.map +1 -1
  255. package/dist/components/core/form/SolidFormViewNormalHeaderButton.tsx +21 -9
  256. package/dist/components/core/form/field-quality-check-fixes.md +201 -0
  257. package/dist/components/core/form/fields/SolidBooleanField.d.ts.map +1 -1
  258. package/dist/components/core/form/fields/SolidBooleanField.js +10 -1
  259. package/dist/components/core/form/fields/SolidBooleanField.js.map +1 -1
  260. package/dist/components/core/form/fields/SolidBooleanField.tsx +13 -1
  261. package/dist/components/core/form/fields/SolidDecimalField.d.ts.map +1 -1
  262. package/dist/components/core/form/fields/SolidDecimalField.js +7 -1
  263. package/dist/components/core/form/fields/SolidDecimalField.js.map +1 -1
  264. package/dist/components/core/form/fields/SolidDecimalField.tsx +10 -1
  265. package/dist/components/core/form/fields/SolidIntegerField.d.ts.map +1 -1
  266. package/dist/components/core/form/fields/SolidIntegerField.js +14 -2
  267. package/dist/components/core/form/fields/SolidIntegerField.js.map +1 -1
  268. package/dist/components/core/form/fields/SolidIntegerField.tsx +20 -2
  269. package/dist/components/core/form/fields/SolidJsonField.d.ts.map +1 -1
  270. package/dist/components/core/form/fields/SolidJsonField.js +9 -1
  271. package/dist/components/core/form/fields/SolidJsonField.js.map +1 -1
  272. package/dist/components/core/form/fields/SolidJsonField.tsx +12 -1
  273. package/dist/components/core/form/fields/SolidLongTextField.d.ts +0 -1
  274. package/dist/components/core/form/fields/SolidLongTextField.d.ts.map +1 -1
  275. package/dist/components/core/form/fields/SolidLongTextField.js +16 -48
  276. package/dist/components/core/form/fields/SolidLongTextField.js.map +1 -1
  277. package/dist/components/core/form/fields/SolidLongTextField.tsx +22 -88
  278. package/dist/components/core/form/fields/SolidMediaMultipleField.d.ts.map +1 -1
  279. package/dist/components/core/form/fields/SolidMediaMultipleField.js +15 -2
  280. package/dist/components/core/form/fields/SolidMediaMultipleField.js.map +1 -1
  281. package/dist/components/core/form/fields/SolidMediaMultipleField.tsx +20 -4
  282. package/dist/components/core/form/fields/SolidMediaSingleField.d.ts.map +1 -1
  283. package/dist/components/core/form/fields/SolidMediaSingleField.js +21 -3
  284. package/dist/components/core/form/fields/SolidMediaSingleField.js.map +1 -1
  285. package/dist/components/core/form/fields/SolidMediaSingleField.tsx +30 -3
  286. package/dist/components/core/form/fields/SolidPasswordField.d.ts.map +1 -1
  287. package/dist/components/core/form/fields/SolidPasswordField.js +2 -1
  288. package/dist/components/core/form/fields/SolidPasswordField.js.map +1 -1
  289. package/dist/components/core/form/fields/SolidPasswordField.tsx +13 -1
  290. package/dist/components/core/form/fields/SolidRichTextField.d.ts.map +1 -1
  291. package/dist/components/core/form/fields/SolidRichTextField.js +9 -1
  292. package/dist/components/core/form/fields/SolidRichTextField.js.map +1 -1
  293. package/dist/components/core/form/fields/SolidRichTextField.tsx +12 -1
  294. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.d.ts +12 -0
  295. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.d.ts.map +1 -0
  296. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.js +168 -0
  297. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.js.map +1 -0
  298. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.tsx +241 -0
  299. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.d.ts.map +1 -1
  300. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js +17 -15
  301. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js.map +1 -1
  302. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.tsx +10 -2
  303. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.d.ts.map +1 -1
  304. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js +14 -14
  305. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js.map +1 -1
  306. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.tsx +19 -9
  307. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.d.ts.map +1 -1
  308. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.js +9 -7
  309. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.js.map +1 -1
  310. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.tsx +8 -2
  311. package/dist/components/core/form/fields/relations/widgets/helpers/InlineRelationEntityDialog.js +1 -1
  312. package/dist/components/core/form/fields/relations/widgets/helpers/InlineRelationEntityDialog.js.map +1 -1
  313. package/dist/components/core/form/fields/relations/widgets/helpers/InlineRelationEntityDialog.tsx +1 -1
  314. package/dist/components/core/form/fields/widgets/SolidIconEditWidget.d.ts.map +1 -1
  315. package/dist/components/core/form/fields/widgets/SolidIconEditWidget.js +14 -3
  316. package/dist/components/core/form/fields/widgets/SolidIconEditWidget.js.map +1 -1
  317. package/dist/components/core/form/fields/widgets/SolidIconEditWidget.tsx +20 -3
  318. package/dist/components/core/kanban/SolidKanbanView.js +1 -1
  319. package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
  320. package/dist/components/core/kanban/SolidKanbanView.tsx +1 -1
  321. package/dist/components/core/list/SolidDataTable.d.ts.map +1 -1
  322. package/dist/components/core/list/SolidDataTable.js +2 -1
  323. package/dist/components/core/list/SolidDataTable.js.map +1 -1
  324. package/dist/components/core/list/SolidDataTable.tsx +8 -9
  325. package/dist/components/core/list/SolidEmptyListViewPlaceholder.d.ts.map +1 -1
  326. package/dist/components/core/list/SolidEmptyListViewPlaceholder.js +3 -0
  327. package/dist/components/core/list/SolidEmptyListViewPlaceholder.js.map +1 -1
  328. package/dist/components/core/list/SolidEmptyListViewPlaceholder.tsx +2 -0
  329. package/dist/components/core/list/SolidListView.d.ts.map +1 -1
  330. package/dist/components/core/list/SolidListView.js +180 -101
  331. package/dist/components/core/list/SolidListView.js.map +1 -1
  332. package/dist/components/core/list/SolidListView.tsx +119 -33
  333. package/dist/components/core/list/SolidListViewColumn.d.ts +3 -1
  334. package/dist/components/core/list/SolidListViewColumn.d.ts.map +1 -1
  335. package/dist/components/core/list/SolidListViewColumn.js +27 -2
  336. package/dist/components/core/list/SolidListViewColumn.js.map +1 -1
  337. package/dist/components/core/list/SolidListViewColumn.tsx +16 -3
  338. package/dist/components/core/list/SolidListViewConfigure.d.ts.map +1 -1
  339. package/dist/components/core/list/SolidListViewConfigure.js +11 -10
  340. package/dist/components/core/list/SolidListViewConfigure.js.map +1 -1
  341. package/dist/components/core/list/SolidListViewConfigure.tsx +4 -2
  342. package/dist/components/core/list/SolidListViewHeaderButton.d.ts.map +1 -1
  343. package/dist/components/core/list/SolidListViewHeaderButton.js +9 -3
  344. package/dist/components/core/list/SolidListViewHeaderButton.js.map +1 -1
  345. package/dist/components/core/list/SolidListViewHeaderButton.tsx +12 -7
  346. package/dist/components/core/list/SolidListViewHeaderContextMenuButton.d.ts.map +1 -1
  347. package/dist/components/core/list/SolidListViewHeaderContextMenuButton.js +19 -7
  348. package/dist/components/core/list/SolidListViewHeaderContextMenuButton.js.map +1 -1
  349. package/dist/components/core/list/SolidListViewHeaderContextMenuButton.tsx +19 -6
  350. package/dist/components/core/list/SolidListViewRowActionMenuItem.d.ts.map +1 -1
  351. package/dist/components/core/list/SolidListViewRowActionMenuItem.js +14 -5
  352. package/dist/components/core/list/SolidListViewRowActionMenuItem.js.map +1 -1
  353. package/dist/components/core/list/SolidListViewRowActionMenuItem.tsx +17 -6
  354. package/dist/components/core/list/SolidListViewRowActionsMenu.d.ts.map +1 -1
  355. package/dist/components/core/list/SolidListViewRowActionsMenu.js +7 -1
  356. package/dist/components/core/list/SolidListViewRowActionsMenu.js.map +1 -1
  357. package/dist/components/core/list/SolidListViewRowActionsMenu.tsx +5 -1
  358. package/dist/components/core/list/columns/SolidBooleanColumn.d.ts.map +1 -1
  359. package/dist/components/core/list/columns/SolidBooleanColumn.js +4 -6
  360. package/dist/components/core/list/columns/SolidBooleanColumn.js.map +1 -1
  361. package/dist/components/core/list/columns/SolidBooleanColumn.tsx +1 -3
  362. package/dist/components/core/list/columns/SolidMediaMultipleColumn.d.ts.map +1 -1
  363. package/dist/components/core/list/columns/SolidMediaMultipleColumn.js +4 -3
  364. package/dist/components/core/list/columns/SolidMediaMultipleColumn.js.map +1 -1
  365. package/dist/components/core/list/columns/SolidMediaMultipleColumn.tsx +4 -3
  366. package/dist/components/core/list/columns/SolidMediaSingleColumn.d.ts.map +1 -1
  367. package/dist/components/core/list/columns/SolidMediaSingleColumn.js +3 -2
  368. package/dist/components/core/list/columns/SolidMediaSingleColumn.js.map +1 -1
  369. package/dist/components/core/list/columns/SolidMediaSingleColumn.tsx +3 -2
  370. package/dist/components/core/list/columns/SolidRelationColumn.d.ts +1 -1
  371. package/dist/components/core/list/columns/SolidRelationColumn.d.ts.map +1 -1
  372. package/dist/components/core/list/columns/SolidRelationColumn.js +2 -2
  373. package/dist/components/core/list/columns/SolidRelationColumn.js.map +1 -1
  374. package/dist/components/core/list/columns/SolidRelationColumn.tsx +2 -2
  375. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.d.ts +2 -2
  376. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.d.ts.map +1 -1
  377. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.js +9 -4
  378. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.js.map +1 -1
  379. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.tsx +14 -4
  380. package/dist/components/core/list/field-quality-check-fixes.md +178 -0
  381. package/dist/components/core/list/widgets/SolidUserBlockedStatusListWidget.d.ts +3 -0
  382. package/dist/components/core/list/widgets/SolidUserBlockedStatusListWidget.d.ts.map +1 -0
  383. package/dist/components/core/list/widgets/SolidUserBlockedStatusListWidget.js +39 -0
  384. package/dist/components/core/list/widgets/SolidUserBlockedStatusListWidget.js.map +1 -0
  385. package/dist/components/core/list/widgets/SolidUserBlockedStatusListWidget.tsx +50 -0
  386. package/dist/components/core/model/CreateModel.css +48 -0
  387. package/dist/components/core/model/CreateModel.d.ts +1 -0
  388. package/dist/components/core/model/CreateModel.d.ts.map +1 -1
  389. package/dist/components/core/model/CreateModel.js +80 -128
  390. package/dist/components/core/model/CreateModel.js.map +1 -1
  391. package/dist/components/core/model/CreateModel.tsx +102 -226
  392. package/dist/components/core/model/FieldMetaData.d.ts +1 -1
  393. package/dist/components/core/model/FieldMetaData.d.ts.map +1 -1
  394. package/dist/components/core/model/FieldMetaData.js +6 -22
  395. package/dist/components/core/model/FieldMetaData.js.map +1 -1
  396. package/dist/components/core/model/FieldMetaData.tsx +16 -49
  397. package/dist/components/core/model/FieldMetaDataForm.d.ts.map +1 -1
  398. package/dist/components/core/model/FieldMetaDataForm.js +196 -222
  399. package/dist/components/core/model/FieldMetaDataForm.js.map +1 -1
  400. package/dist/components/core/model/FieldMetaDataForm.tsx +1 -73
  401. package/dist/components/core/model/ModelMetaData.d.ts.map +1 -1
  402. package/dist/components/core/model/ModelMetaData.js +12 -24
  403. package/dist/components/core/model/ModelMetaData.js.map +1 -1
  404. package/dist/components/core/model/ModelMetaData.tsx +15 -21
  405. package/dist/components/core/module/CreateModule.css +44 -0
  406. package/dist/components/core/module/CreateModule.d.ts +1 -0
  407. package/dist/components/core/module/CreateModule.d.ts.map +1 -1
  408. package/dist/components/core/module/CreateModule.js +40 -43
  409. package/dist/components/core/module/CreateModule.js.map +1 -1
  410. package/dist/components/core/module/CreateModule.tsx +243 -247
  411. package/dist/components/core/module/ModuleListViewData.d.ts.map +1 -1
  412. package/dist/components/core/module/ModuleListViewData.js +47 -7
  413. package/dist/components/core/module/ModuleListViewData.js.map +1 -1
  414. package/dist/components/core/module/ModuleListViewData.tsx +58 -0
  415. package/dist/components/core/module/ModuleMetadataExplorer.css +638 -0
  416. package/dist/components/core/module/ModuleMetadataExplorer.d.ts +15 -0
  417. package/dist/components/core/module/ModuleMetadataExplorer.d.ts.map +1 -0
  418. package/dist/components/core/module/ModuleMetadataExplorer.js +666 -0
  419. package/dist/components/core/module/ModuleMetadataExplorer.js.map +1 -0
  420. package/dist/components/core/module/ModuleMetadataExplorer.tsx +1000 -0
  421. package/dist/components/core/module/ModulePackageDialog.css +540 -0
  422. package/dist/components/core/module/ModulePackageDialog.d.ts +16 -0
  423. package/dist/components/core/module/ModulePackageDialog.d.ts.map +1 -0
  424. package/dist/components/core/module/ModulePackageDialog.js +625 -0
  425. package/dist/components/core/module/ModulePackageDialog.js.map +1 -0
  426. package/dist/components/core/module/ModulePackageDialog.tsx +906 -0
  427. package/dist/components/core/tree/SolidTreeView.js +2 -2
  428. package/dist/components/core/tree/SolidTreeView.js.map +1 -1
  429. package/dist/components/core/tree/SolidTreeView.tsx +3 -3
  430. package/dist/components/core/users/CreateUser.css +27 -2
  431. package/dist/components/core/users/CreateUser.d.ts.map +1 -1
  432. package/dist/components/core/users/CreateUser.js +52 -24
  433. package/dist/components/core/users/CreateUser.js.map +1 -1
  434. package/dist/components/core/users/CreateUser.tsx +47 -34
  435. package/dist/components/layout/AdminHeaderActions.d.ts +7 -0
  436. package/dist/components/layout/AdminHeaderActions.d.ts.map +1 -0
  437. package/dist/components/layout/AdminHeaderActions.js +77 -0
  438. package/dist/components/layout/AdminHeaderActions.js.map +1 -0
  439. package/dist/components/layout/AdminHeaderActions.tsx +155 -0
  440. package/dist/components/layout/AdminTopHeader.d.ts.map +1 -1
  441. package/dist/components/layout/AdminTopHeader.js +8 -17
  442. package/dist/components/layout/AdminTopHeader.js.map +1 -1
  443. package/dist/components/layout/AdminTopHeader.tsx +9 -64
  444. package/dist/components/layout/AppSidebar.d.ts.map +1 -1
  445. package/dist/components/layout/AppSidebar.js +2 -1
  446. package/dist/components/layout/AppSidebar.js.map +1 -1
  447. package/dist/components/layout/AppSidebar.tsx +2 -0
  448. package/dist/components/layout/user-profile-menu.d.ts.map +1 -1
  449. package/dist/components/layout/user-profile-menu.js +57 -33
  450. package/dist/components/layout/user-profile-menu.js.map +1 -1
  451. package/dist/components/layout/user-profile-menu.tsx +11 -59
  452. package/dist/components/shad-cn-ui/SolidAutocomplete.d.ts +2 -1
  453. package/dist/components/shad-cn-ui/SolidAutocomplete.d.ts.map +1 -1
  454. package/dist/components/shad-cn-ui/SolidAutocomplete.js +60 -6
  455. package/dist/components/shad-cn-ui/SolidAutocomplete.js.map +1 -1
  456. package/dist/components/shad-cn-ui/SolidAutocomplete.tsx +81 -22
  457. package/dist/components/shad-cn-ui/SolidButton.d.ts.map +1 -1
  458. package/dist/components/shad-cn-ui/SolidButton.js +10 -2
  459. package/dist/components/shad-cn-ui/SolidButton.js.map +1 -1
  460. package/dist/components/shad-cn-ui/SolidButton.tsx +10 -2
  461. package/dist/components/shad-cn-ui/SolidDatePicker.d.ts +1 -1
  462. package/dist/components/shad-cn-ui/SolidDatePicker.d.ts.map +1 -1
  463. package/dist/components/shad-cn-ui/SolidDatePicker.js +2 -2
  464. package/dist/components/shad-cn-ui/SolidDatePicker.js.map +1 -1
  465. package/dist/components/shad-cn-ui/SolidDatePicker.tsx +4 -0
  466. package/dist/components/shad-cn-ui/SolidDialog.d.ts.map +1 -1
  467. package/dist/components/shad-cn-ui/SolidDialog.js +38 -4
  468. package/dist/components/shad-cn-ui/SolidDialog.js.map +1 -1
  469. package/dist/components/shad-cn-ui/SolidDialog.tsx +47 -3
  470. package/dist/components/shad-cn-ui/SolidIcon.d.ts +2 -1
  471. package/dist/components/shad-cn-ui/SolidIcon.d.ts.map +1 -1
  472. package/dist/components/shad-cn-ui/SolidIcon.js +1 -0
  473. package/dist/components/shad-cn-ui/SolidIcon.js.map +1 -1
  474. package/dist/components/shad-cn-ui/SolidIcon.tsx +1 -0
  475. package/dist/components/shad-cn-ui/SolidPasswordInput.d.ts.map +1 -1
  476. package/dist/components/shad-cn-ui/SolidPasswordInput.js +1 -1
  477. package/dist/components/shad-cn-ui/SolidPasswordInput.js.map +1 -1
  478. package/dist/components/shad-cn-ui/SolidPasswordInput.tsx +1 -0
  479. package/dist/components/shad-cn-ui/SolidSelect.d.ts +2 -1
  480. package/dist/components/shad-cn-ui/SolidSelect.d.ts.map +1 -1
  481. package/dist/components/shad-cn-ui/SolidSelect.js +51 -1
  482. package/dist/components/shad-cn-ui/SolidSelect.js.map +1 -1
  483. package/dist/components/shad-cn-ui/SolidSelect.tsx +95 -0
  484. package/dist/helpers/buttonEnvironment.d.ts +5 -0
  485. package/dist/helpers/buttonEnvironment.d.ts.map +1 -0
  486. package/dist/helpers/buttonEnvironment.js +30 -0
  487. package/dist/helpers/buttonEnvironment.js.map +1 -0
  488. package/dist/helpers/buttonEnvironment.ts +35 -0
  489. package/dist/helpers/buttonPresentation.d.ts +24 -0
  490. package/dist/helpers/buttonPresentation.d.ts.map +1 -0
  491. package/dist/helpers/buttonPresentation.js +28 -0
  492. package/dist/helpers/buttonPresentation.js.map +1 -0
  493. package/dist/helpers/buttonPresentation.ts +53 -0
  494. package/dist/helpers/fileTypeIcon.d.ts +12 -0
  495. package/dist/helpers/fileTypeIcon.d.ts.map +1 -0
  496. package/dist/helpers/fileTypeIcon.js +37 -0
  497. package/dist/helpers/fileTypeIcon.js.map +1 -0
  498. package/dist/helpers/fileTypeIcon.tsx +65 -0
  499. package/dist/helpers/registry.d.ts.map +1 -1
  500. package/dist/helpers/registry.js +28 -10
  501. package/dist/helpers/registry.js.map +1 -1
  502. package/dist/helpers/registry.ts +31 -13
  503. package/dist/helpers/waitForBackendAvailability.d.ts +7 -0
  504. package/dist/helpers/waitForBackendAvailability.d.ts.map +1 -0
  505. package/dist/helpers/waitForBackendAvailability.js +86 -0
  506. package/dist/helpers/waitForBackendAvailability.js.map +1 -0
  507. package/dist/helpers/waitForBackendAvailability.ts +37 -0
  508. package/dist/index.d.ts +10 -9
  509. package/dist/index.d.ts.map +1 -1
  510. package/dist/index.js +7 -8
  511. package/dist/index.js.map +1 -1
  512. package/dist/index.ts +34 -13
  513. package/dist/redux/api/dashboardRuntimeApi.d.ts +34 -0
  514. package/dist/redux/api/dashboardRuntimeApi.d.ts.map +1 -0
  515. package/dist/redux/api/dashboardRuntimeApi.js +79 -0
  516. package/dist/redux/api/dashboardRuntimeApi.js.map +1 -0
  517. package/dist/redux/api/dashboardRuntimeApi.ts +75 -0
  518. package/dist/redux/api/moduleApi.d.ts +26 -1
  519. package/dist/redux/api/moduleApi.d.ts.map +1 -1
  520. package/dist/redux/api/moduleApi.js +237 -1
  521. package/dist/redux/api/moduleApi.js.map +1 -1
  522. package/dist/redux/api/moduleApi.ts +181 -1
  523. package/dist/redux/api/solidChatterMessageApi.d.ts +2 -1
  524. package/dist/redux/api/solidChatterMessageApi.d.ts.map +1 -1
  525. package/dist/redux/api/solidChatterMessageApi.js +11 -1
  526. package/dist/redux/api/solidChatterMessageApi.js.map +1 -1
  527. package/dist/redux/api/solidChatterMessageApi.ts +10 -1
  528. package/dist/redux/store/defaultStoreConfig.d.ts +57 -9
  529. package/dist/redux/store/defaultStoreConfig.d.ts.map +1 -1
  530. package/dist/redux/store/defaultStoreConfig.js +2 -6
  531. package/dist/redux/store/defaultStoreConfig.js.map +1 -1
  532. package/dist/redux/store/defaultStoreConfig.ts +2 -6
  533. package/dist/redux/store/solidEntityApiPool.d.ts +1 -0
  534. package/dist/redux/store/solidEntityApiPool.d.ts.map +1 -1
  535. package/dist/redux/store/solidEntityApiPool.js +4 -0
  536. package/dist/redux/store/solidEntityApiPool.js.map +1 -1
  537. package/dist/redux/store/solidEntityApiPool.ts +4 -0
  538. package/dist/resources/globals.css +163 -19
  539. package/dist/resources/shadcn-base.css +408 -183
  540. package/dist/resources/solid-responsive.css +235 -50
  541. package/dist/routes/AppEventListener.d.ts.map +1 -1
  542. package/dist/routes/AppEventListener.js +58 -8
  543. package/dist/routes/AppEventListener.js.map +1 -1
  544. package/dist/routes/AppEventListener.tsx +69 -8
  545. package/dist/routes/SolidRouteMetadataBoundary.d.ts +5 -0
  546. package/dist/routes/SolidRouteMetadataBoundary.d.ts.map +1 -0
  547. package/dist/routes/SolidRouteMetadataBoundary.js +72 -0
  548. package/dist/routes/SolidRouteMetadataBoundary.js.map +1 -0
  549. package/dist/routes/SolidRouteMetadataBoundary.tsx +77 -0
  550. package/dist/routes/pages/admin/core/DashboardPage.d.ts +1 -0
  551. package/dist/routes/pages/admin/core/DashboardPage.d.ts.map +1 -1
  552. package/dist/routes/pages/admin/core/DashboardPage.js +860 -5
  553. package/dist/routes/pages/admin/core/DashboardPage.js.map +1 -1
  554. package/dist/routes/pages/admin/core/DashboardPage.module.css +219 -0
  555. package/dist/routes/pages/admin/core/DashboardPage.tsx +1025 -7
  556. package/dist/routes/solidRoutes.d.ts.map +1 -1
  557. package/dist/routes/solidRoutes.js +48 -27
  558. package/dist/routes/solidRoutes.js.map +1 -1
  559. package/dist/routes/solidRoutes.tsx +48 -27
  560. package/dist/routes/types.d.ts +8 -1
  561. package/dist/routes/types.d.ts.map +1 -1
  562. package/dist/routes/types.js.map +1 -1
  563. package/dist/routes/types.ts +9 -1
  564. package/dist/types/dashboard.d.ts +16 -0
  565. package/dist/types/dashboard.d.ts.map +1 -0
  566. package/dist/types/dashboard.js +2 -0
  567. package/dist/types/dashboard.js.map +1 -0
  568. package/dist/types/dashboard.ts +23 -0
  569. package/dist/types/extension-registry.d.ts +1 -0
  570. package/dist/types/extension-registry.d.ts.map +1 -1
  571. package/dist/types/extension-registry.js +1 -0
  572. package/dist/types/extension-registry.js.map +1 -1
  573. package/dist/types/extension-registry.ts +1 -0
  574. package/dist/types/index.d.ts +3 -0
  575. package/dist/types/jsoneditor.d.ts +4 -0
  576. package/dist/types/solid-core.d.ts +1 -0
  577. package/package.json +4 -1
@@ -3,6 +3,7 @@ import { useState } from "react";
3
3
  import { EllipsisVertical, SquarePen, Trash2 } from "lucide-react";
4
4
  import { SolidPopover, SolidPopoverContent, SolidPopoverTrigger } from "../../shad-cn-ui/SolidPopover";
5
5
  import { SolidListViewRowActionMenuItem } from "./SolidListViewRowActionMenuItem";
6
+ import { isButtonVisibleInCurrentEnv } from "../../../helpers/buttonEnvironment";
6
7
  export function SolidListViewRowActionsMenu(_a) {
7
8
  var _b, _c, _d;
8
9
  var rowData = _a.rowData, hasEditInContextMenu = _a.hasEditInContextMenu, hasDeleteInContextMenu = _a.hasDeleteInContextMenu, hasCustomContextMenuButtons = _a.hasCustomContextMenuButtons, solidListViewLayout = _a.solidListViewLayout, solidListViewMetaData = _a.solidListViewMetaData, params = _a.params, handleCustomButtonClick = _a.handleCustomButtonClick, onSelectRow = _a.onSelectRow, onEdit = _a.onEdit, onDelete = _a.onDelete, contentClassName = _a.contentClassName;
@@ -13,7 +14,12 @@ export function SolidListViewRowActionsMenu(_a) {
13
14
  }
14
15
  setOpen(nextOpen);
15
16
  };
16
- var visibleCustomButtons = (_d = (_c = (_b = solidListViewLayout === null || solidListViewLayout === void 0 ? void 0 : solidListViewLayout.attrs) === null || _b === void 0 ? void 0 : _b.rowButtons) === null || _c === void 0 ? void 0 : _c.filter(function (rb) { var _a, _b; return ((_a = rb === null || rb === void 0 ? void 0 : rb.attrs) === null || _a === void 0 ? void 0 : _a.actionInContextMenu) === true && ((_b = rb === null || rb === void 0 ? void 0 : rb.attrs) === null || _b === void 0 ? void 0 : _b.visible) !== false; })) !== null && _d !== void 0 ? _d : [];
17
+ var visibleCustomButtons = (_d = (_c = (_b = solidListViewLayout === null || solidListViewLayout === void 0 ? void 0 : solidListViewLayout.attrs) === null || _b === void 0 ? void 0 : _b.rowButtons) === null || _c === void 0 ? void 0 : _c.filter(function (rb) {
18
+ var _a, _b;
19
+ return ((_a = rb === null || rb === void 0 ? void 0 : rb.attrs) === null || _a === void 0 ? void 0 : _a.actionInContextMenu) === true &&
20
+ ((_b = rb === null || rb === void 0 ? void 0 : rb.attrs) === null || _b === void 0 ? void 0 : _b.visible) !== false &&
21
+ isButtonVisibleInCurrentEnv(rb === null || rb === void 0 ? void 0 : rb.attrs);
22
+ })) !== null && _d !== void 0 ? _d : [];
17
23
  var hasAnyItems = hasEditInContextMenu || (hasDeleteInContextMenu && !params.embeded) || visibleCustomButtons.length > 0;
18
24
  if (!hasAnyItems)
19
25
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"SolidListViewRowActionsMenu.js","sourceRoot":"","sources":["../../../../src/components/core/list/SolidListViewRowActionsMenu.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useState } from \"react\";\nimport { EllipsisVertical, SquarePen, Trash2 } from \"lucide-react\";\nimport { SolidPopover, SolidPopoverContent, SolidPopoverTrigger } from \"../../shad-cn-ui/SolidPopover\";\nimport { SolidListViewRowActionMenuItem } from \"./SolidListViewRowActionMenuItem\";\n\nexport function SolidListViewRowActionsMenu({\n rowData,\n hasEditInContextMenu,\n hasDeleteInContextMenu,\n hasCustomContextMenuButtons,\n solidListViewLayout,\n solidListViewMetaData,\n params,\n handleCustomButtonClick,\n onSelectRow,\n onEdit,\n onDelete,\n contentClassName,\n}: any) {\n const [open, setOpen] = useState(false);\n\n const handleOpenChange = (nextOpen: boolean) => {\n if (nextOpen) {\n onSelectRow?.(rowData);\n }\n setOpen(nextOpen);\n };\n\n const visibleCustomButtons =\n solidListViewLayout?.attrs?.rowButtons?.filter(\n (rb: any) => rb?.attrs?.actionInContextMenu === true && rb?.attrs?.visible !== false\n ) ?? [];\n\n const hasAnyItems =\n hasEditInContextMenu || (hasDeleteInContextMenu && !params.embeded) || visibleCustomButtons.length > 0;\n\n if (!hasAnyItems) return null;\n\n return (\n <SolidPopover open={open} onOpenChange={handleOpenChange} autoCloseGroup=\"solid-list-row-actions\">\n <SolidPopoverTrigger asChild>\n <button\n type=\"button\"\n className=\"solid-row-menu-trigger\"\n data-no-row-click=\"true\"\n onClick={(event: React.MouseEvent<HTMLButtonElement>) => {\n event.stopPropagation();\n onSelectRow?.(rowData);\n }}\n aria-label=\"Open row actions\"\n >\n <EllipsisVertical size={16} />\n </button>\n </SolidPopoverTrigger>\n <SolidPopoverContent\n side=\"left\"\n align=\"center\"\n className={contentClassName}\n onClick={(event) => event.stopPropagation()}\n >\n <div className=\"solid-row-actions-menu\">\n {hasEditInContextMenu && (\n <button\n type=\"button\"\n className=\"solid-row-action-button\"\n onClick={() => {\n onEdit?.(rowData);\n setOpen(false);\n }}\n >\n <SquarePen size={14} className=\"solid-row-action-button-icon\" />\n <span className=\"solid-row-action-button-label\">Edit</span>\n </button>\n )}\n\n {hasDeleteInContextMenu && !params.embeded && (\n <button\n type=\"button\"\n className=\"solid-row-action-button solid-row-action-button-danger\"\n onClick={() => {\n onDelete?.(rowData);\n setOpen(false);\n }}\n >\n <Trash2 size={14} className=\"solid-row-action-button-icon\" />\n <span className=\"solid-row-action-button-label\">Delete</span>\n </button>\n )}\n\n {hasCustomContextMenuButtons &&\n visibleCustomButtons.map((button: any, index: number) => (\n <SolidListViewRowActionMenuItem\n key={`${index}-${rowData?.id || \"\"}`}\n button={button}\n params={params}\n rowData={rowData}\n solidListViewMetaData={solidListViewMetaData}\n handleCustomButtonClick={handleCustomButtonClick}\n onActionComplete={() => setOpen(false)}\n />\n ))}\n </div>\n </SolidPopoverContent>\n </SolidPopover>\n );\n}\n"]}
1
+ {"version":3,"file":"SolidListViewRowActionsMenu.js","sourceRoot":"","sources":["../../../../src/components/core/list/SolidListViewRowActionsMenu.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useState } from \"react\";\nimport { EllipsisVertical, SquarePen, Trash2 } from \"lucide-react\";\nimport { SolidPopover, SolidPopoverContent, SolidPopoverTrigger } from \"../../shad-cn-ui/SolidPopover\";\nimport { SolidListViewRowActionMenuItem } from \"./SolidListViewRowActionMenuItem\";\nimport { isButtonVisibleInCurrentEnv } from \"../../../helpers/buttonEnvironment\";\n\nexport function SolidListViewRowActionsMenu({\n rowData,\n hasEditInContextMenu,\n hasDeleteInContextMenu,\n hasCustomContextMenuButtons,\n solidListViewLayout,\n solidListViewMetaData,\n params,\n handleCustomButtonClick,\n onSelectRow,\n onEdit,\n onDelete,\n contentClassName,\n}: any) {\n const [open, setOpen] = useState(false);\n\n const handleOpenChange = (nextOpen: boolean) => {\n if (nextOpen) {\n onSelectRow?.(rowData);\n }\n setOpen(nextOpen);\n };\n\n const visibleCustomButtons =\n solidListViewLayout?.attrs?.rowButtons?.filter(\n (rb: any) =>\n rb?.attrs?.actionInContextMenu === true &&\n rb?.attrs?.visible !== false &&\n isButtonVisibleInCurrentEnv(rb?.attrs)\n ) ?? [];\n\n const hasAnyItems =\n hasEditInContextMenu || (hasDeleteInContextMenu && !params.embeded) || visibleCustomButtons.length > 0;\n\n if (!hasAnyItems) return null;\n\n return (\n <SolidPopover open={open} onOpenChange={handleOpenChange} autoCloseGroup=\"solid-list-row-actions\">\n <SolidPopoverTrigger asChild>\n <button\n type=\"button\"\n className=\"solid-row-menu-trigger\"\n data-no-row-click=\"true\"\n onClick={(event: React.MouseEvent<HTMLButtonElement>) => {\n event.stopPropagation();\n onSelectRow?.(rowData);\n }}\n aria-label=\"Open row actions\"\n >\n <EllipsisVertical size={16} />\n </button>\n </SolidPopoverTrigger>\n <SolidPopoverContent\n side=\"left\"\n align=\"center\"\n className={contentClassName}\n onClick={(event) => event.stopPropagation()}\n >\n <div className=\"solid-row-actions-menu\">\n {hasEditInContextMenu && (\n <button\n type=\"button\"\n className=\"solid-row-action-button\"\n onClick={() => {\n onEdit?.(rowData);\n setOpen(false);\n }}\n >\n <SquarePen size={14} className=\"solid-row-action-button-icon\" />\n <span className=\"solid-row-action-button-label\">Edit</span>\n </button>\n )}\n\n {hasDeleteInContextMenu && !params.embeded && (\n <button\n type=\"button\"\n className=\"solid-row-action-button solid-row-action-button-danger\"\n onClick={() => {\n onDelete?.(rowData);\n setOpen(false);\n }}\n >\n <Trash2 size={14} className=\"solid-row-action-button-icon\" />\n <span className=\"solid-row-action-button-label\">Delete</span>\n </button>\n )}\n\n {hasCustomContextMenuButtons &&\n visibleCustomButtons.map((button: any, index: number) => (\n <SolidListViewRowActionMenuItem\n key={`${index}-${rowData?.id || \"\"}`}\n button={button}\n params={params}\n rowData={rowData}\n solidListViewMetaData={solidListViewMetaData}\n handleCustomButtonClick={handleCustomButtonClick}\n onActionComplete={() => setOpen(false)}\n />\n ))}\n </div>\n </SolidPopoverContent>\n </SolidPopover>\n );\n}\n"]}
@@ -2,6 +2,7 @@ import React, { useState } from "react";
2
2
  import { EllipsisVertical, SquarePen, Trash2 } from "lucide-react";
3
3
  import { SolidPopover, SolidPopoverContent, SolidPopoverTrigger } from "../../shad-cn-ui/SolidPopover";
4
4
  import { SolidListViewRowActionMenuItem } from "./SolidListViewRowActionMenuItem";
5
+ import { isButtonVisibleInCurrentEnv } from "../../../helpers/buttonEnvironment";
5
6
 
6
7
  export function SolidListViewRowActionsMenu({
7
8
  rowData,
@@ -28,7 +29,10 @@ export function SolidListViewRowActionsMenu({
28
29
 
29
30
  const visibleCustomButtons =
30
31
  solidListViewLayout?.attrs?.rowButtons?.filter(
31
- (rb: any) => rb?.attrs?.actionInContextMenu === true && rb?.attrs?.visible !== false
32
+ (rb: any) =>
33
+ rb?.attrs?.actionInContextMenu === true &&
34
+ rb?.attrs?.visible !== false &&
35
+ isButtonVisibleInCurrentEnv(rb?.attrs)
32
36
  ) ?? [];
33
37
 
34
38
  const hasAnyItems =
@@ -1 +1 @@
1
- {"version":3,"file":"SolidBooleanColumn.d.ts","sourceRoot":"","sources":["../../../../../src/components/core/list/columns/SolidBooleanColumn.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AAGzE,QAAA,MAAM,kBAAkB,qDAAsD,yBAAyB,4CAqCtG,CAAC;AAEF,eAAe,kBAAkB,CAAC;AAElC,eAAO,MAAM,wBAAwB,8DAA+D,yBAAyB,QAa5H,CAAA"}
1
+ {"version":3,"file":"SolidBooleanColumn.d.ts","sourceRoot":"","sources":["../../../../../src/components/core/list/columns/SolidBooleanColumn.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AAGzE,QAAA,MAAM,kBAAkB,qDAAsD,yBAAyB,4CAqCtG,CAAC;AAEF,eAAe,kBAAkB,CAAC;AAElC,eAAO,MAAM,wBAAwB,8DAA+D,yBAAyB,QAW5H,CAAA"}
@@ -35,13 +35,11 @@ var SolidBooleanColumn = function (_a) {
35
35
  };
36
36
  export default SolidBooleanColumn;
37
37
  export var DefaultBooleanListWidget = function (_a) {
38
- var _b, _c, _d;
38
+ var _b, _c;
39
39
  var rowData = _a.rowData, solidListViewMetaData = _a.solidListViewMetaData, fieldMetadata = _a.fieldMetadata, column = _a.column;
40
- var fieldKey = (_b = column.attrs.label) !== null && _b !== void 0 ? _b : fieldMetadata.name;
41
- var trueLabel = (_c = column.attrs.trueLabel) !== null && _c !== void 0 ? _c : 'Yes';
42
- var falseLabel = (_d = column.attrs.falseLabel) !== null && _d !== void 0 ? _d : 'No';
43
- // console.log(`rendering boolean column ${fieldKey} with value ${rowData[fieldKey]}, trueLabel=${trueLabel}, falseLabel=${falseLabel}`);
44
- var value = rowData[fieldKey];
40
+ var trueLabel = (_b = column.attrs.trueLabel) !== null && _b !== void 0 ? _b : 'Yes';
41
+ var falseLabel = (_c = column.attrs.falseLabel) !== null && _c !== void 0 ? _c : 'No';
42
+ var value = rowData[fieldMetadata.name];
45
43
  if (value === true) {
46
44
  return trueLabel;
47
45
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SolidBooleanColumn.js","sourceRoot":"","sources":["../../../../../src/components/core/list/columns/SolidBooleanColumn.tsx"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAG3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE,IAAM,kBAAkB,GAAG,UAAC,EAA2E;;QAAzE,qBAAqB,2BAAA,EAAE,aAAa,mBAAA,EAAE,MAAM,YAAA;IAEtE,IAAM,MAAM,GAAG,MAAA,MAAM,CAAC,KAAK,CAAC,KAAK,mCAAI,aAAa,CAAC,WAAW,CAAC;IAG/D,OAAO,CACH,KAAC,MAAM,IAEH,KAAK,EAAE,aAAa,CAAC,IAAI,EACzB,MAAM,EAAE,MAAM;QACd,sBAAsB;QACtB,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,EAC/B,IAAI,EACA,UAAC,OAAO;YACJ,IAAI,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC;YACzC,IAAI,CAAC,UAAU,EAAE;gBACb,UAAU,GAAG,0BAA0B,CAAC;aAC3C;YACD,IAAI,aAAa,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;YACtD,IAAM,WAAW,GAA8B;gBAC3C,OAAO,SAAA;gBACP,qBAAqB,uBAAA;gBACrB,aAAa,eAAA;gBACb,MAAM,QAAA;aACT,CAAA;YACD,OAAO,CACH,4BACK,aAAa,IAAI,KAAC,aAAa,eAAK,WAAW,EAAI,GACrD,CACN,CAAA;QACL,CAAC,EAEL,iBAAiB,EAAE,oBAAa,aAAa,CAAC,WAAW,CAAE,EAC3D,KAAK,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAC5B,eAAe,EAAC,iBAAiB,IA3B5B,aAAa,CAAC,IAAI,CA4BjB,CACb,CAAC;AACN,CAAC,CAAC;AAEF,eAAe,kBAAkB,CAAC;AAElC,MAAM,CAAC,IAAM,wBAAwB,GAAG,UAAC,EAAoF;;QAAlF,OAAO,aAAA,EAAE,qBAAqB,2BAAA,EAAE,aAAa,mBAAA,EAAE,MAAM,YAAA;IAC5F,IAAM,QAAQ,GAAG,MAAA,MAAM,CAAC,KAAK,CAAC,KAAK,mCAAI,aAAa,CAAC,IAAI,CAAC;IAC1D,IAAM,SAAS,GAAG,MAAA,MAAM,CAAC,KAAK,CAAC,SAAS,mCAAI,KAAK,CAAC;IAClD,IAAM,UAAU,GAAG,MAAA,MAAM,CAAC,KAAK,CAAC,UAAU,mCAAI,IAAI,CAAC;IACnD,yIAAyI;IACzI,IAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAChC,IAAI,KAAK,KAAK,IAAI,EAAE;QAChB,OAAO,SAAS,CAAC;KACpB;IACD,IAAI,KAAK,KAAK,KAAK,EAAE;QACjB,OAAO,UAAU,CAAC;KACrB;IACD,OAAO,EAAE,CAAC;AACd,CAAC,CAAA","sourcesContent":["import { Column } from \"../SolidDataTable\";\nimport { SolidListViewColumnParams } from '../SolidListViewColumn';\nimport { SolidListFieldWidgetProps } from \"../../../../types/solid-core\";\nimport { getExtensionComponent } from \"../../../../helpers/registry\";\n\nconst SolidBooleanColumn = ({ solidListViewMetaData, fieldMetadata, column }: SolidListViewColumnParams) => {\n\n const header = column.attrs.label ?? fieldMetadata.displayName;\n\n\n return (\n <Column\n key={fieldMetadata.name}\n field={fieldMetadata.name}\n header={header}\n // className=\"text-sm\"\n sortable={column.attrs.sortable}\n body={\n (rowData) => {\n let viewWidget = column.attrs.viewWidget;\n if (!viewWidget) {\n viewWidget = 'DefaultBooleanListWidget';\n }\n let DynamicWidget = getExtensionComponent(viewWidget);\n const widgetProps: SolidListFieldWidgetProps = {\n rowData,\n solidListViewMetaData,\n fieldMetadata,\n column\n }\n return (\n <>\n {DynamicWidget && <DynamicWidget {...widgetProps} />}\n </>\n )\n }\n }\n filterPlaceholder={`Search by ${fieldMetadata.displayName}`}\n style={{ minWidth: \"12rem\" }}\n headerClassName=\"table-header-fs\"\n ></Column>\n );\n};\n\nexport default SolidBooleanColumn;\n\nexport const DefaultBooleanListWidget = ({ rowData, solidListViewMetaData, fieldMetadata, column }: SolidListFieldWidgetProps) => {\n const fieldKey = column.attrs.label ?? fieldMetadata.name;\n const trueLabel = column.attrs.trueLabel ?? 'Yes';\n const falseLabel = column.attrs.falseLabel ?? 'No';\n // console.log(`rendering boolean column ${fieldKey} with value ${rowData[fieldKey]}, trueLabel=${trueLabel}, falseLabel=${falseLabel}`);\n const value = rowData[fieldKey];\n if (value === true) {\n return trueLabel;\n }\n if (value === false) {\n return falseLabel;\n }\n return '';\n}\n"]}
1
+ {"version":3,"file":"SolidBooleanColumn.js","sourceRoot":"","sources":["../../../../../src/components/core/list/columns/SolidBooleanColumn.tsx"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAG3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE,IAAM,kBAAkB,GAAG,UAAC,EAA2E;;QAAzE,qBAAqB,2BAAA,EAAE,aAAa,mBAAA,EAAE,MAAM,YAAA;IAEtE,IAAM,MAAM,GAAG,MAAA,MAAM,CAAC,KAAK,CAAC,KAAK,mCAAI,aAAa,CAAC,WAAW,CAAC;IAG/D,OAAO,CACH,KAAC,MAAM,IAEH,KAAK,EAAE,aAAa,CAAC,IAAI,EACzB,MAAM,EAAE,MAAM;QACd,sBAAsB;QACtB,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,EAC/B,IAAI,EACA,UAAC,OAAO;YACJ,IAAI,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC;YACzC,IAAI,CAAC,UAAU,EAAE;gBACb,UAAU,GAAG,0BAA0B,CAAC;aAC3C;YACD,IAAI,aAAa,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;YACtD,IAAM,WAAW,GAA8B;gBAC3C,OAAO,SAAA;gBACP,qBAAqB,uBAAA;gBACrB,aAAa,eAAA;gBACb,MAAM,QAAA;aACT,CAAA;YACD,OAAO,CACH,4BACK,aAAa,IAAI,KAAC,aAAa,eAAK,WAAW,EAAI,GACrD,CACN,CAAA;QACL,CAAC,EAEL,iBAAiB,EAAE,oBAAa,aAAa,CAAC,WAAW,CAAE,EAC3D,KAAK,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAC5B,eAAe,EAAC,iBAAiB,IA3B5B,aAAa,CAAC,IAAI,CA4BjB,CACb,CAAC;AACN,CAAC,CAAC;AAEF,eAAe,kBAAkB,CAAC;AAElC,MAAM,CAAC,IAAM,wBAAwB,GAAG,UAAC,EAAoF;;QAAlF,OAAO,aAAA,EAAE,qBAAqB,2BAAA,EAAE,aAAa,mBAAA,EAAE,MAAM,YAAA;IAC5F,IAAM,SAAS,GAAG,MAAA,MAAM,CAAC,KAAK,CAAC,SAAS,mCAAI,KAAK,CAAC;IAClD,IAAM,UAAU,GAAG,MAAA,MAAM,CAAC,KAAK,CAAC,UAAU,mCAAI,IAAI,CAAC;IACnD,IAAM,KAAK,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAC1C,IAAI,KAAK,KAAK,IAAI,EAAE;QAChB,OAAO,SAAS,CAAC;KACpB;IACD,IAAI,KAAK,KAAK,KAAK,EAAE;QACjB,OAAO,UAAU,CAAC;KACrB;IACD,OAAO,EAAE,CAAC;AACd,CAAC,CAAA","sourcesContent":["import { Column } from \"../SolidDataTable\";\nimport { SolidListViewColumnParams } from '../SolidListViewColumn';\nimport { SolidListFieldWidgetProps } from \"../../../../types/solid-core\";\nimport { getExtensionComponent } from \"../../../../helpers/registry\";\n\nconst SolidBooleanColumn = ({ solidListViewMetaData, fieldMetadata, column }: SolidListViewColumnParams) => {\n\n const header = column.attrs.label ?? fieldMetadata.displayName;\n\n\n return (\n <Column\n key={fieldMetadata.name}\n field={fieldMetadata.name}\n header={header}\n // className=\"text-sm\"\n sortable={column.attrs.sortable}\n body={\n (rowData) => {\n let viewWidget = column.attrs.viewWidget;\n if (!viewWidget) {\n viewWidget = 'DefaultBooleanListWidget';\n }\n let DynamicWidget = getExtensionComponent(viewWidget);\n const widgetProps: SolidListFieldWidgetProps = {\n rowData,\n solidListViewMetaData,\n fieldMetadata,\n column\n }\n return (\n <>\n {DynamicWidget && <DynamicWidget {...widgetProps} />}\n </>\n )\n }\n }\n filterPlaceholder={`Search by ${fieldMetadata.displayName}`}\n style={{ minWidth: \"12rem\" }}\n headerClassName=\"table-header-fs\"\n ></Column>\n );\n};\n\nexport default SolidBooleanColumn;\n\nexport const DefaultBooleanListWidget = ({ rowData, solidListViewMetaData, fieldMetadata, column }: SolidListFieldWidgetProps) => {\n const trueLabel = column.attrs.trueLabel ?? 'Yes';\n const falseLabel = column.attrs.falseLabel ?? 'No';\n const value = rowData[fieldMetadata.name];\n if (value === true) {\n return trueLabel;\n }\n if (value === false) {\n return falseLabel;\n }\n return '';\n}\n"]}
@@ -45,11 +45,9 @@ const SolidBooleanColumn = ({ solidListViewMetaData, fieldMetadata, column }: So
45
45
  export default SolidBooleanColumn;
46
46
 
47
47
  export const DefaultBooleanListWidget = ({ rowData, solidListViewMetaData, fieldMetadata, column }: SolidListFieldWidgetProps) => {
48
- const fieldKey = column.attrs.label ?? fieldMetadata.name;
49
48
  const trueLabel = column.attrs.trueLabel ?? 'Yes';
50
49
  const falseLabel = column.attrs.falseLabel ?? 'No';
51
- // console.log(`rendering boolean column ${fieldKey} with value ${rowData[fieldKey]}, trueLabel=${trueLabel}, falseLabel=${falseLabel}`);
52
- const value = rowData[fieldKey];
50
+ const value = rowData[fieldMetadata.name];
53
51
  if (value === true) {
54
52
  return trueLabel;
55
53
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SolidMediaMultipleColumn.d.ts","sourceRoot":"","sources":["../../../../../src/components/core/list/columns/SolidMediaMultipleColumn.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,8BAA8B,EAAE,MAAM,8BAA8B,CAAC;AAqG9E,QAAA,MAAM,wBAAwB,uFAAwF,yBAAyB,4CAmC9I,CAAC;AAEF,eAAe,wBAAwB,CAAC;AAGxC,eAAO,MAAM,8BAA8B,iEAAkE,8BAA8B,mDAgJ1I,CAAC"}
1
+ {"version":3,"file":"SolidMediaMultipleColumn.d.ts","sourceRoot":"","sources":["../../../../../src/components/core/list/columns/SolidMediaMultipleColumn.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,8BAA8B,EAAE,MAAM,8BAA8B,CAAC;AAsG9E,QAAA,MAAM,wBAAwB,uFAAwF,yBAAyB,4CAmC9I,CAAC;AAEF,eAAe,wBAAwB,CAAC;AAGxC,eAAO,MAAM,8BAA8B,iEAAkE,8BAA8B,mDAgJ1I,CAAC"}
@@ -11,11 +11,12 @@ var __assign = (this && this.__assign) || function () {
11
11
  };
12
12
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
13
13
  import { useState } from 'react';
14
- import { Download, File, Volume2 } from "lucide-react";
14
+ import { Download, Volume2 } from "lucide-react";
15
15
  import { Column } from "../SolidDataTable";
16
16
  import { getExtensionComponent } from '../../../../helpers/registry';
17
17
  import { FileReaderExt } from '../../../../components/common/FileReaderExt';
18
18
  import { SolidButton, SolidDialog } from "../../../shad-cn-ui";
19
+ import { SolidFileTypeIcon } from '../../../../helpers/fileTypeIcon';
19
20
  var getCleanUrl = function (url) { return url.split("?")[0]; };
20
21
  var isImageFile = function (url) { return /\.(jpg|jpeg|png|gif|bmp|webp)$/i.test(getCleanUrl(url)); };
21
22
  var isVideoFile = function (url) { return /\.(mp4|webm|ogg)$/i.test(getCleanUrl(url)); };
@@ -60,7 +61,7 @@ var MediaPreview = function (_a) {
60
61
  return (_jsx("div", { className: "shadow-2 border-round flex align-items-center justify-content-center bg-gray-100", style: { width: 40, height: 40 }, onClick: handleClick, children: _jsx(Volume2, { size: 18, className: "text-gray-600" }) }));
61
62
  }
62
63
  }
63
- return (_jsx("div", { style: { width: 40, height: 40, display: "flex", alignItems: "center", justifyContent: "center" }, onClick: handleClick, children: _jsx(File, { size: 24, className: "text-gray-400" }) }));
64
+ return (_jsx("div", { style: { width: 40, height: 40, display: "flex", alignItems: "center", justifyContent: "center" }, onClick: handleClick, children: _jsx(SolidFileTypeIcon, { fileUrl: src, size: 24 }) }));
64
65
  };
65
66
  var SolidMediaMultipleColumn = function (_a) {
66
67
  var _b;
@@ -154,7 +155,7 @@ export var DefaultMediaMultipleListWidget = function (_a) {
154
155
  }
155
156
  }, children: ["+", fullrecord.length - 1] }), _jsx(SolidDialog, { open: isShowAllFiles, onOpenChange: setShowAllFiles, header: "Items Uploaded", style: { width: '32rem', maxWidth: '94vw' }, children: fullrecord === null || fullrecord === void 0 ? void 0 : fullrecord.map(function (file) {
156
157
  var fileId = "".concat(file.name, "-").concat(file.size);
157
- return (_jsx("div", { className: "solid-file-upload-wrapper mb-3", children: _jsxs("div", { className: "flex align-items-center gap-2", children: [_jsx(FileReaderExt, { fileDetails: file }), _jsxs("div", { className: "w-full flex flex-column gap-1", children: [_jsxs("div", { className: "flex align-items-center justify-content-between", children: [_jsx("p", { className: "font-normal w-11 text-primary m-0", style: { cursor: "pointer" }, onClick: function () { return handleFileView(file); }, children: file === null || file === void 0 ? void 0 : file.name }), _jsx(SolidButton, { type: "button", size: "small", variant: "ghost", leftIcon: _jsx(Download, { size: 14 }), onClick: function () {
158
+ return (_jsx("div", { className: "solid-file-upload-wrapper mb-3", children: _jsxs("div", { className: "flex align-items-center gap-2", children: [_jsx(FileReaderExt, { fileDetails: file }), _jsxs("div", { className: "w-full flex flex-column gap-1", children: [_jsxs("div", { className: "flex align-items-center justify-content-between", children: [_jsx("p", { className: "font-normal w-11 text-primary m-0 solid-media-column-text-wrapper", style: { cursor: "pointer" }, onClick: function () { return handleFileView(file); }, children: file === null || file === void 0 ? void 0 : file.name }), _jsx(SolidButton, { type: "button", size: "small", variant: "ghost", leftIcon: _jsx(Download, { size: 14 }), onClick: function () {
158
159
  downloadFile(file === null || file === void 0 ? void 0 : file.fileUrl, "");
159
160
  }, style: { height: 16, width: 16 } })] }), _jsx("div", { className: "text-sm", children: formatFileSize(file.size) })] })] }) }, fileId));
160
161
  }) })] })) : (_jsx("div", { style: { height: 40, width: 40 } }));
@@ -1 +1 @@
1
- {"version":3,"file":"SolidMediaMultipleColumn.js","sourceRoot":"","sources":["../../../../../src/components/core/list/columns/SolidMediaMultipleColumn.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport React, { useState } from 'react';\nimport { Download, File, Volume2 } from \"lucide-react\";\nimport { Column } from \"../SolidDataTable\";\nimport { SolidListViewColumnParams } from '../SolidListViewColumn';\nimport { SolidMediaListFieldWidgetProps } from '../../../../types/solid-core';\nimport { getExtensionComponent } from '../../../../helpers/registry';\nimport { FileReaderExt } from '../../../../components/common/FileReaderExt';\nimport { SolidButton, SolidDialog } from \"../../../shad-cn-ui\";\n\nconst getCleanUrl = (url: string) => url.split(\"?\")[0];\n\nconst isImageFile = (url: string) => /\\.(jpg|jpeg|png|gif|bmp|webp)$/i.test(getCleanUrl(url));\n\nconst isVideoFile = (url: string) => /\\.(mp4|webm|ogg)$/i.test(getCleanUrl(url));\n\nconst isAudioFile = (url: string) => /\\.(mp3|wav|ogg)$/i.test(getCleanUrl(url));\n\nconst isDocumentType = (url: string) => {\n const ext = getCleanUrl(url).split(\".\").pop()?.toLowerCase();\n return ext ? downloadOnlyExt.includes(ext) : false;\n};\n\nconst downloadOnlyExt = [\n \"txt\", \"zip\", \"rar\",\n \"doc\", \"docx\",\n \"xls\", \"xlsx\",\n \"ppt\", \"pptx\",\n \"pdf\", \"csv\"\n];\n\nconst downloadFile = (url: string, name: string = \"\") => {\n const link = document.createElement(\"a\");\n link.href = url;\n link.download = name;\n link.target = \"_blank\";\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n};\n\n\n\n// Thumbnail preview component\nconst MediaPreview = ({ src, onClick }: { src: string; onClick: (event: React.MouseEvent) => void }) => {\n const [isBroken, setIsBroken] = useState(false);\n\n const handleClick = (event: React.MouseEvent) => {\n onClick(event);\n };\n\n if (!isBroken) {\n if (isImageFile(src)) {\n return (\n <img\n src={src}\n alt=\"media\"\n className=\"shadow-2 border-round\"\n width={40}\n height={40}\n style={{ objectFit: \"cover\" }}\n onError={() => setIsBroken(true)}\n onClick={handleClick}\n />\n );\n }\n\n if (isVideoFile(src)) {\n return (\n <video\n src={src}\n width={40}\n height={40}\n className=\"shadow-2 border-round\"\n style={{ objectFit: \"cover\" }}\n onError={() => setIsBroken(true)}\n onClick={handleClick}\n muted\n />\n );\n }\n\n if (isAudioFile(src)) {\n return (\n <div\n className=\"shadow-2 border-round flex align-items-center justify-content-center bg-gray-100\"\n style={{ width: 40, height: 40 }}\n onClick={handleClick}\n >\n <Volume2 size={18} className=\"text-gray-600\" />\n </div>\n );\n }\n }\n\n return (\n <div\n style={{ width: 40, height: 40, display: \"flex\", alignItems: \"center\", justifyContent: \"center\" }}\n onClick={handleClick}\n >\n <File size={24} className=\"text-gray-400\" />\n </div>\n );\n};\n\n\nconst SolidMediaMultipleColumn = ({ solidListViewMetaData, fieldMetadata, column, setLightboxUrls, setOpenLightbox }: SolidListViewColumnParams) => {\n const header = column.attrs.label ?? fieldMetadata.displayName;\n\n return (\n <Column\n key={fieldMetadata.name}\n field={fieldMetadata.name}\n header={header}\n body={(rowData) => {\n let viewWidget = column.attrs.viewWidget;\n if (!viewWidget) {\n viewWidget = 'DefaultMediaMultipleListWidget';\n }\n let DynamicWidget = getExtensionComponent(viewWidget);\n const widgetProps: SolidMediaListFieldWidgetProps = {\n rowData,\n solidListViewMetaData,\n fieldMetadata,\n column,\n setLightboxUrls,\n setOpenLightbox\n }\n return (\n <>\n {\n DynamicWidget && <DynamicWidget {...widgetProps} />\n }\n </>\n )\n }}\n sortable={column.attrs.sortable}\n style={{ minWidth: \"12rem\" }}\n headerClassName=\"table-header-fs\"\n />\n );\n};\n\nexport default SolidMediaMultipleColumn;\n\n// Default multiple widget\nexport const DefaultMediaMultipleListWidget = ({ rowData, fieldMetadata, setLightboxUrls, setOpenLightbox }: SolidMediaListFieldWidgetProps) => {\n const [isShowAllFiles, setShowAllFiles] = useState(false);\n\n if (!rowData?._media?.[fieldMetadata.name]) return null;\n\n const fullrecord = rowData._media[fieldMetadata.name]?.map((file: any) => ({\n name: file.originalFileName,\n type: file.mimeType,\n size: file.fileSize,\n id: file.id,\n fileUrl: file._full_url\n }));\n\n\n const formatFileSize = (size: number) =>\n size >= 1024 * 1024 ? `${(size / (1024 * 1024)).toFixed(1)} MB` : `${(size / 1024).toFixed(1)} KB`;\n\n\n const handleFileView = (file: any) => {\n const fileUrl = file?.fileUrl || \"\";\n // const cleanUrl = fileUrl.split(\"?\")[0];\n // const ext = cleanUrl.split(\".\").pop()?.toLowerCase();\n\n if (isDocumentType(fileUrl)) {\n downloadFile(file?.fileUrl, \"\")\n\n } else {\n setLightboxUrls?.([{ src: file.fileUrl, downloadUrl: file.fileUrl }]);\n setOpenLightbox?.(true);\n }\n };\n\n\n\n return fullrecord.length > 0 ? (\n <div className='flex gap-2 align-items-end'>\n\n {/* THUMBNAIL - FIXED BEHAVIOR */}\n <MediaPreview\n src={fullrecord[0]?.fileUrl}\n onClick={(event) => {\n event.stopPropagation();\n\n // const cleanUrl = fullrecord[0]?.fileUrl.split(\"?\")[0];\n // const ext = cleanUrl.split(\".\").pop()?.toLowerCase();\n\n if (isDocumentType(fullrecord[0]?.fileUrl) && fullrecord?.length > 1) {\n setShowAllFiles(true)\n return;\n }\n\n else if (isDocumentType(fullrecord[0]?.fileUrl)) {\n downloadFile(fullrecord[0]?.fileUrl, \"\")\n return;\n }\n // FIRST FILE IS MEDIA ⇒ OPEN LIGHTBOX\n const urlsWithType = fullrecord.map((file: any) => ({\n src: file.fileUrl,\n downloadUrl: file.fileUrl,\n }));\n setLightboxUrls(urlsWithType);\n setOpenLightbox(true);\n }}\n />\n\n {fullrecord?.length > 1 && <span\n style={{\n color: \"#0895CD\",\n fontWeight: \"bold\",\n cursor: \"pointer\",\n marginLeft: \"4px\"\n }}\n onClick={(event) => {\n event.stopPropagation();\n\n if (isDocumentType(fullrecord[0]?.fileUrl)) {\n setShowAllFiles(true);\n } else {\n const urlsWithType = fullrecord.map((file: any) => ({\n src: file.fileUrl,\n downloadUrl: file.fileUrl\n }));\n setLightboxUrls(urlsWithType);\n setOpenLightbox(true);\n }\n }}\n >\n +{fullrecord.length - 1}\n </span>\n }\n\n\n\n {/* VIEW ALL DIALOG */}\n <SolidDialog\n open={isShowAllFiles}\n onOpenChange={setShowAllFiles}\n header=\"Items Uploaded\"\n style={{ width: '32rem', maxWidth: '94vw' }}\n >\n {fullrecord?.map((file: any) => {\n const fileId = `${file.name}-${file.size}`;\n return (\n <div key={fileId} className=\"solid-file-upload-wrapper mb-3\">\n <div className=\"flex align-items-center gap-2\">\n\n <FileReaderExt fileDetails={file} />\n\n <div className=\"w-full flex flex-column gap-1\">\n <div className=\"flex align-items-center justify-content-between\">\n\n <p\n className=\"font-normal w-11 text-primary m-0\"\n style={{ cursor: \"pointer\" }}\n onClick={() => handleFileView(file)}\n >\n {file?.name}\n </p>\n\n <SolidButton\n type=\"button\"\n size=\"small\"\n variant=\"ghost\"\n leftIcon={<Download size={14} />}\n onClick={() => {\n downloadFile(file?.fileUrl, \"\")\n }}\n style={{ height: 16, width: 16 }}\n />\n </div>\n\n <div className=\"text-sm\">{formatFileSize(file.size)}</div>\n </div>\n\n </div>\n </div>\n )\n }\n )}\n </SolidDialog>\n </div>\n ) : (\n <div style={{ height: 40, width: 40 }} />\n );\n};\n"]}
1
+ {"version":3,"file":"SolidMediaMultipleColumn.js","sourceRoot":"","sources":["../../../../../src/components/core/list/columns/SolidMediaMultipleColumn.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport React, { useState } from 'react';\nimport { Download, Volume2 } from \"lucide-react\";\nimport { Column } from \"../SolidDataTable\";\nimport { SolidListViewColumnParams } from '../SolidListViewColumn';\nimport { SolidMediaListFieldWidgetProps } from '../../../../types/solid-core';\nimport { getExtensionComponent } from '../../../../helpers/registry';\nimport { FileReaderExt } from '../../../../components/common/FileReaderExt';\nimport { SolidButton, SolidDialog } from \"../../../shad-cn-ui\";\nimport { SolidFileTypeIcon } from '../../../../helpers/fileTypeIcon';\n\nconst getCleanUrl = (url: string) => url.split(\"?\")[0];\n\nconst isImageFile = (url: string) => /\\.(jpg|jpeg|png|gif|bmp|webp)$/i.test(getCleanUrl(url));\n\nconst isVideoFile = (url: string) => /\\.(mp4|webm|ogg)$/i.test(getCleanUrl(url));\n\nconst isAudioFile = (url: string) => /\\.(mp3|wav|ogg)$/i.test(getCleanUrl(url));\n\nconst isDocumentType = (url: string) => {\n const ext = getCleanUrl(url).split(\".\").pop()?.toLowerCase();\n return ext ? downloadOnlyExt.includes(ext) : false;\n};\n\nconst downloadOnlyExt = [\n \"txt\", \"zip\", \"rar\",\n \"doc\", \"docx\",\n \"xls\", \"xlsx\",\n \"ppt\", \"pptx\",\n \"pdf\", \"csv\"\n];\n\nconst downloadFile = (url: string, name: string = \"\") => {\n const link = document.createElement(\"a\");\n link.href = url;\n link.download = name;\n link.target = \"_blank\";\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n};\n\n\n\n// Thumbnail preview component\nconst MediaPreview = ({ src, onClick }: { src: string; onClick: (event: React.MouseEvent) => void }) => {\n const [isBroken, setIsBroken] = useState(false);\n\n const handleClick = (event: React.MouseEvent) => {\n onClick(event);\n };\n\n if (!isBroken) {\n if (isImageFile(src)) {\n return (\n <img\n src={src}\n alt=\"media\"\n className=\"shadow-2 border-round\"\n width={40}\n height={40}\n style={{ objectFit: \"cover\" }}\n onError={() => setIsBroken(true)}\n onClick={handleClick}\n />\n );\n }\n\n if (isVideoFile(src)) {\n return (\n <video\n src={src}\n width={40}\n height={40}\n className=\"shadow-2 border-round\"\n style={{ objectFit: \"cover\" }}\n onError={() => setIsBroken(true)}\n onClick={handleClick}\n muted\n />\n );\n }\n\n if (isAudioFile(src)) {\n return (\n <div\n className=\"shadow-2 border-round flex align-items-center justify-content-center bg-gray-100\"\n style={{ width: 40, height: 40 }}\n onClick={handleClick}\n >\n <Volume2 size={18} className=\"text-gray-600\" />\n </div>\n );\n }\n }\n\n return (\n <div\n style={{ width: 40, height: 40, display: \"flex\", alignItems: \"center\", justifyContent: \"center\" }}\n onClick={handleClick}\n >\n <SolidFileTypeIcon fileUrl={src} size={24} />\n </div>\n );\n};\n\n\nconst SolidMediaMultipleColumn = ({ solidListViewMetaData, fieldMetadata, column, setLightboxUrls, setOpenLightbox }: SolidListViewColumnParams) => {\n const header = column.attrs.label ?? fieldMetadata.displayName;\n\n return (\n <Column\n key={fieldMetadata.name}\n field={fieldMetadata.name}\n header={header}\n body={(rowData) => {\n let viewWidget = column.attrs.viewWidget;\n if (!viewWidget) {\n viewWidget = 'DefaultMediaMultipleListWidget';\n }\n let DynamicWidget = getExtensionComponent(viewWidget);\n const widgetProps: SolidMediaListFieldWidgetProps = {\n rowData,\n solidListViewMetaData,\n fieldMetadata,\n column,\n setLightboxUrls,\n setOpenLightbox\n }\n return (\n <>\n {\n DynamicWidget && <DynamicWidget {...widgetProps} />\n }\n </>\n )\n }}\n sortable={column.attrs.sortable}\n style={{ minWidth: \"12rem\" }}\n headerClassName=\"table-header-fs\"\n />\n );\n};\n\nexport default SolidMediaMultipleColumn;\n\n// Default multiple widget\nexport const DefaultMediaMultipleListWidget = ({ rowData, fieldMetadata, setLightboxUrls, setOpenLightbox }: SolidMediaListFieldWidgetProps) => {\n const [isShowAllFiles, setShowAllFiles] = useState(false);\n\n if (!rowData?._media?.[fieldMetadata.name]) return null;\n\n const fullrecord = rowData._media[fieldMetadata.name]?.map((file: any) => ({\n name: file.originalFileName,\n type: file.mimeType,\n size: file.fileSize,\n id: file.id,\n fileUrl: file._full_url\n }));\n\n\n const formatFileSize = (size: number) =>\n size >= 1024 * 1024 ? `${(size / (1024 * 1024)).toFixed(1)} MB` : `${(size / 1024).toFixed(1)} KB`;\n\n\n const handleFileView = (file: any) => {\n const fileUrl = file?.fileUrl || \"\";\n // const cleanUrl = fileUrl.split(\"?\")[0];\n // const ext = cleanUrl.split(\".\").pop()?.toLowerCase();\n\n if (isDocumentType(fileUrl)) {\n downloadFile(file?.fileUrl, \"\")\n\n } else {\n setLightboxUrls?.([{ src: file.fileUrl, downloadUrl: file.fileUrl }]);\n setOpenLightbox?.(true);\n }\n };\n\n\n\n return fullrecord.length > 0 ? (\n <div className='flex gap-2 align-items-end'>\n\n {/* THUMBNAIL - FIXED BEHAVIOR */}\n <MediaPreview\n src={fullrecord[0]?.fileUrl}\n onClick={(event) => {\n event.stopPropagation();\n\n // const cleanUrl = fullrecord[0]?.fileUrl.split(\"?\")[0];\n // const ext = cleanUrl.split(\".\").pop()?.toLowerCase();\n\n if (isDocumentType(fullrecord[0]?.fileUrl) && fullrecord?.length > 1) {\n setShowAllFiles(true)\n return;\n }\n\n else if (isDocumentType(fullrecord[0]?.fileUrl)) {\n downloadFile(fullrecord[0]?.fileUrl, \"\")\n return;\n }\n // FIRST FILE IS MEDIA ⇒ OPEN LIGHTBOX\n const urlsWithType = fullrecord.map((file: any) => ({\n src: file.fileUrl,\n downloadUrl: file.fileUrl,\n }));\n setLightboxUrls(urlsWithType);\n setOpenLightbox(true);\n }}\n />\n\n {fullrecord?.length > 1 && <span\n style={{\n color: \"#0895CD\",\n fontWeight: \"bold\",\n cursor: \"pointer\",\n marginLeft: \"4px\"\n }}\n onClick={(event) => {\n event.stopPropagation();\n\n if (isDocumentType(fullrecord[0]?.fileUrl)) {\n setShowAllFiles(true);\n } else {\n const urlsWithType = fullrecord.map((file: any) => ({\n src: file.fileUrl,\n downloadUrl: file.fileUrl\n }));\n setLightboxUrls(urlsWithType);\n setOpenLightbox(true);\n }\n }}\n >\n +{fullrecord.length - 1}\n </span>\n }\n\n\n\n {/* VIEW ALL DIALOG */}\n <SolidDialog\n open={isShowAllFiles}\n onOpenChange={setShowAllFiles}\n header=\"Items Uploaded\"\n style={{ width: '32rem', maxWidth: '94vw' }}\n >\n {fullrecord?.map((file: any) => {\n const fileId = `${file.name}-${file.size}`;\n return (\n <div key={fileId} className=\"solid-file-upload-wrapper mb-3\">\n <div className=\"flex align-items-center gap-2\">\n\n <FileReaderExt fileDetails={file} />\n\n <div className=\"w-full flex flex-column gap-1\">\n <div className=\"flex align-items-center justify-content-between\">\n\n <p\n className=\"font-normal w-11 text-primary m-0 solid-media-column-text-wrapper\"\n style={{ cursor: \"pointer\" }}\n onClick={() => handleFileView(file)}\n >\n {file?.name}\n </p>\n\n <SolidButton\n type=\"button\"\n size=\"small\"\n variant=\"ghost\"\n leftIcon={<Download size={14} />}\n onClick={() => {\n downloadFile(file?.fileUrl, \"\")\n }}\n style={{ height: 16, width: 16 }}\n />\n </div>\n\n <div className=\"text-sm\">{formatFileSize(file.size)}</div>\n </div>\n\n </div>\n </div>\n )\n }\n )}\n </SolidDialog>\n </div>\n ) : (\n <div style={{ height: 40, width: 40 }} />\n );\n};\n"]}
@@ -1,12 +1,13 @@
1
1
 
2
2
  import React, { useState } from 'react';
3
- import { Download, File, Volume2 } from "lucide-react";
3
+ import { Download, Volume2 } from "lucide-react";
4
4
  import { Column } from "../SolidDataTable";
5
5
  import { SolidListViewColumnParams } from '../SolidListViewColumn';
6
6
  import { SolidMediaListFieldWidgetProps } from '../../../../types/solid-core';
7
7
  import { getExtensionComponent } from '../../../../helpers/registry';
8
8
  import { FileReaderExt } from '../../../../components/common/FileReaderExt';
9
9
  import { SolidButton, SolidDialog } from "../../../shad-cn-ui";
10
+ import { SolidFileTypeIcon } from '../../../../helpers/fileTypeIcon';
10
11
 
11
12
  const getCleanUrl = (url: string) => url.split("?")[0];
12
13
 
@@ -98,7 +99,7 @@ const MediaPreview = ({ src, onClick }: { src: string; onClick: (event: React.Mo
98
99
  style={{ width: 40, height: 40, display: "flex", alignItems: "center", justifyContent: "center" }}
99
100
  onClick={handleClick}
100
101
  >
101
- <File size={24} className="text-gray-400" />
102
+ <SolidFileTypeIcon fileUrl={src} size={24} />
102
103
  </div>
103
104
  );
104
105
  };
@@ -256,7 +257,7 @@ export const DefaultMediaMultipleListWidget = ({ rowData, fieldMetadata, setLigh
256
257
  <div className="flex align-items-center justify-content-between">
257
258
 
258
259
  <p
259
- className="font-normal w-11 text-primary m-0"
260
+ className="font-normal w-11 text-primary m-0 solid-media-column-text-wrapper"
260
261
  style={{ cursor: "pointer" }}
261
262
  onClick={() => handleFileView(file)}
262
263
  >
@@ -1 +1 @@
1
- {"version":3,"file":"SolidMediaSingleColumn.d.ts","sourceRoot":"","sources":["../../../../../src/components/core/list/columns/SolidMediaSingleColumn.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,8BAA8B,EAAE,MAAM,8BAA8B,CAAC;AAkG9E,QAAA,MAAM,sBAAsB,uFAAwF,yBAAyB,4CAkC5I,CAAC;AAEF,eAAe,sBAAsB,CAAC;AAGtC,eAAO,MAAM,4BAA4B,gGAOtC,8BAA8B,mDAqBhC,CAAC"}
1
+ {"version":3,"file":"SolidMediaSingleColumn.d.ts","sourceRoot":"","sources":["../../../../../src/components/core/list/columns/SolidMediaSingleColumn.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,8BAA8B,EAAE,MAAM,8BAA8B,CAAC;AAmG9E,QAAA,MAAM,sBAAsB,uFAAwF,yBAAyB,4CAkC5I,CAAC;AAEF,eAAe,sBAAsB,CAAC;AAGtC,eAAO,MAAM,4BAA4B,gGAOtC,8BAA8B,mDAqBhC,CAAC"}
@@ -11,9 +11,10 @@ var __assign = (this && this.__assign) || function () {
11
11
  };
12
12
  import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
13
13
  import { useState } from 'react';
14
- import { File, Volume2 } from "lucide-react";
14
+ import { Volume2 } from "lucide-react";
15
15
  import { Column } from "../SolidDataTable";
16
16
  import { getExtensionComponent } from '../../../../helpers/registry';
17
+ import { SolidFileTypeIcon } from '../../../../helpers/fileTypeIcon';
17
18
  var getCleanUrl = function (url) { return url.split("?")[0]; };
18
19
  // Helpers for file type detection
19
20
  var isImageFile = function (url) { return /\.(jpg|jpeg|png|gif|bmp|webp)$/i.test(getCleanUrl(url)); };
@@ -62,7 +63,7 @@ var MediaWithFallback = function (_a) {
62
63
  }
63
64
  }
64
65
  // fallback icon (docs/others)
65
- return (_jsx("div", { style: { width: 40, height: 40, display: "flex", alignItems: "center", justifyContent: "center", cursor: "pointer" }, onClick: handleClick, children: _jsx(File, { size: 24, className: "text-gray-400" }) }));
66
+ return (_jsx("div", { style: { width: 40, height: 40, display: "flex", alignItems: "center", justifyContent: "center", cursor: "pointer" }, onClick: handleClick, children: _jsx(SolidFileTypeIcon, { fileUrl: src, size: 24 }) }));
66
67
  };
67
68
  // Main column renderer
68
69
  var SolidMediaSingleColumn = function (_a) {
@@ -1 +1 @@
1
- {"version":3,"file":"SolidMediaSingleColumn.js","sourceRoot":"","sources":["../../../../../src/components/core/list/columns/SolidMediaSingleColumn.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport React, { useState } from 'react';\nimport { File, Volume2 } from \"lucide-react\";\nimport { Column } from \"../SolidDataTable\";\nimport { SolidListViewColumnParams } from '../SolidListViewColumn';\nimport { SolidMediaListFieldWidgetProps } from '../../../../types/solid-core';\nimport { getExtensionComponent } from '../../../../helpers/registry';\n\nconst getCleanUrl = (url: string) => url.split(\"?\")[0];\n\n// Helpers for file type detection\nconst isImageFile = (url: string) => /\\.(jpg|jpeg|png|gif|bmp|webp)$/i.test(getCleanUrl(url));\nconst isVideoFile = (url: string) => /\\.(mp4|webm|ogg)$/i.test(getCleanUrl(url));\nconst isAudioFile = (url: string) => /\\.(mp3|wav|ogg)$/i.test(getCleanUrl(url));\n\n// Extensions that should be downloaded directly\nconst downloadOnlyExt = [\n \"txt\", \"zip\", \"rar\",\n \"doc\", \"docx\",\n \"xls\", \"xlsx\",\n \"ppt\", \"pptx\",\n \"pdf\"\n];\n\n// Media component with fallback for broken links\nconst MediaWithFallback = ({ src, alt, onClick }: { src: string; alt: string; onClick: (event: React.MouseEvent) => void }) => {\n const [isBroken, setIsBroken] = useState(false);\n\n const handleClick = (event: React.MouseEvent) => {\n event.stopPropagation();\n const cleanUrl = src.split(\"?\")[0];\n const ext = cleanUrl.split(\".\").pop()?.toLowerCase();\n\n if (ext && downloadOnlyExt.includes(ext)) {\n // Trigger download for docs/archives\n const link = document.createElement(\"a\");\n link.href = src;\n link.download = \"\";\n link.target = \"_blank\";\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n } else {\n onClick(event);\n }\n };\n\n if (!isBroken) {\n if (isImageFile(src)) {\n return (\n <img\n src={src}\n alt={alt}\n className=\"shadow-2 border-round\"\n width={40}\n height={40}\n style={{ objectFit: \"cover\", cursor: \"pointer\" }}\n onError={() => setIsBroken(true)}\n onClick={handleClick}\n />\n );\n }\n\n if (isVideoFile(src)) {\n return (\n <video\n src={src}\n width={40}\n height={40}\n className=\"shadow-2 border-round\"\n style={{ objectFit: \"cover\", cursor: \"pointer\" }}\n onError={() => setIsBroken(true)}\n onClick={handleClick}\n muted\n />\n );\n }\n\n if (isAudioFile(src)) {\n return (\n <div\n className=\"shadow-2 border-round flex align-items-center justify-content-center bg-gray-100\"\n style={{ width: 40, height: 40, cursor: \"pointer\" }}\n onClick={handleClick}\n >\n <Volume2 size={18} className=\"text-gray-600\" />\n </div>\n );\n }\n }\n\n // fallback icon (docs/others)\n return (\n <div\n style={{ width: 40, height: 40, display: \"flex\", alignItems: \"center\", justifyContent: \"center\", cursor: \"pointer\" }}\n onClick={handleClick}\n >\n <File size={24} className=\"text-gray-400\" />\n </div>\n );\n};\n\n// Main column renderer\nconst SolidMediaSingleColumn = ({ solidListViewMetaData, fieldMetadata, column, setLightboxUrls, setOpenLightbox }: SolidListViewColumnParams) => {\n const header = column.attrs.label ?? fieldMetadata.displayName;\n\n return (\n <Column\n key={fieldMetadata.name}\n field={fieldMetadata.name}\n header={header}\n body={(rowData) => {\n let viewWidget = column.attrs.viewWidget;\n if (!viewWidget) {\n viewWidget = 'DefaultMediaSingleListWidget';\n }\n let DynamicWidget = getExtensionComponent(viewWidget);\n const widgetProps: SolidMediaListFieldWidgetProps = {\n rowData,\n solidListViewMetaData,\n fieldMetadata,\n column,\n setLightboxUrls,\n setOpenLightbox\n }\n return (\n <>\n {DynamicWidget && <DynamicWidget {...widgetProps} />}\n </>\n )\n }}\n sortable={column.attrs.sortable}\n showFilterOperator={false}\n style={{ minWidth: \"12rem\" }}\n headerClassName=\"table-header-fs\"\n />\n );\n};\n\nexport default SolidMediaSingleColumn;\n\n// Default widget for single media field\nexport const DefaultMediaSingleListWidget = ({\n rowData,\n solidListViewMetaData,\n fieldMetadata,\n column,\n setLightboxUrls,\n setOpenLightbox\n}: SolidMediaListFieldWidgetProps) => {\n if (!rowData?._media?.[fieldMetadata.name]) return null;\n const mediaUrls = rowData._media[fieldMetadata.name].map((i: any) => i._full_url);\n\n const firstUrl = mediaUrls[0];\n if (!firstUrl) return <div style={{ height: 40, width: 40 }} />;\n const cleanUrl = getCleanUrl(firstUrl);\n return (\n <MediaWithFallback\n src={firstUrl}\n alt=\"media\"\n onClick={(event) => {\n // Only open lightbox for image, video, or audio\n event.stopPropagation()\n if (isImageFile(cleanUrl) || isVideoFile(cleanUrl) || isAudioFile(cleanUrl)) {\n setLightboxUrls([{ src: firstUrl, downloadUrl: firstUrl }]);\n setOpenLightbox(true);\n }\n }}\n />\n );\n};\n"]}
1
+ {"version":3,"file":"SolidMediaSingleColumn.js","sourceRoot":"","sources":["../../../../../src/components/core/list/columns/SolidMediaSingleColumn.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport React, { useState } from 'react';\nimport { Volume2 } from \"lucide-react\";\nimport { Column } from \"../SolidDataTable\";\nimport { SolidListViewColumnParams } from '../SolidListViewColumn';\nimport { SolidMediaListFieldWidgetProps } from '../../../../types/solid-core';\nimport { getExtensionComponent } from '../../../../helpers/registry';\nimport { SolidFileTypeIcon } from '../../../../helpers/fileTypeIcon';\n\nconst getCleanUrl = (url: string) => url.split(\"?\")[0];\n\n// Helpers for file type detection\nconst isImageFile = (url: string) => /\\.(jpg|jpeg|png|gif|bmp|webp)$/i.test(getCleanUrl(url));\nconst isVideoFile = (url: string) => /\\.(mp4|webm|ogg)$/i.test(getCleanUrl(url));\nconst isAudioFile = (url: string) => /\\.(mp3|wav|ogg)$/i.test(getCleanUrl(url));\n\n// Extensions that should be downloaded directly\nconst downloadOnlyExt = [\n \"txt\", \"zip\", \"rar\",\n \"doc\", \"docx\",\n \"xls\", \"xlsx\",\n \"ppt\", \"pptx\",\n \"pdf\"\n];\n\n// Media component with fallback for broken links\nconst MediaWithFallback = ({ src, alt, onClick }: { src: string; alt: string; onClick: (event: React.MouseEvent) => void }) => {\n const [isBroken, setIsBroken] = useState(false);\n\n const handleClick = (event: React.MouseEvent) => {\n event.stopPropagation();\n const cleanUrl = src.split(\"?\")[0];\n const ext = cleanUrl.split(\".\").pop()?.toLowerCase();\n\n if (ext && downloadOnlyExt.includes(ext)) {\n // Trigger download for docs/archives\n const link = document.createElement(\"a\");\n link.href = src;\n link.download = \"\";\n link.target = \"_blank\";\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n } else {\n onClick(event);\n }\n };\n\n if (!isBroken) {\n if (isImageFile(src)) {\n return (\n <img\n src={src}\n alt={alt}\n className=\"shadow-2 border-round\"\n width={40}\n height={40}\n style={{ objectFit: \"cover\", cursor: \"pointer\" }}\n onError={() => setIsBroken(true)}\n onClick={handleClick}\n />\n );\n }\n\n if (isVideoFile(src)) {\n return (\n <video\n src={src}\n width={40}\n height={40}\n className=\"shadow-2 border-round\"\n style={{ objectFit: \"cover\", cursor: \"pointer\" }}\n onError={() => setIsBroken(true)}\n onClick={handleClick}\n muted\n />\n );\n }\n\n if (isAudioFile(src)) {\n return (\n <div\n className=\"shadow-2 border-round flex align-items-center justify-content-center bg-gray-100\"\n style={{ width: 40, height: 40, cursor: \"pointer\" }}\n onClick={handleClick}\n >\n <Volume2 size={18} className=\"text-gray-600\" />\n </div>\n );\n }\n }\n\n // fallback icon (docs/others)\n return (\n <div\n style={{ width: 40, height: 40, display: \"flex\", alignItems: \"center\", justifyContent: \"center\", cursor: \"pointer\" }}\n onClick={handleClick}\n >\n <SolidFileTypeIcon fileUrl={src} size={24} />\n </div>\n );\n};\n\n// Main column renderer\nconst SolidMediaSingleColumn = ({ solidListViewMetaData, fieldMetadata, column, setLightboxUrls, setOpenLightbox }: SolidListViewColumnParams) => {\n const header = column.attrs.label ?? fieldMetadata.displayName;\n\n return (\n <Column\n key={fieldMetadata.name}\n field={fieldMetadata.name}\n header={header}\n body={(rowData) => {\n let viewWidget = column.attrs.viewWidget;\n if (!viewWidget) {\n viewWidget = 'DefaultMediaSingleListWidget';\n }\n let DynamicWidget = getExtensionComponent(viewWidget);\n const widgetProps: SolidMediaListFieldWidgetProps = {\n rowData,\n solidListViewMetaData,\n fieldMetadata,\n column,\n setLightboxUrls,\n setOpenLightbox\n }\n return (\n <>\n {DynamicWidget && <DynamicWidget {...widgetProps} />}\n </>\n )\n }}\n sortable={column.attrs.sortable}\n showFilterOperator={false}\n style={{ minWidth: \"12rem\" }}\n headerClassName=\"table-header-fs\"\n />\n );\n};\n\nexport default SolidMediaSingleColumn;\n\n// Default widget for single media field\nexport const DefaultMediaSingleListWidget = ({\n rowData,\n solidListViewMetaData,\n fieldMetadata,\n column,\n setLightboxUrls,\n setOpenLightbox\n}: SolidMediaListFieldWidgetProps) => {\n if (!rowData?._media?.[fieldMetadata.name]) return null;\n const mediaUrls = rowData._media[fieldMetadata.name].map((i: any) => i._full_url);\n\n const firstUrl = mediaUrls[0];\n if (!firstUrl) return <div style={{ height: 40, width: 40 }} />;\n const cleanUrl = getCleanUrl(firstUrl);\n return (\n <MediaWithFallback\n src={firstUrl}\n alt=\"media\"\n onClick={(event) => {\n // Only open lightbox for image, video, or audio\n event.stopPropagation()\n if (isImageFile(cleanUrl) || isVideoFile(cleanUrl) || isAudioFile(cleanUrl)) {\n setLightboxUrls([{ src: firstUrl, downloadUrl: firstUrl }]);\n setOpenLightbox(true);\n }\n }}\n />\n );\n};\n"]}
@@ -1,10 +1,11 @@
1
1
 
2
2
  import React, { useState } from 'react';
3
- import { File, Volume2 } from "lucide-react";
3
+ import { Volume2 } from "lucide-react";
4
4
  import { Column } from "../SolidDataTable";
5
5
  import { SolidListViewColumnParams } from '../SolidListViewColumn';
6
6
  import { SolidMediaListFieldWidgetProps } from '../../../../types/solid-core';
7
7
  import { getExtensionComponent } from '../../../../helpers/registry';
8
+ import { SolidFileTypeIcon } from '../../../../helpers/fileTypeIcon';
8
9
 
9
10
  const getCleanUrl = (url: string) => url.split("?")[0];
10
11
 
@@ -95,7 +96,7 @@ const MediaWithFallback = ({ src, alt, onClick }: { src: string; alt: string; on
95
96
  style={{ width: 40, height: 40, display: "flex", alignItems: "center", justifyContent: "center", cursor: "pointer" }}
96
97
  onClick={handleClick}
97
98
  >
98
- <File size={24} className="text-gray-400" />
99
+ <SolidFileTypeIcon fileUrl={src} size={24} />
99
100
  </div>
100
101
  );
101
102
  };
@@ -1,4 +1,4 @@
1
1
  import { SolidListViewColumnParams } from '../SolidListViewColumn';
2
- declare const SolidRelationColumn: ({ solidListViewMetaData, fieldMetadata, column }: SolidListViewColumnParams) => import("react/jsx-runtime").JSX.Element | undefined;
2
+ declare const SolidRelationColumn: ({ solidListViewMetaData, fieldMetadata, column, embeded }: SolidListViewColumnParams) => import("react/jsx-runtime").JSX.Element | undefined;
3
3
  export default SolidRelationColumn;
4
4
  //# sourceMappingURL=SolidRelationColumn.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SolidRelationColumn.d.ts","sourceRoot":"","sources":["../../../../../src/components/core/list/columns/SolidRelationColumn.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAKnE,QAAA,MAAM,mBAAmB,qDAAsD,yBAAyB,wDAYvG,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
1
+ {"version":3,"file":"SolidRelationColumn.d.ts","sourceRoot":"","sources":["../../../../../src/components/core/list/columns/SolidRelationColumn.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAKnE,QAAA,MAAM,mBAAmB,8DAA+D,yBAAyB,wDAYhH,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
@@ -2,9 +2,9 @@ import SolidRelationManyToManyColumn from './relations/SolidRelationManyToManyCo
2
2
  import SolidRelationManyToOneColumn from './relations/SolidRelationManyToOneColumn';
3
3
  import SolidRelationOneToManyColumn from './relations/SolidRelationOneToManyColumn';
4
4
  var SolidRelationColumn = function (_a) {
5
- var solidListViewMetaData = _a.solidListViewMetaData, fieldMetadata = _a.fieldMetadata, column = _a.column;
5
+ var solidListViewMetaData = _a.solidListViewMetaData, fieldMetadata = _a.fieldMetadata, column = _a.column, embeded = _a.embeded;
6
6
  if (fieldMetadata.relationType === 'many-to-one') {
7
- return SolidRelationManyToOneColumn({ solidListViewMetaData: solidListViewMetaData, fieldMetadata: fieldMetadata, column: column });
7
+ return SolidRelationManyToOneColumn({ solidListViewMetaData: solidListViewMetaData, fieldMetadata: fieldMetadata, column: column, embeded: embeded });
8
8
  }
9
9
  if (fieldMetadata.relationType === 'one-to-many') {
10
10
  return SolidRelationOneToManyColumn({ solidListViewMetaData: solidListViewMetaData, fieldMetadata: fieldMetadata, column: column });
@@ -1 +1 @@
1
- {"version":3,"file":"SolidRelationColumn.js","sourceRoot":"","sources":["../../../../../src/components/core/list/columns/SolidRelationColumn.tsx"],"names":[],"mappings":"AAEA,OAAO,6BAA6B,MAAM,2CAA2C,CAAC;AACtF,OAAO,4BAA4B,MAAM,0CAA0C,CAAC;AACpF,OAAO,4BAA4B,MAAM,0CAA0C,CAAC;AAEpF,IAAM,mBAAmB,GAAG,UAAC,EAA2E;QAAzE,qBAAqB,2BAAA,EAAE,aAAa,mBAAA,EAAE,MAAM,YAAA;IACvE,IAAI,aAAa,CAAC,YAAY,KAAK,aAAa,EAAE;QAC9C,OAAO,4BAA4B,CAAC,EAAE,qBAAqB,uBAAA,EAAE,aAAa,eAAA,EAAE,MAAM,QAAA,EAAE,CAAC,CAAC;KACzF;IACD,IAAI,aAAa,CAAC,YAAY,KAAK,aAAa,EAAE;QAC9C,OAAO,4BAA4B,CAAC,EAAE,qBAAqB,uBAAA,EAAE,aAAa,eAAA,EAAE,MAAM,QAAA,EAAE,CAAC,CAAC;KACzF;IACD,IAAI,aAAa,CAAC,YAAY,KAAK,cAAc,EAAE;QAC/C,OAAO,6BAA6B,CAAC,EAAE,qBAAqB,uBAAA,EAAE,aAAa,eAAA,EAAE,MAAM,QAAA,EAAE,CAAC,CAAC;KAC1F;IACD,4BAA4B;IAC5B,6BAA6B;AACjC,CAAC,CAAC;AAEF,eAAe,mBAAmB,CAAC","sourcesContent":["\nimport { SolidListViewColumnParams } from '../SolidListViewColumn';\nimport SolidRelationManyToManyColumn from './relations/SolidRelationManyToManyColumn';\nimport SolidRelationManyToOneColumn from './relations/SolidRelationManyToOneColumn';\nimport SolidRelationOneToManyColumn from './relations/SolidRelationOneToManyColumn';\n\nconst SolidRelationColumn = ({ solidListViewMetaData, fieldMetadata, column }: SolidListViewColumnParams) => {\n if (fieldMetadata.relationType === 'many-to-one') {\n return SolidRelationManyToOneColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n if (fieldMetadata.relationType === 'one-to-many') {\n return SolidRelationOneToManyColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n if (fieldMetadata.relationType === 'many-to-many') {\n return SolidRelationManyToManyColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n // TODO: Support one-to-many\n // TODO: Support many-to-many\n};\n\nexport default SolidRelationColumn;"]}
1
+ {"version":3,"file":"SolidRelationColumn.js","sourceRoot":"","sources":["../../../../../src/components/core/list/columns/SolidRelationColumn.tsx"],"names":[],"mappings":"AAEA,OAAO,6BAA6B,MAAM,2CAA2C,CAAC;AACtF,OAAO,4BAA4B,MAAM,0CAA0C,CAAC;AACpF,OAAO,4BAA4B,MAAM,0CAA0C,CAAC;AAEpF,IAAM,mBAAmB,GAAG,UAAC,EAAoF;QAAlF,qBAAqB,2BAAA,EAAE,aAAa,mBAAA,EAAE,MAAM,YAAA,EAAE,OAAO,aAAA;IAChF,IAAI,aAAa,CAAC,YAAY,KAAK,aAAa,EAAE;QAC9C,OAAO,4BAA4B,CAAC,EAAE,qBAAqB,uBAAA,EAAE,aAAa,eAAA,EAAE,MAAM,QAAA,EAAE,OAAO,SAAA,EAAE,CAAC,CAAC;KAClG;IACD,IAAI,aAAa,CAAC,YAAY,KAAK,aAAa,EAAE;QAC9C,OAAO,4BAA4B,CAAC,EAAE,qBAAqB,uBAAA,EAAE,aAAa,eAAA,EAAE,MAAM,QAAA,EAAE,CAAC,CAAC;KACzF;IACD,IAAI,aAAa,CAAC,YAAY,KAAK,cAAc,EAAE;QAC/C,OAAO,6BAA6B,CAAC,EAAE,qBAAqB,uBAAA,EAAE,aAAa,eAAA,EAAE,MAAM,QAAA,EAAE,CAAC,CAAC;KAC1F;IACD,4BAA4B;IAC5B,6BAA6B;AACjC,CAAC,CAAC;AAEF,eAAe,mBAAmB,CAAC","sourcesContent":["\nimport { SolidListViewColumnParams } from '../SolidListViewColumn';\nimport SolidRelationManyToManyColumn from './relations/SolidRelationManyToManyColumn';\nimport SolidRelationManyToOneColumn from './relations/SolidRelationManyToOneColumn';\nimport SolidRelationOneToManyColumn from './relations/SolidRelationOneToManyColumn';\n\nconst SolidRelationColumn = ({ solidListViewMetaData, fieldMetadata, column, embeded }: SolidListViewColumnParams) => {\n if (fieldMetadata.relationType === 'many-to-one') {\n return SolidRelationManyToOneColumn({ solidListViewMetaData, fieldMetadata, column, embeded });\n }\n if (fieldMetadata.relationType === 'one-to-many') {\n return SolidRelationOneToManyColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n if (fieldMetadata.relationType === 'many-to-many') {\n return SolidRelationManyToManyColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n // TODO: Support one-to-many\n // TODO: Support many-to-many\n};\n\nexport default SolidRelationColumn;"]}
@@ -4,9 +4,9 @@ import SolidRelationManyToManyColumn from './relations/SolidRelationManyToManyCo
4
4
  import SolidRelationManyToOneColumn from './relations/SolidRelationManyToOneColumn';
5
5
  import SolidRelationOneToManyColumn from './relations/SolidRelationOneToManyColumn';
6
6
 
7
- const SolidRelationColumn = ({ solidListViewMetaData, fieldMetadata, column }: SolidListViewColumnParams) => {
7
+ const SolidRelationColumn = ({ solidListViewMetaData, fieldMetadata, column, embeded }: SolidListViewColumnParams) => {
8
8
  if (fieldMetadata.relationType === 'many-to-one') {
9
- return SolidRelationManyToOneColumn({ solidListViewMetaData, fieldMetadata, column });
9
+ return SolidRelationManyToOneColumn({ solidListViewMetaData, fieldMetadata, column, embeded });
10
10
  }
11
11
  if (fieldMetadata.relationType === 'one-to-many') {
12
12
  return SolidRelationOneToManyColumn({ solidListViewMetaData, fieldMetadata, column });
@@ -1,6 +1,6 @@
1
1
  import { SolidListViewColumnParams } from '../../../../../components/core/list/SolidListViewColumn';
2
2
  import { SolidListFieldWidgetProps } from '../../../../../types/solid-core';
3
- declare const SolidRelationManyToOneColumn: ({ solidListViewMetaData, fieldMetadata, column }: SolidListViewColumnParams) => import("react/jsx-runtime").JSX.Element;
3
+ declare const SolidRelationManyToOneColumn: ({ solidListViewMetaData, fieldMetadata, column, embeded }: SolidListViewColumnParams) => import("react/jsx-runtime").JSX.Element;
4
4
  export default SolidRelationManyToOneColumn;
5
- export declare const DefaultRelationManyToOneListWidget: ({ rowData, solidListViewMetaData, fieldMetadata, column }: SolidListFieldWidgetProps) => import("react/jsx-runtime").JSX.Element;
5
+ export declare const DefaultRelationManyToOneListWidget: ({ rowData, solidListViewMetaData, fieldMetadata, column, embeded }: SolidListFieldWidgetProps) => import("react/jsx-runtime").JSX.Element;
6
6
  //# sourceMappingURL=SolidRelationManyToOneColumn.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SolidRelationManyToOneColumn.d.ts","sourceRoot":"","sources":["../../../../../../src/components/core/list/columns/relations/SolidRelationManyToOneColumn.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,MAAM,yDAAyD,CAAC;AAEpG,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAI5E,QAAA,MAAM,4BAA4B,qDAAsD,yBAAyB,4CAoChH,CAAC;AAEF,eAAe,4BAA4B,CAAC;AAG5C,eAAO,MAAM,kCAAkC,8DAA+D,yBAAyB,4CA4CtI,CAAC"}
1
+ {"version":3,"file":"SolidRelationManyToOneColumn.d.ts","sourceRoot":"","sources":["../../../../../../src/components/core/list/columns/relations/SolidRelationManyToOneColumn.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,MAAM,yDAAyD,CAAC;AAEpG,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAI5E,QAAA,MAAM,4BAA4B,8DAA+D,yBAAyB,4CAqCzH,CAAC;AAEF,eAAe,4BAA4B,CAAC;AAG5C,eAAO,MAAM,kCAAkC,uEAAwE,yBAAyB,4CAqD/I,CAAC"}
@@ -16,7 +16,7 @@ import { kebabCase } from 'lodash';
16
16
  import { ExternalLink } from "lucide-react";
17
17
  var SolidRelationManyToOneColumn = function (_a) {
18
18
  var _b;
19
- var solidListViewMetaData = _a.solidListViewMetaData, fieldMetadata = _a.fieldMetadata, column = _a.column;
19
+ var solidListViewMetaData = _a.solidListViewMetaData, fieldMetadata = _a.fieldMetadata, column = _a.column, embeded = _a.embeded;
20
20
  var header = (_b = column.attrs.label) !== null && _b !== void 0 ? _b : fieldMetadata.displayName;
21
21
  return (_jsx(Column, { field: fieldMetadata.name, header: header,
22
22
  // className="text-sm"
@@ -30,21 +30,26 @@ var SolidRelationManyToOneColumn = function (_a) {
30
30
  rowData: rowData,
31
31
  solidListViewMetaData: solidListViewMetaData,
32
32
  fieldMetadata: fieldMetadata,
33
- column: column
33
+ column: column,
34
+ embeded: embeded
34
35
  };
35
36
  return (_jsx(_Fragment, { children: DynamicWidget && _jsx(DynamicWidget, __assign({}, widgetProps)) }));
36
37
  }, filterPlaceholder: "Search by ".concat(fieldMetadata.displayName), style: { minWidth: "12rem" }, headerClassName: "table-header-fs" }, fieldMetadata.name));
37
38
  };
38
39
  export default SolidRelationManyToOneColumn;
39
40
  export var DefaultRelationManyToOneListWidget = function (_a) {
40
- var _b, _c, _d, _e;
41
- var rowData = _a.rowData, solidListViewMetaData = _a.solidListViewMetaData, fieldMetadata = _a.fieldMetadata, column = _a.column;
41
+ var _b, _c, _d, _e, _f;
42
+ var rowData = _a.rowData, solidListViewMetaData = _a.solidListViewMetaData, fieldMetadata = _a.fieldMetadata, column = _a.column, embeded = _a.embeded;
42
43
  var manyToOneFieldData = rowData[column.attrs.name];
43
44
  // This is the userkey that will be present within the rowData.
44
45
  if (manyToOneFieldData) {
45
46
  // Since this is a many-to-one field, we fetch the user key field of the associated model.
46
47
  var userKeyField = ((_b = column === null || column === void 0 ? void 0 : column.attrs) === null || _b === void 0 ? void 0 : _b.coModelFieldToDisplay) ? (_c = column === null || column === void 0 ? void 0 : column.attrs) === null || _c === void 0 ? void 0 : _c.coModelFieldToDisplay : (_e = (_d = fieldMetadata === null || fieldMetadata === void 0 ? void 0 : fieldMetadata.relationModel) === null || _d === void 0 ? void 0 : _d.userKeyField) === null || _e === void 0 ? void 0 : _e.name;
47
48
  var manyToOneColVal = manyToOneFieldData[userKeyField];
49
+ var isDisabled = ((_f = column === null || column === void 0 ? void 0 : column.attrs) === null || _f === void 0 ? void 0 : _f.disabled) === true;
50
+ if (embeded === true || isDisabled) {
51
+ return (_jsx("span", { className: "solid-list-external-link-text", children: manyToOneColVal }));
52
+ }
48
53
  return (_jsxs("button", { type: "button", className: "solid-list-external-link", onClick: function () {
49
54
  var _a, _b;
50
55
  var pathSegments = window.location.pathname.split('/').filter(Boolean);
@@ -1 +1 @@
1
- {"version":3,"file":"SolidRelationManyToOneColumn.js","sourceRoot":"","sources":["../../../../../../src/components/core/list/columns/relations/SolidRelationManyToOneColumn.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport { Column } from \"../../SolidDataTable\";\nimport { SolidListViewColumnParams } from '../../../../../components/core/list/SolidListViewColumn';\nimport { getExtensionComponent } from '../../../../../helpers/registry';\nimport { SolidListFieldWidgetProps } from '../../../../../types/solid-core';\nimport { kebabCase } from 'lodash';\nimport { ExternalLink } from \"lucide-react\";\n\nconst SolidRelationManyToOneColumn = ({ solidListViewMetaData, fieldMetadata, column }: SolidListViewColumnParams) => {\n\n const header = column.attrs.label ?? fieldMetadata.displayName;\n\n return (\n <Column\n key={fieldMetadata.name}\n field={fieldMetadata.name}\n header={header}\n // className=\"text-sm\"\n sortable={column.attrs.sortable}\n body={(rowData) => {\n let viewWidget = column.attrs.viewWidget;\n if (!viewWidget) {\n viewWidget = 'DefaultRelationManyToOneListWidget';\n }\n let DynamicWidget = getExtensionComponent(viewWidget);\n const widgetProps: SolidListFieldWidgetProps = {\n rowData,\n solidListViewMetaData,\n fieldMetadata,\n column\n }\n return (\n <>\n {DynamicWidget && <DynamicWidget {...widgetProps} />}\n </>\n )\n }\n }\n filterPlaceholder={`Search by ${fieldMetadata.displayName}`}\n style={{ minWidth: \"12rem\" }}\n headerClassName=\"table-header-fs\"\n ></Column>\n );\n\n};\n\nexport default SolidRelationManyToOneColumn;\n\n\nexport const DefaultRelationManyToOneListWidget = ({ rowData, solidListViewMetaData, fieldMetadata, column }: SolidListFieldWidgetProps) => {\n const manyToOneFieldData = rowData[column.attrs.name];\n\n // This is the userkey that will be present within the rowData.\n if (manyToOneFieldData) {\n // Since this is a many-to-one field, we fetch the user key field of the associated model.\n const userKeyField = column?.attrs?.coModelFieldToDisplay ? column?.attrs?.coModelFieldToDisplay : fieldMetadata?.relationModel?.userKeyField?.name;\n\n const manyToOneColVal = manyToOneFieldData[userKeyField];\n\n return (\n <button\n type=\"button\"\n className=\"solid-list-external-link\"\n onClick={() => {\n const pathSegments = window.location.pathname.split('/').filter(Boolean);\n\n const listIndex = pathSegments.lastIndexOf('list');\n\n if (listIndex > 0) {\n pathSegments[listIndex - 1] = kebabCase(fieldMetadata?.relationModel?.singularName);\n pathSegments[listIndex] = `form/${manyToOneFieldData?.id}`;\n }\n else if (pathSegments[pathSegments.length - 2] === \"form\") {\n pathSegments[pathSegments.length - 3] = kebabCase(fieldMetadata?.relationModel?.singularName);\n pathSegments[pathSegments.length - 2] = \"form\";\n pathSegments[pathSegments.length - 1] = manyToOneFieldData?.id;\n }\n\n const newPath = `/${pathSegments.join('/')}?viewMode=view`;\n\n // open in new tab\n window.open(newPath, \"_blank\");\n\n }}\n >\n <span className=\"solid-list-external-link-text\">{manyToOneColVal}</span>\n <ExternalLink size={13} strokeWidth={2} className=\"solid-list-external-link-icon\" />\n </button>\n );\n }\n else {\n return <span></span>\n }\n};\n"]}
1
+ {"version":3,"file":"SolidRelationManyToOneColumn.js","sourceRoot":"","sources":["../../../../../../src/components/core/list/columns/relations/SolidRelationManyToOneColumn.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport { Column } from \"../../SolidDataTable\";\nimport { SolidListViewColumnParams } from '../../../../../components/core/list/SolidListViewColumn';\nimport { getExtensionComponent } from '../../../../../helpers/registry';\nimport { SolidListFieldWidgetProps } from '../../../../../types/solid-core';\nimport { kebabCase } from 'lodash';\nimport { ExternalLink } from \"lucide-react\";\n\nconst SolidRelationManyToOneColumn = ({ solidListViewMetaData, fieldMetadata, column, embeded }: SolidListViewColumnParams) => {\n\n const header = column.attrs.label ?? fieldMetadata.displayName;\n\n return (\n <Column\n key={fieldMetadata.name}\n field={fieldMetadata.name}\n header={header}\n // className=\"text-sm\"\n sortable={column.attrs.sortable}\n body={(rowData) => {\n let viewWidget = column.attrs.viewWidget;\n if (!viewWidget) {\n viewWidget = 'DefaultRelationManyToOneListWidget';\n }\n let DynamicWidget = getExtensionComponent(viewWidget);\n const widgetProps: SolidListFieldWidgetProps = {\n rowData,\n solidListViewMetaData,\n fieldMetadata,\n column,\n embeded\n }\n return (\n <>\n {DynamicWidget && <DynamicWidget {...widgetProps} />}\n </>\n )\n }\n }\n filterPlaceholder={`Search by ${fieldMetadata.displayName}`}\n style={{ minWidth: \"12rem\" }}\n headerClassName=\"table-header-fs\"\n ></Column>\n );\n\n};\n\nexport default SolidRelationManyToOneColumn;\n\n\nexport const DefaultRelationManyToOneListWidget = ({ rowData, solidListViewMetaData, fieldMetadata, column, embeded }: SolidListFieldWidgetProps) => {\n const manyToOneFieldData = rowData[column.attrs.name];\n // This is the userkey that will be present within the rowData.\n if (manyToOneFieldData) {\n // Since this is a many-to-one field, we fetch the user key field of the associated model.\n const userKeyField = column?.attrs?.coModelFieldToDisplay ? column?.attrs?.coModelFieldToDisplay : fieldMetadata?.relationModel?.userKeyField?.name;\n\n const manyToOneColVal = manyToOneFieldData[userKeyField];\n\n const isDisabled = column?.attrs?.disabled === true;\n\n if (embeded === true || isDisabled) {\n return (\n <span className=\"solid-list-external-link-text\">\n {manyToOneColVal}\n </span>\n );\n }\n\n return (\n <button\n type=\"button\"\n className=\"solid-list-external-link\"\n onClick={() => {\n const pathSegments = window.location.pathname.split('/').filter(Boolean);\n\n const listIndex = pathSegments.lastIndexOf('list');\n\n if (listIndex > 0) {\n pathSegments[listIndex - 1] = kebabCase(fieldMetadata?.relationModel?.singularName);\n pathSegments[listIndex] = `form/${manyToOneFieldData?.id}`;\n }\n else if (pathSegments[pathSegments.length - 2] === \"form\") {\n pathSegments[pathSegments.length - 3] = kebabCase(fieldMetadata?.relationModel?.singularName);\n pathSegments[pathSegments.length - 2] = \"form\";\n pathSegments[pathSegments.length - 1] = manyToOneFieldData?.id;\n }\n\n const newPath = `/${pathSegments.join('/')}?viewMode=view`;\n\n // open in new tab\n window.open(newPath, \"_blank\");\n\n }}\n >\n <span className=\"solid-list-external-link-text\">{manyToOneColVal}</span>\n <ExternalLink size={13} strokeWidth={2} className=\"solid-list-external-link-icon\" />\n </button>\n );\n }\n else {\n return <span></span>\n }\n};\n"]}