@solidxai/core-ui 0.1.5-beta.5 → 0.1.5-beta.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/dist/components/core/chatter/SolidChatterDateDivider.js +1 -1
  2. package/dist/components/core/chatter/SolidChatterDateDivider.js.map +1 -1
  3. package/dist/components/core/chatter/SolidChatterDateDivider.tsx +1 -1
  4. package/dist/components/core/dashboard/DashboardFilter.js +1 -1
  5. package/dist/components/core/dashboard/DashboardFilter.js.map +1 -1
  6. package/dist/components/core/dashboard/DashboardFilter.tsx +5 -5
  7. package/dist/components/core/dashboard/PrimeDataTableWrapper.d.ts +3 -0
  8. package/dist/components/core/dashboard/PrimeDataTableWrapper.d.ts.map +1 -0
  9. package/dist/components/core/dashboard/PrimeDataTableWrapper.js +21 -0
  10. package/dist/components/core/dashboard/PrimeDataTableWrapper.js.map +1 -0
  11. package/dist/components/core/dashboard/PrimeDataTableWrapper.tsx +40 -0
  12. package/dist/components/core/dashboard/SolidDashboard.d.ts +0 -1
  13. package/dist/components/core/dashboard/SolidDashboard.d.ts.map +1 -1
  14. package/dist/components/core/dashboard/SolidDashboard.js +50 -26
  15. package/dist/components/core/dashboard/SolidDashboard.js.map +1 -1
  16. package/dist/components/core/dashboard/SolidDashboard.module.css +6 -2
  17. package/dist/components/core/dashboard/SolidDashboard.tsx +112 -65
  18. package/dist/components/core/dashboard/SolidDashboardBody.d.ts +13 -1
  19. package/dist/components/core/dashboard/SolidDashboardBody.d.ts.map +1 -1
  20. package/dist/components/core/dashboard/SolidDashboardBody.js +134 -48
  21. package/dist/components/core/dashboard/SolidDashboardBody.js.map +1 -1
  22. package/dist/components/core/dashboard/SolidDashboardBody.tsx +143 -91
  23. package/dist/components/core/dashboard/SolidQuestionRenderer.d.ts.map +1 -1
  24. package/dist/components/core/dashboard/SolidQuestionRenderer.js +1 -1
  25. package/dist/components/core/dashboard/SolidQuestionRenderer.js.map +1 -1
  26. package/dist/components/core/dashboard/SolidQuestionRenderer.tsx +12 -10
  27. package/dist/components/core/dashboard/chart-renderers/ChartJsRenderer.d.ts.map +1 -1
  28. package/dist/components/core/dashboard/chart-renderers/ChartJsRenderer.js +29 -2
  29. package/dist/components/core/dashboard/chart-renderers/ChartJsRenderer.js.map +1 -1
  30. package/dist/components/core/dashboard/chart-renderers/ChartJsRenderer.tsx +33 -3
  31. package/dist/components/core/extension/solid-core/dashboard/dashboardFormViewChangeHandler.d.ts +10 -0
  32. package/dist/components/core/extension/solid-core/dashboard/dashboardFormViewChangeHandler.d.ts.map +1 -0
  33. package/dist/components/core/extension/solid-core/dashboard/dashboardFormViewChangeHandler.js +16 -0
  34. package/dist/components/core/extension/solid-core/dashboard/dashboardFormViewChangeHandler.js.map +1 -0
  35. package/dist/components/core/extension/solid-core/dashboard/dashboardFormViewChangeHandler.ts +19 -0
  36. package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionFieldChangeHandler.d.ts +8 -0
  37. package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionFieldChangeHandler.d.ts.map +1 -0
  38. package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionFieldChangeHandler.js +64 -0
  39. package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionFieldChangeHandler.js.map +1 -0
  40. package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionFieldChangeHandler.ts +30 -0
  41. package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionOnFormLoadHandler.d.ts +8 -0
  42. package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionOnFormLoadHandler.d.ts.map +1 -0
  43. package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionOnFormLoadHandler.js +62 -0
  44. package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionOnFormLoadHandler.js.map +1 -0
  45. package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionOnFormLoadHandler.ts +29 -0
  46. package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.js +2 -2
  47. package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.js.map +1 -1
  48. package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.tsx +2 -2
  49. package/dist/components/core/form/SolidFormView.js +1 -1
  50. package/dist/components/core/form/SolidFormView.js.map +1 -1
  51. package/dist/components/core/form/SolidFormView.tsx +1 -1
  52. package/dist/components/core/list/SolidListView.d.ts.map +1 -1
  53. package/dist/components/core/list/SolidListView.js +7 -4
  54. package/dist/components/core/list/SolidListView.js.map +1 -1
  55. package/dist/components/core/list/SolidListView.tsx +4 -2
  56. package/dist/constants/error-messages.d.ts +3 -0
  57. package/dist/constants/error-messages.d.ts.map +1 -1
  58. package/dist/constants/error-messages.js +3 -0
  59. package/dist/constants/error-messages.js.map +1 -1
  60. package/dist/constants/error-messages.ts +24 -20
  61. package/dist/helpers/registry.d.ts.map +1 -1
  62. package/dist/helpers/registry.js +7 -0
  63. package/dist/helpers/registry.js.map +1 -1
  64. package/dist/helpers/registry.ts +8 -0
  65. package/dist/index.d.ts +2 -0
  66. package/dist/index.d.ts.map +1 -1
  67. package/dist/index.js +2 -0
  68. package/dist/index.js.map +1 -1
  69. package/dist/index.ts +8 -0
  70. package/dist/redux/api/dashboardLayoutApi.d.ts +24 -0
  71. package/dist/redux/api/dashboardLayoutApi.d.ts.map +1 -0
  72. package/dist/redux/api/dashboardLayoutApi.js +34 -0
  73. package/dist/redux/api/dashboardLayoutApi.js.map +1 -0
  74. package/dist/redux/api/dashboardLayoutApi.ts +55 -0
  75. package/dist/redux/store/defaultStoreConfig.d.ts +4 -0
  76. package/dist/redux/store/defaultStoreConfig.d.ts.map +1 -1
  77. package/dist/redux/store/defaultStoreConfig.js +3 -2
  78. package/dist/redux/store/defaultStoreConfig.js.map +1 -1
  79. package/dist/redux/store/defaultStoreConfig.ts +4 -2
  80. package/dist/routes/pages/admin/core/DashboardPage.d.ts.map +1 -1
  81. package/dist/routes/pages/admin/core/DashboardPage.js +3 -7
  82. package/dist/routes/pages/admin/core/DashboardPage.js.map +1 -1
  83. package/dist/routes/pages/admin/core/DashboardPage.tsx +2 -5
  84. package/dist/routes/solidRoutes.js +1 -1
  85. package/dist/routes/solidRoutes.js.map +1 -1
  86. package/dist/routes/solidRoutes.tsx +1 -1
  87. package/package.json +13 -11
@@ -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 {\n DataTable,\n DataTableStateEvent,\n} from \"primereact/datatable\";\nimport { Column } from \"primereact/column\";\nimport { FilterMatchMode } from \"primereact/api\";\nimport qs from \"qs\";\nimport { Button } from \"primereact/button\";\nimport { Dialog } from \"primereact/dialog\";\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 { FilterIcon } from '../../../components/modelsComponents/filterIcon';\nimport { OverlayPanel } from \"primereact/overlaypanel\";\nimport { Toast } from \"primereact/toast\";\nimport { Divider } from \"primereact/divider\";\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 Lightbox from \"yet-another-react-lightbox\";\nimport Counter from \"yet-another-react-lightbox/plugins/counter\";\nimport Download from \"yet-another-react-lightbox/plugins/download\";\nimport Video from \"yet-another-react-lightbox/plugins/video\";\nimport \"yet-another-react-lightbox/styles.css\";\nimport \"yet-another-react-lightbox/plugins/counter.css\";\nimport { SolidListViewConfigure } from \"./SolidListViewConfigure\";\nimport { SolidListViewShimmerLoading } from \"./SolidListViewShimmerLoading\";\nimport { SolidEmptyListViewPlaceholder } from \"./SolidEmptyListViewPlaceholder\";\nimport { useHandleListCustomButtonClick } from \"../../../components/common/useHandleListCustomButtonClick\";\nimport { hasAnyRole } from \"../../../helpers/rolesHelper\";\nimport { SolidListViewHeaderButton } from \"./SolidListViewHeaderButton\";\nimport { SolidListViewRowButtonContextMenu } from \"./SolidListViewRowButtonContextMenu\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport styles from \"./SolidListViewWrapper.module.css\";\nimport { SolidXAIIcon } from \"../solid-ai/SolidXAIIcon\";\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\";\nimport { SolidAiMainWrapper } from \"../solid-ai/SolidAiMainWrapper\";\nimport { showNavbar, toggleNavbar } from \"../../../redux/features/navbarSlice\";\nimport { useLazyGetMcpUrlQuery, useLazyGetSolidSettingsQuery } from \"../../../redux/api/solidSettingsApi\";\nimport { normalizeSolidListTreeKanbanActionPath } from \"../../../helpers/routePaths\";\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: string) => {\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: string) => {\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: (nextMultiSortMeta: { field: string; order: 1 | -1 }[]) => 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 multiSortMeta: { field: string; order: 1 | -1 }[];\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 [multiSortMeta, setMultiSortMeta] = useState<{ field: string; order: 1 | -1 }[]>([{ field: \"id\", order: -1 }]);\n const [toPopulate, setToPopulate] = useState<string[]>([]);\n const [toPopulateMedia, setToPopulateMedia] = useState<string[]>([]);\n\n\n const [actionsAllowed, setActionsAllowed] = useState<string[]>([]);\n const [isOpenSolidXAiPanel, setIsOpenSolidXAiPanel] = useState(false);\n const [chatterWidth, setChatterWidth] = useState(380);\n const [isResizing, setIsResizing] = useState(false);\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\n const [triggerCheckIfPermissionExists] = useLazyCheckIfPermissionExistsQuery();\n\n const handleCustomButtonClick = useHandleListCustomButtonClick();\n\n const [mcpUrl, setMcpUrl] = useState<string | null>(null);\n const [getMcpUrl] = useLazyGetMcpUrlQuery();\n\n const [trigger, { data: solidSettingsData }] = useLazyGetSolidSettingsQuery();\n useEffect(() => {\n trigger(\"\") // Fetch settings on mount\n }, [])\n\n const editBaseUrl = useMemo(\n () => normalizeSolidListTreeKanbanActionPath(pathname, editButtonUrl || \"form\"),\n [editButtonUrl, pathname]\n );\n\n useEffect(() => {\n if (solidSettingsData?.data?.mcpEnabled && solidSettingsData?.data?.mcpServerUrl) {\n enableSolidXAiPanel();\n }\n }, [solidSettingsData]);\n\n const enableSolidXAiPanel = async () => {\n try {\n const queryData = {\n showHeader: \"true\",\n inListView: \"true\"\n };\n const queryString = qs.stringify({ ...queryData }, { encodeValuesOnly: true });\n const response = await getMcpUrl(queryString).unwrap();\n console.log(\"response\", response);\n if (response && response?.data?.mcpUrl) {\n setMcpUrl(response?.data?.mcpUrl);\n }\n } catch (error) {\n\n }\n }\n\n\n useEffect(() => {\n const storedOpen = localStorage.getItem(\"l_solidxai_open\");\n const storedWidth = localStorage.getItem(\"l_solidxai_width\");\n\n if (storedOpen !== null) {\n setIsOpenSolidXAiPanel(storedOpen === \"true\");\n }\n\n if (storedWidth !== null) {\n const width = parseInt(storedWidth, 10);\n if (!isNaN(width)) {\n setChatterWidth(width);\n }\n }\n }, []);\n\n useEffect(() => {\n if (isResizing) {\n const handleMouseMove = (e: MouseEvent) => {\n const newWidth = window.innerWidth - e.clientX;\n const clampedWidth = Math.max(280, Math.min(newWidth, 700));\n setChatterWidth(clampedWidth);\n localStorage.setItem(\"l_solidxai_width\", clampedWidth.toString());\n };\n\n const handleMouseUp = () => {\n setIsResizing(false);\n };\n\n window.addEventListener(\"mousemove\", handleMouseMove);\n window.addEventListener(\"mouseup\", handleMouseUp);\n\n return () => {\n window.removeEventListener(\"mousemove\", handleMouseMove);\n window.removeEventListener(\"mouseup\", handleMouseUp);\n };\n }\n }, [isResizing]);\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 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 multiSortMeta: { field: string; order: 1 | -1 }[] = [{ field: \"id\", order: -1 }];\n return { multiSortMeta, 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 const toast = useRef<Toast>(null);\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 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 const parsedMultiSortMeta: { field: string; order: 1 | -1 }[] =\n Array.isArray(queryData.sort) && queryData.sort.length > 0\n ? queryData.sort.map((sortItem: string) => {\n const [field, order] = sortItem.split(\":\");\n return { field, order: order === \"asc\" ? 1 : -1 } as { field: string; order: 1 | -1 };\n })\n : [{ field: \"id\", order: -1 }];\n\n setMultiSortMeta(parsedMultiSortMeta);\n const { populate, populateMedia } = initialFilterMethod();\n setToPopulate(populate);\n setToPopulateMedia(populateMedia);\n } else {\n const { multiSortMeta, rows, populate, populateMedia } = initialFilterMethod();\n setRows(rows);\n setMultiSortMeta(multiSortMeta);\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 //setFilters(params.customFilter || { $and: [] })\n //setFilterPredicates(null);\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 // 1. Add the ref (near the other latestXxxRef declarations)\n const latestMultiSortMetaRef = useRef<any>(multiSortMeta);\n\n // 2. Keep it in sync\n useEffect(() => {\n latestMultiSortMetaRef.current = multiSortMeta;\n }, [multiSortMeta]);\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 multiSortMeta,\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 meta = event.multiSortMeta || [];\n\n const validMeta = meta\n .filter((m) => m.order === 1 || m.order === -1)\n .map((m) => ({\n field: m.field,\n order: m.order as 1 | -1,\n }));\n\n setMultiSortMeta(validMeta);\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 // ✅ Use ref instead of stale closure value\n const currentSortMeta = latestMultiSortMetaRef.current;\n\n if (currentSortMeta && currentSortMeta.length > 0) {\n queryData.sort = currentSortMeta.map(({ field, order }: any) => {\n const meta = solidFieldsMetadata?.[field];\n let resolvedField = field;\n if (meta?.type === \"relation\" && meta?.relationType === \"many-to-one\") {\n resolvedField = `${field}.${meta?.relationModel?.userKeyField?.name}`;\n }\n return `${resolvedField}:${order === 1 ? \"asc\" : \"desc\"}`;\n });\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 && latestFilterPredicatesRef.current.persistFilter) {\n const fileterTobeStored = structuredClone(queryData);\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 // 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 // Force synchronous state updates\n };\n\n // clear Filter\n const clearFilter = () => {\n if (solidListViewMetaData) {\n const { multiSortMeta, rows, populate, populateMedia } = initialFilterMethod();\n setRows(rows);\n setMultiSortMeta(multiSortMeta);\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: (nextMultiSortMeta) => {\n setMultiSortMeta(nextMultiSortMeta);\n setFirst(0);\n },\n setShowArchived: (value) => {\n setShowArchived(value);\n },\n getState: () => ({\n first,\n rows,\n multiSortMeta,\n showArchived,\n filters,\n filterPredicates,\n listData: cloneListData(),\n totalRecords,\n loading,\n }),\n }), [\n first,\n rows,\n multiSortMeta,\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 op = useRef<any>(null);\n const [deleteEntity, setDeleteEntity] = useState(false);\n\n // clickable link allowing one to open the detail / form view.\n const detailsBodyTemplate = (solidViewData: any) => {\n return (\n <div>\n <Button\n type=\"button\"\n text\n size=\"small\"\n className=\"\"\n onClick={(e) =>\n // @ts-ignore\n {\n e.stopPropagation();\n selectedDataRef.current = solidViewData;\n setSelectedSolidViewData(solidViewData);\n op.current.toggle(e)\n }\n }\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"3\"\n height=\"10\"\n viewBox=\"0 0 4 16\"\n fill=\"none\"\n >\n <path\n d=\"M4 14C4 14.55 3.80417 15.0208 3.4125 15.4125C3.02083 15.8042 2.55 16 2 16C1.45 16 0.979167 15.8042 0.5875 15.4125C0.195833 15.0208 0 14.55 0 14C0 13.45 0.195833 12.9792 0.5875 12.5875C0.979167 12.1958 1.45 12 2 12C2.55 12 3.02083 12.1958 3.4125 12.5875C3.80417 12.9792 4 13.45 4 14ZM4 8C4 8.55 3.80417 9.02083 3.4125 9.4125C3.02083 9.80417 2.55 10 2 10C1.45 10 0.979167 9.80417 0.5875 9.4125C0.195833 9.02083 0 8.55 0 8C0 7.45 0.195833 6.97917 0.5875 6.5875C0.979167 6.19583 1.45 6 2 6C2.55 6 3.02083 6.19583 3.4125 6.5875C3.80417 6.97917 4 7.45 4 8ZM4 2C4 2.55 3.80417 3.02083 3.4125 3.4125C3.02083 3.80417 2.55 4 2 4C1.45 4 0.979167 3.80417 0.5875 3.4125C0.195833 3.02083 0 2.55 0 2C0 1.45 0.195833 0.979166 0.5875 0.5875C0.979167 0.195833 1.45 0 2 0C2.55 0 3.02083 0.195833 3.4125 0.5875C3.80417 0.979166 4 1.45 4 2Z\"\n fill=\"#666666\"\n />\n </svg>\n </Button>\n </div>\n // <a onClick={() => {\n // if (params.embeded == true) {\n // params.handleAddClickForEmbeddedView(solidViewData.id);\n // } else {\n // router.push(`${editButtonUrl}/${solidViewData.id}`)\n // }\n // }} rel=\"noopener noreferrer\" className=\"text-sm font-bold p-0\" style={{ color: \"#12415D\" }}>\n // <i className=\"pi pi-pencil\" style={{ fontSize: \"1rem\" }}></i>\n // </a>\n );\n };\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 toast.current?.show({\n severity: \"success\",\n summary: \"Success\",\n detail: recoverByIdData.data.message,\n life: 3000,\n });\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 toast?.current?.show({\n severity: \"error\",\n summary: ERROR_MESSAGES.SEND_REPORT,\n sticky: true,\n //@ts-ignore\n content: (props) => (\n <div\n className=\"flex flex-column align-items-left\"\n style={{ flex: \"1\" }}\n >\n {messages.map((m, index) => (\n <div className=\"flex align-items-center gap-2\" key={index}>\n <span className=\"font-bold text-900\">{String(m)}</span>\n </div>\n ))}\n </div>\n ),\n });\n }\n };\n\n const showFieldError = async (error: any) => {\n if (error) {\n toast?.current?.show({\n severity: \"error\",\n summary: ERROR_MESSAGES.SEND_REPORT,\n // sticky: true,\n life: 3000,\n //@ts-ignore\n content: (props) => (\n <div\n className=\"flex flex-column align-items-left\"\n style={{ flex: \"1\" }}\n >\n <div className=\"flex align-items-center gap-2\">\n <span className=\"font-bold text-900\">{String(error)}</span>\n </div>\n </div>\n ),\n });\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 toast.current?.show({\n severity: 'success',\n summary: 'Deleted',\n detail: ERROR_MESSAGES.RECORD_DELETE,\n life: 3000\n });\n setDialogVisible(false);\n })\n .catch((error) => {\n toast.current?.show({\n severity: 'error',\n summary: 'Delete Failed',\n detail: error?.data?.message,\n life: 4000\n });\n });\n };\n\n // handle closing of the delete dialog...\n const onDeleteClose = () => {\n setDialogVisible(false);\n setSelectedRecords([]);\n setSelectedRecoverRecords([]);\n };\n\n const [openLightbox, setOpenLightbox] = useState(false);\n const [lightboxUrls, setLightboxUrls] = useState({});\n const [showGlobalSearchElement, setShowGlobalSearchElement] = useState(false);\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 isListViewEmptyWithoutFilters =\n !loading &&\n (!filters || Object.keys(filters).length === 0) &&\n listViewData.length === 0;\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 const handleOpenSolidXAIPanel = () => {\n setIsOpenSolidXAiPanel(true);\n localStorage.setItem(\"l_solidxai_open\", \"true\");\n };\n\n const handleCloseSolidXAIPanel = () => {\n setIsOpenSolidXAiPanel(false);\n localStorage.setItem(\"l_solidxai_open\", \"false\");\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 toast.current?.show({\n severity: \"success\",\n summary: ERROR_MESSAGES.DELETED,\n detail: ERROR_MESSAGES.ENTITY_DELETE,\n life: 3000,\n });\n } else {\n toast.current?.show({\n severity: \"error\",\n summary: ERROR_MESSAGES.DELETE_FAIELD,\n detail: response?.error?.data?.error,\n sticky: true, // stays until user closes\n });\n }\n } catch (error: any) {\n toast.current?.show({\n severity: \"error\",\n summary: ERROR_MESSAGES.DELETE_FAIELD,\n detail: ERROR_MESSAGES.SOMETHING_WRONG,\n sticky: true, // stays until user closes\n\n });\n }\n };\n\n const isVideoOrAudio = (url: string) => {\n // Remove query params if present\n const cleanUrl = url.split(\"?\")[0];\n const ext = cleanUrl.split(\".\").pop()?.toLowerCase();\n\n const mediaExt = [\"mp4\", \"webm\", \"ogg\", \"mov\", \"mp3\", \"wav\", \"m4a\", \"aac\"];\n\n return ext ? mediaExt.includes(ext) : false;\n };\n\n const controlsList = [\"nodownload\", \"nofullscreen\", \"noremoteplayback\"];\n\n const slides = Array.isArray(lightboxUrls)\n ? lightboxUrls.map((item: any) => {\n const url = item?.src || item?.downloadUrl || \"\";\n if (isVideoOrAudio(url)) {\n return {\n type: \"video\" as const,\n sources: [{ src: url, type: \"video/mp4\" }],\n };\n }\n return { src: url };\n })\n : [];\n\n const hasMedia = slides.some((s) => (s as any).type === \"video\");\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 flex\">\n <div className={`h-full flex-grow-1 ${styles.ListContentWrapper}`}>\n {solidListViewInitialMetaData && queryDataLoaded &&\n <div className=\"page-header flex-column lg:flex-row\">\n <Toast ref={toast} />\n {/* <div> */}\n <div className=\"flex justify-content-between w-full\">\n <div className=\"flex gap-3 align-items-center w-full \">\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 <i className=\"pi pi-th-large\"></i>\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 {solidListViewLayout?.attrs?.enableGlobalSearch === true &&\n params.embeded === false && (\n <div className=\"hidden lg:flex\">\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\n </div>\n <div className=\"flex align-items-center solid-header-buttons-wrapper\">\n {solidListViewLayout?.attrs?.enableGlobalSearch === true &&\n params.embeded === false && (\n <div className=\"flex lg:hidden\">\n <Button\n type=\"button\"\n size=\"small\"\n icon=\"pi pi-search\"\n severity=\"secondary\"\n outlined\n className=\"solid-icon-button\"\n onClick={() => setShowGlobalSearchElement(!showGlobalSearchElement)}\n >\n </Button>\n </div>\n\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 <Button\n type=\"button\"\n icon={solidListViewLayout?.attrs?.addButtonIcon ? solidListViewLayout?.attrs?.addButtonIcon : \"pi pi-plus\"}\n label={solidListViewLayout?.attrs?.addButtonTitle ? solidListViewLayout?.attrs?.addButtonTitle : \"Add\"}\n className={`${solidListViewLayout?.attrs?.addButtonClassName}`}\n size=\"small\"\n onClick={() => params.handleAddClickForEmbeddedView(\"new\")}\n ></Button>\n )}\n {/* Button For Manual Refresh */}\n {params.embeded !== true && (\n <Button\n type=\"button\"\n size=\"small\"\n icon=\"pi pi-refresh\"\n severity=\"secondary\"\n className=\"solid-icon-button \"\n outlined\n onClick={() => {\n setQueryString();\n }}\n />\n )}\n {showArchived && (\n <Button\n type=\"button\"\n icon=\"pi pi-refresh\"\n label=\"Recover\"\n size=\"small\"\n severity=\"secondary\"\n className=\"hidden lg:flex solid-icon-button \"\n onClick={() => setRecoverDialogVisible(true)}\n ></Button>\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 {solidListViewLayout?.attrs?.enableGlobalSearch === true && showGlobalSearchElement &&\n 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 {/* <Dialog\n visible={showGlobalSearchElement}\n // header=\"Confirm Delete\"\n onHide={() => setShowGlobalSearchElement(false)}\n headerClassName=\"py-2\"\n contentClassName=\"px-0 pb-0\"\n // style={{ width: '20vw' }}\n style={{height:'50vw'}}\n breakpoints={{ '1199px': '20vw', '1024px': '30vw', '767px': '90vw', '250px': '80vw' }}\n >\n <SolidGlobalSearchElement\n showSaveFilterPopup={showSaveFilterPopup}\n setShowSaveFilterPopup={setShowSaveFilterPopup}\n filters={filters}\n clearFilter={clearFilter}\n ref={solidGlobalSearchElementRef}\n viewData={solidListViewMetaData}\n handleApplyCustomFilter={handleApplyCustomFilter}>\n </SolidGlobalSearchElement>\n </Dialog> */}\n </div>\n }\n\n {(loading || isLoading) && params.embeded == false && viewMode !== \"view\" ?\n < SolidListViewShimmerLoading />\n :\n <>\n {isListViewEmptyWithoutFilters ? (\n <SolidEmptyListViewPlaceholder\n createButtonUrl={createButtonUrl}\n createActionQueryParams={createActionQueryParams}\n actionsAllowed={actionsAllowed}\n params={params}\n solidListViewMetaData={solidListViewMetaData}\n />\n\n ) : (\n <div className=\"solid-datatable-wrapper flex-1 min-h-0 overflow-auto\">\n <DataTable\n value={listViewData}\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 multiSortMeta={multiSortMeta}\n loading={false}\n // loading={loading || isLoading}\n // loadingIcon=\"pi pi-spinner\"\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={solidListViewLayout?.attrs?.sortMode ?? \"multiple\"}\n filterIcon={<FilterIcon />}\n tableClassName=\"solid-data-table\"\n paginatorClassName=\"solid-paginator\"\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 <Button\n type=\"button\"\n icon={\n button?.attrs?.icon\n ? button?.attrs?.icon\n : \"pi pi-pencil\"\n }\n className={`w-full text-left gap-2 ${button?.attrs?.className\n ? button?.attrs?.className\n : \"\"\n }`}\n label={\n button.attrs.showLabel !== false\n ? button.attrs.label\n : \"\"\n }\n size=\"small\"\n iconPos=\"left\"\n onClick={() => {\n const event = {\n params,\n rowData: rowData,\n solidListViewMetaData:\n solidListViewMetaData?.data,\n };\n handleCustomButtonClick(button.attrs, event);\n }}\n />\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 <Button\n text\n type=\"button\"\n severity=\"secondary\"\n className=\"\"\n label=\"\"\n size=\"small\"\n iconPos=\"left\"\n icon={\"pi pi-pencil\"}\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 <Button\n text\n type=\"button\"\n className=\"\"\n size=\"small\"\n iconPos=\"left\"\n severity=\"danger\"\n icon={\"pi pi-trash\"}\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\"\n >\n <i\n className=\"pi pi-refresh\"\n style={{ fontSize: \"1rem\" }}\n />\n </a>\n ) : (\n <>\n {solidListViewLayout?.attrs?.showRowContextMenu !==\n false && (\n <>\n {detailsBodyTemplate(rowData)}\n <OverlayPanel\n ref={op}\n className=\"solid-custom-overlay\"\n style={{ top: 10, minWidth: 120 }}\n >\n <div className=\"flex flex-column gap-1 p-1\">\n {hasEditInContextMenu && (\n <Button\n type=\"button\"\n className=\"w-full text-left gap-1\"\n label=\"Edit\"\n size=\"small\"\n iconPos=\"left\"\n icon={\"pi pi-pencil\"}\n onClick={() => {\n if (params.embeded == true) {\n params.handleEditClickForEmbeddedView(\n selectedDataRef.current?.id\n );\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}/${selectedDataRef.current?.id}?viewMode=edit&${new URLSearchParams(editActionQueryParams).toString()}`\n );\n }\n }}\n />\n )}\n\n {hasDeleteInContextMenu && !params.embeded && (\n <Button\n text\n type=\"button\"\n className=\"w-full text-left gap-1\"\n label=\"Delete\"\n size=\"small\"\n iconPos=\"left\"\n severity=\"danger\"\n icon={\"pi pi-trash\"}\n onClick={() => setDeleteEntity(true)}\n />\n )}\n {hasCustomContextMenuButtons && solidListViewLayout?.attrs?.rowButtons\n ?.filter(\n (rb: any) =>\n rb?.attrs?.actionInContextMenu === true &&\n rb?.attrs?.visible !== false\n )\n .map((button: any, index: number) => (\n <SolidListViewRowButtonContextMenu\n key={`${index}-${selectedDataRef?.current?.id || ''}`}\n button={button}\n params={params}\n getSelectedSolidViewData={() => selectedDataRef.current}\n // selectedSolidViewData={selectedSolidViewData}\n solidListViewMetaData={\n solidListViewMetaData\n }\n handleCustomButtonClick={\n handleCustomButtonClick\n }\n />\n ))}\n </div>\n </OverlayPanel>\n </>\n )}\n </>\n )\n }\n ></Column>\n )}\n </DataTable>\n </div>\n )}\n </>\n }\n </div>\n {\n mcpUrl &&\n params.embeded !== true && (\n <div\n className={`chatter-section ${isOpenSolidXAiPanel === false ? \"collapsed\" : \"open\"\n }`}\n style={{ width: chatterWidth }}\n >\n {isOpenSolidXAiPanel && (\n <div\n style={{\n width: 5,\n cursor: \"col-resize\",\n position: \"absolute\",\n left: 0,\n top: 0,\n bottom: 0,\n height: \"100%\",\n zIndex: 9,\n }}\n onMouseDown={() => setIsResizing(true)}\n />\n )}\n {isOpenSolidXAiPanel && (\n <Button\n icon=\"pi pi-angle-double-right\"\n size=\"small\"\n text\n className=\"chatter-collapse-btn\"\n style={{ width: 30, height: 30, aspectRatio: \"1/1\" }}\n onClick={handleCloseSolidXAIPanel}\n />\n )}\n\n {isOpenSolidXAiPanel === false ? (\n <div className=\"flex flex-column gap-2 justify-content-center p-2\">\n <div\n className=\"chatter-collapsed-content\"\n onClick={handleOpenSolidXAIPanel}\n >\n <div className=\"flex gap-2\">\n {\" \"}\n <SolidXAIIcon /> SolidX AI{\" \"}\n </div>\n </div>\n <Button\n icon=\"pi pi-chevron-left\"\n size=\"small\"\n className=\"px-0\"\n style={{ width: 30 }}\n onClick={handleOpenSolidXAIPanel}\n />\n </div>\n ) : (\n <SolidAiMainWrapper mcpUrl={mcpUrl} />\n )}\n </div>\n )\n }\n <Dialog\n visible={isDialogVisible}\n header=\"Confirm Delete\"\n onHide={() => setDialogVisible(false)}\n headerClassName=\"py-2\"\n contentClassName=\"px-0 pb-0\"\n // style={{ width: '20vw' }}\n breakpoints={{ '1199px': '30rem', '550px': '85vw' }}\n >\n <Divider className=\"m-0\" />\n <div className=\"p-4\">\n <p className=\"m-0 solid-primary-title\" style={{ fontSize: 16 }}>Are you sure you want to delete the selected records?</p>\n <div className=\"flex align-items-center gap-2 mt-3\">\n <Button label=\"Delete\" severity=\"danger\" size=\"small\" autoFocus onClick={deleteBulk} />\n <Button label=\"Cancel\" size=\"small\" onClick={onDeleteClose} outlined className='bg-primary-reverse' />\n </div>\n </div>\n </Dialog>\n <Dialog\n visible={isRecoverDialogVisible}\n header=\"Confirm Recover\"\n modal\n className=\"solid-confirm-dialog\"\n footer={() => (\n <div className=\"flex justify-content-center\">\n <Button\n label=\"Yes\"\n icon=\"pi pi-check\"\n severity=\"danger\"\n autoFocus\n onClick={recoverAll}\n />\n <Button\n label=\"No\"\n icon=\"pi pi-times\"\n onClick={() => setRecoverDialogVisible(false)}\n />\n </div>\n )}\n onHide={() => setRecoverDialogVisible(false)}\n >\n <p>Are you sure you want to recover all records?</p>\n </Dialog>\n\n {\n listViewRowActionData && (\n <Dialog\n visible={listViewRowActionPopupState}\n modal\n onHide={closeListViewRowActionPopup}\n >\n <ListViewRowActionPopup\n context={listViewRowActionData}\n ></ListViewRowActionPopup>\n </Dialog>\n )\n }\n <Dialog\n header={`Delete ${solidListViewMetaData?.data?.solidView?.model?.displayName\n ? solidListViewMetaData?.data?.solidView?.model?.displayName\n : params?.modelName\n }`}\n headerClassName=\"py-2\"\n contentClassName=\"px-0 pb-0\"\n visible={deleteEntity}\n style={{ width: \"20vw\" }}\n onHide={() => {\n if (!deleteEntity) return;\n setDeleteEntity(false);\n }}\n className=\"solid-confirm-dialog\"\n >\n <Divider className=\"m-0\" />\n <div className=\"p-4\">\n <p className=\"m-0 solid-primary-title\" style={{ fontSize: 16 }}>\n {`Are you sure you want to delete this ${solidListViewMetaData?.data?.solidView?.model?.displayName\n ? solidListViewMetaData?.data?.solidView?.model?.displayName\n : params?.modelName\n }?`}\n </p>\n {/* <p className=\"\" style={{ color: 'var{--solid-grey-500}' }}>{selectedSolidViewData?.singularName}</p> */}\n <div className=\"flex align-items-center gap-2 mt-3\">\n <Button label=\"Delete\" severity=\"danger\" size=\"small\" onClick={handleDeleteEntity} />\n <Button label=\"Cancel\" size=\"small\" onClick={() => setDeleteEntity(false)} outlined className='bg-primary-reverse' />\n </div>\n </div>\n </Dialog>\n {\n openLightbox && (\n <Lightbox\n open={openLightbox}\n plugins={\n hasMedia\n ? [Counter, Download, Video] // add Video plugin if needed\n : [Counter, Download]\n }\n close={() => setOpenLightbox(false)}\n slides={[...slides]}\n {...(hasMedia && {\n video: {\n controls: true,\n playsInline: true,\n autoPlay: false,\n loop: false,\n muted: false,\n disablePictureInPicture: false,\n disableRemotePlayback: false,\n controlsList: controlsList.join(\" \"),\n crossOrigin: \"anonymous\",\n preload: \"auto\",\n },\n })}\n />\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 {\n DataTable,\n DataTableStateEvent,\n} from \"primereact/datatable\";\nimport { Column } from \"primereact/column\";\nimport { FilterMatchMode } from \"primereact/api\";\nimport qs from \"qs\";\nimport { Button } from \"primereact/button\";\nimport { Dialog } from \"primereact/dialog\";\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 { FilterIcon } from '../../../components/modelsComponents/filterIcon';\nimport { OverlayPanel } from \"primereact/overlaypanel\";\nimport { Toast } from \"primereact/toast\";\nimport { Divider } from \"primereact/divider\";\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 Lightbox from \"yet-another-react-lightbox\";\nimport Counter from \"yet-another-react-lightbox/plugins/counter\";\nimport Download from \"yet-another-react-lightbox/plugins/download\";\nimport Video from \"yet-another-react-lightbox/plugins/video\";\nimport \"yet-another-react-lightbox/styles.css\";\nimport \"yet-another-react-lightbox/plugins/counter.css\";\nimport { SolidListViewConfigure } from \"./SolidListViewConfigure\";\nimport { SolidListViewShimmerLoading } from \"./SolidListViewShimmerLoading\";\nimport { SolidEmptyListViewPlaceholder } from \"./SolidEmptyListViewPlaceholder\";\nimport { useHandleListCustomButtonClick } from \"../../../components/common/useHandleListCustomButtonClick\";\nimport { hasAnyRole } from \"../../../helpers/rolesHelper\";\nimport { SolidListViewHeaderButton } from \"./SolidListViewHeaderButton\";\nimport { SolidListViewRowButtonContextMenu } from \"./SolidListViewRowButtonContextMenu\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport styles from \"./SolidListViewWrapper.module.css\";\nimport { SolidXAIIcon } from \"../solid-ai/SolidXAIIcon\";\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\";\nimport { SolidAiMainWrapper } from \"../solid-ai/SolidAiMainWrapper\";\nimport { showNavbar, toggleNavbar } from \"../../../redux/features/navbarSlice\";\nimport { useLazyGetMcpUrlQuery, useLazyGetSolidSettingsQuery } from \"../../../redux/api/solidSettingsApi\";\nimport { normalizeSolidListTreeKanbanActionPath } from \"../../../helpers/routePaths\";\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: string) => {\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: string) => {\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: (nextMultiSortMeta: { field: string; order: 1 | -1 }[]) => 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 multiSortMeta: { field: string; order: 1 | -1 }[];\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 [multiSortMeta, setMultiSortMeta] = useState<{ field: string; order: 1 | -1 }[]>([{ field: \"id\", order: -1 }]);\n const [toPopulate, setToPopulate] = useState<string[]>([]);\n const [toPopulateMedia, setToPopulateMedia] = useState<string[]>([]);\n\n\n const [actionsAllowed, setActionsAllowed] = useState<string[]>([]);\n const [isOpenSolidXAiPanel, setIsOpenSolidXAiPanel] = useState(false);\n const [chatterWidth, setChatterWidth] = useState(380);\n const [isResizing, setIsResizing] = useState(false);\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\n const [triggerCheckIfPermissionExists] = useLazyCheckIfPermissionExistsQuery();\n\n const handleCustomButtonClick = useHandleListCustomButtonClick();\n\n const [mcpUrl, setMcpUrl] = useState<string | null>(null);\n const [getMcpUrl] = useLazyGetMcpUrlQuery();\n\n const [trigger, { data: solidSettingsData }] = useLazyGetSolidSettingsQuery();\n useEffect(() => {\n trigger(\"\") // Fetch settings on mount\n }, [])\n\n const editBaseUrl = useMemo(\n () => normalizeSolidListTreeKanbanActionPath(pathname, editButtonUrl || \"form\"),\n [editButtonUrl, pathname]\n );\n\n useEffect(() => {\n if (solidSettingsData?.data?.mcpEnabled && solidSettingsData?.data?.mcpServerUrl) {\n enableSolidXAiPanel();\n }\n }, [solidSettingsData]);\n\n const enableSolidXAiPanel = async () => {\n try {\n const queryData = {\n showHeader: \"true\",\n inListView: \"true\"\n };\n const queryString = qs.stringify({ ...queryData }, { encodeValuesOnly: true });\n const response = await getMcpUrl(queryString).unwrap();\n console.log(\"response\", response);\n if (response && response?.data?.mcpUrl) {\n setMcpUrl(response?.data?.mcpUrl);\n }\n } catch (error) {\n\n }\n }\n\n\n useEffect(() => {\n const storedOpen = localStorage.getItem(\"l_solidxai_open\");\n const storedWidth = localStorage.getItem(\"l_solidxai_width\");\n\n if (storedOpen !== null) {\n setIsOpenSolidXAiPanel(storedOpen === \"true\");\n }\n\n if (storedWidth !== null) {\n const width = parseInt(storedWidth, 10);\n if (!isNaN(width)) {\n setChatterWidth(width);\n }\n }\n }, []);\n\n useEffect(() => {\n if (isResizing) {\n const handleMouseMove = (e: MouseEvent) => {\n const newWidth = window.innerWidth - e.clientX;\n const clampedWidth = Math.max(280, Math.min(newWidth, 700));\n setChatterWidth(clampedWidth);\n localStorage.setItem(\"l_solidxai_width\", clampedWidth.toString());\n };\n\n const handleMouseUp = () => {\n setIsResizing(false);\n };\n\n window.addEventListener(\"mousemove\", handleMouseMove);\n window.addEventListener(\"mouseup\", handleMouseUp);\n\n return () => {\n window.removeEventListener(\"mousemove\", handleMouseMove);\n window.removeEventListener(\"mouseup\", handleMouseUp);\n };\n }\n }, [isResizing]);\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 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 multiSortMeta: { field: string; order: 1 | -1 }[] = [{ field: \"id\", order: -1 }];\n return { multiSortMeta, 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 const toast = useRef<Toast>(null);\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 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 const parsedMultiSortMeta: { field: string; order: 1 | -1 }[] =\n Array.isArray(queryData.sort) && queryData.sort.length > 0\n ? queryData.sort.map((sortItem: string) => {\n const [field, order] = sortItem.split(\":\");\n return { field, order: order === \"asc\" ? 1 : -1 } as { field: string; order: 1 | -1 };\n })\n : [{ field: \"id\", order: -1 }];\n\n setMultiSortMeta(parsedMultiSortMeta);\n const { populate, populateMedia } = initialFilterMethod();\n setToPopulate(populate);\n setToPopulateMedia(populateMedia);\n } else {\n const { multiSortMeta, rows, populate, populateMedia } = initialFilterMethod();\n setRows(rows);\n setMultiSortMeta(multiSortMeta);\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 // 1. Add the ref (near the other latestXxxRef declarations)\n const latestMultiSortMetaRef = useRef<any>(multiSortMeta);\n\n // 2. Keep it in sync\n useEffect(() => {\n latestMultiSortMetaRef.current = multiSortMeta;\n }, [multiSortMeta]);\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 multiSortMeta,\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 meta = event.multiSortMeta || [];\n\n const validMeta = meta\n .filter((m) => m.order === 1 || m.order === -1)\n .map((m) => ({\n field: m.field,\n order: m.order as 1 | -1,\n }));\n\n setMultiSortMeta(validMeta);\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 // ✅ Use ref instead of stale closure value\n const currentSortMeta = latestMultiSortMetaRef.current;\n\n if (currentSortMeta && currentSortMeta.length > 0) {\n queryData.sort = currentSortMeta.map(({ field, order }: any) => {\n const meta = solidFieldsMetadata?.[field];\n let resolvedField = field;\n if (meta?.type === \"relation\" && meta?.relationType === \"many-to-one\") {\n resolvedField = `${field}.${meta?.relationModel?.userKeyField?.name}`;\n }\n return `${resolvedField}:${order === 1 ? \"asc\" : \"desc\"}`;\n });\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 && latestFilterPredicatesRef.current.persistFilter) {\n const fileterTobeStored = structuredClone(queryData);\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 // 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 // Force synchronous state updates\n };\n\n // clear Filter\n const clearFilter = () => {\n if (solidListViewMetaData) {\n const { multiSortMeta, rows, populate, populateMedia } = initialFilterMethod();\n setRows(rows);\n setMultiSortMeta(multiSortMeta);\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: (nextMultiSortMeta) => {\n setMultiSortMeta(nextMultiSortMeta);\n setFirst(0);\n },\n setShowArchived: (value) => {\n setShowArchived(value);\n },\n getState: () => ({\n first,\n rows,\n multiSortMeta,\n showArchived,\n filters,\n filterPredicates,\n listData: cloneListData(),\n totalRecords,\n loading,\n }),\n }), [\n first,\n rows,\n multiSortMeta,\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 op = useRef<any>(null);\n const [deleteEntity, setDeleteEntity] = useState(false);\n\n // clickable link allowing one to open the detail / form view.\n const detailsBodyTemplate = (solidViewData: any) => {\n return (\n <div>\n <Button\n type=\"button\"\n text\n size=\"small\"\n className=\"\"\n onClick={(e) =>\n // @ts-ignore\n {\n e.stopPropagation();\n selectedDataRef.current = solidViewData;\n setSelectedSolidViewData(solidViewData);\n op.current.toggle(e)\n }\n }\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"3\"\n height=\"10\"\n viewBox=\"0 0 4 16\"\n fill=\"none\"\n >\n <path\n d=\"M4 14C4 14.55 3.80417 15.0208 3.4125 15.4125C3.02083 15.8042 2.55 16 2 16C1.45 16 0.979167 15.8042 0.5875 15.4125C0.195833 15.0208 0 14.55 0 14C0 13.45 0.195833 12.9792 0.5875 12.5875C0.979167 12.1958 1.45 12 2 12C2.55 12 3.02083 12.1958 3.4125 12.5875C3.80417 12.9792 4 13.45 4 14ZM4 8C4 8.55 3.80417 9.02083 3.4125 9.4125C3.02083 9.80417 2.55 10 2 10C1.45 10 0.979167 9.80417 0.5875 9.4125C0.195833 9.02083 0 8.55 0 8C0 7.45 0.195833 6.97917 0.5875 6.5875C0.979167 6.19583 1.45 6 2 6C2.55 6 3.02083 6.19583 3.4125 6.5875C3.80417 6.97917 4 7.45 4 8ZM4 2C4 2.55 3.80417 3.02083 3.4125 3.4125C3.02083 3.80417 2.55 4 2 4C1.45 4 0.979167 3.80417 0.5875 3.4125C0.195833 3.02083 0 2.55 0 2C0 1.45 0.195833 0.979166 0.5875 0.5875C0.979167 0.195833 1.45 0 2 0C2.55 0 3.02083 0.195833 3.4125 0.5875C3.80417 0.979166 4 1.45 4 2Z\"\n fill=\"#666666\"\n />\n </svg>\n </Button>\n </div>\n // <a onClick={() => {\n // if (params.embeded == true) {\n // params.handleAddClickForEmbeddedView(solidViewData.id);\n // } else {\n // router.push(`${editButtonUrl}/${solidViewData.id}`)\n // }\n // }} rel=\"noopener noreferrer\" className=\"text-sm font-bold p-0\" style={{ color: \"#12415D\" }}>\n // <i className=\"pi pi-pencil\" style={{ fontSize: \"1rem\" }}></i>\n // </a>\n );\n };\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 toast.current?.show({\n severity: \"success\",\n summary: \"Success\",\n detail: recoverByIdData.data.message,\n life: 3000,\n });\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 toast?.current?.show({\n severity: \"error\",\n summary: ERROR_MESSAGES.SEND_REPORT,\n sticky: true,\n //@ts-ignore\n content: (props) => (\n <div\n className=\"flex flex-column align-items-left\"\n style={{ flex: \"1\" }}\n >\n {messages.map((m, index) => (\n <div className=\"flex align-items-center gap-2\" key={index}>\n <span className=\"font-bold text-900\">{String(m)}</span>\n </div>\n ))}\n </div>\n ),\n });\n }\n };\n\n const showFieldError = async (error: any) => {\n if (error) {\n toast?.current?.show({\n severity: \"error\",\n summary: ERROR_MESSAGES.SEND_REPORT,\n // sticky: true,\n life: 3000,\n //@ts-ignore\n content: (props) => (\n <div\n className=\"flex flex-column align-items-left\"\n style={{ flex: \"1\" }}\n >\n <div className=\"flex align-items-center gap-2\">\n <span className=\"font-bold text-900\">{String(error)}</span>\n </div>\n </div>\n ),\n });\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 toast.current?.show({\n severity: 'success',\n summary: 'Deleted',\n detail: ERROR_MESSAGES.RECORD_DELETE,\n life: 3000\n });\n setDialogVisible(false);\n })\n .catch((error) => {\n toast.current?.show({\n severity: 'error',\n summary: 'Delete Failed',\n detail: error?.data?.message,\n life: 4000\n });\n });\n };\n\n // handle closing of the delete dialog...\n const onDeleteClose = () => {\n setDialogVisible(false);\n setSelectedRecords([]);\n setSelectedRecoverRecords([]);\n };\n\n const [openLightbox, setOpenLightbox] = useState(false);\n const [lightboxUrls, setLightboxUrls] = useState({});\n const [showGlobalSearchElement, setShowGlobalSearchElement] = useState(false);\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 isListViewEmptyWithoutFilters =\n !loading &&\n (!filters || Object.keys(filters).length === 0) &&\n listViewData.length === 0;\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 const handleOpenSolidXAIPanel = () => {\n setIsOpenSolidXAiPanel(true);\n localStorage.setItem(\"l_solidxai_open\", \"true\");\n };\n\n const handleCloseSolidXAIPanel = () => {\n setIsOpenSolidXAiPanel(false);\n localStorage.setItem(\"l_solidxai_open\", \"false\");\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 toast.current?.show({\n severity: \"success\",\n summary: ERROR_MESSAGES.DELETED,\n detail: ERROR_MESSAGES.ENTITY_DELETE,\n life: 3000,\n });\n } else {\n toast.current?.show({\n severity: \"error\",\n summary: ERROR_MESSAGES.DELETE_FAIELD,\n detail: response?.error?.data?.error,\n sticky: true, // stays until user closes\n });\n }\n } catch (error: any) {\n toast.current?.show({\n severity: \"error\",\n summary: ERROR_MESSAGES.DELETE_FAIELD,\n detail: ERROR_MESSAGES.SOMETHING_WRONG,\n sticky: true, // stays until user closes\n\n });\n }\n };\n\n const isVideoOrAudio = (url: string) => {\n // Remove query params if present\n const cleanUrl = url.split(\"?\")[0];\n const ext = cleanUrl.split(\".\").pop()?.toLowerCase();\n\n const mediaExt = [\"mp4\", \"webm\", \"ogg\", \"mov\", \"mp3\", \"wav\", \"m4a\", \"aac\"];\n\n return ext ? mediaExt.includes(ext) : false;\n };\n\n const controlsList = [\"nodownload\", \"nofullscreen\", \"noremoteplayback\"];\n\n const slides = Array.isArray(lightboxUrls)\n ? lightboxUrls.map((item: any) => {\n const url = item?.src || item?.downloadUrl || \"\";\n if (isVideoOrAudio(url)) {\n return {\n type: \"video\" as const,\n sources: [{ src: url, type: \"video/mp4\" }],\n };\n }\n return { src: url };\n })\n : [];\n\n const hasMedia = slides.some((s) => (s as any).type === \"video\");\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 flex\">\n <div className={`h-full flex-grow-1 ${styles.ListContentWrapper}`}>\n {solidListViewInitialMetaData && queryDataLoaded &&\n <div className=\"page-header flex-column lg:flex-row\">\n <Toast ref={toast} />\n {/* <div> */}\n <div className=\"flex justify-content-between w-full\">\n <div className=\"flex gap-3 align-items-center w-full \">\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 <i className=\"pi pi-th-large\"></i>\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 {solidListViewLayout?.attrs?.enableGlobalSearch === true &&\n params.embeded === false && (\n <div className=\"hidden lg:flex\">\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\n </div>\n <div className=\"flex align-items-center solid-header-buttons-wrapper\">\n {solidListViewLayout?.attrs?.enableGlobalSearch === true &&\n params.embeded === false && (\n <div className=\"flex lg:hidden\">\n <Button\n type=\"button\"\n size=\"small\"\n icon=\"pi pi-search\"\n severity=\"secondary\"\n outlined\n className=\"solid-icon-button\"\n onClick={() => setShowGlobalSearchElement(!showGlobalSearchElement)}\n >\n </Button>\n </div>\n\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 <Button\n type=\"button\"\n icon={solidListViewLayout?.attrs?.addButtonIcon ? solidListViewLayout?.attrs?.addButtonIcon : \"pi pi-plus\"}\n label={solidListViewLayout?.attrs?.addButtonTitle ? solidListViewLayout?.attrs?.addButtonTitle : \"Add\"}\n className={`${solidListViewLayout?.attrs?.addButtonClassName}`}\n size=\"small\"\n onClick={() => params.handleAddClickForEmbeddedView(\"new\")}\n ></Button>\n )}\n {/* Button For Manual Refresh */}\n {params.embeded !== true && (\n <Button\n type=\"button\"\n size=\"small\"\n icon=\"pi pi-refresh\"\n severity=\"secondary\"\n className=\"solid-icon-button \"\n outlined\n onClick={() => {\n setQueryString();\n }}\n />\n )}\n {showArchived && (\n <Button\n type=\"button\"\n icon=\"pi pi-refresh\"\n label=\"Recover\"\n size=\"small\"\n severity=\"secondary\"\n className=\"hidden lg:flex solid-icon-button \"\n onClick={() => setRecoverDialogVisible(true)}\n ></Button>\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 {solidListViewLayout?.attrs?.enableGlobalSearch === true && showGlobalSearchElement &&\n 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 {/* <Dialog\n visible={showGlobalSearchElement}\n // header=\"Confirm Delete\"\n onHide={() => setShowGlobalSearchElement(false)}\n headerClassName=\"py-2\"\n contentClassName=\"px-0 pb-0\"\n // style={{ width: '20vw' }}\n style={{height:'50vw'}}\n breakpoints={{ '1199px': '20vw', '1024px': '30vw', '767px': '90vw', '250px': '80vw' }}\n >\n <SolidGlobalSearchElement\n showSaveFilterPopup={showSaveFilterPopup}\n setShowSaveFilterPopup={setShowSaveFilterPopup}\n filters={filters}\n clearFilter={clearFilter}\n ref={solidGlobalSearchElementRef}\n viewData={solidListViewMetaData}\n handleApplyCustomFilter={handleApplyCustomFilter}>\n </SolidGlobalSearchElement>\n </Dialog> */}\n </div>\n }\n\n {(loading || isLoading) && params.embeded == false && viewMode !== \"view\" ?\n < SolidListViewShimmerLoading />\n :\n <>\n {isListViewEmptyWithoutFilters ? (\n <SolidEmptyListViewPlaceholder\n createButtonUrl={createButtonUrl}\n createActionQueryParams={createActionQueryParams}\n actionsAllowed={actionsAllowed}\n params={params}\n solidListViewMetaData={solidListViewMetaData}\n />\n\n ) : (\n <div className=\"solid-datatable-wrapper flex-1 min-h-0 overflow-auto\">\n <DataTable\n value={listViewData}\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 multiSortMeta={multiSortMeta}\n loading={false}\n // loading={loading || isLoading}\n // loadingIcon=\"pi pi-spinner\"\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={solidListViewLayout?.attrs?.sortMode ?? \"multiple\"}\n filterIcon={<FilterIcon />}\n tableClassName=\"solid-data-table\"\n paginatorClassName=\"solid-paginator\"\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 <Button\n type=\"button\"\n icon={\n button?.attrs?.icon\n ? button?.attrs?.icon\n : \"pi pi-pencil\"\n }\n className={`w-full text-left gap-2 ${button?.attrs?.className\n ? button?.attrs?.className\n : \"\"\n }`}\n label={\n button.attrs.showLabel !== false\n ? button.attrs.label\n : \"\"\n }\n size=\"small\"\n iconPos=\"left\"\n onClick={() => {\n const event = {\n params,\n rowData: rowData,\n solidListViewMetaData:\n solidListViewMetaData?.data,\n };\n handleCustomButtonClick(button.attrs, event);\n }}\n />\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 <Button\n text\n type=\"button\"\n severity=\"secondary\"\n className=\"\"\n label=\"\"\n size=\"small\"\n iconPos=\"left\"\n icon={\"pi pi-pencil\"}\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 <Button\n text\n type=\"button\"\n className=\"\"\n size=\"small\"\n iconPos=\"left\"\n severity=\"danger\"\n icon={\"pi pi-trash\"}\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\"\n >\n <i\n className=\"pi pi-refresh\"\n style={{ fontSize: \"1rem\" }}\n />\n </a>\n ) : (\n <>\n {solidListViewLayout?.attrs?.showRowContextMenu !==\n false && (\n <>\n {detailsBodyTemplate(rowData)}\n <OverlayPanel\n ref={op}\n className=\"solid-custom-overlay\"\n style={{ top: 10, minWidth: 120 }}\n >\n <div className=\"flex flex-column gap-1 p-1\">\n {hasEditInContextMenu && (\n <Button\n type=\"button\"\n className=\"w-full text-left gap-1\"\n label=\"Edit\"\n size=\"small\"\n iconPos=\"left\"\n icon={\"pi pi-pencil\"}\n onClick={() => {\n if (params.embeded == true) {\n params.handleEditClickForEmbeddedView(\n selectedDataRef.current?.id\n );\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}/${selectedDataRef.current?.id}?viewMode=edit&${new URLSearchParams(editActionQueryParams).toString()}`\n );\n }\n }}\n />\n )}\n\n {hasDeleteInContextMenu && !params.embeded && (\n <Button\n text\n type=\"button\"\n className=\"w-full text-left gap-1\"\n label=\"Delete\"\n size=\"small\"\n iconPos=\"left\"\n severity=\"danger\"\n icon={\"pi pi-trash\"}\n onClick={() => setDeleteEntity(true)}\n />\n )}\n {hasCustomContextMenuButtons && solidListViewLayout?.attrs?.rowButtons\n ?.filter(\n (rb: any) =>\n rb?.attrs?.actionInContextMenu === true &&\n rb?.attrs?.visible !== false\n )\n .map((button: any, index: number) => (\n <SolidListViewRowButtonContextMenu\n key={`${index}-${selectedDataRef?.current?.id || ''}`}\n button={button}\n params={params}\n getSelectedSolidViewData={() => selectedDataRef.current}\n // selectedSolidViewData={selectedSolidViewData}\n solidListViewMetaData={\n solidListViewMetaData\n }\n handleCustomButtonClick={\n handleCustomButtonClick\n }\n />\n ))}\n </div>\n </OverlayPanel>\n </>\n )}\n </>\n )\n }\n ></Column>\n )}\n </DataTable>\n </div>\n )}\n </>\n }\n </div>\n {\n mcpUrl &&\n params.embeded !== true && (\n <div\n className={`chatter-section ${isOpenSolidXAiPanel === false ? \"collapsed\" : \"open\"\n }`}\n style={{ width: chatterWidth }}\n >\n {isOpenSolidXAiPanel && (\n <div\n style={{\n width: 5,\n cursor: \"col-resize\",\n position: \"absolute\",\n left: 0,\n top: 0,\n bottom: 0,\n height: \"100%\",\n zIndex: 9,\n }}\n onMouseDown={() => setIsResizing(true)}\n />\n )}\n {isOpenSolidXAiPanel && (\n <Button\n icon=\"pi pi-angle-double-right\"\n size=\"small\"\n text\n className=\"chatter-collapse-btn\"\n style={{ width: 30, height: 30, aspectRatio: \"1/1\" }}\n onClick={handleCloseSolidXAIPanel}\n />\n )}\n\n {isOpenSolidXAiPanel === false ? (\n <div className=\"flex flex-column gap-2 justify-content-center p-2\">\n <div\n className=\"chatter-collapsed-content\"\n onClick={handleOpenSolidXAIPanel}\n >\n <div className=\"flex gap-2\">\n {\" \"}\n <SolidXAIIcon /> SolidX AI{\" \"}\n </div>\n </div>\n <Button\n icon=\"pi pi-chevron-left\"\n size=\"small\"\n className=\"px-0\"\n style={{ width: 30 }}\n onClick={handleOpenSolidXAIPanel}\n />\n </div>\n ) : (\n <SolidAiMainWrapper mcpUrl={mcpUrl} />\n )}\n </div>\n )\n }\n <Dialog\n visible={isDialogVisible}\n header=\"Confirm Delete\"\n onHide={() => setDialogVisible(false)}\n headerClassName=\"py-2\"\n contentClassName=\"px-0 pb-0\"\n // style={{ width: '20vw' }}\n breakpoints={{ '1199px': '30rem', '550px': '85vw' }}\n >\n <Divider className=\"m-0\" />\n <div className=\"p-4\">\n <p className=\"m-0 solid-primary-title\" style={{ fontSize: 16 }}>Are you sure you want to delete the selected records?</p>\n <div className=\"flex align-items-center gap-2 mt-3\">\n <Button label=\"Delete\" severity=\"danger\" size=\"small\" autoFocus onClick={deleteBulk} />\n <Button label=\"Cancel\" size=\"small\" onClick={onDeleteClose} outlined className='bg-primary-reverse' />\n </div>\n </div>\n </Dialog>\n <Dialog\n visible={isRecoverDialogVisible}\n header=\"Confirm Recover\"\n modal\n className=\"solid-confirm-dialog\"\n footer={() => (\n <div className=\"flex justify-content-center\">\n <Button\n label=\"Yes\"\n icon=\"pi pi-check\"\n severity=\"danger\"\n autoFocus\n onClick={recoverAll}\n />\n <Button\n label=\"No\"\n icon=\"pi pi-times\"\n onClick={() => setRecoverDialogVisible(false)}\n />\n </div>\n )}\n onHide={() => setRecoverDialogVisible(false)}\n >\n <p>Are you sure you want to recover all records?</p>\n </Dialog>\n\n {\n listViewRowActionData && (\n <Dialog\n visible={listViewRowActionPopupState}\n modal\n onHide={closeListViewRowActionPopup}\n >\n <ListViewRowActionPopup\n context={listViewRowActionData}\n ></ListViewRowActionPopup>\n </Dialog>\n )\n }\n <Dialog\n header={`Delete ${solidListViewMetaData?.data?.solidView?.model?.displayName\n ? solidListViewMetaData?.data?.solidView?.model?.displayName\n : params?.modelName\n }`}\n headerClassName=\"py-2\"\n contentClassName=\"px-0 pb-0\"\n visible={deleteEntity}\n style={{ width: \"20vw\" }}\n onHide={() => {\n if (!deleteEntity) return;\n setDeleteEntity(false);\n }}\n className=\"solid-confirm-dialog\"\n >\n <Divider className=\"m-0\" />\n <div className=\"p-4\">\n <p className=\"m-0 solid-primary-title\" style={{ fontSize: 16 }}>\n {`Are you sure you want to delete this ${solidListViewMetaData?.data?.solidView?.model?.displayName\n ? solidListViewMetaData?.data?.solidView?.model?.displayName\n : params?.modelName\n }?`}\n </p>\n {/* <p className=\"\" style={{ color: 'var{--solid-grey-500}' }}>{selectedSolidViewData?.singularName}</p> */}\n <div className=\"flex align-items-center gap-2 mt-3\">\n <Button label=\"Delete\" severity=\"danger\" size=\"small\" onClick={handleDeleteEntity} />\n <Button label=\"Cancel\" size=\"small\" onClick={() => setDeleteEntity(false)} outlined className='bg-primary-reverse' />\n </div>\n </div>\n </Dialog>\n {\n openLightbox && (\n <Lightbox\n open={openLightbox}\n plugins={\n hasMedia\n ? [Counter, Download, Video] // add Video plugin if needed\n : [Counter, Download]\n }\n close={() => setOpenLightbox(false)}\n slides={[...slides]}\n {...(hasMedia && {\n video: {\n controls: true,\n playsInline: true,\n autoPlay: false,\n loop: false,\n muted: false,\n disablePictureInPicture: false,\n disableRemotePlayback: false,\n controlsList: controlsList.join(\" \"),\n crossOrigin: \"anonymous\",\n preload: \"auto\",\n },\n })}\n />\n )\n }\n </div >\n );\n});\n\nSolidListView.displayName = \"SolidListView\";\n"]}