@solidxai/core-ui 0.1.9-beta.0 → 0.1.9-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/auth/AuthLayout.js +15 -15
- package/dist/components/auth/AuthLayout.js.map +1 -1
- package/dist/components/auth/AuthLayout.tsx +1 -1
- package/dist/components/auth/SolidOTPVerify.d.ts +3 -0
- package/dist/components/auth/SolidOTPVerify.d.ts.map +1 -0
- package/dist/components/auth/SolidOTPVerify.js +67 -0
- package/dist/components/auth/SolidOTPVerify.js.map +1 -0
- package/dist/components/auth/SolidOTPVerify.tsx +133 -0
- package/dist/components/common/AuthBanner.js.map +1 -1
- package/dist/components/core/common/LoadDynamicJsxComponent.d.ts +2 -0
- package/dist/components/core/common/LoadDynamicJsxComponent.d.ts.map +1 -0
- package/dist/components/core/common/LoadDynamicJsxComponent.js +50 -0
- package/dist/components/core/common/LoadDynamicJsxComponent.js.map +1 -0
- package/dist/components/core/common/LoadDynamicJsxComponent.tsx +70 -0
- package/dist/components/core/form/SolidFormActionHeader.d.ts.map +1 -1
- package/dist/components/core/form/SolidFormActionHeader.js +4 -2
- package/dist/components/core/form/SolidFormActionHeader.js.map +1 -1
- package/dist/components/core/form/SolidFormActionHeader.tsx +4 -2
- package/dist/components/core/form/SolidFormView.d.ts.map +1 -1
- package/dist/components/core/form/SolidFormView.js +4 -1
- package/dist/components/core/form/SolidFormView.js.map +1 -1
- package/dist/components/core/form/SolidFormView.tsx +3 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js +2 -2
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.tsx +2 -2
- package/dist/components/core/kanban/SolidManyToOneFilterElement.d.ts.map +1 -1
- package/dist/components/core/kanban/SolidManyToOneFilterElement.js.map +1 -1
- package/dist/components/core/kanban/SolidManyToOneFilterElement.tsx +2 -1
- package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.d.ts.map +1 -1
- package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.js +2 -2
- package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.js.map +1 -1
- package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.tsx +10 -21
- package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.d.ts.map +1 -1
- package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.js +2 -2
- package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.js.map +1 -1
- package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.tsx +10 -18
- package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.d.ts.map +1 -1
- package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.js +6 -3
- package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.js.map +1 -1
- package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.tsx +24 -30
- package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.js.map +1 -1
- package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.tsx +2 -2
- package/dist/components/core/list/SolidListViewConfigure.d.ts.map +1 -1
- package/dist/components/core/list/SolidListViewConfigure.js +31 -2
- package/dist/components/core/list/SolidListViewConfigure.js.map +1 -1
- package/dist/components/core/list/SolidListViewConfigure.tsx +34 -2
- package/dist/components/core/list/SolidListViewRowButtonContextMenu.d.ts +1 -1
- package/dist/components/core/list/SolidListViewRowButtonContextMenu.d.ts.map +1 -1
- package/dist/components/core/list/SolidListViewRowButtonContextMenu.js +7 -6
- package/dist/components/core/list/SolidListViewRowButtonContextMenu.js.map +1 -1
- package/dist/components/core/list/SolidListViewRowButtonContextMenu.tsx +10 -9
- package/dist/components/core/tree/SolidTreeTable.d.ts +1 -1
- package/dist/components/core/tree/SolidTreeTable.d.ts.map +1 -1
- package/dist/components/core/tree/SolidTreeTable.js +78 -78
- package/dist/components/core/tree/SolidTreeTable.js.map +1 -1
- package/dist/components/core/tree/SolidTreeTable.tsx +1 -10
- package/dist/components/layout/user-profile-menu.d.ts.map +1 -1
- package/dist/components/layout/user-profile-menu.js +2 -1
- package/dist/components/layout/user-profile-menu.js.map +1 -1
- package/dist/components/layout/user-profile-menu.tsx +22 -27
- package/dist/nextAuth/authProviders.d.ts +4 -0
- package/dist/nextAuth/authProviders.d.ts.map +1 -0
- package/dist/nextAuth/authProviders.js +198 -0
- package/dist/nextAuth/authProviders.js.map +1 -0
- package/dist/nextAuth/authProviders.tsx +232 -0
- package/dist/nextAuth/handleLogout.d.ts +2 -0
- package/dist/nextAuth/handleLogout.d.ts.map +1 -0
- package/dist/nextAuth/handleLogout.js +36 -0
- package/dist/nextAuth/handleLogout.js.map +1 -0
- package/dist/nextAuth/handleLogout.tsx +39 -0
- package/dist/nextAuth/refreshAccessToken.d.ts +2 -0
- package/dist/nextAuth/refreshAccessToken.d.ts.map +1 -0
- package/dist/nextAuth/refreshAccessToken.js +24 -0
- package/dist/nextAuth/refreshAccessToken.js.map +1 -0
- package/dist/nextAuth/refreshAccessToken.tsx +28 -0
- package/dist/redux/features/settingsSlice.d.ts +20 -0
- package/dist/redux/features/settingsSlice.d.ts.map +1 -0
- package/dist/redux/features/settingsSlice.js +39 -0
- package/dist/redux/features/settingsSlice.js.map +1 -0
- package/dist/redux/features/settingsSlice.ts +60 -0
- package/dist/resources/globals.css +7 -1
- package/dist/resources/shadcn-base.css +8 -0
- package/dist/routes/pages/studio/StudioLandingPage.d.ts.map +1 -1
- package/dist/routes/pages/studio/StudioLandingPage.js +35 -7
- package/dist/routes/pages/studio/StudioLandingPage.js.map +1 -1
- package/dist/routes/pages/studio/StudioLandingPage.tsx +42 -6
- package/package.json +1 -1
- package/dist/components/core/list/SolidDataTablePagination.d.ts +0 -15
- package/dist/components/core/list/SolidDataTablePagination.d.ts.map +0 -1
- package/dist/components/core/list/SolidDataTablePagination.js +0 -22
- package/dist/components/core/list/SolidDataTablePagination.js.map +0 -1
- package/dist/components/core/list/SolidDataTablePagination.tsx +0 -71
- package/dist/components/solid-ui/SolidButton.d.ts +0 -14
- package/dist/components/solid-ui/SolidButton.d.ts.map +0 -1
- package/dist/components/solid-ui/SolidButton.js +0 -36
- package/dist/components/solid-ui/SolidButton.js.map +0 -1
- package/dist/components/solid-ui/SolidButton.tsx +0 -54
- package/dist/components/solid-ui/SolidTabs.d.ts +0 -18
- package/dist/components/solid-ui/SolidTabs.d.ts.map +0 -1
- package/dist/components/solid-ui/SolidTabs.js +0 -22
- package/dist/components/solid-ui/SolidTabs.js.map +0 -1
- package/dist/components/solid-ui/SolidTabs.tsx +0 -73
- package/dist/components/solid-ui/index.d.ts +0 -3
- package/dist/components/solid-ui/index.d.ts.map +0 -1
- package/dist/components/solid-ui/index.js +0 -3
- package/dist/components/solid-ui/index.js.map +0 -1
- package/dist/components/solid-ui/index.ts +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidFormView.js","sourceRoot":"","sources":["../../../../src/components/core/form/SolidFormView.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useSession } from '../../../hooks/useSession'\nimport { permissionExpression } from \"../../../helpers/permissions\";\nimport { createSolidEntityApi } from \"../../../redux/api/solidEntityApi\";\nimport { useGetSolidViewLayoutQuery } from \"../../../redux/api/solidViewApi\";\nimport { useLazyCheckIfPermissionExistsQuery } from \"../../../redux/api/userApi\";\nimport { FetchBaseQueryError } from \"@reduxjs/toolkit/dist/query\";\nimport { useFormik } from \"formik\";\nimport { usePathname } from \"../../../hooks/usePathname\";\nimport { useRouter } from \"../../../hooks/useRouter\";\nimport { useSearchParams } from \"../../../hooks/useSearchParams\";\nimport qs from \"qs\";\nimport { getMediaTypeFromUrl } from \"../../../helpers/mediaType\";\nimport React, { ChangeEvent, useEffect, useMemo, useRef, useState } from \"react\";\nimport * as Yup from \"yup\";\nimport { FormikObject, ISolidField, SolidFieldProps } from \"./fields/ISolidField\";\nimport { SolidBooleanField } from \"./fields/SolidBooleanField\";\nimport { SolidDateField } from \"./fields/SolidDateField\";\nimport { SolidDateTimeField } from \"./fields/SolidDateTimeField\";\nimport { SolidDecimalField } from \"./fields/SolidDecimalField\";\nimport { SolidIntegerField } from \"./fields/SolidIntegerField\";\nimport { SolidJsonField } from \"./fields/SolidJsonField\";\nimport { SolidLongTextField } from \"./fields/SolidLongTextField\";\nimport { SolidMediaMultipleField } from \"./fields/SolidMediaMultipleField\";\nimport { SolidMediaSingleField } from \"./fields/SolidMediaSingleField\";\nimport { SolidRelationField } from \"./fields/SolidRelationField\";\nimport { SolidRichTextField } from \"./fields/SolidRichTextField\";\nimport { SolidSelectionDynamicField } from \"./fields/SolidSelectionDynamicField\";\nimport { SolidSelectionStaticField } from \"./fields/SolidSelectionStaticField\";\nimport { SolidShortTextField } from \"./fields/SolidShortTextField\";\nimport { SolidTimeField } from \"./fields/SolidTimeField\";\nimport { SolidComputedField } from \"./fields/SolidComputedField\";\nimport { SolidUiEvent } from \"../../../types\";\nimport { getExtensionComponent, getExtensionFunction } from \"../../../helpers/registry\";\nimport { SolidFormWidgetProps, SolidUiEventResponse } from \"../../../types/solid-core\";\nimport { SolidPasswordField } from \"./fields/SolidPasswordField\";\nimport { SolidEmailField } from \"./fields/SolidEmailField\";\nimport { SolidFormUserViewLayout } from \"./SolidFormUserViewLayout\";\nimport { SolidLightbox } from \"../../shad-cn-ui/SolidLightbox\";\nimport type { SolidLightboxSlide } from \"../../shad-cn-ui/SolidLightbox\";\nimport { SolidFormActionHeader } from \"./SolidFormActionHeader\";\nimport { hasAnyRole } from \"../../../helpers/rolesHelper\";\nimport SolidChatterLocaleTabView from \"../locales/SolidChatterLocaleTabView\";\nimport { ERROR_MESSAGES } from \"../../../constants/error-messages\";\nimport { useLazyGetMcpUrlQuery, useLazyGetSolidSettingsQuery } from \"../../../redux/api/solidSettingsApi\";\nimport { getSettingsMap } from \"../../../helpers/settingsPayload\";\nimport { SolidFormFooter } from \"./SolidFormFooter\";\nimport { normalizeSolidFormActionPath } from \"../../../helpers/routePaths\";\nimport { showToast } from \"../../../redux/features/toastSlice\";\nimport { useDispatch } from \"react-redux\";\nimport { SolidButton, SolidConfirmDialog } from \"../../shad-cn-ui\";\nimport {\n SolidDialog,\n SolidDialogBody,\n SolidDialogClose,\n SolidDialogHeader,\n SolidDialogSeparator,\n SolidDialogTitle\n} from \"../../shad-cn-ui/SolidDialog\";\nimport { SolidHeaderRequestStatus } from \"../../common/SolidHeaderRequestStatus\";\n\nexport type SolidFormViewProps = {\n moduleName: string;\n modelName: string;\n id: string;\n embeded: boolean;\n handlePopupClose?: any,\n customCreateHandler?: any\n inlineCreateAutoSave?: boolean,\n customLayout?: any,\n parentFieldName?: string,\n parentData?: any,\n redirectToPath?: string,\n onEmbeddedFormSave?: () => void,\n};\n\n\ninterface ErrorResponseData {\n message: string;\n statusCode: number;\n error: string;\n}\n\nconst getLayoutFields = (node: any): any => {\n let fields = [];\n\n if (node.type === \"field\") {\n fields.push(node);\n }\n\n if (node.children && Array.isArray(node.children)) {\n for (const child of node.children) {\n fields = fields.concat(getLayoutFields(child));\n }\n }\n\n return fields;\n}\n\nexport const getLayoutFieldsAsObject = (layout: any[]): any => {\n const allFields = layout.flatMap(getLayoutFields);\n return allFields.reduce((result, field) => {\n if (field.attrs.name) {\n result[field.attrs.name] = { ...field };\n }\n return result;\n }, {});\n}\nexport const getActualFieldMetadata = (key: string, solidFieldsMetadata: Record<string, any>) => {\n if (solidFieldsMetadata[key]) {\n return solidFieldsMetadata[key];\n }\n\n if (key.endsWith(\"Confirm\")) {\n const baseKey = key.slice(0, -\"Confirm\".length); // Remove \"Confirm\"\n if (solidFieldsMetadata[baseKey]) {\n return solidFieldsMetadata[baseKey];\n }\n }\n\n return null; // or handle fallback\n};\n\n\nconst fieldFactory = (type: string, fieldContext: SolidFieldProps, setLightboxUrls?: any, setOpenLightbox?: any): ISolidField | null => {\n if (type === 'shortText') {\n return new SolidShortTextField(fieldContext);\n }\n if (type === 'longText') {\n return new SolidLongTextField(fieldContext);\n }\n if (type === 'int' || type === 'bigint') {\n return new SolidIntegerField(fieldContext);\n }\n if (type === 'decimal' || type === 'float') {\n return new SolidDecimalField(fieldContext);\n }\n if (type === 'boolean') {\n return new SolidBooleanField(fieldContext);\n }\n if (type === 'richText') {\n return new SolidRichTextField(fieldContext);\n }\n if (type === 'date') {\n return new SolidDateField(fieldContext);\n }\n if (type === 'datetime') {\n return new SolidDateTimeField(fieldContext);\n }\n if (type === 'time') {\n return new SolidTimeField(fieldContext);\n }\n if (type === 'json') {\n return new SolidJsonField(fieldContext);\n }\n if (type === 'selectionStatic') {\n return new SolidSelectionStaticField(fieldContext);\n }\n if (type === 'selectionDynamic') {\n return new SolidSelectionDynamicField(fieldContext);\n }\n if (type === 'relation') {\n return new SolidRelationField(fieldContext);\n }\n if (type === 'mediaSingle') {\n return new SolidMediaSingleField(fieldContext, setLightboxUrls, setOpenLightbox);\n }\n if (type === 'mediaMultiple') {\n return new SolidMediaMultipleField(fieldContext, setLightboxUrls, setOpenLightbox);\n }\n if (type === 'password') {\n return new SolidPasswordField(fieldContext);\n }\n if (type === 'email') {\n return new SolidEmailField(fieldContext);\n }\n if (type === 'computed') {\n return new SolidComputedField(fieldContext);\n }\n return null;\n}\n\n// solidFieldsMetadata={solidFieldsMetadata} solidView={solidView}\nconst SolidField = ({ formik, field, fieldMetadata, initialEntityData, solidFormViewMetaData, modelName, readOnly, viewMode, onChange, onBlur, parentFieldName, parentData, setLightboxUrls, setOpenLightbox, onEmbeddedFormSave }: any) => {\n const fieldContext: SolidFieldProps = {\n // field metadata - coming from the field-metadata table.\n fieldMetadata: fieldMetadata,\n // field layout - coming from view.layout\n field: field,\n // initial data\n data: initialEntityData,\n // complete form view metadata - this includes layout of the whole form & metadata about all fields in the corresponding model.\n solidFormViewMetaData: solidFormViewMetaData,\n modelName: modelName,\n readOnly: readOnly,\n viewMode: viewMode,\n onChange: onChange,\n onBlur: onBlur\n }\n if (parentData) {\n fieldContext.parentData = parentData;\n }\n if (parentFieldName) {\n fieldContext.parentFieldName = parentFieldName;\n }\n if (onEmbeddedFormSave) {\n fieldContext.onEmbeddedFormSave = onEmbeddedFormSave;\n }\n const solidField = fieldFactory(fieldMetadata?.type, fieldContext, setLightboxUrls, setOpenLightbox);\n\n return solidField?.render(formik);\n};\n\nconst SolidGroup = ({ children, attrs }: any) => {\n const className = [\"solid-form-layout-group\", attrs.label ? \"solid-form-layout-group--labeled\" : \"\", attrs.className]\n .filter(Boolean)\n .join(\" \");\n\n return (\n <div className={className}>\n {attrs.label && <p className=\"solid-form-layout-label\">{attrs.label}</p>}\n <div className=\"grid\">{children}</div>\n </div>\n // <div className={className}>\n // <div className=\"s_group\">\n // <fieldset>\n // {attrs.label && <p className=\"s_group_heading\">{attrs.label}</p>}\n // <div className=\"grid\">{children}</div>\n // </fieldset>\n // </div>\n\n // </div>\n // <div className=\"formgrid grid\">\n // {children}\n // </div>\n );\n};\n\nconst SolidRow = ({ children, attrs }: any) => {\n const className = [\"row\", \"solid-form-layout-row\", attrs.label ? \"solid-form-layout-row--labeled\" : \"\", attrs.className]\n .filter(Boolean)\n .join(\" \");\n\n return (\n // <div className={`row ${className}`}>\n\n // <div className=\"s_group\">\n // <fieldset>\n // {attrs.label && <p className=\"s_group_heading\">{attrs.label}</p>}\n // <div className=\"grid\">{children}</div>\n // </fieldset>\n // </div>\n\n // </div>\n <div className={className}>\n {attrs.label && <p className=\"solid-form-layout-label\">{attrs.label}</p>}\n <div className=\"grid\">{children}</div>\n </div>\n // <div>{children}</div>\n );\n};\n\nconst SolidColumn = ({ children, attrs }: any) => {\n const className = [\"solid-form-layout-column\", attrs.label ? \"solid-form-layout-column--labeled\" : \"\", attrs.className]\n .filter(Boolean)\n .join(\" \");\n\n return (\n <div className={className}>\n {attrs.label && <p className=\"solid-form-layout-label\">{attrs.label}</p>}\n <div className=\"grid\">{children}</div>\n </div>\n );\n};\n\nconst SolidSheet = ({ children }: any) => (\n <div className=\"p-fluid p-grid\">\n {children}\n </div>\n);\n\n// Internal tab data carrier — SolidNotebook reads props from this\nconst SolidPageTab = ({ children }: any) => <>{children}</>;\n\nconst SolidNotebook = ({ children, activeTab, embeded, requestedTab, requestedTabVersion }: any) => {\n const childrenArray = React.Children.toArray(children).filter(child => !!child) as any[];\n\n const router = useRouter();\n const pathname = usePathname();\n const searchParams = useSearchParams();\n const [localActiveTab, setLocalActiveTab] = useState(activeTab);\n\n const effectiveTab = embeded ? localActiveTab : activeTab;\n\n useEffect(() => {\n if (!requestedTab) return;\n const exists = childrenArray.some((child: any) => child.props?.tabKey === requestedTab);\n if (!exists) return;\n if (embeded) {\n setLocalActiveTab(requestedTab);\n } else {\n const queryParams = new URLSearchParams(searchParams.toString());\n queryParams.set('activeTab', requestedTab);\n router.push(`${pathname}?${queryParams.toString()}`);\n }\n }, [requestedTabVersion]);\n\n const activeIndex = useMemo(() => {\n const idx = childrenArray.findIndex((child: any) => child.props?.tabKey === effectiveTab);\n return idx >= 0 ? idx : 0;\n }, [childrenArray, effectiveTab]);\n\n const handleTabChange = (index: number) => {\n const selectedChild = childrenArray[index];\n const newTabKey = selectedChild?.props?.tabKey;\n if (newTabKey) {\n if (!embeded) {\n const queryParams = new URLSearchParams(searchParams.toString());\n queryParams.set('activeTab', newTabKey);\n router.push(`${pathname}?${queryParams.toString()}`);\n } else {\n setLocalActiveTab(newTabKey);\n }\n }\n };\n\n return (\n <div className=\"solid-notebook w-full\">\n <div className=\"solid-notebook-tablist\" role=\"tablist\">\n {childrenArray.map((child: any, index: number) => (\n <button\n key={index}\n type=\"button\"\n role=\"tab\"\n aria-selected={index === activeIndex}\n onClick={() => handleTabChange(index)}\n className={`solid-notebook-tab-trigger${index === activeIndex ? ' active' : ''}${child.props?.hasError ? ' error' : ''}`}\n >\n {child.props?.label}\n </button>\n ))}\n </div>\n <div className=\"solid-notebook-content\" role=\"tabpanel\">\n {childrenArray[activeIndex]}\n </div>\n </div>\n );\n};\n\nconst SolidDynamicWidget = ({ widgetName, formik, field, solidFormViewMetaData, solidFormViewData }: any) => {\n const solidView = solidFormViewMetaData.data.solidView;\n const solidFieldsMetadata = solidFormViewMetaData.data.solidFieldsMetadata;\n\n let DynamicWidget = getExtensionComponent(widgetName);\n\n const widgetProps: SolidFormWidgetProps = {\n formData: formik.values,\n field: field,\n fieldsMetadata: solidFieldsMetadata,\n viewMetadata: solidView,\n formViewData: solidFormViewData\n }\n\n return (\n <div className=\"solid-tab-view w-full\">\n {DynamicWidget && <DynamicWidget {...widgetProps} />}\n </div>\n )\n};\n\n\nconst FormikSubmitWatcher = ({ formik, tabFieldsRef, embeded, searchParams, setRequestedTab, setRequestedTabVersion }: any) => {\n const lastHandledRef = useRef(0);\n useEffect(() => {\n if (formik.submitCount === lastHandledRef.current) return;\n if (formik.isSubmitting) return;\n lastHandledRef.current = formik.submitCount;\n const erroredKeys = Object.keys(formik.errors || {});\n if (erroredKeys.length === 0) return;\n if (!tabFieldsRef.current || tabFieldsRef.current.length === 0) return;\n const currentActive = embeded ? null : (searchParams.get(\"activeTab\") || \"\");\n const currentHasError = currentActive\n ? tabFieldsRef.current.find((t: any) => t.tabKey === currentActive)?.fields.some((f: string) => erroredKeys.includes(f))\n : false;\n if (currentHasError) return;\n const firstErroredTab = tabFieldsRef.current.find((t: any) => t.fields.some((f: string) => erroredKeys.includes(f)));\n if (firstErroredTab) {\n setRequestedTab(firstErroredTab.tabKey);\n setRequestedTabVersion((v: number) => v + 1);\n }\n }, [formik.submitCount, formik.isSubmitting]);\n return null;\n};\n\nconst SolidPage = ({ attrs, children, key, formik, fields }: any) => {\n const fieldsName = fields.map((f: any) => f.attrs.name);\n const errorCount = formik.submitCount > 0 ? fieldsName.filter((name: any) => !!formik.errors[name]).length : 0;\n const label = `${attrs.label}${errorCount > 0 ? ` (${errorCount})` : ''}`;\n\n return (\n <SolidPageTab key={key} label={label} tabKey={key} hasError={errorCount > 0}>\n <div className=\"p-fluid\">{children}</div>\n </SolidPageTab>\n );\n};\n\n// Original code...\n// const addLevelToGroups = (layout: any, level = 1) => {\n// return layout.map((element: any) => {\n// if (element.type === \"group\") {\n// // Add the level to the group's attrs\n// element.attrs = {\n// ...element.attrs,\n// level: level, // Add level information to the attrs\n// // className: level === 1 ? 'col-12' : 'col-6', // Assign className based on level\n// };\n// } else {\n// element.children = addLevelToGroups(element.children, level);\n// }\n// // If the element has children, recursively apply this logic\n// // if (element.children) {\n// // element.children = addLevelToGroups(element.children, level + 1);\n// // }\n\n// return element;\n// });\n// };\n\n// Fix for immutable objects. \n// const addLevelToGroups = (layout: any, level = 1): any[] => {\n// return layout.map((element: any) => {\n// // Create a new object for immutability\n// const updatedElement = { ...element };\n\n// if (updatedElement.type === \"group\") {\n// // Add level to attrs, creating a new object for immutability\n// updatedElement.attrs = {\n// ...updatedElement.attrs,\n// level: level, // Add level information\n// };\n// }\n\n// // If the element has children, recursively apply this logic\n// if (updatedElement.children) {\n// updatedElement.children = addLevelToGroups(updatedElement.children, level + 1);\n// }\n\n// return updatedElement;\n// });\n// };\n\nconst SolidFormView = (params: SolidFormViewProps) => {\n\n const { data: session, status } = useSession();\n const user = session?.user;\n\n const pathname = usePathname();\n const router = useRouter();\n const dispatch = useDispatch();\n const searchParams = useSearchParams();\n const [confirmVisible, setConfirmVisible] = useState(false);\n const confirmResolveRef = useRef<(value: boolean) => void>();\n const [redirectToList, setRedirectToList] = useState(false);\n const [selectedLocale, setSelectedLocale] = useState<string | null>('en');\n const [defaultEntityLocaleId, setDefaultEntityLocaleId] = useState<string | null>(null);\n const [isDeleteDialogVisible, setDeleteDialogVisible] = useState(false);\n const [isLayoutDialogVisible, setLayoutDialogVisible] = useState(false);\n const [published, setPublished] = useState<string | null>(null);\n const [actionsAllowed, setActionsAllowed] = useState<string[]>([]);\n const [viewMode, setViewMode] = useState<\"view\" | \"edit\">(params.embeded === true ? \"edit\" : \"view\");\n const [createMode, setCreateMode] = useState<boolean>(false);\n const [openLightbox, setOpenLightbox] = useState(false);\n const [lightboxUrls, setLightboxUrls] = useState([]);\n const [isShowChatter, setShowChatter] = useState(false);\n const [chatterLocaleWidth, setChatterLocaleWidth] = useState(360);\n const [isResizingChatterLocale, setIsResizingChatterLocale] = useState(false);\n const [isSubmitting, setIsSubmitting] = useState(false);\n const [isMobileViewport, setIsMobileViewport] = useState(false);\n const solidFormWrapperRef = useRef<HTMLDivElement | null>(null);\n\n const tabFieldsRef = useRef<Array<{ tabKey: string; fields: string[] }>>([]);\n const [requestedTab, setRequestedTab] = useState<string | null>(null);\n const [requestedTabVersion, setRequestedTabVersion] = useState(0);\n\n const [solidWorkflowFieldValue, setSolidWorkflowFieldValue] = useState<string>(\"\");\n const [defaultTabViewOptionIndex, setDefaultTabViewOptionIndex] = useState<number>(1);\n const errorFields: string[] = [];\n\n const [triggerCheckIfPermissionExists] = useLazyCheckIfPermissionExistsQuery();\n\n const [mcpUrl, setMcpUrl] = useState<string | null>(null);\n const [getMcpUrl] = useLazyGetMcpUrlQuery();\n\n // when rendering the form view we will optionally get action params...\n // these we can bubble up in the event that is being raised onFormLayoutLoad, onFormDataLoad & onFormLoad\n const actionName = searchParams.get('actionName');\n const actionType = searchParams.get('actionType');\n const actionContext = searchParams.get('actionContext');\n\n const [trigger, { data: solidSettingsData }] = useLazyGetSolidSettingsQuery();\n const solidSettingsMap = useMemo(() => getSettingsMap(solidSettingsData), [solidSettingsData]);\n useEffect(() => {\n trigger(\"\") // Fetch settings on mount\n }, [])\n\n useEffect(() => {\n if (solidSettingsMap?.mcpEnabled && solidSettingsMap?.mcpServerUrl) {\n enableSolidXAiPanel();\n }\n }, [solidSettingsMap]);\n\n\n const enableSolidXAiPanel = async () => {\n try {\n const queryData = {\n showHeader: \"false\",\n inListView: \"false\"\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 const op = useRef(null);\n const MIN_CHATTER_WIDTH = 320;\n const MIN_FORM_SECTION_WIDTH = 420;\n\n const getMaxChatterWidth = () => {\n const wrapperWidth = solidFormWrapperRef.current?.getBoundingClientRect().width ?? window.innerWidth;\n return Math.max(MIN_CHATTER_WIDTH, wrapperWidth - MIN_FORM_SECTION_WIDTH);\n };\n\n const clampChatterWidth = (width: number) => {\n const maxWidth = getMaxChatterWidth();\n return Math.max(MIN_CHATTER_WIDTH, Math.min(width, maxWidth));\n };\n\n useEffect(() => {\n const stored = localStorage.getItem('chatter_locale_width');\n if (stored) {\n const parsed = parseInt(stored, 10);\n const clampedWidth = clampChatterWidth(parsed);\n setChatterLocaleWidth(clampedWidth);\n }\n }, []);\n useEffect(() => {\n const handleMouseMove = (e: MouseEvent) => {\n if (!isResizingChatterLocale) return;\n const wrapperRect = solidFormWrapperRef.current?.getBoundingClientRect();\n const rightEdge = wrapperRect?.right ?? window.innerWidth;\n const newWidth = rightEdge - e.clientX;\n const clampedWidth = clampChatterWidth(newWidth);\n setChatterLocaleWidth(clampedWidth);\n localStorage.setItem('chatter_locale_width', clampedWidth.toString());\n };\n\n const handleMouseUp = () => {\n setIsResizingChatterLocale(false);\n };\n\n if (isResizingChatterLocale) {\n window.addEventListener('mousemove', handleMouseMove);\n window.addEventListener('mouseup', handleMouseUp);\n }\n\n return () => {\n window.removeEventListener('mousemove', handleMouseMove);\n window.removeEventListener('mouseup', handleMouseUp);\n };\n }, [isResizingChatterLocale]);\n\n useEffect(() => {\n const updateViewportFlag = () => setIsMobileViewport(window.innerWidth <= 1199);\n updateViewportFlag();\n window.addEventListener('resize', updateViewportFlag);\n return () => window.removeEventListener('resize', updateViewportFlag);\n }, []);\n\n useEffect(() => {\n const handleWindowResize = () => {\n setChatterLocaleWidth((currentWidth) => {\n const clamped = clampChatterWidth(currentWidth);\n if (clamped !== currentWidth) {\n localStorage.setItem('chatter_locale_width', clamped.toString());\n }\n return clamped;\n });\n };\n\n window.addEventListener('resize', handleWindowResize);\n return () => window.removeEventListener('resize', handleWindowResize);\n }, []);\n\n\n useEffect(() => {\n const mode = searchParams.get('viewMode');\n const locale = searchParams.get('locale');\n const defaultEntityLocaleIdn = searchParams.get('defaultEntityLocaleId');\n if (params.id === 'new' && !locale) {\n setViewMode('edit');\n setCreateMode(true);\n return;\n }\n\n if (locale) {\n setSelectedLocale(locale);\n }\n\n if (defaultEntityLocaleIdn) {\n setDefaultEntityLocaleId(defaultEntityLocaleIdn);\n }\n\n // Set the viewMode based on the URL\n if (mode === 'view' || mode === 'edit') {\n setViewMode(mode);\n } else {\n setViewMode('view'); // Default to 'view' if no valid mode is provided\n }\n }, [searchParams, params.id]);\n\n // function that updates view mode \n const updateViewMode = (newMode: \"view\" | \"edit\") => {\n setViewMode(newMode);\n const params = new URLSearchParams(searchParams.toString());\n params.set(\"viewMode\", newMode);\n router.push(`${pathname}?${params.toString()}`);\n };\n\n useEffect(() => {\n const fetchPermissions = async () => {\n if (params.modelName) {\n const permissionNames = [\n permissionExpression(params.modelName, 'create'),\n permissionExpression(params.modelName, 'delete'),\n permissionExpression(params.modelName, 'update'),\n permissionExpression(params.modelName, 'findOne'),\n permissionExpression(params.modelName, 'publish'),\n permissionExpression(params.modelName, 'unpublish'),\n permissionExpression('chatterMessage', 'findMany')\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 // Create the RTK slices for this entitor (const id of fieldValue) {\n // if (!isInt(id)) {\n // errors.push({ field: this.fieldMetadata.name, error: `Invalid ids in ${ commandFieldName } ` });\n // }\n // }y\n const entityApi = createSolidEntityApi(params.modelName);\n const {\n useCreateSolidEntityMutation,\n useDeleteSolidEntityMutation,\n useGetSolidEntityByIdQuery,\n useUpdateSolidEntityMutation,\n usePatchUpdateSolidEntityMutation,\n usePublishSolidEntityMutation,\n useUnpublishSolidEntityMutation\n } = entityApi;\n\n const [\n createEntity,\n { isSuccess: isEntityCreateSuccess, isError: isEntityCreateError, error: entityCreateError },\n ] = useCreateSolidEntityMutation();\n\n const [\n updateEntity,\n { isSuccess: isEntityUpdateSuceess, isError: isEntityUpdateError, error: entityUpdateError },\n ] = useUpdateSolidEntityMutation();\n\n const [\n deleteEntity,\n { isSuccess: isEntityDeleteSuceess, isError: isEntityDeleteError, error: entityDeleteError },\n ] = useDeleteSolidEntityMutation();\n\n const [\n patchEntity,\n { isSuccess: isEntityPatchSuceess, isError: isEntityPatchError, error: entityPatchError },\n ] = usePatchUpdateSolidEntityMutation();\n\n const [\n publishSolidEntity,\n { isSuccess: isEntityPublishedSuccess, isError: isEntityPublishedError, error: entityPublishedError },\n ] = usePublishSolidEntityMutation();\n\n const [\n unpublishSolidEntity,\n { isSuccess: isEntityUnpublishedSuccess, isError: isEntityUnpublishedError, error: entityUnpublishedError },\n ] = useUnpublishSolidEntityMutation();\n\n // - - - - - - - - - - - -- - - - - - - - - - - - METADATA here\n // Get the form view layout & metadata first. \n const formViewMetaDataQs = qs.stringify({ ...params, viewType: 'form', defaultEntityLocaleId: defaultEntityLocaleId }, {\n encodeValuesOnly: true,\n });\n const [formViewMetaData, setFormViewMetaData] = useState({});\n const [formViewLayout, setFormViewLayout] = useState<any>(null);\n const {\n data: solidFormViewMetaData,\n isLoading: solidFormViewMetaDataIsLoading\n } = useGetSolidViewLayoutQuery(formViewMetaDataQs);\n const entityDisplayName =\n solidFormViewMetaData?.data?.solidView?.model?.displayName || params.modelName;\n const [refreshChatterMessage, setRefreshChatterMessage] = useState<boolean>(true);\n useEffect(() => {\n if (\n isEntityCreateSuccess == true ||\n isEntityUpdateSuceess == true ||\n isEntityDeleteSuceess == true ||\n isEntityPatchSuceess == true ||\n isEntityPublishedSuccess == true ||\n isEntityUnpublishedSuccess == true\n ) {\n setRefreshChatterMessage(true);\n if (params.embeded == true && params.onEmbeddedFormSave) {\n params.onEmbeddedFormSave();\n }\n // Close The pop in case the form is used in embeded form\n if (params.embeded == true) {\n params.handlePopupClose()\n }\n if (redirectToList === true) {\n if (params.redirectToPath) {\n router.push(params.redirectToPath);\n window.location.reload();\n } else {\n const segments = pathname.split('/').filter(Boolean); // Split and filter empty segments\n const newPath = '/' + segments.slice(0, -2).join('/') + '/list'; // Remove last segment and add \"/all\"\n router.push(newPath);\n }\n }\n }\n }, [isEntityCreateSuccess, isEntityUpdateSuceess, isEntityDeleteSuceess, isEntityPatchSuceess, isEntityPublishedSuccess, isEntityUnpublishedSuccess]);\n\n useEffect(() => {\n\n if (solidFormViewMetaData?.data?.solidView?.model?.internationalisation) {\n setDefaultTabViewOptionIndex(0)\n const matchedLocale = solidFormViewMetaData?.data?.applicableLocales?.find((x: any) => x.isDefault === 'yes');\n //this is to attach default locale when adding data in popup view where relations exists\n if (!selectedLocale && matchedLocale && !searchParams.get('locale')) {\n setSelectedLocale(matchedLocale.locale);\n }\n }\n\n }, [params.modelName, solidFormViewMetaData])\n\n function isFetchBaseQueryErrorWithErrorResponse(error: any): error is FetchBaseQueryError & { data: ErrorResponseData } {\n return error && typeof error === 'object' && 'data' in error && 'message' in error.data;\n }\n\n useEffect(() => {\n const handleError = (errorToast: any) => {\n let errorMessage: any = [ERROR_MESSAGES.ERROR_OCCURED];\n\n if (isFetchBaseQueryErrorWithErrorResponse(errorToast)) {\n errorMessage = errorToast.data.message;\n } else {\n errorMessage = [ERROR_MESSAGES.SOMETHING_WRONG];\n }\n\n const detail = Array.isArray(errorMessage) ? errorMessage.join(', ') : errorMessage;\n dispatch(showToast({ severity: 'error', summary: 'Error', detail }));\n };\n\n // Check and handle errors from each API operation\n if (isEntityCreateError) {\n handleError(entityCreateError);\n } else if (isEntityDeleteError) {\n handleError(entityDeleteError);\n } else if (isEntityUpdateError) {\n handleError(entityUpdateError);\n } else if (isEntityPatchError) {\n handleError(entityPatchError);\n } else if (isEntityPublishedError) {\n handleError(entityPublishedError);\n } else if (isEntityUnpublishedError) {\n handleError(entityUnpublishedError);\n }\n }, [\n isEntityCreateError,\n isEntityDeleteError,\n isEntityUpdateError,\n isEntityPatchError,\n isEntityPublishedError,\n isEntityUnpublishedError\n ]);\n\n const confirmDialogWithPromise = () => {\n return new Promise<boolean>((resolve) => {\n confirmResolveRef.current = resolve;\n setConfirmVisible(true);\n });\n };\n\n const onFormikSubmit = async (values: any) => {\n const solidView = solidFormViewMetaData.data.solidView;\n const solidFieldsMetadata = solidFormViewMetaData.data.solidFieldsMetadata;\n const layoutFieldsObj = getLayoutFieldsAsObject([formViewLayout]);\n setIsSubmitting(true);\n try {\n let formData = new FormData();\n\n // Iterate through the keys in the values object\n Object.entries(values).forEach(([key, value]) => {\n\n const fieldMetadata = solidFieldsMetadata[key];\n // const fieldMetadata = getActualFieldMetadata(key, solidFieldsMetadata);\n const fieldContext: SolidFieldProps = {\n fieldMetadata: fieldMetadata,\n field: layoutFieldsObj[key],\n data: initialEntityData,\n solidFormViewMetaData: solidFormViewMetaData,\n modelName: params.modelName\n }\n let solidField = fieldFactory(fieldMetadata?.type, fieldContext);\n // Append each field to the FormData\n if (value !== undefined && value !== null && solidField) {\n solidField.updateFormData(value, formData);\n }\n if (value !== undefined && value !== null && key.endsWith(\"Confirm\")) {\n formData.append(key, String(value))\n }\n\n });\n\n let solidWorkflowField = solidFormViewMetaData?.data?.solidView?.layout?.attrs?.workflowField;\n if (params.id !== \"new\") {\n if (solidFormViewMetaData?.data?.solidFormViewWorkflowData) {\n if (solidFormViewMetaData?.data?.solidFieldsMetadata?.[solidWorkflowField]?.type === \"selectionStatic\") {\n formData.append(solidWorkflowField, solidWorkflowFieldValue);\n }\n if (solidFormViewMetaData?.data?.solidFieldsMetadata?.[solidWorkflowField]?.type === \"many-to-one\") {\n formData.append(`${solidWorkflowField}Id`, solidWorkflowFieldValue);\n }\n }\n }\n if (solidFormViewMetaData?.data?.solidView?.model?.internationalisation) {\n if (selectedLocale && !formData.has('localeName')) {\n formData.append('localeName', selectedLocale);\n }\n if (defaultEntityLocaleId) {\n formData.append('defaultEntityLocaleId', defaultEntityLocaleId.toString());\n }\n }\n if (solidFormViewMetaData?.data?.solidView?.model?.draftPublishWorkflow) {\n if (published) {\n formData.append('publishedAt', published);\n }\n }\n if (params.inlineCreateAutoSave === true) {\n params.customCreateHandler(formData);\n } else {\n if (params.id === 'new') {\n // default locale\n const result = await createEntity(formData).unwrap();\n dispatch(showToast({ severity: \"success\", summary: ERROR_MESSAGES.FORM_SAVED, detail: ERROR_MESSAGES.FORM_SAVED_SUCCESSFULLY }));\n // if (!params.embeded && result?.data?.id) {\n // const newPathname = pathname.replace(/new$/, result.data.id);\n\n // const params = new URLSearchParams(searchParams.toString());\n // params.set(\"viewMode\", \"view\");\n\n // const updatedUrl = `${newPathname}?${params.toString()}`;\n // await router.push(updatedUrl, { scroll: false });\n\n // setViewMode(\"view\")\n // }\n if (!params.embeded) {\n const baseFormPath = normalizeSolidFormActionPath(pathname, \"form\");\n const queryParams = new URLSearchParams(searchParams.toString());\n queryParams.set(\"viewMode\", \"view\");\n router.push(`${baseFormPath}/${result?.data?.id}?${queryParams.toString()}`);\n setViewMode(\"view\")\n }\n return result;\n }\n else {\n // updateEntity({ id: +params.id, data: formData });\n const result = await updateEntity({ id: +params.id, data: formData }).unwrap();\n // const result = await updateEntity({ id: +params.id, data: formData }).unwrap();\n if (!params.embeded) {\n dispatch(showToast({ severity: \"success\", summary: ERROR_MESSAGES.FORM_UPDATE, detail: ERROR_MESSAGES.FORM_UPDATE_SUCCESSFULLY }));\n if (result?.statusCode === 200) {\n updateViewMode(\"view\")\n }\n }\n return result;\n\n }\n }\n\n } catch (err) {\n console.error(ERROR_MESSAGES.ENTITY_FAILED, err);\n } finally {\n setIsSubmitting(false);\n }\n }\n\n const showFieldError = () => {\n if (errorFields?.length === 0) return;\n errorFields.forEach((error) => {\n dispatch(showToast({\n severity: \"error\",\n summary: \"Metadata Error\",\n detail: error,\n }));\n\n });\n\n // errorFields.length = 0;\n };\n useEffect(() => {\n if (errorFields?.length > 0) {\n showFieldError();\n }\n }, [errorFields])\n\n\n // - - - - - - - - - - - -- - - - - - - - - - - - DATA here\n // Fetch the actual data here. \n // This is the initial value of this form, will come from an API call in the case of edit. \n let layoutFields = [];\n let toPopulate: string[] = [];\n let toPopulateMedia: string[] = [];\n if (solidFormViewMetaData && formViewLayout) {\n const solidView = solidFormViewMetaData.data.solidView;\n const solidFieldsMetadata = solidFormViewMetaData.data.solidFieldsMetadata;\n layoutFields = [formViewLayout].flatMap(getLayoutFields);\n for (let i = 0; i < layoutFields?.length; i++) {\n const formLayoutField = layoutFields[i];\n const fieldMetadata = solidFieldsMetadata[formLayoutField.attrs.name];\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 (fieldMetadata?.type === 'mediaSingle' || fieldMetadata?.type === 'mediaMultiple') {\n toPopulateMedia.push(fieldMetadata.name);\n }\n }\n if (formViewLayout.attrs?.workflowField && solidFieldsMetadata[formViewLayout.attrs.workflowField]?.type === 'relation' && solidFieldsMetadata[formViewLayout.attrs.workflowField]?.relationType === 'many-to-one') {\n toPopulate.push(solidFieldsMetadata[formViewLayout.attrs.workflowField].name);\n }\n }\n // TODO: Possible optimisation here, we are firing 2 queries to load the form view data object. \n // once without populate & populateMedia and then again once after that.\n const formViewDataQs = qs.stringify({ populate: toPopulate, populateMedia: toPopulateMedia }, {\n encodeValuesOnly: true,\n });\n const [initialEntityData, setInitialEntityData] = useState({});\n const {\n data: solidFormViewData,\n isLoading: solidFormViewDataIsLoading,\n refetch: refetchSolidFormViewData,\n } = useGetSolidEntityByIdQuery({ id: params.id, qs: formViewDataQs }, {\n skip: params.id === 'new'\n });\n useEffect(() => {\n if (params.id !== 'new') {\n refetchSolidFormViewData()\n }\n }, [formViewDataQs])\n\n useEffect(() => {\n if (solidFormViewMetaData) {\n if (params.customLayout) {\n setFormViewLayout(params.customLayout);\n } else {\n setFormViewLayout(solidFormViewMetaData?.data?.solidView?.layout);\n }\n setPublished(solidFormViewData?.data?.publishedAt);\n setFormViewMetaData(solidFormViewMetaData);\n }\n }, [solidFormViewMetaData]);\n\n // useEffect(() => {\n // const handleOnFormLayoutLoadEvent = async () => {\n // if (solidFormViewMetaData) {\n // // let formLayout = solidFormViewMetaData;\n // // let customLayout = params?.customLayout;\n // const onFormLayoutLoadHandlerExtensionFunction = solidFormViewMetaData?.data?.solidView?.layout?.onFormLayoutLoad;\n // // let dynamicExtensionFunction = null;\n // let formLayout = solidFormViewMetaData?.data?.solidView?.layout;\n // if (params.customLayout) {\n // formLayout = params.customLayout;\n // }\n // const event: SolidLoadForm = {\n // parentData: params?.parentData,\n // fieldsMetadata: solidFormViewMetaData,\n // formData: solidFormViewData?.data,\n // type: 'onFormLayoutLoad',\n // viewMetadata: solidFormViewMetaData?.data?.solidView,\n // formViewLayout: formLayout,\n // queryParams: {\n // actionName,\n // actionType,\n // actionContext\n // }\n // }\n // if (onFormLayoutLoadHandlerExtensionFunction) {\n // const dynamicExtensionFunction = getExtensionFunction(onFormLayoutLoadHandlerExtensionFunction);\n // if (dynamicExtensionFunction) {\n // try {\n // const updatedFormLayout: SolidUiEventResponse = await dynamicExtensionFunction(event);\n // if (updatedFormLayout && updatedFormLayout?.layoutChanged && updatedFormLayout?.newLayout) {\n // setFormViewLayout(updatedFormLayout.newLayout);\n // // const newFormLayout = {\n // // ...formLayout,\n // // data: {\n // // ...formLayout.data,\n // // solidView: {\n // // ...formLayout.data.solidView,\n // // layout: updatedFormLayout.newLayout\n // // }\n // // }\n // // };\n // // formLayout = newFormLayout;\n // // customLayout = updatedFormLayout.newLayout;\n // }\n // } catch (error) {\n // console.error(ERROR_MESSAGES.DYNAMIC_FUNCTION_ERROR, error);\n // }\n // }\n // }\n // // setFormViewMetaData(formLayout);\n // // if (params.customLayout) {\n // // setFormViewLayout(customLayout);\n // // } else {\n // // setFormViewLayout(formLayout.data.solidView.layout);\n // // }\n // }\n // };\n // const handleOnFormDataLoadEvent = async () => {\n // const onFormDataLoadHandlerExtensionFunction = solidFormViewMetaData?.data?.solidView?.layout?.onFormDataLoad;\n // // let dynamicExtensionFunction = null;\n // let formViewData = solidFormViewData?.data;\n\n // let formLayout = solidFormViewMetaData?.data?.solidView?.layout;\n // if (params.customLayout) {\n // formLayout = params.customLayout;\n // }\n\n // const event: SolidLoadForm = {\n // fieldsMetadata: solidFormViewMetaData,\n // formData: solidFormViewData?.data,\n // type: \"onFormDataLoad\",\n // viewMetadata: solidFormViewMetaData?.data?.solidView,\n // formViewLayout: formLayout,\n // queryParams: {\n // actionName,\n // actionType,\n // actionContext\n // }\n // };\n // if (onFormDataLoadHandlerExtensionFunction) {\n // const dynamicExtensionFunction = getExtensionFunction(onFormDataLoadHandlerExtensionFunction);\n // if (dynamicExtensionFunction) {\n // const updatedFormData: SolidUiEventResponse = await dynamicExtensionFunction(event);\n\n // if (updatedFormData && updatedFormData?.dataChanged && updatedFormData?.newFormData) {\n // formViewData = updatedFormData.newFormData;\n // }\n // }\n // if (formViewData) {\n // setInitialEntityData(formViewData);\n // }\n // }\n // };\n // const handleOnFormLoadEvent = async () => {\n // const onFormLoadHandlerExtensionFunction = solidFormViewMetaData?.data?.solidView?.layout?.onFormLoad;\n // // let dynamicExtensionFunction = null;\n // let localFormViewMetadata = solidFormViewMetaData;\n // // let customLayout = params?.customLayout;\n // let formViewData = solidFormViewData?.data;\n\n // let formLayout = solidFormViewMetaData?.data?.solidView?.layout;\n // if (params.customLayout) {\n // formLayout = params.customLayout;\n // }\n\n // const event: SolidLoadForm = {\n // parentData: params?.parentData,\n // fieldsMetadata: solidFormViewMetaData,\n // formData: solidFormViewData?.data,\n // type: 'onFormLoad',\n // viewMetadata: solidFormViewMetaData?.data?.solidView,\n // formViewLayout: formViewLayout,\n // queryParams: {\n // actionName,\n // actionType,\n // actionContext\n // }\n // };\n\n // if (onFormLoadHandlerExtensionFunction) {\n // const dynamicExtensionFunction = getExtensionFunction(onFormLoadHandlerExtensionFunction);\n // if (dynamicExtensionFunction) {\n // try {\n // const result: SolidUiEventResponse = await dynamicExtensionFunction(event);\n // if (result && result?.layoutChanged && result?.newLayout) {\n // // const newLocalFormViewMetadata = {\n // // ...localFormViewMetadata,\n // // data: {\n // // ...localFormViewMetadata.data,\n // // solidView: {\n // // ...localFormViewMetadata.data.solidView,\n // // layout: result.newLayout\n // // }\n // // }\n // // };\n // // localFormViewMetadata = newLocalFormViewMetadata;\n // // customLayout = result.newLayout;\n // // setFormViewMetaData(localFormViewMetadata);\n\n // setFormViewLayout(result.newLayout);\n // // if (params.customLayout) {\n // // setFormViewLayout(customLayout);\n // // } else {\n // // setFormViewLayout(localFormViewMetadata.data.solidView.layout);\n // // }\n // }\n // if (result && result?.dataChanged && result?.newFormData) {\n // formViewData = result.newFormData;\n // setInitialEntityData(formViewData);\n // }\n // } catch (error) {\n // console.error(ERROR_MESSAGES.ON_FORM_LOAD, error);\n // }\n // }\n // }\n // };\n\n // handleOnFormLayoutLoadEvent();\n // handleOnFormDataLoadEvent();\n // handleOnFormLoadEvent();\n // }, [solidFormViewMetaData, solidFormViewData]);\n\n\n useEffect(() => {\n const runFormEvents = async () => {\n if (!solidFormViewMetaData) return;\n\n /** ----------------------------\n * 1. Initialize working state\n * ----------------------------- */\n let workingLayout = params.customLayout ?? solidFormViewMetaData?.data?.solidView?.layout;\n let workingFormData = solidFormViewData?.data;\n const baseEvent = {\n parentData: params?.parentData,\n fieldsMetadata: solidFormViewMetaData,\n viewMetadata: solidFormViewMetaData?.data?.solidView,\n queryParams: {\n actionName,\n actionType,\n actionContext,\n },\n };\n\n /** ----------------------------\n * 2. onFormLayoutLoad\n * ----------------------------- */\n const onFormLayoutLoadFn =\n solidFormViewMetaData?.data?.solidView?.layout?.onFormLayoutLoad;\n\n if (onFormLayoutLoadFn) {\n const fn = getExtensionFunction(onFormLayoutLoadFn);\n if (fn) {\n try {\n const result: SolidUiEventResponse = await fn({\n ...baseEvent,\n type: \"onFormLayoutLoad\",\n formData: workingFormData,\n formViewLayout: workingLayout,\n });\n\n if (result?.layoutChanged && result?.newLayout) {\n workingLayout = result.newLayout;\n }\n } catch (e) {\n console.error(ERROR_MESSAGES.DYNAMIC_FUNCTION_ERROR, e);\n }\n }\n }\n\n /** ----------------------------\n * 3. onFormDataLoad\n * ----------------------------- */\n const onFormDataLoadFn =\n solidFormViewMetaData?.data?.solidView?.layout?.onFormDataLoad;\n\n if (onFormDataLoadFn) {\n const fn = getExtensionFunction(onFormDataLoadFn);\n if (fn) {\n try {\n const result: SolidUiEventResponse = await fn({\n ...baseEvent,\n type: \"onFormDataLoad\",\n formData: workingFormData,\n formViewLayout: workingLayout, // ✅ UPDATED layout\n });\n\n if (result?.dataChanged && result?.newFormData) {\n workingFormData = result.newFormData;\n }\n } catch (e) {\n console.error(ERROR_MESSAGES.DYNAMIC_FUNCTION_ERROR, e);\n }\n }\n }\n\n /** ----------------------------\n * 4. onFormLoad\n * ----------------------------- */\n const onFormLoadFn =\n solidFormViewMetaData?.data?.solidView?.layout?.onFormLoad;\n\n if (onFormLoadFn) {\n const fn = getExtensionFunction(onFormLoadFn);\n if (fn) {\n try {\n const result: SolidUiEventResponse = await fn({\n ...baseEvent,\n type: \"onFormLoad\",\n formData: workingFormData,\n formViewLayout: workingLayout, // ✅ FINAL layout\n });\n\n if (result?.layoutChanged && result?.newLayout) {\n workingLayout = result.newLayout;\n }\n\n if (result?.dataChanged && result?.newFormData) {\n workingFormData = result.newFormData;\n }\n } catch (e) {\n console.error(ERROR_MESSAGES.ON_FORM_LOAD, e);\n }\n }\n }\n\n /** ----------------------------\n * 5. Commit once to React state\n * ----------------------------- */\n if (workingLayout) {\n setFormViewLayout(workingLayout);\n }\n\n if (workingFormData) {\n setInitialEntityData(workingFormData);\n }\n };\n\n runFormEvents();\n }, [solidFormViewMetaData, solidFormViewData]);\n\n\n useEffect(() => {\n if (solidFormViewData) {\n setInitialEntityData(solidFormViewData.data);\n }\n }, [solidFormViewData]);\n\n let formik: FormikObject;\n\n // If either the metadata or the data of this form is loading, then we simply render a loading screen...\n if (solidFormViewMetaDataIsLoading || solidFormViewDataIsLoading || !formViewLayout) {\n formik = useFormik({\n initialValues: {},\n validationSchema: Yup.object(),\n enableReinitialize: true,\n onSubmit: onFormikSubmit,\n });\n\n return (\n <div className=\"solid-form-wrapper\" ref={solidFormWrapperRef}>\n <div className=\"solid-form-section\">\n <div className=\"page-header solid-list-toolbar flex-column lg:flex-row\">\n <div className=\"flex justify-content-between w-full solid-form-toolbar-row\">\n <div className=\"flex gap-3 align-items-center solid-form-toolbar-left\">\n <p className=\"m-0 view-title solid-text-wrapper\">Loading form</p>\n </div>\n <div className=\"flex align-items-center solid-header-buttons-wrapper solid-form-toolbar-actions\">\n <SolidHeaderRequestStatus label=\"Loading...\" />\n </div>\n </div>\n </div>\n <div className=\"solid-view-loading-body-spacer flex-1 min-h-0\" />\n </div>\n </div>\n );\n }\n // At this point everything required to render the form is loaded, so we go ahead and start rendering things dynamically...\n else {\n\n // Initialize formik...\n const solidView = solidFormViewMetaData.data.solidView;\n const solidFieldsMetadata = solidFormViewMetaData.data.solidFieldsMetadata;\n\n const validationSchema = {};\n const initialValues = {};\n\n for (let i = 0; i < layoutFields?.length; i++) {\n const formLayoutField = layoutFields[i];\n const fieldMetadata = solidFieldsMetadata[formLayoutField.attrs.name];\n const fieldContext: SolidFieldProps = {\n fieldMetadata: fieldMetadata,\n field: formLayoutField,\n data: initialEntityData,\n solidFormViewMetaData: solidFormViewMetaData,\n modelName: params.modelName\n }\n if (params.parentData) {\n fieldContext.parentData = params.parentData;\n }\n let solidField = fieldFactory(fieldMetadata?.type, fieldContext);\n if (!fieldMetadata?.type) {\n const errorMessage = formLayoutField?.attrs?.label ? formLayoutField?.attrs?.label : formLayoutField.attrs.name;\n if (!errorFields.includes(errorMessage)) {\n // errorFields.push(errorMessage);\n }\n }\n if (solidField) {\n // @ts-ignore\n validationSchema[formLayoutField.attrs.name] = solidField.validationSchema();\n // @ts-ignore\n initialValues[formLayoutField.attrs.name] = solidField.initialValue();\n\n }\n }\n\n formik = useFormik({\n initialValues: initialValues,\n validationSchema: Yup.object(validationSchema),\n enableReinitialize: true,\n onSubmit: onFormikSubmit,\n });\n\n const formFieldOnXXX = async (event: ChangeEvent<HTMLInputElement>, eventType: string) => {\n // console.log(\"formFieldOnXXX\", eventType, event);\n\n // Invoke the formik change \n if (eventType === 'onFieldChange') {\n formik.handleChange(event);\n }\n\n // get details from the form event\n const { name: fieldName, value, type, checked } = event.target;\n\n // TODO: check if there is a change handler registered with this form view, load it and fire it.\n let changeHandler = solidView.layout.attrs[eventType];\n if (!changeHandler) {\n changeHandler = solidView.layout[eventType];\n }\n\n if (changeHandler) {\n // Get hold of the dynamic module...\n // const dynamicChangeHandler = await loadDynamicModule(changeHandler);\n const dynamicChangeHandler = getExtensionFunction(changeHandler);\n\n // Invoke the dynamic module...\n if (dynamicChangeHandler) {\n const event: SolidUiEvent = {\n fieldsMetadata: solidFieldsMetadata,\n formData: formik.values,\n modifiedField: fieldName,\n modifiedFieldValue: value,\n // @ts-ignore\n // TODO: HP & OR: This will be fixed once we figure out how to get types exported from core-ui\n type: eventType,\n viewMetadata: solidView,\n formViewLayout: formViewLayout,\n queryParams: {\n actionName,\n actionContext,\n actionType\n }\n }\n\n // Invoke the dynamic change handler: \n // TODO: encapsulate in try/catch, catch the exception render in the UI as an error & stop form rendering.\n const updatedFormInfo: SolidUiEventResponse = await dynamicChangeHandler(event);\n\n // If dataChanged is true, update Formik values\n if (updatedFormInfo?.dataChanged && updatedFormInfo.newFormData) {\n // This does one field at a time.\n // TODO: does the below fire change events again?\n Object.entries(updatedFormInfo.newFormData).forEach(([key, newValue]) => {\n formik.setFieldValue(key, newValue);\n });\n\n // This does all at once.\n // formik.setValues({\n // ...formik.values,\n // ...updatedFormInfo.newFormData\n // });\n }\n\n // if layout has changed then we need to re-render.\n if (updatedFormInfo?.layoutChanged && updatedFormInfo.newLayout) {\n // setFormViewMetaData({ ...formViewMetaData, layout: updatedFormInfo.newLayout });\n\n // TODO: this will trigger a useEffect dependent on formViewMetadata that invokes setFormViewLayout, \n // TODO: which means that this will not work if custom layout has been injected as a prop.\n setFormViewLayout(updatedFormInfo.newLayout);\n // setFormViewMetaData((prevMetaData: any) => {\n // const updatedFormViewMetadata = {\n // ...prevMetaData,\n // data: {\n // ...prevMetaData.data,\n // solidView: {\n // ...prevMetaData.data.solidView,\n // layout: updatedFormInfo.newLayout,\n // },\n // },\n // };\n // return updatedFormViewMetadata;\n // });\n }\n }\n else {\n // TODO: Show an error popup and stop form rendering ideallly...\n console.log(ERROR_MESSAGES.UNABLE_LOAD_DYNAMIC_MODULE, changeHandler);\n }\n }\n }\n\n // Now render the form dynamically...\n const renderFormElementDynamically: any = (element: any, recursiveFVMD: any, path = \"root\") => {\n let { type, attrs, body, children } = element;\n\n // const key = attrs?.name ?? generateRandomKey();\n const key = attrs?.key ?? attrs?.name ?? attrs?.label ?? `${type}-${path}`;\n let visible = attrs?.visible;\n if (visible === undefined || visible === null) {\n visible = true;\n }\n // console.log(`Resolved visibility of form element ${ key } to ${ visible } `);\n // console.log(`Form element ${ key }: `, attrs);\n const visibleToRole = attrs?.roles || [];\n\n if (visibleToRole.length > 0) {\n if (!hasAnyRole(user?.roles, visibleToRole)) {\n return <></>\n }\n }\n\n switch (type) {\n case \"form\":\n if (!children)\n children = [];\n return <div key={key}>{children.map((element: any, index: number) => renderFormElementDynamically(element, recursiveFVMD, `${path}.${index}`))}</div>;\n case \"div\":\n if (!children)\n children = [];\n return <div key={key} {...attrs}>{children.map((element: any, index: number) => renderFormElementDynamically(element, recursiveFVMD, `${path}.${index}`))}</div>\n case \"span\":\n return <span key={key} {...attrs}>{body}</span>\n case \"p\":\n return <p key={key} className={attrs?.className} {...attrs}>{body}</p>\n case \"h1\":\n return <h1 key={key} {...attrs}>{body}</h1>\n case \"h2\":\n return <h2 key={key} {...attrs}>{body}</h2>\n case \"ul\":\n if (!children)\n children = [];\n return <ul key={key} {...attrs}>{children.map((element: any, index: number) => renderFormElementDynamically(element, recursiveFVMD, `${path}.${index}`))}</ul>\n case \"li\":\n return <li key={key} {...attrs}>{body}</li>\n case \"sheet\":\n return <SolidSheet key={key}>{children.map((element: any, index: number) => renderFormElementDynamically(element, recursiveFVMD, `${path}.${index}`))}</SolidSheet>;\n case \"group\":\n if (visible === true) {\n return <SolidGroup key={key} attrs={attrs}>{children.map((element: any, index: number) => renderFormElementDynamically(element, recursiveFVMD, `${path}.${index}`))}</SolidGroup>;\n }\n break;\n case \"row\":\n if (visible === true) {\n return <SolidRow key={key} attrs={attrs}>{children.map((element: any, index: number) => renderFormElementDynamically(element, recursiveFVMD, `${path}.${index}`))}</SolidRow>;\n }\n break;\n case \"column\":\n if (visible === true) {\n return <SolidColumn key={key} attrs={attrs}>{children.map((element: any, index: number) => renderFormElementDynamically(element, recursiveFVMD, `${path}.${index}`))}</SolidColumn>;\n }\n break;\n case \"field\":\n if (visible === true) {\n\n // const fieldMetadata = solidFieldsMetadata[attrs.name];\n const fieldMetadata = recursiveFVMD.data.solidFieldsMetadata[attrs.name];\n // Read only permission if there is no update permission on model and router doesnt contains new\n const readOnlyPermission = !actionsAllowed.includes(`${permissionExpression(params.modelName, 'update')}`) && params.id !== \"new\";\n return <SolidField\n key={attrs.name}\n field={element}\n formik={formik}\n fieldMetadata={fieldMetadata}\n initialEntityData={solidFormViewData ? solidFormViewData.data : {}}\n solidFormViewMetaData={recursiveFVMD}\n modelName={params.modelName}\n readOnly={readOnlyPermission}\n viewMode={viewMode}\n onChange={formFieldOnXXX}\n onBlur={formFieldOnXXX}\n setLightboxUrls={setLightboxUrls}\n setOpenLightbox={setOpenLightbox}\n parentFieldName={params.parentFieldName}\n parentData={params.parentData}\n onEmbeddedFormSave={() => setRefreshChatterMessage(true)}\n />;\n }\n break;\n\n case \"notebook\":\n if (visible === true) {\n tabFieldsRef.current = [];\n return <SolidNotebook key={key} activeTab={searchParams.get(\"activeTab\") || \"\"} embeded={params.embeded} requestedTab={requestedTab} requestedTabVersion={requestedTabVersion}>{children.map((element: any, index: number) => renderFormElementDynamically(element, recursiveFVMD, `${path}.${index}`))}</SolidNotebook>;\n }\n break;\n case \"page\":\n if (visible === true) {\n const fields = children.flatMap((child: any) => getLayoutFields(child));\n tabFieldsRef.current.push({ tabKey: key, fields: fields.map((f: any) => f.attrs.name) });\n const pageChildren = children.map((element: any, index: number) => renderFormElementDynamically(element, recursiveFVMD, `${path}.${index}`));\n return SolidPage({ children: pageChildren, attrs: attrs, key: key, formik: formik, fields });\n }\n break;\n case \"custom\":\n if (visible === true) {\n const widgetName = attrs?.widget;\n const fieldMetadata = recursiveFVMD.data.solidFieldsMetadata[attrs.name];\n\n if (widgetName) {\n // widgetName, formik, field, fieldMetadata, solidFormViewMetaData\n return <SolidDynamicWidget\n key={key}\n widgetName={widgetName}\n field={element}\n formik={formik}\n fieldMetadata={fieldMetadata}\n solidFormViewMetaData={recursiveFVMD}\n solidFormViewData={solidFormViewData}\n />\n }\n }\n break;\n\n default:\n return null;\n }\n };\n\n const renderFormDynamically = (recursiveFVMD: any, formViewLayout: any) => {\n if (!recursiveFVMD) {\n return;\n }\n if (!recursiveFVMD.data) {\n return;\n }\n const solidView = recursiveFVMD.data.solidView;\n const solidFieldsMetadata = recursiveFVMD.data.solidFieldsMetadata;\n if (!solidView || !solidFieldsMetadata) {\n return;\n }\n const updatedLayout = [formViewLayout];\n const dynamicForm = updatedLayout.map((element: any, index: number) => renderFormElementDynamically(element, recursiveFVMD, `root-${index}`));\n\n return dynamicForm;\n };\n\n const handleDeleteEntity = async () => {\n deleteEntity(solidFormViewData.data.id);\n setDeleteDialogVisible(false);\n if (params.embeded == true) {\n setRedirectToList(false)\n\n } else {\n setRedirectToList(true)\n\n }\n // router.back();\n }\n\n const onDeleteClose = () => {\n setDeleteDialogVisible(false);\n }\n\n const dynamicHeader = solidView.layout?.header;\n let DynamicHeaderComponent = null;\n if (dynamicHeader) {\n DynamicHeaderComponent = getExtensionComponent(dynamicHeader);\n }\n const customFormComponentEdit = solidView.layout.attrs.customFormComponentEdit;\n const customFormComponentNew = solidView.layout.attrs.customFormComponentNew;\n let DynamicFormComponentEdit = null;\n let DynamicFormComponentNew = null;\n if (customFormComponentEdit) {\n DynamicFormComponentEdit = getExtensionComponent(customFormComponentEdit);\n }\n if (customFormComponentNew) {\n DynamicFormComponentNew = getExtensionComponent(customFormComponentNew);\n }\n\n const handleChatterExpandClick = (option?: string) => {\n setShowChatter(true);\n if (option === 'info') {\n setDefaultTabViewOptionIndex(0);\n } else if (option === 'chatter') {\n setDefaultTabViewOptionIndex(1);\n setRefreshChatterMessage(true);\n } else {\n setDefaultTabViewOptionIndex(2);\n }\n };\n\n //en 4 null\n const handleLocaleChangeRedirect = (\n locale: string,\n defaultEntityLocaleId: string,\n viewMode: string,\n ) => {\n let newViewMode = viewMode;\n const defaultApplicableLocales = solidFormViewMetaData?.data?.applicableLocales || [];\n //fr 4\n const matchingLocale = defaultApplicableLocales.find(\n (loc: any) =>\n loc.defaultEntityLocaleId &&\n loc.entityId &&\n loc.locale === locale\n );\n // Extract the base path from the current pathname, removing query params if any\n const basePath = pathname.split('?')[0];\n\n // Determine entity part of the path (new or existing entityId)\n const entityPart = matchingLocale?.entityId ?? 'new';\n if (entityPart === 'new' && viewMode === 'view') {\n newViewMode = 'edit'\n } else if (entityPart !== 'new' && viewMode === 'view') {\n newViewMode = 'view'\n } else {\n newViewMode = 'edit'\n }\n // Construct new pathname using existing basePath and replacing entity segment\n const updatedPath = basePath.replace(/\\/form\\/[^/]+/, `/form/${entityPart}`);\n\n const queryParams = new URLSearchParams({\n viewMode: newViewMode,\n locale,\n defaultEntityLocaleId,\n });\n\n router.push(`${updatedPath}?${queryParams.toString()}`);\n };\n\n const handleConfirmAccept = () => {\n confirmResolveRef.current?.(true);\n setConfirmVisible(false);\n };\n\n const handleConfirmReject = () => {\n confirmResolveRef.current?.(false);\n setConfirmVisible(false);\n };\n const handleDraftPublishWorkFlow = async (type: \"publish\" | \"unpublish\") => {\n const userChoice = await confirmDialogWithPromise();\n if (!userChoice) return;\n\n // const finalPublishedValue =\n // type === \"publish\" ? new Date().toISOString() : \"\";\n\n // setPublished(finalPublishedValue);\n\n // const formdata = new FormData();\n // formdata.append(\"publishedAt\", finalPublishedValue);\n\n let result;\n\n if (type === \"publish\") {\n result = await publishSolidEntity(params.id).unwrap();\n dispatch(showToast({ severity: \"success\", summary: ERROR_MESSAGES.SAVED, detail: ERROR_MESSAGES.MARK_PUBLISH }));\n } else {\n result = await unpublishSolidEntity(params.id).unwrap();\n dispatch(showToast({ severity: \"success\", summary: ERROR_MESSAGES.SAVED, detail: ERROR_MESSAGES.MARK_UNPUBLISH }));\n }\n\n console.log(\"publish/unpublish result\", result);\n\n // Set updated publish value from API response\n setPublished(result?.data?.publishedAt);\n };\n\n\n const lightboxSlides: SolidLightboxSlide[] = lightboxUrls\n .map((item: any) => {\n const src = item?.src || item?.downloadUrl || \"\";\n if (!src) {\n return null;\n }\n const mediaType = getMediaTypeFromUrl(src);\n const slide: SolidLightboxSlide = { src };\n if (mediaType !== \"image\") {\n slide.type = mediaType;\n }\n return slide;\n })\n .filter((slide): slide is SolidLightboxSlide => !!slide);\n\n\n\n return (\n <div className=\"solid-form-wrapper\" ref={solidFormWrapperRef}>\n <div className=\"solid-form-section\">\n <form style={{ width: '100%' }} onSubmit={formik.handleSubmit}>\n <FormikSubmitWatcher\n formik={formik}\n tabFieldsRef={tabFieldsRef}\n embeded={params.embeded}\n searchParams={searchParams}\n setRequestedTab={setRequestedTab}\n setRequestedTabVersion={setRequestedTabVersion}\n />\n <SolidFormActionHeader\n formik={formik}\n formData={solidFormViewData?.data}\n params={params}\n actionsAllowed={actionsAllowed}\n formViewLayout={formViewLayout}\n solidView={solidView}\n solidFormViewMetaData={solidFormViewMetaData}\n initialEntityData={solidFormViewData ? solidFormViewData.data : {}}\n setDeleteDialogVisible={setDeleteDialogVisible}\n setLayoutDialogVisible={setLayoutDialogVisible}\n setRedirectToList={setRedirectToList}\n viewMode={viewMode}\n setViewMode={setViewMode}\n solidWorkflowFieldValue={solidWorkflowFieldValue}\n setSolidWorkflowFieldValue={setSolidWorkflowFieldValue}\n draftEnabled={solidFormViewMetaData?.data?.solidView?.model?.draftPublishWorkflow}\n publish={published}\n internationalisationEnabled={solidFormViewMetaData?.data?.solidView?.model?.internationalisation}\n handleDraftPublishWorkFlow={handleDraftPublishWorkFlow}\n onStepperUpdate={() => setRefreshChatterMessage(true)}\n isSubmitting={isSubmitting}\n headerRequestStatusLabel={isSubmitting ? \"Saving...\" : null}\n showMobileOpenChatter={isMobileViewport && !isShowChatter && params.embeded !== true}\n onMobileOpenChatter={() => setShowChatter(true)}\n />\n <div className={`px-4 py-3 md:p-4 solid-form-content md:pt-1 ${createMode ? 'solid-create-mode-form-content' : ''} ${params.embeded === true ? 'h-auto' : ''}`} style={{ maxHeight: params.embeded === true ? '80vh' : '', overflowY: 'auto' }}>\n {DynamicHeaderComponent && <DynamicHeaderComponent />}\n {params.id === 'new' && DynamicFormComponentNew ? (\n <DynamicFormComponentNew params={params} />\n ) : params.id !== 'new' && DynamicFormComponentEdit ? (\n <DynamicFormComponentEdit params={params} />\n ) : (\n renderFormDynamically(formViewMetaData, formViewLayout)\n )}\n </div>\n\n </form>\n <SolidFormFooter params={params}></SolidFormFooter>\n </div>\n {params.embeded !== true &&\n <div className={`chatter-section ${isShowChatter === false ? 'collapsed' : 'open'}`} style={{ width: chatterLocaleWidth }}>\n {isShowChatter && (\n <div\n style={{\n width: 5,\n cursor: 'col-resize',\n position: 'absolute',\n left: 0,\n top: 0,\n bottom: 0,\n zIndex: 9,\n }}\n onMouseDown={() => setIsResizingChatterLocale(true)}\n />\n )}\n {isShowChatter === true &&\n <SolidButton\n icon=\"si si-angle-double-right\"\n size=\"sm\"\n text\n className=\"chatter-collapse-btn\"\n style={{ width: 26, height: 26, aspectRatio: '1/1' }}\n onClick={() => setShowChatter(false)}\n />\n }\n {isShowChatter === false ?\n <div className=\"flex flex-column gap-2 justify-content-center p-1\">\n {/*if solidview Internationalisation is enabled then show the locale tab */}\n {solidFormViewMetaData?.data?.solidView?.model?.draftPublishWorkflow &&\n <div className=\"chatter-collapsed-content\" onClick={() => handleChatterExpandClick('info')}>\n Info\n </div>}\n <div className=\"chatter-collapsed-content\" onClick={() => handleChatterExpandClick('chatter')}>\n Audit Trail\n </div>\n <SolidButton\n icon=\"si si-chevron-left\"\n size=\"sm\"\n className=\"px-0\"\n style={{ width: 30 }}\n onClick={() => handleChatterExpandClick('chatter')}\n />\n </div>\n :\n <SolidChatterLocaleTabView\n createMode={createMode}\n setSelectedLocale={setSelectedLocale}\n selectedLocale={selectedLocale}\n solidFormViewMetaData={solidFormViewMetaData}\n id={params.id}\n refreshChatterMessage={refreshChatterMessage}\n setRefreshChatterMessage={setRefreshChatterMessage}\n activeTab={defaultTabViewOptionIndex}\n viewMode={viewMode}\n defaultEntityLocaleId={defaultEntityLocaleId}\n handleLocaleChangeRedirect={handleLocaleChangeRedirect}\n solidFormViewData={solidFormViewData}\n published={published}\n actionsAllowed={actionsAllowed}\n mcpUrl={mcpUrl}\n />\n }\n </div>\n }\n\n <SolidConfirmDialog\n open={isDeleteDialogVisible}\n onCancel={onDeleteClose}\n onConfirm={() => handleDeleteEntity()}\n className=\"solid-shadcn-confirm-dialog solid-delete-confirm-dialog\"\n headerClassName=\"solid-shadcn-dialog-head\"\n bodyClassName=\"solid-shadcn-dialog-body\"\n footerClassName=\"solid-shadcn-dialog-actions\"\n separatorClassName=\"solid-shadcn-dialog-sep\"\n showSeparator\n title={`Delete ${entityDisplayName}`}\n message={<p className=\"solid-shadcn-dialog-text\">{`Are you sure you want to delete this ${entityDisplayName}?`}</p>}\n confirmLabel=\"Delete\"\n cancelLabel=\"Cancel\"\n />\n <SolidDialog\n open={isLayoutDialogVisible}\n onOpenChange={setLayoutDialogVisible}\n className=\"solid-form-layout-dialog\"\n >\n <SolidDialogHeader className=\"solid-shadcn-dialog-head\">\n <SolidDialogTitle>Change Form Layout</SolidDialogTitle>\n <SolidDialogClose />\n </SolidDialogHeader>\n <SolidDialogSeparator />\n <SolidDialogBody className=\"p-3 pt-0 lg:p-4\">\n <SolidFormUserViewLayout solidFormViewMetaData={solidFormViewMetaData} setLayoutDialogVisible={setLayoutDialogVisible} />\n </SolidDialogBody>\n </SolidDialog>\n {openLightbox && (\n <SolidLightbox\n open={openLightbox}\n slides={lightboxSlides}\n onClose={() => setOpenLightbox(false)}\n />\n )}\n\n <SolidConfirmDialog\n open={confirmVisible}\n title=\"Confirmation\"\n confirmLabel=\"Yes, confirm\"\n cancelLabel=\"No, cancel\"\n onConfirm={handleConfirmAccept}\n onCancel={handleConfirmReject}\n message={\n <div className=\"flex flex-col items-center justify-center text-center space-y-3\">\n <p className=\"text-gray-800 text-base\">\n Are you sure you want to {published !== null ? 'unpublish' : 'publish'}?\n </p>\n </div>\n }\n />\n </div>\n );\n }\n};\n\nexport default SolidFormView;\n"]}
|
|
1
|
+
{"version":3,"file":"SolidFormView.js","sourceRoot":"","sources":["../../../../src/components/core/form/SolidFormView.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useSession } from '../../../hooks/useSession'\nimport { permissionExpression } from \"../../../helpers/permissions\";\nimport { createSolidEntityApi } from \"../../../redux/api/solidEntityApi\";\nimport { useGetSolidViewLayoutQuery } from \"../../../redux/api/solidViewApi\";\nimport { useLazyCheckIfPermissionExistsQuery } from \"../../../redux/api/userApi\";\nimport { FetchBaseQueryError } from \"@reduxjs/toolkit/dist/query\";\nimport { useFormik } from \"formik\";\nimport { usePathname } from \"../../../hooks/usePathname\";\nimport { useRouter } from \"../../../hooks/useRouter\";\nimport { useSearchParams } from \"../../../hooks/useSearchParams\";\nimport qs from \"qs\";\nimport { getMediaTypeFromUrl } from \"../../../helpers/mediaType\";\nimport React, { ChangeEvent, useEffect, useMemo, useRef, useState } from \"react\";\nimport * as Yup from \"yup\";\nimport { FormikObject, ISolidField, SolidFieldProps } from \"./fields/ISolidField\";\nimport { SolidBooleanField } from \"./fields/SolidBooleanField\";\nimport { SolidDateField } from \"./fields/SolidDateField\";\nimport { SolidDateTimeField } from \"./fields/SolidDateTimeField\";\nimport { SolidDecimalField } from \"./fields/SolidDecimalField\";\nimport { SolidIntegerField } from \"./fields/SolidIntegerField\";\nimport { SolidJsonField } from \"./fields/SolidJsonField\";\nimport { SolidLongTextField } from \"./fields/SolidLongTextField\";\nimport { SolidMediaMultipleField } from \"./fields/SolidMediaMultipleField\";\nimport { SolidMediaSingleField } from \"./fields/SolidMediaSingleField\";\nimport { SolidRelationField } from \"./fields/SolidRelationField\";\nimport { SolidRichTextField } from \"./fields/SolidRichTextField\";\nimport { SolidSelectionDynamicField } from \"./fields/SolidSelectionDynamicField\";\nimport { SolidSelectionStaticField } from \"./fields/SolidSelectionStaticField\";\nimport { SolidShortTextField } from \"./fields/SolidShortTextField\";\nimport { SolidTimeField } from \"./fields/SolidTimeField\";\nimport { SolidComputedField } from \"./fields/SolidComputedField\";\nimport { SolidUiEvent } from \"../../../types\";\nimport { getExtensionComponent, getExtensionFunction } from \"../../../helpers/registry\";\nimport { SolidFormWidgetProps, SolidUiEventResponse } from \"../../../types/solid-core\";\nimport { SolidPasswordField } from \"./fields/SolidPasswordField\";\nimport { SolidEmailField } from \"./fields/SolidEmailField\";\nimport { SolidFormUserViewLayout } from \"./SolidFormUserViewLayout\";\nimport { SolidLightbox } from \"../../shad-cn-ui/SolidLightbox\";\nimport type { SolidLightboxSlide } from \"../../shad-cn-ui/SolidLightbox\";\nimport { SolidFormActionHeader } from \"./SolidFormActionHeader\";\nimport { hasAnyRole } from \"../../../helpers/rolesHelper\";\nimport SolidChatterLocaleTabView from \"../locales/SolidChatterLocaleTabView\";\nimport { ERROR_MESSAGES } from \"../../../constants/error-messages\";\nimport { useLazyGetMcpUrlQuery, useLazyGetSolidSettingsQuery } from \"../../../redux/api/solidSettingsApi\";\nimport { getSettingsMap } from \"../../../helpers/settingsPayload\";\nimport { SolidFormFooter } from \"./SolidFormFooter\";\nimport { normalizeSolidFormActionPath } from \"../../../helpers/routePaths\";\nimport { showToast } from \"../../../redux/features/toastSlice\";\nimport { useDispatch } from \"react-redux\";\nimport { SolidButton, SolidConfirmDialog } from \"../../shad-cn-ui\";\nimport {\n SolidDialog,\n SolidDialogBody,\n SolidDialogClose,\n SolidDialogHeader,\n SolidDialogSeparator,\n SolidDialogTitle\n} from \"../../shad-cn-ui/SolidDialog\";\nimport { SolidHeaderRequestStatus } from \"../../common/SolidHeaderRequestStatus\";\n\nexport type SolidFormViewProps = {\n moduleName: string;\n modelName: string;\n id: string;\n embeded: boolean;\n handlePopupClose?: any,\n customCreateHandler?: any\n inlineCreateAutoSave?: boolean,\n customLayout?: any,\n parentFieldName?: string,\n parentData?: any,\n redirectToPath?: string,\n onEmbeddedFormSave?: () => void,\n};\n\n\ninterface ErrorResponseData {\n message: string;\n statusCode: number;\n error: string;\n}\n\nconst getLayoutFields = (node: any): any => {\n let fields = [];\n\n if (node.type === \"field\") {\n fields.push(node);\n }\n\n if (node.children && Array.isArray(node.children)) {\n for (const child of node.children) {\n fields = fields.concat(getLayoutFields(child));\n }\n }\n\n return fields;\n}\n\nexport const getLayoutFieldsAsObject = (layout: any[]): any => {\n const allFields = layout.flatMap(getLayoutFields);\n return allFields.reduce((result, field) => {\n if (field.attrs.name) {\n result[field.attrs.name] = { ...field };\n }\n return result;\n }, {});\n}\nexport const getActualFieldMetadata = (key: string, solidFieldsMetadata: Record<string, any>) => {\n if (solidFieldsMetadata[key]) {\n return solidFieldsMetadata[key];\n }\n\n if (key.endsWith(\"Confirm\")) {\n const baseKey = key.slice(0, -\"Confirm\".length); // Remove \"Confirm\"\n if (solidFieldsMetadata[baseKey]) {\n return solidFieldsMetadata[baseKey];\n }\n }\n\n return null; // or handle fallback\n};\n\n\nconst fieldFactory = (type: string, fieldContext: SolidFieldProps, setLightboxUrls?: any, setOpenLightbox?: any): ISolidField | null => {\n if (type === 'shortText') {\n return new SolidShortTextField(fieldContext);\n }\n if (type === 'longText') {\n return new SolidLongTextField(fieldContext);\n }\n if (type === 'int' || type === 'bigint') {\n return new SolidIntegerField(fieldContext);\n }\n if (type === 'decimal' || type === 'float') {\n return new SolidDecimalField(fieldContext);\n }\n if (type === 'boolean') {\n return new SolidBooleanField(fieldContext);\n }\n if (type === 'richText') {\n return new SolidRichTextField(fieldContext);\n }\n if (type === 'date') {\n return new SolidDateField(fieldContext);\n }\n if (type === 'datetime') {\n return new SolidDateTimeField(fieldContext);\n }\n if (type === 'time') {\n return new SolidTimeField(fieldContext);\n }\n if (type === 'json') {\n return new SolidJsonField(fieldContext);\n }\n if (type === 'selectionStatic') {\n return new SolidSelectionStaticField(fieldContext);\n }\n if (type === 'selectionDynamic') {\n return new SolidSelectionDynamicField(fieldContext);\n }\n if (type === 'relation') {\n return new SolidRelationField(fieldContext);\n }\n if (type === 'mediaSingle') {\n return new SolidMediaSingleField(fieldContext, setLightboxUrls, setOpenLightbox);\n }\n if (type === 'mediaMultiple') {\n return new SolidMediaMultipleField(fieldContext, setLightboxUrls, setOpenLightbox);\n }\n if (type === 'password') {\n return new SolidPasswordField(fieldContext);\n }\n if (type === 'email') {\n return new SolidEmailField(fieldContext);\n }\n if (type === 'computed') {\n return new SolidComputedField(fieldContext);\n }\n return null;\n}\n\n// solidFieldsMetadata={solidFieldsMetadata} solidView={solidView}\nconst SolidField = ({ formik, field, fieldMetadata, initialEntityData, solidFormViewMetaData, modelName, readOnly, viewMode, onChange, onBlur, parentFieldName, parentData, setLightboxUrls, setOpenLightbox, onEmbeddedFormSave }: any) => {\n const fieldContext: SolidFieldProps = {\n // field metadata - coming from the field-metadata table.\n fieldMetadata: fieldMetadata,\n // field layout - coming from view.layout\n field: field,\n // initial data\n data: initialEntityData,\n // complete form view metadata - this includes layout of the whole form & metadata about all fields in the corresponding model.\n solidFormViewMetaData: solidFormViewMetaData,\n modelName: modelName,\n readOnly: readOnly,\n viewMode: viewMode,\n onChange: onChange,\n onBlur: onBlur\n }\n if (parentData) {\n fieldContext.parentData = parentData;\n }\n if (parentFieldName) {\n fieldContext.parentFieldName = parentFieldName;\n }\n if (onEmbeddedFormSave) {\n fieldContext.onEmbeddedFormSave = onEmbeddedFormSave;\n }\n const solidField = fieldFactory(fieldMetadata?.type, fieldContext, setLightboxUrls, setOpenLightbox);\n\n return solidField?.render(formik);\n};\n\nconst SolidGroup = ({ children, attrs }: any) => {\n const className = [\"solid-form-layout-group\", attrs.label ? \"solid-form-layout-group--labeled\" : \"\", attrs.className]\n .filter(Boolean)\n .join(\" \");\n\n return (\n <div className={className}>\n {attrs.label && <p className=\"solid-form-layout-label\">{attrs.label}</p>}\n <div className=\"grid\">{children}</div>\n </div>\n // <div className={className}>\n // <div className=\"s_group\">\n // <fieldset>\n // {attrs.label && <p className=\"s_group_heading\">{attrs.label}</p>}\n // <div className=\"grid\">{children}</div>\n // </fieldset>\n // </div>\n\n // </div>\n // <div className=\"formgrid grid\">\n // {children}\n // </div>\n );\n};\n\nconst SolidRow = ({ children, attrs }: any) => {\n const className = [\"row\", \"solid-form-layout-row\", attrs.label ? \"solid-form-layout-row--labeled\" : \"\", attrs.className]\n .filter(Boolean)\n .join(\" \");\n\n return (\n // <div className={`row ${className}`}>\n\n // <div className=\"s_group\">\n // <fieldset>\n // {attrs.label && <p className=\"s_group_heading\">{attrs.label}</p>}\n // <div className=\"grid\">{children}</div>\n // </fieldset>\n // </div>\n\n // </div>\n <div className={className}>\n {attrs.label && <p className=\"solid-form-layout-label\">{attrs.label}</p>}\n <div className=\"grid\">{children}</div>\n </div>\n // <div>{children}</div>\n );\n};\n\nconst SolidColumn = ({ children, attrs }: any) => {\n const className = [\"solid-form-layout-column\", attrs.label ? \"solid-form-layout-column--labeled\" : \"\", attrs.className]\n .filter(Boolean)\n .join(\" \");\n\n return (\n <div className={className}>\n {attrs.label && <p className=\"solid-form-layout-label\">{attrs.label}</p>}\n <div className=\"grid\">{children}</div>\n </div>\n );\n};\n\nconst SolidSheet = ({ children }: any) => (\n <div className=\"p-fluid p-grid\">\n {children}\n </div>\n);\n\n// Internal tab data carrier — SolidNotebook reads props from this\nconst SolidPageTab = ({ children }: any) => <>{children}</>;\n\nconst SolidNotebook = ({ children, activeTab, embeded, requestedTab, requestedTabVersion }: any) => {\n const childrenArray = React.Children.toArray(children).filter(child => !!child) as any[];\n\n const router = useRouter();\n const pathname = usePathname();\n const searchParams = useSearchParams();\n const [localActiveTab, setLocalActiveTab] = useState(activeTab);\n\n const effectiveTab = embeded ? localActiveTab : activeTab;\n\n useEffect(() => {\n if (!requestedTab) return;\n const exists = childrenArray.some((child: any) => child.props?.tabKey === requestedTab);\n if (!exists) return;\n if (embeded) {\n setLocalActiveTab(requestedTab);\n } else {\n const queryParams = new URLSearchParams(searchParams.toString());\n queryParams.set('activeTab', requestedTab);\n router.push(`${pathname}?${queryParams.toString()}`);\n }\n }, [requestedTabVersion]);\n\n const activeIndex = useMemo(() => {\n const idx = childrenArray.findIndex((child: any) => child.props?.tabKey === effectiveTab);\n return idx >= 0 ? idx : 0;\n }, [childrenArray, effectiveTab]);\n\n const handleTabChange = (index: number) => {\n const selectedChild = childrenArray[index];\n const newTabKey = selectedChild?.props?.tabKey;\n if (newTabKey) {\n if (!embeded) {\n const queryParams = new URLSearchParams(searchParams.toString());\n queryParams.set('activeTab', newTabKey);\n router.push(`${pathname}?${queryParams.toString()}`);\n } else {\n setLocalActiveTab(newTabKey);\n }\n }\n };\n\n return (\n <div className=\"solid-notebook w-full\">\n <div className=\"solid-notebook-tablist\" role=\"tablist\">\n {childrenArray.map((child: any, index: number) => (\n <button\n key={index}\n type=\"button\"\n role=\"tab\"\n aria-selected={index === activeIndex}\n onClick={() => handleTabChange(index)}\n className={`solid-notebook-tab-trigger${index === activeIndex ? ' active' : ''}${child.props?.hasError ? ' error' : ''}`}\n >\n {child.props?.label}\n </button>\n ))}\n </div>\n <div className=\"solid-notebook-content\" role=\"tabpanel\">\n {childrenArray[activeIndex]}\n </div>\n </div>\n );\n};\n\nconst SolidDynamicWidget = ({ widgetName, formik, field, solidFormViewMetaData, solidFormViewData }: any) => {\n const solidView = solidFormViewMetaData.data.solidView;\n const solidFieldsMetadata = solidFormViewMetaData.data.solidFieldsMetadata;\n\n let DynamicWidget = getExtensionComponent(widgetName);\n\n const widgetProps: SolidFormWidgetProps = {\n formData: formik.values,\n field: field,\n fieldsMetadata: solidFieldsMetadata,\n viewMetadata: solidView,\n formViewData: solidFormViewData\n }\n\n return (\n <div className=\"solid-tab-view w-full\">\n {DynamicWidget && <DynamicWidget {...widgetProps} />}\n </div>\n )\n};\n\n\nconst FormikSubmitWatcher = ({ formik, tabFieldsRef, embeded, searchParams, setRequestedTab, setRequestedTabVersion }: any) => {\n const lastHandledRef = useRef(0);\n useEffect(() => {\n if (formik.submitCount === lastHandledRef.current) return;\n if (formik.isSubmitting) return;\n lastHandledRef.current = formik.submitCount;\n const erroredKeys = Object.keys(formik.errors || {});\n if (erroredKeys.length === 0) return;\n if (!tabFieldsRef.current || tabFieldsRef.current.length === 0) return;\n const currentActive = embeded ? null : (searchParams.get(\"activeTab\") || \"\");\n const currentHasError = currentActive\n ? tabFieldsRef.current.find((t: any) => t.tabKey === currentActive)?.fields.some((f: string) => erroredKeys.includes(f))\n : false;\n if (currentHasError) return;\n const firstErroredTab = tabFieldsRef.current.find((t: any) => t.fields.some((f: string) => erroredKeys.includes(f)));\n if (firstErroredTab) {\n setRequestedTab(firstErroredTab.tabKey);\n setRequestedTabVersion((v: number) => v + 1);\n }\n }, [formik.submitCount, formik.isSubmitting]);\n return null;\n};\n\nconst SolidPage = ({ attrs, children, key, formik, fields }: any) => {\n const fieldsName = fields.map((f: any) => f.attrs.name);\n const errorCount = formik.submitCount > 0 ? fieldsName.filter((name: any) => !!formik.errors[name]).length : 0;\n const label = `${attrs.label}${errorCount > 0 ? ` (${errorCount})` : ''}`;\n\n return (\n <SolidPageTab key={key} label={label} tabKey={key} hasError={errorCount > 0}>\n <div className=\"p-fluid\">{children}</div>\n </SolidPageTab>\n );\n};\n\n// Original code...\n// const addLevelToGroups = (layout: any, level = 1) => {\n// return layout.map((element: any) => {\n// if (element.type === \"group\") {\n// // Add the level to the group's attrs\n// element.attrs = {\n// ...element.attrs,\n// level: level, // Add level information to the attrs\n// // className: level === 1 ? 'col-12' : 'col-6', // Assign className based on level\n// };\n// } else {\n// element.children = addLevelToGroups(element.children, level);\n// }\n// // If the element has children, recursively apply this logic\n// // if (element.children) {\n// // element.children = addLevelToGroups(element.children, level + 1);\n// // }\n\n// return element;\n// });\n// };\n\n// Fix for immutable objects. \n// const addLevelToGroups = (layout: any, level = 1): any[] => {\n// return layout.map((element: any) => {\n// // Create a new object for immutability\n// const updatedElement = { ...element };\n\n// if (updatedElement.type === \"group\") {\n// // Add level to attrs, creating a new object for immutability\n// updatedElement.attrs = {\n// ...updatedElement.attrs,\n// level: level, // Add level information\n// };\n// }\n\n// // If the element has children, recursively apply this logic\n// if (updatedElement.children) {\n// updatedElement.children = addLevelToGroups(updatedElement.children, level + 1);\n// }\n\n// return updatedElement;\n// });\n// };\n\nconst SolidFormView = (params: SolidFormViewProps) => {\n\n const { data: session, status } = useSession();\n const user = session?.user;\n\n const pathname = usePathname();\n const router = useRouter();\n const dispatch = useDispatch();\n const searchParams = useSearchParams();\n const [confirmVisible, setConfirmVisible] = useState(false);\n const confirmResolveRef = useRef<(value: boolean) => void>();\n const [redirectToList, setRedirectToList] = useState(false);\n const [selectedLocale, setSelectedLocale] = useState<string | null>('en');\n const [defaultEntityLocaleId, setDefaultEntityLocaleId] = useState<string | null>(null);\n const [isDeleteDialogVisible, setDeleteDialogVisible] = useState(false);\n const [isLayoutDialogVisible, setLayoutDialogVisible] = useState(false);\n const [published, setPublished] = useState<string | null>(null);\n const [actionsAllowed, setActionsAllowed] = useState<string[]>([]);\n const [viewMode, setViewMode] = useState<\"view\" | \"edit\">(params.embeded === true ? \"edit\" : \"view\");\n const [createMode, setCreateMode] = useState<boolean>(false);\n const [openLightbox, setOpenLightbox] = useState(false);\n const [lightboxUrls, setLightboxUrls] = useState([]);\n const [isShowChatter, setShowChatter] = useState(false);\n const [chatterLocaleWidth, setChatterLocaleWidth] = useState(360);\n const [isResizingChatterLocale, setIsResizingChatterLocale] = useState(false);\n const [isSubmitting, setIsSubmitting] = useState(false);\n const [isMobileViewport, setIsMobileViewport] = useState(false);\n const solidFormWrapperRef = useRef<HTMLDivElement | null>(null);\n\n const tabFieldsRef = useRef<Array<{ tabKey: string; fields: string[] }>>([]);\n const [requestedTab, setRequestedTab] = useState<string | null>(null);\n const [requestedTabVersion, setRequestedTabVersion] = useState(0);\n\n const [solidWorkflowFieldValue, setSolidWorkflowFieldValue] = useState<string>(\"\");\n const [defaultTabViewOptionIndex, setDefaultTabViewOptionIndex] = useState<number>(1);\n const errorFields: string[] = [];\n\n const [triggerCheckIfPermissionExists] = useLazyCheckIfPermissionExistsQuery();\n\n const [mcpUrl, setMcpUrl] = useState<string | null>(null);\n const [getMcpUrl] = useLazyGetMcpUrlQuery();\n\n // when rendering the form view we will optionally get action params...\n // these we can bubble up in the event that is being raised onFormLayoutLoad, onFormDataLoad & onFormLoad\n const actionName = searchParams.get('actionName');\n const actionType = searchParams.get('actionType');\n const actionContext = searchParams.get('actionContext');\n\n const [trigger, { data: solidSettingsData }] = useLazyGetSolidSettingsQuery();\n const solidSettingsMap = useMemo(() => getSettingsMap(solidSettingsData), [solidSettingsData]);\n useEffect(() => {\n trigger(\"\") // Fetch settings on mount\n }, [])\n\n useEffect(() => {\n if (solidSettingsMap?.mcpEnabled && solidSettingsMap?.mcpServerUrl) {\n enableSolidXAiPanel();\n }\n }, [solidSettingsMap]);\n\n\n const enableSolidXAiPanel = async () => {\n try {\n const queryData = {\n showHeader: \"false\",\n inListView: \"false\"\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 const op = useRef(null);\n const MIN_CHATTER_WIDTH = 320;\n const MIN_FORM_SECTION_WIDTH = 420;\n\n const getMaxChatterWidth = () => {\n const wrapperWidth = solidFormWrapperRef.current?.getBoundingClientRect().width ?? window.innerWidth;\n return Math.max(MIN_CHATTER_WIDTH, wrapperWidth - MIN_FORM_SECTION_WIDTH);\n };\n\n const clampChatterWidth = (width: number) => {\n const maxWidth = getMaxChatterWidth();\n return Math.max(MIN_CHATTER_WIDTH, Math.min(width, maxWidth));\n };\n\n useEffect(() => {\n const stored = localStorage.getItem('chatter_locale_width');\n if (stored) {\n const parsed = parseInt(stored, 10);\n const clampedWidth = clampChatterWidth(parsed);\n setChatterLocaleWidth(clampedWidth);\n }\n }, []);\n useEffect(() => {\n const handleMouseMove = (e: MouseEvent) => {\n if (!isResizingChatterLocale) return;\n const wrapperRect = solidFormWrapperRef.current?.getBoundingClientRect();\n const rightEdge = wrapperRect?.right ?? window.innerWidth;\n const newWidth = rightEdge - e.clientX;\n const clampedWidth = clampChatterWidth(newWidth);\n setChatterLocaleWidth(clampedWidth);\n localStorage.setItem('chatter_locale_width', clampedWidth.toString());\n };\n\n const handleMouseUp = () => {\n setIsResizingChatterLocale(false);\n };\n\n if (isResizingChatterLocale) {\n window.addEventListener('mousemove', handleMouseMove);\n window.addEventListener('mouseup', handleMouseUp);\n }\n\n return () => {\n window.removeEventListener('mousemove', handleMouseMove);\n window.removeEventListener('mouseup', handleMouseUp);\n };\n }, [isResizingChatterLocale]);\n\n useEffect(() => {\n const updateViewportFlag = () => setIsMobileViewport(window.innerWidth <= 1199);\n updateViewportFlag();\n window.addEventListener('resize', updateViewportFlag);\n return () => window.removeEventListener('resize', updateViewportFlag);\n }, []);\n\n useEffect(() => {\n const handleWindowResize = () => {\n setChatterLocaleWidth((currentWidth) => {\n const clamped = clampChatterWidth(currentWidth);\n if (clamped !== currentWidth) {\n localStorage.setItem('chatter_locale_width', clamped.toString());\n }\n return clamped;\n });\n };\n\n window.addEventListener('resize', handleWindowResize);\n return () => window.removeEventListener('resize', handleWindowResize);\n }, []);\n\n\n useEffect(() => {\n const mode = searchParams.get('viewMode');\n const locale = searchParams.get('locale');\n const defaultEntityLocaleIdn = searchParams.get('defaultEntityLocaleId');\n if (params.id === 'new' && !locale) {\n setViewMode('edit');\n setCreateMode(true);\n return;\n }\n\n if (locale) {\n setSelectedLocale(locale);\n }\n\n if (defaultEntityLocaleIdn) {\n setDefaultEntityLocaleId(defaultEntityLocaleIdn);\n }\n\n // Set the viewMode based on the URL\n if (mode === 'view' || mode === 'edit') {\n setViewMode(mode);\n } else {\n setViewMode('view'); // Default to 'view' if no valid mode is provided\n }\n }, [searchParams, params.id]);\n\n // function that updates view mode \n const updateViewMode = (newMode: \"view\" | \"edit\") => {\n setViewMode(newMode);\n const params = new URLSearchParams(searchParams.toString());\n params.set(\"viewMode\", newMode);\n router.push(`${pathname}?${params.toString()}`);\n };\n\n useEffect(() => {\n const fetchPermissions = async () => {\n if (params.modelName) {\n const permissionNames = [\n permissionExpression(params.modelName, 'create'),\n permissionExpression(params.modelName, 'delete'),\n permissionExpression(params.modelName, 'update'),\n permissionExpression(params.modelName, 'findOne'),\n permissionExpression(params.modelName, 'publish'),\n permissionExpression(params.modelName, 'unpublish'),\n permissionExpression('chatterMessage', 'findMany')\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 // Create the RTK slices for this entitor (const id of fieldValue) {\n // if (!isInt(id)) {\n // errors.push({ field: this.fieldMetadata.name, error: `Invalid ids in ${ commandFieldName } ` });\n // }\n // }y\n const entityApi = createSolidEntityApi(params.modelName);\n const {\n useCreateSolidEntityMutation,\n useDeleteSolidEntityMutation,\n useGetSolidEntityByIdQuery,\n useUpdateSolidEntityMutation,\n usePatchUpdateSolidEntityMutation,\n usePublishSolidEntityMutation,\n useUnpublishSolidEntityMutation\n } = entityApi;\n\n const [\n createEntity,\n { isSuccess: isEntityCreateSuccess, isError: isEntityCreateError, error: entityCreateError },\n ] = useCreateSolidEntityMutation();\n\n const [\n updateEntity,\n { isSuccess: isEntityUpdateSuceess, isError: isEntityUpdateError, error: entityUpdateError },\n ] = useUpdateSolidEntityMutation();\n\n const [\n deleteEntity,\n { isSuccess: isEntityDeleteSuceess, isError: isEntityDeleteError, error: entityDeleteError },\n ] = useDeleteSolidEntityMutation();\n\n const [\n patchEntity,\n { isSuccess: isEntityPatchSuceess, isError: isEntityPatchError, error: entityPatchError },\n ] = usePatchUpdateSolidEntityMutation();\n\n const [\n publishSolidEntity,\n { isSuccess: isEntityPublishedSuccess, isError: isEntityPublishedError, error: entityPublishedError },\n ] = usePublishSolidEntityMutation();\n\n const [\n unpublishSolidEntity,\n { isSuccess: isEntityUnpublishedSuccess, isError: isEntityUnpublishedError, error: entityUnpublishedError },\n ] = useUnpublishSolidEntityMutation();\n\n // - - - - - - - - - - - -- - - - - - - - - - - - METADATA here\n // Get the form view layout & metadata first. \n const formViewMetaDataQs = qs.stringify({ ...params, viewType: 'form', defaultEntityLocaleId: defaultEntityLocaleId }, {\n encodeValuesOnly: true,\n });\n const [formViewMetaData, setFormViewMetaData] = useState({});\n const [formViewLayout, setFormViewLayout] = useState<any>(null);\n const {\n data: solidFormViewMetaData,\n isLoading: solidFormViewMetaDataIsLoading\n } = useGetSolidViewLayoutQuery(formViewMetaDataQs);\n const entityDisplayName =\n solidFormViewMetaData?.data?.solidView?.model?.displayName || params.modelName;\n const [refreshChatterMessage, setRefreshChatterMessage] = useState<boolean>(true);\n useEffect(() => {\n if (\n isEntityCreateSuccess == true ||\n isEntityUpdateSuceess == true ||\n isEntityDeleteSuceess == true ||\n isEntityPatchSuceess == true ||\n isEntityPublishedSuccess == true ||\n isEntityUnpublishedSuccess == true\n ) {\n setRefreshChatterMessage(true);\n if (params.embeded == true && params.onEmbeddedFormSave) {\n params.onEmbeddedFormSave();\n }\n // Close The pop in case the form is used in embeded form\n if (params.embeded == true) {\n params.handlePopupClose()\n }\n if (redirectToList === true) {\n if (params.redirectToPath) {\n router.push(params.redirectToPath);\n window.location.reload();\n } else {\n const segments = pathname.split('/').filter(Boolean); // Split and filter empty segments\n const newPath = '/' + segments.slice(0, -2).join('/') + '/list'; // Remove last segment and add \"/all\"\n router.push(newPath);\n }\n }\n }\n }, [isEntityCreateSuccess, isEntityUpdateSuceess, isEntityDeleteSuceess, isEntityPatchSuceess, isEntityPublishedSuccess, isEntityUnpublishedSuccess]);\n\n useEffect(() => {\n\n if (solidFormViewMetaData?.data?.solidView?.model?.internationalisation) {\n setDefaultTabViewOptionIndex(0)\n const matchedLocale = solidFormViewMetaData?.data?.applicableLocales?.find((x: any) => x.isDefault === 'yes');\n //this is to attach default locale when adding data in popup view where relations exists\n if (!selectedLocale && matchedLocale && !searchParams.get('locale')) {\n setSelectedLocale(matchedLocale.locale);\n }\n }\n\n }, [params.modelName, solidFormViewMetaData])\n\n function isFetchBaseQueryErrorWithErrorResponse(error: any): error is FetchBaseQueryError & { data: ErrorResponseData } {\n return error && typeof error === 'object' && 'data' in error && 'message' in error.data;\n }\n\n useEffect(() => {\n const handleError = (errorToast: any) => {\n let errorMessage: any = [ERROR_MESSAGES.ERROR_OCCURED];\n\n if (isFetchBaseQueryErrorWithErrorResponse(errorToast)) {\n errorMessage = errorToast.data.message;\n } else {\n errorMessage = [ERROR_MESSAGES.SOMETHING_WRONG];\n }\n\n const detail = Array.isArray(errorMessage) ? errorMessage.join(', ') : errorMessage;\n dispatch(showToast({ severity: 'error', summary: 'Error', detail }));\n };\n\n // Check and handle errors from each API operation\n if (isEntityCreateError) {\n handleError(entityCreateError);\n } else if (isEntityDeleteError) {\n handleError(entityDeleteError);\n } else if (isEntityUpdateError) {\n handleError(entityUpdateError);\n } else if (isEntityPatchError) {\n handleError(entityPatchError);\n } else if (isEntityPublishedError) {\n handleError(entityPublishedError);\n } else if (isEntityUnpublishedError) {\n handleError(entityUnpublishedError);\n }\n }, [\n isEntityCreateError,\n isEntityDeleteError,\n isEntityUpdateError,\n isEntityPatchError,\n isEntityPublishedError,\n isEntityUnpublishedError\n ]);\n\n const confirmDialogWithPromise = () => {\n return new Promise<boolean>((resolve) => {\n confirmResolveRef.current = resolve;\n setConfirmVisible(true);\n });\n };\n\n const onFormikSubmit = async (values: any) => {\n const solidView = solidFormViewMetaData.data.solidView;\n const solidFieldsMetadata = solidFormViewMetaData.data.solidFieldsMetadata;\n const layoutFieldsObj = getLayoutFieldsAsObject([formViewLayout]);\n setIsSubmitting(true);\n try {\n let formData = new FormData();\n\n // Iterate through the keys in the values object\n Object.entries(values).forEach(([key, value]) => {\n\n const fieldMetadata = solidFieldsMetadata[key];\n // const fieldMetadata = getActualFieldMetadata(key, solidFieldsMetadata);\n const fieldContext: SolidFieldProps = {\n fieldMetadata: fieldMetadata,\n field: layoutFieldsObj[key],\n data: initialEntityData,\n solidFormViewMetaData: solidFormViewMetaData,\n modelName: params.modelName\n }\n let solidField = fieldFactory(fieldMetadata?.type, fieldContext);\n // Append each field to the FormData\n if (value !== undefined && value !== null && solidField) {\n solidField.updateFormData(value, formData);\n }\n if (value !== undefined && value !== null && key.endsWith(\"Confirm\")) {\n formData.append(key, String(value))\n }\n\n });\n\n let solidWorkflowField = solidFormViewMetaData?.data?.solidView?.layout?.attrs?.workflowField;\n if (params.id !== \"new\") {\n if (solidFormViewMetaData?.data?.solidFormViewWorkflowData) {\n if (solidFormViewMetaData?.data?.solidFieldsMetadata?.[solidWorkflowField]?.type === \"selectionStatic\") {\n formData.append(solidWorkflowField, solidWorkflowFieldValue);\n }\n if (solidFormViewMetaData?.data?.solidFieldsMetadata?.[solidWorkflowField]?.type === \"many-to-one\") {\n formData.append(`${solidWorkflowField}Id`, solidWorkflowFieldValue);\n }\n }\n }\n if (solidFormViewMetaData?.data?.solidView?.model?.internationalisation) {\n if (selectedLocale && !formData.has('localeName')) {\n formData.append('localeName', selectedLocale);\n }\n if (defaultEntityLocaleId) {\n formData.append('defaultEntityLocaleId', defaultEntityLocaleId.toString());\n }\n }\n if (solidFormViewMetaData?.data?.solidView?.model?.draftPublishWorkflow) {\n if (published) {\n formData.append('publishedAt', published);\n }\n }\n if (params.inlineCreateAutoSave === true) {\n params.customCreateHandler(formData);\n } else {\n if (params.id === 'new') {\n // default locale\n const result = await createEntity(formData).unwrap();\n dispatch(showToast({ severity: \"success\", summary: ERROR_MESSAGES.FORM_SAVED, detail: ERROR_MESSAGES.FORM_SAVED_SUCCESSFULLY }));\n // if (!params.embeded && result?.data?.id) {\n // const newPathname = pathname.replace(/new$/, result.data.id);\n\n // const params = new URLSearchParams(searchParams.toString());\n // params.set(\"viewMode\", \"view\");\n\n // const updatedUrl = `${newPathname}?${params.toString()}`;\n // await router.push(updatedUrl, { scroll: false });\n\n // setViewMode(\"view\")\n // }\n if (!params.embeded) {\n const baseFormPath = normalizeSolidFormActionPath(pathname, \"form\");\n const queryParams = new URLSearchParams(searchParams.toString());\n queryParams.set(\"viewMode\", \"view\");\n router.push(`${baseFormPath}/${result?.data?.id}?${queryParams.toString()}`);\n setViewMode(\"view\")\n }\n return result;\n }\n else {\n // updateEntity({ id: +params.id, data: formData });\n const result = await updateEntity({ id: +params.id, data: formData }).unwrap();\n // const result = await updateEntity({ id: +params.id, data: formData }).unwrap();\n if (!params.embeded) {\n dispatch(showToast({ severity: \"success\", summary: ERROR_MESSAGES.FORM_UPDATE, detail: ERROR_MESSAGES.FORM_UPDATE_SUCCESSFULLY }));\n if (result?.statusCode === 200) {\n updateViewMode(\"view\")\n }\n }\n return result;\n\n }\n }\n\n } catch (err) {\n console.error(ERROR_MESSAGES.ENTITY_FAILED, err);\n } finally {\n setIsSubmitting(false);\n }\n }\n\n const showFieldError = () => {\n if (errorFields?.length === 0) return;\n errorFields.forEach((error) => {\n dispatch(showToast({\n severity: \"error\",\n summary: \"Metadata Error\",\n detail: error,\n }));\n\n });\n\n // errorFields.length = 0;\n };\n useEffect(() => {\n if (errorFields?.length > 0) {\n showFieldError();\n }\n }, [errorFields])\n\n\n // - - - - - - - - - - - -- - - - - - - - - - - - DATA here\n // Fetch the actual data here. \n // This is the initial value of this form, will come from an API call in the case of edit. \n let layoutFields = [];\n let toPopulate: string[] = [];\n let toPopulateMedia: string[] = [];\n if (solidFormViewMetaData && formViewLayout) {\n const solidView = solidFormViewMetaData.data.solidView;\n const solidFieldsMetadata = solidFormViewMetaData.data.solidFieldsMetadata;\n layoutFields = [formViewLayout].flatMap(getLayoutFields);\n for (let i = 0; i < layoutFields?.length; i++) {\n const formLayoutField = layoutFields[i];\n const fieldMetadata = solidFieldsMetadata[formLayoutField.attrs.name];\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 (fieldMetadata?.type === 'mediaSingle' || fieldMetadata?.type === 'mediaMultiple') {\n toPopulateMedia.push(fieldMetadata.name);\n }\n }\n if (formViewLayout.attrs?.workflowField && solidFieldsMetadata[formViewLayout.attrs.workflowField]?.type === 'relation' && solidFieldsMetadata[formViewLayout.attrs.workflowField]?.relationType === 'many-to-one') {\n toPopulate.push(solidFieldsMetadata[formViewLayout.attrs.workflowField].name);\n }\n }\n // TODO: Possible optimisation here, we are firing 2 queries to load the form view data object. \n // once without populate & populateMedia and then again once after that.\n const formViewDataQs = qs.stringify({ populate: toPopulate, populateMedia: toPopulateMedia }, {\n encodeValuesOnly: true,\n });\n const [initialEntityData, setInitialEntityData] = useState({});\n const {\n data: solidFormViewData,\n isLoading: solidFormViewDataIsLoading,\n refetch: refetchSolidFormViewData,\n } = useGetSolidEntityByIdQuery({ id: params.id, qs: formViewDataQs }, {\n skip: params.id === 'new'\n });\n useEffect(() => {\n if (params.id !== 'new') {\n refetchSolidFormViewData()\n }\n }, [formViewDataQs])\n\n useEffect(() => {\n if (solidFormViewMetaData) {\n if (params.customLayout) {\n setFormViewLayout(params.customLayout);\n } else {\n setFormViewLayout(solidFormViewMetaData?.data?.solidView?.layout);\n }\n setPublished(solidFormViewData?.data?.publishedAt);\n setFormViewMetaData(solidFormViewMetaData);\n }\n }, [solidFormViewMetaData]);\n\n // useEffect(() => {\n // const handleOnFormLayoutLoadEvent = async () => {\n // if (solidFormViewMetaData) {\n // // let formLayout = solidFormViewMetaData;\n // // let customLayout = params?.customLayout;\n // const onFormLayoutLoadHandlerExtensionFunction = solidFormViewMetaData?.data?.solidView?.layout?.onFormLayoutLoad;\n // // let dynamicExtensionFunction = null;\n // let formLayout = solidFormViewMetaData?.data?.solidView?.layout;\n // if (params.customLayout) {\n // formLayout = params.customLayout;\n // }\n // const event: SolidLoadForm = {\n // parentData: params?.parentData,\n // fieldsMetadata: solidFormViewMetaData,\n // formData: solidFormViewData?.data,\n // type: 'onFormLayoutLoad',\n // viewMetadata: solidFormViewMetaData?.data?.solidView,\n // formViewLayout: formLayout,\n // queryParams: {\n // actionName,\n // actionType,\n // actionContext\n // }\n // }\n // if (onFormLayoutLoadHandlerExtensionFunction) {\n // const dynamicExtensionFunction = getExtensionFunction(onFormLayoutLoadHandlerExtensionFunction);\n // if (dynamicExtensionFunction) {\n // try {\n // const updatedFormLayout: SolidUiEventResponse = await dynamicExtensionFunction(event);\n // if (updatedFormLayout && updatedFormLayout?.layoutChanged && updatedFormLayout?.newLayout) {\n // setFormViewLayout(updatedFormLayout.newLayout);\n // // const newFormLayout = {\n // // ...formLayout,\n // // data: {\n // // ...formLayout.data,\n // // solidView: {\n // // ...formLayout.data.solidView,\n // // layout: updatedFormLayout.newLayout\n // // }\n // // }\n // // };\n // // formLayout = newFormLayout;\n // // customLayout = updatedFormLayout.newLayout;\n // }\n // } catch (error) {\n // console.error(ERROR_MESSAGES.DYNAMIC_FUNCTION_ERROR, error);\n // }\n // }\n // }\n // // setFormViewMetaData(formLayout);\n // // if (params.customLayout) {\n // // setFormViewLayout(customLayout);\n // // } else {\n // // setFormViewLayout(formLayout.data.solidView.layout);\n // // }\n // }\n // };\n // const handleOnFormDataLoadEvent = async () => {\n // const onFormDataLoadHandlerExtensionFunction = solidFormViewMetaData?.data?.solidView?.layout?.onFormDataLoad;\n // // let dynamicExtensionFunction = null;\n // let formViewData = solidFormViewData?.data;\n\n // let formLayout = solidFormViewMetaData?.data?.solidView?.layout;\n // if (params.customLayout) {\n // formLayout = params.customLayout;\n // }\n\n // const event: SolidLoadForm = {\n // fieldsMetadata: solidFormViewMetaData,\n // formData: solidFormViewData?.data,\n // type: \"onFormDataLoad\",\n // viewMetadata: solidFormViewMetaData?.data?.solidView,\n // formViewLayout: formLayout,\n // queryParams: {\n // actionName,\n // actionType,\n // actionContext\n // }\n // };\n // if (onFormDataLoadHandlerExtensionFunction) {\n // const dynamicExtensionFunction = getExtensionFunction(onFormDataLoadHandlerExtensionFunction);\n // if (dynamicExtensionFunction) {\n // const updatedFormData: SolidUiEventResponse = await dynamicExtensionFunction(event);\n\n // if (updatedFormData && updatedFormData?.dataChanged && updatedFormData?.newFormData) {\n // formViewData = updatedFormData.newFormData;\n // }\n // }\n // if (formViewData) {\n // setInitialEntityData(formViewData);\n // }\n // }\n // };\n // const handleOnFormLoadEvent = async () => {\n // const onFormLoadHandlerExtensionFunction = solidFormViewMetaData?.data?.solidView?.layout?.onFormLoad;\n // // let dynamicExtensionFunction = null;\n // let localFormViewMetadata = solidFormViewMetaData;\n // // let customLayout = params?.customLayout;\n // let formViewData = solidFormViewData?.data;\n\n // let formLayout = solidFormViewMetaData?.data?.solidView?.layout;\n // if (params.customLayout) {\n // formLayout = params.customLayout;\n // }\n\n // const event: SolidLoadForm = {\n // parentData: params?.parentData,\n // fieldsMetadata: solidFormViewMetaData,\n // formData: solidFormViewData?.data,\n // type: 'onFormLoad',\n // viewMetadata: solidFormViewMetaData?.data?.solidView,\n // formViewLayout: formViewLayout,\n // queryParams: {\n // actionName,\n // actionType,\n // actionContext\n // }\n // };\n\n // if (onFormLoadHandlerExtensionFunction) {\n // const dynamicExtensionFunction = getExtensionFunction(onFormLoadHandlerExtensionFunction);\n // if (dynamicExtensionFunction) {\n // try {\n // const result: SolidUiEventResponse = await dynamicExtensionFunction(event);\n // if (result && result?.layoutChanged && result?.newLayout) {\n // // const newLocalFormViewMetadata = {\n // // ...localFormViewMetadata,\n // // data: {\n // // ...localFormViewMetadata.data,\n // // solidView: {\n // // ...localFormViewMetadata.data.solidView,\n // // layout: result.newLayout\n // // }\n // // }\n // // };\n // // localFormViewMetadata = newLocalFormViewMetadata;\n // // customLayout = result.newLayout;\n // // setFormViewMetaData(localFormViewMetadata);\n\n // setFormViewLayout(result.newLayout);\n // // if (params.customLayout) {\n // // setFormViewLayout(customLayout);\n // // } else {\n // // setFormViewLayout(localFormViewMetadata.data.solidView.layout);\n // // }\n // }\n // if (result && result?.dataChanged && result?.newFormData) {\n // formViewData = result.newFormData;\n // setInitialEntityData(formViewData);\n // }\n // } catch (error) {\n // console.error(ERROR_MESSAGES.ON_FORM_LOAD, error);\n // }\n // }\n // }\n // };\n\n // handleOnFormLayoutLoadEvent();\n // handleOnFormDataLoadEvent();\n // handleOnFormLoadEvent();\n // }, [solidFormViewMetaData, solidFormViewData]);\n\n\n useEffect(() => {\n const runFormEvents = async () => {\n if (!solidFormViewMetaData) return;\n\n /** ----------------------------\n * 1. Initialize working state\n * ----------------------------- */\n let workingLayout = params.customLayout ?? solidFormViewMetaData?.data?.solidView?.layout;\n let workingFormData = solidFormViewData?.data;\n const baseEvent = {\n parentData: params?.parentData,\n fieldsMetadata: solidFormViewMetaData,\n viewMetadata: solidFormViewMetaData?.data?.solidView,\n queryParams: {\n actionName,\n actionType,\n actionContext,\n },\n };\n\n /** ----------------------------\n * 2. onFormLayoutLoad\n * ----------------------------- */\n const onFormLayoutLoadFn =\n solidFormViewMetaData?.data?.solidView?.layout?.onFormLayoutLoad;\n\n if (onFormLayoutLoadFn) {\n const fn = getExtensionFunction(onFormLayoutLoadFn);\n if (fn) {\n try {\n const result: SolidUiEventResponse = await fn({\n ...baseEvent,\n type: \"onFormLayoutLoad\",\n formData: workingFormData,\n formViewLayout: workingLayout,\n });\n\n if (result?.layoutChanged && result?.newLayout) {\n workingLayout = result.newLayout;\n }\n } catch (e) {\n console.error(ERROR_MESSAGES.DYNAMIC_FUNCTION_ERROR, e);\n }\n }\n }\n\n /** ----------------------------\n * 3. onFormDataLoad\n * ----------------------------- */\n const onFormDataLoadFn =\n solidFormViewMetaData?.data?.solidView?.layout?.onFormDataLoad;\n\n if (onFormDataLoadFn) {\n const fn = getExtensionFunction(onFormDataLoadFn);\n if (fn) {\n try {\n const result: SolidUiEventResponse = await fn({\n ...baseEvent,\n type: \"onFormDataLoad\",\n formData: workingFormData,\n formViewLayout: workingLayout, // ✅ UPDATED layout\n });\n\n if (result?.dataChanged && result?.newFormData) {\n workingFormData = result.newFormData;\n }\n } catch (e) {\n console.error(ERROR_MESSAGES.DYNAMIC_FUNCTION_ERROR, e);\n }\n }\n }\n\n /** ----------------------------\n * 4. onFormLoad\n * ----------------------------- */\n const onFormLoadFn =\n solidFormViewMetaData?.data?.solidView?.layout?.onFormLoad;\n\n if (onFormLoadFn) {\n const fn = getExtensionFunction(onFormLoadFn);\n if (fn) {\n try {\n const result: SolidUiEventResponse = await fn({\n ...baseEvent,\n type: \"onFormLoad\",\n formData: workingFormData,\n formViewLayout: workingLayout, // ✅ FINAL layout\n });\n\n if (result?.layoutChanged && result?.newLayout) {\n workingLayout = result.newLayout;\n }\n\n if (result?.dataChanged && result?.newFormData) {\n workingFormData = result.newFormData;\n }\n } catch (e) {\n console.error(ERROR_MESSAGES.ON_FORM_LOAD, e);\n }\n }\n }\n\n /** ----------------------------\n * 5. Commit once to React state\n * ----------------------------- */\n if (workingLayout) {\n setFormViewLayout(workingLayout);\n }\n\n if (workingFormData) {\n setInitialEntityData(workingFormData);\n }\n };\n\n runFormEvents();\n }, [solidFormViewMetaData, solidFormViewData]);\n\n\n useEffect(() => {\n if (solidFormViewData) {\n setInitialEntityData(solidFormViewData.data);\n }\n }, [solidFormViewData]);\n\n let formik: FormikObject;\n\n // If either the metadata or the data of this form is loading, then we simply render a loading screen...\n if (solidFormViewMetaDataIsLoading || solidFormViewDataIsLoading || !formViewLayout) {\n formik = useFormik({\n initialValues: {},\n validationSchema: Yup.object(),\n enableReinitialize: true,\n onSubmit: onFormikSubmit,\n });\n\n return (\n <div className=\"solid-form-wrapper\" ref={solidFormWrapperRef}>\n <div className=\"solid-form-section\">\n <div className=\"page-header solid-list-toolbar flex-column lg:flex-row\">\n <div className=\"flex justify-content-between w-full solid-form-toolbar-row\">\n <div className=\"flex gap-3 align-items-center solid-form-toolbar-left\">\n <p className=\"m-0 view-title solid-text-wrapper\">Loading form</p>\n </div>\n <div className=\"flex align-items-center solid-header-buttons-wrapper solid-form-toolbar-actions\">\n <SolidHeaderRequestStatus label=\"Loading...\" />\n </div>\n </div>\n </div>\n <div className=\"solid-view-loading-body-spacer flex-1 min-h-0\" />\n </div>\n </div>\n );\n }\n // At this point everything required to render the form is loaded, so we go ahead and start rendering things dynamically...\n else {\n\n // Initialize formik...\n const solidView = solidFormViewMetaData.data.solidView;\n const solidFieldsMetadata = solidFormViewMetaData.data.solidFieldsMetadata;\n\n const validationSchema = {};\n const initialValues = {};\n\n for (let i = 0; i < layoutFields?.length; i++) {\n const formLayoutField = layoutFields[i];\n const fieldMetadata = solidFieldsMetadata[formLayoutField.attrs.name];\n const fieldContext: SolidFieldProps = {\n fieldMetadata: fieldMetadata,\n field: formLayoutField,\n data: initialEntityData,\n solidFormViewMetaData: solidFormViewMetaData,\n modelName: params.modelName\n }\n if (params.parentData) {\n fieldContext.parentData = params.parentData;\n }\n let solidField = fieldFactory(fieldMetadata?.type, fieldContext);\n if (!fieldMetadata?.type) {\n const errorMessage = formLayoutField?.attrs?.label ? formLayoutField?.attrs?.label : formLayoutField.attrs.name;\n if (!errorFields.includes(errorMessage)) {\n // errorFields.push(errorMessage);\n }\n }\n if (solidField) {\n // @ts-ignore\n validationSchema[formLayoutField.attrs.name] = solidField.validationSchema();\n // @ts-ignore\n initialValues[formLayoutField.attrs.name] = solidField.initialValue();\n\n }\n }\n\n formik = useFormik({\n initialValues: initialValues,\n validationSchema: Yup.object(validationSchema),\n enableReinitialize: true,\n onSubmit: onFormikSubmit,\n });\n\n const formFieldOnXXX = async (event: ChangeEvent<HTMLInputElement>, eventType: string) => {\n // console.log(\"formFieldOnXXX\", eventType, event);\n\n // Invoke the formik change\n if (eventType === 'onFieldChange') {\n formik.handleChange(event);\n } else if (eventType === 'onFieldBlur') {\n formik.handleBlur(event);\n }\n\n // get details from the form event\n const { name: fieldName, value, type, checked } = event.target;\n\n // TODO: check if there is a change handler registered with this form view, load it and fire it.\n let changeHandler = solidView.layout.attrs[eventType];\n if (!changeHandler) {\n changeHandler = solidView.layout[eventType];\n }\n\n if (changeHandler) {\n // Get hold of the dynamic module...\n // const dynamicChangeHandler = await loadDynamicModule(changeHandler);\n const dynamicChangeHandler = getExtensionFunction(changeHandler);\n\n // Invoke the dynamic module...\n if (dynamicChangeHandler) {\n const event: SolidUiEvent = {\n fieldsMetadata: solidFieldsMetadata,\n formData: formik.values,\n modifiedField: fieldName,\n modifiedFieldValue: value,\n // @ts-ignore\n // TODO: HP & OR: This will be fixed once we figure out how to get types exported from core-ui\n type: eventType,\n viewMetadata: solidView,\n formViewLayout: formViewLayout,\n queryParams: {\n actionName,\n actionContext,\n actionType\n }\n }\n\n // Invoke the dynamic change handler: \n // TODO: encapsulate in try/catch, catch the exception render in the UI as an error & stop form rendering.\n const updatedFormInfo: SolidUiEventResponse = await dynamicChangeHandler(event);\n\n // If dataChanged is true, update Formik values\n if (updatedFormInfo?.dataChanged && updatedFormInfo.newFormData) {\n // This does one field at a time.\n // TODO: does the below fire change events again?\n Object.entries(updatedFormInfo.newFormData).forEach(([key, newValue]) => {\n formik.setFieldValue(key, newValue);\n });\n\n // This does all at once.\n // formik.setValues({\n // ...formik.values,\n // ...updatedFormInfo.newFormData\n // });\n }\n\n // if layout has changed then we need to re-render.\n if (updatedFormInfo?.layoutChanged && updatedFormInfo.newLayout) {\n // setFormViewMetaData({ ...formViewMetaData, layout: updatedFormInfo.newLayout });\n\n // TODO: this will trigger a useEffect dependent on formViewMetadata that invokes setFormViewLayout, \n // TODO: which means that this will not work if custom layout has been injected as a prop.\n setFormViewLayout(updatedFormInfo.newLayout);\n // setFormViewMetaData((prevMetaData: any) => {\n // const updatedFormViewMetadata = {\n // ...prevMetaData,\n // data: {\n // ...prevMetaData.data,\n // solidView: {\n // ...prevMetaData.data.solidView,\n // layout: updatedFormInfo.newLayout,\n // },\n // },\n // };\n // return updatedFormViewMetadata;\n // });\n }\n }\n else {\n // TODO: Show an error popup and stop form rendering ideallly...\n console.log(ERROR_MESSAGES.UNABLE_LOAD_DYNAMIC_MODULE, changeHandler);\n }\n }\n }\n\n // Now render the form dynamically...\n const renderFormElementDynamically: any = (element: any, recursiveFVMD: any, path = \"root\") => {\n let { type, attrs, body, children } = element;\n\n // const key = attrs?.name ?? generateRandomKey();\n const key = attrs?.key ?? attrs?.name ?? attrs?.label ?? `${type}-${path}`;\n let visible = attrs?.visible;\n if (visible === undefined || visible === null) {\n visible = true;\n }\n // console.log(`Resolved visibility of form element ${ key } to ${ visible } `);\n // console.log(`Form element ${ key }: `, attrs);\n const visibleToRole = attrs?.roles || [];\n\n if (visibleToRole.length > 0) {\n if (!hasAnyRole(user?.roles, visibleToRole)) {\n return <></>\n }\n }\n\n switch (type) {\n case \"form\":\n if (!children)\n children = [];\n return <div key={key}>{children.map((element: any, index: number) => renderFormElementDynamically(element, recursiveFVMD, `${path}.${index}`))}</div>;\n case \"div\":\n if (!children)\n children = [];\n return <div key={key} {...attrs}>{children.map((element: any, index: number) => renderFormElementDynamically(element, recursiveFVMD, `${path}.${index}`))}</div>\n case \"span\":\n return <span key={key} {...attrs}>{body}</span>\n case \"p\":\n return <p key={key} className={attrs?.className} {...attrs}>{body}</p>\n case \"h1\":\n return <h1 key={key} {...attrs}>{body}</h1>\n case \"h2\":\n return <h2 key={key} {...attrs}>{body}</h2>\n case \"ul\":\n if (!children)\n children = [];\n return <ul key={key} {...attrs}>{children.map((element: any, index: number) => renderFormElementDynamically(element, recursiveFVMD, `${path}.${index}`))}</ul>\n case \"li\":\n return <li key={key} {...attrs}>{body}</li>\n case \"sheet\":\n return <SolidSheet key={key}>{children.map((element: any, index: number) => renderFormElementDynamically(element, recursiveFVMD, `${path}.${index}`))}</SolidSheet>;\n case \"group\":\n if (visible === true) {\n return <SolidGroup key={key} attrs={attrs}>{children.map((element: any, index: number) => renderFormElementDynamically(element, recursiveFVMD, `${path}.${index}`))}</SolidGroup>;\n }\n break;\n case \"row\":\n if (visible === true) {\n return <SolidRow key={key} attrs={attrs}>{children.map((element: any, index: number) => renderFormElementDynamically(element, recursiveFVMD, `${path}.${index}`))}</SolidRow>;\n }\n break;\n case \"column\":\n if (visible === true) {\n return <SolidColumn key={key} attrs={attrs}>{children.map((element: any, index: number) => renderFormElementDynamically(element, recursiveFVMD, `${path}.${index}`))}</SolidColumn>;\n }\n break;\n case \"field\":\n if (visible === true) {\n\n // const fieldMetadata = solidFieldsMetadata[attrs.name];\n const fieldMetadata = recursiveFVMD.data.solidFieldsMetadata[attrs.name];\n // Read only permission if there is no update permission on model and router doesnt contains new\n const readOnlyPermission = !actionsAllowed.includes(`${permissionExpression(params.modelName, 'update')}`) && params.id !== \"new\";\n return <SolidField\n key={attrs.name}\n field={element}\n formik={formik}\n fieldMetadata={fieldMetadata}\n initialEntityData={solidFormViewData ? solidFormViewData.data : {}}\n solidFormViewMetaData={recursiveFVMD}\n modelName={params.modelName}\n readOnly={readOnlyPermission}\n viewMode={viewMode}\n onChange={formFieldOnXXX}\n onBlur={formFieldOnXXX}\n setLightboxUrls={setLightboxUrls}\n setOpenLightbox={setOpenLightbox}\n parentFieldName={params.parentFieldName}\n parentData={params.parentData}\n onEmbeddedFormSave={() => setRefreshChatterMessage(true)}\n />;\n }\n break;\n\n case \"notebook\":\n if (visible === true) {\n tabFieldsRef.current = [];\n return <SolidNotebook key={key} activeTab={searchParams.get(\"activeTab\") || \"\"} embeded={params.embeded} requestedTab={requestedTab} requestedTabVersion={requestedTabVersion}>{children.map((element: any, index: number) => renderFormElementDynamically(element, recursiveFVMD, `${path}.${index}`))}</SolidNotebook>;\n }\n break;\n case \"page\":\n if (visible === true) {\n const fields = children.flatMap((child: any) => getLayoutFields(child));\n tabFieldsRef.current.push({ tabKey: key, fields: fields.map((f: any) => f.attrs.name) });\n const pageChildren = children.map((element: any, index: number) => renderFormElementDynamically(element, recursiveFVMD, `${path}.${index}`));\n return SolidPage({ children: pageChildren, attrs: attrs, key: key, formik: formik, fields });\n }\n break;\n case \"custom\":\n if (visible === true) {\n const widgetName = attrs?.widget;\n const fieldMetadata = recursiveFVMD.data.solidFieldsMetadata[attrs.name];\n\n if (widgetName) {\n // widgetName, formik, field, fieldMetadata, solidFormViewMetaData\n return <SolidDynamicWidget\n key={key}\n widgetName={widgetName}\n field={element}\n formik={formik}\n fieldMetadata={fieldMetadata}\n solidFormViewMetaData={recursiveFVMD}\n solidFormViewData={solidFormViewData}\n />\n }\n }\n break;\n\n default:\n return null;\n }\n };\n\n const renderFormDynamically = (recursiveFVMD: any, formViewLayout: any) => {\n if (!recursiveFVMD) {\n return;\n }\n if (!recursiveFVMD.data) {\n return;\n }\n const solidView = recursiveFVMD.data.solidView;\n const solidFieldsMetadata = recursiveFVMD.data.solidFieldsMetadata;\n if (!solidView || !solidFieldsMetadata) {\n return;\n }\n const updatedLayout = [formViewLayout];\n const dynamicForm = updatedLayout.map((element: any, index: number) => renderFormElementDynamically(element, recursiveFVMD, `root-${index}`));\n\n return dynamicForm;\n };\n\n const handleDeleteEntity = async () => {\n deleteEntity(solidFormViewData.data.id);\n setDeleteDialogVisible(false);\n if (params.embeded == true) {\n setRedirectToList(false)\n\n } else {\n setRedirectToList(true)\n\n }\n // router.back();\n }\n\n const onDeleteClose = () => {\n setDeleteDialogVisible(false);\n }\n\n const dynamicHeader = solidView.layout?.header;\n let DynamicHeaderComponent = null;\n if (dynamicHeader) {\n DynamicHeaderComponent = getExtensionComponent(dynamicHeader);\n }\n const customFormComponentEdit = solidView.layout.attrs.customFormComponentEdit;\n const customFormComponentNew = solidView.layout.attrs.customFormComponentNew;\n let DynamicFormComponentEdit = null;\n let DynamicFormComponentNew = null;\n if (customFormComponentEdit) {\n DynamicFormComponentEdit = getExtensionComponent(customFormComponentEdit);\n }\n if (customFormComponentNew) {\n DynamicFormComponentNew = getExtensionComponent(customFormComponentNew);\n }\n\n const handleChatterExpandClick = (option?: string) => {\n setShowChatter(true);\n if (option === 'info') {\n setDefaultTabViewOptionIndex(0);\n } else if (option === 'chatter') {\n setDefaultTabViewOptionIndex(1);\n setRefreshChatterMessage(true);\n } else {\n setDefaultTabViewOptionIndex(2);\n }\n };\n\n //en 4 null\n const handleLocaleChangeRedirect = (\n locale: string,\n defaultEntityLocaleId: string,\n viewMode: string,\n ) => {\n let newViewMode = viewMode;\n const defaultApplicableLocales = solidFormViewMetaData?.data?.applicableLocales || [];\n //fr 4\n const matchingLocale = defaultApplicableLocales.find(\n (loc: any) =>\n loc.defaultEntityLocaleId &&\n loc.entityId &&\n loc.locale === locale\n );\n // Extract the base path from the current pathname, removing query params if any\n const basePath = pathname.split('?')[0];\n\n // Determine entity part of the path (new or existing entityId)\n const entityPart = matchingLocale?.entityId ?? 'new';\n if (entityPart === 'new' && viewMode === 'view') {\n newViewMode = 'edit'\n } else if (entityPart !== 'new' && viewMode === 'view') {\n newViewMode = 'view'\n } else {\n newViewMode = 'edit'\n }\n // Construct new pathname using existing basePath and replacing entity segment\n const updatedPath = basePath.replace(/\\/form\\/[^/]+/, `/form/${entityPart}`);\n\n const queryParams = new URLSearchParams({\n viewMode: newViewMode,\n locale,\n defaultEntityLocaleId,\n });\n\n router.push(`${updatedPath}?${queryParams.toString()}`);\n };\n\n const handleConfirmAccept = () => {\n confirmResolveRef.current?.(true);\n setConfirmVisible(false);\n };\n\n const handleConfirmReject = () => {\n confirmResolveRef.current?.(false);\n setConfirmVisible(false);\n };\n const handleDraftPublishWorkFlow = async (type: \"publish\" | \"unpublish\") => {\n const userChoice = await confirmDialogWithPromise();\n if (!userChoice) return;\n\n // const finalPublishedValue =\n // type === \"publish\" ? new Date().toISOString() : \"\";\n\n // setPublished(finalPublishedValue);\n\n // const formdata = new FormData();\n // formdata.append(\"publishedAt\", finalPublishedValue);\n\n let result;\n\n if (type === \"publish\") {\n result = await publishSolidEntity(params.id).unwrap();\n dispatch(showToast({ severity: \"success\", summary: ERROR_MESSAGES.SAVED, detail: ERROR_MESSAGES.MARK_PUBLISH }));\n } else {\n result = await unpublishSolidEntity(params.id).unwrap();\n dispatch(showToast({ severity: \"success\", summary: ERROR_MESSAGES.SAVED, detail: ERROR_MESSAGES.MARK_UNPUBLISH }));\n }\n\n console.log(\"publish/unpublish result\", result);\n\n // Set updated publish value from API response\n setPublished(result?.data?.publishedAt);\n };\n\n\n const lightboxSlides: SolidLightboxSlide[] = lightboxUrls\n .map((item: any) => {\n const src = item?.src || item?.downloadUrl || \"\";\n if (!src) {\n return null;\n }\n const mediaType = getMediaTypeFromUrl(src);\n const slide: SolidLightboxSlide = { src };\n if (mediaType !== \"image\") {\n slide.type = mediaType;\n }\n return slide;\n })\n .filter((slide): slide is SolidLightboxSlide => !!slide);\n\n\n\n return (\n <div className=\"solid-form-wrapper\" ref={solidFormWrapperRef}>\n <div className=\"solid-form-section\">\n <form style={{ width: '100%' }} onSubmit={formik.handleSubmit}>\n <FormikSubmitWatcher\n formik={formik}\n tabFieldsRef={tabFieldsRef}\n embeded={params.embeded}\n searchParams={searchParams}\n setRequestedTab={setRequestedTab}\n setRequestedTabVersion={setRequestedTabVersion}\n />\n <SolidFormActionHeader\n formik={formik}\n formData={solidFormViewData?.data}\n params={params}\n actionsAllowed={actionsAllowed}\n formViewLayout={formViewLayout}\n solidView={solidView}\n solidFormViewMetaData={solidFormViewMetaData}\n initialEntityData={solidFormViewData ? solidFormViewData.data : {}}\n setDeleteDialogVisible={setDeleteDialogVisible}\n setLayoutDialogVisible={setLayoutDialogVisible}\n setRedirectToList={setRedirectToList}\n viewMode={viewMode}\n setViewMode={setViewMode}\n solidWorkflowFieldValue={solidWorkflowFieldValue}\n setSolidWorkflowFieldValue={setSolidWorkflowFieldValue}\n draftEnabled={solidFormViewMetaData?.data?.solidView?.model?.draftPublishWorkflow}\n publish={published}\n internationalisationEnabled={solidFormViewMetaData?.data?.solidView?.model?.internationalisation}\n handleDraftPublishWorkFlow={handleDraftPublishWorkFlow}\n onStepperUpdate={() => setRefreshChatterMessage(true)}\n isSubmitting={isSubmitting}\n headerRequestStatusLabel={isSubmitting ? \"Saving...\" : null}\n showMobileOpenChatter={isMobileViewport && !isShowChatter && params.embeded !== true}\n onMobileOpenChatter={() => setShowChatter(true)}\n />\n <div className={`px-4 py-3 md:p-4 solid-form-content md:pt-1 ${createMode ? 'solid-create-mode-form-content' : ''} ${params.embeded === true ? 'h-auto' : ''}`} style={{ maxHeight: params.embeded === true ? '80vh' : '', overflowY: 'auto' }}>\n {DynamicHeaderComponent && <DynamicHeaderComponent />}\n {params.id === 'new' && DynamicFormComponentNew ? (\n <DynamicFormComponentNew params={params} />\n ) : params.id !== 'new' && DynamicFormComponentEdit ? (\n <DynamicFormComponentEdit params={params} />\n ) : (\n renderFormDynamically(formViewMetaData, formViewLayout)\n )}\n </div>\n\n </form>\n <SolidFormFooter params={params}></SolidFormFooter>\n </div>\n {params.embeded !== true &&\n <div className={`chatter-section ${isShowChatter === false ? 'collapsed' : 'open'}`} style={{ width: chatterLocaleWidth }}>\n {isShowChatter && (\n <div\n style={{\n width: 5,\n cursor: 'col-resize',\n position: 'absolute',\n left: 0,\n top: 0,\n bottom: 0,\n zIndex: 9,\n }}\n onMouseDown={() => setIsResizingChatterLocale(true)}\n />\n )}\n {isShowChatter === true &&\n <SolidButton\n icon=\"si si-angle-double-right\"\n size=\"sm\"\n text\n className=\"chatter-collapse-btn\"\n style={{ width: 26, height: 26, aspectRatio: '1/1' }}\n onClick={() => setShowChatter(false)}\n />\n }\n {isShowChatter === false ?\n <div className=\"flex flex-column gap-2 justify-content-center p-1\">\n {/*if solidview Internationalisation is enabled then show the locale tab */}\n {solidFormViewMetaData?.data?.solidView?.model?.draftPublishWorkflow &&\n <div className=\"chatter-collapsed-content\" onClick={() => handleChatterExpandClick('info')}>\n Info\n </div>}\n <div className=\"chatter-collapsed-content\" onClick={() => handleChatterExpandClick('chatter')}>\n Audit Trail\n </div>\n <SolidButton\n icon=\"si si-chevron-left\"\n size=\"sm\"\n className=\"px-0\"\n style={{ width: 30 }}\n onClick={() => handleChatterExpandClick('chatter')}\n />\n </div>\n :\n <SolidChatterLocaleTabView\n createMode={createMode}\n setSelectedLocale={setSelectedLocale}\n selectedLocale={selectedLocale}\n solidFormViewMetaData={solidFormViewMetaData}\n id={params.id}\n refreshChatterMessage={refreshChatterMessage}\n setRefreshChatterMessage={setRefreshChatterMessage}\n activeTab={defaultTabViewOptionIndex}\n viewMode={viewMode}\n defaultEntityLocaleId={defaultEntityLocaleId}\n handleLocaleChangeRedirect={handleLocaleChangeRedirect}\n solidFormViewData={solidFormViewData}\n published={published}\n actionsAllowed={actionsAllowed}\n mcpUrl={mcpUrl}\n />\n }\n </div>\n }\n\n <SolidConfirmDialog\n open={isDeleteDialogVisible}\n onCancel={onDeleteClose}\n onConfirm={() => handleDeleteEntity()}\n className=\"solid-shadcn-confirm-dialog solid-delete-confirm-dialog\"\n headerClassName=\"solid-shadcn-dialog-head\"\n bodyClassName=\"solid-shadcn-dialog-body\"\n footerClassName=\"solid-shadcn-dialog-actions\"\n separatorClassName=\"solid-shadcn-dialog-sep\"\n showSeparator\n title={`Delete ${entityDisplayName}`}\n message={<p className=\"solid-shadcn-dialog-text\">{`Are you sure you want to delete this ${entityDisplayName}?`}</p>}\n confirmLabel=\"Delete\"\n cancelLabel=\"Cancel\"\n />\n <SolidDialog\n open={isLayoutDialogVisible}\n onOpenChange={setLayoutDialogVisible}\n className=\"solid-form-layout-dialog\"\n >\n <SolidDialogHeader className=\"solid-shadcn-dialog-head\">\n <SolidDialogTitle>Change Form Layout</SolidDialogTitle>\n <SolidDialogClose />\n </SolidDialogHeader>\n <SolidDialogSeparator />\n <SolidDialogBody className=\"p-3 pt-0 lg:p-4\">\n <SolidFormUserViewLayout solidFormViewMetaData={solidFormViewMetaData} setLayoutDialogVisible={setLayoutDialogVisible} />\n </SolidDialogBody>\n </SolidDialog>\n {openLightbox && (\n <SolidLightbox\n open={openLightbox}\n slides={lightboxSlides}\n onClose={() => setOpenLightbox(false)}\n />\n )}\n\n <SolidConfirmDialog\n open={confirmVisible}\n title=\"Confirmation\"\n confirmLabel=\"Yes, confirm\"\n cancelLabel=\"No, cancel\"\n onConfirm={handleConfirmAccept}\n onCancel={handleConfirmReject}\n message={\n <div className=\"flex flex-col items-center justify-center text-center space-y-3\">\n <p className=\"text-gray-800 text-base\">\n Are you sure you want to {published !== null ? 'unpublish' : 'publish'}?\n </p>\n </div>\n }\n />\n </div>\n );\n }\n};\n\nexport default SolidFormView;\n"]}
|