@argusoft/medplat-core 1.0.14 → 1.0.15
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/AccessRights-Bvd5Bm5K.js +1259 -0
- package/dist/AccessRights-Bvd5Bm5K.js.map +1 -0
- package/dist/{AddEditQueryBuilder-7JRplV5J.js → AddEditQueryBuilder-Bcjl5mXE.js} +2 -2
- package/dist/{AddEditQueryBuilder-7JRplV5J.js.map → AddEditQueryBuilder-Bcjl5mXE.js.map} +1 -1
- package/dist/{AddFeatures-CkTu7sOI.js → AddFeatures-CE5rBxEG.js} +2 -2
- package/dist/{AddFeatures-CkTu7sOI.js.map → AddFeatures-CE5rBxEG.js.map} +1 -1
- package/dist/{AddLabelModal-DE3ploGD.js → AddLabelModal-CB8E8cYG.js} +2 -2
- package/dist/{AddLabelModal-DE3ploGD.js.map → AddLabelModal-CB8E8cYG.js.map} +1 -1
- package/dist/{AddRoleDrawer-ZK1eejxI.js → AddRoleDrawer-SvntLdRu.js} +44 -43
- package/dist/AddRoleDrawer-SvntLdRu.js.map +1 -0
- package/dist/{AppModal-BgZyfrd-.js → AppModal-BKgIwe1h.js} +2 -2
- package/dist/{AppModal-BgZyfrd-.js.map → AppModal-BKgIwe1h.js.map} +1 -1
- package/dist/{ChangePasswordModalCore-DIe4rzW-.js → ChangePasswordModalCore-CTGy8Ttf.js} +2 -2
- package/dist/{ChangePasswordModalCore-DIe4rzW-.js.map → ChangePasswordModalCore-CTGy8Ttf.js.map} +1 -1
- package/dist/{ConditionConfig-GDCXIg3C.js → ConditionConfig-DB0FqwgG.js} +2 -2
- package/dist/{ConditionConfig-GDCXIg3C.js.map → ConditionConfig-DB0FqwgG.js.map} +1 -1
- package/dist/{EntityManagement-D-x6Qzal.js → EntityManagement-DQKXnEzz.js} +2 -2
- package/dist/{EntityManagement-D-x6Qzal.js.map → EntityManagement-DQKXnEzz.js.map} +1 -1
- package/dist/EventConfigurations-DZvSJ5EZ.js +395 -0
- package/dist/EventConfigurations-DZvSJ5EZ.js.map +1 -0
- package/dist/{EventsExceptionModal-BF6E1Np7.js → EventsExceptionModal-DsvngLi8.js} +2 -2
- package/dist/{EventsExceptionModal-BF6E1Np7.js.map → EventsExceptionModal-DsvngLi8.js.map} +1 -1
- package/dist/EventsSkeleton-DCXwwPbb.js +76 -0
- package/dist/EventsSkeleton-DCXwwPbb.js.map +1 -0
- package/dist/FeatureMenu-CLX8VNZ-.js +265 -0
- package/dist/FeatureMenu-CLX8VNZ-.js.map +1 -0
- package/dist/Features-Cpf1PDx0.js +13 -0
- package/dist/Features-Cpf1PDx0.js.map +1 -0
- package/dist/FileSaver.min-CN9EpL2h.js.map +1 -1
- package/dist/ImmunizationConfigurationsList-K2ddBpPJ.js +345 -0
- package/dist/ImmunizationConfigurationsList-K2ddBpPJ.js.map +1 -0
- package/dist/ImmunizationSkeleton-D2tdv5k-.js.map +1 -1
- package/dist/{LanguagesModal-rk6IGQwY.js → LanguagesModal-CX3oS8rk.js} +2 -2
- package/dist/{LanguagesModal-rk6IGQwY.js.map → LanguagesModal-CX3oS8rk.js.map} +1 -1
- package/dist/{ManageDynamicFeature-C2I7Ho7i.js → ManageDynamicFeature-CsIett5x.js} +2 -2
- package/dist/{ManageDynamicFeature-C2I7Ho7i.js.map → ManageDynamicFeature-CsIett5x.js.map} +1 -1
- package/dist/{ManageEventConfiguration-BJxS2Su0.js → ManageEventConfiguration-0YBDaxOI.js} +60 -60
- package/dist/ManageEventConfiguration-0YBDaxOI.js.map +1 -0
- package/dist/{ManageNotification-DMN2szWy.js → ManageNotification-EQgnOO0U.js} +632 -632
- package/dist/ManageNotification-EQgnOO0U.js.map +1 -0
- package/dist/{ManageRole-CuXmWQyp.js → ManageRole-Cbs9dUhc.js} +244 -191
- package/dist/ManageRole-Cbs9dUhc.js.map +1 -0
- package/dist/ManageTranslation-D9IScGhk.js +625 -0
- package/dist/ManageTranslation-D9IScGhk.js.map +1 -0
- package/dist/{ManageUser-Dr3ptCYp.js → ManageUser-C9uMe9av.js} +744 -735
- package/dist/ManageUser-C9uMe9av.js.map +1 -0
- package/dist/{MobileTypeEventConfigModal-ChhO_A4f.js → MobileTypeEventConfigModal-Ltm529jG.js} +2 -2
- package/dist/{MobileTypeEventConfigModal-ChhO_A4f.js.map → MobileTypeEventConfigModal-Ltm529jG.js.map} +1 -1
- package/dist/NotificationList-BZwvgsf6.js +402 -0
- package/dist/NotificationList-BZwvgsf6.js.map +1 -0
- package/dist/{OtherTypeEventConfigModal-ZnCGWm9v.js → OtherTypeEventConfigModal-dXt2qDg_.js} +2 -2
- package/dist/OtherTypeEventConfigModal-dXt2qDg_.js.map +1 -0
- package/dist/{QueryBuilder-BPfavHH9.js → QueryBuilder-DXexUIe8.js} +154 -148
- package/dist/QueryBuilder-DXexUIe8.js.map +1 -0
- package/dist/{QueryManagement-DXA73N2j.js → QueryManagement-BpIRH8hI.js} +228 -214
- package/dist/QueryManagement-BpIRH8hI.js.map +1 -0
- package/dist/RoleManagement-BThAL5LO.js +422 -0
- package/dist/RoleManagement-BThAL5LO.js.map +1 -0
- package/dist/SubMenu-BGznOP2a.js +191 -0
- package/dist/SubMenu-BGznOP2a.js.map +1 -0
- package/dist/TableDetails-DztbjsIA.js +2069 -0
- package/dist/TableDetails-DztbjsIA.js.map +1 -0
- package/dist/TableList-DYwotUDO.js +1425 -0
- package/dist/TableList-DYwotUDO.js.map +1 -0
- package/dist/{TypeConfiguration-C-lk8Szs.js → TypeConfiguration-DYbBG_hZ.js} +2 -2
- package/dist/{TypeConfiguration-C-lk8Szs.js.map → TypeConfiguration-DYbBG_hZ.js.map} +1 -1
- package/dist/{UserList-S5Q76wO7.js → UserList-BH6OpZvq.js} +410 -400
- package/dist/UserList-BH6OpZvq.js.map +1 -0
- package/dist/UserListSkeleton-cglK2SaU.js.map +1 -1
- package/dist/WidgetList-D-fIf3N2.js +200 -0
- package/dist/WidgetList-D-fIf3N2.js.map +1 -0
- package/dist/i18next-CTOWN_jH.js.map +1 -1
- package/dist/index.css +1 -1
- package/dist/index.js +13 -13
- package/dist/xlsx.min-D1LFqt_b.js.map +1 -1
- package/package.json +1 -1
- package/dist/AccessRights-BMRM1u9S.js +0 -1228
- package/dist/AccessRights-BMRM1u9S.js.map +0 -1
- package/dist/AddRoleDrawer-ZK1eejxI.js.map +0 -1
- package/dist/EventConfigurations-jGCJ4LqP.js +0 -384
- package/dist/EventConfigurations-jGCJ4LqP.js.map +0 -1
- package/dist/EventsSkeleton-BN7_0IGs.js +0 -74
- package/dist/EventsSkeleton-BN7_0IGs.js.map +0 -1
- package/dist/FeatureMenu-Ds6lFg4w.js +0 -249
- package/dist/FeatureMenu-Ds6lFg4w.js.map +0 -1
- package/dist/Features-Cshdl06N.js +0 -12
- package/dist/Features-Cshdl06N.js.map +0 -1
- package/dist/ImmunizationConfigurationsList-CQnxWa09.js +0 -335
- package/dist/ImmunizationConfigurationsList-CQnxWa09.js.map +0 -1
- package/dist/ManageEventConfiguration-BJxS2Su0.js.map +0 -1
- package/dist/ManageNotification-DMN2szWy.js.map +0 -1
- package/dist/ManageRole-CuXmWQyp.js.map +0 -1
- package/dist/ManageTranslation-BTxvSYKb.js +0 -616
- package/dist/ManageTranslation-BTxvSYKb.js.map +0 -1
- package/dist/ManageUser-Dr3ptCYp.js.map +0 -1
- package/dist/NotificationList-BqibwMaM.js +0 -400
- package/dist/NotificationList-BqibwMaM.js.map +0 -1
- package/dist/OtherTypeEventConfigModal-ZnCGWm9v.js.map +0 -1
- package/dist/QueryBuilder-BPfavHH9.js.map +0 -1
- package/dist/QueryManagement-DXA73N2j.js.map +0 -1
- package/dist/RoleManagement-C0feJCuq.js +0 -410
- package/dist/RoleManagement-C0feJCuq.js.map +0 -1
- package/dist/SubMenu-DAfZC9Xi.js +0 -188
- package/dist/SubMenu-DAfZC9Xi.js.map +0 -1
- package/dist/TableDetails-DzREeJkm.js +0 -1508
- package/dist/TableDetails-DzREeJkm.js.map +0 -1
- package/dist/TableList-B9hr05Hs.js +0 -428
- package/dist/TableList-B9hr05Hs.js.map +0 -1
- package/dist/UserList-S5Q76wO7.js.map +0 -1
- package/dist/WidgetList-BSApErov.js +0 -188
- package/dist/WidgetList-BSApErov.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TableDetails-DzREeJkm.js","sources":["../src/views/Mobile/EntityManagement/TableDetails.jsx"],"sourcesContent":["import { execute } from '@/common/services/QueryBuilder';\nimport { showToast } from '@/common/toaster/toaster';\nimport { useDebounceFn } from '@/hooks/useDebounceFn';\nimport CustomConfirmationModal from '@/views/custom-components/CustomConfirmationModal';\nimport CustomTextField from '@/views/custom-components/CustomTextField';\nimport FontAwesomeIcons from '@/common/fontAwesomeIcons/FontAwesomeIcons';\nimport Editor from '@monaco-editor/react';\nimport {\n Autocomplete,\n Button,\n FormControl,\n FormControlLabel,\n IconButton,\n InputAdornment,\n Modal,\n Paper,\n Popover,\n Radio,\n RadioGroup,\n Switch,\n Table,\n TableBody,\n TableCell,\n TableContainer,\n TableHead,\n TableRow,\n TextField,\n Tooltip,\n Typography,\n Checkbox,\n} from '@mui/material';\nimport Grid from '@mui/material/Grid2';\nimport { Box } from '@mui/system';\nimport PropTypes from 'prop-types';\nimport React, { useEffect, useState } from 'react';\nimport { Controller, useForm, useWatch } from 'react-hook-form';\nimport { useSelector } from 'react-redux';\nexport default function TableDetails({\n tableInfo,\n table,\n isEditMode,\n updateEditMode,\n tableCompleteInfo,\n reloadComponents,\n isCreateTableMode,\n isSyncTableMode,\n updateCreateTableMode,\n openDeleteModal,\n setOpenDeleteModal,\n}) {\n const DOWNLOAD_TYPE_OPTIONS = ['Document Master', 'Form Configurator', 'Form Media Record', 'LMS'];\n const labelToCode = (label) => label?.toUpperCase().replace(/ /g, '_') || '';\n const codeToLabel = (code) => DOWNLOAD_TYPE_OPTIONS.find((o) => labelToCode(o) === code) || '';\n\n const getNewDownloadType = (mc) => {\n if (mc?.downloadType) return codeToLabel(mc.downloadType) || mc.downloadType;\n if (mc?.data?.downloadType) return codeToLabel(mc.data.downloadType) || mc.data.downloadType;\n return '';\n };\n const getNewApiEndpoint = (mc) => {\n const flat = mc?.downloadUrl;\n if (typeof flat === 'object' && flat !== null) return flat.apiEndpoint || '';\n const nested = mc?.data?.downloadUrl;\n if (typeof nested === 'object' && nested !== null) return nested.apiEndpoint || '';\n return '';\n };\n const getNewRequestParams = (mc) => {\n const flat = mc?.downloadUrl;\n if (typeof flat === 'object' && flat !== null) return flat.requestParameters || [];\n const nested = mc?.data?.downloadUrl;\n if (typeof nested === 'object' && nested !== null) return nested.requestParameters || [];\n return [];\n };\n\n const [allColumns, setAllColumns] = useState([]);\n const [modalOpen, setModalOpen] = useState(false);\n const [migrationScript, setMigrationScript] = useState('');\n const [formData, setFormData] = useState({});\n const [searchColumn, setSearchColumn] = useState('');\n const [syncedFilteredCols, setSyncedFilteredCols] = useState([]);\n const [filteredCols, setFilteredCols] = useState([]);\n const [colTabValue, setColTabValue] = useState(0);\n const [queryTabValue, setQueryTabValue] = useState(0);\n const [anchorEl, setAnchorEl] = useState(null);\n const [editColumnIndex, setEditColumnIndex] = useState(null);\n const [migrationVersions, setMigrationVersions] = useState({});\n const [requestParams, setRequestParams] = useState(\n !isCreateTableMode ? getNewRequestParams(tableInfo?.mediaConfiguration) : []\n );\n\n const popOverOpen = Boolean(anchorEl);\n const id = popOverOpen ? 'simple-popover' : undefined;\n\n const columnTypeOptions = ['TEXT', 'INTEGER'];\n\n const loggedInUser = useSelector((state) => {\n return state.Authenticate.user.id;\n });\n const defaultValues = {\n selectedColumns: !isCreateTableMode ? [...tableInfo.columnInfo] : [],\n modifiedOnQuery: !isCreateTableMode ? tableInfo.modifiedOnQuery : '',\n dataFetchQuery: !isCreateTableMode ? tableInfo.selectQuery : '',\n tableName: '',\n createTableQuery: '',\n syncByDefault: !isCreateTableMode ? tableInfo?.syncByDefault?.toString() : null,\n primaryKey: !isCreateTableMode ? (tableInfo.primaryKey ? tableInfo.primaryKey : null) : null,\n userData: !isCreateTableMode ? tableInfo?.userData?.toString() || null : null,\n hasMedia: !isCreateTableMode ? tableInfo?.hasMedia?.toString() || null : null,\n downloadType: !isCreateTableMode ? getNewDownloadType(tableInfo.mediaConfiguration) : '',\n apiEndpoint: !isCreateTableMode ? getNewApiEndpoint(tableInfo.mediaConfiguration) : '',\n requestParameters: !isCreateTableMode ? getNewRequestParams(tableInfo.mediaConfiguration) : [],\n directoryPath: !isCreateTableMode\n ? tableInfo.mediaConfiguration?.directoryPath?.split('/')[1] ||\n tableInfo.mediaConfiguration?.data?.directoryPath?.split('/')[1] ||\n ''\n : '',\n };\n const formCtrl = useForm({\n defaultValues: {\n ...defaultValues,\n },\n mode: 'onChange',\n });\n const isFormValid = !formCtrl.formState.isValid;\n const hasMediaVal = formCtrl.watch('hasMedia');\n const newColumnNameVal = formCtrl.watch('newColumnName');\n const newColumnTypeVal = formCtrl.watch('newColumnType');\n\n formCtrl.register('requestParameters', {\n validate: (value) => {\n if (hasMediaVal !== 'true') return true;\n if (!value || value.length === 0) return 'At least one request parameter is required.';\n const hasIncomplete = value.some((p) => !p.key?.trim() || !p.value?.trim());\n if (hasIncomplete) return 'Each parameter must have both a key and a value filled.';\n return true;\n },\n });\n\n const onSubmit = async (data) => {\n const script = isCreateTableMode\n ? formCtrl.getValues('createTableQuery')\n : await createScript(\n [...tableInfo.columnInfo],\n data.selectedColumns,\n tableInfo.primaryKey,\n data.primaryKey?.toString()\n );\n if (script) {\n setFormData(() => data);\n setMigrationScript(() => script);\n getMigrationVersion();\n setModalOpen(true);\n } else {\n saveForm(data, false);\n }\n };\n\n const saveForm = async (data, migrationRequired) => {\n const columns = {};\n let response;\n let entity = data || formData;\n if (!migrationRequired) setMigrationScript('');\n if (Object.keys(entity).length > 0) {\n entity.selectedColumns.forEach((col) => {\n columns[col.name] = col.type;\n });\n entity.columns = JSON.stringify(columns);\n entity.primaryKey = entity.primaryKey?.toString();\n let mediaConfig = {\n downloadType: labelToCode(entity.downloadType),\n downloadUrl: {\n apiEndpoint: entity.apiEndpoint || '',\n requestParameters: requestParams || [],\n },\n directoryPath: '#directoryPath#/' + entity.directoryPath + '/',\n };\n mediaConfig = JSON.stringify(mediaConfig);\n response = (\n await execute({\n code: 'update_mobile_entity',\n parameters: {\n tableName: isCreateTableMode ? formCtrl.getValues('tableName') : table,\n syncByDefault: entity.syncByDefault === 'true',\n columnInfo: entity.columns,\n primaryKey: entity.primaryKey,\n modifiedOnQuery: entity.modifiedOnQuery,\n selectQuery: entity.dataFetchQuery,\n userData: entity.userData === 'true',\n hasMedia: entity.hasMedia === 'true',\n mediaConfiguration: entity.hasMedia === 'true' ? mediaConfig : null,\n modifiedBy: loggedInUser,\n migrationScript: migrationScript,\n isUpdate: true,\n generateMigration: migrationScript !== '',\n },\n }).catch((error) => {\n showToast({ message: `Submission failure ${error}`, type: 'error' });\n })\n ).data;\n } else {\n response = (\n await execute({\n code: 'update_mobile_entity',\n parameters: {\n tableName: isCreateTableMode ? formCtrl.getValues('tableName') : table,\n syncByDefault: false,\n columnInfo: '',\n primaryKey: '',\n modifiedOnQuery: '',\n selectQuery: '',\n userData: null,\n hasMedia: null,\n mediaConfiguration: '',\n modifiedBy: loggedInUser,\n migrationScript: migrationScript,\n isUpdate: false,\n generateMigration: true,\n },\n }).catch((error) => {\n showToast({ message: `Submission failure ${error}`, type: 'error' });\n })\n ).data;\n }\n if (response?.result) {\n updateEditMode(false);\n updateCreateTableMode(false);\n reloadComponents((prev) => !prev);\n showToast({ message: 'Table configuration saved successfully!', type: 'success' });\n }\n setModalOpen(false);\n };\n\n const handleModalClose = () => {\n setModalOpen(false);\n };\n\n const createScript = async (previousColumns, newColumns, oldPrimaryKey, newPrimaryKey) => {\n let tableScript = '';\n\n if (previousColumns.length > 0) {\n let previousColumnsNames = previousColumns.map((col) => col.name);\n let newColumnsNames = newColumns.map((col) => col.name);\n\n let droppedColumns = previousColumns.filter((col) => !newColumnsNames.includes(col.name));\n let addedColumns = newColumns.filter((col) => !previousColumnsNames.includes(col.name));\n\n let dropColumnSql = droppedColumns.map((col) => `ALTER TABLE ${table} DROP COLUMN ${col.name};`).join('\\n');\n let addColumnSql = addedColumns\n .map((col) => `ALTER TABLE ${table} ADD COLUMN ${col.name} ${col.type};`)\n .join('\\n');\n\n tableScript += droppedColumns.length > 0 ? `${dropColumnSql}\\n` : '';\n tableScript += addedColumns.length > 0 ? `${addColumnSql}` : '';\n\n return tableScript;\n } else {\n const tableName = isCreateTableMode ? formCtrl.getValues('tableName') : table;\n tableScript = `CREATE TABLE ${tableName} (\\n`;\n\n tableScript += newColumns.map((col) => `${col.name} ${col.type}`).join(',\\n');\n\n if (newPrimaryKey) {\n tableScript += `,\\nCONSTRAINT ${tableName}_pkey PRIMARY KEY (${newPrimaryKey})`;\n }\n\n tableScript += `);`;\n\n return tableScript;\n }\n };\n\n const getMigrationVersion = async () => {\n const res = (\n await execute({\n code: 'MFA_MIGRATION_MASTER_GET_LATEST_VERSIONS',\n }).catch((error) => {\n showToast({ message: `Failed to fetch migration versions ${error}`, type: 'error' });\n })\n )?.data;\n setMigrationVersions(res?.result[0]);\n };\n\n useEffect(() => {\n setSearchColumn('');\n setQueryTabValue(0);\n setColTabValue(0);\n\n if (isCreateTableMode) {\n setAllColumns([]);\n setSyncedFilteredCols([]);\n setFilteredCols([]);\n setRequestParams([]);\n formCtrl.reset({\n ...defaultValues,\n });\n // Trigger validation after reset so isValid updates\n setTimeout(() => formCtrl.trigger(), 0);\n }\n if (!!table && !!tableInfo && !isCreateTableMode) {\n tableCompleteInfo !== undefined\n ? setAllColumns(() => tableCompleteInfo.columnInfo)\n : setAllColumns(() => tableInfo.columnInfo);\n let allColumnsNames =\n tableCompleteInfo !== undefined\n ? tableCompleteInfo.columnInfo.map((col) => col.name)\n : tableInfo.columnInfo.map((col) => col.name);\n\n let tableCompleteInfoObj = {};\n\n tableCompleteInfo !== undefined\n ? tableCompleteInfo.columnInfo.forEach((item) => {\n tableCompleteInfoObj[item.name] = item.type;\n })\n : tableInfo.columnInfo.forEach((item) => {\n tableCompleteInfoObj[item.name] = item.type;\n });\n\n let tableInfoObj = {};\n\n tableInfo.columnInfo.forEach((item) => {\n tableInfoObj[item.name] = item.type;\n });\n\n tableInfo.columnInfo.map((col) => {\n if (!allColumnsNames.includes(col.name)) {\n col['onlyMobileDb'] = true;\n }\n if (tableInfoObj[col.name] !== tableCompleteInfoObj[col.name]) {\n col['isTypeChanged'] = true;\n }\n if (col.name === tableInfo.primaryKey) {\n col['isPrimaryKey'] = true;\n }\n });\n formCtrl.reset({\n ...defaultValues,\n });\n // Trigger validation after reset so isValid reflects current state\n setTimeout(() => formCtrl.trigger(), 0);\n setRequestParams(getNewRequestParams(tableInfo?.mediaConfiguration));\n setSyncedFilteredCols(() =>\n tableInfo.columnInfo.sort((a, b) => {\n if (a.name === tableInfo.primaryKey) {\n a.isPrimaryKey = true;\n return -1;\n }\n if (b.name === tableInfo.primaryKey) {\n b.isPrimaryKey = true;\n return 1;\n }\n return a.name.localeCompare(b.name);\n })\n );\n\n tableCompleteInfo !== undefined\n ? setFilteredCols(() => {\n const syncedNames = new Set(tableInfo.columnInfo.map((col) => col.name));\n\n const updatedCols = tableCompleteInfo.columnInfo.map((col) => ({\n ...col,\n isSynced: syncedNames.has(col.name),\n }));\n\n return updatedCols.sort((a, b) => {\n if (a.name === tableInfo.primaryKey) return -1;\n if (b.name === tableInfo.primaryKey) return 1;\n return a.name.localeCompare(b.name);\n });\n })\n : setFilteredCols([]);\n }\n }, [tableInfo, tableCompleteInfo, table, isCreateTableMode]);\n useEffect(() => {\n const searchValue = searchColumn.toLowerCase();\n\n if (colTabValue === 0) {\n const allSynced = formCtrl.getValues('selectedColumns');\n const filtered = searchValue\n ? allSynced.filter((col) => col.name.toLowerCase().includes(searchValue))\n : allSynced;\n\n setSyncedFilteredCols(filtered);\n } else {\n const syncedNames = new Set(formCtrl.getValues('selectedColumns').map((col) => col.name));\n const filtered = searchValue\n ? allColumns\n .filter((col) => col.name.toLowerCase().includes(searchValue))\n .map((col) => ({\n ...col,\n isSynced: syncedNames.has(col.name),\n }))\n : allColumns.map((col) => ({\n ...col,\n isSynced: syncedNames.has(col.name),\n }));\n\n setFilteredCols(filtered);\n }\n }, [searchColumn, colTabValue]);\n const watchedTableName = useWatch({\n control: formCtrl.control,\n name: 'tableName',\n });\n\n useEffect(() => {\n if (isCreateTableMode && formCtrl.getValues('selectedColumns').length > 0 && watchedTableName) {\n updateCreateTableScript(formCtrl.getValues('selectedColumns'));\n }\n }, [watchedTableName]);\n\n const handleEditorChange = (value) => {\n setMigrationScript(value);\n };\n const onCancel = () => {\n if (isEditMode) {\n updateEditMode(!isEditMode);\n }\n if (isCreateTableMode) {\n updateCreateTableMode(!isCreateTableMode);\n }\n formCtrl.reset({\n ...defaultValues,\n newColumnName: null,\n newColumnType: null,\n });\n setRequestParams(defaultValues.requestParameters || []);\n setSyncedFilteredCols(defaultValues.selectedColumns || []);\n\n const syncedNames = new Set((defaultValues.selectedColumns || []).map((col) => col.name));\n setFilteredCols(\n (defaultValues.allColumns || []).map((col) => ({\n ...col,\n isSynced: syncedNames.has(col.name),\n }))\n );\n };\n\n const handleDelete = async () => {\n setOpenDeleteModal(() => false);\n const response = await execute({\n code: 'DELETE_MOBILE_ENTITY',\n parameters: {\n tableName: table,\n },\n }).catch((error) => {\n showToast({ message: `Metadata deletion failure ${error}`, type: 'error' });\n });\n\n if (response?.data?.result?.[0]?.table_name) {\n showToast({ message: `${table} deleted successfully!`, type: 'success' });\n }\n let dropTableSql = `DROP TABLE if exists ${table};`;\n setMigrationScript(() => dropTableSql);\n getMigrationVersion();\n setModalOpen(true);\n };\n\n const checkAvailability = async (name) => {\n const isValidFormat = /^[a-zA-Z_][a-zA-Z0-9_]*$/.test(name);\n if (name.trim().length === 0) {\n formCtrl.setError('newColumnName', {\n type: 'manual',\n message: '*Column name is required. ',\n });\n return;\n }\n if (!isValidFormat) {\n formCtrl.setError('newColumnName', {\n type: 'manual',\n message: 'Must start with a letter/underscore and contain only letters, numbers, and underscores.',\n });\n return;\n }\n if (filteredCols.some((col) => col.name === name) || syncedFilteredCols.some((col) => col.name === name)) {\n formCtrl.setError('newColumnName', {\n type: 'manual',\n message: 'Column name already exists in the table.',\n });\n } else {\n formCtrl.clearErrors('newColumnName');\n }\n };\n\n const debouncedCheckAvailability = useDebounceFn(checkAvailability, 500);\n\n const hasPrimaryKey = syncedFilteredCols.some((col) => col.isPrimaryKey === true);\n\n const updateCreateTableScript = async (columns) => {\n queryTabValue !== 2 && isCreateTableMode && setQueryTabValue(2);\n if (columns.length === 0) {\n formCtrl.setValue('createTableQuery', '', { shouldDirty: true });\n return;\n }\n\n const newPrimaryKey = columns.find((c) => c.isPrimaryKey)?.name || '';\n const script = await createScript([], columns, '', newPrimaryKey);\n formCtrl.setValue('createTableQuery', script, { shouldDirty: true });\n };\n\n return (\n <Grid\n size={9}\n sx={{\n maxHeight: '88vh',\n overflowY: 'auto',\n overflowX: 'hidden',\n }}\n >\n <Paper\n variant=\"outlined\"\n sx={{\n p: 2.5,\n borderRadius: 2.5,\n backgroundColor: 'background.paper',\n }}\n >\n <form onSubmit={formCtrl.handleSubmit(onSubmit)} noValidate className=\"w-full\">\n <Box\n sx={{\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n mb: 2.5,\n pb: 2,\n borderBottom: '1px solid',\n borderColor: 'divider',\n }}\n >\n <Box sx={{ flex: 1 }}>\n {!isCreateTableMode ? (\n <>\n <Typography variant=\"h6\" sx={{ fontWeight: 700, color: 'text.primary' }}>\n {table ? table : 'No Table Selected'}\n </Typography>\n <Typography variant=\"caption\" color=\"text.secondary\">\n {table ? 'View and manage table configuration' : 'Select a table from the list'}\n </Typography>\n </>\n ) : (\n <Box sx={{ maxWidth: 350 }}>\n <Typography variant=\"subtitle2\" sx={{ fontWeight: 600, mb: 0.5 }}>\n New Table\n </Typography>\n <CustomTextField\n control={formCtrl.control}\n id=\"tableName\"\n name=\"tableName\"\n errors={formCtrl.formState.errors}\n label=\"Table Name\"\n size=\"small\"\n rules={{\n required: {\n value: true,\n message: 'Please Enter the name',\n },\n pattern: {\n value: /^[a-z0-9_]+$/,\n message: 'Only lowercase letters, numbers, and underscores are allowed',\n },\n validate: {},\n }}\n />\n </Box>\n )}\n <CustomConfirmationModal\n description={'Do you want to drop this table?'}\n title={'CONFIRMATION'}\n open={openDeleteModal}\n handleClick={handleDelete}\n handleClose={() => setOpenDeleteModal((cur) => !cur)}\n />\n </Box>\n <Box sx={{ display: 'flex', gap: 1 }}>\n {(isEditMode || isCreateTableMode) && (\n <Tooltip title={!hasPrimaryKey ? 'A primary key is required to proceed.' : ''} arrow placement=\"bottom\">\n <span>\n <Button\n type=\"submit\"\n variant=\"contained\"\n size=\"small\"\n sx={{\n borderRadius: 2,\n fontWeight: 600,\n textTransform: 'none',\n boxShadow: 'none',\n px: 2.5,\n }}\n disabled={isFormValid || !hasPrimaryKey}\n startIcon={<FontAwesomeIcons iconName=\"faCheck\" />}\n >\n Submit\n </Button>\n </span>\n </Tooltip>\n )}\n {(isEditMode || isCreateTableMode) && (\n <Button\n type=\"button\"\n variant=\"outlined\"\n onClick={() => onCancel()}\n size=\"small\"\n sx={{\n borderRadius: 2,\n fontWeight: 600,\n textTransform: 'none',\n borderColor: 'divider',\n color: 'text.secondary',\n px: 2.5,\n '&:hover': { backgroundColor: 'action.hover', borderColor: 'text.disabled' },\n }}\n >\n Cancel\n </Button>\n )}\n </Box>\n </Box>\n <Grid container spacing={2}>\n <Grid size={7}>\n {/* Pill-style query tabs matching ManageAllForms */}\n <Box\n sx={{\n display: 'inline-flex',\n gap: 0.75,\n p: 0.75,\n backgroundColor: 'action.hover',\n borderRadius: 2.5,\n border: '1px solid',\n borderColor: 'divider',\n mb: 2,\n }}\n >\n {[\n { value: 0, label: 'Modified On Query', icon: 'faClock' },\n { value: 1, label: 'Data Fetch Query', icon: 'faDatabase' },\n ...(isCreateTableMode ? [{ value: 2, label: 'Create Table Query', icon: 'faCode' }] : []),\n ].map((tab) => {\n const isActive = queryTabValue === tab.value;\n return (\n <Button\n key={tab.value}\n onClick={() => setQueryTabValue(tab.value)}\n size=\"small\"\n disableElevation\n sx={{\n px: 2,\n py: 0.6,\n borderRadius: 2,\n textTransform: 'none',\n fontSize: '0.8rem',\n fontWeight: isActive ? 700 : 500,\n color: isActive ? 'primary.dark' : 'text.secondary',\n backgroundColor: isActive ? 'background.paper' : 'transparent',\n boxShadow: isActive ? '0px 2px 6px rgba(0,0,0,0.06)' : 'none',\n border: '1px solid',\n borderColor: isActive ? 'divider' : 'transparent',\n transition: 'all 0.2s ease',\n '&:hover': {\n backgroundColor: isActive ? 'background.paper' : 'action.hover',\n },\n }}\n startIcon={<FontAwesomeIcons iconName={tab.icon} />}\n >\n {tab.label}\n </Button>\n );\n })}\n </Box>\n {queryTabValue === 0 && (\n <Grid>\n <Typography variant=\"subtitle1\">Modified On Query:</Typography>\n <Controller\n name=\"modifiedOnQuery\"\n control={formCtrl.control}\n render={({ field, fieldState: { error } }) => (\n <>\n <Editor\n height=\"35vh\"\n defaultLanguage=\"sql\"\n theme=\"vs-dark\"\n options={{\n fontSize: 12,\n minimap: { enabled: false },\n automaticLayout: true,\n scrollBeyondLastLine: false,\n wordWrap: 'on',\n occurrencesHighlight: false,\n selectionHighlight: false,\n readOnly: !isEditMode && !isCreateTableMode,\n }}\n value={field.value || ''}\n defaultValue={field.value || ''}\n onChange={field.onChange}\n editorProps={{ $blockScrolling: true }}\n />\n {error?.message && (\n <Typography variant=\"subtitle1\" color=\"error\" fontSize=\"13px\" className=\"mt-1 ml-[13px]\">\n {error.message}\n </Typography>\n )}\n </>\n )}\n ></Controller>\n </Grid>\n )}\n {queryTabValue === 1 && (\n <Grid>\n <Typography variant=\"subtitle1\">Data Fetch Query:</Typography>\n <Controller\n name=\"dataFetchQuery\"\n control={formCtrl.control}\n render={({ field, fieldState: { error } }) => (\n <>\n <Editor\n height=\"35vh\"\n defaultLanguage=\"sql\"\n theme=\"vs-dark\"\n options={{\n fontSize: 12,\n minimap: { enabled: false },\n automaticLayout: true,\n scrollBeyondLastLine: false,\n wordWrap: 'on',\n occurrencesHighlight: false,\n selectionHighlight: false,\n readOnly: !isEditMode && !isCreateTableMode,\n }}\n value={field.value || ''}\n defaultValue={field.value || ''}\n onChange={field.onChange}\n editorProps={{ $blockScrolling: true }}\n />\n {error?.message && (\n <Typography variant=\"subtitle1\" color=\"error\" fontSize=\"13px\" className=\"mt-1 ml-[13px]\">\n {error.message}\n </Typography>\n )}\n </>\n )}\n ></Controller>\n </Grid>\n )}\n {queryTabValue === 2 && (\n <Grid>\n <Typography variant=\"subtitle1\">Create Table Query:</Typography>\n <Controller\n name=\"createTableQuery\"\n control={formCtrl.control}\n render={({ field, fieldState: { error } }) => (\n <>\n <Editor\n height=\"35vh\"\n defaultLanguage=\"sql\"\n theme=\"vs-dark\"\n options={{\n fontSize: 12,\n minimap: { enabled: false },\n automaticLayout: true,\n scrollBeyondLastLine: false,\n wordWrap: 'on',\n occurrencesHighlight: false,\n selectionHighlight: false,\n readOnly: true,\n }}\n value={field.value || ''}\n defaultValue={field.value || ''}\n onChange={field.onChange}\n editorProps={{ $blockScrolling: true }}\n />\n {error?.message && (\n <Typography variant=\"subtitle1\" color=\"error\" fontSize=\"13px\" className=\"mt-1 ml-[13px]\">\n {error.message}\n </Typography>\n )}\n </>\n )}\n ></Controller>\n </Grid>\n )}\n {/* ── Configuration Options Section ── */}\n <Paper variant=\"outlined\" sx={{ p: 2, mt: 2, borderRadius: 2, backgroundColor: 'action.hover' }}>\n <Typography variant=\"subtitle2\" sx={{ fontWeight: 700, mb: 1.5, color: 'text.primary' }}>\n Table Settings\n </Typography>\n <Grid container spacing={2}>\n <Grid size={6} xs={12}>\n <Typography variant=\"body2\" sx={{ fontWeight: 600, mb: 0.5 }}>\n Data Scope <span style={{ color: '#ef4444' }}>*</span>\n </Typography>\n <FormControl>\n <Controller\n name=\"userData\"\n control={formCtrl.control}\n rules={{ required: 'Required field.' }}\n disabled={!isEditMode && !isCreateTableMode}\n defaultValue={\n tableInfo.userData !== undefined && tableInfo.userData !== null\n ? String(tableInfo.userData)\n : ''\n }\n render={({ field }) => (\n <RadioGroup row {...field} value={field.value}>\n <FormControlLabel\n value=\"true\"\n control={<Radio disabled={!isEditMode && !isCreateTableMode} size=\"small\" />}\n label={<Typography variant=\"body2\">User</Typography>}\n />\n <FormControlLabel\n value=\"false\"\n control={<Radio disabled={!isEditMode && !isCreateTableMode} size=\"small\" />}\n label={<Typography variant=\"body2\">System</Typography>}\n />\n </RadioGroup>\n )}\n />\n </FormControl>\n </Grid>\n <Grid size={6} xs={12}>\n <Typography variant=\"body2\" sx={{ fontWeight: 600, mb: 0.5 }}>\n Sync by Default <span style={{ color: '#ef4444' }}>*</span>\n </Typography>\n <FormControl>\n <Controller\n name=\"syncByDefault\"\n id=\"syncByDefault\"\n control={formCtrl.control}\n rules={{ required: 'Required field.' }}\n disabled={!isEditMode && !isCreateTableMode}\n defaultValue={\n tableInfo.syncByDefault !== undefined && tableInfo.syncByDefault !== null\n ? String(tableInfo.syncByDefault)\n : ''\n }\n render={({ field }) => (\n <RadioGroup row {...field} value={field.value}>\n <FormControlLabel\n value=\"true\"\n control={<Radio disabled={!isEditMode && !isCreateTableMode} size=\"small\" />}\n label={<Typography variant=\"body2\">Yes</Typography>}\n />\n <FormControlLabel\n value=\"false\"\n control={<Radio disabled={!isEditMode && !isCreateTableMode} size=\"small\" />}\n label={<Typography variant=\"body2\">No</Typography>}\n />\n </RadioGroup>\n )}\n />\n </FormControl>\n </Grid>\n <Grid size={6} xs={12}>\n <Typography variant=\"body2\" sx={{ fontWeight: 600, mb: 0.5 }}>\n Has Media <span style={{ color: '#ef4444' }}>*</span>\n </Typography>\n <FormControl>\n <Controller\n name=\"hasMedia\"\n id=\"hasMedia\"\n control={formCtrl.control}\n rules={{ required: 'Required field.' }}\n disabled={!isEditMode && !isCreateTableMode}\n defaultValue={\n tableInfo.hasMedia !== undefined && tableInfo.hasMedia !== null\n ? String(tableInfo.hasMedia)\n : ''\n }\n render={({ field }) => (\n <RadioGroup row {...field} value={field.value}>\n <FormControlLabel\n value=\"true\"\n control={<Radio disabled={!isEditMode && !isCreateTableMode} size=\"small\" />}\n label={<Typography variant=\"body2\">Yes</Typography>}\n />\n <FormControlLabel\n value=\"false\"\n control={<Radio disabled={!isEditMode && !isCreateTableMode} size=\"small\" />}\n label={<Typography variant=\"body2\">No</Typography>}\n />\n </RadioGroup>\n )}\n />\n </FormControl>\n </Grid>\n </Grid>\n </Paper>\n {hasMediaVal === 'true' && (\n <>\n <Typography variant=\"h6\" className=\"mt-2\" sx={{ fontWeight: 600, color: '#566A79' }}>\n Media Configuration:\n </Typography>\n <Grid container spacing={2} className=\"mt-2\">\n <Grid size={6} xs={12}>\n <Typography variant=\"subtitle2\" sx={{ mb: 0.5, fontWeight: 600 }}>\n Download Type<span style={{ color: 'red' }}>*</span>:\n </Typography>\n <Controller\n name=\"downloadType\"\n control={formCtrl.control}\n rules={{\n validate: (value) => hasMediaVal !== 'true' || !!value || 'Download Type is required.',\n }}\n render={({ field: { onChange, value }, fieldState: { error } }) => (\n <Autocomplete\n options={DOWNLOAD_TYPE_OPTIONS}\n value={value || null}\n disabled={!isEditMode && !isCreateTableMode}\n onChange={(_, newValue) => onChange(newValue)}\n renderInput={(params) => (\n <TextField\n {...params}\n size=\"small\"\n placeholder=\"Select download type\"\n error={!!error}\n helperText={error?.message}\n />\n )}\n />\n )}\n />\n </Grid>\n\n <Grid size={12}>\n <Box\n sx={{\n border: '1px solid #ddd',\n borderRadius: '8px',\n p: 2,\n backgroundColor: '#fafafa',\n }}\n >\n <Typography variant=\"subtitle1\" sx={{ fontWeight: 600, mb: 1.5, color: '#374151' }}>\n Download URL\n </Typography>\n\n <Typography variant=\"subtitle2\" sx={{ mb: 0.5, fontWeight: 600 }}>\n API Endpoint<span style={{ color: 'red' }}>*</span>:\n </Typography>\n <Controller\n name=\"apiEndpoint\"\n control={formCtrl.control}\n rules={{\n validate: (value) =>\n hasMediaVal !== 'true' || !!value?.trim() || 'API Endpoint is required.',\n }}\n render={({ field, fieldState: { error } }) => (\n <TextField\n {...field}\n value={field.value || ''}\n size=\"small\"\n variant=\"outlined\"\n fullWidth\n placeholder=\"https://api.example.com/endpoint\"\n error={!!error}\n helperText={error?.message}\n slotProps={{ input: { readOnly: !isEditMode && !isCreateTableMode } }}\n sx={{ mb: 2 }}\n />\n )}\n />\n\n <Box sx={{ display: 'flex', alignItems: 'center', mb: 1 }}>\n <Typography variant=\"subtitle2\" sx={{ fontWeight: 600, color: '#374151', flex: 1 }}>\n Request Parameters<span style={{ color: 'red' }}>*</span>:\n </Typography>\n {(isEditMode || isCreateTableMode) && (\n <Tooltip title=\"Add parameter\" arrow>\n <IconButton\n size=\"small\"\n onClick={() => {\n const newParams = [...requestParams, { key: '', value: '' }];\n setRequestParams(newParams);\n formCtrl.setValue('requestParameters', newParams, {\n shouldDirty: true,\n shouldValidate: true,\n });\n }}\n sx={{\n backgroundColor: '#566A79',\n color: 'white',\n '&:hover': { backgroundColor: '#3d4f5c' },\n borderRadius: '6px',\n width: '28px',\n height: '28px',\n }}\n >\n <FontAwesomeIcons iconName=\"faPlus\" className=\"text-[0.75rem]\" />\n </IconButton>\n </Tooltip>\n )}\n </Box>\n\n {requestParams.length === 0 && (\n <Typography variant=\"caption\" sx={{ color: '#9ca3af', fontStyle: 'italic' }}>\n No request parameters added.\n </Typography>\n )}\n\n {requestParams.map((param, index) => (\n <Box\n key={index}\n sx={{\n display: 'flex',\n gap: 1,\n alignItems: 'flex-start',\n mb: 1,\n p: 1,\n borderRadius: '6px',\n backgroundColor: '#f0f4f8',\n border: '1px solid #e2e8f0',\n }}\n >\n <TextField\n size=\"small\"\n label=\"Key\"\n value={param.key}\n placeholder=\"parameterKey\"\n disabled={!isEditMode && !isCreateTableMode}\n onChange={(e) => {\n const updated = requestParams.map((p, i) =>\n i === index ? { ...p, key: e.target.value } : p\n );\n setRequestParams(updated);\n formCtrl.setValue('requestParameters', updated, {\n shouldDirty: true,\n shouldValidate: true,\n });\n }}\n sx={{ flex: 1 }}\n />\n\n <Autocomplete\n size=\"small\"\n options={syncedFilteredCols.map((col) => col.name)}\n value={param.value || null}\n disabled={!isEditMode && !isCreateTableMode}\n noOptionsText={syncedFilteredCols.length === 0 ? 'No synced columns yet' : 'No match'}\n onChange={(_, newValue) => {\n const updated = requestParams.map((p, i) =>\n i === index ? { ...p, value: newValue || '' } : p\n );\n setRequestParams(updated);\n formCtrl.setValue('requestParameters', updated, {\n shouldDirty: true,\n shouldValidate: true,\n });\n }}\n renderInput={(params) => (\n <TextField {...params} label=\"Value (Column)\" placeholder=\"Select column\" />\n )}\n sx={{ flex: 1 }}\n />\n\n {(isEditMode || isCreateTableMode) && (\n <Tooltip title=\"Remove parameter\" arrow>\n <IconButton\n size=\"small\"\n onClick={() => {\n const updated = requestParams.filter((_, i) => i !== index);\n setRequestParams(updated);\n formCtrl.setValue('requestParameters', updated, {\n shouldDirty: true,\n shouldValidate: true,\n });\n }}\n sx={{ color: '#ef4444', alignSelf: 'center' }}\n >\n <FontAwesomeIcons iconName=\"faTrashCan\" className=\"text-[0.85rem]\" />\n </IconButton>\n </Tooltip>\n )}\n </Box>\n ))}\n\n {formCtrl.formState.errors.requestParameters && (\n <Typography variant=\"caption\" sx={{ color: '#ef4444', mt: 0.5, display: 'block' }}>\n {formCtrl.formState.errors.requestParameters.message}\n </Typography>\n )}\n </Box>\n </Grid>\n\n <Grid size={6} xs={12}>\n <Typography variant=\"subtitle2\" sx={{ mb: 0.5, fontWeight: 600 }}>\n Directory Path<span style={{ color: 'red' }}>*</span>:\n </Typography>\n <Controller\n name=\"directoryPath\"\n control={formCtrl.control}\n defaultValue=\"\"\n rules={{\n validate: (value) =>\n hasMediaVal !== 'true' ||\n (!!value?.trim() && value.trim().length > 0) ||\n 'Directory Path is required.',\n }}\n render={({ field, fieldState: { error } }) => (\n <TextField\n {...field}\n size=\"small\"\n variant=\"outlined\"\n fullWidth\n error={!!error}\n helperText={error?.message}\n slotProps={{\n input: {\n readOnly: !isEditMode && !isCreateTableMode,\n startAdornment: <InputAdornment position=\"start\">#directoryPath#/</InputAdornment>,\n endAdornment: <InputAdornment position=\"end\">/</InputAdornment>,\n },\n }}\n />\n )}\n />\n </Grid>\n </Grid>\n </>\n )}\n </Grid>\n <Grid size={5}>\n <Paper variant=\"outlined\" sx={{ px: 2, borderRadius: 2.5, height: '100%', mb: 1 }}>\n <Box\n sx={{\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n flexWrap: 'wrap',\n gap: 1,\n pt: 1.5,\n }}\n >\n {/* Pill-style column tabs */}\n <Box\n sx={{\n display: 'inline-flex',\n gap: 0.5,\n p: 0.5,\n backgroundColor: 'action.hover',\n borderRadius: 2,\n border: '1px solid',\n borderColor: 'divider',\n mb: 1,\n }}\n >\n {!isCreateTableMode && (\n <Button\n size=\"small\"\n onClick={() => {\n setColTabValue(0);\n setSearchColumn('');\n }}\n sx={{\n px: 1.5,\n py: 0.4,\n borderRadius: 1.5,\n textTransform: 'none',\n fontSize: '0.78rem',\n fontWeight: colTabValue === 0 ? 700 : 500,\n color: colTabValue === 0 ? 'primary.dark' : 'text.secondary',\n backgroundColor: colTabValue === 0 ? 'background.paper' : 'transparent',\n boxShadow: colTabValue === 0 ? '0px 1px 4px rgba(0,0,0,0.06)' : 'none',\n border: '1px solid',\n borderColor: colTabValue === 0 ? 'divider' : 'transparent',\n '&:hover': { backgroundColor: colTabValue === 0 ? 'background.paper' : 'action.hover' },\n }}\n >\n Synced Columns\n </Button>\n )}\n {tableCompleteInfo !== undefined && (\n <Button\n size=\"small\"\n onClick={() => {\n setColTabValue(1);\n setSearchColumn('');\n }}\n sx={{\n px: 1.5,\n py: 0.4,\n borderRadius: 1.5,\n textTransform: 'none',\n fontSize: '0.78rem',\n fontWeight: colTabValue === 1 ? 700 : 500,\n color: colTabValue === 1 ? 'primary.dark' : 'text.secondary',\n backgroundColor: colTabValue === 1 ? 'background.paper' : 'transparent',\n boxShadow: colTabValue === 1 ? '0px 1px 4px rgba(0,0,0,0.06)' : 'none',\n border: '1px solid',\n borderColor: colTabValue === 1 ? 'divider' : 'transparent',\n '&:hover': { backgroundColor: colTabValue === 1 ? 'background.paper' : 'action.hover' },\n }}\n >\n {!isCreateTableMode ? 'DB Columns' : 'Columns'}\n </Button>\n )}\n </Box>\n {colTabValue === 0 && syncedFilteredCols.length > 0 && isSyncTableMode && (\n <Box sx={{ minWidth: 200, marginLeft: 2 }}>\n <Autocomplete\n size=\"small\"\n options={syncedFilteredCols.map((col) => col.name)}\n value={formCtrl.getValues('primaryKey') || ''}\n readOnly={!isEditMode && !isCreateTableMode}\n onChange={(_, newValue) => {\n const updatedCols = syncedFilteredCols.map((col) => ({\n ...col,\n isPrimaryKey: col.name === newValue,\n }));\n setSyncedFilteredCols(updatedCols);\n formCtrl.setValue('selectedColumns', updatedCols, { shouldDirty: true });\n formCtrl.setValue('primaryKey', newValue);\n }}\n renderInput={(params) => (\n <TextField {...params} label=\"Primary Key\" placeholder=\"Select column\" />\n )}\n renderOption={(props, option) => (\n <li {...props}>\n <Tooltip title={option} placement=\"left\" arrow>\n <span className=\"truncate max-w-[250px]\">{option}</span>\n </Tooltip>\n </li>\n )}\n />\n </Box>\n )}\n\n {(isCreateTableMode || isEditMode) && (\n <Button\n id=\"edit-button-anchor\"\n size=\"small\"\n variant=\"contained\"\n sx={{\n borderRadius: 2,\n fontWeight: 600,\n textTransform: 'none',\n boxShadow: 'none',\n px: 1.5,\n ml: 1,\n }}\n disabled={!!formCtrl.formState.errors.tableName}\n onClick={async (e) => {\n const target = e.currentTarget;\n const isValid = await formCtrl.trigger('tableName');\n if (!isValid) return;\n setEditColumnIndex(null);\n setAnchorEl(target);\n }}\n startIcon={<FontAwesomeIcons iconName={'faPlus'} />}\n >\n Column\n </Button>\n )}\n {(isCreateTableMode || isEditMode) && (\n <Popover\n id={id}\n open={popOverOpen}\n anchorEl={anchorEl}\n onClose={async () => {\n setAnchorEl(null);\n formCtrl.setValue('newColumnName', '');\n formCtrl.setValue('newColumnType', null);\n formCtrl.setValue('isPrimaryKey', false);\n formCtrl.clearErrors(['newColumnName', 'newColumnType']);\n setEditColumnIndex(null);\n }}\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'left',\n }}\n >\n <Grid\n container\n spacing={1}\n sx={{\n p: 1,\n width: '200px',\n height: !formCtrl.getValues('selectedColumns')?.some((col) => col.isPrimaryKey)\n ? '210px'\n : '180px',\n }}\n >\n <Grid size={12} className=\"h-fit\">\n <FormControl fullWidth>\n <Controller\n name=\"newColumnName\"\n id=\"newColumnName\"\n control={formCtrl.control}\n render={({ field: { onChange, value, ...field }, fieldState: { error } }) => (\n <TextField\n {...field}\n value={value?.trim() || ''}\n variant=\"outlined\"\n fullWidth\n size=\"small\"\n error={!!error}\n helperText={error?.message}\n label=\"Column Name\"\n sx={{\n '& .MuiInputLabel-root': {\n fontSize: '0.9rem',\n },\n margin: 0,\n }}\n onChange={(e) => {\n onChange(e.target.value);\n debouncedCheckAvailability(e.target.value);\n }}\n />\n )}\n />\n </FormControl>\n </Grid>\n <Grid size={12} className=\"h-fit\">\n <FormControl fullWidth>\n <Controller\n name=\"newColumnType\"\n id=\"newColumnType\"\n control={formCtrl.control}\n render={({ field: { onChange, value }, fieldState: { error } }) => (\n <Autocomplete\n options={columnTypeOptions || []}\n value={value?.trim() || null}\n getOptionLabel={(option) => option}\n onChange={(event, newValue) => {\n onChange(newValue);\n }}\n renderInput={(params) => (\n <TextField\n {...params}\n size=\"small\"\n error={!!error}\n helperText={error?.message}\n sx={{\n '& .MuiInputLabel-root': {\n fontSize: '0.9rem',\n },\n m: 0,\n }}\n label=\"Column Type\"\n onChange={(e) => {\n onChange(e.target.value);\n formCtrl.setValue('newColumnType', e.target.value, {\n shouldDirty: true,\n });\n }}\n />\n )}\n />\n )}\n />\n </FormControl>\n </Grid>\n {editColumnIndex === null &&\n !formCtrl.getValues('selectedColumns').some((col) => col.isPrimaryKey) && (\n <Grid size={12} className=\"h-fit\">\n <FormControlLabel\n control={\n <Controller\n name=\"isPrimaryKey\"\n control={formCtrl.control}\n render={({ field: { onChange, value } }) => (\n <Checkbox\n checked={value || false}\n onChange={(e) => onChange(e.target.checked)}\n sx={{\n margin: '0px',\n }}\n />\n )}\n />\n }\n label=\"Primary Key\"\n />\n </Grid>\n )}\n <Grid>\n <Button\n size=\"small\"\n variant=\"contained\"\n disabled={\n !newColumnNameVal ||\n !newColumnTypeVal ||\n newColumnNameVal.trim() === '' ||\n !columnTypeOptions.includes(newColumnTypeVal.trim())\n }\n onClick={async () => {\n const isPrimaryKey = formCtrl.getValues('isPrimaryKey');\n const updatedName = formCtrl.getValues('newColumnName');\n const updatedType = formCtrl.getValues('newColumnType');\n\n const hasExistingPrimaryKey = formCtrl\n .getValues('selectedColumns')\n .some((col) => col.isPrimaryKey);\n\n let updatedCols = [...formCtrl.getValues('selectedColumns')];\n\n if (editColumnIndex !== null) {\n updatedCols[editColumnIndex] = {\n ...updatedCols[editColumnIndex],\n name: updatedName,\n type: updatedType,\n };\n } else {\n if (updatedCols.some((col) => col.name === updatedName)) {\n showToast({ message: 'Column already exists', type: 'error' });\n return;\n }\n\n const newColumn = {\n name: updatedName,\n type: updatedType,\n };\n if (!hasExistingPrimaryKey && isPrimaryKey) {\n formCtrl.setValue('primaryKey', updatedName);\n newColumn.isPrimaryKey = true;\n }\n\n updatedCols.push(newColumn);\n }\n\n formCtrl.setValue('selectedColumns', updatedCols, {\n shouldDirty: true,\n });\n\n const synced = [...updatedCols].sort((a, b) => {\n if (a.isPrimaryKey) return -1;\n if (b.isPrimaryKey) return 1;\n return a.name.localeCompare(b.name);\n });\n\n setSyncedFilteredCols(synced);\n isCreateTableMode && (await updateCreateTableScript(updatedCols));\n\n setEditColumnIndex(null);\n setAnchorEl(null);\n colTabValue !== 0 && setColTabValue(0);\n formCtrl.setValue('newColumnName', ' ');\n formCtrl.setValue('newColumnType', ' ');\n formCtrl.setValue('isPrimaryKey', null);\n }}\n >\n {editColumnIndex !== null ? 'Update' : 'Add'}\n </Button>\n </Grid>\n </Grid>\n </Popover>\n )}\n </Box>\n <TableContainer\n sx={{\n maxHeight: hasMediaVal === 'true' ? '112vh' : '59vh',\n border: '1px solid',\n borderColor: 'divider',\n borderRadius: 2,\n }}\n >\n <Table stickyHeader>\n <TableHead>\n <TableRow>\n <TableCell className=\" px-3 \" sx={{ backgroundColor: 'white' }}>\n <TextField\n size=\"small\"\n placeholder=\"Search Columns\"\n variant=\"outlined\"\n value={searchColumn}\n onChange={(e) => {\n setSearchColumn(e.target.value);\n }}\n className=\"w-full py-0.5 text-xs\"\n InputProps={{\n startAdornment: (\n <InputAdornment position=\"start\">\n <IconButton>\n <FontAwesomeIcons iconName={'faMagnifyingGlass'} className=\"text-[1rem]\" />\n </IconButton>\n </InputAdornment>\n ),\n }}\n />\n {!hasPrimaryKey && (\n <Typography variant=\"body2\" color=\"info\" className=\"mb-0\">\n <span style={{ color: 'red' }}>*</span> Select a primary key for the table before\n submitting.\n </Typography>\n )}\n </TableCell>\n </TableRow>\n </TableHead>\n {colTabValue === 0 && (\n <TableBody>\n {syncedFilteredCols.length ? (\n syncedFilteredCols.map((col, index) => (\n <TableRow\n key={index + 1}\n className={`border-b ${index === syncedFilteredCols.length - 1 ? 'border-none' : 'border-[#ccc]'}`}\n sx={{\n backgroundColor: col.onlyMobileDb\n ? '#d3ecc7'\n : col.isTypeChanged\n ? 'rgba(255, 0, 0, 0.1)'\n : '#fff',\n '&:hover': {\n backgroundColor: col.onlyMobileDb\n ? '#d2f7c0'\n : col.isTypeChanged\n ? '#e79a9a'\n : '#e9f3ff',\n },\n }}\n >\n <TableCell className=\"p-2 px-4 flex justify-between\">\n <Tooltip\n title={\n col.onlyMobileDb\n ? 'Column only present in mobile database'\n : col.isTypeChanged\n ? 'Type changed'\n : ''\n }\n placement=\"top\"\n arrow\n disableHoverListener={!(col.onlyMobileDb || col.isTypeChanged)}\n >\n <Typography variant=\"caption\" className=\"w-full text-ellipsis cursor-pointer\">\n {col.name} ({col.type})\n </Typography>\n </Tooltip>\n <Box display=\"flex\" alignItems=\"center\">\n {col.isPrimaryKey && (\n <IconButton sx={{ height: '1.5rem', marginRight: 0, paddingRight: 1 }}>\n <FontAwesomeIcons iconName={'faKey'} className=\"text-[1rem] text-[#d3bb51]\" />\n </IconButton>\n )}\n\n {(isCreateTableMode || isEditMode) && (\n <>\n <Tooltip\n title={\n !isCreateTableMode && col.isPrimaryKey && !isSyncTableMode\n ? 'Deletion of primary key is not allowed.'\n : ''\n }\n arrow\n placement=\"left\"\n >\n {' '}\n <span>\n <IconButton\n sx={{ height: '1.3rem', marginRight: '0' }}\n disabled={!isCreateTableMode && col.isPrimaryKey && !isSyncTableMode}\n onClick={async () => {\n const fullSynced = formCtrl.getValues('selectedColumns');\n setSearchColumn('');\n const updatedCols = fullSynced.filter((c) => c.name !== col.name);\n\n formCtrl.setValue('selectedColumns', updatedCols, { shouldDirty: true });\n\n const searchVal = searchColumn.trim().toLowerCase();\n const visibleCols = searchVal\n ? updatedCols.filter((c) => c.name.toLowerCase().includes(searchVal))\n : updatedCols;\n\n setSyncedFilteredCols(visibleCols);\n\n setFilteredCols((prev) =>\n prev.map((c) => {\n if (c.name === col.name) {\n return { ...c, isSynced: false };\n }\n return c;\n })\n );\n\n if (col.isPrimaryKey) {\n formCtrl.setValue('primaryKey', '');\n }\n\n if (isCreateTableMode) {\n await updateCreateTableScript(updatedCols);\n }\n }}\n >\n <FontAwesomeIcons\n iconName={'faTrashCan'}\n className=\"text-[1rem] text-[#df5f5f]\"\n />\n </IconButton>\n </span>\n </Tooltip>\n {isCreateTableMode && (\n <IconButton\n sx={{ height: '1.3rem', marginRight: '0', color: 'success' }}\n onClick={() => {\n const selectedColumns = formCtrl.getValues('selectedColumns');\n const columnIndex = selectedColumns.findIndex((c) => c.name === col.name);\n setEditColumnIndex(columnIndex);\n formCtrl.setValue('newColumnName', col.name);\n formCtrl.setValue('newColumnType', col.type);\n setAnchorEl(document.getElementById('edit-button-anchor') ?? null);\n }}\n >\n <FontAwesomeIcons iconName={'faPen'} className=\"text-[1rem] text-[#4f4f4f]\" />\n </IconButton>\n )}\n </>\n )}\n </Box>\n </TableCell>\n </TableRow>\n ))\n ) : (\n <TableRow>\n <TableCell colSpan={1} className=\"p-2\">\n <Typography variant=\"body2\">\n {' '}\n {formCtrl.getValues('selectedColumns').length === 0\n ? 'There are no columns to display.'\n : syncedFilteredCols.length === 0\n ? 'No columns for search query.'\n : null}\n </Typography>\n </TableCell>\n </TableRow>\n )}\n </TableBody>\n )}\n {colTabValue === 1 && (\n <TableBody>\n {filteredCols.length ? (\n filteredCols.map((col, index) => {\n const isPrimaryKey = col.name === tableInfo.primaryKey;\n const isSynced = col.isSynced || false;\n\n const renderSwitch = (\n <Switch\n icon={\n <Box\n sx={{\n backgroundColor: '#001e3c',\n borderRadius: '50%',\n width: 20,\n height: 20,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n >\n <FontAwesomeIcons iconName={'faBan'} size=\"sm\" className=\"pr-[0.4px]\" />\n </Box>\n }\n checkedIcon={\n <Box\n sx={{\n backgroundColor: '#4caf50',\n borderRadius: '50%',\n width: 20,\n height: 20,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n >\n <FontAwesomeIcons iconName={'faRotate'} className=\"text-white text-xs\" />\n </Box>\n }\n checked={isSynced}\n disabled={!isEditMode}\n onChange={(e) => {\n const isChecked = e.target.checked;\n if (\n !isChecked &&\n isEditMode &&\n !isSyncTableMode &&\n !isCreateTableMode &&\n col.name === tableInfo.primaryKey\n ) {\n return;\n }\n const newCols = [...filteredCols];\n const updatedCol = {\n ...newCols[index],\n isSynced: e.target.checked,\n };\n newCols[index] = updatedCol;\n setFilteredCols(newCols);\n\n const temp = [...syncedFilteredCols];\n if (isChecked) {\n const hasPrimaryKeyInSynced = syncedFilteredCols.some((c) => c.isPrimaryKey);\n if (col.name === tableInfo.primaryKey && !hasPrimaryKeyInSynced) {\n temp.push({ ...updatedCol, isPrimaryKey: true });\n formCtrl.setValue('primaryKey', col.name);\n } else {\n temp.push(updatedCol);\n }\n } else {\n const colIndex = temp.findIndex((c) => c.name === newCols[index].name);\n if (colIndex > -1) {\n const isRemovingPrimary = temp[colIndex].isPrimaryKey;\n temp.splice(colIndex, 1);\n if (isRemovingPrimary) {\n formCtrl.setValue('primaryKey', '');\n }\n }\n }\n setSyncedFilteredCols(temp);\n formCtrl.setValue('selectedColumns', temp, { shouldDirty: true });\n }}\n />\n );\n\n const renderPrimaryKeyIcon = (\n <IconButton\n sx={{\n height: '2rem',\n marginRight: !isEditMode ? 0 : 1,\n paddingRight: !isEditMode ? 0 : 1,\n }}\n >\n <FontAwesomeIcons iconName={'faKey'} className=\"text-lg text-[#d3bb51]\" />\n </IconButton>\n );\n\n return (\n <TableRow\n key={index + 1}\n className={`border-b ${index === filteredCols.length - 1 ? 'border-none' : 'border-[#ccc]'}`}\n sx={{ '&:hover': { backgroundColor: '#e9f3ff' } }}\n >\n <TableCell\n sx={{\n p: 0,\n px: 2,\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n }}\n >\n <Typography\n variant=\"caption\"\n className=\"w-full text-ellipsis cursor-pointer align-content-center\"\n >\n {col.name} ({col.type})\n </Typography>\n\n {isEditMode ? (\n isPrimaryKey ? (\n isCreateTableMode ? (\n renderPrimaryKeyIcon\n ) : (\n <Box sx={{ display: 'flex', alignItems: 'center' }}>\n {renderPrimaryKeyIcon}\n <Tooltip\n title={\n isEditMode && !isSyncTableMode && col.name === tableInfo.primaryKey\n ? 'Primary key cannot be unsynced in edit mode.'\n : ''\n }\n arrow\n placement=\"top\"\n >\n <span>{renderSwitch}</span>\n </Tooltip>\n </Box>\n )\n ) : (\n renderSwitch\n )\n ) : isSynced ? (\n <Box\n sx={{\n backgroundColor: '#4caf50',\n borderRadius: '50%',\n width: 20,\n height: 20,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n margin: '9px 0px',\n }}\n >\n <FontAwesomeIcons iconName={'faRotate'} className=\"text-white text-xs\" />\n </Box>\n ) : isPrimaryKey ? (\n renderPrimaryKeyIcon\n ) : (\n <Box\n sx={{\n backgroundColor: '#001e3c',\n borderRadius: '50%',\n width: 20,\n height: 20,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n margin: '9px 0px',\n }}\n >\n <FontAwesomeIcons iconName={'faBan'} className=\"text-white pl-[0.5px]\" />\n </Box>\n )}\n </TableCell>\n </TableRow>\n );\n })\n ) : (\n <TableRow>\n <TableCell colSpan={1} className=\"p-2\">\n <Typography variant=\"body2\">No columns for search query.</Typography>\n </TableCell>\n </TableRow>\n )}\n </TableBody>\n )}\n </Table>\n </TableContainer>\n </Paper>\n </Grid>\n </Grid>\n </form>\n </Paper>\n\n {modalOpen && (\n <Modal open={modalOpen} onClose={handleModalClose}>\n <Box sx={{ ...modalStyle }}>\n <Box sx={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center', mb: 2 }}>\n <Typography variant=\"h6\">Generated Migration Script</Typography>\n <Typography variant=\"body2\">\n From : <strong>v{migrationVersions?.from_version}</strong>{' '}\n <FontAwesomeIcons iconName=\"faArrowRight\" size=\"sm\" className=\"m-[0.3rem 0.3rem 0 0.3rem]\" /> To :{' '}\n <strong>v{migrationVersions?.to_version}</strong>\n </Typography>\n </Box>\n <Editor\n height=\"50vh\"\n defaultLanguage=\"sql\"\n theme=\"light\"\n options={{\n fontSize: 12,\n minimap: { enabled: true },\n automaticLayout: true,\n scrollBeyondLastLine: false,\n wordWrap: 'on',\n occurrencesHighlight: false,\n selectionHighlight: false,\n }}\n value={migrationScript || ''}\n defaultValue={migrationScript || ''}\n onChange={handleEditorChange}\n editorProps={{ $blockScrolling: true }}\n ></Editor>\n <Button variant=\"contained\" color=\"primary\" className=\"mt-2\" onClick={() => saveForm(null, true)}>\n OK\n </Button>\n </Box>\n </Modal>\n )}\n </Grid>\n );\n}\n\nconst modalStyle = {\n position: 'absolute',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n width: '50%',\n height: '70%',\n bgcolor: 'background.paper',\n boxShadow: 24,\n padding: '15px',\n borderRadius: '8px',\n};\n\nTableDetails.propTypes = {\n tableInfo: PropTypes.any,\n table: PropTypes.any,\n isEditMode: PropTypes.bool,\n updateEditMode: PropTypes.any,\n tableCompleteInfo: PropTypes.any,\n reloadComponents: PropTypes.any,\n isCreateTableMode: PropTypes.bool,\n isSyncTableMode: PropTypes.bool,\n updateCreateTableMode: PropTypes.any,\n openDeleteModal: PropTypes.bool,\n setOpenDeleteModal: PropTypes.func,\n};\n"],"names":["TableDetails","tableInfo","table","isEditMode","updateEditMode","tableCompleteInfo","reloadComponents","isCreateTableMode","isSyncTableMode","updateCreateTableMode","openDeleteModal","setOpenDeleteModal","DOWNLOAD_TYPE_OPTIONS","labelToCode","label","codeToLabel","code","o","getNewDownloadType","mc","_a","getNewApiEndpoint","flat","nested","getNewRequestParams","allColumns","setAllColumns","useState","modalOpen","setModalOpen","migrationScript","setMigrationScript","formData","setFormData","searchColumn","setSearchColumn","syncedFilteredCols","setSyncedFilteredCols","filteredCols","setFilteredCols","colTabValue","setColTabValue","queryTabValue","setQueryTabValue","anchorEl","setAnchorEl","editColumnIndex","setEditColumnIndex","migrationVersions","setMigrationVersions","requestParams","setRequestParams","popOverOpen","id","columnTypeOptions","loggedInUser","useSelector","state","defaultValues","_b","_c","_e","_d","_h","_g","_f","formCtrl","useForm","isFormValid","hasMediaVal","newColumnNameVal","newColumnTypeVal","value","p","onSubmit","data","script","createScript","getMigrationVersion","saveForm","migrationRequired","columns","response","entity","col","mediaConfig","execute","error","showToast","prev","handleModalClose","previousColumns","newColumns","oldPrimaryKey","newPrimaryKey","tableScript","previousColumnsNames","newColumnsNames","droppedColumns","addedColumns","dropColumnSql","addColumnSql","tableName","res","useEffect","allColumnsNames","tableCompleteInfoObj","item","tableInfoObj","b","syncedNames","a","searchValue","allSynced","filtered","watchedTableName","useWatch","updateCreateTableScript","handleEditorChange","onCancel","handleDelete","dropTableSql","debouncedCheckAvailability","useDebounceFn","name","isValidFormat","hasPrimaryKey","c","jsxs","Grid","jsx","Paper","Box","Typography","CustomTextField","Fragment","CustomConfirmationModal","cur","Tooltip","Button","FontAwesomeIcons","tab","isActive","Controller","field","Editor","FormControl","RadioGroup","FormControlLabel","Radio","onChange","Autocomplete","_","newValue","params","TextField","IconButton","newParams","param","index","e","updated","i","InputAdornment","updatedCols","props","option","target","Popover","_i","event","Checkbox","isPrimaryKey","updatedName","updatedType","hasExistingPrimaryKey","newColumn","synced","TableContainer","Table","TableHead","TableRow","TableCell","TableBody","fullSynced","searchVal","visibleCols","columnIndex","isSynced","renderSwitch","Switch","isChecked","newCols","updatedCol","temp","hasPrimaryKeyInSynced","colIndex","isRemovingPrimary","renderPrimaryKeyIcon","Modal","modalStyle","PropTypes"],"mappings":"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"}
|