@solidxai/core-ui 0.1.4-beta.0 → 0.1.4-beta.2

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/core/common/SolidAccountSettings/SolidAccountSettings.d.ts.map +1 -1
  2. package/dist/components/core/common/SolidAccountSettings/SolidAccountSettings.js +8 -0
  3. package/dist/components/core/common/SolidAccountSettings/SolidAccountSettings.js.map +1 -1
  4. package/dist/components/core/common/SolidAccountSettings/SolidAccountSettings.tsx +8 -0
  5. package/dist/components/core/common/SolidAccountSettings/SolidVersionInfo.d.ts +2 -0
  6. package/dist/components/core/common/SolidAccountSettings/SolidVersionInfo.d.ts.map +1 -0
  7. package/dist/components/core/common/SolidAccountSettings/SolidVersionInfo.js +34 -0
  8. package/dist/components/core/common/SolidAccountSettings/SolidVersionInfo.js.map +1 -0
  9. package/dist/components/core/common/SolidAccountSettings/SolidVersionInfo.tsx +83 -0
  10. package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
  11. package/dist/components/core/common/SolidGlobalSearchElement.js +6 -8
  12. package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
  13. package/dist/components/core/common/SolidGlobalSearchElement.tsx +21 -21
  14. package/dist/components/core/dashboard/SolidDashboard.d.ts +1 -1
  15. package/dist/components/core/dashboard/SolidDashboard.d.ts.map +1 -1
  16. package/dist/components/core/dashboard/SolidDashboard.js.map +1 -1
  17. package/dist/components/core/dashboard/SolidDashboard.tsx +1 -1
  18. package/dist/components/core/dashboard/SolidDashboardVariable.js +1 -1
  19. package/dist/components/core/dashboard/SolidDashboardVariable.js.map +1 -1
  20. package/dist/components/core/dashboard/SolidDashboardVariable.tsx +1 -1
  21. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.d.ts.map +1 -1
  22. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.js +15 -30
  23. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.js.map +1 -1
  24. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.tsx +46 -36
  25. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.d.ts +40 -0
  26. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.d.ts.map +1 -1
  27. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js +315 -160
  28. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js.map +1 -1
  29. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.tsx +459 -249
  30. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.d.ts.map +1 -1
  31. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.js +46 -95
  32. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.js.map +1 -1
  33. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.tsx +57 -113
  34. package/dist/components/core/form/fields/relations/widgets/helpers/useRelationEntityHandler.d.ts +15 -5
  35. package/dist/components/core/form/fields/relations/widgets/helpers/useRelationEntityHandler.d.ts.map +1 -1
  36. package/dist/components/core/form/fields/relations/widgets/helpers/useRelationEntityHandler.js +203 -67
  37. package/dist/components/core/form/fields/relations/widgets/helpers/useRelationEntityHandler.js.map +1 -1
  38. package/dist/components/core/form/fields/relations/widgets/helpers/useRelationEntityHandler.ts +147 -67
  39. package/dist/components/core/kanban/SolidKanbanView.d.ts.map +1 -1
  40. package/dist/components/core/kanban/SolidKanbanView.js +8 -7
  41. package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
  42. package/dist/components/core/kanban/SolidKanbanView.tsx +3 -2
  43. package/dist/components/core/list/SolidListView.d.ts +8 -5
  44. package/dist/components/core/list/SolidListView.d.ts.map +1 -1
  45. package/dist/components/core/list/SolidListView.js +95 -84
  46. package/dist/components/core/list/SolidListView.js.map +1 -1
  47. package/dist/components/core/list/SolidListView.tsx +55 -62
  48. package/dist/components/core/list/SolidListViewConfigure.d.ts +7 -0
  49. package/dist/components/core/list/SolidListViewConfigure.d.ts.map +1 -1
  50. package/dist/components/core/list/SolidListViewConfigure.js +6 -5
  51. package/dist/components/core/list/SolidListViewConfigure.js.map +1 -1
  52. package/dist/components/core/list/SolidListViewConfigure.tsx +21 -12
  53. package/dist/components/core/list/columns/SolidBooleanColumn.d.ts.map +1 -1
  54. package/dist/components/core/list/columns/SolidBooleanColumn.js +1 -24
  55. package/dist/components/core/list/columns/SolidBooleanColumn.js.map +1 -1
  56. package/dist/components/core/list/columns/SolidBooleanColumn.tsx +1 -35
  57. package/dist/components/core/list/columns/SolidDateColumn.d.ts +0 -5
  58. package/dist/components/core/list/columns/SolidDateColumn.d.ts.map +1 -1
  59. package/dist/components/core/list/columns/SolidDateColumn.js +1 -31
  60. package/dist/components/core/list/columns/SolidDateColumn.js.map +1 -1
  61. package/dist/components/core/list/columns/SolidDateColumn.tsx +2 -49
  62. package/dist/components/core/list/columns/SolidDatetimeColumn.d.ts.map +1 -1
  63. package/dist/components/core/list/columns/SolidDatetimeColumn.js +1 -20
  64. package/dist/components/core/list/columns/SolidDatetimeColumn.js.map +1 -1
  65. package/dist/components/core/list/columns/SolidDatetimeColumn.tsx +2 -37
  66. package/dist/components/core/list/columns/SolidExternalIdColumn.d.ts.map +1 -1
  67. package/dist/components/core/list/columns/SolidExternalIdColumn.js +1 -21
  68. package/dist/components/core/list/columns/SolidExternalIdColumn.js.map +1 -1
  69. package/dist/components/core/list/columns/SolidExternalIdColumn.tsx +1 -38
  70. package/dist/components/core/list/columns/SolidIdColumn.d.ts.map +1 -1
  71. package/dist/components/core/list/columns/SolidIdColumn.js +1 -21
  72. package/dist/components/core/list/columns/SolidIdColumn.js.map +1 -1
  73. package/dist/components/core/list/columns/SolidIdColumn.tsx +1 -36
  74. package/dist/components/core/list/columns/SolidIntColumn.d.ts.map +1 -1
  75. package/dist/components/core/list/columns/SolidIntColumn.js +1 -30
  76. package/dist/components/core/list/columns/SolidIntColumn.js.map +1 -1
  77. package/dist/components/core/list/columns/SolidIntColumn.tsx +2 -46
  78. package/dist/components/core/list/columns/SolidMediaMultipleColumn.d.ts.map +1 -1
  79. package/dist/components/core/list/columns/SolidMediaMultipleColumn.js +1 -5
  80. package/dist/components/core/list/columns/SolidMediaMultipleColumn.js.map +1 -1
  81. package/dist/components/core/list/columns/SolidMediaMultipleColumn.tsx +0 -7
  82. package/dist/components/core/list/columns/SolidMediaSingleColumn.d.ts.map +1 -1
  83. package/dist/components/core/list/columns/SolidMediaSingleColumn.js +1 -1
  84. package/dist/components/core/list/columns/SolidMediaSingleColumn.js.map +1 -1
  85. package/dist/components/core/list/columns/SolidMediaSingleColumn.tsx +0 -1
  86. package/dist/components/core/list/columns/SolidSelectionDynamicColumn.d.ts.map +1 -1
  87. package/dist/components/core/list/columns/SolidSelectionDynamicColumn.js +1 -21
  88. package/dist/components/core/list/columns/SolidSelectionDynamicColumn.js.map +1 -1
  89. package/dist/components/core/list/columns/SolidSelectionDynamicColumn.tsx +1 -37
  90. package/dist/components/core/list/columns/SolidSelectionStaticColumn.d.ts.map +1 -1
  91. package/dist/components/core/list/columns/SolidSelectionStaticColumn.js +1 -21
  92. package/dist/components/core/list/columns/SolidSelectionStaticColumn.js.map +1 -1
  93. package/dist/components/core/list/columns/SolidSelectionStaticColumn.tsx +1 -38
  94. package/dist/components/core/list/columns/SolidShortTextColumn.d.ts.map +1 -1
  95. package/dist/components/core/list/columns/SolidShortTextColumn.js +2 -66
  96. package/dist/components/core/list/columns/SolidShortTextColumn.js.map +1 -1
  97. package/dist/components/core/list/columns/SolidShortTextColumn.tsx +3 -86
  98. package/dist/components/core/list/columns/SolidTimeColumn.d.ts.map +1 -1
  99. package/dist/components/core/list/columns/SolidTimeColumn.js +1 -20
  100. package/dist/components/core/list/columns/SolidTimeColumn.js.map +1 -1
  101. package/dist/components/core/list/columns/SolidTimeColumn.tsx +2 -37
  102. package/dist/components/core/list/columns/SolidUuidColumn.d.ts.map +1 -1
  103. package/dist/components/core/list/columns/SolidUuidColumn.js +1 -21
  104. package/dist/components/core/list/columns/SolidUuidColumn.js.map +1 -1
  105. package/dist/components/core/list/columns/SolidUuidColumn.tsx +1 -37
  106. package/dist/components/core/list/columns/relations/SolidRelationManyToManyColumn.d.ts.map +1 -1
  107. package/dist/components/core/list/columns/relations/SolidRelationManyToManyColumn.js +1 -17
  108. package/dist/components/core/list/columns/relations/SolidRelationManyToManyColumn.js.map +1 -1
  109. package/dist/components/core/list/columns/relations/SolidRelationManyToManyColumn.tsx +2 -35
  110. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.d.ts.map +1 -1
  111. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.js +10 -20
  112. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.js.map +1 -1
  113. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.tsx +15 -36
  114. package/dist/components/core/list/columns/relations/SolidRelationOneToManyColumn.d.ts.map +1 -1
  115. package/dist/components/core/list/columns/relations/SolidRelationOneToManyColumn.js +1 -15
  116. package/dist/components/core/list/columns/relations/SolidRelationOneToManyColumn.js.map +1 -1
  117. package/dist/components/core/list/columns/relations/SolidRelationOneToManyColumn.tsx +1 -31
  118. package/dist/components/core/tree/SolidTreeView.d.ts.map +1 -1
  119. package/dist/components/core/tree/SolidTreeView.js +23 -14
  120. package/dist/components/core/tree/SolidTreeView.js.map +1 -1
  121. package/dist/components/core/tree/SolidTreeView.tsx +50 -16
  122. package/dist/helpers/registry.js +3 -1
  123. package/dist/helpers/registry.js.map +1 -1
  124. package/dist/helpers/registry.ts +4 -1
  125. package/dist/index.d.ts +3 -2
  126. package/dist/index.d.ts.map +1 -1
  127. package/dist/index.js +3 -2
  128. package/dist/index.js.map +1 -1
  129. package/dist/index.ts +5 -2
  130. package/dist/redux/api/fetchBaseQuery.js +4 -5
  131. package/dist/redux/api/fetchBaseQuery.js.map +1 -1
  132. package/dist/redux/api/fetchBaseQuery.tsx +4 -4
  133. package/dist/redux/api/solidSettingsApi.d.ts +2 -1
  134. package/dist/redux/api/solidSettingsApi.d.ts.map +1 -1
  135. package/dist/redux/api/solidSettingsApi.js +4 -1
  136. package/dist/redux/api/solidSettingsApi.js.map +1 -1
  137. package/dist/redux/api/solidSettingsApi.tsx +6 -1
  138. package/dist/redux/store/defaultStoreConfig.d.ts +1 -0
  139. package/dist/redux/store/defaultStoreConfig.d.ts.map +1 -1
  140. package/dist/resources/globals.css +14 -0
  141. package/dist/routes/pages/admin/core/DashboardPage.d.ts +2 -0
  142. package/dist/routes/pages/admin/core/DashboardPage.d.ts.map +1 -0
  143. package/dist/routes/pages/admin/core/DashboardPage.js +14 -0
  144. package/dist/routes/pages/admin/core/DashboardPage.js.map +1 -0
  145. package/dist/routes/pages/admin/core/DashboardPage.tsx +17 -0
  146. package/dist/routes/pages/admin/core/ListPage.js +1 -1
  147. package/dist/routes/pages/admin/core/ListPage.js.map +1 -1
  148. package/dist/routes/pages/admin/core/ListPage.tsx +1 -1
  149. package/dist/routes/pages/admin/core/ModuleHomePage.d.ts.map +1 -1
  150. package/dist/routes/pages/admin/core/ModuleHomePage.js +4 -15
  151. package/dist/routes/pages/admin/core/ModuleHomePage.js.map +1 -1
  152. package/dist/routes/pages/admin/core/ModuleHomePage.tsx +4 -3
  153. package/dist/routes/solidRoutes.d.ts.map +1 -1
  154. package/dist/routes/solidRoutes.js +2 -0
  155. package/dist/routes/solidRoutes.js.map +1 -1
  156. package/dist/routes/solidRoutes.tsx +2 -0
  157. package/dist/routes/types.d.ts +1 -1
  158. package/dist/routes/types.d.ts.map +1 -1
  159. package/dist/routes/types.js.map +1 -1
  160. package/dist/routes/types.ts +1 -0
  161. package/dist/types/solid-core.d.ts +1 -1
  162. package/package.json +1 -1
@@ -1,31 +1,24 @@
1
- // @ts-nocheck
2
- import React, { forwardRef, useState, useEffect, useRef, useMemo, useImperativeHandle } from "react";
1
+ import { forwardRef, useState, useEffect, useRef, useMemo, useImperativeHandle } from "react";
3
2
  import {
4
3
  DataTable,
5
- DataTableFilterMeta,
6
4
  DataTableStateEvent,
7
5
  } from "primereact/datatable";
8
6
  import { Column } from "primereact/column";
9
7
  import { FilterMatchMode } from "primereact/api";
10
- import Link from "../../common/Link";
11
8
  import qs from "qs";
12
9
  import { Button } from "primereact/button";
13
10
  import { Dialog } from "primereact/dialog";
14
11
  import { createSolidEntityApi } from "../../../redux/api/solidEntityApi";
15
12
  import { useGetSolidViewLayoutQuery } from "../../../redux/api/solidViewApi";
16
13
  import { SolidListViewColumn } from "./SolidListViewColumn";
17
- // import { SolidListViewOptions } from "../common/SolidListviewOptions";
18
14
  import { SolidCreateButton } from "../common/SolidCreateButton";
19
15
  import { SolidGlobalSearchElement } from "../common/SolidGlobalSearchElement";
20
- import { pascalCase } from "change-case";
21
16
  import { useLazyCheckIfPermissionExistsQuery } from "../../../redux/api/userApi";
22
17
  import { permissionExpression } from "../../../helpers/permissions";
23
18
  import { usePathname } from "../../../hooks/usePathname";
24
19
  import { useRouter } from "../../../hooks/useRouter";
25
20
  import { useSearchParams } from "../../../hooks/useSearchParams";
26
21
  import { ListViewRowActionPopup } from "./ListViewRowActionPopup";
27
- import FilterComponent, { FilterOperator, FilterRule, FilterRuleType } from "../../../components/core/common/FilterComponent";
28
- import { SolidLayoutViews } from "../common/SolidLayoutViews";
29
22
  import { FilterIcon } from '../../../components/modelsComponents/filterIcon';
30
23
  import { OverlayPanel } from "primereact/overlaypanel";
31
24
  import { Toast } from "primereact/toast";
@@ -33,8 +26,6 @@ import { Divider } from "primereact/divider";
33
26
  import CompactImage from '../../../resources/images/layout/images/compact.png';
34
27
  import CozyImage from '../../../resources/images/layout/images/cozy.png';
35
28
  import ComfortableImage from '../../../resources/images/layout/images/comfortable.png';
36
- import KanbanImage from '../../../resources/images/layout/images/kanban.png';
37
- import { capitalize, filter, set } from "lodash";
38
29
  import Lightbox from "yet-another-react-lightbox";
39
30
  import Counter from "yet-another-react-lightbox/plugins/counter";
40
31
  import Download from "yet-another-react-lightbox/plugins/download";
@@ -58,7 +49,6 @@ import { ERROR_MESSAGES } from "../../../constants/error-messages";
58
49
  import { SolidAiMainWrapper } from "../solid-ai/SolidAiMainWrapper";
59
50
  import { showNavbar, toggleNavbar } from "../../../redux/features/navbarSlice";
60
51
  import { useLazyGetMcpUrlQuery, useLazyGetSolidSettingsQuery } from "../../../redux/api/solidSettingsApi";
61
- import { log } from "console";
62
52
  import { normalizeSolidListKanbanActionPath } from "../../../helpers/routePaths";
63
53
  // import { ERROR_MESSAGES } from "../../../constants/error-messages";
64
54
 
@@ -85,7 +75,7 @@ export const getFilterObjectFromLocalStorage = () => {
85
75
  };
86
76
 
87
77
 
88
- export const getFilterObjectFromLocalStorageByUrl = (url) => {
78
+ export const getFilterObjectFromLocalStorageByUrl = (url: string) => {
89
79
  const currentPageUrl = url; // Get the current page URL
90
80
  const encodedQueryString = localStorage.getItem(currentPageUrl); // Retrieve the encoded query string from local storage
91
81
 
@@ -116,7 +106,7 @@ export const setFilterObjectToLocalStorage = (queryObject: string) => {
116
106
  };
117
107
 
118
108
 
119
- export const setFilterObjectToLocalStorageByUrl = (url, queryObject: string) => {
109
+ export const setFilterObjectToLocalStorageByUrl = (url: string, queryObject: string) => {
120
110
  if (queryObject) {
121
111
  const stringifiedObject = JSON.stringify(queryObject);
122
112
  // const stringifiedObject = qs.stringify(queryObject, { encodeValuesOnly: true, arrayFormat: "brackets" });
@@ -132,10 +122,13 @@ type SolidListViewParams = {
132
122
  moduleName: string;
133
123
  modelName: string;
134
124
  inlineCreate?: boolean;
135
- handlePopUpOpen?: any;
125
+ handleAddClickForEmbeddedView?: any;
126
+ handleEditClickForEmbeddedView?: any;
136
127
  embeded?: boolean;
128
+ embededFieldRelationType?: string;
137
129
  customLayout?: any;
138
130
  customFilter?: any;
131
+ handleDeleteClick?: any;
139
132
  };
140
133
 
141
134
  export type SolidListViewHandle = {
@@ -205,12 +198,17 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
205
198
  const visibleNavbar = useSelector((state: any) => state.navbarState?.visibleNavbar);
206
199
 
207
200
  const pathname = usePathname();
208
- const solidGlobalSearchElementRef = useRef();
201
+ const solidGlobalSearchElementRef = useRef<any>();
209
202
 
210
203
  const router = useRouter();
211
204
  const searchParams = useSearchParams();
212
205
  const localeName = searchParams.get("locale");
213
206
 
207
+
208
+ const [solidListViewMetaData, setSolidListViewMetaData] = useState<any>(null);
209
+ const [solidListViewLayout, setSolidListViewLayout] = useState<any>(null);
210
+ const [isDraftPublishWorkflowEnabled, setIsDraftPublishWorkflowEnabled] = useState(false);
211
+
214
212
  // Filter query realted states
215
213
  const [filters, setFilters] = useState<any>(null);
216
214
  const [totalRecords, setTotalRecords] = useState(0);
@@ -397,9 +395,6 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
397
395
  }
398
396
  );
399
397
 
400
- const [solidListViewMetaData, setSolidListViewMetaData] = useState(null);
401
- const [solidListViewLayout, setSolidListViewLayout] = useState(null);
402
- const [isDraftPublishWorkflowEnabled, setIsDraftPublishWorkflowEnabled] = useState(false);
403
398
  const {
404
399
  data: solidListViewInitialMetaData,
405
400
  error: solidListViewMetaDataError,
@@ -421,7 +416,6 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
421
416
  const column = currentLayout?.children[i];
422
417
  const fieldMetadata = solidFieldsMetadata?.[column.attrs.name];
423
418
  if (!fieldMetadata?.type) {
424
- console.log(`Some problem in rendering column: `, column);
425
419
  showFieldError(ERROR_MESSAGES.FIELD_NOT_IN_METADATA(column.attrs.label));
426
420
  // return;
427
421
  }
@@ -486,7 +480,7 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
486
480
  const populate = toPopulate;
487
481
  const populateMedia = toPopulateMedia;
488
482
  const rows = currentLayout?.attrs?.defaultPageSize ?? 25;
489
- const multiSortMeta = [{ field: "id", order: -1 }];
483
+ const multiSortMeta: { field: string; order: 1 | -1 }[] = [{ field: "id", order: -1 }];
490
484
  return { multiSortMeta, rows, populate, populateMedia };
491
485
  };
492
486
 
@@ -529,8 +523,8 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
529
523
  });
530
524
  }
531
525
 
532
- const viewModes = listLayoutAttrs?.allowedViews && listLayoutAttrs?.allowedViews.length > 0 && listLayoutAttrs?.allowedViews.map((view: any) => { return { label: capitalize(view), value: view }; });
533
- setViewModes(viewModes);
526
+ // const viewModes = listLayoutAttrs?.allowedViews && listLayoutAttrs?.allowedViews.length > 0 && listLayoutAttrs?.allowedViews.map((view: any) => { return { label: capitalize(view), value: view }; });
527
+ setViewModes(solidListViewInitialMetaData?.data?.viewModes);
534
528
  if (createActionUrl) {
535
529
  setCreateButtonUrl(createActionUrl);
536
530
  }
@@ -591,7 +585,7 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
591
585
  useEffect(() => {
592
586
  if (solidEntityListViewData) {
593
587
  setLoading(true);
594
- const cleanedRecords = solidEntityListViewData.records.map((record) => {
588
+ const cleanedRecords = solidEntityListViewData.records.map((record: any) => {
595
589
  const newRecord = { ...record };
596
590
 
597
591
  Object.entries(newRecord).forEach(([key, value]) => {
@@ -638,9 +632,6 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
638
632
 
639
633
  // Fetch data after toPopulate has been populated...
640
634
  useEffect(() => {
641
- console.log(
642
- "useEffect: [isDeleteSolidEntitiesSucess, isDeleteSolidSingleEntitySuccess, recoverByIdIsSuccess, recoverByIsSuccess, solidListViewMetaData]"
643
- );
644
635
  setQueryDataLoaded(false)
645
636
  if (solidListViewMetaData && solidListViewLayout) {
646
637
  const queryObject = getFilterObjectFromLocalStorage();
@@ -750,10 +741,10 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
750
741
 
751
742
 
752
743
  // Create a ref that always has the latest filters
753
- const latestFiltersRef = useRef(filters);
754
- const latestFilterPredicatesRef = useRef(filterPredicates);
744
+ const latestFiltersRef = useRef<any>(filters);
745
+ const latestFilterPredicatesRef = useRef<any>(filterPredicates);
755
746
  // 1. Add the ref (near the other latestXxxRef declarations)
756
- const latestMultiSortMetaRef = useRef(multiSortMeta);
747
+ const latestMultiSortMetaRef = useRef<any>(multiSortMeta);
757
748
 
758
749
  // 2. Keep it in sync
759
750
  useEffect(() => {
@@ -771,7 +762,6 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
771
762
 
772
763
 
773
764
  useEffect(() => {
774
- console.log(`useEffect: [first- ${first}, rows- ${rows}, multiSortMeta- ${multiSortMeta}, showArchived- ${showArchived}, toPopulate- ${toPopulate}, toPopulateMedia- ${toPopulateMedia}, queryDataLoaded- ${queryDataLoaded}, filterPredicates- ${filterPredicates}]`);
775
765
  if (queryDataLoaded && filters && (filterPredicates || params.embeded == true)) {
776
766
  setQueryString();
777
767
  }
@@ -852,7 +842,7 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
852
842
  const currentSortMeta = latestMultiSortMetaRef.current;
853
843
 
854
844
  if (currentSortMeta && currentSortMeta.length > 0) {
855
- queryData.sort = currentSortMeta.map(({ field, order }) => {
845
+ queryData.sort = currentSortMeta.map(({ field, order }: any) => {
856
846
  const meta = solidFieldsMetadata?.[field];
857
847
  let resolvedField = field;
858
848
  if (meta?.type === "relation" && meta?.relationType === "many-to-one") {
@@ -963,7 +953,7 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
963
953
 
964
954
 
965
955
  setFilters(params.customFilter || { $and: [] })
966
- solidGlobalSearchElementRef.current.clearFilter();
956
+ solidGlobalSearchElementRef?.current.clearFilter();
967
957
  };
968
958
 
969
959
  const cloneListData = () => {
@@ -1019,7 +1009,7 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
1019
1009
 
1020
1010
  const [selectedSolidViewData, setSelectedSolidViewData] = useState<any>();
1021
1011
  const selectedDataRef = useRef<any>();
1022
- const op = useRef(null);
1012
+ const op = useRef<any>(null);
1023
1013
  const [deleteEntity, setDeleteEntity] = useState(false);
1024
1014
 
1025
1015
  // clickable link allowing one to open the detail / form view.
@@ -1057,7 +1047,7 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
1057
1047
  </div>
1058
1048
  // <a onClick={() => {
1059
1049
  // if (params.embeded == true) {
1060
- // params.handlePopUpOpen(solidViewData.id);
1050
+ // params.handleAddClickForEmbeddedView(solidViewData.id);
1061
1051
  // } else {
1062
1052
  // router.push(`${editButtonUrl}/${solidViewData.id}`)
1063
1053
  // }
@@ -1068,7 +1058,7 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
1068
1058
  };
1069
1059
 
1070
1060
  // Recover functions
1071
- const recoverById = (id) => {
1061
+ const recoverById = (id: any) => {
1072
1062
  triggerRecoverSolidEntitiesById(id);
1073
1063
  };
1074
1064
 
@@ -1101,7 +1091,7 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
1101
1091
  }
1102
1092
  }, [recoverByIdIsSuccess, recoverByIdData, recoverByIdIsError, recoverByIdError, recoverIsError, recoverError]);
1103
1093
 
1104
- const showError = async (error) => {
1094
+ const showError = async (error: any) => {
1105
1095
  const errorMessages = error?.data?.message;
1106
1096
  const messages = Array.isArray(errorMessages)
1107
1097
  ? errorMessages
@@ -1130,7 +1120,7 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
1130
1120
  }
1131
1121
  };
1132
1122
 
1133
- const showFieldError = async (error) => {
1123
+ const showFieldError = async (error: any) => {
1134
1124
  if (error) {
1135
1125
  toast?.current?.show({
1136
1126
  severity: "error",
@@ -1288,7 +1278,7 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
1288
1278
  throw new Error(ERROR_MESSAGES.NO_ENTITY_SELECTED);
1289
1279
  }
1290
1280
 
1291
- const response = await deleteSolidSingleEntiry(selectedSolidViewData.id);
1281
+ const response: any = await deleteSolidSingleEntiry(selectedSolidViewData.id);
1292
1282
 
1293
1283
  if (response?.data?.statusCode === 200) {
1294
1284
  setDeleteEntity(false);
@@ -1296,18 +1286,14 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
1296
1286
  severity: "success",
1297
1287
  summary: ERROR_MESSAGES.DELETED,
1298
1288
  detail: ERROR_MESSAGES.ENTITY_DELETE,
1299
- ...(severity === "error"
1300
- ? { sticky: true } // stays until user closes
1301
- : { life: 3000 }),
1289
+ life: 3000,
1302
1290
  });
1303
1291
  } else {
1304
1292
  toast.current?.show({
1305
1293
  severity: "error",
1306
1294
  summary: ERROR_MESSAGES.DELETE_FAIELD,
1307
1295
  detail: response?.error?.data?.error,
1308
- ...(severity === "error"
1309
- ? { sticky: true } // stays until user closes
1310
- : { life: 3000 }),
1296
+ sticky: true, // stays until user closes
1311
1297
  });
1312
1298
  }
1313
1299
  } catch (error: any) {
@@ -1315,9 +1301,8 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
1315
1301
  severity: "error",
1316
1302
  summary: ERROR_MESSAGES.DELETE_FAIELD,
1317
1303
  detail: ERROR_MESSAGES.SOMETHING_WRONG,
1318
- ...(severity === "error"
1319
- ? { sticky: true } // stays until user closes
1320
- : { life: 3000 }),
1304
+ sticky: true, // stays until user closes
1305
+
1321
1306
  });
1322
1307
  }
1323
1308
  };
@@ -1362,7 +1347,7 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
1362
1347
 
1363
1348
  const hasCustomContextMenuButtons =
1364
1349
  solidListViewLayout?.attrs?.rowButtons?.some(
1365
- (rb) => rb?.attrs?.actionInContextMenu === true
1350
+ (rb: any) => rb?.attrs?.actionInContextMenu === true
1366
1351
  );
1367
1352
 
1368
1353
  const hasAnyContextMenuActions =
@@ -1433,7 +1418,7 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
1433
1418
 
1434
1419
  <div className="hidden lg:flex align-items-center solid-header-buttons-wrapper">
1435
1420
  {solidListViewLayout?.attrs?.headerButtons
1436
- ?.filter((rb) => rb.attrs.actionInContextMenu != true)
1421
+ ?.filter((rb: any) => rb.attrs.actionInContextMenu != true)
1437
1422
  ?.map((button: any, index: number) => (
1438
1423
  <SolidListViewHeaderButton
1439
1424
  key={index}
@@ -1471,7 +1456,7 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
1471
1456
  label={solidListViewLayout?.attrs?.addButtonTitle ? solidListViewLayout?.attrs?.addButtonTitle : "Add"}
1472
1457
  className={`${solidListViewLayout?.attrs?.addButtonClassName}`}
1473
1458
  size="small"
1474
- onClick={() => params.handlePopUpOpen("new")}
1459
+ onClick={() => params.handleAddClickForEmbeddedView("new")}
1475
1460
  ></Button>
1476
1461
  )}
1477
1462
  {/* Button For Manual Refresh */}
@@ -1611,7 +1596,7 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
1611
1596
  // loadingIcon="pi pi-spinner"
1612
1597
  selection={
1613
1598
  params.embeded === true
1614
- ? null
1599
+ ? []
1615
1600
  : [...selectedRecords, ...selectedRecoverRecords]
1616
1601
  }
1617
1602
  onSelectionChange={
@@ -1640,7 +1625,7 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
1640
1625
  if (!(hasFindPermission || hasUpdatePermission)) return;
1641
1626
 
1642
1627
  if (params.embeded === true) {
1643
- params.handlePopUpOpen(rowData?.id);
1628
+ params.handleEditClickForEmbeddedView(rowData?.id);
1644
1629
  } else {
1645
1630
  if (typeof window !== "undefined") {
1646
1631
  // store a simple marker for the caller
@@ -1747,7 +1732,7 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
1747
1732
  icon={"pi pi-pencil"}
1748
1733
  onClick={() => {
1749
1734
  if (params.embeded == true) {
1750
- params.handlePopUpOpen(rowData?.id);
1735
+ params.handleEditClickForEmbeddedView(rowData?.id);
1751
1736
  } else {
1752
1737
  if (typeof window !== "undefined") {
1753
1738
  try {
@@ -1772,15 +1757,19 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
1772
1757
  `${permissionExpression(params.modelName, 'delete')}`
1773
1758
  ) &&
1774
1759
  solidListViewLayout?.attrs?.delete !== false &&
1775
- solidListViewLayout?.attrs?.showRowDeleteInContextMenu ===
1776
- false && (
1760
+ (params.embeded ||
1761
+ (solidListViewLayout?.attrs?.showRowDeleteInContextMenu !== undefined &&
1762
+ solidListViewLayout?.attrs?.showRowDeleteInContextMenu !== true)
1763
+ )
1764
+ &&
1765
+ (
1777
1766
  <Column
1778
1767
  header="Delete"
1779
1768
  body={(rowData) => {
1780
1769
  const shouldHideEditOrDeleteButton = isDraftPublishWorkflowEnabled && rowData?.publishedAt;
1781
1770
  return (
1782
1771
  <>
1783
- {!shouldHideEditOrDeleteButton && (
1772
+ {(!shouldHideEditOrDeleteButton) && (
1784
1773
  <Button
1785
1774
  text
1786
1775
  type="button"
@@ -1790,8 +1779,12 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
1790
1779
  severity="danger"
1791
1780
  icon={"pi pi-trash"}
1792
1781
  onClick={() => {
1793
- setSelectedSolidViewData(rowData);
1794
- setDeleteEntity(true);
1782
+ if (params?.embededFieldRelationType === "many-to-many") {
1783
+ params?.handleDeleteClick(rowData.id);
1784
+ } else {
1785
+ setSelectedSolidViewData(rowData);
1786
+ setDeleteEntity(true);
1787
+ }
1795
1788
  }}
1796
1789
  />
1797
1790
  )}
@@ -1841,7 +1834,7 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
1841
1834
  icon={"pi pi-pencil"}
1842
1835
  onClick={() => {
1843
1836
  if (params.embeded == true) {
1844
- params.handlePopUpOpen(
1837
+ params.handleEditClickForEmbeddedView(
1845
1838
  selectedDataRef.current?.id
1846
1839
  );
1847
1840
  } else {
@@ -1857,7 +1850,7 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
1857
1850
  />
1858
1851
  )}
1859
1852
 
1860
- {hasDeleteInContextMenu && (
1853
+ {hasDeleteInContextMenu && !params.embeded && (
1861
1854
  <Button
1862
1855
  text
1863
1856
  type="button"
@@ -1872,7 +1865,7 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
1872
1865
  )}
1873
1866
  {hasCustomContextMenuButtons && solidListViewLayout?.attrs?.rowButtons
1874
1867
  ?.filter(
1875
- (rb) =>
1868
+ (rb: any) =>
1876
1869
  rb?.attrs?.actionInContextMenu === true &&
1877
1870
  rb?.attrs?.visible !== false
1878
1871
  )
@@ -1978,7 +1971,7 @@ export const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams
1978
1971
  <div className="p-4">
1979
1972
  <p className="m-0 solid-primary-title" style={{ fontSize: 16 }}>Are you sure you want to delete the selected records?</p>
1980
1973
  <div className="flex align-items-center gap-2 mt-3">
1981
- <Button label="Delete" severity="danger" size="small" onClick={handleDeleteEntity} autoFocus onClick={deleteBulk} />
1974
+ <Button label="Delete" severity="danger" size="small" autoFocus onClick={deleteBulk} />
1982
1975
  <Button label="Cancel" size="small" onClick={onDeleteClose} outlined className='bg-primary-reverse' />
1983
1976
  </div>
1984
1977
  </div>
@@ -1,3 +1,10 @@
1
1
  import "../../common/solid-export.css";
2
+ export type ViewMode = {
3
+ actionId: string;
4
+ actionName: string;
5
+ menuItemId: string;
6
+ menuItemName: string;
7
+ type: string;
8
+ };
2
9
  export declare const SolidListViewConfigure: ({ listViewMetaData, solidListViewLayout, setShowArchived, showArchived, viewData, sizeOptions, setSize, size, viewModes, params, actionsAllowed, selectedRecords, setDialogVisible, setShowSaveFilterPopup, filters, handleFetchUpdatedRecords, setRecoverDialogVisible, }: any) => import("react/jsx-runtime").JSX.Element;
3
10
  //# sourceMappingURL=SolidListViewConfigure.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SolidListViewConfigure.d.ts","sourceRoot":"","sources":["../../../../src/components/core/list/SolidListViewConfigure.tsx"],"names":[],"mappings":"AAiBA,OAAO,+BAA+B,CAAC;AAKvC,eAAO,MAAM,sBAAsB,+QAoB3B,GAAG,4CA2SV,CAAA"}
1
+ {"version":3,"file":"SolidListViewConfigure.d.ts","sourceRoot":"","sources":["../../../../src/components/core/list/SolidListViewConfigure.tsx"],"names":[],"mappings":"AAiBA,OAAO,+BAA+B,CAAC;AAMvC,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,4CA2SV,CAAA"}
@@ -20,6 +20,7 @@ import "../../common/solid-export.css";
20
20
  import { SolidGenericImport } from "../common/SolidGenericImport/SolidGenericImport";
21
21
  import { hasAnyRole } from "../../../helpers/rolesHelper";
22
22
  import { SolidListViewHeaderButton } from "./SolidListViewHeaderButton";
23
+ import { capitalize } from "lodash";
23
24
  export var SolidListViewConfigure = function (_a) {
24
25
  var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z;
25
26
  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;
@@ -35,11 +36,11 @@ export var SolidListViewConfigure = function (_a) {
35
36
  var _2 = useState(false), exportView = _2[0], setExportView = _2[1];
36
37
  var _3 = useState(false), isOverlayOpen = _3[0], setIsOverlayOpen = _3[1];
37
38
  var handleViewChange = function (newView) {
38
- if (view === newView)
39
+ if (view === newView.type)
39
40
  return; // Prevent unnecessary updates
40
41
  var pathSegments = pathname.split('/').filter(Boolean);
41
- pathSegments[pathSegments.length - 1] = newView; // Replace the last part with new view
42
- var newPath = '/' + pathSegments.join('/');
42
+ pathSegments[pathSegments.length - 1] = newView.type; // Replace the last part with new view
43
+ var newPath = '/' + pathSegments.join('/') + "?menuItemId=".concat(newView.menuItemId, "&menuItemName=").concat(newView.menuItemName, "&actionId=").concat(newView.actionId, "&actionName=").concat(newView.actionName);
43
44
  router.push(newPath);
44
45
  };
45
46
  useEffect(function () {
@@ -134,9 +135,9 @@ export var SolidListViewConfigure = function (_a) {
134
135
  }, children: _jsx("i", { className: "pi pi-chevron-right text-sm" }) })), isHeaderActionEnabled('savedFilters') && permissionExpression('savedFilters', 'create') && (_jsx(Button, { text: true, icon: 'pi pi-save', label: "Save Custom Filter", size: "small", severity: "secondary", className: "text-left gap-2 text-base", onClick: function () { return setShowSaveFilterPopup(true); } })), _jsx(Button, { text: true, icon: 'pi pi-trash', label: "Clear cache", size: "small", severity: "secondary", className: "text-left gap-2 text-base ", onClick: function () { return clearLocalstorageCache(); } }), _jsx(OverlayPanel, { ref: customizeLayout, className: "customize-layout-panel", style: { minWidth: 250 }, onShow: function () { return setIsOverlayOpen(true); }, onHide: function () {
135
136
  setTimeout(function () { return setIsOverlayOpen(false); }, 50); // ✅ Ensure state updates
136
137
  }, children: _jsx("div", { className: "solid-layout-accordion", children: _jsxs(Accordion, { multiple: true, expandIcon: "pi pi-chevron-down", collapseIcon: "pi pi-chevron-up", activeIndex: [2], children: [viewModes && viewModes.length > 0 &&
137
- _jsx(AccordionTab, { header: "Switch Type", children: _jsx("div", { className: "flex flex-column gap-1 p-1", children: viewModes.map(function (option) { return (_jsxs("div", { className: "flex align-items-center ".concat(option.value === view ? 'solid-active-view' : 'solid-view'), children: [_jsx(RadioButton, { inputId: option.value, name: "views", value: option.value,
138
+ _jsx(AccordionTab, { header: "Switch Type", children: _jsx("div", { className: "flex flex-column gap-1 p-1", children: viewModes.map(function (option) { return (_jsxs("div", { className: "flex align-items-center ".concat(option.type === view ? 'solid-active-view' : 'solid-view'), children: [_jsx(RadioButton, { inputId: option.type, name: "views", value: option.type,
138
139
  // onChange={(e) => router}
139
- onChange: function () { return handleViewChange(option.value); }, checked: option.value === view }), _jsx("label", { htmlFor: option.value, className: "ml-2 flex align-items-center justify-content-between w-full", children: option.label })] }, option.value)); }) }) }), _jsx(AccordionTab, { header: "Row Spacing", children: _jsx("div", { className: "flex flex-column gap-1 p-1flex flex-column gap-1 p-1", children: sizeOptions.map(function (option) { return (_jsxs("div", { className: "flex align-items-center ".concat(option.value === size ? 'solid-active-view' : 'solid-view'), children: [_jsx(RadioButton, { inputId: option.value, name: "sizes", value: option.value, onChange: function (e) { return setSize(e.value); }, checked: option.value === size }), _jsxs("label", { htmlFor: option.value, className: "ml-2 flex align-items-center justify-content-between w-full", children: [option.label, _jsx(Image, { src: option.image, alt: option.value, fill: true, className: 'relative row-spacing-img' })] })] }, option.value)); }) }) }), _jsx(AccordionTab, { header: "Column Selector", headerClassName: "pb-0", children: _jsx(SolidListColumnSelector, { listViewMetaData: listViewMetaData, customizeLayout: customizeLayout }) })] }) }) })] })] }), openImportDialog &&
140
+ onChange: function () { return handleViewChange(option); }, checked: option.type === view }), _jsx("label", { htmlFor: option.type, className: "ml-2 flex align-items-center justify-content-between w-full", children: capitalize(option.type) })] }, option.type)); }) }) }), _jsx(AccordionTab, { header: "Row Spacing", children: _jsx("div", { className: "flex flex-column gap-1 p-1flex flex-column gap-1 p-1", children: sizeOptions.map(function (option) { return (_jsxs("div", { className: "flex align-items-center ".concat(option.value === size ? 'solid-active-view' : 'solid-view'), children: [_jsx(RadioButton, { inputId: option.value, name: "sizes", value: option.value, onChange: function (e) { return setSize(e.value); }, checked: option.value === size }), _jsxs("label", { htmlFor: option.value, className: "ml-2 flex align-items-center justify-content-between w-full", children: [option.label, _jsx(Image, { src: option.image, alt: option.value, fill: true, className: 'relative row-spacing-img' })] })] }, option.value)); }) }) }), _jsx(AccordionTab, { header: "Column Selector", headerClassName: "pb-0", children: _jsx(SolidListColumnSelector, { listViewMetaData: listViewMetaData, customizeLayout: customizeLayout }) })] }) }) })] })] }), openImportDialog &&
140
141
  _jsx(SolidGenericImport, { openImportDialog: openImportDialog, setOpenImportDialog: setOpenImportDialog, listViewMetaData: listViewMetaData, handleFetchUpdatedRecords: handleFetchUpdatedRecords })] }));
141
142
  };
142
143
  //# 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 Image from \"../../common/Image\";\nimport { usePathname } from \"../../../hooks/usePathname\";\nimport { useRouter } from \"../../../hooks/useRouter\";\nimport { Accordion, AccordionTab } from \"primereact/accordion\";\nimport { Button } from \"primereact/button\";\nimport { Checkbox } from \"primereact/checkbox\";\nimport { Divider } from \"primereact/divider\";\nimport { OverlayPanel } from \"primereact/overlaypanel\";\nimport { RadioButton } from \"primereact/radiobutton\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { SolidListColumnSelector } from \"./SolidColumnSelector/SolidListColumnSelector\";\nimport { SolidExport } from \"../../../components/common/SolidExport\";\nimport { Dialog } from \"primereact/dialog\";\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\";\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 op = useRef(null);\n const exportRef = useRef(null);\n const customizeLayout = useRef<OverlayPanel | null>(null);\n const pathname = usePathname();\n const router = useRouter();\n const [view, setView] = useState<string>(\"\");\n const [exportView, setExportView] = useState<boolean>(false);\n const [isOverlayOpen, setIsOverlayOpen] = useState(false);\n\n\n const handleViewChange = (newView: string) => {\n if (view === newView) return; // Prevent unnecessary updates\n const pathSegments = pathname.split('/').filter(Boolean);\n pathSegments[pathSegments.length - 1] = newView; // Replace the last part with new view\n const newPath = '/' + pathSegments.join('/');\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 useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (\n customizeLayout.current &&\n !customizeLayout.current.getElement()?.contains(event.target as Node)\n ) {\n setIsOverlayOpen(false);\n }\n };\n\n if (isOverlayOpen) {\n document.addEventListener(\"click\", handleClickOutside);\n } else {\n document.removeEventListener(\"click\", handleClickOutside);\n }\n\n return () => document.removeEventListener(\"click\", handleClickOutside);\n }, [isOverlayOpen])\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 return (\n <div className=\"position-relative\">\n <Button\n type=\"button\"\n size=\"small\"\n icon=\"pi pi-cog\"\n severity=\"secondary\"\n className=\"solid-icon-button\"\n outlined\n // @ts-ignore\n onClick={(e) => op.current.toggle(e)}\n />\n <Dialog header=\"Export\" visible={exportView} headerClassName=\"solid-export-dialog-header\" className=\"ExportDialog p-0 m-0\" onHide={() => { if (!exportView) return; setExportView(false); }}>\n <SolidExport listViewMetaData={listViewMetaData} filters={filters} />\n </Dialog>\n <OverlayPanel ref={exportRef} className=\"listview-export-panel\">\n\n </OverlayPanel>\n <OverlayPanel ref={op} 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 <div className=\"p-2\">\n <div className=\"flex flex-column\">\n {actionsAllowed.includes(`${permissionExpression(params.modelName, 'deleteMany')}`) && viewData?.data?.solidView?.layout?.attrs?.delete !== false && selectedRecords.length > 0 &&\n <Button\n text\n type=\"button\"\n className=\"text-left gap-2 text-base\"\n label=\"Delete\"\n size=\"small\"\n iconPos=\"left\"\n severity=\"danger\"\n icon={'pi pi-trash'}\n onClick={() => setDialogVisible(true)}\n />}\n {isHeaderActionEnabled(\"import\") && actionsAllowed.includes(`${permissionExpression(params.modelName, 'create')}`) && actionsAllowed.includes(`${permissionExpression('importTransaction', 'create')}`) && (\n <Button text icon='pi pi-download' label=\"Import\" size=\"small\" severity=\"secondary\" className=\"text-left gap-2 text-base\"\n onClick={() => setOpenImportDialog(true)}\n />\n )}\n {isHeaderActionEnabled(\"export\") && actionsAllowed.includes(`${permissionExpression(params.modelName, 'findMany')}`) && actionsAllowed.includes(`${permissionExpression('exportTransaction', 'create')}`) && (\n <Button text icon='pi pi-upload' label=\"Export\" size=\"small\" severity=\"secondary\" className=\"text-left gap-2 text-base\"\n // @ts-ignore\n onClick={() => { setExportView((exportView) => !exportView); }} />\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 />\n ))}\n {viewData?.data?.solidView?.model?.enableSoftDelete && (\n <div className=\"flex align-items-center px-3 gap-2 mt-2 mb-1\">\n <Checkbox\n inputId=\"showArchived\"\n checked={showArchived}\n onChange={() => setShowArchived(!showArchived)}\n />\n <label htmlFor=\"showArchived\" className=\"ml-2 text-base solid-secondary-text-color\">\n Show Archived Records\n </label>\n </div>\n )}\n {showArchived && (\n <Button text icon='pi pi-refresh' label=\"Recover\" size=\"small\" severity=\"secondary\" className=\"flex lg:hidden text-left gap-2 text-base \"\n onClick={() => setRecoverDialogVisible(true)} />\n )}\n\n <div className=\"flex flex-column lg:hidden\">\n {solidListViewLayout?.attrs?.headerButtons\n ?.filter((rb: any) => rb.attrs.actionInContextMenu != true)\n ?.map((button: any, index: number) => (\n <SolidListViewHeaderButton\n key={index}\n button={button}\n params={params}\n solidListViewMetaData={listViewMetaData}\n handleCustomButtonClick={handleCustomButtonClick}\n selectedRecords={selectedRecords}\n filters={filters}\n />\n ))}\n </div>\n\n </div>\n </div>\n <Divider className=\"m-0\" />\n </>\n )}\n <div className=\"p-2 relative flex flex-column gap-1\">\n {isHeaderActionEnabled('customizeLayout') && permissionExpression('userViewMetadata', 'create') && (<Button\n icon='pi pi-sliders-h'\n label=\"Customize Layout\"\n severity={isOverlayOpen ? undefined : \"secondary\"}\n size=\"small\"\n text={isOverlayOpen ? false : true}\n className=\"text-left gap-2 w-full text-base\"\n // @ts-ignore\n onClick={(e) => {\n customizeLayout.current?.toggle(e);\n setIsOverlayOpen((prev) => !prev); // ✅ Ensure state updates when toggled\n }}\n >\n <i className=\"pi pi-chevron-right text-sm\"></i>\n </Button>\n )}\n {isHeaderActionEnabled('savedFilters') && permissionExpression('savedFilters', 'create') && (\n <Button text icon='pi pi-save' label=\"Save Custom Filter\" size=\"small\" severity=\"secondary\" className=\"text-left gap-2 text-base\" onClick={() => setShowSaveFilterPopup(true)} />\n )}\n <Button text icon='pi pi-trash' label=\"Clear cache\" size=\"small\" severity=\"secondary\" className=\"text-left gap-2 text-base \"\n onClick={() => clearLocalstorageCache()} />\n\n <OverlayPanel ref={customizeLayout} className=\"customize-layout-panel\" style={{ minWidth: 250 }}\n onShow={() => setIsOverlayOpen(true)}\n onHide={() => {\n setTimeout(() => setIsOverlayOpen(false), 50); // ✅ Ensure state updates\n }}\n >\n <div className=\"solid-layout-accordion\">\n <Accordion multiple expandIcon=\"pi pi-chevron-down\" collapseIcon=\"pi pi-chevron-up\" activeIndex={[2]}>\n {viewModes && viewModes.length > 0 &&\n <AccordionTab header=\"Switch Type\">\n <div className=\"flex flex-column gap-1 p-1\">\n {viewModes.map((option: any) => (\n <div key={option.value} className={`flex align-items-center ${option.value === view ? 'solid-active-view' : 'solid-view'}`}>\n <RadioButton\n inputId={option.value}\n name=\"views\"\n value={option.value}\n // onChange={(e) => router}\n onChange={() => handleViewChange(option.value)}\n checked={option.value === view}\n />\n <label htmlFor={option.value} className=\"ml-2 flex align-items-center justify-content-between w-full\">\n {option.label}\n </label>\n </div>\n ))}\n </div>\n </AccordionTab>\n }\n <AccordionTab header=\"Row Spacing\">\n <div className=\"flex flex-column gap-1 p-1flex flex-column gap-1 p-1\">\n {sizeOptions.map((option: any) => (\n <div key={option.value} className={`flex align-items-center ${option.value === size ? 'solid-active-view' : 'solid-view'}`}>\n <RadioButton\n inputId={option.value}\n name=\"sizes\"\n value={option.value}\n onChange={(e) => setSize(e.value)}\n checked={option.value === size}\n />\n <label htmlFor={option.value} className=\"ml-2 flex align-items-center justify-content-between w-full\">\n {option.label}\n <Image\n src={option.image}\n alt={option.value}\n fill\n className='relative row-spacing-img'\n />\n </label>\n </div>\n ))}\n </div>\n </AccordionTab>\n <AccordionTab header=\"Column Selector\" headerClassName=\"pb-0\">\n <SolidListColumnSelector listViewMetaData={listViewMetaData} customizeLayout={customizeLayout} />\n </AccordionTab>\n </Accordion>\n </div>\n </OverlayPanel>\n </div>\n </OverlayPanel>\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 Image from \"../../common/Image\";\nimport { usePathname } from \"../../../hooks/usePathname\";\nimport { useRouter } from \"../../../hooks/useRouter\";\nimport { Accordion, AccordionTab } from \"primereact/accordion\";\nimport { Button } from \"primereact/button\";\nimport { Checkbox } from \"primereact/checkbox\";\nimport { Divider } from \"primereact/divider\";\nimport { OverlayPanel } from \"primereact/overlaypanel\";\nimport { RadioButton } from \"primereact/radiobutton\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { SolidListColumnSelector } from \"./SolidColumnSelector/SolidListColumnSelector\";\nimport { SolidExport } from \"../../../components/common/SolidExport\";\nimport { Dialog } from \"primereact/dialog\";\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\";\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 op = useRef(null);\n const exportRef = useRef(null);\n const customizeLayout = useRef<OverlayPanel | null>(null);\n const pathname = usePathname();\n const router = useRouter();\n const [view, setView] = useState<string>(\"\");\n const [exportView, setExportView] = useState<boolean>(false);\n const [isOverlayOpen, setIsOverlayOpen] = useState(false);\n\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 useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (\n customizeLayout.current &&\n !customizeLayout.current.getElement()?.contains(event.target as Node)\n ) {\n setIsOverlayOpen(false);\n }\n };\n\n if (isOverlayOpen) {\n document.addEventListener(\"click\", handleClickOutside);\n } else {\n document.removeEventListener(\"click\", handleClickOutside);\n }\n\n return () => document.removeEventListener(\"click\", handleClickOutside);\n }, [isOverlayOpen])\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 return (\n <div className=\"position-relative\">\n <Button\n type=\"button\"\n size=\"small\"\n icon=\"pi pi-cog\"\n severity=\"secondary\"\n className=\"solid-icon-button\"\n outlined\n // @ts-ignore\n onClick={(e) => op.current.toggle(e)}\n />\n <Dialog header=\"Export\" visible={exportView} headerClassName=\"solid-export-dialog-header\" className=\"ExportDialog p-0 m-0\" onHide={() => { if (!exportView) return; setExportView(false); }}>\n <SolidExport listViewMetaData={listViewMetaData} filters={filters} />\n </Dialog>\n <OverlayPanel ref={exportRef} className=\"listview-export-panel\">\n\n </OverlayPanel>\n <OverlayPanel ref={op} 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 <div className=\"p-2\">\n <div className=\"flex flex-column\">\n {actionsAllowed.includes(`${permissionExpression(params.modelName, 'deleteMany')}`) && viewData?.data?.solidView?.layout?.attrs?.delete !== false && selectedRecords.length > 0 &&\n <Button\n text\n type=\"button\"\n className=\"text-left gap-2 text-base\"\n label=\"Delete\"\n size=\"small\"\n iconPos=\"left\"\n severity=\"danger\"\n icon={'pi pi-trash'}\n onClick={() => setDialogVisible(true)}\n />}\n {isHeaderActionEnabled(\"import\") && actionsAllowed.includes(`${permissionExpression(params.modelName, 'create')}`) && actionsAllowed.includes(`${permissionExpression('importTransaction', 'create')}`) && (\n <Button text icon='pi pi-download' label=\"Import\" size=\"small\" severity=\"secondary\" className=\"text-left gap-2 text-base\"\n onClick={() => setOpenImportDialog(true)}\n />\n )}\n {isHeaderActionEnabled(\"export\") && actionsAllowed.includes(`${permissionExpression(params.modelName, 'findMany')}`) && actionsAllowed.includes(`${permissionExpression('exportTransaction', 'create')}`) && (\n <Button text icon='pi pi-upload' label=\"Export\" size=\"small\" severity=\"secondary\" className=\"text-left gap-2 text-base\"\n // @ts-ignore\n onClick={() => { setExportView((exportView) => !exportView); }} />\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 />\n ))}\n {viewData?.data?.solidView?.model?.enableSoftDelete && (\n <div className=\"flex align-items-center px-3 gap-2 mt-2 mb-1\">\n <Checkbox\n inputId=\"showArchived\"\n checked={showArchived}\n onChange={() => setShowArchived(!showArchived)}\n />\n <label htmlFor=\"showArchived\" className=\"ml-2 text-base solid-secondary-text-color\">\n Show Archived Records\n </label>\n </div>\n )}\n {showArchived && (\n <Button text icon='pi pi-refresh' label=\"Recover\" size=\"small\" severity=\"secondary\" className=\"flex lg:hidden text-left gap-2 text-base \"\n onClick={() => setRecoverDialogVisible(true)} />\n )}\n\n <div className=\"flex flex-column lg:hidden\">\n {solidListViewLayout?.attrs?.headerButtons\n ?.filter((rb: any) => rb.attrs.actionInContextMenu != true)\n ?.map((button: any, index: number) => (\n <SolidListViewHeaderButton\n key={index}\n button={button}\n params={params}\n solidListViewMetaData={listViewMetaData}\n handleCustomButtonClick={handleCustomButtonClick}\n selectedRecords={selectedRecords}\n filters={filters}\n />\n ))}\n </div>\n\n </div>\n </div>\n <Divider className=\"m-0\" />\n </>\n )}\n <div className=\"p-2 relative flex flex-column gap-1\">\n {isHeaderActionEnabled('customizeLayout') && permissionExpression('userViewMetadata', 'create') && (<Button\n icon='pi pi-sliders-h'\n label=\"Customize Layout\"\n severity={isOverlayOpen ? undefined : \"secondary\"}\n size=\"small\"\n text={isOverlayOpen ? false : true}\n className=\"text-left gap-2 w-full text-base\"\n // @ts-ignore\n onClick={(e) => {\n customizeLayout.current?.toggle(e);\n setIsOverlayOpen((prev) => !prev); // ✅ Ensure state updates when toggled\n }}\n >\n <i className=\"pi pi-chevron-right text-sm\"></i>\n </Button>\n )}\n {isHeaderActionEnabled('savedFilters') && permissionExpression('savedFilters', 'create') && (\n <Button text icon='pi pi-save' label=\"Save Custom Filter\" size=\"small\" severity=\"secondary\" className=\"text-left gap-2 text-base\" onClick={() => setShowSaveFilterPopup(true)} />\n )}\n <Button text icon='pi pi-trash' label=\"Clear cache\" size=\"small\" severity=\"secondary\" className=\"text-left gap-2 text-base \"\n onClick={() => clearLocalstorageCache()} />\n\n <OverlayPanel ref={customizeLayout} className=\"customize-layout-panel\" style={{ minWidth: 250 }}\n onShow={() => setIsOverlayOpen(true)}\n onHide={() => {\n setTimeout(() => setIsOverlayOpen(false), 50); // ✅ Ensure state updates\n }}\n >\n <div className=\"solid-layout-accordion\">\n <Accordion multiple expandIcon=\"pi pi-chevron-down\" collapseIcon=\"pi pi-chevron-up\" activeIndex={[2]}>\n {viewModes && viewModes.length > 0 &&\n <AccordionTab header=\"Switch Type\">\n <div className=\"flex flex-column gap-1 p-1\">\n {viewModes.map((option: ViewMode) => (\n <div key={option.type} className={`flex align-items-center ${option.type === view ? 'solid-active-view' : 'solid-view'}`}>\n <RadioButton\n inputId={option.type}\n name=\"views\"\n value={option.type}\n // onChange={(e) => router}\n onChange={() => handleViewChange(option)}\n checked={option.type === view}\n />\n <label htmlFor={option.type} className=\"ml-2 flex align-items-center justify-content-between w-full\">\n {capitalize(option.type)}\n </label>\n </div>\n ))}\n </div>\n </AccordionTab>\n }\n <AccordionTab header=\"Row Spacing\">\n <div className=\"flex flex-column gap-1 p-1flex flex-column gap-1 p-1\">\n {sizeOptions.map((option: any) => (\n <div key={option.value} className={`flex align-items-center ${option.value === size ? 'solid-active-view' : 'solid-view'}`}>\n <RadioButton\n inputId={option.value}\n name=\"sizes\"\n value={option.value}\n onChange={(e) => setSize(e.value)}\n checked={option.value === size}\n />\n <label htmlFor={option.value} className=\"ml-2 flex align-items-center justify-content-between w-full\">\n {option.label}\n <Image\n src={option.image}\n alt={option.value}\n fill\n className='relative row-spacing-img'\n />\n </label>\n </div>\n ))}\n </div>\n </AccordionTab>\n <AccordionTab header=\"Column Selector\" headerClassName=\"pb-0\">\n <SolidListColumnSelector listViewMetaData={listViewMetaData} customizeLayout={customizeLayout} />\n </AccordionTab>\n </Accordion>\n </div>\n </OverlayPanel>\n </div>\n </OverlayPanel>\n {openImportDialog &&\n <SolidGenericImport\n openImportDialog={openImportDialog}\n setOpenImportDialog={setOpenImportDialog}\n listViewMetaData={listViewMetaData}\n handleFetchUpdatedRecords={handleFetchUpdatedRecords}\n />\n }\n </div>\n )\n}\n"]}