@solidxai/core-ui 0.1.13-beta.3 → 0.1.13-beta.5

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 (162) hide show
  1. package/dist/components/auth/AuthTabs.d.ts.map +1 -1
  2. package/dist/components/auth/AuthTabs.js +1 -1
  3. package/dist/components/auth/AuthTabs.js.map +1 -1
  4. package/dist/components/auth/AuthTabs.tsx +1 -0
  5. package/dist/components/auth/SolidChangeForcePassword.d.ts.map +1 -1
  6. package/dist/components/auth/SolidChangeForcePassword.js +2 -2
  7. package/dist/components/auth/SolidChangeForcePassword.js.map +1 -1
  8. package/dist/components/auth/SolidChangeForcePassword.tsx +9 -8
  9. package/dist/components/common/SettingsComponent.d.ts.map +1 -1
  10. package/dist/components/common/SettingsComponent.js +1 -1
  11. package/dist/components/common/SettingsComponent.js.map +1 -1
  12. package/dist/components/common/SettingsComponent.tsx +1 -0
  13. package/dist/components/common/SolidFieldTooltip.d.ts.map +1 -1
  14. package/dist/components/common/SolidFieldTooltip.js +1 -33
  15. package/dist/components/common/SolidFieldTooltip.js.map +1 -1
  16. package/dist/components/common/SolidFieldTooltip.tsx +8 -64
  17. package/dist/components/common/SolidMaterialSymbol.d.ts +1 -1
  18. package/dist/components/common/SolidMaterialSymbol.d.ts.map +1 -1
  19. package/dist/components/common/SolidMaterialSymbol.js +6 -37
  20. package/dist/components/common/SolidMaterialSymbol.js.map +1 -1
  21. package/dist/components/common/SolidMaterialSymbol.tsx +6 -54
  22. package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.d.ts.map +1 -1
  23. package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.js +2 -2
  24. package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.js.map +1 -1
  25. package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.tsx +2 -0
  26. package/dist/components/core/card/CardItem.d.ts.map +1 -1
  27. package/dist/components/core/card/CardItem.js +1 -1
  28. package/dist/components/core/card/CardItem.js.map +1 -1
  29. package/dist/components/core/card/CardItem.tsx +16 -14
  30. package/dist/components/core/card/SolidCardView.d.ts.map +1 -1
  31. package/dist/components/core/card/SolidCardView.js +75 -51
  32. package/dist/components/core/card/SolidCardView.js.map +1 -1
  33. package/dist/components/core/card/SolidCardView.tsx +61 -35
  34. package/dist/components/core/card/SolidCardViewConfigure.d.ts.map +1 -1
  35. package/dist/components/core/card/SolidCardViewConfigure.js +3 -7
  36. package/dist/components/core/card/SolidCardViewConfigure.js.map +1 -1
  37. package/dist/components/core/card/SolidCardViewConfigure.tsx +3 -9
  38. package/dist/components/core/common/SolidAccountSettings/SolidAccountSettings.module.css +99 -0
  39. package/dist/components/core/common/SolidAccountSettings/SolidVersionInfo.d.ts.map +1 -1
  40. package/dist/components/core/common/SolidAccountSettings/SolidVersionInfo.js +76 -5
  41. package/dist/components/core/common/SolidAccountSettings/SolidVersionInfo.js.map +1 -1
  42. package/dist/components/core/common/SolidAccountSettings/SolidVersionInfo.tsx +39 -4
  43. package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
  44. package/dist/components/core/common/SolidGlobalSearchElement.js +172 -124
  45. package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
  46. package/dist/components/core/common/SolidGlobalSearchElement.tsx +73 -84
  47. package/dist/components/core/common/globalSearchPersistence.d.ts +3 -0
  48. package/dist/components/core/common/globalSearchPersistence.d.ts.map +1 -1
  49. package/dist/components/core/common/globalSearchPersistence.js +33 -24
  50. package/dist/components/core/common/globalSearchPersistence.js.map +1 -1
  51. package/dist/components/core/common/globalSearchPersistence.ts +34 -27
  52. package/dist/components/core/filter/fields/SolidMediaMultipleField.js +2 -2
  53. package/dist/components/core/filter/fields/SolidMediaMultipleField.js.map +1 -1
  54. package/dist/components/core/filter/fields/SolidMediaMultipleField.tsx +2 -2
  55. package/dist/components/core/filter/fields/SolidMediaSingleField.js +2 -2
  56. package/dist/components/core/filter/fields/SolidMediaSingleField.js.map +1 -1
  57. package/dist/components/core/filter/fields/SolidMediaSingleField.tsx +2 -2
  58. package/dist/components/core/filter/fields/SolidShortTextField.js +2 -2
  59. package/dist/components/core/filter/fields/SolidShortTextField.js.map +1 -1
  60. package/dist/components/core/filter/fields/SolidShortTextField.tsx +2 -2
  61. package/dist/components/core/form/SolidFormView.d.ts.map +1 -1
  62. package/dist/components/core/form/SolidFormView.js +2 -10
  63. package/dist/components/core/form/SolidFormView.js.map +1 -1
  64. package/dist/components/core/form/SolidFormView.tsx +2 -10
  65. package/dist/components/core/kanban/KanbanCard.d.ts.map +1 -1
  66. package/dist/components/core/kanban/KanbanCard.js +1 -1
  67. package/dist/components/core/kanban/KanbanCard.js.map +1 -1
  68. package/dist/components/core/kanban/KanbanCard.tsx +18 -16
  69. package/dist/components/core/kanban/SolidKanbanView.d.ts.map +1 -1
  70. package/dist/components/core/kanban/SolidKanbanView.js +73 -59
  71. package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
  72. package/dist/components/core/kanban/SolidKanbanView.tsx +57 -22
  73. package/dist/components/core/kanban/SolidKanbanViewConfigure.d.ts +1 -1
  74. package/dist/components/core/kanban/SolidKanbanViewConfigure.d.ts.map +1 -1
  75. package/dist/components/core/kanban/SolidKanbanViewConfigure.js +14 -9
  76. package/dist/components/core/kanban/SolidKanbanViewConfigure.js.map +1 -1
  77. package/dist/components/core/kanban/SolidKanbanViewConfigure.tsx +38 -9
  78. package/dist/components/core/list/SolidEmptyListViewPlaceholder.d.ts.map +1 -1
  79. package/dist/components/core/list/SolidEmptyListViewPlaceholder.js +2 -3
  80. package/dist/components/core/list/SolidEmptyListViewPlaceholder.js.map +1 -1
  81. package/dist/components/core/list/SolidEmptyListViewPlaceholder.tsx +2 -3
  82. package/dist/components/core/list/SolidListView.d.ts.map +1 -1
  83. package/dist/components/core/list/SolidListView.js +8 -16
  84. package/dist/components/core/list/SolidListView.js.map +1 -1
  85. package/dist/components/core/list/SolidListView.tsx +9 -15
  86. package/dist/components/core/list/SolidListViewConfigure.d.ts.map +1 -1
  87. package/dist/components/core/list/SolidListViewConfigure.js +22 -16
  88. package/dist/components/core/list/SolidListViewConfigure.js.map +1 -1
  89. package/dist/components/core/list/SolidListViewConfigure.tsx +32 -11
  90. package/dist/components/core/list/SolidListViewHeaderContextMenuButton.d.ts +1 -1
  91. package/dist/components/core/list/SolidListViewHeaderContextMenuButton.d.ts.map +1 -1
  92. package/dist/components/core/list/SolidListViewHeaderContextMenuButton.js +3 -1
  93. package/dist/components/core/list/SolidListViewHeaderContextMenuButton.js.map +1 -1
  94. package/dist/components/core/list/SolidListViewHeaderContextMenuButton.tsx +3 -1
  95. package/dist/components/core/list/columns/SolidMediaMultipleColumn.d.ts.map +1 -1
  96. package/dist/components/core/list/columns/SolidMediaMultipleColumn.js +7 -0
  97. package/dist/components/core/list/columns/SolidMediaMultipleColumn.js.map +1 -1
  98. package/dist/components/core/list/columns/SolidMediaMultipleColumn.tsx +5 -0
  99. package/dist/components/core/list/columns/SolidMediaSingleColumn.d.ts.map +1 -1
  100. package/dist/components/core/list/columns/SolidMediaSingleColumn.js +3 -0
  101. package/dist/components/core/list/columns/SolidMediaSingleColumn.js.map +1 -1
  102. package/dist/components/core/list/columns/SolidMediaSingleColumn.tsx +2 -0
  103. package/dist/components/core/list/widgets/SolidShortTextFieldImageRenderModeWidget.d.ts.map +1 -1
  104. package/dist/components/core/list/widgets/SolidShortTextFieldImageRenderModeWidget.js +3 -0
  105. package/dist/components/core/list/widgets/SolidShortTextFieldImageRenderModeWidget.js.map +1 -1
  106. package/dist/components/core/list/widgets/SolidShortTextFieldImageRenderModeWidget.tsx +2 -0
  107. package/dist/components/core/model/CreateModel.css +10 -0
  108. package/dist/components/core/model/FieldMetaDataForm.css +10 -0
  109. package/dist/components/core/model/FieldMetaDataForm.js +8 -8
  110. package/dist/components/core/model/FieldMetaDataForm.js.map +1 -1
  111. package/dist/components/core/model/FieldMetaDataForm.tsx +13 -13
  112. package/dist/components/core/module/ModuleMetadataExplorer.css +23 -0
  113. package/dist/components/core/module/ModuleMetadataExplorer.d.ts.map +1 -1
  114. package/dist/components/core/module/ModuleMetadataExplorer.js +1 -1
  115. package/dist/components/core/module/ModuleMetadataExplorer.js.map +1 -1
  116. package/dist/components/core/module/ModuleMetadataExplorer.tsx +9 -0
  117. package/dist/components/core/tree/SolidTreeView.d.ts.map +1 -1
  118. package/dist/components/core/tree/SolidTreeView.js +251 -152
  119. package/dist/components/core/tree/SolidTreeView.js.map +1 -1
  120. package/dist/components/core/tree/SolidTreeView.tsx +222 -106
  121. package/dist/components/core/users/ApiKeysTab/GenerateApiKeyModal.d.ts.map +1 -1
  122. package/dist/components/core/users/ApiKeysTab/GenerateApiKeyModal.js +1 -1
  123. package/dist/components/core/users/ApiKeysTab/GenerateApiKeyModal.js.map +1 -1
  124. package/dist/components/core/users/ApiKeysTab/GenerateApiKeyModal.tsx +1 -0
  125. package/dist/components/layout/AdminHeaderActions.js +6 -13
  126. package/dist/components/layout/AdminHeaderActions.js.map +1 -1
  127. package/dist/components/layout/AdminHeaderActions.tsx +11 -11
  128. package/dist/components/layout/AdminLayout.d.ts.map +1 -1
  129. package/dist/components/layout/AdminLayout.js +2 -2
  130. package/dist/components/layout/AdminLayout.js.map +1 -1
  131. package/dist/components/layout/AdminLayout.tsx +5 -4
  132. package/dist/components/layout/AppSidebar.d.ts.map +1 -1
  133. package/dist/components/layout/AppSidebar.js +17 -2
  134. package/dist/components/layout/AppSidebar.js.map +1 -1
  135. package/dist/components/layout/AppSidebar.tsx +21 -2
  136. package/dist/components/shad-cn-ui/SolidDatePicker.d.ts +1 -1
  137. package/dist/components/shad-cn-ui/SolidDatePicker.d.ts.map +1 -1
  138. package/dist/components/shad-cn-ui/SolidDatePicker.js +35 -3
  139. package/dist/components/shad-cn-ui/SolidDatePicker.js.map +1 -1
  140. package/dist/components/shad-cn-ui/SolidDatePicker.tsx +84 -0
  141. package/dist/components/shad-cn-ui/SolidTooltip.d.ts.map +1 -1
  142. package/dist/components/shad-cn-ui/SolidTooltip.js +55 -2
  143. package/dist/components/shad-cn-ui/SolidTooltip.js.map +1 -1
  144. package/dist/components/shad-cn-ui/SolidTooltip.tsx +95 -1
  145. package/dist/helpers/permissions.d.ts +13 -0
  146. package/dist/helpers/permissions.d.ts.map +1 -1
  147. package/dist/helpers/permissions.js +79 -0
  148. package/dist/helpers/permissions.js.map +1 -1
  149. package/dist/helpers/permissions.ts +92 -1
  150. package/dist/resources/globals.css +109 -1
  151. package/dist/resources/solid-custom.css +53 -3
  152. package/dist/resources/solid-tailwind-generated.css +1 -1
  153. package/dist/routes/pages/admin/core/DashboardPage.d.ts.map +1 -1
  154. package/dist/routes/pages/admin/core/DashboardPage.js +2 -2
  155. package/dist/routes/pages/admin/core/DashboardPage.js.map +1 -1
  156. package/dist/routes/pages/admin/core/DashboardPage.tsx +2 -0
  157. package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.d.ts.map +1 -1
  158. package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.js +1 -1
  159. package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.js.map +1 -1
  160. package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.tsx +1 -0
  161. package/dist/types/css-modules.d.ts +2 -0
  162. package/package.json +1 -1
@@ -8,7 +8,7 @@ import { SolidCustomListViewColumn } from "./SolidCustomListViewColumn";
8
8
  import { SolidCreateButton } from "../common/SolidCreateButton";
9
9
  import { SolidGlobalSearchElement } from "../common/SolidGlobalSearchElement";
10
10
  import { useLazyCheckIfPermissionExistsQuery } from "../../../redux/api/userApi";
11
- import { permissionExpression } from "../../../helpers/permissions";
11
+ import { getCollectionViewPermissionNames, permissionExpression } from "../../../helpers/permissions";
12
12
  import { usePathname } from "../../../hooks/usePathname";
13
13
  import { useRouter } from "../../../hooks/useRouter";
14
14
  import { useSearchParams } from "../../../hooks/useSearchParams";
@@ -44,6 +44,7 @@ import { SolidHeaderRequestStatus } from "../../common/SolidHeaderRequestStatus"
44
44
  import {
45
45
  getFilterObjectFromLocalStorage,
46
46
  hasStoredFilterPredicates,
47
+ hasStoredSearchUiState,
47
48
  setFilterObjectToLocalStorage,
48
49
  } from "../common/globalSearchPersistence";
49
50
  import {
@@ -286,19 +287,7 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
286
287
  useEffect(() => {
287
288
  const fetchPermissions = async () => {
288
289
  if (params.modelName) {
289
- const permissionNames = [
290
- permissionExpression(params.modelName, 'create'),
291
- permissionExpression(params.modelName, 'delete'),
292
- permissionExpression(params.modelName, 'update'),
293
- permissionExpression(params.modelName, 'deleteMany'),
294
- permissionExpression(params.modelName, 'findOne'),
295
- permissionExpression(params.modelName, 'findMany'),
296
- permissionExpression(params.modelName, 'insertMany'),
297
- permissionExpression('importTransaction', 'create'),
298
- permissionExpression('exportTransaction', 'create'),
299
- permissionExpression('userViewMetadata', 'create'),
300
- permissionExpression('savedFilters', 'create')
301
- ];
290
+ const permissionNames = getCollectionViewPermissionNames(params.modelName);
302
291
  const queryData = {
303
292
  permissionNames: permissionNames,
304
293
  };
@@ -876,6 +865,7 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
876
865
  fileterTobeStored.search_predicate = latestFilterPredicatesRef.current.search_predicate || null;
877
866
  fileterTobeStored.saved_filter_predicate = latestFilterPredicatesRef.current.saved_filter_predicate || null;
878
867
  fileterTobeStored.predefined_search_predicate = latestFilterPredicatesRef.current.predefined_search_predicate || null;
868
+ fileterTobeStored.predefined_search_chip = latestFilterPredicatesRef.current.predefined_search_chip || null;
879
869
  setFilterObjectToLocalStorage(fileterTobeStored);
880
870
  }
881
871
  triggerGetSolidEntities(queryString);
@@ -1367,6 +1357,10 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
1367
1357
  const hasAnyContextMenuActions =
1368
1358
  hasEditInContextMenu || hasDeleteInContextMenu || hasCustomContextMenuButtons;
1369
1359
  const isEmbeddedList = params.embeded === true;
1360
+ const shouldShowMobileSearchElement =
1361
+ showGlobalSearchElement ||
1362
+ hasStoredSearchUiState(filterPredicates) ||
1363
+ hasStoredSearchUiState(getFilterObjectFromLocalStorage());
1370
1364
 
1371
1365
  // const toggleBothSidebars = () => {
1372
1366
  // if (visibleNavbar) {
@@ -1524,7 +1518,7 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
1524
1518
  </div>
1525
1519
  </div>
1526
1520
  {/* </div> */}
1527
- {showGlobalSearchElement && params.embeded === false && window.innerWidth < 991 && (
1521
+ {shouldShowMobileSearchElement && params.embeded === false && (
1528
1522
  <div className="flex lg:hidden">
1529
1523
  <SolidGlobalSearchElement
1530
1524
  viewType="list"
@@ -1 +1 @@
1
- {"version":3,"file":"SolidListViewConfigure.d.ts","sourceRoot":"","sources":["../../../../src/components/core/list/SolidListViewConfigure.tsx"],"names":[],"mappings":"AAUA,OAAO,+BAA+B,CAAC;AA6BvC,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,4CAyVV,CAAA"}
1
+ {"version":3,"file":"SolidListViewConfigure.d.ts","sourceRoot":"","sources":["../../../../src/components/core/list/SolidListViewConfigure.tsx"],"names":[],"mappings":"AAUA,OAAO,+BAA+B,CAAC;AA6BvC,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,4CA8WV,CAAA"}
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { useSession } from "../../../hooks/useSession";
3
- import { permissionExpression } from "../../../helpers/permissions";
3
+ import { canExportRecords, canImportRecords, permissionExpression } from "../../../helpers/permissions";
4
4
  import { usePathname } from "../../../hooks/usePathname";
5
5
  import { useRouter } from "../../../hooks/useRouter";
6
6
  import { useEffect, useState } from "react";
@@ -17,17 +17,17 @@ import { Cog, Download, RefreshCw, Save, SlidersHorizontal, Table, Trash2, Uploa
17
17
  import { storeCurrentModelViewContext } from "../../../helpers/modelViewPersistence";
18
18
  import { SolidDialog, SolidDialogBody, SolidDialogClose, SolidDialogDescription, SolidDialogHeader, SolidDialogSeparator, SolidDialogTitle, SolidDropdownMenu, SolidDropdownMenuCheckboxItem, SolidDropdownMenuContent, SolidDropdownMenuItem, SolidDropdownMenuLabel, SolidDropdownMenuRadioGroup, SolidDropdownMenuRadioItem, SolidDropdownMenuSeparator, SolidDropdownMenuSub, SolidDropdownMenuSubContent, SolidDropdownMenuSubTrigger, SolidDropdownMenuTrigger, } from "../../shad-cn-ui";
19
19
  export var SolidListViewConfigure = function (_a) {
20
- var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x;
20
+ var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
21
21
  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;
22
22
  // const [visible, setVisible] = useState<boolean>(false);
23
23
  var handleCustomButtonClick = useHandleListCustomButtonClick();
24
- var _y = useState(false), openImportDialog = _y[0], setOpenImportDialog = _y[1];
24
+ var _u = useState(false), openImportDialog = _u[0], setOpenImportDialog = _u[1];
25
25
  var pathname = usePathname();
26
26
  var router = useRouter();
27
- var _z = useState(""), view = _z[0], setView = _z[1];
28
- var _0 = useState(false), exportView = _0[0], setExportView = _0[1];
29
- var _1 = useState(false), isCogMenuOpen = _1[0], setIsCogMenuOpen = _1[1];
30
- var _2 = useState(false), showColumnSelectorDialog = _2[0], setShowColumnSelectorDialog = _2[1];
27
+ var _v = useState(""), view = _v[0], setView = _v[1];
28
+ var _w = useState(false), exportView = _w[0], setExportView = _w[1];
29
+ var _x = useState(false), isCogMenuOpen = _x[0], setIsCogMenuOpen = _x[1];
30
+ var _y = useState(false), showColumnSelectorDialog = _y[0], setShowColumnSelectorDialog = _y[1];
31
31
  var handleViewChange = function (newView) {
32
32
  if (view === newView.type)
33
33
  return; // Prevent unnecessary updates
@@ -44,7 +44,7 @@ export var SolidListViewConfigure = function (_a) {
44
44
  setView(pathSegments[pathSegments.length - 1]);
45
45
  }
46
46
  }
47
- }, []);
47
+ }, [pathname]);
48
48
  //Build a map of actionKey → boolean at the top level
49
49
  var headerActions = (_b = solidListViewLayout === null || solidListViewLayout === void 0 ? void 0 : solidListViewLayout.attrs) !== null && _b !== void 0 ? _b : {};
50
50
  var normalizeAction = function (value) {
@@ -63,7 +63,7 @@ export var SolidListViewConfigure = function (_a) {
63
63
  savedFilters: normalizeAction(headerActions.savedFilters),
64
64
  };
65
65
  // Role checks
66
- var _3 = useSession(), session = _3.data, status = _3.status;
66
+ var _z = useSession(), session = _z.data, status = _z.status;
67
67
  var user = session === null || session === void 0 ? void 0 : session.user;
68
68
  var useRoleCheck = function (roles) { return hasAnyRole(user === null || user === void 0 ? void 0 : user.roles, roles); };
69
69
  // Map of action → roleCheck
@@ -85,6 +85,8 @@ export var SolidListViewConfigure = function (_a) {
85
85
  // 3. No restrictions → enabled
86
86
  return true;
87
87
  };
88
+ var canImport = isHeaderActionEnabled("import") && canImportRecords(actionsAllowed, params.modelName);
89
+ var canExport = isHeaderActionEnabled("export") && canExportRecords(actionsAllowed, params.modelName);
88
90
  var clearLocalstorageCache = function () {
89
91
  var currentPageUrl = window.location.pathname; // Get the current page URL
90
92
  localStorage.removeItem(currentPageUrl); // Remove from local storage with the URL as the key
@@ -121,6 +123,9 @@ export var SolidListViewConfigure = function (_a) {
121
123
  return Array.from(uniqueByType.values());
122
124
  })();
123
125
  var showSwitchType = visibleViewModes.length > 0;
126
+ var visibleHeaderButtons = ((_d = (_c = solidListViewLayout === null || solidListViewLayout === void 0 ? void 0 : solidListViewLayout.attrs) === null || _c === void 0 ? void 0 : _c.headerButtons) !== null && _d !== void 0 ? _d : []).filter(function (rb) { return isButtonVisibleInCurrentEnv(rb === null || rb === void 0 ? void 0 : rb.attrs); });
127
+ var contextMenuHeaderButtons = visibleHeaderButtons.filter(function (rb) { var _a; return ((_a = rb === null || rb === void 0 ? void 0 : rb.attrs) === null || _a === void 0 ? void 0 : _a.actionInContextMenu) === true; });
128
+ var mobileOnlyHeaderButtons = visibleHeaderButtons.filter(function (rb) { var _a; return ((_a = rb === null || rb === void 0 ? void 0 : rb.attrs) === null || _a === void 0 ? void 0 : _a.actionInContextMenu) !== true; });
124
129
  var handleViewTypeChange = function (nextType) {
125
130
  var nextView = visibleViewModes.find(function (option) { return option.type === nextType; });
126
131
  if (nextView) {
@@ -128,23 +133,24 @@ export var SolidListViewConfigure = function (_a) {
128
133
  }
129
134
  };
130
135
  return (_jsxs("div", { className: "position-relative", children: [_jsxs(SolidDropdownMenu, { open: isCogMenuOpen, onOpenChange: setIsCogMenuOpen, children: [_jsx(SolidDropdownMenuTrigger, { asChild: true, children: _jsx("button", { type: "button", className: "solid-icon-button solid-header-cog-trigger", "aria-label": "Open list options", children: _jsx(Cog, { size: 16 }) }) }), _jsx(SolidDropdownMenuContent, { className: "listview-cogwheel-panel", children: ((actionsAllowed.includes("".concat(permissionExpression(params.modelName, 'deleteMany'))) &&
131
- ((_f = (_e = (_d = (_c = viewData === null || viewData === void 0 ? void 0 : viewData.data) === null || _c === void 0 ? void 0 : _c.solidView) === null || _d === void 0 ? void 0 : _d.layout) === null || _e === void 0 ? void 0 : _e.attrs) === null || _f === void 0 ? void 0 : _f.delete) !== false &&
136
+ ((_h = (_g = (_f = (_e = viewData === null || viewData === void 0 ? void 0 : viewData.data) === null || _e === void 0 ? void 0 : _e.solidView) === null || _f === void 0 ? void 0 : _f.layout) === null || _g === void 0 ? void 0 : _g.attrs) === null || _h === void 0 ? void 0 : _h.delete) !== false &&
132
137
  selectedRecords.length > 0) ||
133
- isHeaderActionEnabled('import') && actionsAllowed.includes("".concat(permissionExpression(params.modelName, 'create'))) && actionsAllowed.includes("".concat(permissionExpression('importTransaction', 'create'))) ||
134
- isHeaderActionEnabled('export') && actionsAllowed.includes("".concat(permissionExpression(params.modelName, 'findMany'))) && actionsAllowed.includes("".concat(permissionExpression('exportTransaction', 'create'))) ||
138
+ canImport ||
139
+ canExport ||
135
140
  isHeaderActionEnabled('customizeLayout') && actionsAllowed.includes("".concat(permissionExpression('userViewMetadata', 'create'))) ||
136
141
  isHeaderActionEnabled('savedFilters') && actionsAllowed.includes("".concat(permissionExpression('savedFilters', 'create'))) ||
137
- ((_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); })) ||
142
+ contextMenuHeaderButtons.length > 0 ||
143
+ mobileOnlyHeaderButtons.length > 0 ||
138
144
  ((_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 () {
139
145
  setDialogVisible(true);
140
146
  setIsCogMenuOpen(false);
141
- }, children: [_jsx(Trash2, { size: 14, className: "solid-header-action-button-icon" }), _jsx("span", { className: "solid-header-action-button-label", children: "Delete" })] })), isHeaderActionEnabled("import") && actionsAllowed.includes("".concat(permissionExpression(params.modelName, 'create'))) && actionsAllowed.includes("".concat(permissionExpression('importTransaction', 'create'))) && (_jsxs(SolidDropdownMenuItem, { className: "solid-header-dropdown-item", onSelect: function () {
147
+ }, children: [_jsx(Trash2, { size: 14, className: "solid-header-action-button-icon" }), _jsx("span", { className: "solid-header-action-button-label", children: "Delete" })] })), canImport && (_jsxs(SolidDropdownMenuItem, { className: "solid-header-dropdown-item", onSelect: function () {
142
148
  setOpenImportDialog(true);
143
149
  setIsCogMenuOpen(false);
144
- }, 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 () {
150
+ }, children: [_jsx(Download, { size: 14, className: "solid-header-action-button-icon" }), _jsx("span", { className: "solid-header-action-button-label", children: "Import" })] })), canExport && (_jsxs(SolidDropdownMenuItem, { className: "solid-header-dropdown-item", onSelect: function () {
145
151
  setExportView(function (current) { return !current; });
146
152
  setIsCogMenuOpen(false);
147
- }, 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 () {
153
+ }, children: [_jsx(Upload, { size: 14, className: "solid-header-action-button-icon" }), _jsx("span", { className: "solid-header-action-button-label", children: "Export" })] })), contextMenuHeaderButtons === null || contextMenuHeaderButtons === void 0 ? void 0 : contextMenuHeaderButtons.map(function (button, index) { return (_jsx(SolidListViewHeaderContextMenuButton, { button: button, params: params, solidListViewMetaData: listViewMetaData, handleCustomButtonClick: handleCustomButtonClick, selectedRecords: selectedRecords, filters: filters, onActionComplete: function () { return setIsCogMenuOpen(false); } }, index)); }), _jsx("div", { className: "lg:hidden flex flex-col gap-1", children: mobileOnlyHeaderButtons === null || mobileOnlyHeaderButtons === void 0 ? void 0 : mobileOnlyHeaderButtons.map(function (button, index) { return (_jsx(SolidListViewHeaderContextMenuButton, { button: button, params: params, solidListViewMetaData: listViewMetaData, handleCustomButtonClick: handleCustomButtonClick, selectedRecords: selectedRecords, filters: filters, onActionComplete: function () { return setIsCogMenuOpen(false); } }, "mobile-".concat(index))); }) }), ((_t = (_s = (_r = viewData === null || viewData === void 0 ? void 0 : viewData.data) === null || _r === void 0 ? void 0 : _r.solidView) === null || _s === void 0 ? void 0 : _s.model) === null || _t === void 0 ? void 0 : _t.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 () {
148
154
  setRecoverDialogVisible(true);
149
155
  setIsCogMenuOpen(false);
150
156
  }, 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'))) ||
@@ -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 { 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 { storeCurrentModelViewContext } from \"../../../helpers/modelViewPersistence\";\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 storeCurrentModelViewContext(newPath);\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\n listViewMetaData={listViewMetaData}\n filters={filters}\n onExportComplete={() => setExportView(false)}\n />\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 { canExportRecords, canImportRecords, 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 { storeCurrentModelViewContext } from \"../../../helpers/modelViewPersistence\";\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 storeCurrentModelViewContext(newPath);\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 }, [pathname])\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 const canImport = isHeaderActionEnabled(\"import\") && canImportRecords(actionsAllowed, params.modelName);\n const canExport = isHeaderActionEnabled(\"export\") && canExportRecords(actionsAllowed, params.modelName);\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 visibleHeaderButtons = (solidListViewLayout?.attrs?.headerButtons ?? []).filter((rb: any) => isButtonVisibleInCurrentEnv(rb?.attrs));\n const contextMenuHeaderButtons = visibleHeaderButtons.filter((rb: any) => rb?.attrs?.actionInContextMenu === true);\n const mobileOnlyHeaderButtons = visibleHeaderButtons.filter((rb: any) => rb?.attrs?.actionInContextMenu !== true);\n\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 canImport ||\n canExport ||\n isHeaderActionEnabled('customizeLayout') && actionsAllowed.includes(`${permissionExpression('userViewMetadata', 'create')}`) ||\n isHeaderActionEnabled('savedFilters') && actionsAllowed.includes(`${permissionExpression('savedFilters', 'create')}`) ||\n contextMenuHeaderButtons.length > 0 ||\n mobileOnlyHeaderButtons.length > 0 ||\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 {canImport && (\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 {canExport && (\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 {contextMenuHeaderButtons\n ?.map((button: any, index: number) => (\n <SolidListViewHeaderContextMenuButton\n key={index}\n button={button}\n params={params}\n solidListViewMetaData={listViewMetaData}\n handleCustomButtonClick={handleCustomButtonClick}\n selectedRecords={selectedRecords}\n filters={filters}\n onActionComplete={() => setIsCogMenuOpen(false)}\n />\n ))}\n <div className=\"lg:hidden flex flex-col gap-1\">\n {mobileOnlyHeaderButtons\n ?.map((button: any, index: number) => (\n <SolidListViewHeaderContextMenuButton\n key={`mobile-${index}`}\n button={button}\n params={params}\n solidListViewMetaData={listViewMetaData}\n handleCustomButtonClick={handleCustomButtonClick}\n selectedRecords={selectedRecords}\n filters={filters}\n onActionComplete={() => setIsCogMenuOpen(false)}\n />\n ))}\n </div>\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\n listViewMetaData={listViewMetaData}\n filters={filters}\n onExportComplete={() => setExportView(false)}\n />\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,5 +1,5 @@
1
1
  import { useSession } from "../../../hooks/useSession";
2
- import { permissionExpression } from "../../../helpers/permissions";
2
+ import { canExportRecords, canImportRecords, permissionExpression } from "../../../helpers/permissions";
3
3
  import { usePathname } from "../../../hooks/usePathname";
4
4
  import { useRouter } from "../../../hooks/useRouter";
5
5
  import { useEffect, useRef, useState } from "react";
@@ -92,7 +92,7 @@ export const SolidListViewConfigure = (
92
92
  setView(pathSegments[pathSegments.length - 1]);
93
93
  }
94
94
  }
95
- }, [])
95
+ }, [pathname])
96
96
 
97
97
  //Build a map of actionKey → boolean at the top level
98
98
  const headerActions = solidListViewLayout?.attrs ?? {};
@@ -136,6 +136,8 @@ export const SolidListViewConfigure = (
136
136
  // 3. No restrictions → enabled
137
137
  return true;
138
138
  };
139
+ const canImport = isHeaderActionEnabled("import") && canImportRecords(actionsAllowed, params.modelName);
140
+ const canExport = isHeaderActionEnabled("export") && canExportRecords(actionsAllowed, params.modelName);
139
141
 
140
142
  const clearLocalstorageCache = () => {
141
143
  const currentPageUrl = window.location.pathname; // Get the current page URL
@@ -177,6 +179,10 @@ export const SolidListViewConfigure = (
177
179
  return Array.from(uniqueByType.values());
178
180
  })();
179
181
  const showSwitchType = visibleViewModes.length > 0;
182
+ const visibleHeaderButtons = (solidListViewLayout?.attrs?.headerButtons ?? []).filter((rb: any) => isButtonVisibleInCurrentEnv(rb?.attrs));
183
+ const contextMenuHeaderButtons = visibleHeaderButtons.filter((rb: any) => rb?.attrs?.actionInContextMenu === true);
184
+ const mobileOnlyHeaderButtons = visibleHeaderButtons.filter((rb: any) => rb?.attrs?.actionInContextMenu !== true);
185
+
180
186
  const handleViewTypeChange = (nextType: string) => {
181
187
  const nextView = visibleViewModes.find((option: ViewMode) => option.type === nextType);
182
188
  if (nextView) {
@@ -201,12 +207,12 @@ export const SolidListViewConfigure = (
201
207
  (actionsAllowed.includes(`${permissionExpression(params.modelName, 'deleteMany')}`) &&
202
208
  viewData?.data?.solidView?.layout?.attrs?.delete !== false &&
203
209
  selectedRecords.length > 0) ||
204
- isHeaderActionEnabled('import') && actionsAllowed.includes(`${permissionExpression(params.modelName, 'create')}`) && actionsAllowed.includes(`${permissionExpression('importTransaction', 'create')}`) ||
205
- isHeaderActionEnabled('export') && actionsAllowed.includes(`${permissionExpression(params.modelName, 'findMany')}`) && actionsAllowed.includes(`${permissionExpression('exportTransaction', 'create')}`) ||
210
+ canImport ||
211
+ canExport ||
206
212
  isHeaderActionEnabled('customizeLayout') && actionsAllowed.includes(`${permissionExpression('userViewMetadata', 'create')}`) ||
207
213
  isHeaderActionEnabled('savedFilters') && actionsAllowed.includes(`${permissionExpression('savedFilters', 'create')}`) ||
208
- (solidListViewLayout?.attrs?.headerButtons
209
- ?.some((rb: any) => rb.attrs.actionInContextMenu === true && isButtonVisibleInCurrentEnv(rb?.attrs))) ||
214
+ contextMenuHeaderButtons.length > 0 ||
215
+ mobileOnlyHeaderButtons.length > 0 ||
210
216
  viewData?.data?.solidView?.model?.enableSoftDelete
211
217
  ) && (
212
218
  <>
@@ -222,7 +228,7 @@ export const SolidListViewConfigure = (
222
228
  <span className="solid-header-action-button-label">Delete</span>
223
229
  </SolidDropdownMenuItem>
224
230
  )}
225
- {isHeaderActionEnabled("import") && actionsAllowed.includes(`${permissionExpression(params.modelName, 'create')}`) && actionsAllowed.includes(`${permissionExpression('importTransaction', 'create')}`) && (
231
+ {canImport && (
226
232
  <SolidDropdownMenuItem
227
233
  className="solid-header-dropdown-item"
228
234
  onSelect={() => {
@@ -234,7 +240,7 @@ export const SolidListViewConfigure = (
234
240
  <span className="solid-header-action-button-label">Import</span>
235
241
  </SolidDropdownMenuItem>
236
242
  )}
237
- {isHeaderActionEnabled("export") && actionsAllowed.includes(`${permissionExpression(params.modelName, 'findMany')}`) && actionsAllowed.includes(`${permissionExpression('exportTransaction', 'create')}`) && (
243
+ {canExport && (
238
244
  <SolidDropdownMenuItem
239
245
  className="solid-header-dropdown-item"
240
246
  onSelect={() => {
@@ -246,9 +252,7 @@ export const SolidListViewConfigure = (
246
252
  <span className="solid-header-action-button-label">Export</span>
247
253
  </SolidDropdownMenuItem>
248
254
  )}
249
- {solidListViewLayout?.attrs?.headerButtons
250
- ?.filter((rb: any) => isButtonVisibleInCurrentEnv(rb?.attrs))
251
- ?.filter((rb: any) => rb.attrs.actionInContextMenu === true)
255
+ {contextMenuHeaderButtons
252
256
  ?.map((button: any, index: number) => (
253
257
  <SolidListViewHeaderContextMenuButton
254
258
  key={index}
@@ -256,9 +260,26 @@ export const SolidListViewConfigure = (
256
260
  params={params}
257
261
  solidListViewMetaData={listViewMetaData}
258
262
  handleCustomButtonClick={handleCustomButtonClick}
263
+ selectedRecords={selectedRecords}
264
+ filters={filters}
259
265
  onActionComplete={() => setIsCogMenuOpen(false)}
260
266
  />
261
267
  ))}
268
+ <div className="lg:hidden flex flex-col gap-1">
269
+ {mobileOnlyHeaderButtons
270
+ ?.map((button: any, index: number) => (
271
+ <SolidListViewHeaderContextMenuButton
272
+ key={`mobile-${index}`}
273
+ button={button}
274
+ params={params}
275
+ solidListViewMetaData={listViewMetaData}
276
+ handleCustomButtonClick={handleCustomButtonClick}
277
+ selectedRecords={selectedRecords}
278
+ filters={filters}
279
+ onActionComplete={() => setIsCogMenuOpen(false)}
280
+ />
281
+ ))}
282
+ </div>
262
283
  {viewData?.data?.solidView?.model?.enableSoftDelete && (
263
284
  <SolidDropdownMenuCheckboxItem
264
285
  checked={showArchived}
@@ -1,2 +1,2 @@
1
- export declare const SolidListViewHeaderContextMenuButton: ({ button, params, solidListViewMetaData, handleCustomButtonClick, onActionComplete }: any) => import("react/jsx-runtime").JSX.Element | null;
1
+ export declare const SolidListViewHeaderContextMenuButton: ({ button, params, solidListViewMetaData, handleCustomButtonClick, selectedRecords, filters, onActionComplete }: any) => import("react/jsx-runtime").JSX.Element | null;
2
2
  //# sourceMappingURL=SolidListViewHeaderContextMenuButton.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SolidListViewHeaderContextMenuButton.d.ts","sourceRoot":"","sources":["../../../../src/components/core/list/SolidListViewHeaderContextMenuButton.tsx"],"names":[],"mappings":"AAOA,eAAO,MAAM,oCAAoC,yFAA0F,GAAG,mDAuC7I,CAAC"}
1
+ {"version":3,"file":"SolidListViewHeaderContextMenuButton.d.ts","sourceRoot":"","sources":["../../../../src/components/core/list/SolidListViewHeaderContextMenuButton.tsx"],"names":[],"mappings":"AAOA,eAAO,MAAM,oCAAoC,mHAAoH,GAAG,mDAyCvK,CAAC"}
@@ -7,7 +7,7 @@ import { SolidDropdownMenuItem } from "../../shad-cn-ui";
7
7
  import { SolidIcon, parseSolidIconMeta } from "../../shad-cn-ui/SolidIcon";
8
8
  export var SolidListViewHeaderContextMenuButton = function (_a) {
9
9
  var _b, _c, _d, _e, _f, _g, _h;
10
- var button = _a.button, params = _a.params, solidListViewMetaData = _a.solidListViewMetaData, handleCustomButtonClick = _a.handleCustomButtonClick, onActionComplete = _a.onActionComplete;
10
+ var button = _a.button, params = _a.params, solidListViewMetaData = _a.solidListViewMetaData, handleCustomButtonClick = _a.handleCustomButtonClick, selectedRecords = _a.selectedRecords, filters = _a.filters, onActionComplete = _a.onActionComplete;
11
11
  var _j = useSession(), session = _j.data, status = _j.status;
12
12
  var user = session === null || session === void 0 ? void 0 : session.user;
13
13
  var hasRole = !((_b = button === null || button === void 0 ? void 0 : button.attrs) === null || _b === void 0 ? void 0 : _b.roles) || ((_c = button === null || button === void 0 ? void 0 : button.attrs) === null || _c === void 0 ? void 0 : _c.roles.length) === 0 ? true : hasAnyRole(user === null || user === void 0 ? void 0 : user.roles, (_d = button === null || button === void 0 ? void 0 : button.attrs) === null || _d === void 0 ? void 0 : _d.roles);
@@ -30,6 +30,8 @@ export var SolidListViewHeaderContextMenuButton = function (_a) {
30
30
  var event = {
31
31
  params: params,
32
32
  solidListViewMetaData: solidListViewMetaData.data,
33
+ selectedRecords: selectedRecords,
34
+ filters: filters,
33
35
  };
34
36
  handleCustomButtonClick(button.attrs, event);
35
37
  onActionComplete === null || onActionComplete === void 0 ? void 0 : onActionComplete();
@@ -1 +1 @@
1
- {"version":3,"file":"SolidListViewHeaderContextMenuButton.js","sourceRoot":"","sources":["../../../../src/components/core/list/SolidListViewHeaderContextMenuButton.tsx"],"names":[],"mappings":"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","sourcesContent":["import { hasAnyRole } from \"../../../helpers/rolesHelper\";\nimport { isButtonVisibleInCurrentEnv } from \"../../../helpers/buttonEnvironment\";\nimport { resolveButtonPresentation } from \"../../../helpers/buttonPresentation\";\nimport { useSession } from \"../../../hooks/useSession\";\nimport { SolidDropdownMenuItem } from \"../../shad-cn-ui\";\nimport { SolidIcon, parseSolidIconMeta } from \"../../shad-cn-ui/SolidIcon\";\n\nexport const SolidListViewHeaderContextMenuButton = ({ button, params, solidListViewMetaData, handleCustomButtonClick, onActionComplete }: any) => {\n\n const { data: session, status } = useSession();\n const user = session?.user;\n\n const hasRole = !button?.attrs?.roles || button?.attrs?.roles.length === 0 ? true : hasAnyRole(user?.roles, button?.attrs?.roles);\n const presentation = resolveButtonPresentation(button?.attrs);\n const iconNode = presentation.showIcon\n ? (() => {\n const m = parseSolidIconMeta(presentation.icon);\n return m\n ? <SolidIcon name={m.name} spin={m.spin} className=\"solid-header-action-button-icon\" />\n : <i className={`${presentation.icon} solid-header-action-button-icon`} />;\n })()\n : null;\n\n if (!hasRole) return null;\n if (!isButtonVisibleInCurrentEnv(button?.attrs)) return null;\n if (!presentation.showIcon && !presentation.showLabel) return null;\n\n return (\n <SolidDropdownMenuItem\n className={`solid-header-dropdown-item ${presentation.buttonClassName ?? \"\"}`}\n onSelect={() => {\n const event = {\n params,\n solidListViewMetaData: solidListViewMetaData.data,\n };\n handleCustomButtonClick(button.attrs, event);\n onActionComplete?.();\n }}\n title={presentation.tooltip}\n aria-label={presentation.isIconOnly ? (presentation.tooltip ?? button?.attrs?.action ?? \"Action\") : undefined}\n >\n {presentation.iconPos === \"left\" ? iconNode : null}\n {presentation.showLabel ? <span className=\"solid-header-action-button-label\">{presentation.label}</span> : null}\n {presentation.iconPos === \"right\" ? iconNode : null}\n </SolidDropdownMenuItem>\n );\n};\n"]}
1
+ {"version":3,"file":"SolidListViewHeaderContextMenuButton.js","sourceRoot":"","sources":["../../../../src/components/core/list/SolidListViewHeaderContextMenuButton.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AACjF,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAChF,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAE3E,MAAM,CAAC,IAAM,oCAAoC,GAAG,UAAC,EAAmH;;QAAjH,MAAM,YAAA,EAAE,MAAM,YAAA,EAAE,qBAAqB,2BAAA,EAAE,uBAAuB,6BAAA,EAAE,eAAe,qBAAA,EAAE,OAAO,aAAA,EAAE,gBAAgB,sBAAA;IAEvJ,IAAA,KAA4B,UAAU,EAAE,EAAhC,OAAO,UAAA,EAAE,MAAM,YAAiB,CAAC;IAC/C,IAAM,IAAI,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,CAAC;IAE3B,IAAM,OAAO,GAAG,CAAC,CAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,KAAK,CAAA,IAAI,CAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,KAAK,CAAC,MAAM,MAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,EAAE,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,KAAK,CAAC,CAAC;IAClI,IAAM,YAAY,GAAG,yBAAyB,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAC,CAAC;IAC9D,IAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ;QAClC,CAAC,CAAC,CAAC;YACC,IAAM,CAAC,GAAG,kBAAkB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YAChD,OAAO,CAAC;gBACJ,CAAC,CAAC,KAAC,SAAS,IAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,EAAC,iCAAiC,GAAG;gBACvF,CAAC,CAAC,YAAG,SAAS,EAAE,UAAG,YAAY,CAAC,IAAI,qCAAkC,GAAI,CAAC;QACnF,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,IAAI,CAAC;IAEX,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,IAAI,CAAC,2BAA2B,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7D,IAAI,CAAC,YAAY,CAAC,QAAQ,IAAI,CAAC,YAAY,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAEnE,OAAO,CACH,MAAC,qBAAqB,IAClB,SAAS,EAAE,qCAA8B,MAAA,YAAY,CAAC,eAAe,mCAAI,EAAE,CAAE,EAC7E,QAAQ,EAAE;YACN,IAAM,KAAK,GAAG;gBACV,MAAM,QAAA;gBACN,qBAAqB,EAAE,qBAAqB,CAAC,IAAI;gBACjD,eAAe,iBAAA;gBACf,OAAO,SAAA;aACV,CAAC;YACF,uBAAuB,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAC7C,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,EAAI,CAAC;QACzB,CAAC,EACD,KAAK,EAAE,YAAY,CAAC,OAAO,gBACf,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAA,MAAA,YAAY,CAAC,OAAO,mCAAI,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,MAAM,mCAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,aAE5G,YAAY,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EACjD,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,eAAM,SAAS,EAAC,kCAAkC,YAAE,YAAY,CAAC,KAAK,GAAQ,CAAC,CAAC,CAAC,IAAI,EAC9G,YAAY,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,IAC/B,CAC3B,CAAC;AACN,CAAC,CAAC","sourcesContent":["import { hasAnyRole } from \"../../../helpers/rolesHelper\";\nimport { isButtonVisibleInCurrentEnv } from \"../../../helpers/buttonEnvironment\";\nimport { resolveButtonPresentation } from \"../../../helpers/buttonPresentation\";\nimport { useSession } from \"../../../hooks/useSession\";\nimport { SolidDropdownMenuItem } from \"../../shad-cn-ui\";\nimport { SolidIcon, parseSolidIconMeta } from \"../../shad-cn-ui/SolidIcon\";\n\nexport const SolidListViewHeaderContextMenuButton = ({ button, params, solidListViewMetaData, handleCustomButtonClick, selectedRecords, filters, onActionComplete }: any) => {\n\n const { data: session, status } = useSession();\n const user = session?.user;\n\n const hasRole = !button?.attrs?.roles || button?.attrs?.roles.length === 0 ? true : hasAnyRole(user?.roles, button?.attrs?.roles);\n const presentation = resolveButtonPresentation(button?.attrs);\n const iconNode = presentation.showIcon\n ? (() => {\n const m = parseSolidIconMeta(presentation.icon);\n return m\n ? <SolidIcon name={m.name} spin={m.spin} className=\"solid-header-action-button-icon\" />\n : <i className={`${presentation.icon} solid-header-action-button-icon`} />;\n })()\n : null;\n\n if (!hasRole) return null;\n if (!isButtonVisibleInCurrentEnv(button?.attrs)) return null;\n if (!presentation.showIcon && !presentation.showLabel) return null;\n\n return (\n <SolidDropdownMenuItem\n className={`solid-header-dropdown-item ${presentation.buttonClassName ?? \"\"}`}\n onSelect={() => {\n const event = {\n params,\n solidListViewMetaData: solidListViewMetaData.data,\n selectedRecords,\n filters,\n };\n handleCustomButtonClick(button.attrs, event);\n onActionComplete?.();\n }}\n title={presentation.tooltip}\n aria-label={presentation.isIconOnly ? (presentation.tooltip ?? button?.attrs?.action ?? \"Action\") : undefined}\n >\n {presentation.iconPos === \"left\" ? iconNode : null}\n {presentation.showLabel ? <span className=\"solid-header-action-button-label\">{presentation.label}</span> : null}\n {presentation.iconPos === \"right\" ? iconNode : null}\n </SolidDropdownMenuItem>\n );\n};\n"]}
@@ -5,7 +5,7 @@ import { useSession } from "../../../hooks/useSession";
5
5
  import { SolidDropdownMenuItem } from "../../shad-cn-ui";
6
6
  import { SolidIcon, parseSolidIconMeta } from "../../shad-cn-ui/SolidIcon";
7
7
 
8
- export const SolidListViewHeaderContextMenuButton = ({ button, params, solidListViewMetaData, handleCustomButtonClick, onActionComplete }: any) => {
8
+ export const SolidListViewHeaderContextMenuButton = ({ button, params, solidListViewMetaData, handleCustomButtonClick, selectedRecords, filters, onActionComplete }: any) => {
9
9
 
10
10
  const { data: session, status } = useSession();
11
11
  const user = session?.user;
@@ -32,6 +32,8 @@ export const SolidListViewHeaderContextMenuButton = ({ button, params, solidList
32
32
  const event = {
33
33
  params,
34
34
  solidListViewMetaData: solidListViewMetaData.data,
35
+ selectedRecords,
36
+ filters,
35
37
  };
36
38
  handleCustomButtonClick(button.attrs, event);
37
39
  onActionComplete?.();
@@ -1 +1 @@
1
- {"version":3,"file":"SolidMediaMultipleColumn.d.ts","sourceRoot":"","sources":["../../../../../src/components/core/list/columns/SolidMediaMultipleColumn.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,8BAA8B,EAAE,MAAM,8BAA8B,CAAC;AAqF9E,QAAA,MAAM,wBAAwB,uFAAwF,yBAAyB,4CAmC9I,CAAC;AAEF,eAAe,wBAAwB,CAAC;AAGxC,eAAO,MAAM,8BAA8B,iEAAkE,8BAA8B,mDAmI1I,CAAC"}
1
+ {"version":3,"file":"SolidMediaMultipleColumn.d.ts","sourceRoot":"","sources":["../../../../../src/components/core/list/columns/SolidMediaMultipleColumn.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,8BAA8B,EAAE,MAAM,8BAA8B,CAAC;AAqF9E,QAAA,MAAM,wBAAwB,uFAAwF,yBAAyB,4CAmC9I,CAAC;AAEF,eAAe,wBAAwB,CAAC;AAGxC,eAAO,MAAM,8BAA8B,iEAAkE,8BAA8B,mDAwI1I,CAAC"}
@@ -70,6 +70,7 @@ export var DefaultMediaMultipleListWidget = function (_a) {
70
70
  var _g = useState(false), isShowAllFiles = _g[0], setShowAllFiles = _g[1];
71
71
  if (!((_b = rowData === null || rowData === void 0 ? void 0 : rowData._media) === null || _b === void 0 ? void 0 : _b[fieldMetadata.name]))
72
72
  return null;
73
+ var isArchivedRecord = (rowData === null || rowData === void 0 ? void 0 : rowData.deletedAt) !== null && (rowData === null || rowData === void 0 ? void 0 : rowData.deletedAt) !== undefined;
73
74
  var fullrecord = (_c = rowData._media[fieldMetadata.name]) === null || _c === void 0 ? void 0 : _c.map(function (file) { return ({
74
75
  name: file.originalFileName,
75
76
  type: file.mimeType,
@@ -86,6 +87,8 @@ export var DefaultMediaMultipleListWidget = function (_a) {
86
87
  return size >= 1024 * 1024 ? "".concat((size / (1024 * 1024)).toFixed(1), " MB") : "".concat((size / 1024).toFixed(1), " KB");
87
88
  };
88
89
  var handleFileView = function (file) {
90
+ if (isArchivedRecord)
91
+ return;
89
92
  if (isLightboxMediaKind(file === null || file === void 0 ? void 0 : file.previewKind)) {
90
93
  setLightboxUrls === null || setLightboxUrls === void 0 ? void 0 : setLightboxUrls([{
91
94
  src: file.fileUrl,
@@ -102,6 +105,8 @@ export var DefaultMediaMultipleListWidget = function (_a) {
102
105
  return (_jsx("div", { className: "".concat(styles.mediaAttachmentCard, " ").concat(className).trim(), children: _jsxs("div", { className: "".concat(styles.mediaAttachmentRow, " flex items-center md:gap-2"), children: [_jsx(FileReaderExt, { fileDetails: file }), _jsxs("div", { className: "".concat(styles.mediaAttachmentMeta, " w-full"), children: [_jsxs("div", { className: "flex items-start justify-between gap-4", children: [_jsx("button", { type: "button", className: styles.mediaAttachmentName, onClick: function () { return handleFileView(file); }, title: file.name, children: file.name }), _jsx("div", { className: "".concat(styles.mediaAttachmentActions, " flex items-center md:gap-2"), children: _jsx("button", { type: "button", className: "solid-file-icon-btn", "aria-label": "Download file", onClick: function (event) {
103
106
  event.preventDefault();
104
107
  event.stopPropagation();
108
+ if (isArchivedRecord)
109
+ return;
105
110
  downloadMediaFile(file === null || file === void 0 ? void 0 : file.fileUrl, file === null || file === void 0 ? void 0 : file.name);
106
111
  }, children: _jsx(SolidIcon, { name: "si-download", "aria-hidden": true }) }) })] }), _jsx("div", { className: styles.mediaAttachmentSize, children: formatFileSize(file.size) })] })] }) }));
107
112
  };
@@ -115,6 +120,8 @@ export var DefaultMediaMultipleListWidget = function (_a) {
115
120
  marginLeft: "4px"
116
121
  }, onClick: function (event) {
117
122
  event.stopPropagation();
123
+ if (isArchivedRecord)
124
+ return;
118
125
  setShowAllFiles(true);
119
126
  }, children: ["+", fullrecord.length - 1] }), _jsxs(SolidDialog, { open: isShowAllFiles, onOpenChange: setShowAllFiles, style: { minWidth: 450 }, children: [_jsxs(SolidDialogHeader, { children: [_jsx(SolidDialogTitle, { children: "Items Uploaded" }), _jsx(SolidDialogClose, {})] }), _jsx(SolidDialogBody, { children: fullrecord === null || fullrecord === void 0 ? void 0 : fullrecord.map(function (file, index) {
120
127
  var fileId = "".concat(file.name, "-").concat(file.size);