@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.
- package/dist/components/core/common/SolidAccountSettings/SolidAccountSettings.d.ts.map +1 -1
- package/dist/components/core/common/SolidAccountSettings/SolidAccountSettings.js +8 -0
- package/dist/components/core/common/SolidAccountSettings/SolidAccountSettings.js.map +1 -1
- package/dist/components/core/common/SolidAccountSettings/SolidAccountSettings.tsx +8 -0
- package/dist/components/core/common/SolidAccountSettings/SolidVersionInfo.d.ts +2 -0
- package/dist/components/core/common/SolidAccountSettings/SolidVersionInfo.d.ts.map +1 -0
- package/dist/components/core/common/SolidAccountSettings/SolidVersionInfo.js +34 -0
- package/dist/components/core/common/SolidAccountSettings/SolidVersionInfo.js.map +1 -0
- package/dist/components/core/common/SolidAccountSettings/SolidVersionInfo.tsx +83 -0
- package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
- package/dist/components/core/common/SolidGlobalSearchElement.js +6 -8
- package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
- package/dist/components/core/common/SolidGlobalSearchElement.tsx +21 -21
- package/dist/components/core/dashboard/SolidDashboard.d.ts +1 -1
- package/dist/components/core/dashboard/SolidDashboard.d.ts.map +1 -1
- package/dist/components/core/dashboard/SolidDashboard.js.map +1 -1
- package/dist/components/core/dashboard/SolidDashboard.tsx +1 -1
- package/dist/components/core/dashboard/SolidDashboardVariable.js +1 -1
- package/dist/components/core/dashboard/SolidDashboardVariable.js.map +1 -1
- package/dist/components/core/dashboard/SolidDashboardVariable.tsx +1 -1
- package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.d.ts.map +1 -1
- package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.js +15 -30
- package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.js.map +1 -1
- package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.tsx +46 -36
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.d.ts +40 -0
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.d.ts.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js +315 -160
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.tsx +459 -249
- package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.d.ts.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.js +46 -95
- package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.js.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.tsx +57 -113
- package/dist/components/core/form/fields/relations/widgets/helpers/useRelationEntityHandler.d.ts +15 -5
- package/dist/components/core/form/fields/relations/widgets/helpers/useRelationEntityHandler.d.ts.map +1 -1
- package/dist/components/core/form/fields/relations/widgets/helpers/useRelationEntityHandler.js +203 -67
- package/dist/components/core/form/fields/relations/widgets/helpers/useRelationEntityHandler.js.map +1 -1
- package/dist/components/core/form/fields/relations/widgets/helpers/useRelationEntityHandler.ts +147 -67
- package/dist/components/core/kanban/SolidKanbanView.d.ts.map +1 -1
- package/dist/components/core/kanban/SolidKanbanView.js +8 -7
- package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
- package/dist/components/core/kanban/SolidKanbanView.tsx +3 -2
- package/dist/components/core/list/SolidListView.d.ts +8 -5
- package/dist/components/core/list/SolidListView.d.ts.map +1 -1
- package/dist/components/core/list/SolidListView.js +95 -84
- package/dist/components/core/list/SolidListView.js.map +1 -1
- package/dist/components/core/list/SolidListView.tsx +55 -62
- package/dist/components/core/list/SolidListViewConfigure.d.ts +7 -0
- package/dist/components/core/list/SolidListViewConfigure.d.ts.map +1 -1
- package/dist/components/core/list/SolidListViewConfigure.js +6 -5
- package/dist/components/core/list/SolidListViewConfigure.js.map +1 -1
- package/dist/components/core/list/SolidListViewConfigure.tsx +21 -12
- package/dist/components/core/list/columns/SolidBooleanColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/SolidBooleanColumn.js +1 -24
- package/dist/components/core/list/columns/SolidBooleanColumn.js.map +1 -1
- package/dist/components/core/list/columns/SolidBooleanColumn.tsx +1 -35
- package/dist/components/core/list/columns/SolidDateColumn.d.ts +0 -5
- package/dist/components/core/list/columns/SolidDateColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/SolidDateColumn.js +1 -31
- package/dist/components/core/list/columns/SolidDateColumn.js.map +1 -1
- package/dist/components/core/list/columns/SolidDateColumn.tsx +2 -49
- package/dist/components/core/list/columns/SolidDatetimeColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/SolidDatetimeColumn.js +1 -20
- package/dist/components/core/list/columns/SolidDatetimeColumn.js.map +1 -1
- package/dist/components/core/list/columns/SolidDatetimeColumn.tsx +2 -37
- package/dist/components/core/list/columns/SolidExternalIdColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/SolidExternalIdColumn.js +1 -21
- package/dist/components/core/list/columns/SolidExternalIdColumn.js.map +1 -1
- package/dist/components/core/list/columns/SolidExternalIdColumn.tsx +1 -38
- package/dist/components/core/list/columns/SolidIdColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/SolidIdColumn.js +1 -21
- package/dist/components/core/list/columns/SolidIdColumn.js.map +1 -1
- package/dist/components/core/list/columns/SolidIdColumn.tsx +1 -36
- package/dist/components/core/list/columns/SolidIntColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/SolidIntColumn.js +1 -30
- package/dist/components/core/list/columns/SolidIntColumn.js.map +1 -1
- package/dist/components/core/list/columns/SolidIntColumn.tsx +2 -46
- package/dist/components/core/list/columns/SolidMediaMultipleColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/SolidMediaMultipleColumn.js +1 -5
- package/dist/components/core/list/columns/SolidMediaMultipleColumn.js.map +1 -1
- package/dist/components/core/list/columns/SolidMediaMultipleColumn.tsx +0 -7
- package/dist/components/core/list/columns/SolidMediaSingleColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/SolidMediaSingleColumn.js +1 -1
- package/dist/components/core/list/columns/SolidMediaSingleColumn.js.map +1 -1
- package/dist/components/core/list/columns/SolidMediaSingleColumn.tsx +0 -1
- package/dist/components/core/list/columns/SolidSelectionDynamicColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/SolidSelectionDynamicColumn.js +1 -21
- package/dist/components/core/list/columns/SolidSelectionDynamicColumn.js.map +1 -1
- package/dist/components/core/list/columns/SolidSelectionDynamicColumn.tsx +1 -37
- package/dist/components/core/list/columns/SolidSelectionStaticColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/SolidSelectionStaticColumn.js +1 -21
- package/dist/components/core/list/columns/SolidSelectionStaticColumn.js.map +1 -1
- package/dist/components/core/list/columns/SolidSelectionStaticColumn.tsx +1 -38
- package/dist/components/core/list/columns/SolidShortTextColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/SolidShortTextColumn.js +2 -66
- package/dist/components/core/list/columns/SolidShortTextColumn.js.map +1 -1
- package/dist/components/core/list/columns/SolidShortTextColumn.tsx +3 -86
- package/dist/components/core/list/columns/SolidTimeColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/SolidTimeColumn.js +1 -20
- package/dist/components/core/list/columns/SolidTimeColumn.js.map +1 -1
- package/dist/components/core/list/columns/SolidTimeColumn.tsx +2 -37
- package/dist/components/core/list/columns/SolidUuidColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/SolidUuidColumn.js +1 -21
- package/dist/components/core/list/columns/SolidUuidColumn.js.map +1 -1
- package/dist/components/core/list/columns/SolidUuidColumn.tsx +1 -37
- package/dist/components/core/list/columns/relations/SolidRelationManyToManyColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/relations/SolidRelationManyToManyColumn.js +1 -17
- package/dist/components/core/list/columns/relations/SolidRelationManyToManyColumn.js.map +1 -1
- package/dist/components/core/list/columns/relations/SolidRelationManyToManyColumn.tsx +2 -35
- package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.js +10 -20
- package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.js.map +1 -1
- package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.tsx +15 -36
- package/dist/components/core/list/columns/relations/SolidRelationOneToManyColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/relations/SolidRelationOneToManyColumn.js +1 -15
- package/dist/components/core/list/columns/relations/SolidRelationOneToManyColumn.js.map +1 -1
- package/dist/components/core/list/columns/relations/SolidRelationOneToManyColumn.tsx +1 -31
- package/dist/components/core/tree/SolidTreeView.d.ts.map +1 -1
- package/dist/components/core/tree/SolidTreeView.js +23 -14
- package/dist/components/core/tree/SolidTreeView.js.map +1 -1
- package/dist/components/core/tree/SolidTreeView.tsx +50 -16
- package/dist/helpers/registry.js +3 -1
- package/dist/helpers/registry.js.map +1 -1
- package/dist/helpers/registry.ts +4 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/index.ts +5 -2
- package/dist/redux/api/fetchBaseQuery.js +4 -5
- package/dist/redux/api/fetchBaseQuery.js.map +1 -1
- package/dist/redux/api/fetchBaseQuery.tsx +4 -4
- package/dist/redux/api/solidSettingsApi.d.ts +2 -1
- package/dist/redux/api/solidSettingsApi.d.ts.map +1 -1
- package/dist/redux/api/solidSettingsApi.js +4 -1
- package/dist/redux/api/solidSettingsApi.js.map +1 -1
- package/dist/redux/api/solidSettingsApi.tsx +6 -1
- package/dist/redux/store/defaultStoreConfig.d.ts +1 -0
- package/dist/redux/store/defaultStoreConfig.d.ts.map +1 -1
- package/dist/resources/globals.css +14 -0
- package/dist/routes/pages/admin/core/DashboardPage.d.ts +2 -0
- package/dist/routes/pages/admin/core/DashboardPage.d.ts.map +1 -0
- package/dist/routes/pages/admin/core/DashboardPage.js +14 -0
- package/dist/routes/pages/admin/core/DashboardPage.js.map +1 -0
- package/dist/routes/pages/admin/core/DashboardPage.tsx +17 -0
- package/dist/routes/pages/admin/core/ListPage.js +1 -1
- package/dist/routes/pages/admin/core/ListPage.js.map +1 -1
- package/dist/routes/pages/admin/core/ListPage.tsx +1 -1
- package/dist/routes/pages/admin/core/ModuleHomePage.d.ts.map +1 -1
- package/dist/routes/pages/admin/core/ModuleHomePage.js +4 -15
- package/dist/routes/pages/admin/core/ModuleHomePage.js.map +1 -1
- package/dist/routes/pages/admin/core/ModuleHomePage.tsx +4 -3
- package/dist/routes/solidRoutes.d.ts.map +1 -1
- package/dist/routes/solidRoutes.js +2 -0
- package/dist/routes/solidRoutes.js.map +1 -1
- package/dist/routes/solidRoutes.tsx +2 -0
- package/dist/routes/types.d.ts +1 -1
- package/dist/routes/types.d.ts.map +1 -1
- package/dist/routes/types.js.map +1 -1
- package/dist/routes/types.ts +1 -0
- package/dist/types/solid-core.d.ts +1 -1
- package/package.json +1 -1
|
@@ -1,31 +1,24 @@
|
|
|
1
|
-
|
|
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
|
-
|
|
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
|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
1319
|
-
|
|
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.
|
|
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
|
-
?
|
|
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.
|
|
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.
|
|
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
|
-
|
|
1776
|
-
|
|
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
|
-
|
|
1794
|
-
|
|
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.
|
|
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"
|
|
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;
|
|
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.
|
|
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
|
|
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":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,KAAK,MAAM,oBAAoB,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,+CAA+C,CAAC;AACxF,OAAO,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AACrE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,8BAA8B,EAAE,MAAM,2DAA2D,CAAC;AAC3G,OAAO,EAAE,oCAAoC,EAAE,MAAM,wCAAwC,CAAC;AAC9F,OAAO,+BAA+B,CAAC;AACvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,iDAAiD,CAAC;AACrF,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAUpC,MAAM,CAAC,IAAM,sBAAsB,GAAG,UAClC,EAmBO;;QAnBL,gBAAgB,sBAAA,EACd,mBAAmB,yBAAA,EACnB,eAAe,qBAAA,EACf,YAAY,kBAAA,EACZ,QAAQ,cAAA,EACR,WAAW,iBAAA,EACX,OAAO,aAAA,EACP,IAAI,UAAA,EACJ,SAAS,eAAA,EACT,MAAM,YAAA,EACN,cAAc,oBAAA,EACd,eAAe,qBAAA,EACf,gBAAgB,sBAAA,EAChB,sBAAsB,4BAAA,EACtB,OAAO,aAAA,EACP,yBAAyB,+BAAA,EACzB,uBAAuB,6BAAA;IAI3B,0DAA0D;IAC1D,IAAM,uBAAuB,GAAG,8BAA8B,EAAE,CAAC;IAC3D,IAAA,KAA0C,QAAQ,CAAU,KAAK,CAAC,EAAjE,gBAAgB,QAAA,EAAE,mBAAmB,QAA4B,CAAC;IACzE,IAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IACxB,IAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAM,eAAe,GAAG,MAAM,CAAsB,IAAI,CAAC,CAAC;IAC1D,IAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,IAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IACrB,IAAA,KAAkB,QAAQ,CAAS,EAAE,CAAC,EAArC,IAAI,QAAA,EAAE,OAAO,QAAwB,CAAC;IACvC,IAAA,KAA8B,QAAQ,CAAU,KAAK,CAAC,EAArD,UAAU,QAAA,EAAE,aAAa,QAA4B,CAAC;IACvD,IAAA,KAAoC,QAAQ,CAAC,KAAK,CAAC,EAAlD,aAAa,QAAA,EAAE,gBAAgB,QAAmB,CAAC;IAG1D,IAAM,gBAAgB,GAAG,UAAC,OAAiB;QACvC,IAAI,IAAI,KAAK,OAAO,CAAC,IAAI;YAAE,OAAO,CAAC,8BAA8B;QACjE,IAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACzD,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,sCAAsC;QAC5F,IAAM,OAAO,GAAG,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,sBAAe,OAAO,CAAC,UAAU,2BAAiB,OAAO,CAAC,YAAY,uBAAa,OAAO,CAAC,QAAQ,yBAAe,OAAO,CAAC,UAAU,CAAE,CAAC;QACtL,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC,CAAC;IAEF,SAAS,CAAC;QACN,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;YAC9B,IAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACzD,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;gBACzB,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;aAClD;SACJ;IACL,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,SAAS,CAAC;QACN,IAAM,kBAAkB,GAAG,UAAC,KAAiB;;YACzC,IACI,eAAe,CAAC,OAAO;gBACvB,CAAC,CAAA,MAAA,eAAe,CAAC,OAAO,CAAC,UAAU,EAAE,0CAAE,QAAQ,CAAC,KAAK,CAAC,MAAc,CAAC,CAAA,EACvE;gBACE,gBAAgB,CAAC,KAAK,CAAC,CAAC;aAC3B;QACL,CAAC,CAAC;QAEF,IAAI,aAAa,EAAE;YACf,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;SAC1D;aAAM;YACH,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;SAC7D;QAED,OAAO,cAAM,OAAA,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,kBAAkB,CAAC,EAAzD,CAAyD,CAAC;IAC3E,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAA;IAGnB,qDAAqD;IACrD,IAAM,aAAa,GAAG,MAAA,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,KAAK,mCAAI,EAAE,CAAC;IAEvD,IAAM,eAAe,GAAG,UAAC,KAAyB;QAC9C,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;QACxD,IAAI,KAAK,KAAK,KAAK;YAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;QAC1D,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QACjE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,UAAU;IACnD,CAAC,CAAC;IACF,IAAM,UAAU,GAAG;QACf,MAAM,EAAE,eAAe,CAAC,aAAa,CAAC,MAAM,CAAC;QAC7C,MAAM,EAAE,eAAe,CAAC,aAAa,CAAC,MAAM,CAAC;QAC7C,eAAe,EAAE,eAAe,CAAC,aAAa,CAAC,eAAe,CAAC;QAC/D,YAAY,EAAE,eAAe,CAAC,aAAa,CAAC,YAAY,CAAC;KAC5D,CAAC;IAEF,cAAc;IACR,IAAA,KAA4B,UAAU,EAAE,EAAhC,OAAO,UAAA,EAAE,MAAM,YAAiB,CAAC;IAC/C,IAAM,IAAI,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,CAAC;IAC3B,IAAM,YAAY,GAAG,UAAC,KAAe,IAAK,OAAA,UAAU,CAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,EAAE,KAAK,CAAC,EAA9B,CAA8B,CAAC;IAEzE,4BAA4B;IAC5B,IAAM,YAAY,GAAG;QACjB,MAAM,EAAE,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC;QAC7C,MAAM,EAAE,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC;QAC7C,eAAe,EAAE,YAAY,CAAC,UAAU,CAAC,eAAe,CAAC,KAAK,CAAC;QAC/D,YAAY,EAAE,YAAY,CAAC,UAAU,CAAC,YAAY,CAAC,KAAK,CAAC;KAC5D,CAAC;IAEF,IAAM,qBAAqB,GAAG,UAAC,MAA+B;QACpD,IAAA,KAAqB,UAAU,CAAC,MAAM,CAAC,EAArC,OAAO,aAAA,EAAE,KAAK,WAAuB,CAAC;QAE9C,4BAA4B;QAC5B,IAAI,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QAE3B,mDAAmD;QACnD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YAClB,OAAO,YAAY,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;SACxC;QACD,+BAA+B;QAC/B,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC;IAEF,IAAM,sBAAsB,GAAG;QAC3B,IAAM,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,2BAA2B;QAC5E,YAAY,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,oDAAoD;QAC7F,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;IAC7B,CAAC,CAAC;IAEF,OAAO,CACH,eAAK,SAAS,EAAC,mBAAmB,aAC9B,KAAC,MAAM,IACH,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,OAAO,EACZ,IAAI,EAAC,WAAW,EAChB,QAAQ,EAAC,WAAW,EACpB,SAAS,EAAC,mBAAmB,EAC7B,QAAQ;gBACR,aAAa;gBACb,OAAO,EAAE,UAAC,CAAC,IAAK,OAAA,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAApB,CAAoB,GACtC,EACF,KAAC,MAAM,IAAC,MAAM,EAAC,QAAQ,EAAC,OAAO,EAAE,UAAU,EAAE,eAAe,EAAC,4BAA4B,EAAC,SAAS,EAAC,sBAAsB,EAAC,MAAM,EAAE,cAAQ,IAAI,CAAC,UAAU;oBAAE,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,YACvL,KAAC,WAAW,IAAC,gBAAgB,EAAE,gBAAgB,EAAE,OAAO,EAAE,OAAO,GAAI,GAChE,EACT,KAAC,YAAY,IAAC,GAAG,EAAE,SAAS,EAAE,SAAS,EAAC,uBAAuB,GAEhD,EACf,MAAC,YAAY,IAAC,GAAG,EAAE,EAAE,EAAE,SAAS,EAAC,yBAAyB,aACrD,CACG,CAAC,cAAc,CAAC,QAAQ,CAAC,UAAG,oBAAoB,CAAC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,CAAE,CAAC;wBAC/E,CAAA,MAAA,MAAA,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,SAAS,0CAAE,MAAM,0CAAE,KAAK,0CAAE,MAAM,MAAK,KAAK;wBAC1D,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;wBAC/B,qBAAqB,CAAC,QAAQ,CAAC,IAAI,cAAc,CAAC,QAAQ,CAAC,UAAG,oBAAoB,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAE,CAAC,IAAI,cAAc,CAAC,QAAQ,CAAC,UAAG,oBAAoB,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAAE,CAAC;wBACtM,qBAAqB,CAAC,QAAQ,CAAC,IAAI,cAAc,CAAC,QAAQ,CAAC,UAAG,oBAAoB,CAAC,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,CAAE,CAAC,IAAI,cAAc,CAAC,QAAQ,CAAC,UAAG,oBAAoB,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAAE,CAAC;wBACxM,qBAAqB,CAAC,iBAAiB,CAAC,IAAI,cAAc,CAAC,QAAQ,CAAC,UAAG,oBAAoB,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAE,CAAC;wBAC5H,qBAAqB,CAAC,cAAc,CAAC,IAAI,cAAc,CAAC,QAAQ,CAAC,UAAG,oBAAoB,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAE,CAAC;wBACrH,CAAC,MAAA,MAAA,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,KAAK,0CAAE,aAAa,0CACpC,IAAI,CAAC,UAAC,EAAO,IAAK,OAAA,EAAE,CAAC,KAAK,CAAC,mBAAmB,KAAK,IAAI,EAArC,CAAqC,CAAC,CAAC;yBAC/D,MAAA,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,SAAS,0CAAE,KAAK,0CAAE,gBAAgB,CAAA,CACrD,IAAI,CACG,8BACI,cAAK,SAAS,EAAC,KAAK,YAChB,eAAK,SAAS,EAAC,kBAAkB,aAC5B,cAAc,CAAC,QAAQ,CAAC,UAAG,oBAAoB,CAAC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,CAAE,CAAC,IAAI,CAAA,MAAA,MAAA,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,SAAS,0CAAE,MAAM,0CAAE,KAAK,0CAAE,MAAM,MAAK,KAAK,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC;4CAC3K,KAAC,MAAM,IACH,IAAI,QACJ,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,2BAA2B,EACrC,KAAK,EAAC,QAAQ,EACd,IAAI,EAAC,OAAO,EACZ,OAAO,EAAC,MAAM,EACd,QAAQ,EAAC,QAAQ,EACjB,IAAI,EAAE,aAAa,EACnB,OAAO,EAAE,cAAM,OAAA,gBAAgB,CAAC,IAAI,CAAC,EAAtB,CAAsB,GACvC,EACL,qBAAqB,CAAC,QAAQ,CAAC,IAAI,cAAc,CAAC,QAAQ,CAAC,UAAG,oBAAoB,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAE,CAAC,IAAI,cAAc,CAAC,QAAQ,CAAC,UAAG,oBAAoB,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAAE,CAAC,IAAI,CACvM,KAAC,MAAM,IAAC,IAAI,QAAC,IAAI,EAAC,gBAAgB,EAAC,KAAK,EAAC,QAAQ,EAAC,IAAI,EAAC,OAAO,EAAC,QAAQ,EAAC,WAAW,EAAC,SAAS,EAAC,2BAA2B,EACrH,OAAO,EAAE,cAAM,OAAA,mBAAmB,CAAC,IAAI,CAAC,EAAzB,CAAyB,GAC1C,CACL,EACA,qBAAqB,CAAC,QAAQ,CAAC,IAAI,cAAc,CAAC,QAAQ,CAAC,UAAG,oBAAoB,CAAC,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,CAAE,CAAC,IAAI,cAAc,CAAC,QAAQ,CAAC,UAAG,oBAAoB,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAAE,CAAC,IAAI,CACzM,KAAC,MAAM,IAAC,IAAI,QAAC,IAAI,EAAC,cAAc,EAAC,KAAK,EAAC,QAAQ,EAAC,IAAI,EAAC,OAAO,EAAC,QAAQ,EAAC,WAAW,EAAC,SAAS,EAAC,2BAA2B;4CACnH,aAAa;4CACb,OAAO,EAAE,cAAQ,aAAa,CAAC,UAAC,UAAU,IAAK,OAAA,CAAC,UAAU,EAAX,CAAW,CAAC,CAAC,CAAC,CAAC,GAAI,CACzE,EACA,MAAA,MAAA,MAAA,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,KAAK,0CAAE,aAAa,0CACpC,MAAM,CAAC,UAAC,EAAO,IAAK,OAAA,EAAE,CAAC,KAAK,CAAC,mBAAmB,KAAK,IAAI,EAArC,CAAqC,CAAC,0CAC1D,GAAG,CAAC,UAAC,MAAW,EAAE,KAAa,IAAK,OAAA,CAClC,KAAC,oCAAoC,IAEjC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,qBAAqB,EAAE,gBAAgB,EACvC,uBAAuB,EAAE,uBAAuB,IAJ3C,KAAK,CAKZ,CACL,EARqC,CAQrC,CAAC,EACL,CAAA,MAAA,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,SAAS,0CAAE,KAAK,0CAAE,gBAAgB,KAAI,CACnD,eAAK,SAAS,EAAC,8CAA8C,aACzD,KAAC,QAAQ,IACL,OAAO,EAAC,cAAc,EACtB,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,cAAM,OAAA,eAAe,CAAC,CAAC,YAAY,CAAC,EAA9B,CAA8B,GAChD,EACF,gBAAO,OAAO,EAAC,cAAc,EAAC,SAAS,EAAC,2CAA2C,sCAE3E,IACN,CACT,EACA,YAAY,IAAI,CACb,KAAC,MAAM,IAAC,IAAI,QAAC,IAAI,EAAC,eAAe,EAAC,KAAK,EAAC,SAAS,EAAC,IAAI,EAAC,OAAO,EAAC,QAAQ,EAAC,WAAW,EAAC,SAAS,EAAC,2CAA2C,EACrI,OAAO,EAAE,cAAM,OAAA,uBAAuB,CAAC,IAAI,CAAC,EAA7B,CAA6B,GAAI,CACvD,EAED,cAAK,SAAS,EAAC,4BAA4B,YACtC,MAAA,MAAA,MAAA,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,KAAK,0CAAE,aAAa,0CACpC,MAAM,CAAC,UAAC,EAAO,IAAK,OAAA,EAAE,CAAC,KAAK,CAAC,mBAAmB,IAAI,IAAI,EAApC,CAAoC,CAAC,0CACzD,GAAG,CAAC,UAAC,MAAW,EAAE,KAAa,IAAK,OAAA,CAClC,KAAC,yBAAyB,IAEtB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,qBAAqB,EAAE,gBAAgB,EACvC,uBAAuB,EAAE,uBAAuB,EAChD,eAAe,EAAE,eAAe,EAChC,OAAO,EAAE,OAAO,IANX,KAAK,CAOZ,CACL,EAVqC,CAUrC,CAAC,GACJ,IAEJ,GACJ,EACN,KAAC,OAAO,IAAC,SAAS,EAAC,KAAK,GAAG,IAC5B,CACN,EACL,eAAK,SAAS,EAAC,qCAAqC,aAC/C,qBAAqB,CAAC,iBAAiB,CAAC,IAAI,oBAAoB,CAAC,kBAAkB,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAC,MAAM,IACvG,IAAI,EAAC,iBAAiB,EACtB,KAAK,EAAC,kBAAkB,EACxB,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,EACjD,IAAI,EAAC,OAAO,EACZ,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAClC,SAAS,EAAC,kCAAkC;gCAC5C,aAAa;gCACb,OAAO,EAAE,UAAC,CAAC;;oCACP,MAAA,eAAe,CAAC,OAAO,0CAAE,MAAM,CAAC,CAAC,CAAC,CAAC;oCACnC,gBAAgB,CAAC,UAAC,IAAI,IAAK,OAAA,CAAC,IAAI,EAAL,CAAK,CAAC,CAAC,CAAC,sCAAsC;gCAC7E,CAAC,YAED,YAAG,SAAS,EAAC,6BAA6B,GAAK,GAC1C,CACR,EACA,qBAAqB,CAAC,cAAc,CAAC,IAAI,oBAAoB,CAAC,cAAc,EAAE,QAAQ,CAAC,IAAI,CACxF,KAAC,MAAM,IAAC,IAAI,QAAC,IAAI,EAAC,YAAY,EAAC,KAAK,EAAC,oBAAoB,EAAC,IAAI,EAAC,OAAO,EAAC,QAAQ,EAAC,WAAW,EAAC,SAAS,EAAC,2BAA2B,EAAC,OAAO,EAAE,cAAM,OAAA,sBAAsB,CAAC,IAAI,CAAC,EAA5B,CAA4B,GAAI,CACpL,EACD,KAAC,MAAM,IAAC,IAAI,QAAC,IAAI,EAAC,aAAa,EAAC,KAAK,EAAC,aAAa,EAAC,IAAI,EAAC,OAAO,EAAC,QAAQ,EAAC,WAAW,EAAC,SAAS,EAAC,4BAA4B,EACxH,OAAO,EAAE,cAAM,OAAA,sBAAsB,EAAE,EAAxB,CAAwB,GAAI,EAE/C,KAAC,YAAY,IAAC,GAAG,EAAE,eAAe,EAAE,SAAS,EAAC,wBAAwB,EAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,EAC3F,MAAM,EAAE,cAAM,OAAA,gBAAgB,CAAC,IAAI,CAAC,EAAtB,CAAsB,EACpC,MAAM,EAAE;oCACJ,UAAU,CAAC,cAAM,OAAA,gBAAgB,CAAC,KAAK,CAAC,EAAvB,CAAuB,EAAE,EAAE,CAAC,CAAC,CAAC,yBAAyB;gCAC5E,CAAC,YAED,cAAK,SAAS,EAAC,wBAAwB,YACnC,MAAC,SAAS,IAAC,QAAQ,QAAC,UAAU,EAAC,oBAAoB,EAAC,YAAY,EAAC,kBAAkB,EAAC,WAAW,EAAE,CAAC,CAAC,CAAC,aAC/F,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;gDAC9B,KAAC,YAAY,IAAC,MAAM,EAAC,aAAa,YAC9B,cAAK,SAAS,EAAC,4BAA4B,YACtC,SAAS,CAAC,GAAG,CAAC,UAAC,MAAgB,IAAK,OAAA,CACjC,eAAuB,SAAS,EAAE,kCAA2B,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,YAAY,CAAE,aACpH,KAAC,WAAW,IACR,OAAO,EAAE,MAAM,CAAC,IAAI,EACpB,IAAI,EAAC,OAAO,EACZ,KAAK,EAAE,MAAM,CAAC,IAAI;oEAClB,2BAA2B;oEAC3B,QAAQ,EAAE,cAAM,OAAA,gBAAgB,CAAC,MAAM,CAAC,EAAxB,CAAwB,EACxC,OAAO,EAAE,MAAM,CAAC,IAAI,KAAK,IAAI,GAC/B,EACF,gBAAO,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,SAAS,EAAC,6DAA6D,YAC/F,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GACpB,KAXF,MAAM,CAAC,IAAI,CAYf,CACT,EAdoC,CAcpC,CAAC,GACA,GACK,EAEnB,KAAC,YAAY,IAAC,MAAM,EAAC,aAAa,YAC9B,cAAK,SAAS,EAAC,sDAAsD,YAChE,WAAW,CAAC,GAAG,CAAC,UAAC,MAAW,IAAK,OAAA,CAC9B,eAAwB,SAAS,EAAE,kCAA2B,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,YAAY,CAAE,aACtH,KAAC,WAAW,IACR,OAAO,EAAE,MAAM,CAAC,KAAK,EACrB,IAAI,EAAC,OAAO,EACZ,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,QAAQ,EAAE,UAAC,CAAC,IAAK,OAAA,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAAhB,CAAgB,EACjC,OAAO,EAAE,MAAM,CAAC,KAAK,KAAK,IAAI,GAChC,EACF,iBAAO,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,SAAS,EAAC,6DAA6D,aAChG,MAAM,CAAC,KAAK,EACb,KAAC,KAAK,IACF,GAAG,EAAE,MAAM,CAAC,KAAK,EACjB,GAAG,EAAE,MAAM,CAAC,KAAK,EACjB,IAAI,QACJ,SAAS,EAAC,0BAA0B,GACtC,IACE,KAhBF,MAAM,CAAC,KAAK,CAiBhB,CACT,EAnBiC,CAmBjC,CAAC,GACA,GACK,EACf,KAAC,YAAY,IAAC,MAAM,EAAC,iBAAiB,EAAC,eAAe,EAAC,MAAM,YACzD,KAAC,uBAAuB,IAAC,gBAAgB,EAAE,gBAAgB,EAAE,eAAe,EAAE,eAAe,GAAI,GACtF,IACP,GACV,GACK,IACb,IACK,EACd,gBAAgB;gBACb,KAAC,kBAAkB,IACf,gBAAgB,EAAE,gBAAgB,EAClC,mBAAmB,EAAE,mBAAmB,EACxC,gBAAgB,EAAE,gBAAgB,EAClC,yBAAyB,EAAE,yBAAyB,GACtD,IAEJ,CACT,CAAA;AACL,CAAC,CAAA","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"]}
|