@solidxai/core-ui 0.1.9-beta.17 → 0.1.9-beta.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (258) 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/SolidLogin.js +2 -2
  7. package/dist/components/auth/SolidLogin.js.map +1 -1
  8. package/dist/components/auth/SolidLogin.tsx +2 -2
  9. package/dist/components/auth/SolidRegister.js +1 -1
  10. package/dist/components/auth/SolidRegister.js.map +1 -1
  11. package/dist/components/auth/SolidRegister.tsx +1 -1
  12. package/dist/components/common/SettingsComponent.d.ts.map +1 -1
  13. package/dist/components/common/SettingsComponent.js +3 -0
  14. package/dist/components/common/SettingsComponent.js.map +1 -1
  15. package/dist/components/common/SettingsComponent.tsx +3 -0
  16. package/dist/components/common/SocialMediaLogin.d.ts.map +1 -1
  17. package/dist/components/common/SocialMediaLogin.js +1 -1
  18. package/dist/components/common/SocialMediaLogin.js.map +1 -1
  19. package/dist/components/common/SocialMediaLogin.tsx +4 -0
  20. package/dist/components/common/SolidFaviconProvider.d.ts +3 -0
  21. package/dist/components/common/SolidFaviconProvider.d.ts.map +1 -0
  22. package/dist/components/common/SolidFaviconProvider.js +102 -0
  23. package/dist/components/common/SolidFaviconProvider.js.map +1 -0
  24. package/dist/components/common/SolidFaviconProvider.tsx +55 -0
  25. package/dist/components/core/card/SolidCardView.js +1 -1
  26. package/dist/components/core/card/SolidCardView.js.map +1 -1
  27. package/dist/components/core/card/SolidCardView.tsx +1 -1
  28. package/dist/components/core/chatter/SolidMessageComposer.d.ts.map +1 -1
  29. package/dist/components/core/chatter/SolidMessageComposer.js +2 -1
  30. package/dist/components/core/chatter/SolidMessageComposer.js.map +1 -1
  31. package/dist/components/core/chatter/SolidMessageComposer.tsx +2 -0
  32. package/dist/components/core/common/FilterComponent.d.ts.map +1 -1
  33. package/dist/components/core/common/FilterComponent.js +4 -2
  34. package/dist/components/core/common/FilterComponent.js.map +1 -1
  35. package/dist/components/core/common/FilterComponent.tsx +5 -2
  36. package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.d.ts.map +1 -1
  37. package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.js +1 -10
  38. package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.js.map +1 -1
  39. package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.tsx +1 -8
  40. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.d.ts.map +1 -1
  41. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.js +6 -11
  42. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.js.map +1 -1
  43. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.tsx +5 -31
  44. package/dist/components/core/common/SolidGenericImport/SolidImport.module.css +1 -1
  45. package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.d.ts.map +1 -1
  46. package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.js +2 -0
  47. package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.js.map +1 -1
  48. package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.tsx +2 -0
  49. package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
  50. package/dist/components/core/common/SolidGlobalSearchElement.js +47 -13
  51. package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
  52. package/dist/components/core/common/SolidGlobalSearchElement.tsx +38 -4
  53. package/dist/components/core/common/SolidSaveCustomFilterForm.d.ts.map +1 -1
  54. package/dist/components/core/common/SolidSaveCustomFilterForm.js +1 -1
  55. package/dist/components/core/common/SolidSaveCustomFilterForm.js.map +1 -1
  56. package/dist/components/core/common/SolidSaveCustomFilterForm.tsx +0 -1
  57. package/dist/components/core/extension/solid-core/metadata/MetadataExplorerFormWidget.d.ts +16 -0
  58. package/dist/components/core/extension/solid-core/metadata/MetadataExplorerFormWidget.d.ts.map +1 -0
  59. package/dist/components/core/extension/solid-core/metadata/MetadataExplorerFormWidget.js +31 -0
  60. package/dist/components/core/extension/solid-core/metadata/MetadataExplorerFormWidget.js.map +1 -0
  61. package/dist/components/core/extension/solid-core/metadata/MetadataExplorerFormWidget.tsx +43 -0
  62. package/dist/components/core/extension/solid-core/moduleMetadata/list/ClearModulePackageRuntimeHeaderAction.d.ts +3 -0
  63. package/dist/components/core/extension/solid-core/moduleMetadata/list/ClearModulePackageRuntimeHeaderAction.d.ts.map +1 -0
  64. package/dist/components/core/extension/solid-core/moduleMetadata/list/ClearModulePackageRuntimeHeaderAction.js +141 -0
  65. package/dist/components/core/extension/solid-core/moduleMetadata/list/ClearModulePackageRuntimeHeaderAction.js.map +1 -0
  66. package/dist/components/core/extension/solid-core/moduleMetadata/list/ClearModulePackageRuntimeHeaderAction.tsx +205 -0
  67. package/dist/components/core/extension/solid-core/moduleMetadata/list/ExportModulePackageRowAction.d.ts +4 -0
  68. package/dist/components/core/extension/solid-core/moduleMetadata/list/ExportModulePackageRowAction.d.ts.map +1 -0
  69. package/dist/components/core/extension/solid-core/moduleMetadata/list/ExportModulePackageRowAction.js +112 -0
  70. package/dist/components/core/extension/solid-core/moduleMetadata/list/ExportModulePackageRowAction.js.map +1 -0
  71. package/dist/components/core/extension/solid-core/moduleMetadata/list/ExportModulePackageRowAction.tsx +146 -0
  72. package/dist/components/core/extension/solid-core/moduleMetadata/list/ModuleImportListHeaderAction.d.ts +11 -0
  73. package/dist/components/core/extension/solid-core/moduleMetadata/list/ModuleImportListHeaderAction.d.ts.map +1 -0
  74. package/dist/components/core/extension/solid-core/moduleMetadata/list/ModuleImportListHeaderAction.js +22 -0
  75. package/dist/components/core/extension/solid-core/moduleMetadata/list/ModuleImportListHeaderAction.js.map +1 -0
  76. package/dist/components/core/extension/solid-core/moduleMetadata/list/ModuleImportListHeaderAction.tsx +36 -0
  77. package/dist/components/core/extension/solid-core/moduleMetadata/list/moduleMetadataListOnLoad.d.ts +3 -0
  78. package/dist/components/core/extension/solid-core/moduleMetadata/list/moduleMetadataListOnLoad.d.ts.map +1 -0
  79. package/dist/components/core/extension/solid-core/moduleMetadata/list/moduleMetadataListOnLoad.js +133 -0
  80. package/dist/components/core/extension/solid-core/moduleMetadata/list/moduleMetadataListOnLoad.js.map +1 -0
  81. package/dist/components/core/extension/solid-core/moduleMetadata/list/moduleMetadataListOnLoad.ts +76 -0
  82. package/dist/components/core/form/SolidFormView.js +1 -1
  83. package/dist/components/core/form/SolidFormView.js.map +1 -1
  84. package/dist/components/core/form/SolidFormView.tsx +1 -1
  85. package/dist/components/core/form/SolidFormViewContextMenuHeaderButton.d.ts.map +1 -1
  86. package/dist/components/core/form/SolidFormViewContextMenuHeaderButton.js +12 -3
  87. package/dist/components/core/form/SolidFormViewContextMenuHeaderButton.js.map +1 -1
  88. package/dist/components/core/form/SolidFormViewContextMenuHeaderButton.tsx +21 -16
  89. package/dist/components/core/form/SolidFormViewNormalHeaderButton.d.ts.map +1 -1
  90. package/dist/components/core/form/SolidFormViewNormalHeaderButton.js +15 -5
  91. package/dist/components/core/form/SolidFormViewNormalHeaderButton.js.map +1 -1
  92. package/dist/components/core/form/SolidFormViewNormalHeaderButton.tsx +21 -9
  93. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.d.ts +12 -0
  94. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.d.ts.map +1 -0
  95. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.js +168 -0
  96. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.js.map +1 -0
  97. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.tsx +241 -0
  98. package/dist/components/core/list/SolidEmptyListViewPlaceholder.d.ts.map +1 -1
  99. package/dist/components/core/list/SolidEmptyListViewPlaceholder.js +3 -0
  100. package/dist/components/core/list/SolidEmptyListViewPlaceholder.js.map +1 -1
  101. package/dist/components/core/list/SolidEmptyListViewPlaceholder.tsx +2 -0
  102. package/dist/components/core/list/SolidListView.d.ts.map +1 -1
  103. package/dist/components/core/list/SolidListView.js +102 -87
  104. package/dist/components/core/list/SolidListView.js.map +1 -1
  105. package/dist/components/core/list/SolidListView.tsx +38 -19
  106. package/dist/components/core/list/SolidListViewColumn.d.ts +1 -0
  107. package/dist/components/core/list/SolidListViewColumn.d.ts.map +1 -1
  108. package/dist/components/core/list/SolidListViewColumn.js +25 -0
  109. package/dist/components/core/list/SolidListViewColumn.js.map +1 -1
  110. package/dist/components/core/list/SolidListViewColumn.tsx +12 -0
  111. package/dist/components/core/list/SolidListViewConfigure.d.ts.map +1 -1
  112. package/dist/components/core/list/SolidListViewConfigure.js +11 -10
  113. package/dist/components/core/list/SolidListViewConfigure.js.map +1 -1
  114. package/dist/components/core/list/SolidListViewConfigure.tsx +4 -2
  115. package/dist/components/core/list/SolidListViewHeaderButton.d.ts.map +1 -1
  116. package/dist/components/core/list/SolidListViewHeaderButton.js +9 -3
  117. package/dist/components/core/list/SolidListViewHeaderButton.js.map +1 -1
  118. package/dist/components/core/list/SolidListViewHeaderButton.tsx +12 -7
  119. package/dist/components/core/list/SolidListViewHeaderContextMenuButton.d.ts.map +1 -1
  120. package/dist/components/core/list/SolidListViewHeaderContextMenuButton.js +19 -7
  121. package/dist/components/core/list/SolidListViewHeaderContextMenuButton.js.map +1 -1
  122. package/dist/components/core/list/SolidListViewHeaderContextMenuButton.tsx +19 -6
  123. package/dist/components/core/list/SolidListViewRowActionMenuItem.d.ts.map +1 -1
  124. package/dist/components/core/list/SolidListViewRowActionMenuItem.js +14 -5
  125. package/dist/components/core/list/SolidListViewRowActionMenuItem.js.map +1 -1
  126. package/dist/components/core/list/SolidListViewRowActionMenuItem.tsx +17 -6
  127. package/dist/components/core/list/SolidListViewRowActionsMenu.d.ts.map +1 -1
  128. package/dist/components/core/list/SolidListViewRowActionsMenu.js +7 -1
  129. package/dist/components/core/list/SolidListViewRowActionsMenu.js.map +1 -1
  130. package/dist/components/core/list/SolidListViewRowActionsMenu.tsx +5 -1
  131. package/dist/components/core/list/columns/SolidBooleanColumn.d.ts.map +1 -1
  132. package/dist/components/core/list/columns/SolidBooleanColumn.js +4 -6
  133. package/dist/components/core/list/columns/SolidBooleanColumn.js.map +1 -1
  134. package/dist/components/core/list/columns/SolidBooleanColumn.tsx +1 -3
  135. package/dist/components/core/list/columns/SolidMediaMultipleColumn.d.ts.map +1 -1
  136. package/dist/components/core/list/columns/SolidMediaMultipleColumn.js +3 -2
  137. package/dist/components/core/list/columns/SolidMediaMultipleColumn.js.map +1 -1
  138. package/dist/components/core/list/columns/SolidMediaMultipleColumn.tsx +3 -2
  139. package/dist/components/core/list/columns/SolidMediaSingleColumn.d.ts.map +1 -1
  140. package/dist/components/core/list/columns/SolidMediaSingleColumn.js +3 -2
  141. package/dist/components/core/list/columns/SolidMediaSingleColumn.js.map +1 -1
  142. package/dist/components/core/list/columns/SolidMediaSingleColumn.tsx +3 -2
  143. package/dist/components/core/model/CreateModel.css +48 -0
  144. package/dist/components/core/model/CreateModel.d.ts +1 -0
  145. package/dist/components/core/model/CreateModel.d.ts.map +1 -1
  146. package/dist/components/core/model/CreateModel.js +69 -104
  147. package/dist/components/core/model/CreateModel.js.map +1 -1
  148. package/dist/components/core/model/CreateModel.tsx +92 -204
  149. package/dist/components/core/model/FieldMetaData.d.ts +1 -1
  150. package/dist/components/core/model/FieldMetaData.d.ts.map +1 -1
  151. package/dist/components/core/model/FieldMetaData.js +6 -22
  152. package/dist/components/core/model/FieldMetaData.js.map +1 -1
  153. package/dist/components/core/model/FieldMetaData.tsx +6 -45
  154. package/dist/components/core/model/FieldMetaDataForm.d.ts.map +1 -1
  155. package/dist/components/core/model/FieldMetaDataForm.js +196 -222
  156. package/dist/components/core/model/FieldMetaDataForm.js.map +1 -1
  157. package/dist/components/core/model/FieldMetaDataForm.tsx +0 -72
  158. package/dist/components/core/model/ModelMetaData.d.ts.map +1 -1
  159. package/dist/components/core/model/ModelMetaData.js +7 -7
  160. package/dist/components/core/model/ModelMetaData.js.map +1 -1
  161. package/dist/components/core/model/ModelMetaData.tsx +7 -0
  162. package/dist/components/core/module/CreateModule.css +44 -0
  163. package/dist/components/core/module/CreateModule.d.ts +1 -0
  164. package/dist/components/core/module/CreateModule.d.ts.map +1 -1
  165. package/dist/components/core/module/CreateModule.js +40 -43
  166. package/dist/components/core/module/CreateModule.js.map +1 -1
  167. package/dist/components/core/module/CreateModule.tsx +243 -247
  168. package/dist/components/core/module/ModuleListViewData.d.ts.map +1 -1
  169. package/dist/components/core/module/ModuleListViewData.js +47 -7
  170. package/dist/components/core/module/ModuleListViewData.js.map +1 -1
  171. package/dist/components/core/module/ModuleListViewData.tsx +58 -0
  172. package/dist/components/core/module/ModuleMetadataExplorer.css +638 -0
  173. package/dist/components/core/module/ModuleMetadataExplorer.d.ts +15 -0
  174. package/dist/components/core/module/ModuleMetadataExplorer.d.ts.map +1 -0
  175. package/dist/components/core/module/ModuleMetadataExplorer.js +666 -0
  176. package/dist/components/core/module/ModuleMetadataExplorer.js.map +1 -0
  177. package/dist/components/core/module/ModuleMetadataExplorer.tsx +1000 -0
  178. package/dist/components/core/module/ModulePackageDialog.css +540 -0
  179. package/dist/components/core/module/ModulePackageDialog.d.ts +16 -0
  180. package/dist/components/core/module/ModulePackageDialog.d.ts.map +1 -0
  181. package/dist/components/core/module/ModulePackageDialog.js +625 -0
  182. package/dist/components/core/module/ModulePackageDialog.js.map +1 -0
  183. package/dist/components/core/module/ModulePackageDialog.tsx +906 -0
  184. package/dist/components/layout/AdminTopHeader.d.ts.map +1 -1
  185. package/dist/components/layout/AdminTopHeader.js +1 -1
  186. package/dist/components/layout/AdminTopHeader.js.map +1 -1
  187. package/dist/components/layout/AdminTopHeader.tsx +2 -1
  188. package/dist/components/layout/user-profile-menu.d.ts.map +1 -1
  189. package/dist/components/layout/user-profile-menu.js +57 -33
  190. package/dist/components/layout/user-profile-menu.js.map +1 -1
  191. package/dist/components/layout/user-profile-menu.tsx +11 -59
  192. package/dist/components/shad-cn-ui/SolidAutocomplete.d.ts.map +1 -1
  193. package/dist/components/shad-cn-ui/SolidAutocomplete.js +15 -0
  194. package/dist/components/shad-cn-ui/SolidAutocomplete.js.map +1 -1
  195. package/dist/components/shad-cn-ui/SolidAutocomplete.tsx +13 -0
  196. package/dist/components/shad-cn-ui/SolidButton.d.ts.map +1 -1
  197. package/dist/components/shad-cn-ui/SolidButton.js +10 -2
  198. package/dist/components/shad-cn-ui/SolidButton.js.map +1 -1
  199. package/dist/components/shad-cn-ui/SolidButton.tsx +10 -2
  200. package/dist/components/shad-cn-ui/SolidIcon.d.ts +2 -1
  201. package/dist/components/shad-cn-ui/SolidIcon.d.ts.map +1 -1
  202. package/dist/components/shad-cn-ui/SolidIcon.js +1 -0
  203. package/dist/components/shad-cn-ui/SolidIcon.js.map +1 -1
  204. package/dist/components/shad-cn-ui/SolidIcon.tsx +1 -0
  205. package/dist/components/shad-cn-ui/SolidPasswordInput.d.ts.map +1 -1
  206. package/dist/components/shad-cn-ui/SolidPasswordInput.js +1 -1
  207. package/dist/components/shad-cn-ui/SolidPasswordInput.js.map +1 -1
  208. package/dist/components/shad-cn-ui/SolidPasswordInput.tsx +1 -0
  209. package/dist/helpers/buttonEnvironment.d.ts +5 -0
  210. package/dist/helpers/buttonEnvironment.d.ts.map +1 -0
  211. package/dist/helpers/buttonEnvironment.js +30 -0
  212. package/dist/helpers/buttonEnvironment.js.map +1 -0
  213. package/dist/helpers/buttonEnvironment.ts +35 -0
  214. package/dist/helpers/buttonPresentation.d.ts +24 -0
  215. package/dist/helpers/buttonPresentation.d.ts.map +1 -0
  216. package/dist/helpers/buttonPresentation.js +28 -0
  217. package/dist/helpers/buttonPresentation.js.map +1 -0
  218. package/dist/helpers/buttonPresentation.ts +53 -0
  219. package/dist/helpers/fileTypeIcon.d.ts +12 -0
  220. package/dist/helpers/fileTypeIcon.d.ts.map +1 -0
  221. package/dist/helpers/fileTypeIcon.js +37 -0
  222. package/dist/helpers/fileTypeIcon.js.map +1 -0
  223. package/dist/helpers/fileTypeIcon.tsx +65 -0
  224. package/dist/helpers/registry.d.ts.map +1 -1
  225. package/dist/helpers/registry.js +10 -0
  226. package/dist/helpers/registry.js.map +1 -1
  227. package/dist/helpers/registry.ts +10 -0
  228. package/dist/helpers/waitForBackendAvailability.d.ts +7 -0
  229. package/dist/helpers/waitForBackendAvailability.d.ts.map +1 -0
  230. package/dist/helpers/waitForBackendAvailability.js +86 -0
  231. package/dist/helpers/waitForBackendAvailability.js.map +1 -0
  232. package/dist/helpers/waitForBackendAvailability.ts +37 -0
  233. package/dist/index.d.ts +3 -1
  234. package/dist/index.d.ts.map +1 -1
  235. package/dist/index.js +3 -1
  236. package/dist/index.js.map +1 -1
  237. package/dist/index.ts +19 -0
  238. package/dist/redux/api/moduleApi.d.ts +26 -1
  239. package/dist/redux/api/moduleApi.d.ts.map +1 -1
  240. package/dist/redux/api/moduleApi.js +237 -1
  241. package/dist/redux/api/moduleApi.js.map +1 -1
  242. package/dist/redux/api/moduleApi.ts +181 -1
  243. package/dist/redux/store/defaultStoreConfig.d.ts +22 -0
  244. package/dist/redux/store/defaultStoreConfig.d.ts.map +1 -1
  245. package/dist/redux/store/solidEntityApiPool.d.ts +1 -0
  246. package/dist/redux/store/solidEntityApiPool.d.ts.map +1 -1
  247. package/dist/redux/store/solidEntityApiPool.js +4 -0
  248. package/dist/redux/store/solidEntityApiPool.js.map +1 -1
  249. package/dist/redux/store/solidEntityApiPool.ts +4 -0
  250. package/dist/resources/globals.css +56 -0
  251. package/dist/resources/shadcn-base.css +29 -4
  252. package/dist/routes/AppEventListener.d.ts.map +1 -1
  253. package/dist/routes/AppEventListener.js +58 -8
  254. package/dist/routes/AppEventListener.js.map +1 -1
  255. package/dist/routes/AppEventListener.tsx +69 -8
  256. package/dist/types/index.d.ts +1 -0
  257. package/dist/types/jsoneditor.d.ts +4 -0
  258. package/package.json +2 -1
@@ -3,7 +3,7 @@ import { SolidDataTable as DataTable, DataTableStateEvent, Column } from "./Soli
3
3
  import qs from "qs";
4
4
  import { createSolidEntityApi } from "../../../redux/api/solidEntityApi";
5
5
  import { useGetSolidViewLayoutQuery } from "../../../redux/api/solidViewApi";
6
- import { SolidListViewColumn } from "./SolidListViewColumn";
6
+ import { SolidListViewColumn, isFieldSortable } from "./SolidListViewColumn";
7
7
  import { SolidCreateButton } from "../common/SolidCreateButton";
8
8
  import { SolidGlobalSearchElement } from "../common/SolidGlobalSearchElement";
9
9
  import { useLazyCheckIfPermissionExistsQuery } from "../../../redux/api/userApi";
@@ -21,8 +21,10 @@ import type { SolidLightboxSlide } from "../../shad-cn-ui/SolidLightbox";
21
21
  import { SolidListViewConfigure } from "./SolidListViewConfigure";
22
22
  import { SolidEmptyListViewPlaceholder } from "./SolidEmptyListViewPlaceholder";
23
23
  import { useHandleListCustomButtonClick } from "../../../components/common/useHandleListCustomButtonClick";
24
+ import { isButtonVisibleInCurrentEnv } from "../../../helpers/buttonEnvironment";
24
25
  import { hasAnyRole } from "../../../helpers/rolesHelper";
25
26
  import { SolidListViewHeaderButton } from "./SolidListViewHeaderButton";
27
+ import { resolveButtonPresentation } from "../../../helpers/buttonPresentation";
26
28
  import { useDispatch, useSelector } from "react-redux";
27
29
  import styles from "./SolidListViewWrapper.module.css";
28
30
  import { SolidBeforeListDataLoad, SolidListUiEventResponse, SolidLoadList } from "../../../types/solid-core";
@@ -47,7 +49,7 @@ import {
47
49
  SolidDialogTitle,
48
50
  } from "../../shad-cn-ui";
49
51
  import { FilterMatchMode } from "../filter/filterMatchMode";
50
- import { LayoutGrid, Pencil, Plus, RefreshCw, RotateCcw, Search, SquarePen, Trash2 } from "lucide-react";
52
+ import { LayoutGrid, Pencil, Plus, RefreshCw, RotateCcw, Search, Trash2 } from "lucide-react";
51
53
  // import { ERROR_MESSAGES } from "../../../constants/error-messages";
52
54
 
53
55
  const getRandomInt = (min: number, max: number) => {
@@ -250,6 +252,14 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
250
252
 
251
253
  const handleCustomButtonClick = useHandleListCustomButtonClick();
252
254
 
255
+ const visibleHeaderButtons = useMemo(
256
+ () =>
257
+ (solidListViewLayout?.attrs?.headerButtons ?? []).filter(
258
+ (button: any) => isButtonVisibleInCurrentEnv(button?.attrs),
259
+ ),
260
+ [solidListViewLayout?.attrs?.headerButtons],
261
+ );
262
+
253
263
  const editBaseUrl = useMemo(
254
264
  () => normalizeSolidListTreeKanbanActionPath(pathname, editButtonUrl || "form"),
255
265
  [editButtonUrl, pathname]
@@ -284,7 +294,6 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
284
294
  fetchPermissions();
285
295
  }, [params.modelName]);
286
296
 
287
-
288
297
  const isFilterApplied = filters ? true : false;
289
298
 
290
299
  // Create the RTK slices for this entity
@@ -774,11 +783,15 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
774
783
  const currentSortOrder = latestSortOrderRef.current;
775
784
  if (currentSortField && (currentSortOrder === 1 || currentSortOrder === -1)) {
776
785
  const meta = solidFieldsMetadata?.[currentSortField];
777
- let resolvedField = currentSortField;
778
- if (meta?.type === "relation" && meta?.relationType === "many-to-one") {
779
- resolvedField = `${currentSortField}.${meta?.relationModel?.userKeyField?.name}`;
786
+ if (!isFieldSortable(meta)) {
787
+ queryData.sort = [`id:desc`];
788
+ } else {
789
+ let resolvedField = currentSortField;
790
+ if (meta?.type === "relation" && meta?.relationType === "many-to-one") {
791
+ resolvedField = `${currentSortField}.${meta?.relationModel?.userKeyField?.name}`;
792
+ }
793
+ queryData.sort = [`${resolvedField}:${currentSortOrder === 1 ? "asc" : "desc"}`];
780
794
  }
781
- queryData.sort = [`${resolvedField}:${currentSortOrder === 1 ? "asc" : "desc"}`];
782
795
  } else {
783
796
  queryData.sort = [`id:desc`];
784
797
  }
@@ -1295,7 +1308,7 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
1295
1308
 
1296
1309
  const hasCustomContextMenuButtons =
1297
1310
  solidListViewLayout?.attrs?.rowButtons?.some(
1298
- (rb: any) => rb?.attrs?.actionInContextMenu === true
1311
+ (rb: any) => rb?.attrs?.actionInContextMenu === true && isButtonVisibleInCurrentEnv(rb?.attrs)
1299
1312
  );
1300
1313
 
1301
1314
  const hasAnyContextMenuActions =
@@ -1361,7 +1374,7 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
1361
1374
  )}
1362
1375
 
1363
1376
  <div className="hidden lg:flex align-items-center solid-header-buttons-wrapper">
1364
- {solidListViewLayout?.attrs?.headerButtons
1377
+ {visibleHeaderButtons
1365
1378
  ?.filter((rb: any) => rb.attrs.actionInContextMenu != true)
1366
1379
  ?.map((button: any, index: number) => (
1367
1380
  <SolidListViewHeaderButton
@@ -1589,8 +1602,9 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
1589
1602
  hasAnyRole(user?.roles, roles);
1590
1603
 
1591
1604
  const isVisible = rb?.attrs?.visible !== false;
1605
+ const isVisibleInCurrentEnv = isButtonVisibleInCurrentEnv(rb?.attrs);
1592
1606
 
1593
- return !isInContextMenu && isAllowed && isVisible;
1607
+ return !isInContextMenu && isAllowed && isVisible && isVisibleInCurrentEnv;
1594
1608
  })
1595
1609
  .map((button: any, index: number) => {
1596
1610
 
@@ -1600,12 +1614,19 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
1600
1614
  header={button.attrs.label}
1601
1615
  body={(rowData) => {
1602
1616
  return (
1617
+ (() => {
1618
+ const presentation = resolveButtonPresentation(button?.attrs);
1619
+ if (!presentation.showIcon && !presentation.showLabel) return null;
1620
+ return (
1603
1621
  <SolidButton
1604
1622
  type="button"
1605
- icon={button?.attrs?.icon}
1606
- leftIcon={!button?.attrs?.icon ? <SquarePen size={14} /> : undefined}
1607
- className={`solid-inline-row-button w-full text-left gap-2 ${button?.attrs?.className
1608
- ? button?.attrs?.className
1623
+ icon={presentation.icon}
1624
+ iconPos={presentation.iconPos}
1625
+ label={presentation.label}
1626
+ tooltip={presentation.tooltip}
1627
+ aria-label={presentation.isIconOnly ? (presentation.tooltip ?? button?.attrs?.action ?? "Action") : undefined}
1628
+ className={`solid-inline-row-button w-full text-left gap-2 ${presentation.buttonClassName
1629
+ ? presentation.buttonClassName
1609
1630
  : ""
1610
1631
  }`}
1611
1632
  size="small"
@@ -1619,11 +1640,9 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
1619
1640
  };
1620
1641
  handleCustomButtonClick(button.attrs, event);
1621
1642
  }}
1622
- >
1623
- {button.attrs.showLabel !== false
1624
- ? button.attrs.label
1625
- : ""}
1626
- </SolidButton>
1643
+ />
1644
+ );
1645
+ })()
1627
1646
  );
1628
1647
  }}
1629
1648
  />
@@ -6,6 +6,7 @@ export type SolidListViewColumnParams = {
6
6
  setOpenLightbox?: any;
7
7
  embeded?: boolean;
8
8
  };
9
+ export declare const isFieldSortable: (fieldMetadata: any) => boolean;
9
10
  export declare const getNumberOfInputs: (matchMode: any) => number | null;
10
11
  export declare const SolidListViewColumn: ({ solidListViewMetaData, fieldMetadata, column, setLightboxUrls, setOpenLightbox, embeded }: SolidListViewColumnParams) => import("react/jsx-runtime").JSX.Element | undefined;
11
12
  //# sourceMappingURL=SolidListViewColumn.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SolidListViewColumn.d.ts","sourceRoot":"","sources":["../../../../src/components/core/list/SolidListViewColumn.tsx"],"names":[],"mappings":"AAqBA,MAAM,MAAM,yBAAyB,GAAG;IACpC,qBAAqB,EAAE,GAAG,CAAC;IAC3B,aAAa,EAAE,GAAG,CAAC;IACnB,MAAM,EAAE,GAAG,CAAC;IACZ,eAAe,CAAC,EAAE,GAAG,CAAC;IACtB,eAAe,CAAC,EAAE,GAAG,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,iBAAiB,cAAe,GAAG,KAAG,MAAM,GAAG,IAyB3D,CAAA;AAoBD,eAAO,MAAM,mBAAmB,gGAAiG,yBAAyB,wDA0FzJ,CAAC"}
1
+ {"version":3,"file":"SolidListViewColumn.d.ts","sourceRoot":"","sources":["../../../../src/components/core/list/SolidListViewColumn.tsx"],"names":[],"mappings":"AAqBA,MAAM,MAAM,yBAAyB,GAAG;IACpC,qBAAqB,EAAE,GAAG,CAAC;IAC3B,aAAa,EAAE,GAAG,CAAC;IACnB,MAAM,EAAE,GAAG,CAAC;IACZ,eAAe,CAAC,EAAE,GAAG,CAAC;IACtB,eAAe,CAAC,EAAE,GAAG,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,eAAe,kBAAmB,GAAG,KAAG,OAMpD,CAAC;AAEF,eAAO,MAAM,iBAAiB,cAAe,GAAG,KAAG,MAAM,GAAG,IAyB3D,CAAA;AAoBD,eAAO,MAAM,mBAAmB,gGAAiG,yBAAyB,wDA8FzJ,CAAC"}
@@ -1,3 +1,14 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
1
12
  import SolidBigintColumn from "./columns/SolidBigintColumn";
2
13
  import SolidBooleanColumn from "./columns/SolidBooleanColumn";
3
14
  import SolidComputedColumn from "./columns/SolidComputedColumn";
@@ -17,6 +28,16 @@ import SolidSelectionStaticColumn from "./columns/SolidSelectionStaticColumn";
17
28
  import SolidShortTextColumn from "./columns/SolidShortTextColumn";
18
29
  import SolidTimeColumn from "./columns/SolidTimeColumn";
19
30
  import SolidUuidColumn from "./columns/SolidUuidColumn";
31
+ export var isFieldSortable = function (fieldMetadata) {
32
+ if (!fieldMetadata)
33
+ return false;
34
+ var type = fieldMetadata.type;
35
+ if (type === 'mediaSingle' || type === 'mediaMultiple')
36
+ return false;
37
+ if (type === 'relation')
38
+ return fieldMetadata.relationType === 'many-to-one';
39
+ return true;
40
+ };
20
41
  export var getNumberOfInputs = function (matchMode) {
21
42
  if (matchMode.label && matchMode.label === 'Not In') {
22
43
  matchMode = 'notIn';
@@ -57,7 +78,11 @@ export var getNumberOfInputs = function (matchMode) {
57
78
  // }
58
79
  // };
59
80
  export var SolidListViewColumn = function (_a) {
81
+ var _b;
60
82
  var solidListViewMetaData = _a.solidListViewMetaData, fieldMetadata = _a.fieldMetadata, column = _a.column, setLightboxUrls = _a.setLightboxUrls, setOpenLightbox = _a.setOpenLightbox, embeded = _a.embeded;
83
+ if (!isFieldSortable(fieldMetadata) && ((_b = column === null || column === void 0 ? void 0 : column.attrs) === null || _b === void 0 ? void 0 : _b.sortable)) {
84
+ column = __assign(__assign({}, column), { attrs: __assign(__assign({}, column.attrs), { sortable: false }) });
85
+ }
61
86
  // And finally we can implement additional switching logic based on certain special fields.
62
87
  if (fieldMetadata.name === 'id') {
63
88
  return SolidIntColumn({ solidListViewMetaData: solidListViewMetaData, fieldMetadata: fieldMetadata, column: column });
@@ -1 +1 @@
1
- {"version":3,"file":"SolidListViewColumn.js","sourceRoot":"","sources":["../../../../src/components/core/list/SolidListViewColumn.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport SolidBigintColumn from \"./columns/SolidBigintColumn\";\nimport SolidBooleanColumn from \"./columns/SolidBooleanColumn\";\nimport SolidComputedColumn from \"./columns/SolidComputedColumn\";\nimport SolidDateColumn from \"./columns/SolidDateColumn\";\nimport SolidDatetimeColumn from \"./columns/SolidDatetimeColumn\";\nimport SolidDecimalColumn from \"./columns/SolidDecimalColumn\";\nimport SolidExternalIdColumn from \"./columns/SolidExternalIdColumn\";\nimport SolidFloatColumn from \"./columns/SolidFloatColumn\";\nimport SolidIntColumn from \"./columns/SolidIntColumn\";\nimport SolidLongTextColumn from \"./columns/SolidLongTextColumn\";\nimport SolidMediaMultipleColumn from \"./columns/SolidMediaMultipleColumn\";\nimport SolidMediaSingleColumn from \"./columns/SolidMediaSingleColumn\";\nimport SolidRelationColumn from \"./columns/SolidRelationColumn\";\nimport SolidRichTextColumn from \"./columns/SolidRichTextColumn\";\nimport SolidSelectionDynamicColumn from \"./columns/SolidSelectionDynamicColumn\";\nimport SolidSelectionStaticColumn from \"./columns/SolidSelectionStaticColumn\";\nimport SolidShortTextColumn from \"./columns/SolidShortTextColumn\";\nimport SolidTimeColumn from \"./columns/SolidTimeColumn\";\nimport SolidUuidColumn from \"./columns/SolidUuidColumn\";\n\nexport type SolidListViewColumnParams = {\n solidListViewMetaData: any;\n fieldMetadata: any,\n column: any,\n setLightboxUrls?: any,\n setOpenLightbox?: any,\n embeded?: boolean; \n};\n\nexport const getNumberOfInputs = (matchMode: any): number | null => {\n if (matchMode.label && matchMode.label === 'Not In') {\n matchMode = 'notIn';\n }\n\n switch (matchMode) {\n case 'between':\n return 2;\n case 'in':\n case 'notIn':\n return null;\n case 'startsWith':\n case 'contains':\n case 'notContains':\n case 'endsWith':\n case 'equals':\n case 'notEquals':\n case 'lt':\n case 'lte':\n case 'gt':\n case 'gte':\n return 1;\n default:\n return 1; // Default to single input if no specific match is found\n }\n}\n\n// // @ts-ignore\n// const components = require.context('./columns', false, /Solid.*Column\\.tsx$/);\n\n// // Define a function to dynamically load components based on type\n// const loadComponentByType = async (type: string) => {\n// try {\n// const componentName = `./columns/Solid${type.charAt(0).toUpperCase() + type.slice(1)}Column.tsx`;\n\n// // Dynamically import the component based on type\n// const componentModule = await import(componentName);\n\n// return componentModule.default;\n// } catch (error) {\n// console.error(`Failed to load component for type: ${type}`, error);\n// return null;\n// }\n// };\n\nexport const SolidListViewColumn = ({ solidListViewMetaData, fieldMetadata, column, setLightboxUrls, setOpenLightbox, embeded }: SolidListViewColumnParams) => {\n\n // And finally we can implement additional switching logic based on certain special fields. \n if (fieldMetadata.name === 'id') {\n return SolidIntColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n\n if (fieldMetadata.type === 'int') {\n return SolidIntColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n if (fieldMetadata.type === 'bigint') {\n return SolidBigintColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n if (fieldMetadata.type === 'float') {\n return SolidFloatColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n if (fieldMetadata.type === 'decimal') {\n return SolidDecimalColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n if (fieldMetadata.type === 'shortText') {\n return SolidShortTextColumn({ solidListViewMetaData, fieldMetadata, column, setLightboxUrls, setOpenLightbox });\n }\n if (fieldMetadata.type === 'longText') {\n return SolidLongTextColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n if (fieldMetadata.type === 'richText') {\n return SolidRichTextColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n if (fieldMetadata.type === 'email') {\n return SolidShortTextColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n if (fieldMetadata.type === 'boolean') {\n return SolidBooleanColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n if (fieldMetadata.type === 'date') {\n return SolidDateColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n if (fieldMetadata.type === 'datetime') {\n return SolidDatetimeColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n if (fieldMetadata.type === 'time') {\n return SolidTimeColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n if (fieldMetadata.type === 'relation') {\n return SolidRelationColumn({ solidListViewMetaData, fieldMetadata, column, embeded });\n }\n if (fieldMetadata.type === 'mediaSingle') {\n return SolidMediaSingleColumn({ solidListViewMetaData, fieldMetadata, column, setLightboxUrls, setOpenLightbox });\n }\n if (fieldMetadata.type === 'mediaMultiple') {\n return SolidMediaMultipleColumn({ solidListViewMetaData, fieldMetadata, column, setLightboxUrls, setOpenLightbox });\n }\n if (fieldMetadata.type === 'selectionStatic') {\n return SolidSelectionStaticColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n if (fieldMetadata.type === 'selectionDynamic') {\n return SolidSelectionDynamicColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n if (fieldMetadata.type === 'computed') {\n return SolidComputedColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n if (fieldMetadata.type === 'externalId') {\n return SolidExternalIdColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n if (fieldMetadata.type === 'uuid') {\n return SolidUuidColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n // // Load everything else based on type and dynamically.\n // else {\n // const ComponentFound = await loadComponentByType(fieldMetadata.type);\n // const ComponentNotFound = ({ solidListViewMetaData, fieldMetadata, column }: SolidListViewColumnParams) => (\n // <Column\n // key={fieldMetadata.name}\n // field={fieldMetadata.name}\n // header={fieldMetadata.displayName}\n // className=\"text-sm\"\n // sortable={false}\n // filter={false}\n // showFilterOperator={false}\n // body={() => (<span>Type not supported</span>)}\n // style={{ minWidth: \"12rem\" }}\n // headerClassName=\"table-header-fs\"\n // ></Column>\n // );\n\n // return ComponentFound ? ComponentFound({ solidListViewMetaData, fieldMetadata, column }) : ComponentNotFound({ solidListViewMetaData, fieldMetadata, column });\n // }\n\n // TODO: we can implement additional switching logic based on the widget type being used to render the list view column.\n\n};\n"]}
1
+ {"version":3,"file":"SolidListViewColumn.js","sourceRoot":"","sources":["../../../../src/components/core/list/SolidListViewColumn.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport SolidBigintColumn from \"./columns/SolidBigintColumn\";\nimport SolidBooleanColumn from \"./columns/SolidBooleanColumn\";\nimport SolidComputedColumn from \"./columns/SolidComputedColumn\";\nimport SolidDateColumn from \"./columns/SolidDateColumn\";\nimport SolidDatetimeColumn from \"./columns/SolidDatetimeColumn\";\nimport SolidDecimalColumn from \"./columns/SolidDecimalColumn\";\nimport SolidExternalIdColumn from \"./columns/SolidExternalIdColumn\";\nimport SolidFloatColumn from \"./columns/SolidFloatColumn\";\nimport SolidIntColumn from \"./columns/SolidIntColumn\";\nimport SolidLongTextColumn from \"./columns/SolidLongTextColumn\";\nimport SolidMediaMultipleColumn from \"./columns/SolidMediaMultipleColumn\";\nimport SolidMediaSingleColumn from \"./columns/SolidMediaSingleColumn\";\nimport SolidRelationColumn from \"./columns/SolidRelationColumn\";\nimport SolidRichTextColumn from \"./columns/SolidRichTextColumn\";\nimport SolidSelectionDynamicColumn from \"./columns/SolidSelectionDynamicColumn\";\nimport SolidSelectionStaticColumn from \"./columns/SolidSelectionStaticColumn\";\nimport SolidShortTextColumn from \"./columns/SolidShortTextColumn\";\nimport SolidTimeColumn from \"./columns/SolidTimeColumn\";\nimport SolidUuidColumn from \"./columns/SolidUuidColumn\";\n\nexport type SolidListViewColumnParams = {\n solidListViewMetaData: any;\n fieldMetadata: any,\n column: any,\n setLightboxUrls?: any,\n setOpenLightbox?: any,\n embeded?: boolean; \n};\n\nexport const isFieldSortable = (fieldMetadata: any): boolean => {\n if (!fieldMetadata) return false;\n const type = fieldMetadata.type;\n if (type === 'mediaSingle' || type === 'mediaMultiple') return false;\n if (type === 'relation') return fieldMetadata.relationType === 'many-to-one';\n return true;\n};\n\nexport const getNumberOfInputs = (matchMode: any): number | null => {\n if (matchMode.label && matchMode.label === 'Not In') {\n matchMode = 'notIn';\n }\n\n switch (matchMode) {\n case 'between':\n return 2;\n case 'in':\n case 'notIn':\n return null;\n case 'startsWith':\n case 'contains':\n case 'notContains':\n case 'endsWith':\n case 'equals':\n case 'notEquals':\n case 'lt':\n case 'lte':\n case 'gt':\n case 'gte':\n return 1;\n default:\n return 1; // Default to single input if no specific match is found\n }\n}\n\n// // @ts-ignore\n// const components = require.context('./columns', false, /Solid.*Column\\.tsx$/);\n\n// // Define a function to dynamically load components based on type\n// const loadComponentByType = async (type: string) => {\n// try {\n// const componentName = `./columns/Solid${type.charAt(0).toUpperCase() + type.slice(1)}Column.tsx`;\n\n// // Dynamically import the component based on type\n// const componentModule = await import(componentName);\n\n// return componentModule.default;\n// } catch (error) {\n// console.error(`Failed to load component for type: ${type}`, error);\n// return null;\n// }\n// };\n\nexport const SolidListViewColumn = ({ solidListViewMetaData, fieldMetadata, column, setLightboxUrls, setOpenLightbox, embeded }: SolidListViewColumnParams) => {\n\n if (!isFieldSortable(fieldMetadata) && column?.attrs?.sortable) {\n column = { ...column, attrs: { ...column.attrs, sortable: false } };\n }\n\n // And finally we can implement additional switching logic based on certain special fields. \n if (fieldMetadata.name === 'id') {\n return SolidIntColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n\n if (fieldMetadata.type === 'int') {\n return SolidIntColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n if (fieldMetadata.type === 'bigint') {\n return SolidBigintColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n if (fieldMetadata.type === 'float') {\n return SolidFloatColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n if (fieldMetadata.type === 'decimal') {\n return SolidDecimalColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n if (fieldMetadata.type === 'shortText') {\n return SolidShortTextColumn({ solidListViewMetaData, fieldMetadata, column, setLightboxUrls, setOpenLightbox });\n }\n if (fieldMetadata.type === 'longText') {\n return SolidLongTextColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n if (fieldMetadata.type === 'richText') {\n return SolidRichTextColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n if (fieldMetadata.type === 'email') {\n return SolidShortTextColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n if (fieldMetadata.type === 'boolean') {\n return SolidBooleanColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n if (fieldMetadata.type === 'date') {\n return SolidDateColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n if (fieldMetadata.type === 'datetime') {\n return SolidDatetimeColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n if (fieldMetadata.type === 'time') {\n return SolidTimeColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n if (fieldMetadata.type === 'relation') {\n return SolidRelationColumn({ solidListViewMetaData, fieldMetadata, column, embeded });\n }\n if (fieldMetadata.type === 'mediaSingle') {\n return SolidMediaSingleColumn({ solidListViewMetaData, fieldMetadata, column, setLightboxUrls, setOpenLightbox });\n }\n if (fieldMetadata.type === 'mediaMultiple') {\n return SolidMediaMultipleColumn({ solidListViewMetaData, fieldMetadata, column, setLightboxUrls, setOpenLightbox });\n }\n if (fieldMetadata.type === 'selectionStatic') {\n return SolidSelectionStaticColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n if (fieldMetadata.type === 'selectionDynamic') {\n return SolidSelectionDynamicColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n if (fieldMetadata.type === 'computed') {\n return SolidComputedColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n if (fieldMetadata.type === 'externalId') {\n return SolidExternalIdColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n if (fieldMetadata.type === 'uuid') {\n return SolidUuidColumn({ solidListViewMetaData, fieldMetadata, column });\n }\n // // Load everything else based on type and dynamically.\n // else {\n // const ComponentFound = await loadComponentByType(fieldMetadata.type);\n // const ComponentNotFound = ({ solidListViewMetaData, fieldMetadata, column }: SolidListViewColumnParams) => (\n // <Column\n // key={fieldMetadata.name}\n // field={fieldMetadata.name}\n // header={fieldMetadata.displayName}\n // className=\"text-sm\"\n // sortable={false}\n // filter={false}\n // showFilterOperator={false}\n // body={() => (<span>Type not supported</span>)}\n // style={{ minWidth: \"12rem\" }}\n // headerClassName=\"table-header-fs\"\n // ></Column>\n // );\n\n // return ComponentFound ? ComponentFound({ solidListViewMetaData, fieldMetadata, column }) : ComponentNotFound({ solidListViewMetaData, fieldMetadata, column });\n // }\n\n // TODO: we can implement additional switching logic based on the widget type being used to render the list view column.\n\n};\n"]}
@@ -28,6 +28,14 @@ export type SolidListViewColumnParams = {
28
28
  embeded?: boolean;
29
29
  };
30
30
 
31
+ export const isFieldSortable = (fieldMetadata: any): boolean => {
32
+ if (!fieldMetadata) return false;
33
+ const type = fieldMetadata.type;
34
+ if (type === 'mediaSingle' || type === 'mediaMultiple') return false;
35
+ if (type === 'relation') return fieldMetadata.relationType === 'many-to-one';
36
+ return true;
37
+ };
38
+
31
39
  export const getNumberOfInputs = (matchMode: any): number | null => {
32
40
  if (matchMode.label && matchMode.label === 'Not In') {
33
41
  matchMode = 'notIn';
@@ -75,6 +83,10 @@ export const getNumberOfInputs = (matchMode: any): number | null => {
75
83
 
76
84
  export const SolidListViewColumn = ({ solidListViewMetaData, fieldMetadata, column, setLightboxUrls, setOpenLightbox, embeded }: SolidListViewColumnParams) => {
77
85
 
86
+ if (!isFieldSortable(fieldMetadata) && column?.attrs?.sortable) {
87
+ column = { ...column, attrs: { ...column.attrs, sortable: false } };
88
+ }
89
+
78
90
  // And finally we can implement additional switching logic based on certain special fields.
79
91
  if (fieldMetadata.name === 'id') {
80
92
  return SolidIntColumn({ solidListViewMetaData, fieldMetadata, column });
@@ -1 +1 @@
1
- {"version":3,"file":"SolidListViewConfigure.d.ts","sourceRoot":"","sources":["../../../../src/components/core/list/SolidListViewConfigure.tsx"],"names":[],"mappings":"AASA,OAAO,+BAA+B,CAAC;AA4BvC,MAAM,MAAM,QAAQ,GAAG;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;CAChB,CAAA;AAED,eAAO,MAAM,sBAAsB,+QAoB3B,GAAG,4CAmVV,CAAA"}
1
+ {"version":3,"file":"SolidListViewConfigure.d.ts","sourceRoot":"","sources":["../../../../src/components/core/list/SolidListViewConfigure.tsx"],"names":[],"mappings":"AAUA,OAAO,+BAA+B,CAAC;AA4BvC,MAAM,MAAM,QAAQ,GAAG;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;CAChB,CAAA;AAED,eAAO,MAAM,sBAAsB,+QAoB3B,GAAG,4CAoVV,CAAA"}
@@ -8,6 +8,7 @@ import { SolidListColumnSelector } from "./SolidColumnSelector/SolidListColumnSe
8
8
  import { SolidExport } from "../../../components/common/SolidExport";
9
9
  import { useHandleListCustomButtonClick } from "../../../components/common/useHandleListCustomButtonClick";
10
10
  import { SolidListViewHeaderContextMenuButton } from "./SolidListViewHeaderContextMenuButton";
11
+ import { isButtonVisibleInCurrentEnv } from "../../../helpers/buttonEnvironment";
11
12
  import "../../common/solid-export.css";
12
13
  import { SolidGenericImport } from "../common/SolidGenericImport/SolidGenericImport";
13
14
  import { hasAnyRole } from "../../../helpers/rolesHelper";
@@ -15,17 +16,17 @@ import { capitalize } from "lodash";
15
16
  import { Cog, Download, RefreshCw, Save, SlidersHorizontal, Table, Trash2, Upload } from "lucide-react";
16
17
  import { SolidDialog, SolidDialogBody, SolidDialogClose, SolidDialogDescription, SolidDialogHeader, SolidDialogSeparator, SolidDialogTitle, SolidDropdownMenu, SolidDropdownMenuCheckboxItem, SolidDropdownMenuContent, SolidDropdownMenuItem, SolidDropdownMenuLabel, SolidDropdownMenuRadioGroup, SolidDropdownMenuRadioItem, SolidDropdownMenuSeparator, SolidDropdownMenuSub, SolidDropdownMenuSubContent, SolidDropdownMenuSubTrigger, SolidDropdownMenuTrigger, } from "../../shad-cn-ui";
17
18
  export var SolidListViewConfigure = function (_a) {
18
- var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w;
19
+ var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x;
19
20
  var listViewMetaData = _a.listViewMetaData, solidListViewLayout = _a.solidListViewLayout, setShowArchived = _a.setShowArchived, showArchived = _a.showArchived, viewData = _a.viewData, sizeOptions = _a.sizeOptions, setSize = _a.setSize, size = _a.size, viewModes = _a.viewModes, params = _a.params, actionsAllowed = _a.actionsAllowed, selectedRecords = _a.selectedRecords, setDialogVisible = _a.setDialogVisible, setShowSaveFilterPopup = _a.setShowSaveFilterPopup, filters = _a.filters, handleFetchUpdatedRecords = _a.handleFetchUpdatedRecords, setRecoverDialogVisible = _a.setRecoverDialogVisible;
20
21
  // const [visible, setVisible] = useState<boolean>(false);
21
22
  var handleCustomButtonClick = useHandleListCustomButtonClick();
22
- var _x = useState(false), openImportDialog = _x[0], setOpenImportDialog = _x[1];
23
+ var _y = useState(false), openImportDialog = _y[0], setOpenImportDialog = _y[1];
23
24
  var pathname = usePathname();
24
25
  var router = useRouter();
25
- var _y = useState(""), view = _y[0], setView = _y[1];
26
- var _z = useState(false), exportView = _z[0], setExportView = _z[1];
27
- var _0 = useState(false), isCogMenuOpen = _0[0], setIsCogMenuOpen = _0[1];
28
- var _1 = useState(false), showColumnSelectorDialog = _1[0], setShowColumnSelectorDialog = _1[1];
26
+ var _z = useState(""), view = _z[0], setView = _z[1];
27
+ var _0 = useState(false), exportView = _0[0], setExportView = _0[1];
28
+ var _1 = useState(false), isCogMenuOpen = _1[0], setIsCogMenuOpen = _1[1];
29
+ var _2 = useState(false), showColumnSelectorDialog = _2[0], setShowColumnSelectorDialog = _2[1];
29
30
  var handleViewChange = function (newView) {
30
31
  if (view === newView.type)
31
32
  return; // Prevent unnecessary updates
@@ -60,7 +61,7 @@ export var SolidListViewConfigure = function (_a) {
60
61
  savedFilters: normalizeAction(headerActions.savedFilters),
61
62
  };
62
63
  // Role checks
63
- var _2 = useSession(), session = _2.data, status = _2.status;
64
+ var _3 = useSession(), session = _3.data, status = _3.status;
64
65
  var user = session === null || session === void 0 ? void 0 : session.user;
65
66
  var useRoleCheck = function (roles) { return hasAnyRole(user === null || user === void 0 ? void 0 : user.roles, roles); };
66
67
  // Map of action → roleCheck
@@ -131,7 +132,7 @@ export var SolidListViewConfigure = function (_a) {
131
132
  isHeaderActionEnabled('export') && actionsAllowed.includes("".concat(permissionExpression(params.modelName, 'findMany'))) && actionsAllowed.includes("".concat(permissionExpression('exportTransaction', 'create'))) ||
132
133
  isHeaderActionEnabled('customizeLayout') && actionsAllowed.includes("".concat(permissionExpression('userViewMetadata', 'create'))) ||
133
134
  isHeaderActionEnabled('savedFilters') && actionsAllowed.includes("".concat(permissionExpression('savedFilters', 'create'))) ||
134
- ((_h = (_g = solidListViewLayout === null || solidListViewLayout === void 0 ? void 0 : solidListViewLayout.attrs) === null || _g === void 0 ? void 0 : _g.headerButtons) === null || _h === void 0 ? void 0 : _h.some(function (rb) { return rb.attrs.actionInContextMenu === true; })) ||
135
+ ((_h = (_g = solidListViewLayout === null || solidListViewLayout === void 0 ? void 0 : solidListViewLayout.attrs) === null || _g === void 0 ? void 0 : _g.headerButtons) === null || _h === void 0 ? void 0 : _h.some(function (rb) { return rb.attrs.actionInContextMenu === true && isButtonVisibleInCurrentEnv(rb === null || rb === void 0 ? void 0 : rb.attrs); })) ||
135
136
  ((_l = (_k = (_j = viewData === null || viewData === void 0 ? void 0 : viewData.data) === null || _j === void 0 ? void 0 : _j.solidView) === null || _k === void 0 ? void 0 : _k.model) === null || _l === void 0 ? void 0 : _l.enableSoftDelete)) && (_jsxs(_Fragment, { children: [actionsAllowed.includes("".concat(permissionExpression(params.modelName, 'deleteMany'))) && ((_q = (_p = (_o = (_m = viewData === null || viewData === void 0 ? void 0 : viewData.data) === null || _m === void 0 ? void 0 : _m.solidView) === null || _o === void 0 ? void 0 : _o.layout) === null || _p === void 0 ? void 0 : _p.attrs) === null || _q === void 0 ? void 0 : _q.delete) !== false && selectedRecords.length > 0 && (_jsxs(SolidDropdownMenuItem, { className: "solid-header-dropdown-item solid-header-dropdown-item-danger", onSelect: function () {
136
137
  setDialogVisible(true);
137
138
  setIsCogMenuOpen(false);
@@ -141,7 +142,7 @@ export var SolidListViewConfigure = function (_a) {
141
142
  }, children: [_jsx(Download, { size: 14, className: "solid-header-action-button-icon" }), _jsx("span", { className: "solid-header-action-button-label", children: "Import" })] })), isHeaderActionEnabled("export") && actionsAllowed.includes("".concat(permissionExpression(params.modelName, 'findMany'))) && actionsAllowed.includes("".concat(permissionExpression('exportTransaction', 'create'))) && (_jsxs(SolidDropdownMenuItem, { className: "solid-header-dropdown-item", onSelect: function () {
142
143
  setExportView(function (current) { return !current; });
143
144
  setIsCogMenuOpen(false);
144
- }, children: [_jsx(Upload, { size: 14, className: "solid-header-action-button-icon" }), _jsx("span", { className: "solid-header-action-button-label", children: "Export" })] })), (_t = (_s = (_r = solidListViewLayout === null || solidListViewLayout === void 0 ? void 0 : solidListViewLayout.attrs) === null || _r === void 0 ? void 0 : _r.headerButtons) === null || _s === void 0 ? void 0 : _s.filter(function (rb) { return rb.attrs.actionInContextMenu === true; })) === null || _t === void 0 ? void 0 : _t.map(function (button, index) { return (_jsx(SolidListViewHeaderContextMenuButton, { button: button, params: params, solidListViewMetaData: listViewMetaData, handleCustomButtonClick: handleCustomButtonClick, onActionComplete: function () { return setIsCogMenuOpen(false); } }, index)); }), ((_w = (_v = (_u = viewData === null || viewData === void 0 ? void 0 : viewData.data) === null || _u === void 0 ? void 0 : _u.solidView) === null || _v === void 0 ? void 0 : _v.model) === null || _w === void 0 ? void 0 : _w.enableSoftDelete) && (_jsx(SolidDropdownMenuCheckboxItem, { checked: showArchived, onCheckedChange: function () { return setShowArchived(!showArchived); }, children: "Show Archived Records" })), showArchived && (_jsxs(SolidDropdownMenuItem, { className: "solid-header-dropdown-item lg:hidden", onSelect: function () {
145
+ }, children: [_jsx(Upload, { size: 14, className: "solid-header-action-button-icon" }), _jsx("span", { className: "solid-header-action-button-label", children: "Export" })] })), (_u = (_t = (_s = (_r = solidListViewLayout === null || solidListViewLayout === void 0 ? void 0 : solidListViewLayout.attrs) === null || _r === void 0 ? void 0 : _r.headerButtons) === null || _s === void 0 ? void 0 : _s.filter(function (rb) { return isButtonVisibleInCurrentEnv(rb === null || rb === void 0 ? void 0 : rb.attrs); })) === null || _t === void 0 ? void 0 : _t.filter(function (rb) { return rb.attrs.actionInContextMenu === true; })) === null || _u === void 0 ? void 0 : _u.map(function (button, index) { return (_jsx(SolidListViewHeaderContextMenuButton, { button: button, params: params, solidListViewMetaData: listViewMetaData, handleCustomButtonClick: handleCustomButtonClick, onActionComplete: function () { return setIsCogMenuOpen(false); } }, index)); }), ((_x = (_w = (_v = viewData === null || viewData === void 0 ? void 0 : viewData.data) === null || _v === void 0 ? void 0 : _v.solidView) === null || _w === void 0 ? void 0 : _w.model) === null || _x === void 0 ? void 0 : _x.enableSoftDelete) && (_jsx(SolidDropdownMenuCheckboxItem, { checked: showArchived, onCheckedChange: function () { return setShowArchived(!showArchived); }, children: "Show Archived Records" })), showArchived && (_jsxs(SolidDropdownMenuItem, { className: "solid-header-dropdown-item lg:hidden", onSelect: function () {
145
146
  setRecoverDialogVisible(true);
146
147
  setIsCogMenuOpen(false);
147
148
  }, children: [_jsx(RefreshCw, { size: 14, className: "solid-header-action-button-icon" }), _jsx("span", { className: "solid-header-action-button-label", children: "Recover" })] })), (isHeaderActionEnabled('customizeLayout') && actionsAllowed.includes("".concat(permissionExpression('userViewMetadata', 'create'))) ||
@@ -155,7 +156,7 @@ export var SolidListViewConfigure = function (_a) {
155
156
  }, children: [_jsx(Save, { size: 14, className: "solid-header-action-button-icon" }), _jsx("span", { className: "solid-header-action-button-label", children: "Save Custom Filter" })] })), _jsxs(SolidDropdownMenuItem, { className: "solid-header-dropdown-item", onSelect: function () {
156
157
  clearLocalstorageCache();
157
158
  setIsCogMenuOpen(false);
158
- }, children: [_jsx(Trash2, { size: 14, className: "solid-header-action-button-icon" }), _jsx("span", { className: "solid-header-action-button-label", children: "Clear cache" })] })] })) })] }), _jsxs(SolidDialog, { open: exportView, onOpenChange: setExportView, className: "solid-kanban-export-dialog solid-list-export-dialog", style: { width: "min(980px, calc(100vw - 32px))" }, children: [_jsxs(SolidDialogHeader, { className: "solid-export-dialog-header", children: [_jsxs("div", { children: [_jsx(SolidDialogTitle, { children: "Export" }), _jsx(SolidDialogDescription, { className: "solid-filter-dialog-subtitle m-0", children: "Choose the file format, refine the field set, and save reusable export templates." })] }), _jsx(SolidDialogClose, {})] }), _jsx(SolidDialogSeparator, {}), _jsx(SolidDialogBody, { className: "solid-kanban-export-dialog-body", children: _jsx(SolidExport, { listViewMetaData: listViewMetaData, filters: filters }) })] }), _jsxs(SolidDialog, { open: showColumnSelectorDialog, onOpenChange: setShowColumnSelectorDialog, className: "solid-column-selector-dialog", style: { width: "min(388px, calc(100vw - 2rem))" }, children: [_jsxs(SolidDialogHeader, { className: "solid-filter-dialog-head", children: [_jsxs("div", { children: [_jsx(SolidDialogTitle, { className: "solid-filter-dialog-title m-0", children: "Column Selector" }), _jsx(SolidDialogDescription, { className: "solid-filter-dialog-subtitle m-0", children: "Choose visible columns and reorder them for this list view." })] }), _jsx(SolidDialogClose, { className: "solid-filter-dialog-close" })] }), _jsx(SolidDialogSeparator, { className: "solid-filter-dialog-sep" }), _jsx(SolidDialogBody, { className: "solid-filter-dialog-body", children: _jsx(SolidListColumnSelector, { listViewMetaData: listViewMetaData, onClose: function () { return setShowColumnSelectorDialog(false); } }) })] }), openImportDialog &&
159
+ }, children: [_jsx(Trash2, { size: 14, className: "solid-header-action-button-icon" }), _jsx("span", { className: "solid-header-action-button-label", children: "Reset View" })] })] })) })] }), _jsxs(SolidDialog, { open: exportView, onOpenChange: setExportView, className: "solid-kanban-export-dialog solid-list-export-dialog", style: { width: "min(980px, calc(100vw - 32px))" }, children: [_jsxs(SolidDialogHeader, { className: "solid-export-dialog-header", children: [_jsxs("div", { children: [_jsx(SolidDialogTitle, { children: "Export" }), _jsx(SolidDialogDescription, { className: "solid-filter-dialog-subtitle m-0", children: "Choose the file format, refine the field set, and save reusable export templates." })] }), _jsx(SolidDialogClose, {})] }), _jsx(SolidDialogSeparator, {}), _jsx(SolidDialogBody, { className: "solid-kanban-export-dialog-body", children: _jsx(SolidExport, { listViewMetaData: listViewMetaData, filters: filters }) })] }), _jsxs(SolidDialog, { open: showColumnSelectorDialog, onOpenChange: setShowColumnSelectorDialog, className: "solid-column-selector-dialog", style: { width: "min(388px, calc(100vw - 2rem))" }, children: [_jsxs(SolidDialogHeader, { className: "solid-filter-dialog-head", children: [_jsxs("div", { children: [_jsx(SolidDialogTitle, { className: "solid-filter-dialog-title m-0", children: "Column Selector" }), _jsx(SolidDialogDescription, { className: "solid-filter-dialog-subtitle m-0", children: "Choose visible columns and reorder them for this list view." })] }), _jsx(SolidDialogClose, { className: "solid-filter-dialog-close" })] }), _jsx(SolidDialogSeparator, { className: "solid-filter-dialog-sep" }), _jsx(SolidDialogBody, { className: "solid-filter-dialog-body", children: _jsx(SolidListColumnSelector, { listViewMetaData: listViewMetaData, onClose: function () { return setShowColumnSelectorDialog(false); } }) })] }), openImportDialog &&
159
160
  _jsx(SolidGenericImport, { openImportDialog: openImportDialog, setOpenImportDialog: setOpenImportDialog, listViewMetaData: listViewMetaData, handleFetchUpdatedRecords: handleFetchUpdatedRecords })] }));
160
161
  };
161
162
  //# sourceMappingURL=SolidListViewConfigure.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SolidListViewConfigure.js","sourceRoot":"","sources":["../../../../src/components/core/list/SolidListViewConfigure.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useSession } from \"../../../hooks/useSession\";\nimport { permissionExpression } from \"../../../helpers/permissions\";\nimport { usePathname } from \"../../../hooks/usePathname\";\nimport { useRouter } from \"../../../hooks/useRouter\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { SolidListColumnSelector } from \"./SolidColumnSelector/SolidListColumnSelector\";\nimport { SolidExport } from \"../../../components/common/SolidExport\";\nimport { useHandleListCustomButtonClick } from \"../../../components/common/useHandleListCustomButtonClick\";\nimport { SolidListViewHeaderContextMenuButton } from \"./SolidListViewHeaderContextMenuButton\";\nimport \"../../common/solid-export.css\";\nimport { SolidGenericImport } from \"../common/SolidGenericImport/SolidGenericImport\";\nimport { hasAnyRole } from \"../../../helpers/rolesHelper\";\nimport { SolidListViewHeaderButton } from \"./SolidListViewHeaderButton\";\nimport { capitalize } from \"lodash\";\nimport { Cog, Download, RefreshCw, Save, SlidersHorizontal, Table, Trash2, Upload } from \"lucide-react\";\nimport {\n SolidDialog,\n SolidDialogBody,\n SolidDialogClose,\n SolidDialogDescription,\n SolidDialogHeader,\n SolidDialogSeparator,\n SolidDialogTitle,\n SolidDropdownMenu,\n SolidDropdownMenuCheckboxItem,\n SolidDropdownMenuContent,\n SolidDropdownMenuItem,\n SolidDropdownMenuLabel,\n SolidDropdownMenuRadioGroup,\n SolidDropdownMenuRadioItem,\n SolidDropdownMenuSeparator,\n SolidDropdownMenuSub,\n SolidDropdownMenuSubContent,\n SolidDropdownMenuSubTrigger,\n SolidDropdownMenuTrigger,\n} from \"../../shad-cn-ui\";\n\nexport type ViewMode = {\n actionId: string;\n actionName: string;\n menuItemId: string;\n menuItemName: string;\n type: string;\n}\n\nexport const SolidListViewConfigure = (\n { listViewMetaData,\n solidListViewLayout,\n setShowArchived,\n showArchived,\n viewData,\n sizeOptions,\n setSize,\n size,\n viewModes,\n params,\n actionsAllowed,\n selectedRecords,\n setDialogVisible,\n setShowSaveFilterPopup,\n filters,\n handleFetchUpdatedRecords,\n setRecoverDialogVisible,\n\n }:\n any) => {\n // const [visible, setVisible] = useState<boolean>(false);\n const handleCustomButtonClick = useHandleListCustomButtonClick();\n const [openImportDialog, setOpenImportDialog] = useState<boolean>(false);\n const pathname = usePathname();\n const router = useRouter();\n const [view, setView] = useState<string>(\"\");\n const [exportView, setExportView] = useState<boolean>(false);\n const [isCogMenuOpen, setIsCogMenuOpen] = useState(false);\n const [showColumnSelectorDialog, setShowColumnSelectorDialog] = useState(false);\n\n const handleViewChange = (newView: ViewMode) => {\n if (view === newView.type) return; // Prevent unnecessary updates\n const pathSegments = pathname.split('/').filter(Boolean);\n pathSegments[pathSegments.length - 1] = newView.type; // Replace the last part with new view\n const newPath = '/' + pathSegments.join('/') + `?menuItemId=${newView.menuItemId}&menuItemName=${newView.menuItemName}&actionId=${newView.actionId}&actionName=${newView.actionName}`;\n router.push(newPath);\n };\n\n useEffect(() => {\n if (typeof pathname === 'string') {\n const pathSegments = pathname.split('/').filter(Boolean);\n if (pathSegments.length > 0) {\n setView(pathSegments[pathSegments.length - 1]);\n }\n }\n }, [])\n\n //Build a map of actionKey → boolean at the top level\n const headerActions = solidListViewLayout?.attrs ?? {};\n\n const normalizeAction = (value: boolean | string[]) => {\n if (value === true) return { enabled: true, roles: [] };\n if (value === false) return { enabled: false, roles: [] };\n if (Array.isArray(value)) return { enabled: true, roles: value };\n return { enabled: true, roles: [] }; // default\n };\n const normalized = {\n import: normalizeAction(headerActions.import),\n export: normalizeAction(headerActions.export),\n customizeLayout: normalizeAction(headerActions.customizeLayout),\n savedFilters: normalizeAction(headerActions.savedFilters),\n };\n\n // Role checks\n const { data: session, status } = useSession();\n const user = session?.user;\n const useRoleCheck = (roles: string[]) => hasAnyRole(user?.roles, roles);\n\n // Map of action → roleCheck\n const roleCheckMap = {\n import: useRoleCheck(normalized.import.roles),\n export: useRoleCheck(normalized.export.roles),\n customizeLayout: useRoleCheck(normalized.customizeLayout.roles),\n savedFilters: useRoleCheck(normalized.savedFilters.roles),\n };\n\n const isHeaderActionEnabled = (action: keyof typeof normalized) => {\n const { enabled, roles } = normalized[action];\n\n // 1. If explicitly disabled\n if (!enabled) return false;\n\n // 2. If roles list exists → must have at least one\n if (roles.length > 0) {\n return roleCheckMap[action] === true;\n }\n // 3. No restrictions → enabled\n return true;\n };\n\n const clearLocalstorageCache = () => {\n const currentPageUrl = window.location.pathname; // Get the current page URL\n localStorage.removeItem(currentPageUrl); // Remove from local storage with the URL as the key\n window.location.reload();\n };\n\n const visibleViewModes = (() => {\n if (!Array.isArray(viewModes)) return [];\n\n const uniqueByType = new Map<string, ViewMode>();\n const currentActionId = String(params?.actionId ?? \"\");\n const currentMenuItemId = String(params?.menuItemId ?? \"\");\n\n for (const mode of viewModes) {\n if (!mode || typeof mode.type !== \"string\") continue;\n\n const existing = uniqueByType.get(mode.type);\n if (!existing) {\n uniqueByType.set(mode.type, mode);\n continue;\n }\n\n const modeActionId = String(mode.actionId ?? \"\");\n const modeMenuItemId = String(mode.menuItemId ?? \"\");\n const existingActionId = String(existing.actionId ?? \"\");\n const existingMenuItemId = String(existing.menuItemId ?? \"\");\n\n const modeIsCurrent = (currentActionId && modeActionId === currentActionId) ||\n (currentMenuItemId && modeMenuItemId === currentMenuItemId);\n const existingIsCurrent = (currentActionId && existingActionId === currentActionId) ||\n (currentMenuItemId && existingMenuItemId === currentMenuItemId);\n\n if (modeIsCurrent && !existingIsCurrent) {\n uniqueByType.set(mode.type, mode);\n }\n }\n\n return Array.from(uniqueByType.values());\n })();\n const showSwitchType = visibleViewModes.length > 0;\n const handleViewTypeChange = (nextType: string) => {\n const nextView = visibleViewModes.find((option: ViewMode) => option.type === nextType);\n if (nextView) {\n handleViewChange(nextView);\n }\n };\n\n return (\n <div className=\"position-relative\">\n <SolidDropdownMenu open={isCogMenuOpen} onOpenChange={setIsCogMenuOpen}>\n <SolidDropdownMenuTrigger asChild>\n <button\n type=\"button\"\n className=\"solid-icon-button solid-header-cog-trigger\"\n aria-label=\"Open list options\"\n >\n <Cog size={16} />\n </button>\n </SolidDropdownMenuTrigger>\n <SolidDropdownMenuContent className=\"listview-cogwheel-panel\">\n {(\n (actionsAllowed.includes(`${permissionExpression(params.modelName, 'deleteMany')}`) &&\n viewData?.data?.solidView?.layout?.attrs?.delete !== false &&\n selectedRecords.length > 0) ||\n isHeaderActionEnabled('import') && actionsAllowed.includes(`${permissionExpression(params.modelName, 'create')}`) && actionsAllowed.includes(`${permissionExpression('importTransaction', 'create')}`) ||\n isHeaderActionEnabled('export') && actionsAllowed.includes(`${permissionExpression(params.modelName, 'findMany')}`) && actionsAllowed.includes(`${permissionExpression('exportTransaction', 'create')}`) ||\n isHeaderActionEnabled('customizeLayout') && actionsAllowed.includes(`${permissionExpression('userViewMetadata', 'create')}`) ||\n isHeaderActionEnabled('savedFilters') && actionsAllowed.includes(`${permissionExpression('savedFilters', 'create')}`) ||\n (solidListViewLayout?.attrs?.headerButtons\n ?.some((rb: any) => rb.attrs.actionInContextMenu === true)) ||\n viewData?.data?.solidView?.model?.enableSoftDelete\n ) && (\n <>\n {actionsAllowed.includes(`${permissionExpression(params.modelName, 'deleteMany')}`) && viewData?.data?.solidView?.layout?.attrs?.delete !== false && selectedRecords.length > 0 && (\n <SolidDropdownMenuItem\n className=\"solid-header-dropdown-item solid-header-dropdown-item-danger\"\n onSelect={() => {\n setDialogVisible(true);\n setIsCogMenuOpen(false);\n }}\n >\n <Trash2 size={14} className=\"solid-header-action-button-icon\" />\n <span className=\"solid-header-action-button-label\">Delete</span>\n </SolidDropdownMenuItem>\n )}\n {isHeaderActionEnabled(\"import\") && actionsAllowed.includes(`${permissionExpression(params.modelName, 'create')}`) && actionsAllowed.includes(`${permissionExpression('importTransaction', 'create')}`) && (\n <SolidDropdownMenuItem\n className=\"solid-header-dropdown-item\"\n onSelect={() => {\n setOpenImportDialog(true);\n setIsCogMenuOpen(false);\n }}\n >\n <Download size={14} className=\"solid-header-action-button-icon\" />\n <span className=\"solid-header-action-button-label\">Import</span>\n </SolidDropdownMenuItem>\n )}\n {isHeaderActionEnabled(\"export\") && actionsAllowed.includes(`${permissionExpression(params.modelName, 'findMany')}`) && actionsAllowed.includes(`${permissionExpression('exportTransaction', 'create')}`) && (\n <SolidDropdownMenuItem\n className=\"solid-header-dropdown-item\"\n onSelect={() => {\n setExportView((current) => !current);\n setIsCogMenuOpen(false);\n }}\n >\n <Upload size={14} className=\"solid-header-action-button-icon\" />\n <span className=\"solid-header-action-button-label\">Export</span>\n </SolidDropdownMenuItem>\n )}\n {solidListViewLayout?.attrs?.headerButtons\n ?.filter((rb: any) => rb.attrs.actionInContextMenu === true)\n ?.map((button: any, index: number) => (\n <SolidListViewHeaderContextMenuButton\n key={index}\n button={button}\n params={params}\n solidListViewMetaData={listViewMetaData}\n handleCustomButtonClick={handleCustomButtonClick}\n onActionComplete={() => setIsCogMenuOpen(false)}\n />\n ))}\n {viewData?.data?.solidView?.model?.enableSoftDelete && (\n <SolidDropdownMenuCheckboxItem\n checked={showArchived}\n onCheckedChange={() => setShowArchived(!showArchived)}\n >\n Show Archived Records\n </SolidDropdownMenuCheckboxItem>\n )}\n {showArchived && (\n <SolidDropdownMenuItem\n className=\"solid-header-dropdown-item lg:hidden\"\n onSelect={() => {\n setRecoverDialogVisible(true);\n setIsCogMenuOpen(false);\n }}\n >\n <RefreshCw size={14} className=\"solid-header-action-button-icon\" />\n <span className=\"solid-header-action-button-label\">Recover</span>\n </SolidDropdownMenuItem>\n )}\n\n {(\n isHeaderActionEnabled('customizeLayout') && actionsAllowed.includes(`${permissionExpression('userViewMetadata', 'create')}`) ||\n isHeaderActionEnabled('savedFilters') && actionsAllowed.includes(`${permissionExpression('savedFilters', 'create')}`) ||\n true\n ) && <SolidDropdownMenuSeparator />}\n\n {isHeaderActionEnabled('customizeLayout') && actionsAllowed.includes(`${permissionExpression('userViewMetadata', 'create')}`) && (\n <SolidDropdownMenuSub>\n <SolidDropdownMenuSubTrigger className=\"solid-header-dropdown-item\">\n <SlidersHorizontal size={14} className=\"solid-header-action-button-icon\" />\n <span className=\"solid-header-action-button-label\">Layout</span>\n </SolidDropdownMenuSubTrigger>\n <SolidDropdownMenuSubContent className=\"customize-layout-panel\">\n {showSwitchType && (\n <>\n <SolidDropdownMenuLabel>Switch Type</SolidDropdownMenuLabel>\n <SolidDropdownMenuRadioGroup value={view} onValueChange={handleViewTypeChange}>\n {visibleViewModes.map((option: ViewMode) => (\n <SolidDropdownMenuRadioItem key={option.type} value={option.type}>\n {capitalize(option.type)}\n </SolidDropdownMenuRadioItem>\n ))}\n </SolidDropdownMenuRadioGroup>\n <SolidDropdownMenuSeparator />\n </>\n )}\n <SolidDropdownMenuLabel>Row Spacing</SolidDropdownMenuLabel>\n <SolidDropdownMenuRadioGroup value={size} onValueChange={(value: string) => setSize(value)}>\n {sizeOptions.map((option: any) => (\n <SolidDropdownMenuRadioItem key={option.value} value={option.value}>\n {option.label}\n </SolidDropdownMenuRadioItem>\n ))}\n </SolidDropdownMenuRadioGroup>\n <SolidDropdownMenuSeparator />\n <SolidDropdownMenuItem\n onSelect={() => {\n setShowColumnSelectorDialog(true);\n setIsCogMenuOpen(false);\n }}\n >\n <Table size={14} className=\"solid-header-action-button-icon\" />\n <span className=\"solid-header-action-button-label\">Column Selector</span>\n </SolidDropdownMenuItem>\n </SolidDropdownMenuSubContent>\n </SolidDropdownMenuSub>\n )}\n {isHeaderActionEnabled('savedFilters') && actionsAllowed.includes(`${permissionExpression('savedFilters', 'create')}`) && (\n <SolidDropdownMenuItem\n className=\"solid-header-dropdown-item\"\n onSelect={() => {\n setShowSaveFilterPopup(true);\n setIsCogMenuOpen(false);\n }}\n >\n <Save size={14} className=\"solid-header-action-button-icon\" />\n <span className=\"solid-header-action-button-label\">Save Custom Filter</span>\n </SolidDropdownMenuItem>\n )}\n <SolidDropdownMenuItem\n className=\"solid-header-dropdown-item\"\n onSelect={() => {\n clearLocalstorageCache();\n setIsCogMenuOpen(false);\n }}\n >\n <Trash2 size={14} className=\"solid-header-action-button-icon\" />\n <span className=\"solid-header-action-button-label\">Clear cache</span>\n </SolidDropdownMenuItem>\n </>\n )}\n </SolidDropdownMenuContent>\n </SolidDropdownMenu>\n <SolidDialog\n open={exportView}\n onOpenChange={setExportView}\n className=\"solid-kanban-export-dialog solid-list-export-dialog\"\n style={{ width: \"min(980px, calc(100vw - 32px))\" }}\n >\n <SolidDialogHeader className=\"solid-export-dialog-header\">\n <div>\n <SolidDialogTitle>Export</SolidDialogTitle>\n <SolidDialogDescription className=\"solid-filter-dialog-subtitle m-0\">\n Choose the file format, refine the field set, and save reusable export templates.\n </SolidDialogDescription>\n </div>\n <SolidDialogClose />\n </SolidDialogHeader>\n <SolidDialogSeparator />\n <SolidDialogBody className=\"solid-kanban-export-dialog-body\">\n <SolidExport listViewMetaData={listViewMetaData} filters={filters} />\n </SolidDialogBody>\n </SolidDialog>\n <SolidDialog\n open={showColumnSelectorDialog}\n onOpenChange={setShowColumnSelectorDialog}\n className=\"solid-column-selector-dialog\"\n style={{ width: \"min(388px, calc(100vw - 2rem))\" }}\n >\n <SolidDialogHeader className=\"solid-filter-dialog-head\">\n <div>\n <SolidDialogTitle className=\"solid-filter-dialog-title m-0\">Column Selector</SolidDialogTitle>\n <SolidDialogDescription className=\"solid-filter-dialog-subtitle m-0\">\n Choose visible columns and reorder them for this list view.\n </SolidDialogDescription>\n </div>\n <SolidDialogClose className=\"solid-filter-dialog-close\" />\n </SolidDialogHeader>\n <SolidDialogSeparator className=\"solid-filter-dialog-sep\" />\n <SolidDialogBody className=\"solid-filter-dialog-body\">\n <SolidListColumnSelector\n listViewMetaData={listViewMetaData}\n onClose={() => setShowColumnSelectorDialog(false)}\n />\n </SolidDialogBody>\n </SolidDialog>\n {openImportDialog &&\n <SolidGenericImport\n openImportDialog={openImportDialog}\n setOpenImportDialog={setOpenImportDialog}\n listViewMetaData={listViewMetaData}\n handleFetchUpdatedRecords={handleFetchUpdatedRecords}\n />\n }\n </div>\n )\n}\n"]}
1
+ {"version":3,"file":"SolidListViewConfigure.js","sourceRoot":"","sources":["../../../../src/components/core/list/SolidListViewConfigure.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useSession } from \"../../../hooks/useSession\";\nimport { permissionExpression } from \"../../../helpers/permissions\";\nimport { usePathname } from \"../../../hooks/usePathname\";\nimport { useRouter } from \"../../../hooks/useRouter\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { SolidListColumnSelector } from \"./SolidColumnSelector/SolidListColumnSelector\";\nimport { SolidExport } from \"../../../components/common/SolidExport\";\nimport { useHandleListCustomButtonClick } from \"../../../components/common/useHandleListCustomButtonClick\";\nimport { SolidListViewHeaderContextMenuButton } from \"./SolidListViewHeaderContextMenuButton\";\nimport { isButtonVisibleInCurrentEnv } from \"../../../helpers/buttonEnvironment\";\nimport \"../../common/solid-export.css\";\nimport { SolidGenericImport } from \"../common/SolidGenericImport/SolidGenericImport\";\nimport { hasAnyRole } from \"../../../helpers/rolesHelper\";\nimport { SolidListViewHeaderButton } from \"./SolidListViewHeaderButton\";\nimport { capitalize } from \"lodash\";\nimport { Cog, Download, RefreshCw, Save, SlidersHorizontal, Table, Trash2, Upload } from \"lucide-react\";\nimport {\n SolidDialog,\n SolidDialogBody,\n SolidDialogClose,\n SolidDialogDescription,\n SolidDialogHeader,\n SolidDialogSeparator,\n SolidDialogTitle,\n SolidDropdownMenu,\n SolidDropdownMenuCheckboxItem,\n SolidDropdownMenuContent,\n SolidDropdownMenuItem,\n SolidDropdownMenuLabel,\n SolidDropdownMenuRadioGroup,\n SolidDropdownMenuRadioItem,\n SolidDropdownMenuSeparator,\n SolidDropdownMenuSub,\n SolidDropdownMenuSubContent,\n SolidDropdownMenuSubTrigger,\n SolidDropdownMenuTrigger,\n} from \"../../shad-cn-ui\";\n\nexport type ViewMode = {\n actionId: string;\n actionName: string;\n menuItemId: string;\n menuItemName: string;\n type: string;\n}\n\nexport const SolidListViewConfigure = (\n { listViewMetaData,\n solidListViewLayout,\n setShowArchived,\n showArchived,\n viewData,\n sizeOptions,\n setSize,\n size,\n viewModes,\n params,\n actionsAllowed,\n selectedRecords,\n setDialogVisible,\n setShowSaveFilterPopup,\n filters,\n handleFetchUpdatedRecords,\n setRecoverDialogVisible,\n\n }:\n any) => {\n // const [visible, setVisible] = useState<boolean>(false);\n const handleCustomButtonClick = useHandleListCustomButtonClick();\n const [openImportDialog, setOpenImportDialog] = useState<boolean>(false);\n const pathname = usePathname();\n const router = useRouter();\n const [view, setView] = useState<string>(\"\");\n const [exportView, setExportView] = useState<boolean>(false);\n const [isCogMenuOpen, setIsCogMenuOpen] = useState(false);\n const [showColumnSelectorDialog, setShowColumnSelectorDialog] = useState(false);\n\n const handleViewChange = (newView: ViewMode) => {\n if (view === newView.type) return; // Prevent unnecessary updates\n const pathSegments = pathname.split('/').filter(Boolean);\n pathSegments[pathSegments.length - 1] = newView.type; // Replace the last part with new view\n const newPath = '/' + pathSegments.join('/') + `?menuItemId=${newView.menuItemId}&menuItemName=${newView.menuItemName}&actionId=${newView.actionId}&actionName=${newView.actionName}`;\n router.push(newPath);\n };\n\n useEffect(() => {\n if (typeof pathname === 'string') {\n const pathSegments = pathname.split('/').filter(Boolean);\n if (pathSegments.length > 0) {\n setView(pathSegments[pathSegments.length - 1]);\n }\n }\n }, [])\n\n //Build a map of actionKey → boolean at the top level\n const headerActions = solidListViewLayout?.attrs ?? {};\n\n const normalizeAction = (value: boolean | string[]) => {\n if (value === true) return { enabled: true, roles: [] };\n if (value === false) return { enabled: false, roles: [] };\n if (Array.isArray(value)) return { enabled: true, roles: value };\n return { enabled: true, roles: [] }; // default\n };\n const normalized = {\n import: normalizeAction(headerActions.import),\n export: normalizeAction(headerActions.export),\n customizeLayout: normalizeAction(headerActions.customizeLayout),\n savedFilters: normalizeAction(headerActions.savedFilters),\n };\n\n // Role checks\n const { data: session, status } = useSession();\n const user = session?.user;\n const useRoleCheck = (roles: string[]) => hasAnyRole(user?.roles, roles);\n\n // Map of action → roleCheck\n const roleCheckMap = {\n import: useRoleCheck(normalized.import.roles),\n export: useRoleCheck(normalized.export.roles),\n customizeLayout: useRoleCheck(normalized.customizeLayout.roles),\n savedFilters: useRoleCheck(normalized.savedFilters.roles),\n };\n\n const isHeaderActionEnabled = (action: keyof typeof normalized) => {\n const { enabled, roles } = normalized[action];\n\n // 1. If explicitly disabled\n if (!enabled) return false;\n\n // 2. If roles list exists → must have at least one\n if (roles.length > 0) {\n return roleCheckMap[action] === true;\n }\n // 3. No restrictions → enabled\n return true;\n };\n\n const clearLocalstorageCache = () => {\n const currentPageUrl = window.location.pathname; // Get the current page URL\n localStorage.removeItem(currentPageUrl); // Remove from local storage with the URL as the key\n window.location.reload();\n };\n\n const visibleViewModes = (() => {\n if (!Array.isArray(viewModes)) return [];\n\n const uniqueByType = new Map<string, ViewMode>();\n const currentActionId = String(params?.actionId ?? \"\");\n const currentMenuItemId = String(params?.menuItemId ?? \"\");\n\n for (const mode of viewModes) {\n if (!mode || typeof mode.type !== \"string\") continue;\n\n const existing = uniqueByType.get(mode.type);\n if (!existing) {\n uniqueByType.set(mode.type, mode);\n continue;\n }\n\n const modeActionId = String(mode.actionId ?? \"\");\n const modeMenuItemId = String(mode.menuItemId ?? \"\");\n const existingActionId = String(existing.actionId ?? \"\");\n const existingMenuItemId = String(existing.menuItemId ?? \"\");\n\n const modeIsCurrent = (currentActionId && modeActionId === currentActionId) ||\n (currentMenuItemId && modeMenuItemId === currentMenuItemId);\n const existingIsCurrent = (currentActionId && existingActionId === currentActionId) ||\n (currentMenuItemId && existingMenuItemId === currentMenuItemId);\n\n if (modeIsCurrent && !existingIsCurrent) {\n uniqueByType.set(mode.type, mode);\n }\n }\n\n return Array.from(uniqueByType.values());\n })();\n const showSwitchType = visibleViewModes.length > 0;\n const handleViewTypeChange = (nextType: string) => {\n const nextView = visibleViewModes.find((option: ViewMode) => option.type === nextType);\n if (nextView) {\n handleViewChange(nextView);\n }\n };\n\n return (\n <div className=\"position-relative\">\n <SolidDropdownMenu open={isCogMenuOpen} onOpenChange={setIsCogMenuOpen}>\n <SolidDropdownMenuTrigger asChild>\n <button\n type=\"button\"\n className=\"solid-icon-button solid-header-cog-trigger\"\n aria-label=\"Open list options\"\n >\n <Cog size={16} />\n </button>\n </SolidDropdownMenuTrigger>\n <SolidDropdownMenuContent className=\"listview-cogwheel-panel\">\n {(\n (actionsAllowed.includes(`${permissionExpression(params.modelName, 'deleteMany')}`) &&\n viewData?.data?.solidView?.layout?.attrs?.delete !== false &&\n selectedRecords.length > 0) ||\n isHeaderActionEnabled('import') && actionsAllowed.includes(`${permissionExpression(params.modelName, 'create')}`) && actionsAllowed.includes(`${permissionExpression('importTransaction', 'create')}`) ||\n isHeaderActionEnabled('export') && actionsAllowed.includes(`${permissionExpression(params.modelName, 'findMany')}`) && actionsAllowed.includes(`${permissionExpression('exportTransaction', 'create')}`) ||\n isHeaderActionEnabled('customizeLayout') && actionsAllowed.includes(`${permissionExpression('userViewMetadata', 'create')}`) ||\n isHeaderActionEnabled('savedFilters') && actionsAllowed.includes(`${permissionExpression('savedFilters', 'create')}`) ||\n (solidListViewLayout?.attrs?.headerButtons\n ?.some((rb: any) => rb.attrs.actionInContextMenu === true && isButtonVisibleInCurrentEnv(rb?.attrs))) ||\n viewData?.data?.solidView?.model?.enableSoftDelete\n ) && (\n <>\n {actionsAllowed.includes(`${permissionExpression(params.modelName, 'deleteMany')}`) && viewData?.data?.solidView?.layout?.attrs?.delete !== false && selectedRecords.length > 0 && (\n <SolidDropdownMenuItem\n className=\"solid-header-dropdown-item solid-header-dropdown-item-danger\"\n onSelect={() => {\n setDialogVisible(true);\n setIsCogMenuOpen(false);\n }}\n >\n <Trash2 size={14} className=\"solid-header-action-button-icon\" />\n <span className=\"solid-header-action-button-label\">Delete</span>\n </SolidDropdownMenuItem>\n )}\n {isHeaderActionEnabled(\"import\") && actionsAllowed.includes(`${permissionExpression(params.modelName, 'create')}`) && actionsAllowed.includes(`${permissionExpression('importTransaction', 'create')}`) && (\n <SolidDropdownMenuItem\n className=\"solid-header-dropdown-item\"\n onSelect={() => {\n setOpenImportDialog(true);\n setIsCogMenuOpen(false);\n }}\n >\n <Download size={14} className=\"solid-header-action-button-icon\" />\n <span className=\"solid-header-action-button-label\">Import</span>\n </SolidDropdownMenuItem>\n )}\n {isHeaderActionEnabled(\"export\") && actionsAllowed.includes(`${permissionExpression(params.modelName, 'findMany')}`) && actionsAllowed.includes(`${permissionExpression('exportTransaction', 'create')}`) && (\n <SolidDropdownMenuItem\n className=\"solid-header-dropdown-item\"\n onSelect={() => {\n setExportView((current) => !current);\n setIsCogMenuOpen(false);\n }}\n >\n <Upload size={14} className=\"solid-header-action-button-icon\" />\n <span className=\"solid-header-action-button-label\">Export</span>\n </SolidDropdownMenuItem>\n )}\n {solidListViewLayout?.attrs?.headerButtons\n ?.filter((rb: any) => isButtonVisibleInCurrentEnv(rb?.attrs))\n ?.filter((rb: any) => rb.attrs.actionInContextMenu === true)\n ?.map((button: any, index: number) => (\n <SolidListViewHeaderContextMenuButton\n key={index}\n button={button}\n params={params}\n solidListViewMetaData={listViewMetaData}\n handleCustomButtonClick={handleCustomButtonClick}\n onActionComplete={() => setIsCogMenuOpen(false)}\n />\n ))}\n {viewData?.data?.solidView?.model?.enableSoftDelete && (\n <SolidDropdownMenuCheckboxItem\n checked={showArchived}\n onCheckedChange={() => setShowArchived(!showArchived)}\n >\n Show Archived Records\n </SolidDropdownMenuCheckboxItem>\n )}\n {showArchived && (\n <SolidDropdownMenuItem\n className=\"solid-header-dropdown-item lg:hidden\"\n onSelect={() => {\n setRecoverDialogVisible(true);\n setIsCogMenuOpen(false);\n }}\n >\n <RefreshCw size={14} className=\"solid-header-action-button-icon\" />\n <span className=\"solid-header-action-button-label\">Recover</span>\n </SolidDropdownMenuItem>\n )}\n\n {(\n isHeaderActionEnabled('customizeLayout') && actionsAllowed.includes(`${permissionExpression('userViewMetadata', 'create')}`) ||\n isHeaderActionEnabled('savedFilters') && actionsAllowed.includes(`${permissionExpression('savedFilters', 'create')}`) ||\n true\n ) && <SolidDropdownMenuSeparator />}\n\n {isHeaderActionEnabled('customizeLayout') && actionsAllowed.includes(`${permissionExpression('userViewMetadata', 'create')}`) && (\n <SolidDropdownMenuSub>\n <SolidDropdownMenuSubTrigger className=\"solid-header-dropdown-item\">\n <SlidersHorizontal size={14} className=\"solid-header-action-button-icon\" />\n <span className=\"solid-header-action-button-label\">Layout</span>\n </SolidDropdownMenuSubTrigger>\n <SolidDropdownMenuSubContent className=\"customize-layout-panel\">\n {showSwitchType && (\n <>\n <SolidDropdownMenuLabel>Switch Type</SolidDropdownMenuLabel>\n <SolidDropdownMenuRadioGroup value={view} onValueChange={handleViewTypeChange}>\n {visibleViewModes.map((option: ViewMode) => (\n <SolidDropdownMenuRadioItem key={option.type} value={option.type}>\n {capitalize(option.type)}\n </SolidDropdownMenuRadioItem>\n ))}\n </SolidDropdownMenuRadioGroup>\n <SolidDropdownMenuSeparator />\n </>\n )}\n <SolidDropdownMenuLabel>Row Spacing</SolidDropdownMenuLabel>\n <SolidDropdownMenuRadioGroup value={size} onValueChange={(value: string) => setSize(value)}>\n {sizeOptions.map((option: any) => (\n <SolidDropdownMenuRadioItem key={option.value} value={option.value}>\n {option.label}\n </SolidDropdownMenuRadioItem>\n ))}\n </SolidDropdownMenuRadioGroup>\n <SolidDropdownMenuSeparator />\n <SolidDropdownMenuItem\n onSelect={() => {\n setShowColumnSelectorDialog(true);\n setIsCogMenuOpen(false);\n }}\n >\n <Table size={14} className=\"solid-header-action-button-icon\" />\n <span className=\"solid-header-action-button-label\">Column Selector</span>\n </SolidDropdownMenuItem>\n </SolidDropdownMenuSubContent>\n </SolidDropdownMenuSub>\n )}\n {isHeaderActionEnabled('savedFilters') && actionsAllowed.includes(`${permissionExpression('savedFilters', 'create')}`) && (\n <SolidDropdownMenuItem\n className=\"solid-header-dropdown-item\"\n onSelect={() => {\n setShowSaveFilterPopup(true);\n setIsCogMenuOpen(false);\n }}\n >\n <Save size={14} className=\"solid-header-action-button-icon\" />\n <span className=\"solid-header-action-button-label\">Save Custom Filter</span>\n </SolidDropdownMenuItem>\n )}\n <SolidDropdownMenuItem\n className=\"solid-header-dropdown-item\"\n onSelect={() => {\n clearLocalstorageCache();\n setIsCogMenuOpen(false);\n }}\n >\n <Trash2 size={14} className=\"solid-header-action-button-icon\" />\n <span className=\"solid-header-action-button-label\">Reset View</span>\n </SolidDropdownMenuItem>\n </>\n )}\n </SolidDropdownMenuContent>\n </SolidDropdownMenu>\n <SolidDialog\n open={exportView}\n onOpenChange={setExportView}\n className=\"solid-kanban-export-dialog solid-list-export-dialog\"\n style={{ width: \"min(980px, calc(100vw - 32px))\" }}\n >\n <SolidDialogHeader className=\"solid-export-dialog-header\">\n <div>\n <SolidDialogTitle>Export</SolidDialogTitle>\n <SolidDialogDescription className=\"solid-filter-dialog-subtitle m-0\">\n Choose the file format, refine the field set, and save reusable export templates.\n </SolidDialogDescription>\n </div>\n <SolidDialogClose />\n </SolidDialogHeader>\n <SolidDialogSeparator />\n <SolidDialogBody className=\"solid-kanban-export-dialog-body\">\n <SolidExport listViewMetaData={listViewMetaData} filters={filters} />\n </SolidDialogBody>\n </SolidDialog>\n <SolidDialog\n open={showColumnSelectorDialog}\n onOpenChange={setShowColumnSelectorDialog}\n className=\"solid-column-selector-dialog\"\n style={{ width: \"min(388px, calc(100vw - 2rem))\" }}\n >\n <SolidDialogHeader className=\"solid-filter-dialog-head\">\n <div>\n <SolidDialogTitle className=\"solid-filter-dialog-title m-0\">Column Selector</SolidDialogTitle>\n <SolidDialogDescription className=\"solid-filter-dialog-subtitle m-0\">\n Choose visible columns and reorder them for this list view.\n </SolidDialogDescription>\n </div>\n <SolidDialogClose className=\"solid-filter-dialog-close\" />\n </SolidDialogHeader>\n <SolidDialogSeparator className=\"solid-filter-dialog-sep\" />\n <SolidDialogBody className=\"solid-filter-dialog-body\">\n <SolidListColumnSelector\n listViewMetaData={listViewMetaData}\n onClose={() => setShowColumnSelectorDialog(false)}\n />\n </SolidDialogBody>\n </SolidDialog>\n {openImportDialog &&\n <SolidGenericImport\n openImportDialog={openImportDialog}\n setOpenImportDialog={setOpenImportDialog}\n listViewMetaData={listViewMetaData}\n handleFetchUpdatedRecords={handleFetchUpdatedRecords}\n />\n }\n </div>\n )\n}\n"]}
@@ -7,6 +7,7 @@ import { SolidListColumnSelector } from "./SolidColumnSelector/SolidListColumnSe
7
7
  import { SolidExport } from "../../../components/common/SolidExport";
8
8
  import { useHandleListCustomButtonClick } from "../../../components/common/useHandleListCustomButtonClick";
9
9
  import { SolidListViewHeaderContextMenuButton } from "./SolidListViewHeaderContextMenuButton";
10
+ import { isButtonVisibleInCurrentEnv } from "../../../helpers/buttonEnvironment";
10
11
  import "../../common/solid-export.css";
11
12
  import { SolidGenericImport } from "../common/SolidGenericImport/SolidGenericImport";
12
13
  import { hasAnyRole } from "../../../helpers/rolesHelper";
@@ -203,7 +204,7 @@ export const SolidListViewConfigure = (
203
204
  isHeaderActionEnabled('customizeLayout') && actionsAllowed.includes(`${permissionExpression('userViewMetadata', 'create')}`) ||
204
205
  isHeaderActionEnabled('savedFilters') && actionsAllowed.includes(`${permissionExpression('savedFilters', 'create')}`) ||
205
206
  (solidListViewLayout?.attrs?.headerButtons
206
- ?.some((rb: any) => rb.attrs.actionInContextMenu === true)) ||
207
+ ?.some((rb: any) => rb.attrs.actionInContextMenu === true && isButtonVisibleInCurrentEnv(rb?.attrs))) ||
207
208
  viewData?.data?.solidView?.model?.enableSoftDelete
208
209
  ) && (
209
210
  <>
@@ -244,6 +245,7 @@ export const SolidListViewConfigure = (
244
245
  </SolidDropdownMenuItem>
245
246
  )}
246
247
  {solidListViewLayout?.attrs?.headerButtons
248
+ ?.filter((rb: any) => isButtonVisibleInCurrentEnv(rb?.attrs))
247
249
  ?.filter((rb: any) => rb.attrs.actionInContextMenu === true)
248
250
  ?.map((button: any, index: number) => (
249
251
  <SolidListViewHeaderContextMenuButton
@@ -343,7 +345,7 @@ export const SolidListViewConfigure = (
343
345
  }}
344
346
  >
345
347
  <Trash2 size={14} className="solid-header-action-button-icon" />
346
- <span className="solid-header-action-button-label">Clear cache</span>
348
+ <span className="solid-header-action-button-label">Reset View</span>
347
349
  </SolidDropdownMenuItem>
348
350
  </>
349
351
  )}
@@ -1 +1 @@
1
- {"version":3,"file":"SolidListViewHeaderButton.d.ts","sourceRoot":"","sources":["../../../../src/components/core/list/SolidListViewHeaderButton.tsx"],"names":[],"mappings":"AAKA,eAAO,MAAM,yBAAyB,iGAAkG,GAAG,mDA4B1I,CAAC"}
1
+ {"version":3,"file":"SolidListViewHeaderButton.d.ts","sourceRoot":"","sources":["../../../../src/components/core/list/SolidListViewHeaderButton.tsx"],"names":[],"mappings":"AAMA,eAAO,MAAM,yBAAyB,iGAAkG,GAAG,mDAgC1I,CAAC"}