@solidxai/core-ui 0.1.16-beta.1 → 0.1.17-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/dist/components/auth/AuthLayout.d.ts.map +1 -1
  2. package/dist/components/auth/AuthLayout.js +15 -14
  3. package/dist/components/auth/AuthLayout.js.map +1 -1
  4. package/dist/components/auth/AuthLayout.tsx +35 -34
  5. package/dist/components/common/SettingsComponent.module.css +89 -0
  6. package/dist/components/common/SolidAdmin.js +2 -2
  7. package/dist/components/common/SolidAdmin.js.map +1 -1
  8. package/dist/components/common/SolidAdmin.tsx +2 -2
  9. package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.js +1 -1
  10. package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.js.map +1 -1
  11. package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.tsx +2 -2
  12. package/dist/components/core/card/CardItem.d.ts.map +1 -1
  13. package/dist/components/core/card/CardItem.js +1 -1
  14. package/dist/components/core/card/CardItem.js.map +1 -1
  15. package/dist/components/core/card/CardItem.tsx +4 -1
  16. package/dist/components/core/card/SolidCardView.js +1 -1
  17. package/dist/components/core/card/SolidCardView.js.map +1 -1
  18. package/dist/components/core/card/SolidCardView.tsx +1 -1
  19. package/dist/components/core/card/SolidCardViewConfigure.js +1 -1
  20. package/dist/components/core/card/SolidCardViewConfigure.js.map +1 -1
  21. package/dist/components/core/card/SolidCardViewConfigure.tsx +1 -1
  22. package/dist/components/core/kanban/KanbanCard.d.ts.map +1 -1
  23. package/dist/components/core/kanban/KanbanCard.js +2 -2
  24. package/dist/components/core/kanban/KanbanCard.js.map +1 -1
  25. package/dist/components/core/kanban/KanbanCard.tsx +5 -2
  26. package/dist/components/core/kanban/SolidKanbanView.js +1 -1
  27. package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
  28. package/dist/components/core/kanban/SolidKanbanView.tsx +1 -1
  29. package/dist/components/core/kanban/SolidKanbanViewConfigure.js +1 -1
  30. package/dist/components/core/kanban/SolidKanbanViewConfigure.js.map +1 -1
  31. package/dist/components/core/kanban/SolidKanbanViewConfigure.tsx +1 -1
  32. package/dist/components/core/list/SolidListView.js +6 -6
  33. package/dist/components/core/list/SolidListView.js.map +1 -1
  34. package/dist/components/core/list/SolidListView.tsx +4 -4
  35. package/dist/components/core/list/SolidListViewConfigure.js +1 -1
  36. package/dist/components/core/list/SolidListViewConfigure.js.map +1 -1
  37. package/dist/components/core/list/SolidListViewConfigure.tsx +1 -1
  38. package/dist/components/core/locales/SolidLocale.d.ts.map +1 -1
  39. package/dist/components/core/locales/SolidLocale.js +1 -1
  40. package/dist/components/core/locales/SolidLocale.js.map +1 -1
  41. package/dist/components/core/locales/SolidLocale.tsx +1 -0
  42. package/dist/components/core/locales/solid-locale.css +9 -0
  43. package/dist/components/core/model/FieldMetaData.js +1 -1
  44. package/dist/components/core/model/FieldMetaData.js.map +1 -1
  45. package/dist/components/core/model/FieldMetaData.tsx +1 -1
  46. package/dist/components/core/model/FieldMetaDataForm.css +60 -0
  47. package/dist/components/core/model/FieldMetaDataForm.d.ts.map +1 -1
  48. package/dist/components/core/model/FieldMetaDataForm.js +47 -36
  49. package/dist/components/core/model/FieldMetaDataForm.js.map +1 -1
  50. package/dist/components/core/model/FieldMetaDataForm.tsx +59 -40
  51. package/dist/components/core/model/ModelMetaData.js +1 -1
  52. package/dist/components/core/model/ModelMetaData.js.map +1 -1
  53. package/dist/components/core/model/ModelMetaData.tsx +1 -1
  54. package/dist/components/core/module/CreateModule.d.ts.map +1 -1
  55. package/dist/components/core/module/CreateModule.js +34 -21
  56. package/dist/components/core/module/CreateModule.js.map +1 -1
  57. package/dist/components/core/module/CreateModule.tsx +59 -21
  58. package/dist/components/core/module/ModuleMetadataExplorer.css +72 -2
  59. package/dist/components/core/tree/SolidTreeView.js +2 -2
  60. package/dist/components/core/tree/SolidTreeView.js.map +1 -1
  61. package/dist/components/core/tree/SolidTreeView.tsx +2 -2
  62. package/dist/components/core/users/CreateUserRole.js +1 -1
  63. package/dist/components/core/users/CreateUserRole.js.map +1 -1
  64. package/dist/components/core/users/CreateUserRole.tsx +1 -1
  65. package/dist/components/layout/AdminTopHeader.d.ts.map +1 -1
  66. package/dist/components/layout/AdminTopHeader.js +2 -1
  67. package/dist/components/layout/AdminTopHeader.js.map +1 -1
  68. package/dist/components/layout/AdminTopHeader.tsx +2 -1
  69. package/dist/components/layout/AppSidebar.d.ts.map +1 -1
  70. package/dist/components/layout/AppSidebar.js +16 -1
  71. package/dist/components/layout/AppSidebar.js.map +1 -1
  72. package/dist/components/layout/AppSidebar.tsx +37 -9
  73. package/dist/resources/images/solidx-logo/solidx-logo-dark.png +0 -0
  74. package/dist/resources/images/solidx-logo/solidx-logo-light.png +0 -0
  75. package/dist/resources/solid-custom.css +67 -40
  76. package/dist/resources/solid-tailwind-generated.css +1 -1
  77. package/dist/resources/themes/solid-dark-enterprise/theme.css +2 -2
  78. package/dist/resources/themes/solid-dark-modern/theme.css +2 -2
  79. package/dist/resources/themes/solid-light-enterprise/theme.css +2 -2
  80. package/dist/resources/themes/solid-light-modern/theme.css +2 -2
  81. package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.css +289 -0
  82. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"CreateModule.js","sourceRoot":"","sources":["../../../../src/components/core/module/CreateModule.tsx"],"names":[],"mappings":"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","sourcesContent":["import { DropzonePlaceholder } from \"../../../components/common/DropzonePlaceholder\";\nimport { FileReaderExt } from \"../../../components/common/FileReaderExt\";\nimport { ERROR_MESSAGES } from \"../../../constants/error-messages\";\nimport { getSingularAndPlural } from \"../../../helpers/helpers\";\nimport { useGetFieldDefaultMetaDataQuery } from \"../../../redux/api/fieldApi\";\nimport { useDeleteMediaMutation } from \"../../../redux/api/mediaApi\";\nimport { useCreatemoduleMutation, useUpdatemoduleMutation } from \"../../../redux/api/moduleApi\";\nimport { useFormik } from \"formik\";\nimport { usePathname } from \"../../../hooks/usePathname\";\nimport { useRouter } from \"../../../hooks/useRouter\";\nimport React, { useEffect, useState } from \"react\";\nimport { useDispatch } from \"react-redux\";\nimport { showToast } from \"../../../redux/features/toastSlice\";\nimport { useDropzone } from \"react-dropzone\";\nimport * as Yup from \"yup\";\nimport { env } from \"../../../adapters/env\";\nimport styles from \"../form/fields/solidFields.module.css\";\nimport {\n SolidAutocomplete,\n SolidButton,\n SolidInput,\n SolidMessage,\n SolidPanel,\n SolidProgressBar,\n SolidTabGroup,\n SolidTextarea,\n SolidIcon,\n} from \"../../shad-cn-ui\";\nimport { useSolidAutocompleteField } from \"../../../hooks/useSolidAutocompleteField\";\nimport { SolidFormFooter } from \"../form/SolidFormFooter\";\nimport { ModuleMetadataExplorer } from \"./ModuleMetadataExplorer\";\nimport \"./CreateModule.css\";\n\n\n\n\nconst CreateModule = ({ params, data }: any) => {\n const dispatch = useDispatch();\n const router = useRouter();\n const pathname = usePathname()\n const [menuIconPreview, setmenuIconPreview] = useState<\n string | ArrayBuffer | null\n >(null);\n const [uploadProgress, setUploadProgress] = useState<number>(0);\n const [uploadCompleted, setUploadCompleted] = useState<boolean>(false);\n const [fileDetails, setFileDetails] = useState<{ name: string; type: string } | null>(null);\n const [uploadedSize, setUploadedSize] = useState<string>(\"0 MB\");\n const [totalSize, setTotalSize] = useState<string>(\"0 KB\");\n\n const formatFileSize = (size: number) => {\n return size >= 1024 * 1024\n ? `${(size / (1024 * 1024)).toFixed(1)} MB`\n : `${(size / 1024).toFixed(1)} KB`;\n };\n\n const [\n CreateModule,\n { isLoading, isSuccess, isError, error, data: newModule },\n ] = useCreatemoduleMutation();\n\n const [\n UpdateModule,\n { isLoading: isModuleUpdateLoading, isSuccess: isModuleUpdateSuccess, isError: isModuleUpdateError, error: updateModuleError, data: updatedModule },\n ] = useUpdatemoduleMutation();\n\n const { data: fieldDefaultMetaData, isLoading: isFieldDefaultMetaDataLoading, error: FieldDefaultMetaDataError, refetch: fieldDefaultMetaDataRefech } = useGetFieldDefaultMetaDataQuery(null);\n\n const [\n deleteMedia,\n { isLoading: isMediaDeleted, isSuccess: isDeleteMediaSuceess, isError: isMediaDeleteError, error: mediaDeleteError, data: DeletedMedia },\n ] = useDeleteMediaMutation();\n\n const initialValues = {\n name: data ? data.name : \"\",\n displayName: data ? data.displayName : \"\",\n description: data ? data.description : \"\",\n defaultDataSource: data ? data.defaultDataSource : \"\",\n isSystem: data ? data.isSystem : false,\n menuIconUrl: data ? data.menuIconUrl : \"\",\n menuSequenceNumber: data ? data.menuSequenceNumber : \"\"\n };\n\n\n const validationSchema = Yup.object({\n name: Yup.string()\n // .matches(\n // /^[a-z]+(-[a-z]+)*$/,\n // \"Invalid format. Use lowercase letters and hyphens only\"\n // )\n .required(ERROR_MESSAGES.FIELD_REUQIRED('Name')),\n displayName: Yup.string().required(ERROR_MESSAGES.FIELD_REUQIRED(\"Display Name\")),\n description: Yup.string().required(ERROR_MESSAGES.FIELD_REUQIRED(\"Description Name\")),\n defaultDataSource: Yup.string(),\n menuIconUrl: Yup.string().nullable(),\n isSystem: Yup.boolean(),\n menuSequenceNumber: Yup.number(),\n\n });\n\n const dataSources = [\n { label: \"Mysql\", value: \"mysql\" },\n { label: \"Postgres\", value: \"postgres\" },\n { label: \"Mssql\", value: \"mssql\" },\n { label: \"Oracle\", value: \"oracle\" },\n { label: \"Mariadb\", value: \"mariadb\" },\n ];\n\n const isFormFieldValid = (formik: any, fieldName: string) =>\n formik.touched[fieldName] && formik.errors[fieldName];\n\n const formik = useFormik({\n initialValues,\n validationSchema,\n enableReinitialize: true,\n onSubmit: async (values) => {\n try {\n let formData = new FormData();\n formData.append('name', values.name);\n formData.append('displayName', values.displayName.trim());\n formData.append('description', values.description);\n formData.append('defaultDataSource', values.defaultDataSource);\n formData.append('isSystem', values.isSystem == \"true\" ? \"true\" : \"\");\n if (values.menuIconUrl) {\n formData.append('menuIconUrl', values.menuIconUrl);\n }\n formData.append('menuSequenceNumber', values.menuSequenceNumber);\n\n // let formData = new FormData();\n // formData.append('name', values.name);\n // formData.append('displayName', values.displayName);\n // formData.append('description', values.description);\n // formData.append('defaultDataSource', values.defaultDataSource);\n if (data) {\n UpdateModule({ id: data.id, data: formData });\n } else {\n CreateModule(formData);\n }\n } catch (err) {\n console.error(ERROR_MESSAGES.FAILED_CREATE_MENU, err);\n }\n },\n });\n\n const handleDropmenuIcon = (acceptedFiles: File[]) => {\n const file = acceptedFiles[0];\n if (!file) return;\n\n setUploadCompleted(false);\n setUploadProgress(0);\n setTotalSize(formatFileSize(file.size));\n setUploadedSize(\"0 KB\");\n setFileDetails({ name: file.name, type: file.type });\n\n const reader = new FileReader();\n\n reader.onloadstart = () => {\n setUploadProgress(0);\n setUploadedSize(\"0 KB\");\n };\n reader.onprogress = (event) => {\n if (event.loaded && event.total) {\n const percent = Math.round((event.loaded / event.total) * 100);\n setUploadProgress(percent);\n setUploadedSize(formatFileSize(event.loaded));\n }\n };\n\n reader.onloadend = () => {\n setUploadProgress(100);\n setUploadCompleted(true);\n setUploadedSize(totalSize); // Set uploaded size to total size after completion\n };\n\n reader.readAsDataURL(file);\n formik.setFieldValue(\"menuIconUrl\", file);\n };\n\n const { getRootProps: getRootPropsmenuIcon, getInputProps: getInputPropsmenuIcon, isDragActive: isDragActivemenuIcon } = useDropzone({\n onDrop: handleDropmenuIcon,\n accept: {\n 'image/jpeg': [],\n 'image/png': [],\n 'image/svg+xml': ['.svg']\n },\n maxSize: 2 * 1024 * 1024, // 2MB\n });\n\n useEffect(() => {\n if (data) {\n setmenuIconPreview(`${env(\"API_URL\")}/${data.menuIconUrl}`);\n\n const fileName = data?.menuIconUrl?.split(\"/\").pop(); // Extract filename from URL\n setFileDetails({ name: fileName || \"Unknown File\", type: \"Uploaded File\" });\n\n // Set the upload progress to 100% since the file is already uploaded\n setUploadProgress(100);\n setUploadCompleted(true);\n\n // Ensure Formik has the existing file URL\n formik.setFieldValue(\"menuIconUrl\", data.menuIconUrl);\n }\n }, [data])\n const handleCancelUpload = (e: React.MouseEvent) => {\n e.stopPropagation();\n setUploadProgress(0);\n setUploadCompleted(false);\n setFileDetails(null);\n formik.setFieldValue(\"menuIconUrl\", null);\n };\n\n\n const showError = async () => {\n const errors = await formik.validateForm(); // Trigger validation and get the updated errors\n const errorMessages = Object.values(errors);\n\n if (errorMessages.length > 0) {\n const detail = Array.isArray(errorMessages) ? errorMessages.join(', ') : String(errorMessages);\n dispatch(showToast({ severity: 'error', summary: 'Error', detail }));\n // </div>\n // ))}\n // </div>\n // ),\n // });\n }\n };\n\n const showCustomeError = async (error: string[]) => {\n if (error.length > 0) {\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.SEND_REPORT, detail: error.join(', '), life: 3000 }));\n }\n };\n\n useEffect(() => {\n if (isSuccess == true || isModuleUpdateSuccess == true) {\n router.push(`/admin/core/solid-core/module-metadata/list`);\n }\n }, [isSuccess, isModuleUpdateSuccess])\n\n\n\n const serachDDefaultDataSource = async (event: any) => {\n const query = event.query;\n try {\n const filterredData: any = fieldDefaultMetaData.data.dataSource.filter((t: any) => t.name.toLowerCase().startsWith(query.toLowerCase()));\n const transformedData = filterredData.map((e: any) => ({ label: e.name, value: e.name, type: e.type }));\n return transformedData\n } catch (error) {\n console.error(ERROR_MESSAGES.FETCHING_ITEMS, error);\n return []\n }\n };\n\n const defaultDataSourceField = useSolidAutocompleteField({\n formik,\n fieldName: \"defaultDataSource\",\n labelKey: \"label\",\n valueKey: \"value\",\n searchData: serachDDefaultDataSource,\n existingData: formik.values.defaultDataSource,\n });\n\n\n // Error Handler \n\n useEffect(() => {\n const errors = [\n { isError, error },\n { isError: isModuleUpdateError, error: updateModuleError },\n { isError: isMediaDeleteError, error: mediaDeleteError },\n ];\n\n // Handle any error\n errors.forEach(({ isError, error }) => {\n if (isError && error) {\n const errorMessage = error && typeof error === 'object' && 'data' in error && 'message' in (error as any).data\n ? (error as any).data.message\n : 'Something went wrong';\n const detail = Array.isArray(errorMessage) ? errorMessage.join(', ') : String(errorMessage);\n dispatch(showToast({ severity: 'error', summary: 'Error', detail }));\n }\n });\n }, [isError, isModuleUpdateError, isMediaDeleteError])\n\n const [activeWorkspaceTab, setActiveWorkspaceTab] = useState(\"general\");\n\n const isCreateMode = pathname.includes('new');\n const shouldShowGeneralSave = isCreateMode || activeWorkspaceTab === \"general\";\n\n const handleCancel = () => {\n router.back();\n };\n\n const generalInfoContent = (\n <div className={`solid-module-general-info-content px-3 pt-3 md:px-4 ${!isCreateMode ? \"is-tabbed\" : \"\"}`}>\n {!isCreateMode && shouldShowGeneralSave && formik.dirty && (\n <div className=\"solid-module-general-info-actions\">\n <SolidButton\n size=\"sm\"\n type=\"submit\"\n form=\"module-general-info-form\"\n onClick={() => showError()}\n >\n Save\n </SolidButton>\n </div>\n )}\n <form\n id=\"module-general-info-form\"\n style={{ width: '100%' }}\n onSubmit={formik.handleSubmit}\n >\n <div className=\"solid-form-content\">\n <SolidPanel header={\"Basic Info\"} className=\"solid-column-panel\">\n <div className=\"mt-3 flex flex-wrap -mx-2 \">\n <div className=\"field w-full px-2 pt-2 pb-3 lg:w-1/2 lg:pb-0\">\n <div className={styles.fieldWrapper}>\n <label htmlFor=\"displayName\" className={`${styles.fieldLabel} form-field-label`}>\n Display Name <span className=\"text-red-500\">*</span>\n </label>\n <SolidInput\n disabled={!!data}\n type=\"text\"\n id=\"displayName\"\n name=\"displayName\"\n onChange={(e) => {\n formik.handleChange(e);\n const { toKebabCase } = getSingularAndPlural(e.target.value);\n if (pathname.includes('new')) {\n formik.setFieldValue(\"name\", toKebabCase);\n }\n }}\n value={formik.values.displayName}\n className={styles.fieldInput}\n />\n {isFormFieldValid(formik, \"displayName\") && (\n <p className={styles.fieldError}>{formik?.errors?.displayName?.toString()}</p>\n )}\n </div>\n </div>\n <div className=\"field w-full px-2 pt-2 lg:w-1/2\">\n <div className={styles.fieldWrapper}>\n <label htmlFor=\"name\" className={`${styles.fieldLabel} form-field-label`}>\n Name <span className=\"text-red-500\">*</span>\n </label>\n <SolidInput\n disabled\n type=\"text\"\n id=\"name\"\n name=\"name\"\n onChange={formik.handleChange}\n value={formik.values.name}\n className={styles.fieldInput}\n />\n {isFormFieldValid(formik, \"name\") && (\n <p className={styles.fieldError}>{formik?.errors?.name?.toString()}</p>\n )}\n </div>\n </div>\n </div>\n <div className=\"mt-4 flex flex-wrap -mx-2 -mt-2\">\n <div className=\"field w-full px-2 pt-2 pb-3 lg:w-1/2 lg:pb-0\">\n <div className={styles.fieldWrapper}>\n <label htmlFor=\"menuSequenceNumber\" className={`${styles.fieldLabel} form-field-label`}>\n Menu Sequence Number\n </label>\n <SolidInput\n id=\"menuSequenceNumber\"\n type=\"number\"\n onChange={formik.handleChange}\n min={0}\n value={formik.values.menuSequenceNumber}\n className={styles.fieldInput}\n />\n {isFormFieldValid(formik, \"menuSequenceNumber\") && (\n <p className={styles.fieldError}>{formik?.errors?.menuSequenceNumber?.toString()}</p>\n )}\n </div>\n </div>\n <div className=\"field w-full px-2 pt-2 lg:w-1/2\">\n <div className={styles.fieldWrapper}>\n <label htmlFor=\"description\" className={`${styles.fieldLabel} form-field-label`}>\n Description <span className=\"text-red-500\">*</span>\n </label>\n <SolidTextarea\n id=\"description\"\n name=\"description\"\n onChange={formik.handleChange}\n value={formik.values.description}\n className={styles.fieldTextarea}\n rows={5}\n cols={30}\n />\n {isFormFieldValid(formik, \"description\") && (\n <p className={styles.fieldError}>{formik?.errors?.description?.toString()}</p>\n )}\n </div>\n </div>\n </div>\n <div className=\"mt-4 flex flex-wrap -mx-2 -mt-2\">\n <div className=\"field w-full px-2 pt-2\">\n <div className={`${styles.fieldWrapper} relative`}>\n <label htmlFor=\"menuIconUrl\" className={`${styles.fieldLabel} form-field-label`}>\n Menu Icon <small className=\"text-red-500 helper-text\">(only svg, png and jpeg are allowed)</small>\n </label>\n <div {...getRootPropsmenuIcon()} className=\"solid-dropzone-wrapper\">\n <input {...getInputPropsmenuIcon()} />\n <DropzonePlaceholder />\n </div>\n {isFormFieldValid(formik, \"menuIconUrl\") && (\n <SolidMessage severity=\"error\" text={formik?.errors?.menuIconUrl?.toString()} className=\"mt-2\" />\n )}\n\n {fileDetails && (\n <div className=\"solid-file-upload-wrapper mt-4\">\n <div className=\"flex items-center gap-2\">\n <FileReaderExt fileDetails={fileDetails} />\n <div className=\"flex w-full flex-col gap-1\">\n <div className=\"flex items-center justify-between\">\n <div className=\"font-bold solid-module-mobile-text-wrapper\">{fileDetails.name}</div>\n <button\n type=\"button\"\n className=\"solid-file-icon-btn is-danger solid-module-upload-remove\"\n aria-label=\"Remove uploaded menu icon\"\n onClick={handleCancelUpload}\n >\n <SolidIcon name=\"si-times\" aria-hidden />\n </button>\n </div>\n {uploadCompleted ? (\n <div className=\"flex items-center gap-2 text-sm\">\n {totalSize} of {totalSize}\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"4\" height=\"4\" viewBox=\"0 0 4 4\" fill=\"none\">\n <circle cx=\"2\" cy=\"2\" r=\"2\" fill=\"#C1C1C1\" />\n </svg>\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\n <mask id=\"mask0_2480_8635\" style={{ maskType: 'alpha' }} maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"20\" height=\"20\">\n <rect width=\"20\" height=\"20\" fill=\"#D9D9D9\" />\n </mask>\n <g mask=\"url(#mask0_2480_8635)\">\n <path d=\"M9.16 12.76L13.39 8.53L12.55 7.69L9.16 11.08L7.45 9.37L6.61 10.21L9.16 12.76ZM10 16C9.17 16 8.39 15.8424 7.66 15.5272C6.93 15.2124 6.295 14.785 5.755 14.245C5.215 13.705 4.7876 13.07 4.4728 12.34C4.1576 11.61 4 10.83 4 10C4 9.17 4.1576 8.39 4.4728 7.66C4.7876 6.93 5.215 5.215 5.755 5.755C6.295 5.215 6.93 4.7874 7.66 4.4722C8.39 4.1574 9.17 4 10 4C10.83 4 11.61 4.1574 12.34 4.4722C13.07 4.7874 13.705 5.215 14.245 5.755C14.785 6.295 15.2124 6.93 15.5272 7.66C15.8424 8.39 16 9.17 16 10C16 10.83 15.8424 11.61 15.5272 12.34C15.2124 13.07 14.785 13.705 14.245 14.245C13.705 14.785 13.07 15.2124 12.34 15.5272C11.61 15.8424 10.83 16 10 16Z\" fill=\"var(--primary-color, var(--primary))\" />\n </g>\n </svg>\n Completed\n </div>\n ) : (\n <div className=\"flex items-center gap-2 text-sm\">\n {uploadedSize} of {totalSize}\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"4\" height=\"4\" viewBox=\"0 0 4 4\" fill=\"none\">\n <circle cx=\"2\" cy=\"2\" r=\"2\" fill=\"#C1C1C1\" />\n </svg>\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path d=\"M7.375 10.5V5.40625L5.75 7.03125L4.875 6.125L8 3L11.125 6.125L10.25 7.03125L8.625 5.40625V10.5H7.375ZM4.25 13C3.90625 13 3.61198 12.8776 3.36719 12.6328C3.1224 12.388 3 12.0938 3 11.75V9.875H4.25V11.75H11.75V9.875H13V11.75C13 12.0938 12.8776 12.388 12.6328 12.6328C12.388 12.8776 12.0938 13 11.75 13H4.25Z\" fill=\"black\" />\n </svg>\n Uploading ${uploadProgress}% Completed\n </div>\n )}\n </div>\n </div>\n <SolidProgressBar value={uploadProgress} showValue={false} style={{ height: 4 }} className=\"mt-2\" />\n </div>\n )}\n </div>\n </div>\n </div>\n </SolidPanel>\n <SolidPanel header={\"Datasource Configuration\"} className=\"solid-column-panel mt-4\">\n <div className=\"mt-3 flex flex-wrap -mx-2 -mt-2\">\n <div className=\"field w-full px-2 pt-2\">\n <div className={styles.fieldWrapper}>\n <label htmlFor=\"defaultDataSource\" className={`${styles.fieldLabel} form-field-label`}>\n Default Data Source\n </label>\n <div className=\"solid-standard-autocomplete w-full\">\n <SolidAutocomplete\n disabled={!!data}\n value={defaultDataSourceField.selectedItem}\n suggestions={defaultDataSourceField.filteredItems}\n completeMethod={defaultDataSourceField.searchItems}\n onChange={defaultDataSourceField.handleChange}\n dropdown\n portal\n field=\"label\"\n className=\"w-full\"\n />\n </div>\n {isFormFieldValid(formik, \"defaultDataSource\") && (\n <p className={styles.fieldError}>{formik?.errors?.defaultDataSource?.toString()}</p>\n )}\n </div>\n </div>\n {!isCreateMode ? (\n <div className=\"field w-full px-2 pt-4\">\n <div className=\"solid-module-automap-panel\">\n <div className=\"solid-module-automap-copy\">\n <div className=\"solid-module-automap-eyebrow\">Legacy Table Mapping</div>\n <h4>Auto map datasource tables into this module</h4>\n <p>\n Open the datasource introspection workspace to inspect legacy tables, preview field mappings,\n review metadata JSON changes, and generate the supporting migration template for SolidX system fields.\n </p>\n <ul className=\"solid-module-automap-list\">\n <li>Review tables available on the selected datasource.</li>\n <li>Control which legacy columns are included in each mapping session.</li>\n <li>Preview the metadata JSON and migration output before saving.</li>\n </ul>\n </div>\n <div className=\"solid-module-automap-actions\">\n <SolidButton\n type=\"button\"\n size=\"sm\"\n onClick={() => router.push(`/admin/core/solid-core/modules/${data?.id}/datasource-introspection`)}\n >\n Auto Map Tables\n </SolidButton>\n </div>\n </div>\n </div>\n ) : null}\n </div>\n </SolidPanel>\n </div>\n </form>\n <SolidFormFooter params={params}></SolidFormFooter>\n </div>\n );\n\n return (\n <div className=\"solid-form-wrapper\">\n <div className=\"solid-form-section\" style={{ borderRight: params.embeded !== true ? '1px solid var(--primary-light-color)' : '' }} >\n {isCreateMode && (\n <div className=\"solid-form-header flex flex-wrap items-center justify-between gap-3\">\n <div className=\"flex flex-col gap-1\" />\n <div className=\"flex items-center gap-2\">\n <SolidButton\n variant=\"outline\"\n size=\"sm\"\n type=\"button\"\n onClick={handleCancel}\n className=\"bg-[var(--primary-color-text)]\"\n >\n Cancel\n </SolidButton>\n {shouldShowGeneralSave && formik.dirty && (\n <SolidButton\n size=\"sm\"\n type=\"submit\"\n form=\"module-general-info-form\"\n onClick={() => showError()}\n >\n Save\n </SolidButton>\n )}\n </div>\n </div>\n )}\n\n {isCreateMode ? (\n generalInfoContent\n ) : (\n <div className=\"solid-module-form-workspace\">\n <SolidTabGroup\n value={activeWorkspaceTab}\n onValueChange={setActiveWorkspaceTab}\n className=\"solid-module-form-tabs\"\n listClassName=\"solid-module-form-tablist\"\n panelClassName=\"solid-module-form-tabpanel\"\n tabs={[\n {\n value: \"general\",\n label: <span className=\"solid-module-form-tab-label\">General Info</span>,\n content: generalInfoContent,\n },\n {\n value: \"explorer\",\n label: <span className=\"solid-module-form-tab-label\">Explorer</span>,\n content: <ModuleMetadataExplorer moduleName={data?.name} moduleId={data?.id} />,\n },\n ]}\n />\n </div>\n )}\n </div>\n </div>\n );\n};\n\nexport default CreateModule;\n"]}
1
+ {"version":3,"file":"CreateModule.js","sourceRoot":"","sources":["../../../../src/components/core/module/CreateModule.tsx"],"names":[],"mappings":"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","sourcesContent":["import { DropzonePlaceholder } from \"../../../components/common/DropzonePlaceholder\";\nimport { FileReaderExt } from \"../../../components/common/FileReaderExt\";\nimport { ERROR_MESSAGES } from \"../../../constants/error-messages\";\nimport { getSingularAndPlural } from \"../../../helpers/helpers\";\nimport { useGetFieldDefaultMetaDataQuery } from \"../../../redux/api/fieldApi\";\nimport { useDeleteMediaMutation } from \"../../../redux/api/mediaApi\";\nimport { useCreatemoduleMutation, useUpdatemoduleMutation } from \"../../../redux/api/moduleApi\";\nimport { useFormik } from \"formik\";\nimport { usePathname } from \"../../../hooks/usePathname\";\nimport { useRouter } from \"../../../hooks/useRouter\";\nimport React, { useEffect, useState } from \"react\";\nimport { useDispatch } from \"react-redux\";\nimport { showToast } from \"../../../redux/features/toastSlice\";\nimport { useDropzone } from \"react-dropzone\";\nimport * as Yup from \"yup\";\nimport { env } from \"../../../adapters/env\";\nimport styles from \"../form/fields/solidFields.module.css\";\nimport {\n SolidAutocomplete,\n SolidButton,\n SolidInput,\n SolidMessage,\n SolidPanel,\n SolidProgressBar,\n SolidTabGroup,\n SolidTextarea,\n SolidIcon,\n SolidLightbox,\n} from \"../../shad-cn-ui\";\nimport type { SolidLightboxSlide } from \"../../shad-cn-ui/SolidLightbox\";\nimport { useSolidAutocompleteField } from \"../../../hooks/useSolidAutocompleteField\";\nimport { SolidFormFooter } from \"../form/SolidFormFooter\";\nimport { ModuleMetadataExplorer } from \"./ModuleMetadataExplorer\";\nimport \"./CreateModule.css\";\n\n\n\n\nconst CreateModule = ({ params, data }: any) => {\n const dispatch = useDispatch();\n const router = useRouter();\n const pathname = usePathname()\n const [menuIconPreview, setmenuIconPreview] = useState<\n string | ArrayBuffer | null\n >(null);\n const [uploadProgress, setUploadProgress] = useState<number>(0);\n const [uploadCompleted, setUploadCompleted] = useState<boolean>(false);\n const [fileDetails, setFileDetails] = useState<{ name: string; type: string } | null>(null);\n const [uploadedSize, setUploadedSize] = useState<string>(\"0 MB\");\n const [totalSize, setTotalSize] = useState<string>(\"0 KB\");\n const [isMenuIconLightboxOpen, setIsMenuIconLightboxOpen] = useState(false);\n\n const formatFileSize = (size: number) => {\n return size >= 1024 * 1024\n ? `${(size / (1024 * 1024)).toFixed(1)} MB`\n : `${(size / 1024).toFixed(1)} KB`;\n };\n\n const [\n CreateModule,\n { isLoading, isSuccess, isError, error, data: newModule },\n ] = useCreatemoduleMutation();\n\n const [\n UpdateModule,\n { isLoading: isModuleUpdateLoading, isSuccess: isModuleUpdateSuccess, isError: isModuleUpdateError, error: updateModuleError, data: updatedModule },\n ] = useUpdatemoduleMutation();\n\n const { data: fieldDefaultMetaData, isLoading: isFieldDefaultMetaDataLoading, error: FieldDefaultMetaDataError, refetch: fieldDefaultMetaDataRefech } = useGetFieldDefaultMetaDataQuery(null);\n\n const [\n deleteMedia,\n { isLoading: isMediaDeleted, isSuccess: isDeleteMediaSuceess, isError: isMediaDeleteError, error: mediaDeleteError, data: DeletedMedia },\n ] = useDeleteMediaMutation();\n\n const initialValues = {\n name: data ? data.name : \"\",\n displayName: data ? data.displayName : \"\",\n description: data ? data.description : \"\",\n defaultDataSource: data ? data.defaultDataSource : \"\",\n isSystem: data ? data.isSystem : false,\n menuIconUrl: data ? data.menuIconUrl : \"\",\n menuSequenceNumber: data ? data.menuSequenceNumber : \"\"\n };\n\n\n const validationSchema = Yup.object({\n name: Yup.string()\n // .matches(\n // /^[a-z]+(-[a-z]+)*$/,\n // \"Invalid format. Use lowercase letters and hyphens only\"\n // )\n .required(ERROR_MESSAGES.FIELD_REUQIRED('Name')),\n displayName: Yup.string().required(ERROR_MESSAGES.FIELD_REUQIRED(\"Display Name\")),\n description: Yup.string().required(ERROR_MESSAGES.FIELD_REUQIRED(\"Description Name\")),\n defaultDataSource: Yup.string(),\n menuIconUrl: Yup.string().nullable(),\n isSystem: Yup.boolean(),\n menuSequenceNumber: Yup.number(),\n\n });\n\n const dataSources = [\n { label: \"Mysql\", value: \"mysql\" },\n { label: \"Postgres\", value: \"postgres\" },\n { label: \"Mssql\", value: \"mssql\" },\n { label: \"Oracle\", value: \"oracle\" },\n { label: \"Mariadb\", value: \"mariadb\" },\n ];\n\n const isFormFieldValid = (formik: any, fieldName: string) =>\n formik.touched[fieldName] && formik.errors[fieldName];\n\n const formik = useFormik({\n initialValues,\n validationSchema,\n enableReinitialize: true,\n onSubmit: async (values) => {\n try {\n let formData = new FormData();\n formData.append('name', values.name);\n formData.append('displayName', values.displayName.trim());\n formData.append('description', values.description);\n formData.append('defaultDataSource', values.defaultDataSource);\n formData.append('isSystem', values.isSystem == \"true\" ? \"true\" : \"\");\n if (values.menuIconUrl) {\n formData.append('menuIconUrl', values.menuIconUrl);\n }\n formData.append('menuSequenceNumber', values.menuSequenceNumber);\n\n // let formData = new FormData();\n // formData.append('name', values.name);\n // formData.append('displayName', values.displayName);\n // formData.append('description', values.description);\n // formData.append('defaultDataSource', values.defaultDataSource);\n if (data) {\n UpdateModule({ id: data.id, data: formData });\n } else {\n CreateModule(formData);\n }\n } catch (err) {\n console.error(ERROR_MESSAGES.FAILED_CREATE_MENU, err);\n }\n },\n });\n\n const handleDropmenuIcon = (acceptedFiles: File[]) => {\n const file = acceptedFiles[0];\n if (!file) return;\n\n setUploadCompleted(false);\n setUploadProgress(0);\n setTotalSize(formatFileSize(file.size));\n setUploadedSize(\"0 KB\");\n setFileDetails({ name: file.name, type: file.type });\n\n const reader = new FileReader();\n\n reader.onloadstart = () => {\n setUploadProgress(0);\n setUploadedSize(\"0 KB\");\n };\n reader.onprogress = (event) => {\n if (event.loaded && event.total) {\n const percent = Math.round((event.loaded / event.total) * 100);\n setUploadProgress(percent);\n setUploadedSize(formatFileSize(event.loaded));\n }\n };\n\n reader.onloadend = () => {\n setUploadProgress(100);\n setUploadCompleted(true);\n setUploadedSize(totalSize); // Set uploaded size to total size after completion\n if (typeof reader.result === \"string\") {\n setmenuIconPreview(reader.result);\n }\n };\n\n reader.readAsDataURL(file);\n formik.setFieldValue(\"menuIconUrl\", file);\n };\n\n const { getRootProps: getRootPropsmenuIcon, getInputProps: getInputPropsmenuIcon, isDragActive: isDragActivemenuIcon } = useDropzone({\n onDrop: handleDropmenuIcon,\n accept: {\n 'image/jpeg': [],\n 'image/png': [],\n },\n maxSize: 2 * 1024 * 1024, // 2MB\n });\n\n useEffect(() => {\n const menuIconUrl = typeof data?.menuIconUrl === \"string\"\n ? data.menuIconUrl.trim()\n : \"\";\n\n if (!menuIconUrl) {\n setmenuIconPreview(null);\n setFileDetails(null);\n setUploadProgress(0);\n setUploadCompleted(false);\n setUploadedSize(\"0 KB\");\n setTotalSize(\"0 KB\");\n formik.setFieldValue(\"menuIconUrl\", null);\n return;\n }\n\n setmenuIconPreview(`${env(\"API_URL\")}/${menuIconUrl}`);\n\n const fileName = menuIconUrl.split(\"/\").pop();\n setFileDetails({ name: fileName || \"Uploaded File\", type: \"Uploaded File\" });\n\n // Set the upload progress to 100% since the file is already uploaded.\n setUploadProgress(100);\n setUploadCompleted(true);\n\n // Ensure Formik has the existing file URL.\n formik.setFieldValue(\"menuIconUrl\", data.menuIconUrl);\n }, [data])\n const handleCancelUpload = (e: React.MouseEvent) => {\n e.stopPropagation();\n setUploadProgress(0);\n setUploadCompleted(false);\n setFileDetails(null);\n formik.setFieldValue(\"menuIconUrl\", null);\n };\n\n\n const showError = async () => {\n const errors = await formik.validateForm(); // Trigger validation and get the updated errors\n const errorMessages = Object.values(errors);\n\n if (errorMessages.length > 0) {\n const detail = Array.isArray(errorMessages) ? errorMessages.join(', ') : String(errorMessages);\n dispatch(showToast({ severity: 'error', summary: 'Error', detail }));\n // </div>\n // ))}\n // </div>\n // ),\n // });\n }\n };\n\n const showCustomeError = async (error: string[]) => {\n if (error.length > 0) {\n dispatch(showToast({ severity: \"error\", summary: ERROR_MESSAGES.ERROR_OCCURED, detail: error.join(', '), life: 3000 }));\n }\n };\n\n useEffect(() => {\n if (isSuccess == true || isModuleUpdateSuccess == true) {\n router.push(`/admin/core/solid-core/module-metadata/list`);\n }\n }, [isSuccess, isModuleUpdateSuccess])\n\n\n\n const serachDDefaultDataSource = async (event: any) => {\n const query = event.query;\n try {\n const filterredData: any = fieldDefaultMetaData.data.dataSource.filter((t: any) => t.name.toLowerCase().startsWith(query.toLowerCase()));\n const transformedData = filterredData.map((e: any) => ({ label: e.name, value: e.name, type: e.type }));\n return transformedData\n } catch (error) {\n console.error(ERROR_MESSAGES.FETCHING_ITEMS, error);\n return []\n }\n };\n\n const defaultDataSourceField = useSolidAutocompleteField({\n formik,\n fieldName: \"defaultDataSource\",\n labelKey: \"label\",\n valueKey: \"value\",\n searchData: serachDDefaultDataSource,\n existingData: formik.values.defaultDataSource,\n });\n\n\n // Error Handler \n\n useEffect(() => {\n const errors = [\n { isError, error },\n { isError: isModuleUpdateError, error: updateModuleError },\n { isError: isMediaDeleteError, error: mediaDeleteError },\n ];\n\n // Handle any error\n errors.forEach(({ isError, error }) => {\n if (isError && error) {\n const errorMessage = error && typeof error === 'object' && 'data' in error && 'message' in (error as any).data\n ? (error as any).data.message\n : 'Something went wrong';\n const detail = Array.isArray(errorMessage) ? errorMessage.join(', ') : String(errorMessage);\n dispatch(showToast({ severity: 'error', summary: 'Error', detail }));\n }\n });\n }, [isError, isModuleUpdateError, isMediaDeleteError])\n\n const [activeWorkspaceTab, setActiveWorkspaceTab] = useState(\"general\");\n\n const isCreateMode = pathname.includes('new');\n const shouldShowGeneralSave = isCreateMode || activeWorkspaceTab === \"general\";\n\n const handleCancel = () => {\n router.back();\n };\n\n const generalInfoContent = (\n <div className={`solid-module-general-info-content px-3 pt-3 md:px-4 ${!isCreateMode ? \"is-tabbed\" : \"\"}`}>\n {!isCreateMode && shouldShowGeneralSave && formik.dirty && (\n <div className=\"solid-module-general-info-actions\">\n <SolidButton\n size=\"sm\"\n type=\"submit\"\n form=\"module-general-info-form\"\n onClick={() => showError()}\n >\n Save\n </SolidButton>\n </div>\n )}\n <form\n id=\"module-general-info-form\"\n style={{ width: '100%' }}\n onSubmit={formik.handleSubmit}\n >\n <div className=\"solid-form-content\">\n <SolidPanel header={\"Basic Info\"} className=\"solid-column-panel\">\n <div className=\"mt-3 flex flex-wrap -mx-2 \">\n <div className=\"field w-full px-2 pt-2 pb-3 lg:w-1/2 lg:pb-0\">\n <div className={styles.fieldWrapper}>\n <label htmlFor=\"displayName\" className={`${styles.fieldLabel} form-field-label`}>\n Display Name <span className=\"text-red-500\">*</span>\n </label>\n <SolidInput\n disabled={!!data}\n type=\"text\"\n id=\"displayName\"\n name=\"displayName\"\n onChange={(e) => {\n formik.handleChange(e);\n const { toKebabCase } = getSingularAndPlural(e.target.value);\n if (pathname.includes('new')) {\n formik.setFieldValue(\"name\", toKebabCase);\n }\n }}\n value={formik.values.displayName}\n className={styles.fieldInput}\n />\n {isFormFieldValid(formik, \"displayName\") && (\n <p className={styles.fieldError}>{formik?.errors?.displayName?.toString()}</p>\n )}\n </div>\n </div>\n <div className=\"field w-full px-2 pt-2 lg:w-1/2\">\n <div className={styles.fieldWrapper}>\n <label htmlFor=\"name\" className={`${styles.fieldLabel} form-field-label`}>\n Name <span className=\"text-red-500\">*</span>\n </label>\n <SolidInput\n disabled\n type=\"text\"\n id=\"name\"\n name=\"name\"\n onChange={formik.handleChange}\n value={formik.values.name}\n className={styles.fieldInput}\n />\n {isFormFieldValid(formik, \"name\") && (\n <p className={styles.fieldError}>{formik?.errors?.name?.toString()}</p>\n )}\n </div>\n </div>\n </div>\n <div className=\"mt-4 flex flex-wrap -mx-2 -mt-2\">\n <div className=\"field w-full px-2 pt-2 pb-3 lg:w-1/2 lg:pb-0\">\n <div className={styles.fieldWrapper}>\n <label htmlFor=\"menuSequenceNumber\" className={`${styles.fieldLabel} form-field-label`}>\n Menu Sequence Number\n </label>\n <SolidInput\n id=\"menuSequenceNumber\"\n type=\"number\"\n onChange={formik.handleChange}\n min={0}\n value={formik.values.menuSequenceNumber}\n className={styles.fieldInput}\n />\n {isFormFieldValid(formik, \"menuSequenceNumber\") && (\n <p className={styles.fieldError}>{formik?.errors?.menuSequenceNumber?.toString()}</p>\n )}\n </div>\n </div>\n <div className=\"field w-full px-2 pt-2 lg:w-1/2\">\n <div className={styles.fieldWrapper}>\n <label htmlFor=\"description\" className={`${styles.fieldLabel} form-field-label`}>\n Description <span className=\"text-red-500\">*</span>\n </label>\n <SolidTextarea\n id=\"description\"\n name=\"description\"\n onChange={formik.handleChange}\n value={formik.values.description}\n className={styles.fieldTextarea}\n rows={5}\n cols={30}\n />\n {isFormFieldValid(formik, \"description\") && (\n <p className={styles.fieldError}>{formik?.errors?.description?.toString()}</p>\n )}\n </div>\n </div>\n </div>\n <div className=\"mt-4 flex flex-wrap -mx-2 -mt-2\">\n <div className=\"field w-full px-2 pt-2\">\n <div className={`${styles.fieldWrapper} relative`}>\n <label htmlFor=\"menuIconUrl\" className={`${styles.fieldLabel} form-field-label`}>\n Menu Icon <small className=\"text-red-500 helper-text\">(only png and jpeg are allowed)</small>\n </label>\n <div {...getRootPropsmenuIcon()} className=\"solid-dropzone-wrapper\">\n <input {...getInputPropsmenuIcon()} />\n <DropzonePlaceholder />\n </div>\n {isFormFieldValid(formik, \"menuIconUrl\") && (\n <SolidMessage severity=\"error\" text={formik?.errors?.menuIconUrl?.toString()} className=\"mt-2\" />\n )}\n\n {fileDetails && (\n <div className=\"solid-file-upload-wrapper mt-4\">\n <div className=\"flex items-center gap-2\">\n <FileReaderExt fileDetails={fileDetails} />\n <div className=\"flex w-full flex-col gap-1\">\n <div className=\"flex items-center justify-between\">\n <div className=\"font-bold solid-module-mobile-text-wrapper\">{fileDetails.name}</div>\n <div className=\"flex items-center gap-2\">\n {typeof menuIconPreview === \"string\" && (\n <button\n type=\"button\"\n className=\"solid-file-icon-btn\"\n aria-label=\"View uploaded menu icon\"\n title=\"View icon\"\n onClick={() => setIsMenuIconLightboxOpen(true)}\n >\n <SolidIcon name=\"si-eye\" aria-hidden />\n </button>\n )}\n <button\n type=\"button\"\n className=\"solid-file-icon-btn is-danger solid-module-upload-remove\"\n aria-label=\"Remove uploaded menu icon\"\n onClick={handleCancelUpload}\n >\n <SolidIcon name=\"si-times\" aria-hidden />\n </button>\n </div>\n </div>\n {uploadCompleted ? (\n <div className=\"flex items-center gap-2 text-sm\">\n {totalSize} of {totalSize}\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"4\" height=\"4\" viewBox=\"0 0 4 4\" fill=\"none\">\n <circle cx=\"2\" cy=\"2\" r=\"2\" fill=\"#C1C1C1\" />\n </svg>\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\n <mask id=\"mask0_2480_8635\" style={{ maskType: 'alpha' }} maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"20\" height=\"20\">\n <rect width=\"20\" height=\"20\" fill=\"#D9D9D9\" />\n </mask>\n <g mask=\"url(#mask0_2480_8635)\">\n <path d=\"M9.16 12.76L13.39 8.53L12.55 7.69L9.16 11.08L7.45 9.37L6.61 10.21L9.16 12.76ZM10 16C9.17 16 8.39 15.8424 7.66 15.5272C6.93 15.2124 6.295 14.785 5.755 14.245C5.215 13.705 4.7876 13.07 4.4728 12.34C4.1576 11.61 4 10.83 4 10C4 9.17 4.1576 8.39 4.4728 7.66C4.7876 6.93 5.215 5.215 5.755 5.755C6.295 5.215 6.93 4.7874 7.66 4.4722C8.39 4.1574 9.17 4 10 4C10.83 4 11.61 4.1574 12.34 4.4722C13.07 4.7874 13.705 5.215 14.245 5.755C14.785 6.295 15.2124 6.93 15.5272 7.66C15.8424 8.39 16 9.17 16 10C16 10.83 15.8424 11.61 15.5272 12.34C15.2124 13.07 14.785 13.705 14.245 14.245C13.705 14.785 13.07 15.2124 12.34 15.5272C11.61 15.8424 10.83 16 10 16Z\" fill=\"var(--primary-color, var(--primary))\" />\n </g>\n </svg>\n Completed\n </div>\n ) : (\n <div className=\"flex items-center gap-2 text-sm\">\n {uploadedSize} of {totalSize}\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"4\" height=\"4\" viewBox=\"0 0 4 4\" fill=\"none\">\n <circle cx=\"2\" cy=\"2\" r=\"2\" fill=\"#C1C1C1\" />\n </svg>\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path d=\"M7.375 10.5V5.40625L5.75 7.03125L4.875 6.125L8 3L11.125 6.125L10.25 7.03125L8.625 5.40625V10.5H7.375ZM4.25 13C3.90625 13 3.61198 12.8776 3.36719 12.6328C3.1224 12.388 3 12.0938 3 11.75V9.875H4.25V11.75H11.75V9.875H13V11.75C13 12.0938 12.8776 12.388 12.6328 12.6328C12.388 12.8776 12.0938 13 11.75 13H4.25Z\" fill=\"black\" />\n </svg>\n Uploading ${uploadProgress}% Completed\n </div>\n )}\n </div>\n </div>\n <SolidProgressBar value={uploadProgress} showValue={false} style={{ height: 4 }} className=\"mt-2\" />\n </div>\n )}\n </div>\n </div>\n </div>\n </SolidPanel>\n <SolidPanel header={\"Datasource Configuration\"} className=\"solid-column-panel mt-4\">\n <div className=\"mt-3 flex flex-wrap -mx-2 -mt-2\">\n <div className=\"field w-full px-2 pt-2\">\n <div className={styles.fieldWrapper}>\n <label htmlFor=\"defaultDataSource\" className={`${styles.fieldLabel} form-field-label`}>\n Default Data Source\n </label>\n <div className=\"solid-standard-autocomplete w-full\">\n <SolidAutocomplete\n disabled={!!data}\n value={defaultDataSourceField.selectedItem}\n suggestions={defaultDataSourceField.filteredItems}\n completeMethod={defaultDataSourceField.searchItems}\n onChange={defaultDataSourceField.handleChange}\n dropdown\n portal\n field=\"label\"\n className=\"w-full\"\n />\n </div>\n {isFormFieldValid(formik, \"defaultDataSource\") && (\n <p className={styles.fieldError}>{formik?.errors?.defaultDataSource?.toString()}</p>\n )}\n </div>\n </div>\n {!isCreateMode ? (\n <div className=\"field w-full px-2 pt-4\">\n <div className=\"solid-module-automap-panel\">\n <div className=\"solid-module-automap-copy\">\n <div className=\"solid-module-automap-eyebrow\">Legacy Table Mapping</div>\n <h4>Auto map datasource tables into this module</h4>\n <p>\n Open the datasource introspection workspace to inspect legacy tables, preview field mappings,\n review metadata JSON changes, and generate the supporting migration template for SolidX system fields.\n </p>\n <ul className=\"solid-module-automap-list\">\n <li>Review tables available on the selected datasource.</li>\n <li>Control which legacy columns are included in each mapping session.</li>\n <li>Preview the metadata JSON and migration output before saving.</li>\n </ul>\n </div>\n <div className=\"solid-module-automap-actions\">\n <SolidButton\n type=\"button\"\n size=\"sm\"\n onClick={() => router.push(`/admin/core/solid-core/modules/${data?.id}/datasource-introspection`)}\n >\n Auto Map Tables\n </SolidButton>\n </div>\n </div>\n </div>\n ) : null}\n </div>\n </SolidPanel>\n </div>\n </form>\n <SolidFormFooter params={params}></SolidFormFooter>\n {typeof menuIconPreview === \"string\" && (\n <SolidLightbox\n open={isMenuIconLightboxOpen}\n slides={[{ src: menuIconPreview } satisfies SolidLightboxSlide]}\n onClose={() => setIsMenuIconLightboxOpen(false)}\n />\n )}\n </div>\n );\n\n return (\n <div className=\"solid-form-wrapper\">\n <div className=\"solid-form-section\" style={{ borderRight: params.embeded !== true ? '1px solid var(--primary-light-color)' : '' }} >\n {isCreateMode && (\n <div className=\"solid-form-header flex flex-wrap items-center justify-between gap-3\">\n <div className=\"flex flex-col gap-1\" />\n <div className=\"flex items-center gap-2\">\n <SolidButton\n variant=\"outline\"\n size=\"sm\"\n type=\"button\"\n onClick={handleCancel}\n className=\"bg-[var(--primary-color-text)]\"\n >\n Cancel\n </SolidButton>\n {shouldShowGeneralSave && formik.dirty && (\n <SolidButton\n size=\"sm\"\n type=\"submit\"\n form=\"module-general-info-form\"\n onClick={() => showError()}\n >\n Save\n </SolidButton>\n )}\n </div>\n </div>\n )}\n\n {isCreateMode ? (\n generalInfoContent\n ) : (\n <div className=\"solid-module-form-workspace\">\n <SolidTabGroup\n value={activeWorkspaceTab}\n onValueChange={setActiveWorkspaceTab}\n className=\"solid-module-form-tabs\"\n listClassName=\"solid-module-form-tablist\"\n panelClassName=\"solid-module-form-tabpanel\"\n tabs={[\n {\n value: \"general\",\n label: <span className=\"solid-module-form-tab-label\">General Info</span>,\n content: generalInfoContent,\n },\n {\n value: \"explorer\",\n label: <span className=\"solid-module-form-tab-label\">Explorer</span>,\n content: <ModuleMetadataExplorer moduleName={data?.name} moduleId={data?.id} />,\n },\n ]}\n />\n </div>\n )}\n </div>\n </div>\n );\n};\n\nexport default CreateModule;\n"]}
@@ -25,7 +25,9 @@ import {
25
25
  SolidTabGroup,
26
26
  SolidTextarea,
27
27
  SolidIcon,
28
+ SolidLightbox,
28
29
  } from "../../shad-cn-ui";
30
+ import type { SolidLightboxSlide } from "../../shad-cn-ui/SolidLightbox";
29
31
  import { useSolidAutocompleteField } from "../../../hooks/useSolidAutocompleteField";
30
32
  import { SolidFormFooter } from "../form/SolidFormFooter";
31
33
  import { ModuleMetadataExplorer } from "./ModuleMetadataExplorer";
@@ -46,6 +48,7 @@ const CreateModule = ({ params, data }: any) => {
46
48
  const [fileDetails, setFileDetails] = useState<{ name: string; type: string } | null>(null);
47
49
  const [uploadedSize, setUploadedSize] = useState<string>("0 MB");
48
50
  const [totalSize, setTotalSize] = useState<string>("0 KB");
51
+ const [isMenuIconLightboxOpen, setIsMenuIconLightboxOpen] = useState(false);
49
52
 
50
53
  const formatFileSize = (size: number) => {
51
54
  return size >= 1024 * 1024
@@ -169,6 +172,9 @@ const CreateModule = ({ params, data }: any) => {
169
172
  setUploadProgress(100);
170
173
  setUploadCompleted(true);
171
174
  setUploadedSize(totalSize); // Set uploaded size to total size after completion
175
+ if (typeof reader.result === "string") {
176
+ setmenuIconPreview(reader.result);
177
+ }
172
178
  };
173
179
 
174
180
  reader.readAsDataURL(file);
@@ -180,25 +186,37 @@ const CreateModule = ({ params, data }: any) => {
180
186
  accept: {
181
187
  'image/jpeg': [],
182
188
  'image/png': [],
183
- 'image/svg+xml': ['.svg']
184
189
  },
185
190
  maxSize: 2 * 1024 * 1024, // 2MB
186
191
  });
187
192
 
188
193
  useEffect(() => {
189
- if (data) {
190
- setmenuIconPreview(`${env("API_URL")}/${data.menuIconUrl}`);
194
+ const menuIconUrl = typeof data?.menuIconUrl === "string"
195
+ ? data.menuIconUrl.trim()
196
+ : "";
191
197
 
192
- const fileName = data?.menuIconUrl?.split("/").pop(); // Extract filename from URL
193
- setFileDetails({ name: fileName || "Unknown File", type: "Uploaded File" });
198
+ if (!menuIconUrl) {
199
+ setmenuIconPreview(null);
200
+ setFileDetails(null);
201
+ setUploadProgress(0);
202
+ setUploadCompleted(false);
203
+ setUploadedSize("0 KB");
204
+ setTotalSize("0 KB");
205
+ formik.setFieldValue("menuIconUrl", null);
206
+ return;
207
+ }
194
208
 
195
- // Set the upload progress to 100% since the file is already uploaded
196
- setUploadProgress(100);
197
- setUploadCompleted(true);
209
+ setmenuIconPreview(`${env("API_URL")}/${menuIconUrl}`);
198
210
 
199
- // Ensure Formik has the existing file URL
200
- formik.setFieldValue("menuIconUrl", data.menuIconUrl);
201
- }
211
+ const fileName = menuIconUrl.split("/").pop();
212
+ setFileDetails({ name: fileName || "Uploaded File", type: "Uploaded File" });
213
+
214
+ // Set the upload progress to 100% since the file is already uploaded.
215
+ setUploadProgress(100);
216
+ setUploadCompleted(true);
217
+
218
+ // Ensure Formik has the existing file URL.
219
+ formik.setFieldValue("menuIconUrl", data.menuIconUrl);
202
220
  }, [data])
203
221
  const handleCancelUpload = (e: React.MouseEvent) => {
204
222
  e.stopPropagation();
@@ -226,7 +244,7 @@ const CreateModule = ({ params, data }: any) => {
226
244
 
227
245
  const showCustomeError = async (error: string[]) => {
228
246
  if (error.length > 0) {
229
- dispatch(showToast({ severity: "error", summary: ERROR_MESSAGES.SEND_REPORT, detail: error.join(', '), life: 3000 }));
247
+ dispatch(showToast({ severity: "error", summary: ERROR_MESSAGES.ERROR_OCCURED, detail: error.join(', '), life: 3000 }));
230
248
  }
231
249
  };
232
250
 
@@ -400,7 +418,7 @@ const CreateModule = ({ params, data }: any) => {
400
418
  <div className="field w-full px-2 pt-2">
401
419
  <div className={`${styles.fieldWrapper} relative`}>
402
420
  <label htmlFor="menuIconUrl" className={`${styles.fieldLabel} form-field-label`}>
403
- Menu Icon <small className="text-red-500 helper-text">(only svg, png and jpeg are allowed)</small>
421
+ Menu Icon <small className="text-red-500 helper-text">(only png and jpeg are allowed)</small>
404
422
  </label>
405
423
  <div {...getRootPropsmenuIcon()} className="solid-dropzone-wrapper">
406
424
  <input {...getInputPropsmenuIcon()} />
@@ -417,14 +435,27 @@ const CreateModule = ({ params, data }: any) => {
417
435
  <div className="flex w-full flex-col gap-1">
418
436
  <div className="flex items-center justify-between">
419
437
  <div className="font-bold solid-module-mobile-text-wrapper">{fileDetails.name}</div>
420
- <button
421
- type="button"
422
- className="solid-file-icon-btn is-danger solid-module-upload-remove"
423
- aria-label="Remove uploaded menu icon"
424
- onClick={handleCancelUpload}
425
- >
426
- <SolidIcon name="si-times" aria-hidden />
427
- </button>
438
+ <div className="flex items-center gap-2">
439
+ {typeof menuIconPreview === "string" && (
440
+ <button
441
+ type="button"
442
+ className="solid-file-icon-btn"
443
+ aria-label="View uploaded menu icon"
444
+ title="View icon"
445
+ onClick={() => setIsMenuIconLightboxOpen(true)}
446
+ >
447
+ <SolidIcon name="si-eye" aria-hidden />
448
+ </button>
449
+ )}
450
+ <button
451
+ type="button"
452
+ className="solid-file-icon-btn is-danger solid-module-upload-remove"
453
+ aria-label="Remove uploaded menu icon"
454
+ onClick={handleCancelUpload}
455
+ >
456
+ <SolidIcon name="si-times" aria-hidden />
457
+ </button>
458
+ </div>
428
459
  </div>
429
460
  {uploadCompleted ? (
430
461
  <div className="flex items-center gap-2 text-sm">
@@ -521,6 +552,13 @@ const CreateModule = ({ params, data }: any) => {
521
552
  </div>
522
553
  </form>
523
554
  <SolidFormFooter params={params}></SolidFormFooter>
555
+ {typeof menuIconPreview === "string" && (
556
+ <SolidLightbox
557
+ open={isMenuIconLightboxOpen}
558
+ slides={[{ src: menuIconPreview } satisfies SolidLightboxSlide]}
559
+ onClose={() => setIsMenuIconLightboxOpen(false)}
560
+ />
561
+ )}
524
562
  </div>
525
563
  );
526
564
 
@@ -249,6 +249,7 @@
249
249
  min-width: 0;
250
250
  min-height: 0;
251
251
  height: 100%;
252
+ overflow-y: scroll;
252
253
  }
253
254
 
254
255
  .solid-module-explorer-main-header {
@@ -732,21 +733,90 @@
732
733
  @media (max-width: 1200px) {
733
734
  .solid-module-explorer-workspace {
734
735
  grid-template-columns: 1fr !important;
736
+ grid-template-rows: minmax(12rem, 38%) minmax(0, 1fr);
737
+ min-height: 0;
735
738
  }
736
739
 
737
740
  .solid-module-explorer-sidebar {
738
741
  border-right: none;
739
742
  border-bottom: 1px solid color-mix(in srgb, var(--border) 84%, transparent);
743
+ overflow: hidden;
740
744
  }
741
745
 
742
746
  .solid-module-explorer-resizer {
743
747
  display: none;
744
748
  }
749
+
750
+ .solid-module-explorer-main {
751
+ overflow-y: auto;
752
+ }
745
753
  }
746
754
 
747
755
 
748
756
  @media (max-width: 640px) {
749
- .solid-module-explorer-main-actions{
750
- gap: 0;
757
+ .solid-module-explorer-panel {
758
+ overflow-y: auto;
759
+ }
760
+
761
+ .solid-module-explorer-workspace {
762
+ display: flex;
763
+ flex-direction: column;
764
+ height: auto;
765
+ }
766
+
767
+ .solid-module-explorer-sidebar {
768
+ max-height: 16rem;
769
+ flex: 0 0 auto;
770
+ }
771
+
772
+ .solid-module-explorer-main {
773
+ height: auto;
774
+ overflow: visible;
775
+ }
776
+
777
+ .solid-module-explorer-jsoneditor .jsoneditor-menu a.jsoneditor-poweredBy {
778
+ display: none;
779
+ }
780
+
781
+ .solid-module-explorer-jsoneditor div.jsoneditor-outer.has-main-menu-bar {
782
+ margin-top: 0;
783
+ padding-top: 0;
784
+ }
785
+
786
+ .solid-module-explorer-main-header {
787
+ flex-direction: column;
788
+ align-items: stretch;
789
+ gap: 0.65rem;
790
+ padding: 0.75rem;
791
+ }
792
+
793
+ .solid-module-explorer-main-title {
794
+ width: 100%;
795
+ }
796
+
797
+ .solid-module-explorer-main-heading-row {
798
+ flex-wrap: wrap;
799
+ align-items: center;
800
+ gap: 0.2rem 0.5rem;
801
+ }
802
+
803
+ .solid-module-explorer-main-title h4 {
804
+ white-space: normal;
805
+ }
806
+
807
+ .solid-module-explorer-inline-validation {
808
+ white-space: normal;
809
+ overflow-wrap: anywhere;
810
+ }
811
+
812
+ .solid-module-explorer-main-actions {
813
+ width: 100%;
814
+ justify-content: flex-start;
815
+ gap: 0.5rem;
816
+ }
817
+
818
+ .solid-module-explorer-main-meta {
819
+ flex: 1 0 100%;
820
+ min-width: 0;
751
821
  }
752
822
  }
@@ -1540,7 +1540,7 @@ export var SolidTreeView = forwardRef(function (params, ref) {
1540
1540
  var renderRowActions = function (rowData) {
1541
1541
  var _a, _b, _c, _d, _e, _f, _g;
1542
1542
  if (rowData === null || rowData === void 0 ? void 0 : rowData.deletedAt) {
1543
- return (_jsx("div", { className: "flex items-center justify-end gap-1 cursor-pointer", onClick: function (event) { return event.stopPropagation(); }, children: _jsx("button", { type: "button", className: "solid-tree-row-menu-trigger", "aria-label": "Recover row", "data-no-row-click": "true", onClick: function () {
1543
+ return (_jsx("div", { className: "flex items-center justify-end gap-1 cursor-pointer", onClick: function (event) { return event.stopPropagation(); }, children: _jsx("button", { type: "button", className: "retrieve-button solid-row-menu-trigger", "aria-label": "Recover row", "data-no-row-click": "true", onClick: function () {
1544
1544
  void handleRecoverRecord(rowData);
1545
1545
  }, children: _jsx(RotateCcw, { size: 14 }) }) }));
1546
1546
  }
@@ -1596,7 +1596,7 @@ export var SolidTreeView = forwardRef(function (params, ref) {
1596
1596
  })] })] }))] }));
1597
1597
  };
1598
1598
  // ─── Render ───────────────────────────────────────────────────────────────
1599
- return (_jsxs("div", { className: "page-parent-wrapper solid-list-page-wrapper solid-tree-page-wrapper flex h-full min-h-0 overflow-hidden", children: [_jsx("div", { className: "solid-list-content h-full flex flex-col flex-grow-1", children: _jsxs("div", { className: "solid-list-surface solid-tree-surface flex flex-col flex-1 min-h-0", children: [_jsx("div", { className: "page-header solid-list-toolbar solid-tree-toolbar flex-col lg:flex-row", children: _jsxs("div", { className: "flex w-full flex-col-reverse lg:flex-row lg:items-center items-end", children: [_jsxs("div", { className: "flex lg:gap-4 items-center w-full solid-list-toolbar-left lg:min-w-0 lg:flex-1", children: [_jsx("div", { className: "flex items-center gap-2" }), ((_r = (_q = (_p = solidTreeViewMetaData === null || solidTreeViewMetaData === void 0 ? void 0 : solidTreeViewMetaData.data) === null || _p === void 0 ? void 0 : _p.solidView) === null || _q === void 0 ? void 0 : _q.layout) === null || _r === void 0 ? void 0 : _r.attrs.enableGlobalSearch) === true && (_jsx(_Fragment, { children: _jsx("div", { className: "".concat(showGlobalSearchElement ? "flex" : "max-lg:hidden lg:flex", " w-full mt-3 lg:mt-0 lg:min-w-0"), children: _jsx(SolidGlobalSearchElement, { viewType: "tree", showSaveFilterPopup: showSaveFilterPopup, setShowSaveFilterPopup: setShowSaveFilterPopup, ref: solidGlobalSearchElementRef, viewData: solidTreeViewMetaData, handleApplyCustomFilter: handleApplyCustomFilter, filterPredicates: filterPredicates }) }) }))] }), _jsxs("div", { className: "flex items-center solid-header-buttons-wrapper solid-list-toolbar-actions lg:ml-auto", children: [headerRequestStatusLabel ? _jsx(SolidHeaderRequestStatus, { label: headerRequestStatusLabel }) : null, ((_u = (_t = (_s = solidTreeViewMetaData === null || solidTreeViewMetaData === void 0 ? void 0 : solidTreeViewMetaData.data) === null || _s === void 0 ? void 0 : _s.solidView) === null || _t === void 0 ? void 0 : _t.layout) === null || _u === void 0 ? void 0 : _u.attrs.enableGlobalSearch) === true && (_jsx("div", { className: "solid-list-search-toggle", children: _jsx(SolidButton, { type: "button", size: "sm", variant: "outline", leftIcon: _jsx(Search, { size: 14 }), className: "solid-icon-button", onClick: function () { return setShowGlobalSearchElement(!showGlobalSearchElement); } }) })), _jsx("div", { className: "solid-header-buttons-wrapper hidden items-center lg:flex", children: (_v = visibleHeaderButtons === null || visibleHeaderButtons === void 0 ? void 0 : visibleHeaderButtons.filter(function (button) { var _a; return ((_a = button === null || button === void 0 ? void 0 : button.attrs) === null || _a === void 0 ? void 0 : _a.actionInContextMenu) !== true; })) === null || _v === void 0 ? void 0 : _v.map(function (button, index) { return (_jsx(SolidListViewHeaderButton, { button: button, params: params, solidListViewMetaData: solidTreeViewMetaData, handleCustomButtonClick: handleCustomButtonClick, selectedRecords: selectedRecords, filters: filters }, index)); }) }), actionsAllowed.includes("".concat(permissionExpression(params.modelName, "create"))) &&
1599
+ return (_jsxs("div", { className: "page-parent-wrapper solid-list-page-wrapper solid-tree-page-wrapper flex h-full min-h-0 overflow-hidden", children: [_jsx("div", { className: "solid-list-content h-full flex flex-col flex-grow-1", children: _jsxs("div", { className: "solid-list-surface solid-tree-surface flex flex-col flex-1 min-h-0", children: [_jsx("div", { className: "page-header solid-list-toolbar solid-tree-toolbar flex-col lg:flex-row", children: _jsxs("div", { className: "flex w-full flex-col-reverse lg:flex-row lg:items-center items-end", children: [_jsxs("div", { className: "flex lg:gap-4 items-center w-full solid-list-toolbar-left lg:min-w-0 lg:flex-1", children: [_jsx("div", { className: "flex items-center gap-2" }), ((_r = (_q = (_p = solidTreeViewMetaData === null || solidTreeViewMetaData === void 0 ? void 0 : solidTreeViewMetaData.data) === null || _p === void 0 ? void 0 : _p.solidView) === null || _q === void 0 ? void 0 : _q.layout) === null || _r === void 0 ? void 0 : _r.attrs.enableGlobalSearch) === true && (_jsx(_Fragment, { children: _jsx("div", { className: "".concat(showGlobalSearchElement ? "flex" : "max-lg:hidden lg:flex", " w-full mt-3 lg:mt-0 lg:min-w-0"), children: _jsx(SolidGlobalSearchElement, { viewType: "tree", showSaveFilterPopup: showSaveFilterPopup, setShowSaveFilterPopup: setShowSaveFilterPopup, ref: solidGlobalSearchElementRef, viewData: solidTreeViewMetaData, handleApplyCustomFilter: handleApplyCustomFilter, filterPredicates: filterPredicates }) }) }))] }), _jsxs("div", { className: "flex items-center solid-header-buttons-wrapper solid-list-toolbar-actions lg:ml-auto", children: [headerRequestStatusLabel ? _jsx(SolidHeaderRequestStatus, { label: headerRequestStatusLabel }) : null, ((_u = (_t = (_s = solidTreeViewMetaData === null || solidTreeViewMetaData === void 0 ? void 0 : solidTreeViewMetaData.data) === null || _s === void 0 ? void 0 : _s.solidView) === null || _t === void 0 ? void 0 : _t.layout) === null || _u === void 0 ? void 0 : _u.attrs.enableGlobalSearch) === true && (_jsx("div", { className: "solid-list-search-toggle", children: _jsx(SolidButton, { type: "button", size: "sm", variant: "outline", leftIcon: _jsx(Search, { size: 14 }), className: "solid-icon-button", onClick: function () { return setShowGlobalSearchElement(!showGlobalSearchElement); } }) })), _jsx("div", { className: "solid-header-buttons-wrapper max-lg:hidden items-center lg:flex", children: (_v = visibleHeaderButtons === null || visibleHeaderButtons === void 0 ? void 0 : visibleHeaderButtons.filter(function (button) { var _a; return ((_a = button === null || button === void 0 ? void 0 : button.attrs) === null || _a === void 0 ? void 0 : _a.actionInContextMenu) !== true; })) === null || _v === void 0 ? void 0 : _v.map(function (button, index) { return (_jsx(SolidListViewHeaderButton, { button: button, params: params, solidListViewMetaData: solidTreeViewMetaData, handleCustomButtonClick: handleCustomButtonClick, selectedRecords: selectedRecords, filters: filters }, index)); }) }), actionsAllowed.includes("".concat(permissionExpression(params.modelName, "create"))) &&
1600
1600
  ((_y = (_x = (_w = solidTreeViewMetaData === null || solidTreeViewMetaData === void 0 ? void 0 : solidTreeViewMetaData.data) === null || _w === void 0 ? void 0 : _w.solidView) === null || _x === void 0 ? void 0 : _x.layout) === null || _y === void 0 ? void 0 : _y.attrs.create) !== false && (_jsx(SolidCreateButton, { createButtonUrl: createButtonUrl, createActionQueryParams: createActionQueryParams, responsiveIconOnly: true })), actionsAllowed.includes("".concat(permissionExpression(params.modelName, "delete"))) &&
1601
1601
  ((_1 = (_0 = (_z = solidTreeViewMetaData === null || solidTreeViewMetaData === void 0 ? void 0 : solidTreeViewMetaData.data) === null || _z === void 0 ? void 0 : _z.solidView) === null || _0 === void 0 ? void 0 : _0.layout) === null || _1 === void 0 ? void 0 : _1.attrs.delete) !== false &&
1602
1602
  selectedRecords.length > 0 && (_jsx(SolidButton, { type: "button", label: "Delete", size: "sm", onClick: function () { return setDeleteRecordsDialogVisible(true); }, className: "small-button", severity: "danger" })), _jsx(SolidButton, { type: "button", size: "sm", variant: "outline", leftIcon: _jsx(RefreshCw, { size: 14 }), className: "solid-icon-button", onClick: function () { void loadRootGroups(getPagination("root").offset); } }), showArchived && selectedRecoverRecords.length > 0 && (_jsx(SolidButton, { type: "button", size: "sm", variant: "secondary", className: "hidden lg:flex", onClick: function () { return setRecoverDialogVisible(true); }, leftIcon: _jsx(RotateCcw, { size: 14 }), children: "Recover" })), params.embeded === false &&