@solidxai/core-ui 0.1.16 → 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.
- package/dist/components/auth/AuthLayout.d.ts.map +1 -1
- package/dist/components/auth/AuthLayout.js +15 -14
- package/dist/components/auth/AuthLayout.js.map +1 -1
- package/dist/components/auth/AuthLayout.tsx +35 -34
- package/dist/components/common/SettingsComponent.module.css +89 -0
- package/dist/components/common/SolidAdmin.js +2 -2
- package/dist/components/common/SolidAdmin.js.map +1 -1
- package/dist/components/common/SolidAdmin.tsx +2 -2
- package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.js +1 -1
- package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.js.map +1 -1
- package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.tsx +2 -2
- package/dist/components/core/card/CardItem.d.ts.map +1 -1
- package/dist/components/core/card/CardItem.js +1 -1
- package/dist/components/core/card/CardItem.js.map +1 -1
- package/dist/components/core/card/CardItem.tsx +4 -1
- package/dist/components/core/card/SolidCardView.js +1 -1
- package/dist/components/core/card/SolidCardView.js.map +1 -1
- package/dist/components/core/card/SolidCardView.tsx +1 -1
- package/dist/components/core/card/SolidCardViewConfigure.js +1 -1
- package/dist/components/core/card/SolidCardViewConfigure.js.map +1 -1
- package/dist/components/core/card/SolidCardViewConfigure.tsx +1 -1
- package/dist/components/core/kanban/KanbanCard.d.ts.map +1 -1
- package/dist/components/core/kanban/KanbanCard.js +2 -2
- package/dist/components/core/kanban/KanbanCard.js.map +1 -1
- package/dist/components/core/kanban/KanbanCard.tsx +5 -2
- package/dist/components/core/kanban/SolidKanbanView.js +1 -1
- package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
- package/dist/components/core/kanban/SolidKanbanView.tsx +1 -1
- package/dist/components/core/kanban/SolidKanbanViewConfigure.js +1 -1
- package/dist/components/core/kanban/SolidKanbanViewConfigure.js.map +1 -1
- package/dist/components/core/kanban/SolidKanbanViewConfigure.tsx +1 -1
- package/dist/components/core/list/SolidListView.js +6 -6
- package/dist/components/core/list/SolidListView.js.map +1 -1
- package/dist/components/core/list/SolidListView.tsx +4 -4
- package/dist/components/core/list/SolidListViewConfigure.js +1 -1
- package/dist/components/core/list/SolidListViewConfigure.js.map +1 -1
- package/dist/components/core/list/SolidListViewConfigure.tsx +1 -1
- package/dist/components/core/locales/SolidLocale.d.ts.map +1 -1
- package/dist/components/core/locales/SolidLocale.js +1 -1
- package/dist/components/core/locales/SolidLocale.js.map +1 -1
- package/dist/components/core/locales/SolidLocale.tsx +1 -0
- package/dist/components/core/locales/solid-locale.css +9 -0
- package/dist/components/core/model/FieldMetaData.js +1 -1
- package/dist/components/core/model/FieldMetaData.js.map +1 -1
- package/dist/components/core/model/FieldMetaData.tsx +1 -1
- package/dist/components/core/model/FieldMetaDataForm.css +60 -0
- package/dist/components/core/model/FieldMetaDataForm.d.ts.map +1 -1
- package/dist/components/core/model/FieldMetaDataForm.js +47 -36
- package/dist/components/core/model/FieldMetaDataForm.js.map +1 -1
- package/dist/components/core/model/FieldMetaDataForm.tsx +59 -40
- package/dist/components/core/model/ModelMetaData.js +1 -1
- package/dist/components/core/model/ModelMetaData.js.map +1 -1
- package/dist/components/core/model/ModelMetaData.tsx +1 -1
- package/dist/components/core/module/CreateModule.d.ts.map +1 -1
- package/dist/components/core/module/CreateModule.js +34 -21
- package/dist/components/core/module/CreateModule.js.map +1 -1
- package/dist/components/core/module/CreateModule.tsx +59 -21
- package/dist/components/core/module/ModuleMetadataExplorer.css +72 -2
- package/dist/components/core/tree/SolidTreeView.js +2 -2
- package/dist/components/core/tree/SolidTreeView.js.map +1 -1
- package/dist/components/core/tree/SolidTreeView.tsx +2 -2
- package/dist/components/core/users/CreateUserRole.js +1 -1
- package/dist/components/core/users/CreateUserRole.js.map +1 -1
- package/dist/components/core/users/CreateUserRole.tsx +1 -1
- package/dist/components/layout/AdminTopHeader.d.ts.map +1 -1
- package/dist/components/layout/AdminTopHeader.js +2 -1
- package/dist/components/layout/AdminTopHeader.js.map +1 -1
- package/dist/components/layout/AdminTopHeader.tsx +2 -1
- package/dist/components/layout/AppSidebar.d.ts.map +1 -1
- package/dist/components/layout/AppSidebar.js +16 -1
- package/dist/components/layout/AppSidebar.js.map +1 -1
- package/dist/components/layout/AppSidebar.tsx +37 -9
- package/dist/resources/images/solidx-logo/solidx-logo-dark.png +0 -0
- package/dist/resources/images/solidx-logo/solidx-logo-light.png +0 -0
- package/dist/resources/solid-custom.css +67 -40
- package/dist/resources/solid-tailwind-generated.css +1 -1
- package/dist/resources/themes/solid-dark-enterprise/theme.css +2 -2
- package/dist/resources/themes/solid-dark-modern/theme.css +2 -2
- package/dist/resources/themes/solid-light-enterprise/theme.css +2 -2
- package/dist/resources/themes/solid-light-modern/theme.css +2 -2
- package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.css +289 -0
- 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
|
-
|
|
190
|
-
|
|
194
|
+
const menuIconUrl = typeof data?.menuIconUrl === "string"
|
|
195
|
+
? data.menuIconUrl.trim()
|
|
196
|
+
: "";
|
|
191
197
|
|
|
192
|
-
|
|
193
|
-
|
|
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
|
-
|
|
196
|
-
setUploadProgress(100);
|
|
197
|
-
setUploadCompleted(true);
|
|
209
|
+
setmenuIconPreview(`${env("API_URL")}/${menuIconUrl}`);
|
|
198
210
|
|
|
199
|
-
|
|
200
|
-
|
|
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.
|
|
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
|
|
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
|
-
<
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
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-
|
|
750
|
-
|
|
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-
|
|
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 &&
|