@solidxai/core-ui 0.1.9-beta.11 → 0.1.9-beta.13
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/auth/SolidOTPVerify.d.ts +3 -0
- package/dist/components/auth/SolidOTPVerify.d.ts.map +1 -0
- package/dist/components/auth/SolidOTPVerify.js +67 -0
- package/dist/components/auth/SolidOTPVerify.js.map +1 -0
- package/dist/components/auth/SolidOTPVerify.tsx +133 -0
- package/dist/components/common/AuthBanner.js.map +1 -1
- package/dist/components/core/common/LoadDynamicJsxComponent.d.ts +2 -0
- package/dist/components/core/common/LoadDynamicJsxComponent.d.ts.map +1 -0
- package/dist/components/core/common/LoadDynamicJsxComponent.js +50 -0
- package/dist/components/core/common/LoadDynamicJsxComponent.js.map +1 -0
- package/dist/components/core/common/LoadDynamicJsxComponent.tsx +70 -0
- package/dist/components/core/form/SolidFormFooter.js +1 -1
- package/dist/components/core/form/SolidFormFooter.js.map +1 -1
- package/dist/components/core/form/SolidFormFooter.tsx +1 -1
- package/dist/components/core/form/SolidFormView.d.ts.map +1 -1
- package/dist/components/core/form/SolidFormView.js +3 -2
- package/dist/components/core/form/SolidFormView.js.map +1 -1
- package/dist/components/core/form/SolidFormView.tsx +3 -1
- package/dist/components/core/kanban/SolidManyToOneFilterElement.d.ts.map +1 -1
- package/dist/components/core/kanban/SolidManyToOneFilterElement.js.map +1 -1
- package/dist/components/core/kanban/SolidManyToOneFilterElement.tsx +2 -1
- package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.d.ts.map +1 -1
- package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.js +2 -2
- package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.js.map +1 -1
- package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.tsx +10 -21
- package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.d.ts.map +1 -1
- package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.js +2 -2
- package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.js.map +1 -1
- package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.tsx +10 -18
- package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.d.ts.map +1 -1
- package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.js +6 -3
- package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.js.map +1 -1
- package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.tsx +24 -30
- package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.js.map +1 -1
- package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.tsx +2 -2
- package/dist/components/core/list/SolidListView.d.ts.map +1 -1
- package/dist/components/core/list/SolidListView.js +2 -0
- package/dist/components/core/list/SolidListView.js.map +1 -1
- package/dist/components/core/list/SolidListView.tsx +2 -0
- package/dist/components/core/list/SolidListViewColumn.d.ts +2 -1
- package/dist/components/core/list/SolidListViewColumn.d.ts.map +1 -1
- package/dist/components/core/list/SolidListViewColumn.js +2 -2
- package/dist/components/core/list/SolidListViewColumn.js.map +1 -1
- package/dist/components/core/list/SolidListViewColumn.tsx +4 -3
- package/dist/components/core/list/SolidListViewRowButtonContextMenu.d.ts +1 -1
- package/dist/components/core/list/SolidListViewRowButtonContextMenu.d.ts.map +1 -1
- package/dist/components/core/list/SolidListViewRowButtonContextMenu.js +7 -6
- package/dist/components/core/list/SolidListViewRowButtonContextMenu.js.map +1 -1
- package/dist/components/core/list/SolidListViewRowButtonContextMenu.tsx +10 -9
- package/dist/components/core/list/columns/SolidRelationColumn.d.ts +1 -1
- package/dist/components/core/list/columns/SolidRelationColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/SolidRelationColumn.js +2 -2
- package/dist/components/core/list/columns/SolidRelationColumn.js.map +1 -1
- package/dist/components/core/list/columns/SolidRelationColumn.tsx +2 -2
- package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.d.ts +2 -2
- package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.js +9 -4
- package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.js.map +1 -1
- package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.tsx +14 -4
- package/dist/nextAuth/authProviders.d.ts +4 -0
- package/dist/nextAuth/authProviders.d.ts.map +1 -0
- package/dist/nextAuth/authProviders.js +198 -0
- package/dist/nextAuth/authProviders.js.map +1 -0
- package/dist/nextAuth/authProviders.tsx +232 -0
- package/dist/nextAuth/handleLogout.d.ts +2 -0
- package/dist/nextAuth/handleLogout.d.ts.map +1 -0
- package/dist/nextAuth/handleLogout.js +36 -0
- package/dist/nextAuth/handleLogout.js.map +1 -0
- package/dist/nextAuth/handleLogout.tsx +39 -0
- package/dist/nextAuth/refreshAccessToken.d.ts +2 -0
- package/dist/nextAuth/refreshAccessToken.d.ts.map +1 -0
- package/dist/nextAuth/refreshAccessToken.js +24 -0
- package/dist/nextAuth/refreshAccessToken.js.map +1 -0
- package/dist/nextAuth/refreshAccessToken.tsx +28 -0
- package/dist/redux/features/settingsSlice.d.ts +20 -0
- package/dist/redux/features/settingsSlice.d.ts.map +1 -0
- package/dist/redux/features/settingsSlice.js +39 -0
- package/dist/redux/features/settingsSlice.js.map +1 -0
- package/dist/redux/features/settingsSlice.ts +60 -0
- package/dist/types/solid-core.d.ts +1 -0
- package/package.json +1 -1
- package/dist/components/core/list/SolidDataTablePagination.d.ts +0 -15
- package/dist/components/core/list/SolidDataTablePagination.d.ts.map +0 -1
- package/dist/components/core/list/SolidDataTablePagination.js +0 -22
- package/dist/components/core/list/SolidDataTablePagination.js.map +0 -1
- package/dist/components/core/list/SolidDataTablePagination.tsx +0 -71
- package/dist/components/solid-ui/SolidButton.d.ts +0 -14
- package/dist/components/solid-ui/SolidButton.d.ts.map +0 -1
- package/dist/components/solid-ui/SolidButton.js +0 -36
- package/dist/components/solid-ui/SolidButton.js.map +0 -1
- package/dist/components/solid-ui/SolidButton.tsx +0 -54
- package/dist/components/solid-ui/SolidTabs.d.ts +0 -18
- package/dist/components/solid-ui/SolidTabs.d.ts.map +0 -1
- package/dist/components/solid-ui/SolidTabs.js +0 -22
- package/dist/components/solid-ui/SolidTabs.js.map +0 -1
- package/dist/components/solid-ui/SolidTabs.tsx +0 -73
- package/dist/components/solid-ui/index.d.ts +0 -3
- package/dist/components/solid-ui/index.d.ts.map +0 -1
- package/dist/components/solid-ui/index.js +0 -3
- package/dist/components/solid-ui/index.js.map +0 -1
- package/dist/components/solid-ui/index.ts +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidListView.js","sourceRoot":"","sources":["../../../../src/components/core/list/SolidListView.tsx"],"names":[],"mappings":"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","sourcesContent":["import { forwardRef, useState, useEffect, useRef, useMemo, useImperativeHandle } from \"react\";\nimport { SolidDataTable as DataTable, DataTableStateEvent, Column } from \"./SolidDataTable\";\nimport qs from \"qs\";\nimport { createSolidEntityApi } from \"../../../redux/api/solidEntityApi\";\nimport { useGetSolidViewLayoutQuery } from \"../../../redux/api/solidViewApi\";\nimport { SolidListViewColumn } from \"./SolidListViewColumn\";\nimport { SolidCreateButton } from \"../common/SolidCreateButton\";\nimport { SolidGlobalSearchElement } from \"../common/SolidGlobalSearchElement\";\nimport { useLazyCheckIfPermissionExistsQuery } from \"../../../redux/api/userApi\";\nimport { permissionExpression } from \"../../../helpers/permissions\";\nimport { usePathname } from \"../../../hooks/usePathname\";\nimport { useRouter } from \"../../../hooks/useRouter\";\nimport { useSearchParams } from \"../../../hooks/useSearchParams\";\nimport { ListViewRowActionPopup } from \"./ListViewRowActionPopup\";\nimport { showToast } from \"../../../redux/features/toastSlice\";\nimport CompactImage from '../../../resources/images/layout/images/compact.png';\nimport CozyImage from '../../../resources/images/layout/images/cozy.png';\nimport ComfortableImage from '../../../resources/images/layout/images/comfortable.png';\nimport { SolidLightbox } from \"../../shad-cn-ui/SolidLightbox\";\nimport type { SolidLightboxSlide } from \"../../shad-cn-ui/SolidLightbox\";\nimport { SolidListViewConfigure } from \"./SolidListViewConfigure\";\nimport { SolidEmptyListViewPlaceholder } from \"./SolidEmptyListViewPlaceholder\";\nimport { useHandleListCustomButtonClick } from \"../../../components/common/useHandleListCustomButtonClick\";\nimport { hasAnyRole } from \"../../../helpers/rolesHelper\";\nimport { SolidListViewHeaderButton } from \"./SolidListViewHeaderButton\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport styles from \"./SolidListViewWrapper.module.css\";\nimport { SolidBeforeListDataLoad, SolidListUiEventResponse, SolidLoadList } from \"../../../types/solid-core\";\nimport { getExtensionFunction } from \"../../../helpers/registry\";\nimport { useSession } from \"../../../hooks/useSession\";\nimport { ERROR_MESSAGES } from \"../../../constants/error-messages\";\n// import { SolidAiMainWrapper } from \"../solid-ai/SolidAiMainWrapper\"; // moved to SolidX Studio panel\nimport { showNavbar, toggleNavbar } from \"../../../redux/features/navbarSlice\";\nimport { normalizeSolidListTreeKanbanActionPath } from \"../../../helpers/routePaths\";\nimport { getMediaTypeFromUrl } from \"../../../helpers/mediaType\";\nimport { SolidListViewRowActionsMenu } from \"./SolidListViewRowActionsMenu\";\nimport { SolidHeaderRequestStatus } from \"../../common/SolidHeaderRequestStatus\";\nimport {\n SolidButton,\n SolidConfirmDialog,\n SolidDialog,\n SolidDialogBody,\n SolidDialogClose,\n SolidDialogFooter,\n SolidDialogHeader,\n SolidDialogSeparator,\n SolidDialogTitle,\n} from \"../../shad-cn-ui\";\nimport { FilterMatchMode } from \"../filter/filterMatchMode\";\nimport { LayoutGrid, Pencil, Plus, RefreshCw, RotateCcw, Search, SquarePen, Trash2 } from \"lucide-react\";\n// import { ERROR_MESSAGES } from \"../../../constants/error-messages\";\n\nconst getRandomInt = (min: number, max: number) => {\n return Math.floor(Math.random() * (max - min + 1)) + min;\n};\n\nexport const getFilterObjectFromLocalStorage = () => {\n const currentPageUrl = window.location.pathname; // Get the current page URL\n const encodedQueryString = localStorage.getItem(currentPageUrl); // Retrieve the encoded query string from local storage\n\n if (encodedQueryString) {\n try {\n const decodedQueryString = atob(encodedQueryString); // Base64 decode the string\n const parsedParams = JSON.parse(decodedQueryString); // Parse the decoded string into an object\n return parsedParams;\n } catch (error) {\n console.error(\n ERROR_MESSAGES.ERROR_DECODING,\n error\n );\n }\n }\n};\n\n\nexport const getFilterObjectFromLocalStorageByUrl = (url: string) => {\n const currentPageUrl = url; // Get the current page URL\n const encodedQueryString = localStorage.getItem(currentPageUrl); // Retrieve the encoded query string from local storage\n\n if (encodedQueryString) {\n try {\n const decodedQueryString = atob(encodedQueryString); // Base64 decode the string\n const parsedParams = JSON.parse(decodedQueryString); // Parse the decoded string into an object\n return parsedParams;\n } catch (error) {\n console.error(\n ERROR_MESSAGES.ERROR_DECODING,\n error\n );\n }\n }\n};\n\nexport const setFilterObjectToLocalStorage = (queryObject: any) => {\n if (queryObject) {\n const stringifiedObject = JSON.stringify(queryObject);\n // const stringifiedObject = qs.stringify(queryObject, { encodeValuesOnly: true, arrayFormat: \"brackets\" });\n const encodedQueryString = btoa(stringifiedObject); // Base64 encode the stringified object\n const currentPageUrl = window.location.pathname; // Get the current page URL\n localStorage.setItem(currentPageUrl, encodedQueryString); // Store in local storage with the URL as the key\n return encodedQueryString;\n }\n return null;\n};\n\n\nexport const setFilterObjectToLocalStorageByUrl = (url: string, queryObject: any) => {\n if (queryObject) {\n const stringifiedObject = JSON.stringify(queryObject);\n // const stringifiedObject = qs.stringify(queryObject, { encodeValuesOnly: true, arrayFormat: \"brackets\" });\n const encodedQueryString = btoa(stringifiedObject); // Base64 encode the stringified object\n const currentPageUrl = url; // Get the current page URL\n localStorage.setItem(currentPageUrl, encodedQueryString); // Store in local storage with the URL as the key\n return encodedQueryString;\n }\n return null;\n};\n\ntype SolidListViewParams = {\n moduleName: string;\n modelName: string;\n inlineCreate?: boolean;\n handleAddClickForEmbeddedView?: any;\n handleEditClickForEmbeddedView?: any;\n embeded?: boolean;\n embededFieldRelationType?: string;\n customLayout?: any;\n customFilter?: any;\n handleDeleteClick?: any;\n};\n\nexport type SolidListViewHandle = {\n /**\n * Re-runs the list fetch using the current internal state\n * (filters, pagination, sorting, archived toggle, and populate config).\n * Use this after external side-effects that may have changed list data\n * but do not require changing list state first.\n */\n refresh: () => void;\n /**\n * Resets list filters to the default state and also clears the\n * global search UI state through the existing search element ref.\n * Use this for a full \"Reset filters\" action.\n */\n clearFilters: () => void;\n /**\n * Applies transformed filter predicates in the same shape used by\n * SolidGlobalSearchElement -> handleApplyCustomFilter.\n * Use this when external code wants to programmatically drive\n * search/custom/saved/predefined filters.\n * eg custom_filter_predicate : {$and: [{displayName: {$containsi: \"test\"}}]}\n */\n applyFilter: (filter: {\n custom_filter_predicate?: any;\n search_predicate?: any;\n saved_filter_predicate?: any;\n predefined_search_predicate?: any;\n }) => void;\n /**\n * Updates pagination state directly.\n * Use this when a caller needs to jump to a specific page window\n * or enforce a new page size.\n */\n setPagination: (nextFirst: number, nextRows: number) => void;\n /**\n * Updates sorting state and resets page offset to the first page.\n * Use this for programmatic sort controls to match DataTable behavior.\n */\n setSort: (nextSortField: string, nextSortOrder: 1 | -1 | 0) => void;\n /**\n * Toggles inclusion of archived/soft-deleted records.\n * Use this to switch between active-only and inclusive list views.\n */\n setShowArchived: (value: boolean) => void;\n /**\n * Returns a snapshot of current list state for orchestration/debugging.\n * Includes a cloned listData array to avoid accidental external mutation.\n */\n getState: () => {\n first: number;\n rows: number;\n sortField: string;\n sortOrder: 1 | -1 | 0;\n showArchived: boolean;\n filters: any;\n filterPredicates: any;\n listData: any[];\n totalRecords: number;\n loading: boolean;\n };\n};\n\nexport const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams>((params, ref) => {\n const session = useSession();\n const user = session?.data?.user;\n const dispatch = useDispatch();\n const visibleNavbar = useSelector((state: any) => state.navbarState?.visibleNavbar);\n\n const pathname = usePathname();\n const solidGlobalSearchElementRef = useRef<any>();\n\n const router = useRouter();\n const searchParams = useSearchParams();\n const localeName = searchParams.get(\"locale\");\n\n\n const [solidListViewMetaData, setSolidListViewMetaData] = useState<any>(null);\n const [solidListViewLayout, setSolidListViewLayout] = useState<any>(null);\n const [isDraftPublishWorkflowEnabled, setIsDraftPublishWorkflowEnabled] = useState(false);\n\n // Filter query realted states\n const [filters, setFilters] = useState<any>(null);\n const [totalRecords, setTotalRecords] = useState(0);\n const [first, setFirst] = useState(0);\n const [rows, setRows] = useState(solidListViewLayout?.attrs?.defaultPageSize ? solidListViewLayout?.attrs?.defaultPageSize : 10);\n const [sortField, setSortField] = useState<string>(\"id\");\n const [sortOrder, setSortOrder] = useState<1 | -1 | 0>(-1);\n const [toPopulate, setToPopulate] = useState<string[]>([]);\n const [toPopulateMedia, setToPopulateMedia] = useState<string[]>([]);\n\n\n const [actionsAllowed, setActionsAllowed] = useState<string[]>([]);\n\n\n // All list view state.\n const [listViewData, setListViewData] = useState<any[]>([]);\n const [selectedRecords, setSelectedRecords] = useState<any[]>([]);\n const [selectedRecoverRecords, setSelectedRecoverRecords] = useState<any[]>([]);\n\n const [loading, setLoading] = useState<boolean>(true);\n\n const [isDialogVisible, setDialogVisible] = useState(false);\n const [isRecoverDialogVisible, setRecoverDialogVisible] = useState(false);\n\n const [createButtonUrl, setCreateButtonUrl] = useState<string>();\n const [editButtonUrl, setEditButtonUrl] = useState<string>();\n\n const [createActionQueryParams, setCreateActionQueryParams] = useState<Record<string, string>>({});\n const [editActionQueryParams, setEditActionQueryParams] = useState<Record<string, string>>({});\n\n const [showArchived, setShowArchived] = useState(false);\n\n const [queryDataLoaded, setQueryDataLoaded] = useState(false);\n const [filterPredicates, setFilterPredicates] = useState<any>(null);\n const [showSaveFilterPopup, setShowSaveFilterPopup] = useState<boolean>(false);\n const [showGlobalSearchElement, setShowGlobalSearchElement] = useState(false);\n const suppressNextFilterPaginationResetRef = useRef(false);\n\n const [triggerCheckIfPermissionExists] = useLazyCheckIfPermissionExistsQuery();\n\n const handleCustomButtonClick = useHandleListCustomButtonClick();\n\n const editBaseUrl = useMemo(\n () => normalizeSolidListTreeKanbanActionPath(pathname, editButtonUrl || \"form\"),\n [editButtonUrl, pathname]\n );\n\n useEffect(() => {\n const fetchPermissions = async () => {\n if (params.modelName) {\n const permissionNames = [\n permissionExpression(params.modelName, 'create'),\n permissionExpression(params.modelName, 'delete'),\n permissionExpression(params.modelName, 'update'),\n permissionExpression(params.modelName, 'deleteMany'),\n permissionExpression(params.modelName, 'findOne'),\n permissionExpression(params.modelName, 'findMany'),\n permissionExpression(params.modelName, 'insertMany'),\n permissionExpression('importTransaction', 'create'),\n permissionExpression('exportTransaction', 'create'),\n permissionExpression('userViewMetadata', 'create'),\n permissionExpression('savedFilters', 'create')\n ];\n const queryData = {\n permissionNames: permissionNames,\n };\n const queryString = qs.stringify(queryData, {\n encodeValuesOnly: true,\n });\n const response = await triggerCheckIfPermissionExists(queryString);\n setActionsAllowed(response.data.data);\n }\n };\n fetchPermissions();\n }, [params.modelName]);\n\n\n const isFilterApplied = filters ? true : false;\n\n // Create the RTK slices for this entity\n const entityApi = createSolidEntityApi(params.modelName);\n const {\n useCreateSolidEntityMutation,\n useDeleteMultipleSolidEntitiesMutation,\n useDeleteSolidEntityMutation,\n useGetSolidEntitiesQuery,\n useGetSolidEntityByIdQuery,\n useLazyGetSolidEntitiesQuery,\n useLazyGetSolidEntityByIdQuery,\n usePrefetch,\n useUpdateSolidEntityMutation,\n useRecoverSolidEntityByIdQuery,\n useLazyRecoverSolidEntityByIdQuery,\n useRecoverSolidEntityMutation,\n } = entityApi;\n\n const menuItemId = searchParams.get(\"menuItemId\");\n const menuItemName = searchParams.get(\"menuItemName\");\n const actionId = searchParams.get(\"actionId\");\n const actionName = searchParams.get(\"actionName\");\n // Get the list view layout & metadata first.\n const listViewMetaDataQs = qs.stringify(\n {\n modelName: params.modelName,\n moduleName: params.moduleName,\n viewType: \"list\",\n menuItemId: menuItemId,\n menuItemName: menuItemName,\n actionId: actionId,\n actionName: actionName,\n },\n {\n encodeValuesOnly: true,\n }\n );\n\n const {\n data: solidListViewInitialMetaData,\n error: solidListViewMetaDataError,\n isLoading: solidListViewMetaDataIsLoading,\n isError: solidListViewMetaDataIsError,\n refetch,\n } = useGetSolidViewLayoutQuery(listViewMetaDataQs);\n\n const initialFilterMethod = () => {\n const solidView = solidListViewMetaData?.data?.solidView;\n const solidFieldsMetadata =\n solidListViewMetaData?.data?.solidFieldsMetadata;\n\n const initialFilters: any = {};\n const toPopulate: string[] = [];\n const toPopulateMedia: string[] = [];\n const currentLayout = params.customLayout ? params.customLayout : solidView?.layout;\n for (let i = 0; i < currentLayout?.children.length; i++) {\n const column = currentLayout?.children[i];\n const fieldMetadata = solidFieldsMetadata?.[column.attrs.name];\n if (!fieldMetadata?.type) {\n showFieldError(ERROR_MESSAGES.FIELD_NOT_IN_METADATA(column.attrs.label));\n // return;\n }\n if (fieldMetadata) {\n // Form the initial filters after iterating over the columns and field metadata.\n if (\n [\"int\", \"bigint\", \"float\", \"decimal\"].includes(fieldMetadata?.type)\n ) {\n // initialFilters[column.attrs.name] = { operator: FilterOperator.OR, constraints: [{ value: null, matchMode: FilterMatchMode.EQUALS }] }\n initialFilters[column.attrs.name] = {\n value: null,\n matchMode: FilterMatchMode.EQUALS,\n };\n } else if (\n [\"date\", \"datetime\", \"time\", \"boolean\"].includes(fieldMetadata?.type)\n ) {\n // initialFilters[column.attrs.name] = { operator: FilterOperator.OR, constraints: [{ value: null, matchMode: FilterMatchMode.DATE_IS }] }\n initialFilters[column.attrs.name] = {\n value: null,\n matchMode: FilterMatchMode.EQUALS,\n };\n } else if (\n [\"relation\", \"selectionStatic\", \"selectionDynamic\"].includes(\n fieldMetadata?.type\n )\n ) {\n initialFilters[column.attrs.name] = {\n value: null,\n matchMode: FilterMatchMode.IN,\n };\n } else {\n // initialFilters[column.attrs.name] = { operator: FilterOperator.OR, constraints: [{ value: null, matchMode: FilterMatchMode.STARTS_WITH }] }\n initialFilters[column.attrs.name] = {\n value: null,\n matchMode: FilterMatchMode.STARTS_WITH,\n };\n }\n\n if (column.attrs.name === \"id\") {\n initialFilters[column.attrs.name] = {\n value: null,\n matchMode: FilterMatchMode.IN,\n };\n }\n\n // Form the \"toPopulate\" array.\n if (fieldMetadata.type === \"relation\" && fieldMetadata?.relationType === 'many-to-one') {\n if (!toPopulate.includes(fieldMetadata.name)) {\n toPopulate.push(fieldMetadata.name);\n }\n }\n if (\n fieldMetadata.type === \"mediaSingle\" ||\n fieldMetadata.type === \"mediaMultiple\"\n ) {\n if (!toPopulateMedia.includes(fieldMetadata.name)) {\n toPopulateMedia.push(fieldMetadata.name);\n }\n }\n }\n }\n const populate = toPopulate;\n const populateMedia = toPopulateMedia;\n const rows = currentLayout?.attrs?.defaultPageSize ?? 25;\n const sortField = \"id\";\n const sortOrder: 1 | -1 = -1;\n return { sortField, sortOrder, rows, populate, populateMedia };\n };\n\n\n\n // Set the initial filter state based on the metadata.\n useEffect(() => {\n // refetch();\n if (solidListViewInitialMetaData) {\n if (params.customLayout) {\n setSolidListViewLayout(params.customLayout);\n } else {\n setSolidListViewLayout(solidListViewInitialMetaData?.data.solidView.layout);\n }\n setSolidListViewMetaData(solidListViewInitialMetaData);\n setIsDraftPublishWorkflowEnabled(solidListViewInitialMetaData?.data?.solidView?.model?.draftPublishWorkflow === true);\n }\n }, [solidListViewInitialMetaData]);\n\n\n // set layout and actions for create and edit buttons and view modes\n useEffect(() => {\n if (solidListViewLayout) {\n const listLayoutAttrs = solidListViewLayout.attrs;\n const createActionUrl = listLayoutAttrs?.createAction && listLayoutAttrs?.createAction?.type === \"custom\" ? listLayoutAttrs?.createAction?.customComponent : \"form/new\";\n const editActionUrl = listLayoutAttrs?.editAction && listLayoutAttrs?.editAction?.type === \"custom\" ? listLayoutAttrs?.editAction?.customComponent : \"form\";\n\n if (listLayoutAttrs?.createAction) {\n setCreateActionQueryParams({\n actionName: listLayoutAttrs.createAction.name,\n actionType: listLayoutAttrs.createAction.type,\n actionContext: listLayoutAttrs.createAction.context,\n });\n }\n if (listLayoutAttrs?.editAction) {\n setEditActionQueryParams({\n actionName: listLayoutAttrs.editAction.name,\n actionType: listLayoutAttrs.editAction.type,\n actionContext: listLayoutAttrs.editAction.context,\n });\n }\n\n // const viewModes = listLayoutAttrs?.allowedViews && listLayoutAttrs?.allowedViews.length > 0 && listLayoutAttrs?.allowedViews.map((view: any) => { return { label: capitalize(view), value: view }; });\n setViewModes(solidListViewInitialMetaData?.data?.viewModes);\n if (createActionUrl) {\n setCreateButtonUrl(createActionUrl);\n }\n if (editActionUrl) {\n setEditButtonUrl(editActionUrl);\n }\n }\n }, [solidListViewLayout]);\n\n\n\n const sizeOptions = [\n { label: \"Compact\", value: \"small\", image: CompactImage },\n { label: \"Cozy\", value: \"normal\", image: CozyImage },\n { label: \"Comfortable\", value: \"large\", image: ComfortableImage },\n ];\n\n // const viewModes = [\n // { label: 'List ', value: 'list', image: ListImage },\n // { label: 'Kanban', value: 'kanban', image: KanbanImage },\n // ]\n\n const [size, setSize] = useState<string | any>(sizeOptions[1].value);\n const [viewModes, setViewModes] = useState<any>([]);\n\n // Custom Row Action\n const [listViewRowActionPopupState, setListViewRowActionPopupState] = useState(false);\n const [listViewRowActionData, setListRowActionData] = useState<any>();\n\n // Get the list view data.\n const [triggerGetSolidEntities, { data: solidEntityListViewData, isLoading, error },] = useLazyGetSolidEntitiesQuery();\n\n const [\n triggerRecoverSolidEntitiesById,\n {\n data: recoverByIdData,\n isLoading: recoverByIdIsLoading,\n error: recoverByIdError,\n isError: recoverByIdIsError,\n isSuccess: recoverByIdIsSuccess,\n },\n ] = useLazyRecoverSolidEntityByIdQuery();\n\n const [\n triggerRecoverSolidEntities,\n {\n data: recoverByData,\n isLoading: recoverByIsLoading,\n error: recoverError,\n isError: recoverIsError,\n isSuccess: recoverByIsSuccess,\n },\n ] = useRecoverSolidEntityMutation();\n\n // After data is fetched populate the list view state so as to be able to render the data.\n useEffect(() => {\n if (solidEntityListViewData) {\n setLoading(true);\n const cleanedRecords = solidEntityListViewData.records.map((record: any) => {\n const newRecord = { ...record };\n\n Object.entries(newRecord).forEach(([key, value]) => {\n if (typeof value === \"string\") {\n try {\n const parsed = JSON.parse(value);\n if (Array.isArray(parsed)) {\n newRecord[key] = parsed.join(\", \");\n }\n } catch {\n // If not valid JSON array, optionally strip brackets/quotes\n if (/^\\[.*\\]$/.test(value)) {\n newRecord[key] = value.replace(/[\\[\\]\"]+/g, \"\");\n }\n }\n }\n });\n\n return newRecord;\n });\n setListViewData(cleanedRecords);\n // setListViewData(solidEntityListViewData?.records);\n setTotalRecords(solidEntityListViewData?.meta.totalRecords);\n setLoading(false);\n }\n }, [solidEntityListViewData]);\n\n const [\n deleteSolidSingleEntiry,\n { isSuccess: isDeleteSolidSingleEntitySuccess },\n ] = useDeleteSolidEntityMutation();\n\n // Delete mutation\n const [\n deleteManySolidEntities,\n {\n isLoading: isSolidEntitiesDeleted,\n isSuccess: isDeleteSolidEntitiesSucess,\n isError: isSolidEntitiesDeleteError,\n error: SolidEntitiesDeleteError,\n data: DeletedSolidEntities,\n },\n ] = useDeleteMultipleSolidEntitiesMutation();\n\n // Fetch data after toPopulate has been populated...\n useEffect(() => {\n setQueryDataLoaded(false)\n if (solidListViewMetaData && solidListViewLayout) {\n const queryObject = getFilterObjectFromLocalStorage();\n\n if (queryObject) {\n suppressNextFilterPaginationResetRef.current = true;\n const queryData = {\n offset: queryObject.offset || 0,\n limit: queryObject.limit || 25,\n populate: queryObject.populate,\n populateMedia: queryObject.populateMedia,\n sort: queryObject.sort,\n filters: queryObject.filters,\n };\n\n setRows(Number(queryData.limit));\n setFirst(Number(queryData?.offset));\n let restoredSortField = \"id\";\n let restoredSortOrder: 1 | -1 | 0 = -1;\n if (Array.isArray(queryData.sort) && queryData.sort.length > 0) {\n const [field, order] = String(queryData.sort[0]).split(\":\");\n restoredSortField = field || \"id\";\n restoredSortOrder = order === \"asc\" ? 1 : -1;\n } else if (queryObject.sortField) {\n restoredSortField = String(queryObject.sortField);\n restoredSortOrder = queryObject.sortOrder === 1 || queryObject.sortOrder === -1 ? queryObject.sortOrder : -1;\n }\n setSortField(restoredSortField);\n setSortOrder(restoredSortOrder);\n const { populate, populateMedia } = initialFilterMethod();\n setToPopulate(populate);\n setToPopulateMedia(populateMedia);\n } else {\n const { sortField, sortOrder, rows, populate, populateMedia } = initialFilterMethod();\n setRows(rows);\n setSortField(sortField);\n setSortOrder(sortOrder);\n setToPopulate(populate);\n setToPopulateMedia(populateMedia);\n setFirst(0);\n }\n //below line was added to handle state stale issue when we converted boilerplate to vite \n //since now we dont need it becuase our component is remounted on every router change\n if (params.embeded === true || solidListViewLayout?.attrs?.enableGlobalSearch === false) {\n setFilters(params.customFilter || { $and: [] });\n setFilterPredicates(null);\n }\n setSelectedRecords([]);\n setSelectedRecoverRecords([]);\n setQueryDataLoaded(true);\n }\n }, [\n isDeleteSolidEntitiesSucess,\n isDeleteSolidSingleEntitySuccess,\n recoverByIdIsSuccess,\n recoverByIsSuccess,\n solidListViewMetaData,\n solidListViewLayout\n ]);\n\n useEffect(() => {\n if (solidListViewMetaData && solidListViewMetaData?.data && !loading) {\n const handleDynamicFunction = async () => {\n const dynamicHeader = solidListViewMetaData?.data?.solidView?.layout?.onListLoad;\n let dynamicExtensionFunction = null;\n let listViewRecords = listViewData;\n let listLayout = solidListViewMetaData?.data?.solidView?.layout;\n if (params.customLayout) {\n listLayout = params.customLayout;\n }\n const event: SolidLoadList = {\n fieldsMetadata: solidListViewMetaData?.data?.solidFieldsMetadata,\n listData: listViewData,\n totalRecords: totalRecords,\n type: \"onListLoad\",\n viewMetadata: solidListViewMetaData?.data?.solidView,\n listViewLayout: listLayout,\n queryParams: {\n menuItemId: menuItemId,\n menuItemName: menuItemName,\n actionId: actionId,\n actionName: actionName,\n },\n user: user,\n session: session.data,\n params: params\n };\n\n if (dynamicHeader) {\n dynamicExtensionFunction = getExtensionFunction(dynamicHeader);\n if (dynamicExtensionFunction) {\n const updatedListData: SolidListUiEventResponse = await dynamicExtensionFunction(event);\n\n if (updatedListData && updatedListData?.dataChanged && updatedListData?.newListData) {\n listViewRecords = updatedListData.newListData;\n }\n if (updatedListData && updatedListData?.layoutChanged && updatedListData?.newLayout) {\n listLayout = updatedListData.newLayout;\n }\n }\n if (listViewRecords) {\n setListViewData(listViewRecords);\n }\n if (listLayout) {\n setSolidListViewLayout(listLayout);\n }\n }\n };\n handleDynamicFunction();\n }\n }, [solidListViewMetaData, loading]);\n\n\n\n // Create a ref that always has the latest filters\n const latestFiltersRef = useRef<any>(filters);\n const latestFilterPredicatesRef = useRef<any>(filterPredicates);\n const latestSortFieldRef = useRef<string>(sortField);\n const latestSortOrderRef = useRef<1 | -1 | 0>(sortOrder);\n\n useEffect(() => {\n latestSortFieldRef.current = sortField;\n }, [sortField]);\n\n useEffect(() => {\n latestSortOrderRef.current = sortOrder;\n }, [sortOrder]);\n\n // Keep refs in sync\n useEffect(() => {\n latestFiltersRef.current = filters;\n }, [filters]);\n\n useEffect(() => {\n latestFilterPredicatesRef.current = filterPredicates;\n }, [filterPredicates]);\n\n\n useEffect(() => {\n if (queryDataLoaded && filters && (filterPredicates || params.embeded == true)) {\n setQueryString();\n }\n }, [\n first,\n rows,\n sortField,\n sortOrder,\n showArchived,\n toPopulate,\n toPopulateMedia,\n queryDataLoaded,\n filters,\n filterPredicates\n ]);\n\n // Handle pagination event.\n const onPageChange = (event: any) => {\n setFirst(event.first);\n setRows(event.rows);\n };\n\n // Handle sort event.\n // const onSort = (event: DataTableStateEvent) => {\n // const { sortField, sortOrder } = event;\n // const validSortOrder = sortOrder === 1 || sortOrder === -1 ? sortOrder : 0;\n // setSortField(sortField);\n // setSortOrder(validSortOrder);\n // setFirst(0);\n\n // };\n\n const onSort = (event: DataTableStateEvent) => {\n const nextSortField = event.sortField ? String(event.sortField) : \"\";\n const nextSortOrder = event.sortOrder === 1 || event.sortOrder === -1 ? event.sortOrder : 0;\n setSortField(nextSortField);\n setSortOrder(nextSortOrder);\n setFirst(0);\n };\n\n // handle change in the records which are currently selected...\n const onSelectionChange = (event: any) => {\n const value = event.value;\n const activeRecords = value.filter(\n (record: any) => record.deletedAt === null\n );\n const deletedRecords = value.filter(\n (record: any) => record.deletedAt !== null\n );\n\n setSelectedRecords(activeRecords);\n setSelectedRecoverRecords(deletedRecords);\n };\n\n\n\n const setQueryString = async () => {\n const solidFieldsMetadata =\n solidListViewMetaData?.data?.solidFieldsMetadata;\n\n let queryData: any = {\n offset: first,\n limit: rows,\n filters: latestFiltersRef.current ?? latestFiltersRef.current,\n populate: toPopulate,\n populateMedia: toPopulateMedia,\n locale: localeName ? localeName : \"en\",\n };\n\n\n\n const currentSortField = latestSortFieldRef.current;\n const currentSortOrder = latestSortOrderRef.current;\n if (currentSortField && (currentSortOrder === 1 || currentSortOrder === -1)) {\n const meta = solidFieldsMetadata?.[currentSortField];\n let resolvedField = currentSortField;\n if (meta?.type === \"relation\" && meta?.relationType === \"many-to-one\") {\n resolvedField = `${currentSortField}.${meta?.relationModel?.userKeyField?.name}`;\n }\n queryData.sort = [`${resolvedField}:${currentSortOrder === 1 ? \"asc\" : \"desc\"}`];\n } else {\n queryData.sort = [`id:desc`];\n }\n\n\n if (showArchived) {\n queryData.showSoftDeleted = \"inclusive\";\n }\n\n // SolidBeforeListDataLoad Event that allows filter modification just before api call \n const dynamicHeader = solidListViewMetaData?.data?.solidView?.layout?.onBeforeListDataLoad;\n let dynamicExtensionFunction = null;\n const event: SolidBeforeListDataLoad = {\n type: \"onBeforeListDataLoad\",\n fieldsMetadata: solidListViewMetaData?.data?.solidFieldsMetadata,\n viewMetadata: solidListViewMetaData?.data?.solidView,\n listViewLayout: solidListViewMetaData?.data.solidView.layout,\n filter: structuredClone(queryData),\n queryParams: {\n menuItemId: menuItemId,\n menuItemName: menuItemName,\n actionId: actionId,\n actionName: actionName,\n },\n user: user,\n session: session.data,\n params: params\n };\n\n if (dynamicHeader) {\n dynamicExtensionFunction = getExtensionFunction(dynamicHeader);\n if (dynamicExtensionFunction) {\n try {\n const updatedListData: SolidListUiEventResponse = await dynamicExtensionFunction(event);\n if (updatedListData && updatedListData?.filterApplied && updatedListData?.newFilter) {\n queryData = updatedListData?.newFilter;\n }\n } catch (err) {\n console.error(\"Error executing onBeforeListDataLoad extension:\", err);\n }\n }\n }\n\n const queryString = qs.stringify(queryData, { encodeValuesOnly: true });\n\n if (latestFilterPredicatesRef.current) {\n const fileterTobeStored = structuredClone(queryData);\n fileterTobeStored.finalFullFilter = fileterTobeStored.filters;\n delete fileterTobeStored.filters;\n fileterTobeStored.custom_filter_predicate = latestFilterPredicatesRef.current.custom_filter_predicate || null;\n fileterTobeStored.search_predicate = latestFilterPredicatesRef.current.search_predicate || null;\n fileterTobeStored.saved_filter_predicate = latestFilterPredicatesRef.current.saved_filter_predicate || null;\n fileterTobeStored.predefined_search_predicate = latestFilterPredicatesRef.current.predefined_search_predicate || null;\n setFilterObjectToLocalStorage(fileterTobeStored);\n }\n triggerGetSolidEntities(queryString);\n };\n\n // handle filter...\n const handleApplyCustomFilter = (filterPredicates: any, persistFilter: boolean = false) => {\n // we assume that the customfilter will always have $and array\n const queryfilter = structuredClone(params.customFilter) || { $and: [] }\n\n if (filterPredicates.custom_filter_predicate) {\n queryfilter.$and.push(filterPredicates.custom_filter_predicate);\n }\n if (filterPredicates.search_predicate) {\n queryfilter.$and.push(filterPredicates.search_predicate);\n }\n if (filterPredicates.saved_filter_predicate) {\n queryfilter.$and.push(filterPredicates.saved_filter_predicate);\n }\n if (filterPredicates.predefined_search_predicate) {\n queryfilter.$and.push(filterPredicates.predefined_search_predicate);\n }\n const updatedFilter = queryfilter;\n\n const previousPredicates = latestFilterPredicatesRef.current;\n const nextPredicatesComparable = {\n custom_filter_predicate: filterPredicates?.custom_filter_predicate || null,\n search_predicate: filterPredicates?.search_predicate || null,\n saved_filter_predicate: filterPredicates?.saved_filter_predicate || null,\n predefined_search_predicate: filterPredicates?.predefined_search_predicate || null,\n };\n const previousPredicatesComparable = {\n custom_filter_predicate: previousPredicates?.custom_filter_predicate || null,\n search_predicate: previousPredicates?.search_predicate || null,\n saved_filter_predicate: previousPredicates?.saved_filter_predicate || null,\n predefined_search_predicate: previousPredicates?.predefined_search_predicate || null,\n };\n const hasPredicateChanged =\n JSON.stringify(previousPredicatesComparable) !== JSON.stringify(nextPredicatesComparable);\n\n // Update refs IMMEDIATELY (synchronously)\n latestFiltersRef.current = updatedFilter;\n const updatedFilterPredicates = structuredClone(filterPredicates);\n updatedFilterPredicates.persistFilter = persistFilter;\n latestFilterPredicatesRef.current = updatedFilterPredicates;\n\n // Then update state\n setFilters(updatedFilter);\n setFilterPredicates(updatedFilterPredicates);\n const hasMeaningfulFilterValueLocal = (value: any): boolean => {\n if (value === null || value === undefined) return false;\n if (typeof value === \"string\") return value.trim().length > 0;\n if (typeof value === \"number\" || typeof value === \"boolean\") return true;\n if (Array.isArray(value)) return value.some((item) => hasMeaningfulFilterValueLocal(item));\n if (typeof value === \"object\") return hasAppliedFiltersLocal(value);\n return false;\n };\n\n const hasAppliedFiltersLocal = (filterObject: any): boolean => {\n if (!filterObject || typeof filterObject !== \"object\") return false;\n\n if (Array.isArray(filterObject)) {\n return filterObject.some((item) => hasAppliedFiltersLocal(item) || hasMeaningfulFilterValueLocal(item));\n }\n\n return Object.entries(filterObject).some(([key, val]) => {\n if (key === \"matchMode\" || key === \"operator\") return false;\n if (key === \"value\") return hasMeaningfulFilterValueLocal(val);\n if ((key === \"$and\" || key === \"$or\") && Array.isArray(val)) {\n return val.some((item) => hasAppliedFiltersLocal(item) || hasMeaningfulFilterValueLocal(item));\n }\n if (typeof val === \"object\") return hasAppliedFiltersLocal(val);\n return hasMeaningfulFilterValueLocal(val);\n });\n };\n\n const hasCurrentMeaningfulPredicates =\n hasAppliedFiltersLocal(updatedFilterPredicates?.custom_filter_predicate) ||\n hasAppliedFiltersLocal(updatedFilterPredicates?.search_predicate) ||\n hasAppliedFiltersLocal(updatedFilterPredicates?.saved_filter_predicate) ||\n hasAppliedFiltersLocal(updatedFilterPredicates?.predefined_search_predicate);\n\n const hasPreviousMeaningfulPredicates =\n hasAppliedFiltersLocal(previousPredicates?.custom_filter_predicate) ||\n hasAppliedFiltersLocal(previousPredicates?.search_predicate) ||\n hasAppliedFiltersLocal(previousPredicates?.saved_filter_predicate) ||\n hasAppliedFiltersLocal(previousPredicates?.predefined_search_predicate);\n\n const shouldResetPagination =\n hasPredicateChanged && (hasCurrentMeaningfulPredicates || hasPreviousMeaningfulPredicates);\n\n if (suppressNextFilterPaginationResetRef.current) {\n suppressNextFilterPaginationResetRef.current = false;\n } else if (shouldResetPagination) {\n setFirst(0);\n }\n // Force synchronous state updates\n };\n\n // clear Filter\n const clearFilter = () => {\n if (solidListViewMetaData) {\n const { sortField, sortOrder, rows, populate, populateMedia } = initialFilterMethod();\n setRows(rows);\n setSortField(sortField);\n setSortOrder(sortOrder);\n setToPopulate(populate);\n setToPopulateMedia(populateMedia);\n }\n latestFiltersRef.current = {\n $and: []\n };\n\n\n setFilters(params.customFilter || { $and: [] })\n solidGlobalSearchElementRef?.current.clearFilter();\n };\n\n const cloneListData = () => {\n if (typeof structuredClone === \"function\") {\n return structuredClone(listViewData);\n }\n return JSON.parse(JSON.stringify(listViewData));\n };\n\n useImperativeHandle(ref, () => ({\n refresh: () => {\n void setQueryString();\n },\n clearFilters: () => {\n clearFilter();\n },\n applyFilter: (filter) => {\n handleApplyCustomFilter(filter);\n },\n setPagination: (nextFirst, nextRows) => {\n setFirst(nextFirst);\n setRows(nextRows);\n },\n setSort: (nextSortField, nextSortOrder) => {\n setSortField(nextSortField);\n setSortOrder(nextSortOrder);\n setFirst(0);\n },\n setShowArchived: (value) => {\n setShowArchived(value);\n },\n getState: () => ({\n first,\n rows,\n sortField,\n sortOrder,\n showArchived,\n filters,\n filterPredicates,\n listData: cloneListData(),\n totalRecords,\n loading,\n }),\n }), [\n first,\n rows,\n sortField,\n sortOrder,\n showArchived,\n filters,\n filterPredicates,\n totalRecords,\n loading,\n listViewData,\n ]);\n\n const [selectedSolidViewData, setSelectedSolidViewData] = useState<any>();\n const selectedDataRef = useRef<any>();\n const [deleteEntity, setDeleteEntity] = useState(false);\n\n // Recover functions\n const recoverById = (id: any) => {\n triggerRecoverSolidEntitiesById(id);\n };\n\n const recoverAll = () => {\n let recoverList: any = [];\n selectedRecoverRecords.forEach((element: any) => {\n recoverList.push(element.id);\n });\n triggerRecoverSolidEntities(recoverList);\n setRecoverDialogVisible(false);\n };\n\n useEffect(() => {\n if (recoverByIdIsSuccess && recoverByIdData) {\n dispatch(showToast({ severity: \"success\", summary: \"Success\", detail: recoverByIdData.data.message, life: 3000 }));\n return;\n }\n if (recoverByIdIsError && recoverByIdError) {\n showError(recoverByIdError);\n return;\n }\n\n if (recoverIsError && recoverError) {\n showError(recoverError);\n }\n }, [recoverByIdIsSuccess, recoverByIdData, recoverByIdIsError, recoverByIdError, recoverIsError, recoverError]);\n\n const showError = async (error: any) => {\n const errorMessages = error?.data?.message;\n const messages = Array.isArray(errorMessages)\n ? errorMessages\n : errorMessages\n ? [errorMessages]\n : [];\n if (messages.length > 0) {\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.SEND_REPORT, detail: messages.join(', ') }));\n }\n };\n\n const showFieldError = async (error: any) => {\n if (error) {\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.SEND_REPORT, detail: String(error), life: 3000 }));\n }\n };\n\n // handle bulk deletion\n const deleteBulk = () => {\n let deleteList: any = [];\n selectedRecords.forEach((element: any) => {\n deleteList.push(element.id);\n });\n deleteManySolidEntities(deleteList)\n .unwrap()\n .then(() => {\n dispatch(showToast({ severity: 'success', summary: 'Deleted', detail: ERROR_MESSAGES.RECORD_DELETE, life: 3000 }));\n setDialogVisible(false);\n })\n .catch((error) => {\n dispatch(showToast({ severity: 'error', summary: 'Delete Failed', detail: error?.data?.message, life: 4000 }));\n });\n };\n\n // handle closing of the delete dialog...\n const onDeleteClose = () => {\n setDialogVisible(false);\n setSelectedRecords([]);\n setSelectedRecoverRecords([]);\n };\n\n const entityDisplayName =\n solidListViewMetaData?.data?.solidView?.model?.displayName || params?.modelName;\n\n const [openLightbox, setOpenLightbox] = useState(false);\n const [lightboxUrls, setLightboxUrls] = useState<any[]>([]);\n\n // Render columns dynamically based on metadata\n const renderColumnsDynamically = (solidListViewMetaData: any, solidListViewLayout: any) => {\n if (!solidListViewMetaData) {\n return;\n }\n if (!solidListViewMetaData.data) {\n return;\n }\n const solidView = solidListViewMetaData.data.solidView;\n const solidFieldsMetadata = solidListViewMetaData.data.solidFieldsMetadata;\n if (!solidView || !solidFieldsMetadata) {\n return;\n }\n const currentLayout = solidListViewLayout;\n\n return currentLayout.children?.map((column: any) => {\n const fieldMetadata = solidFieldsMetadata[column.attrs.name];\n if (!fieldMetadata) {\n return;\n }\n const visibleToRole = column?.attrs?.roles || [];\n\n if (visibleToRole.length > 0) {\n if (hasAnyRole(user?.roles, visibleToRole)) {\n return SolidListViewColumn({\n solidListViewMetaData,\n fieldMetadata,\n column,\n setLightboxUrls,\n setOpenLightbox,\n });\n } else {\n return null;\n }\n } else {\n return SolidListViewColumn({\n solidListViewMetaData,\n fieldMetadata,\n column,\n setLightboxUrls,\n setOpenLightbox,\n });\n }\n });\n };\n\n //Note - Custom Row Action Popup\n const closeListViewRowActionPopup = () => {\n setListViewRowActionPopupState(false);\n };\n\n // if (loading || isLoading) {\n // return <SolidListViewShimmerLoading />;\n // }\n\n const viewMode = searchParams.get(\"viewMode\");\n\n // if (\n // (loading || isLoading) && params.embeded == false && viewMode !== \"view\"\n // ) {\n // return <SolidListViewShimmerLoading />;\n // }\n\n const hasMeaningfulFilterValue = (value: any): boolean => {\n if (value === null || value === undefined) return false;\n if (typeof value === \"string\") return value.trim().length > 0;\n if (typeof value === \"number\" || typeof value === \"boolean\") return true;\n if (Array.isArray(value)) return value.some((item) => hasMeaningfulFilterValue(item));\n if (typeof value === \"object\") return hasAppliedFilters(value);\n return false;\n };\n\n const hasAppliedFilters = (filterObject: any): boolean => {\n if (!filterObject || typeof filterObject !== \"object\") return false;\n\n if (Array.isArray(filterObject)) {\n return filterObject.some((item) => hasAppliedFilters(item) || hasMeaningfulFilterValue(item));\n }\n\n return Object.entries(filterObject).some(([key, val]) => {\n if (key === \"matchMode\" || key === \"operator\") return false;\n if (key === \"value\") return hasMeaningfulFilterValue(val);\n if ((key === \"$and\" || key === \"$or\") && Array.isArray(val)) {\n return val.some((item) => hasAppliedFilters(item) || hasMeaningfulFilterValue(item));\n }\n if (typeof val === \"object\") return hasAppliedFilters(val);\n return hasMeaningfulFilterValue(val);\n });\n };\n\n const hasFilterPredicatesApplied =\n hasAppliedFilters(filterPredicates?.custom_filter_predicate) ||\n hasAppliedFilters(filterPredicates?.search_predicate) ||\n hasAppliedFilters(filterPredicates?.saved_filter_predicate) ||\n hasAppliedFilters(filterPredicates?.predefined_search_predicate);\n\n const hasAppliedFilterValues = hasAppliedFilters(filters);\n\n const isListViewEmptyWithoutFilters =\n !loading &&\n !isLoading &&\n listViewData.length === 0 &&\n !hasAppliedFilterValues &&\n !hasFilterPredicatesApplied;\n\n const headerRequestStatusLabel =\n isSolidEntitiesDeleted\n ? \"Deleting...\"\n : recoverByIdIsLoading || recoverByIsLoading\n ? \"Recovering...\"\n : loading || isLoading || solidListViewMetaDataIsLoading || !queryDataLoaded\n ? \"Loading...\"\n : null;\n\n const showListBodyLoadingPlaceholder =\n (loading || isLoading || solidListViewMetaDataIsLoading || !queryDataLoaded) &&\n listViewData.length === 0 &&\n params.embeded === false &&\n viewMode !== \"view\";\n\n // useEffect(() => {\n // console.log(\"[SolidListView] Re-rendering list view with empty-state inputs:\", {\n // loading,\n // isLoading,\n // listViewDataLength: listViewData.length,\n // hasAppliedFilterValues,\n // hasFilterPredicatesApplied,\n // isListViewEmptyWithoutFilters,\n // viewMode,\n // filters,\n // filterPredicates,\n // });\n // }, [\n // loading,\n // isLoading,\n // listViewData.length,\n // hasAppliedFilterValues,\n // hasFilterPredicatesApplied,\n // isListViewEmptyWithoutFilters,\n // viewMode,\n // filters,\n // filterPredicates,\n // ]);\n\n // if (isListViewEmptyWithoutFilters) {\n // return (\n // <SolidEmptyListViewPlaceholder\n // createButtonUrl={createButtonUrl}\n // actionsAllowed={actionsAllowed}\n // params={params}\n // solidListViewMetaData={solidListViewMetaData}\n // />\n // );\n // }\n\n const handleFetchUpdatedRecords = () => {\n setQueryString();\n };\n\n const handleDeleteEntity = async () => {\n try {\n if (!selectedSolidViewData?.id) {\n throw new Error(ERROR_MESSAGES.NO_ENTITY_SELECTED);\n }\n\n const response: any = await deleteSolidSingleEntiry(selectedSolidViewData.id);\n\n if (response?.data?.statusCode === 200) {\n setDeleteEntity(false);\n dispatch(showToast({ severity: \"success\", summary: ERROR_MESSAGES.DELETED, detail: ERROR_MESSAGES.ENTITY_DELETE, life: 3000 }));\n } else {\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.DELETE_FAIELD, detail: response?.error?.data?.error }));\n }\n } catch (error: any) {\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.DELETE_FAIELD, detail: ERROR_MESSAGES.SOMETHING_WRONG }));\n }\n };\n\n const lightboxSlides: SolidLightboxSlide[] = Array.isArray(lightboxUrls)\n ? lightboxUrls\n .map((item: any) => {\n const src = item?.src || item?.downloadUrl || \"\";\n if (!src) {\n return null;\n }\n const mediaType = getMediaTypeFromUrl(src);\n const slide: SolidLightboxSlide = { src };\n if (mediaType !== \"image\") {\n slide.type = mediaType;\n }\n return slide;\n })\n .filter((slide): slide is SolidLightboxSlide => !!slide)\n : [];\n\n const hasEditInContextMenu = actionsAllowed.includes(`${permissionExpression(params.modelName, 'update')}`) &&\n solidListViewLayout?.attrs?.edit !== false &&\n solidListViewLayout?.attrs?.showDefaultEditButton !== false &&\n solidListViewLayout?.attrs?.showRowEditInContextMenu !== false &&\n !(isDraftPublishWorkflowEnabled && selectedDataRef.current?.publishedAt);\n\n const hasDeleteInContextMenu = actionsAllowed.includes(`${permissionExpression(params.modelName, 'delete')}`) &&\n solidListViewLayout?.attrs?.delete !== false &&\n solidListViewLayout?.attrs?.showRowDeleteInContextMenu !== false &&\n !(isDraftPublishWorkflowEnabled && selectedDataRef.current?.publishedAt);\n\n const hasCustomContextMenuButtons =\n solidListViewLayout?.attrs?.rowButtons?.some(\n (rb: any) => rb?.attrs?.actionInContextMenu === true\n );\n\n const hasAnyContextMenuActions =\n hasEditInContextMenu || hasDeleteInContextMenu || hasCustomContextMenuButtons;\n\n const toggleBothSidebars = () => {\n if (visibleNavbar) {\n dispatch(toggleNavbar()); // close both\n } else {\n dispatch(showNavbar()); // open both\n }\n };\n return (\n <div className=\"page-parent-wrapper solid-list-page-wrapper flex h-full min-h-0 overflow-hidden\">\n <div className={`solid-list-content h-full flex flex-column flex-grow-1 ${styles.ListContentWrapper}`}>\n <div className=\"solid-list-surface flex flex-column flex-1 min-h-0\">\n {solidListViewInitialMetaData &&\n <div className=\"page-header solid-list-toolbar flex-column lg:flex-row\">\n {/* <div> */}\n <div className=\"flex justify-content-between w-full\">\n <div className=\"flex gap-3 align-items-center w-full solid-list-toolbar-left\">\n <div className='flex align-items-center gap-2'>\n {params.embeded !== true &&\n <div className=\"apps-icon block md:hidden cursor-pointer\" onClick={toggleBothSidebars}>\n <LayoutGrid size={18} />\n </div>\n }\n <p className=\"m-0 view-title solid-text-wrapper\">\n {solidListViewMetaData?.data?.solidView?.action?.displayName || solidListViewMetaData?.data?.solidView?.displayName}\n </p>\n </div>\n {params.embeded === false && (\n <div className=\"hidden lg:flex\">\n {/* Keep global search mounted for now because list bootstrap/filter hydration still flows through this element. */}\n <SolidGlobalSearchElement\n key={params.modelName}\n viewType=\"list\"\n showSaveFilterPopup={showSaveFilterPopup}\n setShowSaveFilterPopup={setShowSaveFilterPopup}\n ref={solidGlobalSearchElementRef}\n viewData={solidListViewMetaData}\n handleApplyCustomFilter={handleApplyCustomFilter}\n filterPredicates={filterPredicates}\n >\n </SolidGlobalSearchElement>\n </div>\n )}\n\n </div>\n <div className=\"flex align-items-center solid-header-buttons-wrapper solid-list-toolbar-actions\">\n <SolidHeaderRequestStatus label={headerRequestStatusLabel} />\n {params.embeded === false && (\n <div className=\"flex lg:hidden\">\n <SolidButton\n type=\"button\"\n size=\"small\"\n variant=\"outline\"\n className=\"solid-icon-button\"\n onClick={() => setShowGlobalSearchElement(!showGlobalSearchElement)}\n leftIcon={<Search size={14} />}\n />\n </div>\n )}\n\n <div className=\"hidden lg:flex align-items-center solid-header-buttons-wrapper\">\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={solidListViewMetaData}\n handleCustomButtonClick={handleCustomButtonClick}\n selectedRecords={selectedRecords}\n filters={filters}\n />\n ))}\n </div>\n\n {actionsAllowed.includes(`${permissionExpression(params.modelName, 'create')}`) &&\n solidListViewLayout?.attrs?.create !== false &&\n params.embeded !== true &&\n solidListViewMetaData?.data?.solidView?.layout?.attrs\n .showDefaultAddButton !== false && (\n <SolidCreateButton\n createButtonUrl={createButtonUrl}\n createActionQueryParams={createActionQueryParams}\n solidListViewLayout={solidListViewLayout}\n responsiveIconOnly={true}\n />\n )}\n {actionsAllowed.includes(`${permissionExpression(params.modelName, 'create')}`) &&\n solidListViewLayout?.attrs?.create !== false &&\n params.embeded == true &&\n params.inlineCreate == true &&\n searchParams.get(\"viewMode\") !== \"view\" && (\n\n <SolidButton\n type=\"button\"\n icon={solidListViewLayout?.attrs?.addButtonIcon}\n leftIcon={!solidListViewLayout?.attrs?.addButtonIcon ? <Plus size={14} /> : undefined}\n className={`${solidListViewLayout?.attrs?.addButtonClassName}`}\n size=\"small\"\n onClick={() => params.handleAddClickForEmbeddedView(\"new\")}\n >\n {solidListViewLayout?.attrs?.addButtonTitle ? solidListViewLayout?.attrs?.addButtonTitle : \"Add\"}\n </SolidButton>\n )}\n {/* Button For Manual Refresh */}\n {params.embeded !== true && (\n <SolidButton\n type=\"button\"\n size=\"small\"\n variant=\"outline\"\n className=\"solid-icon-button \"\n onClick={() => {\n setQueryString();\n }}\n leftIcon={<RefreshCw size={14} />}\n />\n )}\n {showArchived && (\n <SolidButton\n type=\"button\"\n size=\"small\"\n variant=\"secondary\"\n className=\"hidden lg:flex\"\n onClick={() => setRecoverDialogVisible(true)}\n leftIcon={<RotateCcw size={14} />}\n >\n Recover\n </SolidButton>\n )}\n\n {params.embeded === false &&\n solidListViewLayout?.attrs?.configureView !== false && (\n <SolidListViewConfigure\n listViewMetaData={solidListViewMetaData}\n solidListViewLayout={solidListViewLayout}\n setShowArchived={setShowArchived}\n showArchived={showArchived}\n viewData={solidListViewMetaData}\n sizeOptions={sizeOptions}\n setSize={setSize}\n size={size}\n viewModes={viewModes}\n params={params}\n actionsAllowed={actionsAllowed}\n selectedRecords={selectedRecords}\n setDialogVisible={setDialogVisible}\n setShowSaveFilterPopup={setShowSaveFilterPopup}\n filters={filters}\n handleFetchUpdatedRecords={handleFetchUpdatedRecords}\n setRecoverDialogVisible={setRecoverDialogVisible}\n />\n )}\n </div>\n </div>\n {/* </div> */}\n {showGlobalSearchElement && params.embeded === false && (\n <div className=\"flex lg:hidden\">\n <SolidGlobalSearchElement\n viewType=\"list\"\n showSaveFilterPopup={showSaveFilterPopup}\n setShowSaveFilterPopup={setShowSaveFilterPopup}\n ref={solidGlobalSearchElementRef}\n viewData={solidListViewMetaData}\n handleApplyCustomFilter={handleApplyCustomFilter}\n filterPredicates={filterPredicates}\n >\n\n </SolidGlobalSearchElement>\n </div>\n\n )}\n </div>\n }\n\n {showListBodyLoadingPlaceholder ? (\n <div className=\"solid-view-loading-body-spacer flex-1 min-h-0\" />\n ) : (\n <>\n {isListViewEmptyWithoutFilters ? (\n <SolidEmptyListViewPlaceholder\n createButtonUrl={createButtonUrl}\n createActionQueryParams={createActionQueryParams}\n actionsAllowed={actionsAllowed}\n params={params}\n solidListViewMetaData={solidListViewMetaData}\n handleFetchUpdatedRecords={handleFetchUpdatedRecords}\n />\n\n ) : (\n <div\n className={`solid-datatable-wrapper solid-list-table-area flex-1 min-h-0 overflow-hidden ${styles.listTableArea}`}\n >\n <DataTable\n value={listViewData}\n viewportHeight={params.embeded === true ? undefined : \"calc(100dvh - 128px)\"}\n rowClassName={(rowData) => {\n return rowData.deletedAt ? \"greyed-out-row\" : \"\";\n }}\n showGridlines={false}\n lazy\n scrollable\n // scrollHeight=\"90vh\"\n size={size}\n resizableColumns\n columnResizeMode=\"expand\"\n paginator={true}\n rows={rows}\n rowsPerPageOptions={solidListViewLayout?.attrs?.pageSizeOptions}\n dataKey=\"id\"\n emptyMessage={\n solidListViewMetaData?.data?.solidView?.model?.description ||\n \"No Entities found\"\n }\n filterDisplay=\"menu\"\n totalRecords={totalRecords}\n first={first}\n onPage={onPageChange}\n onSort={(e: DataTableStateEvent) => onSort(e)}\n sortField={sortField || undefined}\n sortOrder={sortOrder}\n loading={false}\n // loading={loading || isLoading}\n selection={\n params.embeded === true\n ? []\n : [...selectedRecords, ...selectedRecoverRecords]\n }\n onSelectionChange={\n params.embeded === true ? undefined : onSelectionChange\n }\n selectionMode={params.embeded === true ? null : \"checkbox\"}\n removableSort={solidListViewLayout?.attrs?.removableSort ?? true}\n sortMode=\"single\"\n paginatorTemplate=\"RowsPerPageDropdown CurrentPageReport PrevPageLink NextPageLink\"\n currentPageReportTemplate=\"{first} - {last} of {totalRecords}\"\n onRowClick={(e) => {\n const rowData = e.data;\n\n if (solidListViewLayout?.attrs?.disableRowClick === true) return;\n\n const hasFindPermission = actionsAllowed.includes(\n permissionExpression(params.modelName, 'findOne')\n );\n const hasUpdatePermission =\n actionsAllowed.includes(permissionExpression(params.modelName, 'update')) &&\n solidListViewLayout?.attrs?.edit !== false;\n\n if (!(hasFindPermission || hasUpdatePermission)) return;\n\n if (params.embeded === true) {\n params.handleEditClickForEmbeddedView(rowData?.id);\n } else {\n if (typeof window !== \"undefined\") {\n // store a simple marker for the caller\n\n // also store the full current URL so Back can restore exact state (including action params)\n try {\n sessionStorage.setItem(\"fromView\", \"list\");\n sessionStorage.setItem(\"fromViewUrl\", window.location.pathname + window.location.search);\n } catch (e) {\n // ignore storage errors\n }\n }\n router.push(`${editBaseUrl}/${rowData?.id}?viewMode=view&${new URLSearchParams(editActionQueryParams).toString()}`);\n }\n }\n }\n >\n {params.embeded === true ? null : (\n <Column\n selectionMode=\"multiple\"\n headerStyle={{ width: \"3em\" }}\n />\n )}\n {solidListViewMetaData && solidListViewLayout && renderColumnsDynamically(solidListViewMetaData, solidListViewLayout)}\n {solidListViewLayout?.attrs?.rowButtons &&\n solidListViewLayout?.attrs?.rowButtons\n .filter((rb: any) => {\n const roles = rb?.attrs?.roles || [];\n const isInContextMenu =\n rb.attrs.actionInContextMenu === true;\n\n // Only check hasAnyRole if roles are provided\n const isAllowed =\n roles.length === 0 ||\n hasAnyRole(user?.roles, roles);\n\n const isVisible = rb?.attrs?.visible !== false;\n\n return !isInContextMenu && isAllowed && isVisible;\n })\n .map((button: any, index: number) => {\n\n return (\n <Column\n key={index}\n header={button.attrs.label}\n body={(rowData) => {\n return (\n <SolidButton\n type=\"button\"\n icon={button?.attrs?.icon}\n leftIcon={!button?.attrs?.icon ? <SquarePen size={14} /> : undefined}\n className={`solid-inline-row-button w-full text-left gap-2 ${button?.attrs?.className\n ? button?.attrs?.className\n : \"\"\n }`}\n size=\"small\"\n variant=\"ghost\"\n onClick={() => {\n const event = {\n params,\n rowData: rowData,\n solidListViewMetaData:\n solidListViewMetaData?.data,\n };\n handleCustomButtonClick(button.attrs, event);\n }}\n >\n {button.attrs.showLabel !== false\n ? button.attrs.label\n : \"\"}\n </SolidButton>\n );\n }}\n />\n );\n })}\n\n {actionsAllowed.includes(\n `${permissionExpression(params.modelName, 'update')}`\n ) &&\n solidListViewLayout?.attrs?.edit !== false &&\n solidListViewLayout?.attrs?.showRowEditInContextMenu ===\n false && (\n <Column\n header=\"Edit\"\n body={(rowData) => {\n const shouldHideEditOrDeleteButton = isDraftPublishWorkflowEnabled && rowData?.publishedAt;\n return (\n <>\n {!shouldHideEditOrDeleteButton && (\n <SolidButton\n type=\"button\"\n variant=\"ghost\"\n className=\"solid-inline-row-button solid-inline-row-button-icon\"\n size=\"small\"\n leftIcon={<Pencil size={14} />}\n onClick={() => {\n if (params.embeded == true) {\n params.handleEditClickForEmbeddedView(rowData?.id);\n } else {\n if (typeof window !== \"undefined\") {\n try {\n sessionStorage.setItem(\"fromView\", \"list\");\n sessionStorage.setItem(\"fromViewUrl\", window.location.pathname + window.location.search);\n } catch (e) { }\n }\n router.push(\n `${editBaseUrl}/${rowData?.id}?viewMode=edit&${new URLSearchParams(editActionQueryParams).toString()}`\n );\n }\n }}\n />\n )}\n </>\n );\n }}\n />\n )}\n\n {actionsAllowed.includes(\n `${permissionExpression(params.modelName, 'delete')}`\n ) &&\n solidListViewLayout?.attrs?.delete !== false &&\n (params.embeded ||\n (solidListViewLayout?.attrs?.showRowDeleteInContextMenu !== undefined &&\n solidListViewLayout?.attrs?.showRowDeleteInContextMenu !== true)\n )\n &&\n (\n <Column\n header=\"Delete\"\n body={(rowData) => {\n const shouldHideEditOrDeleteButton = isDraftPublishWorkflowEnabled && rowData?.publishedAt;\n return (\n <>\n {(!shouldHideEditOrDeleteButton) && (\n <SolidButton\n type=\"button\"\n className=\"solid-inline-row-button solid-inline-row-button-icon\"\n size=\"small\"\n variant=\"ghost\"\n leftIcon={<Trash2 size={14} />}\n onClick={() => {\n if (params?.embededFieldRelationType === \"many-to-many\") {\n params?.handleDeleteClick(rowData.id);\n } else {\n setSelectedSolidViewData(rowData);\n setDeleteEntity(true);\n }\n }}\n />\n )}\n </>\n );\n }}\n />\n )}\n\n {hasAnyContextMenuActions && (\n <Column\n frozen\n alignFrozen=\"right\"\n body={(rowData) =>\n rowData?.deletedAt ? (\n <a\n onClick={(event) => {\n event.stopPropagation();\n recoverById(rowData.id);\n }}\n className=\"retrieve-button solid-row-menu-trigger\"\n >\n <RotateCcw size={14} className={styles.retrieveIcon} />\n </a>\n ) : (\n <>\n {solidListViewLayout?.attrs?.showRowContextMenu !==\n false && (\n <div className=\"flex justify-content-end\" data-no-row-click=\"true\">\n <SolidListViewRowActionsMenu\n rowData={rowData}\n hasEditInContextMenu={hasEditInContextMenu}\n hasDeleteInContextMenu={hasDeleteInContextMenu}\n hasCustomContextMenuButtons={hasCustomContextMenuButtons}\n solidListViewLayout={solidListViewLayout}\n solidListViewMetaData={solidListViewMetaData}\n params={params}\n handleCustomButtonClick={handleCustomButtonClick}\n contentClassName={styles.rowActionsOverlay}\n onSelectRow={(selectedRow: any) => {\n selectedDataRef.current = selectedRow;\n setSelectedSolidViewData(selectedRow);\n }}\n onEdit={(selectedRow: any) => {\n if (params.embeded == true) {\n params.handleEditClickForEmbeddedView(selectedRow?.id);\n } else {\n try {\n sessionStorage.setItem(\"fromView\", \"list\");\n sessionStorage.setItem(\"fromViewUrl\", window.location.pathname + window.location.search);\n } catch (e) { }\n router.push(\n `${editBaseUrl}/${selectedRow?.id}?viewMode=edit&${new URLSearchParams(editActionQueryParams).toString()}`\n );\n }\n }}\n onDelete={(selectedRow: any) => {\n setSelectedSolidViewData(selectedRow);\n setDeleteEntity(true);\n }}\n />\n </div>\n )}\n </>\n )\n }\n ></Column>\n )}\n </DataTable>\n </div>\n )}\n </>\n )}\n </div>\n </div>\n <SolidConfirmDialog\n open={isDialogVisible}\n onCancel={onDeleteClose}\n onConfirm={deleteBulk}\n className=\"solid-shadcn-confirm-dialog solid-delete-confirm-dialog\"\n headerClassName=\"solid-shadcn-dialog-head\"\n bodyClassName=\"solid-shadcn-dialog-body\"\n footerClassName=\"solid-shadcn-dialog-actions\"\n separatorClassName=\"solid-shadcn-dialog-sep\"\n showSeparator\n title=\"Delete Records\"\n message={<p className=\"solid-shadcn-dialog-text\">Are you sure you want to delete the selected records?</p>}\n confirmLabel=\"Delete\"\n cancelLabel=\"Cancel\"\n />\n <SolidDialog\n open={isRecoverDialogVisible}\n onOpenChange={(open) => {\n if (!open) {\n setRecoverDialogVisible(false);\n }\n }}\n className=\"solid-shadcn-confirm-dialog solid-delete-confirm-dialog\"\n >\n <SolidDialogHeader className=\"solid-shadcn-dialog-head\">\n <SolidDialogTitle>Confirm Recover</SolidDialogTitle>\n <SolidDialogClose />\n </SolidDialogHeader>\n <SolidDialogSeparator className=\"solid-shadcn-dialog-sep\" />\n <SolidDialogBody className=\"solid-shadcn-dialog-body\">\n <p className=\"solid-shadcn-dialog-text\">Are you sure you want to recover all records?</p>\n </SolidDialogBody>\n <SolidDialogFooter className=\"solid-shadcn-dialog-actions\">\n <SolidButton variant=\"destructive\" size=\"sm\" autoFocus onClick={recoverAll}>\n Yes\n </SolidButton>\n <SolidButton variant=\"outline\" size=\"sm\" onClick={() => setRecoverDialogVisible(false)}>\n No\n </SolidButton>\n </SolidDialogFooter>\n </SolidDialog>\n\n {\n listViewRowActionData && (\n <SolidDialog\n open={listViewRowActionPopupState}\n onOpenChange={(open) => {\n if (!open) {\n closeListViewRowActionPopup();\n }\n }}\n >\n <SolidDialogHeader>\n <SolidDialogTitle>{listViewRowActionData?.rowAction?.label || \"Action\"}</SolidDialogTitle>\n <SolidDialogClose />\n </SolidDialogHeader>\n <SolidDialogSeparator />\n <SolidDialogBody>\n <ListViewRowActionPopup\n context={listViewRowActionData}\n ></ListViewRowActionPopup>\n </SolidDialogBody>\n </SolidDialog>\n )\n }\n <SolidConfirmDialog\n open={deleteEntity}\n onCancel={() => setDeleteEntity(false)}\n onConfirm={handleDeleteEntity}\n className=\"solid-shadcn-confirm-dialog solid-delete-confirm-dialog\"\n headerClassName=\"solid-shadcn-dialog-head\"\n bodyClassName=\"solid-shadcn-dialog-body\"\n footerClassName=\"solid-shadcn-dialog-actions\"\n separatorClassName=\"solid-shadcn-dialog-sep\"\n showSeparator\n title={`Delete ${entityDisplayName}`}\n message={<p className=\"solid-shadcn-dialog-text\">{`Are you sure you want to delete this ${entityDisplayName}?`}</p>}\n confirmLabel=\"Delete\"\n cancelLabel=\"Cancel\"\n />\n {openLightbox && (\n <SolidLightbox\n open={openLightbox}\n slides={lightboxSlides}\n onClose={() => setOpenLightbox(false)}\n />\n )}\n </div >\n );\n});\n\nSolidListView.displayName = \"SolidListView\";\n"]}
|
|
1
|
+
{"version":3,"file":"SolidListView.js","sourceRoot":"","sources":["../../../../src/components/core/list/SolidListView.tsx"],"names":[],"mappings":"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","sourcesContent":["import { forwardRef, useState, useEffect, useRef, useMemo, useImperativeHandle } from \"react\";\nimport { SolidDataTable as DataTable, DataTableStateEvent, Column } from \"./SolidDataTable\";\nimport qs from \"qs\";\nimport { createSolidEntityApi } from \"../../../redux/api/solidEntityApi\";\nimport { useGetSolidViewLayoutQuery } from \"../../../redux/api/solidViewApi\";\nimport { SolidListViewColumn } from \"./SolidListViewColumn\";\nimport { SolidCreateButton } from \"../common/SolidCreateButton\";\nimport { SolidGlobalSearchElement } from \"../common/SolidGlobalSearchElement\";\nimport { useLazyCheckIfPermissionExistsQuery } from \"../../../redux/api/userApi\";\nimport { permissionExpression } from \"../../../helpers/permissions\";\nimport { usePathname } from \"../../../hooks/usePathname\";\nimport { useRouter } from \"../../../hooks/useRouter\";\nimport { useSearchParams } from \"../../../hooks/useSearchParams\";\nimport { ListViewRowActionPopup } from \"./ListViewRowActionPopup\";\nimport { showToast } from \"../../../redux/features/toastSlice\";\nimport CompactImage from '../../../resources/images/layout/images/compact.png';\nimport CozyImage from '../../../resources/images/layout/images/cozy.png';\nimport ComfortableImage from '../../../resources/images/layout/images/comfortable.png';\nimport { SolidLightbox } from \"../../shad-cn-ui/SolidLightbox\";\nimport type { SolidLightboxSlide } from \"../../shad-cn-ui/SolidLightbox\";\nimport { SolidListViewConfigure } from \"./SolidListViewConfigure\";\nimport { SolidEmptyListViewPlaceholder } from \"./SolidEmptyListViewPlaceholder\";\nimport { useHandleListCustomButtonClick } from \"../../../components/common/useHandleListCustomButtonClick\";\nimport { hasAnyRole } from \"../../../helpers/rolesHelper\";\nimport { SolidListViewHeaderButton } from \"./SolidListViewHeaderButton\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport styles from \"./SolidListViewWrapper.module.css\";\nimport { SolidBeforeListDataLoad, SolidListUiEventResponse, SolidLoadList } from \"../../../types/solid-core\";\nimport { getExtensionFunction } from \"../../../helpers/registry\";\nimport { useSession } from \"../../../hooks/useSession\";\nimport { ERROR_MESSAGES } from \"../../../constants/error-messages\";\n// import { SolidAiMainWrapper } from \"../solid-ai/SolidAiMainWrapper\"; // moved to SolidX Studio panel\nimport { showNavbar, toggleNavbar } from \"../../../redux/features/navbarSlice\";\nimport { normalizeSolidListTreeKanbanActionPath } from \"../../../helpers/routePaths\";\nimport { getMediaTypeFromUrl } from \"../../../helpers/mediaType\";\nimport { SolidListViewRowActionsMenu } from \"./SolidListViewRowActionsMenu\";\nimport { SolidHeaderRequestStatus } from \"../../common/SolidHeaderRequestStatus\";\nimport {\n SolidButton,\n SolidConfirmDialog,\n SolidDialog,\n SolidDialogBody,\n SolidDialogClose,\n SolidDialogFooter,\n SolidDialogHeader,\n SolidDialogSeparator,\n SolidDialogTitle,\n} from \"../../shad-cn-ui\";\nimport { FilterMatchMode } from \"../filter/filterMatchMode\";\nimport { LayoutGrid, Pencil, Plus, RefreshCw, RotateCcw, Search, SquarePen, Trash2 } from \"lucide-react\";\n// import { ERROR_MESSAGES } from \"../../../constants/error-messages\";\n\nconst getRandomInt = (min: number, max: number) => {\n return Math.floor(Math.random() * (max - min + 1)) + min;\n};\n\nexport const getFilterObjectFromLocalStorage = () => {\n const currentPageUrl = window.location.pathname; // Get the current page URL\n const encodedQueryString = localStorage.getItem(currentPageUrl); // Retrieve the encoded query string from local storage\n\n if (encodedQueryString) {\n try {\n const decodedQueryString = atob(encodedQueryString); // Base64 decode the string\n const parsedParams = JSON.parse(decodedQueryString); // Parse the decoded string into an object\n return parsedParams;\n } catch (error) {\n console.error(\n ERROR_MESSAGES.ERROR_DECODING,\n error\n );\n }\n }\n};\n\n\nexport const getFilterObjectFromLocalStorageByUrl = (url: string) => {\n const currentPageUrl = url; // Get the current page URL\n const encodedQueryString = localStorage.getItem(currentPageUrl); // Retrieve the encoded query string from local storage\n\n if (encodedQueryString) {\n try {\n const decodedQueryString = atob(encodedQueryString); // Base64 decode the string\n const parsedParams = JSON.parse(decodedQueryString); // Parse the decoded string into an object\n return parsedParams;\n } catch (error) {\n console.error(\n ERROR_MESSAGES.ERROR_DECODING,\n error\n );\n }\n }\n};\n\nexport const setFilterObjectToLocalStorage = (queryObject: any) => {\n if (queryObject) {\n const stringifiedObject = JSON.stringify(queryObject);\n // const stringifiedObject = qs.stringify(queryObject, { encodeValuesOnly: true, arrayFormat: \"brackets\" });\n const encodedQueryString = btoa(stringifiedObject); // Base64 encode the stringified object\n const currentPageUrl = window.location.pathname; // Get the current page URL\n localStorage.setItem(currentPageUrl, encodedQueryString); // Store in local storage with the URL as the key\n return encodedQueryString;\n }\n return null;\n};\n\n\nexport const setFilterObjectToLocalStorageByUrl = (url: string, queryObject: any) => {\n if (queryObject) {\n const stringifiedObject = JSON.stringify(queryObject);\n // const stringifiedObject = qs.stringify(queryObject, { encodeValuesOnly: true, arrayFormat: \"brackets\" });\n const encodedQueryString = btoa(stringifiedObject); // Base64 encode the stringified object\n const currentPageUrl = url; // Get the current page URL\n localStorage.setItem(currentPageUrl, encodedQueryString); // Store in local storage with the URL as the key\n return encodedQueryString;\n }\n return null;\n};\n\ntype SolidListViewParams = {\n moduleName: string;\n modelName: string;\n inlineCreate?: boolean;\n handleAddClickForEmbeddedView?: any;\n handleEditClickForEmbeddedView?: any;\n embeded?: boolean;\n embededFieldRelationType?: string;\n customLayout?: any;\n customFilter?: any;\n handleDeleteClick?: any;\n};\n\nexport type SolidListViewHandle = {\n /**\n * Re-runs the list fetch using the current internal state\n * (filters, pagination, sorting, archived toggle, and populate config).\n * Use this after external side-effects that may have changed list data\n * but do not require changing list state first.\n */\n refresh: () => void;\n /**\n * Resets list filters to the default state and also clears the\n * global search UI state through the existing search element ref.\n * Use this for a full \"Reset filters\" action.\n */\n clearFilters: () => void;\n /**\n * Applies transformed filter predicates in the same shape used by\n * SolidGlobalSearchElement -> handleApplyCustomFilter.\n * Use this when external code wants to programmatically drive\n * search/custom/saved/predefined filters.\n * eg custom_filter_predicate : {$and: [{displayName: {$containsi: \"test\"}}]}\n */\n applyFilter: (filter: {\n custom_filter_predicate?: any;\n search_predicate?: any;\n saved_filter_predicate?: any;\n predefined_search_predicate?: any;\n }) => void;\n /**\n * Updates pagination state directly.\n * Use this when a caller needs to jump to a specific page window\n * or enforce a new page size.\n */\n setPagination: (nextFirst: number, nextRows: number) => void;\n /**\n * Updates sorting state and resets page offset to the first page.\n * Use this for programmatic sort controls to match DataTable behavior.\n */\n setSort: (nextSortField: string, nextSortOrder: 1 | -1 | 0) => void;\n /**\n * Toggles inclusion of archived/soft-deleted records.\n * Use this to switch between active-only and inclusive list views.\n */\n setShowArchived: (value: boolean) => void;\n /**\n * Returns a snapshot of current list state for orchestration/debugging.\n * Includes a cloned listData array to avoid accidental external mutation.\n */\n getState: () => {\n first: number;\n rows: number;\n sortField: string;\n sortOrder: 1 | -1 | 0;\n showArchived: boolean;\n filters: any;\n filterPredicates: any;\n listData: any[];\n totalRecords: number;\n loading: boolean;\n };\n};\n\nexport const SolidListView = forwardRef<SolidListViewHandle, SolidListViewParams>((params, ref) => {\n const session = useSession();\n const user = session?.data?.user;\n const dispatch = useDispatch();\n const visibleNavbar = useSelector((state: any) => state.navbarState?.visibleNavbar);\n\n const pathname = usePathname();\n const solidGlobalSearchElementRef = useRef<any>();\n\n const router = useRouter();\n const searchParams = useSearchParams();\n const localeName = searchParams.get(\"locale\");\n\n\n const [solidListViewMetaData, setSolidListViewMetaData] = useState<any>(null);\n const [solidListViewLayout, setSolidListViewLayout] = useState<any>(null);\n const [isDraftPublishWorkflowEnabled, setIsDraftPublishWorkflowEnabled] = useState(false);\n\n // Filter query realted states\n const [filters, setFilters] = useState<any>(null);\n const [totalRecords, setTotalRecords] = useState(0);\n const [first, setFirst] = useState(0);\n const [rows, setRows] = useState(solidListViewLayout?.attrs?.defaultPageSize ? solidListViewLayout?.attrs?.defaultPageSize : 10);\n const [sortField, setSortField] = useState<string>(\"id\");\n const [sortOrder, setSortOrder] = useState<1 | -1 | 0>(-1);\n const [toPopulate, setToPopulate] = useState<string[]>([]);\n const [toPopulateMedia, setToPopulateMedia] = useState<string[]>([]);\n\n\n const [actionsAllowed, setActionsAllowed] = useState<string[]>([]);\n\n\n // All list view state.\n const [listViewData, setListViewData] = useState<any[]>([]);\n const [selectedRecords, setSelectedRecords] = useState<any[]>([]);\n const [selectedRecoverRecords, setSelectedRecoverRecords] = useState<any[]>([]);\n\n const [loading, setLoading] = useState<boolean>(true);\n\n const [isDialogVisible, setDialogVisible] = useState(false);\n const [isRecoverDialogVisible, setRecoverDialogVisible] = useState(false);\n\n const [createButtonUrl, setCreateButtonUrl] = useState<string>();\n const [editButtonUrl, setEditButtonUrl] = useState<string>();\n\n const [createActionQueryParams, setCreateActionQueryParams] = useState<Record<string, string>>({});\n const [editActionQueryParams, setEditActionQueryParams] = useState<Record<string, string>>({});\n\n const [showArchived, setShowArchived] = useState(false);\n\n const [queryDataLoaded, setQueryDataLoaded] = useState(false);\n const [filterPredicates, setFilterPredicates] = useState<any>(null);\n const [showSaveFilterPopup, setShowSaveFilterPopup] = useState<boolean>(false);\n const [showGlobalSearchElement, setShowGlobalSearchElement] = useState(false);\n const suppressNextFilterPaginationResetRef = useRef(false);\n\n const [triggerCheckIfPermissionExists] = useLazyCheckIfPermissionExistsQuery();\n\n const handleCustomButtonClick = useHandleListCustomButtonClick();\n\n const editBaseUrl = useMemo(\n () => normalizeSolidListTreeKanbanActionPath(pathname, editButtonUrl || \"form\"),\n [editButtonUrl, pathname]\n );\n\n useEffect(() => {\n const fetchPermissions = async () => {\n if (params.modelName) {\n const permissionNames = [\n permissionExpression(params.modelName, 'create'),\n permissionExpression(params.modelName, 'delete'),\n permissionExpression(params.modelName, 'update'),\n permissionExpression(params.modelName, 'deleteMany'),\n permissionExpression(params.modelName, 'findOne'),\n permissionExpression(params.modelName, 'findMany'),\n permissionExpression(params.modelName, 'insertMany'),\n permissionExpression('importTransaction', 'create'),\n permissionExpression('exportTransaction', 'create'),\n permissionExpression('userViewMetadata', 'create'),\n permissionExpression('savedFilters', 'create')\n ];\n const queryData = {\n permissionNames: permissionNames,\n };\n const queryString = qs.stringify(queryData, {\n encodeValuesOnly: true,\n });\n const response = await triggerCheckIfPermissionExists(queryString);\n setActionsAllowed(response.data.data);\n }\n };\n fetchPermissions();\n }, [params.modelName]);\n\n\n const isFilterApplied = filters ? true : false;\n\n // Create the RTK slices for this entity\n const entityApi = createSolidEntityApi(params.modelName);\n const {\n useCreateSolidEntityMutation,\n useDeleteMultipleSolidEntitiesMutation,\n useDeleteSolidEntityMutation,\n useGetSolidEntitiesQuery,\n useGetSolidEntityByIdQuery,\n useLazyGetSolidEntitiesQuery,\n useLazyGetSolidEntityByIdQuery,\n usePrefetch,\n useUpdateSolidEntityMutation,\n useRecoverSolidEntityByIdQuery,\n useLazyRecoverSolidEntityByIdQuery,\n useRecoverSolidEntityMutation,\n } = entityApi;\n\n const menuItemId = searchParams.get(\"menuItemId\");\n const menuItemName = searchParams.get(\"menuItemName\");\n const actionId = searchParams.get(\"actionId\");\n const actionName = searchParams.get(\"actionName\");\n // Get the list view layout & metadata first.\n const listViewMetaDataQs = qs.stringify(\n {\n modelName: params.modelName,\n moduleName: params.moduleName,\n viewType: \"list\",\n menuItemId: menuItemId,\n menuItemName: menuItemName,\n actionId: actionId,\n actionName: actionName,\n },\n {\n encodeValuesOnly: true,\n }\n );\n\n const {\n data: solidListViewInitialMetaData,\n error: solidListViewMetaDataError,\n isLoading: solidListViewMetaDataIsLoading,\n isError: solidListViewMetaDataIsError,\n refetch,\n } = useGetSolidViewLayoutQuery(listViewMetaDataQs);\n\n const initialFilterMethod = () => {\n const solidView = solidListViewMetaData?.data?.solidView;\n const solidFieldsMetadata =\n solidListViewMetaData?.data?.solidFieldsMetadata;\n\n const initialFilters: any = {};\n const toPopulate: string[] = [];\n const toPopulateMedia: string[] = [];\n const currentLayout = params.customLayout ? params.customLayout : solidView?.layout;\n for (let i = 0; i < currentLayout?.children.length; i++) {\n const column = currentLayout?.children[i];\n const fieldMetadata = solidFieldsMetadata?.[column.attrs.name];\n if (!fieldMetadata?.type) {\n showFieldError(ERROR_MESSAGES.FIELD_NOT_IN_METADATA(column.attrs.label));\n // return;\n }\n if (fieldMetadata) {\n // Form the initial filters after iterating over the columns and field metadata.\n if (\n [\"int\", \"bigint\", \"float\", \"decimal\"].includes(fieldMetadata?.type)\n ) {\n // initialFilters[column.attrs.name] = { operator: FilterOperator.OR, constraints: [{ value: null, matchMode: FilterMatchMode.EQUALS }] }\n initialFilters[column.attrs.name] = {\n value: null,\n matchMode: FilterMatchMode.EQUALS,\n };\n } else if (\n [\"date\", \"datetime\", \"time\", \"boolean\"].includes(fieldMetadata?.type)\n ) {\n // initialFilters[column.attrs.name] = { operator: FilterOperator.OR, constraints: [{ value: null, matchMode: FilterMatchMode.DATE_IS }] }\n initialFilters[column.attrs.name] = {\n value: null,\n matchMode: FilterMatchMode.EQUALS,\n };\n } else if (\n [\"relation\", \"selectionStatic\", \"selectionDynamic\"].includes(\n fieldMetadata?.type\n )\n ) {\n initialFilters[column.attrs.name] = {\n value: null,\n matchMode: FilterMatchMode.IN,\n };\n } else {\n // initialFilters[column.attrs.name] = { operator: FilterOperator.OR, constraints: [{ value: null, matchMode: FilterMatchMode.STARTS_WITH }] }\n initialFilters[column.attrs.name] = {\n value: null,\n matchMode: FilterMatchMode.STARTS_WITH,\n };\n }\n\n if (column.attrs.name === \"id\") {\n initialFilters[column.attrs.name] = {\n value: null,\n matchMode: FilterMatchMode.IN,\n };\n }\n\n // Form the \"toPopulate\" array.\n if (fieldMetadata.type === \"relation\" && fieldMetadata?.relationType === 'many-to-one') {\n if (!toPopulate.includes(fieldMetadata.name)) {\n toPopulate.push(fieldMetadata.name);\n }\n }\n if (\n fieldMetadata.type === \"mediaSingle\" ||\n fieldMetadata.type === \"mediaMultiple\"\n ) {\n if (!toPopulateMedia.includes(fieldMetadata.name)) {\n toPopulateMedia.push(fieldMetadata.name);\n }\n }\n }\n }\n const populate = toPopulate;\n const populateMedia = toPopulateMedia;\n const rows = currentLayout?.attrs?.defaultPageSize ?? 25;\n const sortField = \"id\";\n const sortOrder: 1 | -1 = -1;\n return { sortField, sortOrder, rows, populate, populateMedia };\n };\n\n\n\n // Set the initial filter state based on the metadata.\n useEffect(() => {\n // refetch();\n if (solidListViewInitialMetaData) {\n if (params.customLayout) {\n setSolidListViewLayout(params.customLayout);\n } else {\n setSolidListViewLayout(solidListViewInitialMetaData?.data.solidView.layout);\n }\n setSolidListViewMetaData(solidListViewInitialMetaData);\n setIsDraftPublishWorkflowEnabled(solidListViewInitialMetaData?.data?.solidView?.model?.draftPublishWorkflow === true);\n }\n }, [solidListViewInitialMetaData]);\n\n\n // set layout and actions for create and edit buttons and view modes\n useEffect(() => {\n if (solidListViewLayout) {\n const listLayoutAttrs = solidListViewLayout.attrs;\n const createActionUrl = listLayoutAttrs?.createAction && listLayoutAttrs?.createAction?.type === \"custom\" ? listLayoutAttrs?.createAction?.customComponent : \"form/new\";\n const editActionUrl = listLayoutAttrs?.editAction && listLayoutAttrs?.editAction?.type === \"custom\" ? listLayoutAttrs?.editAction?.customComponent : \"form\";\n\n if (listLayoutAttrs?.createAction) {\n setCreateActionQueryParams({\n actionName: listLayoutAttrs.createAction.name,\n actionType: listLayoutAttrs.createAction.type,\n actionContext: listLayoutAttrs.createAction.context,\n });\n }\n if (listLayoutAttrs?.editAction) {\n setEditActionQueryParams({\n actionName: listLayoutAttrs.editAction.name,\n actionType: listLayoutAttrs.editAction.type,\n actionContext: listLayoutAttrs.editAction.context,\n });\n }\n\n // const viewModes = listLayoutAttrs?.allowedViews && listLayoutAttrs?.allowedViews.length > 0 && listLayoutAttrs?.allowedViews.map((view: any) => { return { label: capitalize(view), value: view }; });\n setViewModes(solidListViewInitialMetaData?.data?.viewModes);\n if (createActionUrl) {\n setCreateButtonUrl(createActionUrl);\n }\n if (editActionUrl) {\n setEditButtonUrl(editActionUrl);\n }\n }\n }, [solidListViewLayout]);\n\n\n\n const sizeOptions = [\n { label: \"Compact\", value: \"small\", image: CompactImage },\n { label: \"Cozy\", value: \"normal\", image: CozyImage },\n { label: \"Comfortable\", value: \"large\", image: ComfortableImage },\n ];\n\n // const viewModes = [\n // { label: 'List ', value: 'list', image: ListImage },\n // { label: 'Kanban', value: 'kanban', image: KanbanImage },\n // ]\n\n const [size, setSize] = useState<string | any>(sizeOptions[1].value);\n const [viewModes, setViewModes] = useState<any>([]);\n\n // Custom Row Action\n const [listViewRowActionPopupState, setListViewRowActionPopupState] = useState(false);\n const [listViewRowActionData, setListRowActionData] = useState<any>();\n\n // Get the list view data.\n const [triggerGetSolidEntities, { data: solidEntityListViewData, isLoading, error },] = useLazyGetSolidEntitiesQuery();\n\n const [\n triggerRecoverSolidEntitiesById,\n {\n data: recoverByIdData,\n isLoading: recoverByIdIsLoading,\n error: recoverByIdError,\n isError: recoverByIdIsError,\n isSuccess: recoverByIdIsSuccess,\n },\n ] = useLazyRecoverSolidEntityByIdQuery();\n\n const [\n triggerRecoverSolidEntities,\n {\n data: recoverByData,\n isLoading: recoverByIsLoading,\n error: recoverError,\n isError: recoverIsError,\n isSuccess: recoverByIsSuccess,\n },\n ] = useRecoverSolidEntityMutation();\n\n // After data is fetched populate the list view state so as to be able to render the data.\n useEffect(() => {\n if (solidEntityListViewData) {\n setLoading(true);\n const cleanedRecords = solidEntityListViewData.records.map((record: any) => {\n const newRecord = { ...record };\n\n Object.entries(newRecord).forEach(([key, value]) => {\n if (typeof value === \"string\") {\n try {\n const parsed = JSON.parse(value);\n if (Array.isArray(parsed)) {\n newRecord[key] = parsed.join(\", \");\n }\n } catch {\n // If not valid JSON array, optionally strip brackets/quotes\n if (/^\\[.*\\]$/.test(value)) {\n newRecord[key] = value.replace(/[\\[\\]\"]+/g, \"\");\n }\n }\n }\n });\n\n return newRecord;\n });\n setListViewData(cleanedRecords);\n // setListViewData(solidEntityListViewData?.records);\n setTotalRecords(solidEntityListViewData?.meta.totalRecords);\n setLoading(false);\n }\n }, [solidEntityListViewData]);\n\n const [\n deleteSolidSingleEntiry,\n { isSuccess: isDeleteSolidSingleEntitySuccess },\n ] = useDeleteSolidEntityMutation();\n\n // Delete mutation\n const [\n deleteManySolidEntities,\n {\n isLoading: isSolidEntitiesDeleted,\n isSuccess: isDeleteSolidEntitiesSucess,\n isError: isSolidEntitiesDeleteError,\n error: SolidEntitiesDeleteError,\n data: DeletedSolidEntities,\n },\n ] = useDeleteMultipleSolidEntitiesMutation();\n\n // Fetch data after toPopulate has been populated...\n useEffect(() => {\n setQueryDataLoaded(false)\n if (solidListViewMetaData && solidListViewLayout) {\n const queryObject = getFilterObjectFromLocalStorage();\n\n if (queryObject) {\n suppressNextFilterPaginationResetRef.current = true;\n const queryData = {\n offset: queryObject.offset || 0,\n limit: queryObject.limit || 25,\n populate: queryObject.populate,\n populateMedia: queryObject.populateMedia,\n sort: queryObject.sort,\n filters: queryObject.filters,\n };\n\n setRows(Number(queryData.limit));\n setFirst(Number(queryData?.offset));\n let restoredSortField = \"id\";\n let restoredSortOrder: 1 | -1 | 0 = -1;\n if (Array.isArray(queryData.sort) && queryData.sort.length > 0) {\n const [field, order] = String(queryData.sort[0]).split(\":\");\n restoredSortField = field || \"id\";\n restoredSortOrder = order === \"asc\" ? 1 : -1;\n } else if (queryObject.sortField) {\n restoredSortField = String(queryObject.sortField);\n restoredSortOrder = queryObject.sortOrder === 1 || queryObject.sortOrder === -1 ? queryObject.sortOrder : -1;\n }\n setSortField(restoredSortField);\n setSortOrder(restoredSortOrder);\n const { populate, populateMedia } = initialFilterMethod();\n setToPopulate(populate);\n setToPopulateMedia(populateMedia);\n } else {\n const { sortField, sortOrder, rows, populate, populateMedia } = initialFilterMethod();\n setRows(rows);\n setSortField(sortField);\n setSortOrder(sortOrder);\n setToPopulate(populate);\n setToPopulateMedia(populateMedia);\n setFirst(0);\n }\n //below line was added to handle state stale issue when we converted boilerplate to vite \n //since now we dont need it becuase our component is remounted on every router change\n if (params.embeded === true || solidListViewLayout?.attrs?.enableGlobalSearch === false) {\n setFilters(params.customFilter || { $and: [] });\n setFilterPredicates(null);\n }\n setSelectedRecords([]);\n setSelectedRecoverRecords([]);\n setQueryDataLoaded(true);\n }\n }, [\n isDeleteSolidEntitiesSucess,\n isDeleteSolidSingleEntitySuccess,\n recoverByIdIsSuccess,\n recoverByIsSuccess,\n solidListViewMetaData,\n solidListViewLayout\n ]);\n\n useEffect(() => {\n if (solidListViewMetaData && solidListViewMetaData?.data && !loading) {\n const handleDynamicFunction = async () => {\n const dynamicHeader = solidListViewMetaData?.data?.solidView?.layout?.onListLoad;\n let dynamicExtensionFunction = null;\n let listViewRecords = listViewData;\n let listLayout = solidListViewMetaData?.data?.solidView?.layout;\n if (params.customLayout) {\n listLayout = params.customLayout;\n }\n const event: SolidLoadList = {\n fieldsMetadata: solidListViewMetaData?.data?.solidFieldsMetadata,\n listData: listViewData,\n totalRecords: totalRecords,\n type: \"onListLoad\",\n viewMetadata: solidListViewMetaData?.data?.solidView,\n listViewLayout: listLayout,\n queryParams: {\n menuItemId: menuItemId,\n menuItemName: menuItemName,\n actionId: actionId,\n actionName: actionName,\n },\n user: user,\n session: session.data,\n params: params\n };\n\n if (dynamicHeader) {\n dynamicExtensionFunction = getExtensionFunction(dynamicHeader);\n if (dynamicExtensionFunction) {\n const updatedListData: SolidListUiEventResponse = await dynamicExtensionFunction(event);\n\n if (updatedListData && updatedListData?.dataChanged && updatedListData?.newListData) {\n listViewRecords = updatedListData.newListData;\n }\n if (updatedListData && updatedListData?.layoutChanged && updatedListData?.newLayout) {\n listLayout = updatedListData.newLayout;\n }\n }\n if (listViewRecords) {\n setListViewData(listViewRecords);\n }\n if (listLayout) {\n setSolidListViewLayout(listLayout);\n }\n }\n };\n handleDynamicFunction();\n }\n }, [solidListViewMetaData, loading]);\n\n\n\n // Create a ref that always has the latest filters\n const latestFiltersRef = useRef<any>(filters);\n const latestFilterPredicatesRef = useRef<any>(filterPredicates);\n const latestSortFieldRef = useRef<string>(sortField);\n const latestSortOrderRef = useRef<1 | -1 | 0>(sortOrder);\n\n useEffect(() => {\n latestSortFieldRef.current = sortField;\n }, [sortField]);\n\n useEffect(() => {\n latestSortOrderRef.current = sortOrder;\n }, [sortOrder]);\n\n // Keep refs in sync\n useEffect(() => {\n latestFiltersRef.current = filters;\n }, [filters]);\n\n useEffect(() => {\n latestFilterPredicatesRef.current = filterPredicates;\n }, [filterPredicates]);\n\n\n useEffect(() => {\n if (queryDataLoaded && filters && (filterPredicates || params.embeded == true)) {\n setQueryString();\n }\n }, [\n first,\n rows,\n sortField,\n sortOrder,\n showArchived,\n toPopulate,\n toPopulateMedia,\n queryDataLoaded,\n filters,\n filterPredicates\n ]);\n\n // Handle pagination event.\n const onPageChange = (event: any) => {\n setFirst(event.first);\n setRows(event.rows);\n };\n\n // Handle sort event.\n // const onSort = (event: DataTableStateEvent) => {\n // const { sortField, sortOrder } = event;\n // const validSortOrder = sortOrder === 1 || sortOrder === -1 ? sortOrder : 0;\n // setSortField(sortField);\n // setSortOrder(validSortOrder);\n // setFirst(0);\n\n // };\n\n const onSort = (event: DataTableStateEvent) => {\n const nextSortField = event.sortField ? String(event.sortField) : \"\";\n const nextSortOrder = event.sortOrder === 1 || event.sortOrder === -1 ? event.sortOrder : 0;\n setSortField(nextSortField);\n setSortOrder(nextSortOrder);\n setFirst(0);\n };\n\n // handle change in the records which are currently selected...\n const onSelectionChange = (event: any) => {\n const value = event.value;\n const activeRecords = value.filter(\n (record: any) => record.deletedAt === null\n );\n const deletedRecords = value.filter(\n (record: any) => record.deletedAt !== null\n );\n\n setSelectedRecords(activeRecords);\n setSelectedRecoverRecords(deletedRecords);\n };\n\n\n\n const setQueryString = async () => {\n const solidFieldsMetadata =\n solidListViewMetaData?.data?.solidFieldsMetadata;\n\n let queryData: any = {\n offset: first,\n limit: rows,\n filters: latestFiltersRef.current ?? latestFiltersRef.current,\n populate: toPopulate,\n populateMedia: toPopulateMedia,\n locale: localeName ? localeName : \"en\",\n };\n\n\n\n const currentSortField = latestSortFieldRef.current;\n const currentSortOrder = latestSortOrderRef.current;\n if (currentSortField && (currentSortOrder === 1 || currentSortOrder === -1)) {\n const meta = solidFieldsMetadata?.[currentSortField];\n let resolvedField = currentSortField;\n if (meta?.type === \"relation\" && meta?.relationType === \"many-to-one\") {\n resolvedField = `${currentSortField}.${meta?.relationModel?.userKeyField?.name}`;\n }\n queryData.sort = [`${resolvedField}:${currentSortOrder === 1 ? \"asc\" : \"desc\"}`];\n } else {\n queryData.sort = [`id:desc`];\n }\n\n\n if (showArchived) {\n queryData.showSoftDeleted = \"inclusive\";\n }\n\n // SolidBeforeListDataLoad Event that allows filter modification just before api call \n const dynamicHeader = solidListViewMetaData?.data?.solidView?.layout?.onBeforeListDataLoad;\n let dynamicExtensionFunction = null;\n const event: SolidBeforeListDataLoad = {\n type: \"onBeforeListDataLoad\",\n fieldsMetadata: solidListViewMetaData?.data?.solidFieldsMetadata,\n viewMetadata: solidListViewMetaData?.data?.solidView,\n listViewLayout: solidListViewMetaData?.data.solidView.layout,\n filter: structuredClone(queryData),\n queryParams: {\n menuItemId: menuItemId,\n menuItemName: menuItemName,\n actionId: actionId,\n actionName: actionName,\n },\n user: user,\n session: session.data,\n params: params\n };\n\n if (dynamicHeader) {\n dynamicExtensionFunction = getExtensionFunction(dynamicHeader);\n if (dynamicExtensionFunction) {\n try {\n const updatedListData: SolidListUiEventResponse = await dynamicExtensionFunction(event);\n if (updatedListData && updatedListData?.filterApplied && updatedListData?.newFilter) {\n queryData = updatedListData?.newFilter;\n }\n } catch (err) {\n console.error(\"Error executing onBeforeListDataLoad extension:\", err);\n }\n }\n }\n\n const queryString = qs.stringify(queryData, { encodeValuesOnly: true });\n\n if (latestFilterPredicatesRef.current) {\n const fileterTobeStored = structuredClone(queryData);\n fileterTobeStored.finalFullFilter = fileterTobeStored.filters;\n delete fileterTobeStored.filters;\n fileterTobeStored.custom_filter_predicate = latestFilterPredicatesRef.current.custom_filter_predicate || null;\n fileterTobeStored.search_predicate = latestFilterPredicatesRef.current.search_predicate || null;\n fileterTobeStored.saved_filter_predicate = latestFilterPredicatesRef.current.saved_filter_predicate || null;\n fileterTobeStored.predefined_search_predicate = latestFilterPredicatesRef.current.predefined_search_predicate || null;\n setFilterObjectToLocalStorage(fileterTobeStored);\n }\n triggerGetSolidEntities(queryString);\n };\n\n // handle filter...\n const handleApplyCustomFilter = (filterPredicates: any, persistFilter: boolean = false) => {\n // we assume that the customfilter will always have $and array\n const queryfilter = structuredClone(params.customFilter) || { $and: [] }\n\n if (filterPredicates.custom_filter_predicate) {\n queryfilter.$and.push(filterPredicates.custom_filter_predicate);\n }\n if (filterPredicates.search_predicate) {\n queryfilter.$and.push(filterPredicates.search_predicate);\n }\n if (filterPredicates.saved_filter_predicate) {\n queryfilter.$and.push(filterPredicates.saved_filter_predicate);\n }\n if (filterPredicates.predefined_search_predicate) {\n queryfilter.$and.push(filterPredicates.predefined_search_predicate);\n }\n const updatedFilter = queryfilter;\n\n const previousPredicates = latestFilterPredicatesRef.current;\n const nextPredicatesComparable = {\n custom_filter_predicate: filterPredicates?.custom_filter_predicate || null,\n search_predicate: filterPredicates?.search_predicate || null,\n saved_filter_predicate: filterPredicates?.saved_filter_predicate || null,\n predefined_search_predicate: filterPredicates?.predefined_search_predicate || null,\n };\n const previousPredicatesComparable = {\n custom_filter_predicate: previousPredicates?.custom_filter_predicate || null,\n search_predicate: previousPredicates?.search_predicate || null,\n saved_filter_predicate: previousPredicates?.saved_filter_predicate || null,\n predefined_search_predicate: previousPredicates?.predefined_search_predicate || null,\n };\n const hasPredicateChanged =\n JSON.stringify(previousPredicatesComparable) !== JSON.stringify(nextPredicatesComparable);\n\n // Update refs IMMEDIATELY (synchronously)\n latestFiltersRef.current = updatedFilter;\n const updatedFilterPredicates = structuredClone(filterPredicates);\n updatedFilterPredicates.persistFilter = persistFilter;\n latestFilterPredicatesRef.current = updatedFilterPredicates;\n\n // Then update state\n setFilters(updatedFilter);\n setFilterPredicates(updatedFilterPredicates);\n const hasMeaningfulFilterValueLocal = (value: any): boolean => {\n if (value === null || value === undefined) return false;\n if (typeof value === \"string\") return value.trim().length > 0;\n if (typeof value === \"number\" || typeof value === \"boolean\") return true;\n if (Array.isArray(value)) return value.some((item) => hasMeaningfulFilterValueLocal(item));\n if (typeof value === \"object\") return hasAppliedFiltersLocal(value);\n return false;\n };\n\n const hasAppliedFiltersLocal = (filterObject: any): boolean => {\n if (!filterObject || typeof filterObject !== \"object\") return false;\n\n if (Array.isArray(filterObject)) {\n return filterObject.some((item) => hasAppliedFiltersLocal(item) || hasMeaningfulFilterValueLocal(item));\n }\n\n return Object.entries(filterObject).some(([key, val]) => {\n if (key === \"matchMode\" || key === \"operator\") return false;\n if (key === \"value\") return hasMeaningfulFilterValueLocal(val);\n if ((key === \"$and\" || key === \"$or\") && Array.isArray(val)) {\n return val.some((item) => hasAppliedFiltersLocal(item) || hasMeaningfulFilterValueLocal(item));\n }\n if (typeof val === \"object\") return hasAppliedFiltersLocal(val);\n return hasMeaningfulFilterValueLocal(val);\n });\n };\n\n const hasCurrentMeaningfulPredicates =\n hasAppliedFiltersLocal(updatedFilterPredicates?.custom_filter_predicate) ||\n hasAppliedFiltersLocal(updatedFilterPredicates?.search_predicate) ||\n hasAppliedFiltersLocal(updatedFilterPredicates?.saved_filter_predicate) ||\n hasAppliedFiltersLocal(updatedFilterPredicates?.predefined_search_predicate);\n\n const hasPreviousMeaningfulPredicates =\n hasAppliedFiltersLocal(previousPredicates?.custom_filter_predicate) ||\n hasAppliedFiltersLocal(previousPredicates?.search_predicate) ||\n hasAppliedFiltersLocal(previousPredicates?.saved_filter_predicate) ||\n hasAppliedFiltersLocal(previousPredicates?.predefined_search_predicate);\n\n const shouldResetPagination =\n hasPredicateChanged && (hasCurrentMeaningfulPredicates || hasPreviousMeaningfulPredicates);\n\n if (suppressNextFilterPaginationResetRef.current) {\n suppressNextFilterPaginationResetRef.current = false;\n } else if (shouldResetPagination) {\n setFirst(0);\n }\n // Force synchronous state updates\n };\n\n // clear Filter\n const clearFilter = () => {\n if (solidListViewMetaData) {\n const { sortField, sortOrder, rows, populate, populateMedia } = initialFilterMethod();\n setRows(rows);\n setSortField(sortField);\n setSortOrder(sortOrder);\n setToPopulate(populate);\n setToPopulateMedia(populateMedia);\n }\n latestFiltersRef.current = {\n $and: []\n };\n\n\n setFilters(params.customFilter || { $and: [] })\n solidGlobalSearchElementRef?.current.clearFilter();\n };\n\n const cloneListData = () => {\n if (typeof structuredClone === \"function\") {\n return structuredClone(listViewData);\n }\n return JSON.parse(JSON.stringify(listViewData));\n };\n\n useImperativeHandle(ref, () => ({\n refresh: () => {\n void setQueryString();\n },\n clearFilters: () => {\n clearFilter();\n },\n applyFilter: (filter) => {\n handleApplyCustomFilter(filter);\n },\n setPagination: (nextFirst, nextRows) => {\n setFirst(nextFirst);\n setRows(nextRows);\n },\n setSort: (nextSortField, nextSortOrder) => {\n setSortField(nextSortField);\n setSortOrder(nextSortOrder);\n setFirst(0);\n },\n setShowArchived: (value) => {\n setShowArchived(value);\n },\n getState: () => ({\n first,\n rows,\n sortField,\n sortOrder,\n showArchived,\n filters,\n filterPredicates,\n listData: cloneListData(),\n totalRecords,\n loading,\n }),\n }), [\n first,\n rows,\n sortField,\n sortOrder,\n showArchived,\n filters,\n filterPredicates,\n totalRecords,\n loading,\n listViewData,\n ]);\n\n const [selectedSolidViewData, setSelectedSolidViewData] = useState<any>();\n const selectedDataRef = useRef<any>();\n const [deleteEntity, setDeleteEntity] = useState(false);\n\n // Recover functions\n const recoverById = (id: any) => {\n triggerRecoverSolidEntitiesById(id);\n };\n\n const recoverAll = () => {\n let recoverList: any = [];\n selectedRecoverRecords.forEach((element: any) => {\n recoverList.push(element.id);\n });\n triggerRecoverSolidEntities(recoverList);\n setRecoverDialogVisible(false);\n };\n\n useEffect(() => {\n if (recoverByIdIsSuccess && recoverByIdData) {\n dispatch(showToast({ severity: \"success\", summary: \"Success\", detail: recoverByIdData.data.message, life: 3000 }));\n return;\n }\n if (recoverByIdIsError && recoverByIdError) {\n showError(recoverByIdError);\n return;\n }\n\n if (recoverIsError && recoverError) {\n showError(recoverError);\n }\n }, [recoverByIdIsSuccess, recoverByIdData, recoverByIdIsError, recoverByIdError, recoverIsError, recoverError]);\n\n const showError = async (error: any) => {\n const errorMessages = error?.data?.message;\n const messages = Array.isArray(errorMessages)\n ? errorMessages\n : errorMessages\n ? [errorMessages]\n : [];\n if (messages.length > 0) {\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.SEND_REPORT, detail: messages.join(', ') }));\n }\n };\n\n const showFieldError = async (error: any) => {\n if (error) {\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.SEND_REPORT, detail: String(error), life: 3000 }));\n }\n };\n\n // handle bulk deletion\n const deleteBulk = () => {\n let deleteList: any = [];\n selectedRecords.forEach((element: any) => {\n deleteList.push(element.id);\n });\n deleteManySolidEntities(deleteList)\n .unwrap()\n .then(() => {\n dispatch(showToast({ severity: 'success', summary: 'Deleted', detail: ERROR_MESSAGES.RECORD_DELETE, life: 3000 }));\n setDialogVisible(false);\n })\n .catch((error) => {\n dispatch(showToast({ severity: 'error', summary: 'Delete Failed', detail: error?.data?.message, life: 4000 }));\n });\n };\n\n // handle closing of the delete dialog...\n const onDeleteClose = () => {\n setDialogVisible(false);\n setSelectedRecords([]);\n setSelectedRecoverRecords([]);\n };\n\n const entityDisplayName =\n solidListViewMetaData?.data?.solidView?.model?.displayName || params?.modelName;\n\n const [openLightbox, setOpenLightbox] = useState(false);\n const [lightboxUrls, setLightboxUrls] = useState<any[]>([]);\n\n // Render columns dynamically based on metadata\n const renderColumnsDynamically = (solidListViewMetaData: any, solidListViewLayout: any) => {\n if (!solidListViewMetaData) {\n return;\n }\n if (!solidListViewMetaData.data) {\n return;\n }\n const solidView = solidListViewMetaData.data.solidView;\n const solidFieldsMetadata = solidListViewMetaData.data.solidFieldsMetadata;\n if (!solidView || !solidFieldsMetadata) {\n return;\n }\n const currentLayout = solidListViewLayout;\n\n return currentLayout.children?.map((column: any) => {\n const fieldMetadata = solidFieldsMetadata[column.attrs.name];\n if (!fieldMetadata) {\n return;\n }\n const visibleToRole = column?.attrs?.roles || [];\n\n if (visibleToRole.length > 0) {\n if (hasAnyRole(user?.roles, visibleToRole)) {\n return SolidListViewColumn({\n solidListViewMetaData,\n fieldMetadata,\n column,\n setLightboxUrls,\n setOpenLightbox,\n embeded: params.embeded\n });\n } else {\n return null;\n }\n } else {\n return SolidListViewColumn({\n solidListViewMetaData,\n fieldMetadata,\n column,\n setLightboxUrls,\n setOpenLightbox,\n embeded: params.embeded\n });\n }\n });\n };\n\n //Note - Custom Row Action Popup\n const closeListViewRowActionPopup = () => {\n setListViewRowActionPopupState(false);\n };\n\n // if (loading || isLoading) {\n // return <SolidListViewShimmerLoading />;\n // }\n\n const viewMode = searchParams.get(\"viewMode\");\n\n // if (\n // (loading || isLoading) && params.embeded == false && viewMode !== \"view\"\n // ) {\n // return <SolidListViewShimmerLoading />;\n // }\n\n const hasMeaningfulFilterValue = (value: any): boolean => {\n if (value === null || value === undefined) return false;\n if (typeof value === \"string\") return value.trim().length > 0;\n if (typeof value === \"number\" || typeof value === \"boolean\") return true;\n if (Array.isArray(value)) return value.some((item) => hasMeaningfulFilterValue(item));\n if (typeof value === \"object\") return hasAppliedFilters(value);\n return false;\n };\n\n const hasAppliedFilters = (filterObject: any): boolean => {\n if (!filterObject || typeof filterObject !== \"object\") return false;\n\n if (Array.isArray(filterObject)) {\n return filterObject.some((item) => hasAppliedFilters(item) || hasMeaningfulFilterValue(item));\n }\n\n return Object.entries(filterObject).some(([key, val]) => {\n if (key === \"matchMode\" || key === \"operator\") return false;\n if (key === \"value\") return hasMeaningfulFilterValue(val);\n if ((key === \"$and\" || key === \"$or\") && Array.isArray(val)) {\n return val.some((item) => hasAppliedFilters(item) || hasMeaningfulFilterValue(item));\n }\n if (typeof val === \"object\") return hasAppliedFilters(val);\n return hasMeaningfulFilterValue(val);\n });\n };\n\n const hasFilterPredicatesApplied =\n hasAppliedFilters(filterPredicates?.custom_filter_predicate) ||\n hasAppliedFilters(filterPredicates?.search_predicate) ||\n hasAppliedFilters(filterPredicates?.saved_filter_predicate) ||\n hasAppliedFilters(filterPredicates?.predefined_search_predicate);\n\n const hasAppliedFilterValues = hasAppliedFilters(filters);\n\n const isListViewEmptyWithoutFilters =\n !loading &&\n !isLoading &&\n listViewData.length === 0 &&\n !hasAppliedFilterValues &&\n !hasFilterPredicatesApplied;\n\n const headerRequestStatusLabel =\n isSolidEntitiesDeleted\n ? \"Deleting...\"\n : recoverByIdIsLoading || recoverByIsLoading\n ? \"Recovering...\"\n : loading || isLoading || solidListViewMetaDataIsLoading || !queryDataLoaded\n ? \"Loading...\"\n : null;\n\n const showListBodyLoadingPlaceholder =\n (loading || isLoading || solidListViewMetaDataIsLoading || !queryDataLoaded) &&\n listViewData.length === 0 &&\n params.embeded === false &&\n viewMode !== \"view\";\n\n // useEffect(() => {\n // console.log(\"[SolidListView] Re-rendering list view with empty-state inputs:\", {\n // loading,\n // isLoading,\n // listViewDataLength: listViewData.length,\n // hasAppliedFilterValues,\n // hasFilterPredicatesApplied,\n // isListViewEmptyWithoutFilters,\n // viewMode,\n // filters,\n // filterPredicates,\n // });\n // }, [\n // loading,\n // isLoading,\n // listViewData.length,\n // hasAppliedFilterValues,\n // hasFilterPredicatesApplied,\n // isListViewEmptyWithoutFilters,\n // viewMode,\n // filters,\n // filterPredicates,\n // ]);\n\n // if (isListViewEmptyWithoutFilters) {\n // return (\n // <SolidEmptyListViewPlaceholder\n // createButtonUrl={createButtonUrl}\n // actionsAllowed={actionsAllowed}\n // params={params}\n // solidListViewMetaData={solidListViewMetaData}\n // />\n // );\n // }\n\n const handleFetchUpdatedRecords = () => {\n setQueryString();\n };\n\n const handleDeleteEntity = async () => {\n try {\n if (!selectedSolidViewData?.id) {\n throw new Error(ERROR_MESSAGES.NO_ENTITY_SELECTED);\n }\n\n const response: any = await deleteSolidSingleEntiry(selectedSolidViewData.id);\n\n if (response?.data?.statusCode === 200) {\n setDeleteEntity(false);\n dispatch(showToast({ severity: \"success\", summary: ERROR_MESSAGES.DELETED, detail: ERROR_MESSAGES.ENTITY_DELETE, life: 3000 }));\n } else {\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.DELETE_FAIELD, detail: response?.error?.data?.error }));\n }\n } catch (error: any) {\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.DELETE_FAIELD, detail: ERROR_MESSAGES.SOMETHING_WRONG }));\n }\n };\n\n const lightboxSlides: SolidLightboxSlide[] = Array.isArray(lightboxUrls)\n ? lightboxUrls\n .map((item: any) => {\n const src = item?.src || item?.downloadUrl || \"\";\n if (!src) {\n return null;\n }\n const mediaType = getMediaTypeFromUrl(src);\n const slide: SolidLightboxSlide = { src };\n if (mediaType !== \"image\") {\n slide.type = mediaType;\n }\n return slide;\n })\n .filter((slide): slide is SolidLightboxSlide => !!slide)\n : [];\n\n const hasEditInContextMenu = actionsAllowed.includes(`${permissionExpression(params.modelName, 'update')}`) &&\n solidListViewLayout?.attrs?.edit !== false &&\n solidListViewLayout?.attrs?.showDefaultEditButton !== false &&\n solidListViewLayout?.attrs?.showRowEditInContextMenu !== false &&\n !(isDraftPublishWorkflowEnabled && selectedDataRef.current?.publishedAt);\n\n const hasDeleteInContextMenu = actionsAllowed.includes(`${permissionExpression(params.modelName, 'delete')}`) &&\n solidListViewLayout?.attrs?.delete !== false &&\n solidListViewLayout?.attrs?.showRowDeleteInContextMenu !== false &&\n !(isDraftPublishWorkflowEnabled && selectedDataRef.current?.publishedAt);\n\n const hasCustomContextMenuButtons =\n solidListViewLayout?.attrs?.rowButtons?.some(\n (rb: any) => rb?.attrs?.actionInContextMenu === true\n );\n\n const hasAnyContextMenuActions =\n hasEditInContextMenu || hasDeleteInContextMenu || hasCustomContextMenuButtons;\n\n const toggleBothSidebars = () => {\n if (visibleNavbar) {\n dispatch(toggleNavbar()); // close both\n } else {\n dispatch(showNavbar()); // open both\n }\n };\n return (\n <div className=\"page-parent-wrapper solid-list-page-wrapper flex h-full min-h-0 overflow-hidden\">\n <div className={`solid-list-content h-full flex flex-column flex-grow-1 ${styles.ListContentWrapper}`}>\n <div className=\"solid-list-surface flex flex-column flex-1 min-h-0\">\n {solidListViewInitialMetaData &&\n <div className=\"page-header solid-list-toolbar flex-column lg:flex-row\">\n {/* <div> */}\n <div className=\"flex justify-content-between w-full\">\n <div className=\"flex gap-3 align-items-center w-full solid-list-toolbar-left\">\n <div className='flex align-items-center gap-2'>\n {params.embeded !== true &&\n <div className=\"apps-icon block md:hidden cursor-pointer\" onClick={toggleBothSidebars}>\n <LayoutGrid size={18} />\n </div>\n }\n <p className=\"m-0 view-title solid-text-wrapper\">\n {solidListViewMetaData?.data?.solidView?.action?.displayName || solidListViewMetaData?.data?.solidView?.displayName}\n </p>\n </div>\n {params.embeded === false && (\n <div className=\"hidden lg:flex\">\n {/* Keep global search mounted for now because list bootstrap/filter hydration still flows through this element. */}\n <SolidGlobalSearchElement\n key={params.modelName}\n viewType=\"list\"\n showSaveFilterPopup={showSaveFilterPopup}\n setShowSaveFilterPopup={setShowSaveFilterPopup}\n ref={solidGlobalSearchElementRef}\n viewData={solidListViewMetaData}\n handleApplyCustomFilter={handleApplyCustomFilter}\n filterPredicates={filterPredicates}\n >\n </SolidGlobalSearchElement>\n </div>\n )}\n\n </div>\n <div className=\"flex align-items-center solid-header-buttons-wrapper solid-list-toolbar-actions\">\n <SolidHeaderRequestStatus label={headerRequestStatusLabel} />\n {params.embeded === false && (\n <div className=\"flex lg:hidden\">\n <SolidButton\n type=\"button\"\n size=\"small\"\n variant=\"outline\"\n className=\"solid-icon-button\"\n onClick={() => setShowGlobalSearchElement(!showGlobalSearchElement)}\n leftIcon={<Search size={14} />}\n />\n </div>\n )}\n\n <div className=\"hidden lg:flex align-items-center solid-header-buttons-wrapper\">\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={solidListViewMetaData}\n handleCustomButtonClick={handleCustomButtonClick}\n selectedRecords={selectedRecords}\n filters={filters}\n />\n ))}\n </div>\n\n {actionsAllowed.includes(`${permissionExpression(params.modelName, 'create')}`) &&\n solidListViewLayout?.attrs?.create !== false &&\n params.embeded !== true &&\n solidListViewMetaData?.data?.solidView?.layout?.attrs\n .showDefaultAddButton !== false && (\n <SolidCreateButton\n createButtonUrl={createButtonUrl}\n createActionQueryParams={createActionQueryParams}\n solidListViewLayout={solidListViewLayout}\n responsiveIconOnly={true}\n />\n )}\n {actionsAllowed.includes(`${permissionExpression(params.modelName, 'create')}`) &&\n solidListViewLayout?.attrs?.create !== false &&\n params.embeded == true &&\n params.inlineCreate == true &&\n searchParams.get(\"viewMode\") !== \"view\" && (\n\n <SolidButton\n type=\"button\"\n icon={solidListViewLayout?.attrs?.addButtonIcon}\n leftIcon={!solidListViewLayout?.attrs?.addButtonIcon ? <Plus size={14} /> : undefined}\n className={`${solidListViewLayout?.attrs?.addButtonClassName}`}\n size=\"small\"\n onClick={() => params.handleAddClickForEmbeddedView(\"new\")}\n >\n {solidListViewLayout?.attrs?.addButtonTitle ? solidListViewLayout?.attrs?.addButtonTitle : \"Add\"}\n </SolidButton>\n )}\n {/* Button For Manual Refresh */}\n {params.embeded !== true && (\n <SolidButton\n type=\"button\"\n size=\"small\"\n variant=\"outline\"\n className=\"solid-icon-button \"\n onClick={() => {\n setQueryString();\n }}\n leftIcon={<RefreshCw size={14} />}\n />\n )}\n {showArchived && (\n <SolidButton\n type=\"button\"\n size=\"small\"\n variant=\"secondary\"\n className=\"hidden lg:flex\"\n onClick={() => setRecoverDialogVisible(true)}\n leftIcon={<RotateCcw size={14} />}\n >\n Recover\n </SolidButton>\n )}\n\n {params.embeded === false &&\n solidListViewLayout?.attrs?.configureView !== false && (\n <SolidListViewConfigure\n listViewMetaData={solidListViewMetaData}\n solidListViewLayout={solidListViewLayout}\n setShowArchived={setShowArchived}\n showArchived={showArchived}\n viewData={solidListViewMetaData}\n sizeOptions={sizeOptions}\n setSize={setSize}\n size={size}\n viewModes={viewModes}\n params={params}\n actionsAllowed={actionsAllowed}\n selectedRecords={selectedRecords}\n setDialogVisible={setDialogVisible}\n setShowSaveFilterPopup={setShowSaveFilterPopup}\n filters={filters}\n handleFetchUpdatedRecords={handleFetchUpdatedRecords}\n setRecoverDialogVisible={setRecoverDialogVisible}\n />\n )}\n </div>\n </div>\n {/* </div> */}\n {showGlobalSearchElement && params.embeded === false && (\n <div className=\"flex lg:hidden\">\n <SolidGlobalSearchElement\n viewType=\"list\"\n showSaveFilterPopup={showSaveFilterPopup}\n setShowSaveFilterPopup={setShowSaveFilterPopup}\n ref={solidGlobalSearchElementRef}\n viewData={solidListViewMetaData}\n handleApplyCustomFilter={handleApplyCustomFilter}\n filterPredicates={filterPredicates}\n >\n\n </SolidGlobalSearchElement>\n </div>\n\n )}\n </div>\n }\n\n {showListBodyLoadingPlaceholder ? (\n <div className=\"solid-view-loading-body-spacer flex-1 min-h-0\" />\n ) : (\n <>\n {isListViewEmptyWithoutFilters ? (\n <SolidEmptyListViewPlaceholder\n createButtonUrl={createButtonUrl}\n createActionQueryParams={createActionQueryParams}\n actionsAllowed={actionsAllowed}\n params={params}\n solidListViewMetaData={solidListViewMetaData}\n handleFetchUpdatedRecords={handleFetchUpdatedRecords}\n />\n\n ) : (\n <div\n className={`solid-datatable-wrapper solid-list-table-area flex-1 min-h-0 overflow-hidden ${styles.listTableArea}`}\n >\n <DataTable\n value={listViewData}\n viewportHeight={params.embeded === true ? undefined : \"calc(100dvh - 128px)\"}\n rowClassName={(rowData) => {\n return rowData.deletedAt ? \"greyed-out-row\" : \"\";\n }}\n showGridlines={false}\n lazy\n scrollable\n // scrollHeight=\"90vh\"\n size={size}\n resizableColumns\n columnResizeMode=\"expand\"\n paginator={true}\n rows={rows}\n rowsPerPageOptions={solidListViewLayout?.attrs?.pageSizeOptions}\n dataKey=\"id\"\n emptyMessage={\n solidListViewMetaData?.data?.solidView?.model?.description ||\n \"No Entities found\"\n }\n filterDisplay=\"menu\"\n totalRecords={totalRecords}\n first={first}\n onPage={onPageChange}\n onSort={(e: DataTableStateEvent) => onSort(e)}\n sortField={sortField || undefined}\n sortOrder={sortOrder}\n loading={false}\n // loading={loading || isLoading}\n selection={\n params.embeded === true\n ? []\n : [...selectedRecords, ...selectedRecoverRecords]\n }\n onSelectionChange={\n params.embeded === true ? undefined : onSelectionChange\n }\n selectionMode={params.embeded === true ? null : \"checkbox\"}\n removableSort={solidListViewLayout?.attrs?.removableSort ?? true}\n sortMode=\"single\"\n paginatorTemplate=\"RowsPerPageDropdown CurrentPageReport PrevPageLink NextPageLink\"\n currentPageReportTemplate=\"{first} - {last} of {totalRecords}\"\n onRowClick={(e) => {\n const rowData = e.data;\n\n if (solidListViewLayout?.attrs?.disableRowClick === true) return;\n\n const hasFindPermission = actionsAllowed.includes(\n permissionExpression(params.modelName, 'findOne')\n );\n const hasUpdatePermission =\n actionsAllowed.includes(permissionExpression(params.modelName, 'update')) &&\n solidListViewLayout?.attrs?.edit !== false;\n\n if (!(hasFindPermission || hasUpdatePermission)) return;\n\n if (params.embeded === true) {\n params.handleEditClickForEmbeddedView(rowData?.id);\n } else {\n if (typeof window !== \"undefined\") {\n // store a simple marker for the caller\n\n // also store the full current URL so Back can restore exact state (including action params)\n try {\n sessionStorage.setItem(\"fromView\", \"list\");\n sessionStorage.setItem(\"fromViewUrl\", window.location.pathname + window.location.search);\n } catch (e) {\n // ignore storage errors\n }\n }\n router.push(`${editBaseUrl}/${rowData?.id}?viewMode=view&${new URLSearchParams(editActionQueryParams).toString()}`);\n }\n }\n }\n >\n {params.embeded === true ? null : (\n <Column\n selectionMode=\"multiple\"\n headerStyle={{ width: \"3em\" }}\n />\n )}\n {solidListViewMetaData && solidListViewLayout && renderColumnsDynamically(solidListViewMetaData, solidListViewLayout)}\n {solidListViewLayout?.attrs?.rowButtons &&\n solidListViewLayout?.attrs?.rowButtons\n .filter((rb: any) => {\n const roles = rb?.attrs?.roles || [];\n const isInContextMenu =\n rb.attrs.actionInContextMenu === true;\n\n // Only check hasAnyRole if roles are provided\n const isAllowed =\n roles.length === 0 ||\n hasAnyRole(user?.roles, roles);\n\n const isVisible = rb?.attrs?.visible !== false;\n\n return !isInContextMenu && isAllowed && isVisible;\n })\n .map((button: any, index: number) => {\n\n return (\n <Column\n key={index}\n header={button.attrs.label}\n body={(rowData) => {\n return (\n <SolidButton\n type=\"button\"\n icon={button?.attrs?.icon}\n leftIcon={!button?.attrs?.icon ? <SquarePen size={14} /> : undefined}\n className={`solid-inline-row-button w-full text-left gap-2 ${button?.attrs?.className\n ? button?.attrs?.className\n : \"\"\n }`}\n size=\"small\"\n variant=\"ghost\"\n onClick={() => {\n const event = {\n params,\n rowData: rowData,\n solidListViewMetaData:\n solidListViewMetaData?.data,\n };\n handleCustomButtonClick(button.attrs, event);\n }}\n >\n {button.attrs.showLabel !== false\n ? button.attrs.label\n : \"\"}\n </SolidButton>\n );\n }}\n />\n );\n })}\n\n {actionsAllowed.includes(\n `${permissionExpression(params.modelName, 'update')}`\n ) &&\n solidListViewLayout?.attrs?.edit !== false &&\n solidListViewLayout?.attrs?.showRowEditInContextMenu ===\n false && (\n <Column\n header=\"Edit\"\n body={(rowData) => {\n const shouldHideEditOrDeleteButton = isDraftPublishWorkflowEnabled && rowData?.publishedAt;\n return (\n <>\n {!shouldHideEditOrDeleteButton && (\n <SolidButton\n type=\"button\"\n variant=\"ghost\"\n className=\"solid-inline-row-button solid-inline-row-button-icon\"\n size=\"small\"\n leftIcon={<Pencil size={14} />}\n onClick={() => {\n if (params.embeded == true) {\n params.handleEditClickForEmbeddedView(rowData?.id);\n } else {\n if (typeof window !== \"undefined\") {\n try {\n sessionStorage.setItem(\"fromView\", \"list\");\n sessionStorage.setItem(\"fromViewUrl\", window.location.pathname + window.location.search);\n } catch (e) { }\n }\n router.push(\n `${editBaseUrl}/${rowData?.id}?viewMode=edit&${new URLSearchParams(editActionQueryParams).toString()}`\n );\n }\n }}\n />\n )}\n </>\n );\n }}\n />\n )}\n\n {actionsAllowed.includes(\n `${permissionExpression(params.modelName, 'delete')}`\n ) &&\n solidListViewLayout?.attrs?.delete !== false &&\n (params.embeded ||\n (solidListViewLayout?.attrs?.showRowDeleteInContextMenu !== undefined &&\n solidListViewLayout?.attrs?.showRowDeleteInContextMenu !== true)\n )\n &&\n (\n <Column\n header=\"Delete\"\n body={(rowData) => {\n const shouldHideEditOrDeleteButton = isDraftPublishWorkflowEnabled && rowData?.publishedAt;\n return (\n <>\n {(!shouldHideEditOrDeleteButton) && (\n <SolidButton\n type=\"button\"\n className=\"solid-inline-row-button solid-inline-row-button-icon\"\n size=\"small\"\n variant=\"ghost\"\n leftIcon={<Trash2 size={14} />}\n onClick={() => {\n if (params?.embededFieldRelationType === \"many-to-many\") {\n params?.handleDeleteClick(rowData.id);\n } else {\n setSelectedSolidViewData(rowData);\n setDeleteEntity(true);\n }\n }}\n />\n )}\n </>\n );\n }}\n />\n )}\n\n {hasAnyContextMenuActions && (\n <Column\n frozen\n alignFrozen=\"right\"\n body={(rowData) =>\n rowData?.deletedAt ? (\n <a\n onClick={(event) => {\n event.stopPropagation();\n recoverById(rowData.id);\n }}\n className=\"retrieve-button solid-row-menu-trigger\"\n >\n <RotateCcw size={14} className={styles.retrieveIcon} />\n </a>\n ) : (\n <>\n {solidListViewLayout?.attrs?.showRowContextMenu !==\n false && (\n <div className=\"flex justify-content-end\" data-no-row-click=\"true\">\n <SolidListViewRowActionsMenu\n rowData={rowData}\n hasEditInContextMenu={hasEditInContextMenu}\n hasDeleteInContextMenu={hasDeleteInContextMenu}\n hasCustomContextMenuButtons={hasCustomContextMenuButtons}\n solidListViewLayout={solidListViewLayout}\n solidListViewMetaData={solidListViewMetaData}\n params={params}\n handleCustomButtonClick={handleCustomButtonClick}\n contentClassName={styles.rowActionsOverlay}\n onSelectRow={(selectedRow: any) => {\n selectedDataRef.current = selectedRow;\n setSelectedSolidViewData(selectedRow);\n }}\n onEdit={(selectedRow: any) => {\n if (params.embeded == true) {\n params.handleEditClickForEmbeddedView(selectedRow?.id);\n } else {\n try {\n sessionStorage.setItem(\"fromView\", \"list\");\n sessionStorage.setItem(\"fromViewUrl\", window.location.pathname + window.location.search);\n } catch (e) { }\n router.push(\n `${editBaseUrl}/${selectedRow?.id}?viewMode=edit&${new URLSearchParams(editActionQueryParams).toString()}`\n );\n }\n }}\n onDelete={(selectedRow: any) => {\n setSelectedSolidViewData(selectedRow);\n setDeleteEntity(true);\n }}\n />\n </div>\n )}\n </>\n )\n }\n ></Column>\n )}\n </DataTable>\n </div>\n )}\n </>\n )}\n </div>\n </div>\n <SolidConfirmDialog\n open={isDialogVisible}\n onCancel={onDeleteClose}\n onConfirm={deleteBulk}\n className=\"solid-shadcn-confirm-dialog solid-delete-confirm-dialog\"\n headerClassName=\"solid-shadcn-dialog-head\"\n bodyClassName=\"solid-shadcn-dialog-body\"\n footerClassName=\"solid-shadcn-dialog-actions\"\n separatorClassName=\"solid-shadcn-dialog-sep\"\n showSeparator\n title=\"Delete Records\"\n message={<p className=\"solid-shadcn-dialog-text\">Are you sure you want to delete the selected records?</p>}\n confirmLabel=\"Delete\"\n cancelLabel=\"Cancel\"\n />\n <SolidDialog\n open={isRecoverDialogVisible}\n onOpenChange={(open) => {\n if (!open) {\n setRecoverDialogVisible(false);\n }\n }}\n className=\"solid-shadcn-confirm-dialog solid-delete-confirm-dialog\"\n >\n <SolidDialogHeader className=\"solid-shadcn-dialog-head\">\n <SolidDialogTitle>Confirm Recover</SolidDialogTitle>\n <SolidDialogClose />\n </SolidDialogHeader>\n <SolidDialogSeparator className=\"solid-shadcn-dialog-sep\" />\n <SolidDialogBody className=\"solid-shadcn-dialog-body\">\n <p className=\"solid-shadcn-dialog-text\">Are you sure you want to recover all records?</p>\n </SolidDialogBody>\n <SolidDialogFooter className=\"solid-shadcn-dialog-actions\">\n <SolidButton variant=\"destructive\" size=\"sm\" autoFocus onClick={recoverAll}>\n Yes\n </SolidButton>\n <SolidButton variant=\"outline\" size=\"sm\" onClick={() => setRecoverDialogVisible(false)}>\n No\n </SolidButton>\n </SolidDialogFooter>\n </SolidDialog>\n\n {\n listViewRowActionData && (\n <SolidDialog\n open={listViewRowActionPopupState}\n onOpenChange={(open) => {\n if (!open) {\n closeListViewRowActionPopup();\n }\n }}\n >\n <SolidDialogHeader>\n <SolidDialogTitle>{listViewRowActionData?.rowAction?.label || \"Action\"}</SolidDialogTitle>\n <SolidDialogClose />\n </SolidDialogHeader>\n <SolidDialogSeparator />\n <SolidDialogBody>\n <ListViewRowActionPopup\n context={listViewRowActionData}\n ></ListViewRowActionPopup>\n </SolidDialogBody>\n </SolidDialog>\n )\n }\n <SolidConfirmDialog\n open={deleteEntity}\n onCancel={() => setDeleteEntity(false)}\n onConfirm={handleDeleteEntity}\n className=\"solid-shadcn-confirm-dialog solid-delete-confirm-dialog\"\n headerClassName=\"solid-shadcn-dialog-head\"\n bodyClassName=\"solid-shadcn-dialog-body\"\n footerClassName=\"solid-shadcn-dialog-actions\"\n separatorClassName=\"solid-shadcn-dialog-sep\"\n showSeparator\n title={`Delete ${entityDisplayName}`}\n message={<p className=\"solid-shadcn-dialog-text\">{`Are you sure you want to delete this ${entityDisplayName}?`}</p>}\n confirmLabel=\"Delete\"\n cancelLabel=\"Cancel\"\n />\n {openLightbox && (\n <SolidLightbox\n open={openLightbox}\n slides={lightboxSlides}\n onClose={() => setOpenLightbox(false)}\n />\n )}\n </div >\n );\n});\n\nSolidListView.displayName = \"SolidListView\";\n"]}
|