@argusoft/medplat-core 1.0.28 → 1.0.30
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-xrday-L1.js +1023 -0
- package/dist/AccessRights-xrday-L1.js.map +1 -0
- package/dist/AddEditQueryBuilder-D-iQiVIe.js +365 -0
- package/dist/AddEditQueryBuilder-D-iQiVIe.js.map +1 -0
- package/dist/{AddFeatures-C0Z29oSd.js → AddFeatures-D1sU8RjY.js} +2 -2
- package/dist/{AddFeatures-C0Z29oSd.js.map → AddFeatures-D1sU8RjY.js.map} +1 -1
- package/dist/AddLabelModal-Bq-wRqv9.js +631 -0
- package/dist/AddLabelModal-Bq-wRqv9.js.map +1 -0
- package/dist/AddMenuConfiguration-e5BVXhmw.js +8547 -0
- package/dist/AddMenuConfiguration-e5BVXhmw.js.map +1 -0
- package/dist/{AddRoleDrawer-CQdzQZLb.js → AddRoleDrawer-0gqAK8N0.js} +62 -63
- package/dist/AddRoleDrawer-0gqAK8N0.js.map +1 -0
- package/dist/AppModal-CCtrQ5Tr.js +394 -0
- package/dist/AppModal-CCtrQ5Tr.js.map +1 -0
- package/dist/BrandsPage-DmRW5bhm-Bk1szrjI.js +387 -0
- package/dist/BrandsPage-DmRW5bhm-Bk1szrjI.js.map +1 -0
- package/dist/CategoriesPage-BsS5IQh3-B03lWRY5.js +391 -0
- package/dist/CategoriesPage-BsS5IQh3-B03lWRY5.js.map +1 -0
- package/dist/{ChangePasswordModalCore-CDxkeIIM.js → ChangePasswordModalCore-BPsJquTS.js} +1606 -1611
- package/dist/ChangePasswordModalCore-BPsJquTS.js.map +1 -0
- package/dist/{ConditionConfig-DSsgGEXS.js → ConditionConfig-Ddz9halE.js} +2 -2
- package/dist/ConditionConfig-Ddz9halE.js.map +1 -0
- package/dist/DashboardPage-C3bKc5na-sBd9Yqbi.js +435 -0
- package/dist/DashboardPage-C3bKc5na-sBd9Yqbi.js.map +1 -0
- package/dist/{EntityManagement-GaYsBTvf.js → EntityManagement-CPQL6qBj.js} +2 -2
- package/dist/{EntityManagement-GaYsBTvf.js.map → EntityManagement-CPQL6qBj.js.map} +1 -1
- package/dist/EventConfig-BmLemzX3.js +26 -0
- package/dist/EventConfig-BmLemzX3.js.map +1 -0
- package/dist/{EventConfigurations-kNtAj_WM.js → EventConfigurations-Bzh1qWXU.js} +31 -30
- package/dist/{EventConfigurations-kNtAj_WM.js.map → EventConfigurations-Bzh1qWXU.js.map} +1 -1
- package/dist/{EventsExceptionModal-D4Bf1ilS.js → EventsExceptionModal-B2SRrnB1.js} +2 -2
- package/dist/{EventsExceptionModal-D4Bf1ilS.js.map → EventsExceptionModal-B2SRrnB1.js.map} +1 -1
- package/dist/EventsSkeleton-BIcPks4T.js +61 -0
- package/dist/EventsSkeleton-BIcPks4T.js.map +1 -0
- package/dist/FacilityPicker-BiZeupmP-CyPHmj6b.js +79 -0
- package/dist/FacilityPicker-BiZeupmP-CyPHmj6b.js.map +1 -0
- package/dist/FeatureMenu-DYJmDt7q.js +521 -0
- package/dist/FeatureMenu-DYJmDt7q.js.map +1 -0
- package/dist/Features-Dne21RWu.js +14 -0
- package/dist/Features-Dne21RWu.js.map +1 -0
- package/dist/{FhirServerList-Dkq7Kbes.js → FhirServerList-DuTwnngN.js} +19 -19
- package/dist/{FhirServerList-Dkq7Kbes.js.map → FhirServerList-DuTwnngN.js.map} +1 -1
- package/dist/{FhirServerWizard-Db6Hm4bQ.js → FhirServerWizard-DZI8Olku.js} +15 -15
- package/dist/{FhirServerWizard-Db6Hm4bQ.js.map → FhirServerWizard-DZI8Olku.js.map} +1 -1
- package/dist/FlywayQuery-CQygj51V.js +179 -0
- package/dist/FlywayQuery-CQygj51V.js.map +1 -0
- package/dist/{ManageNotification-CaBAOhji.js → Google-DQxMfbaL.js} +1725 -2652
- package/dist/{ManageNotification-CaBAOhji.js.map → Google-DQxMfbaL.js.map} +1 -1
- package/dist/GrantPermissionModal-BDN66Atn.js +236 -0
- package/dist/GrantPermissionModal-BDN66Atn.js.map +1 -0
- package/dist/ImmunizationConfigurationBase-Di1KO3oW.js +7639 -0
- package/dist/ImmunizationConfigurationBase-Di1KO3oW.js.map +1 -0
- package/dist/ImmunizationConfigurationBase.css +1 -1
- package/dist/ImmunizationConfigurationsList-TZcLDEci.js +369 -0
- package/dist/ImmunizationConfigurationsList-TZcLDEci.js.map +1 -0
- package/dist/InventoryPage-C_AxSy7A-QLvlL4rE.js +665 -0
- package/dist/InventoryPage-C_AxSy7A-QLvlL4rE.js.map +1 -0
- package/dist/LanguagesModal-B3NTebYT.js +352 -0
- package/dist/LanguagesModal-B3NTebYT.js.map +1 -0
- package/dist/ManageDynamicFeature-BU0I45dd.js +4475 -0
- package/dist/ManageDynamicFeature-BU0I45dd.js.map +1 -0
- package/dist/{ManageEventConfiguration-DV3I5POA.js → ManageEventConfiguration-CoYcpjR9.js} +465 -397
- package/dist/ManageEventConfiguration-CoYcpjR9.js.map +1 -0
- package/dist/ManageNotification-C5MhV77Q.js +934 -0
- package/dist/ManageNotification-C5MhV77Q.js.map +1 -0
- package/dist/{ManageRole-CGYfglpo.js → ManageRole-CNZBRKGU.js} +32 -30
- package/dist/ManageRole-CNZBRKGU.js.map +1 -0
- package/dist/ManageTranslation-vRiptUAP.js +833 -0
- package/dist/ManageTranslation-vRiptUAP.js.map +1 -0
- package/dist/ManageTranslation.css +1 -1
- package/dist/{ManageUser-AY1EUDLI.js → ManageUser-DCFkUMV9.js} +1722 -1586
- package/dist/ManageUser-DCFkUMV9.js.map +1 -0
- package/dist/MemberProfileCard-BdUNgHRB-VywqQdFF.js +272 -0
- package/dist/MemberProfileCard-BdUNgHRB-VywqQdFF.js.map +1 -0
- package/dist/MobileAnalytics-pQoE8cG1.js +16888 -0
- package/dist/MobileAnalytics-pQoE8cG1.js.map +1 -0
- package/dist/MobileMenuManagement-Cf8IZlla.js +108 -0
- package/dist/MobileMenuManagement-Cf8IZlla.js.map +1 -0
- package/dist/{MobileTypeEventConfigModal-BxLympIO.js → MobileTypeEventConfigModal-BeveaX0C.js} +2 -2
- package/dist/MobileTypeEventConfigModal-BeveaX0C.js.map +1 -0
- package/dist/NotificationFlywayQuery-BAHVjf6N.js +247 -0
- package/dist/NotificationFlywayQuery-BAHVjf6N.js.map +1 -0
- package/dist/{NotificationList-C3Vb_jKU.js → NotificationList-DEyRZEuM.js} +109 -110
- package/dist/NotificationList-DEyRZEuM.js.map +1 -0
- package/dist/{OtherTypeEventConfigModal-BeG1GrUi.js → OtherTypeEventConfigModal-CM6VkdmY.js} +570 -478
- package/dist/OtherTypeEventConfigModal-CM6VkdmY.js.map +1 -0
- package/dist/PaymentCreatePage-CIVe0P0p-25BQVpOX.js +482 -0
- package/dist/PaymentCreatePage-CIVe0P0p-25BQVpOX.js.map +1 -0
- package/dist/PaymentsPage-BvPe5Q9F-D2gfziwW.js +157 -0
- package/dist/PaymentsPage-BvPe5Q9F-D2gfziwW.js.map +1 -0
- package/dist/PermissionsModal-CCYkcKlC.js +151 -0
- package/dist/PermissionsModal-CCYkcKlC.js.map +1 -0
- package/dist/PickupBatchLinesEditor-DHmcAG23-DL2p6IKJ.js +119 -0
- package/dist/PickupBatchLinesEditor-DHmcAG23-DL2p6IKJ.js.map +1 -0
- package/dist/PickupCreatePage-CB0Sl0Hb-Mmj7zESG.js +783 -0
- package/dist/PickupCreatePage-CB0Sl0Hb-Mmj7zESG.js.map +1 -0
- package/dist/PickupsPage-Ctpghavs-CUp4uIZq.js +818 -0
- package/dist/PickupsPage-Ctpghavs-CUp4uIZq.js.map +1 -0
- package/dist/PmGuard-b10TGXEi-G3N0G_Wg.js +599 -0
- package/dist/PmGuard-b10TGXEi-G3N0G_Wg.js.map +1 -0
- package/dist/ProductEditPage-C1thoKHu-URQaZ6st.js +1302 -0
- package/dist/ProductEditPage-C1thoKHu-URQaZ6st.js.map +1 -0
- package/dist/ProductsPage-CupVmOD4-D45a_hf-.js +252 -0
- package/dist/ProductsPage-CupVmOD4-D45a_hf-.js.map +1 -0
- package/dist/PurchaseCreatePage-YD3NmhPQ-2j4etSjM.js +648 -0
- package/dist/PurchaseCreatePage-YD3NmhPQ-2j4etSjM.js.map +1 -0
- package/dist/PurchaseRequestDetailPage-Dg_MRY_N-D1bgTEAn.js +1577 -0
- package/dist/PurchaseRequestDetailPage-Dg_MRY_N-D1bgTEAn.js.map +1 -0
- package/dist/PurchaseRequestsPage-DPAPzpmm-mDH2IrTl.js +279 -0
- package/dist/PurchaseRequestsPage-DPAPzpmm-mDH2IrTl.js.map +1 -0
- package/dist/PurchasesPage-It1GHiXl-eH4IsF_U.js +293 -0
- package/dist/PurchasesPage-It1GHiXl-eH4IsF_U.js.map +1 -0
- package/dist/QueryBuilder-CXaBe6sr.js +478 -0
- package/dist/QueryBuilder-CXaBe6sr.js.map +1 -0
- package/dist/{RoleManagement-BPl2cE27.js → RoleManagement-s8iNx2Mu.js} +131 -142
- package/dist/RoleManagement-s8iNx2Mu.js.map +1 -0
- package/dist/Roles-BIyiic67.js +14 -0
- package/dist/Roles-BIyiic67.js.map +1 -0
- package/dist/SaleCreatePage-C9kFmTvm-B3Y0o4CX.js +544 -0
- package/dist/SaleCreatePage-C9kFmTvm-B3Y0o4CX.js.map +1 -0
- package/dist/SalesPage-D18DCseD-BxktGDRQ.js +315 -0
- package/dist/SalesPage-D18DCseD-BxktGDRQ.js.map +1 -0
- package/dist/{ServerSyncModal-D_oFpv3C.js → ServerSyncModal-92U3xtqI.js} +84 -85
- package/dist/ServerSyncModal-92U3xtqI.js.map +1 -0
- package/dist/SettingsPage-VsxI-ano-DcmtUUEj.js +747 -0
- package/dist/SettingsPage-VsxI-ano-DcmtUUEj.js.map +1 -0
- package/dist/ShowFlywayQuery-D10Olk5Z.js +154 -0
- package/dist/ShowFlywayQuery-D10Olk5Z.js.map +1 -0
- package/dist/{ShowFlywayQuery-DVRCd384.js → ShowFlywayQuery-D1y_4A1u.js} +161 -121
- package/dist/ShowFlywayQuery-D1y_4A1u.js.map +1 -0
- package/dist/ShowQueryHistory-DRBKYDKk.js +313 -0
- package/dist/ShowQueryHistory-DRBKYDKk.js.map +1 -0
- package/dist/StorageUnitsPage-7EqwuMOI-BwUso1Th.js +721 -0
- package/dist/StorageUnitsPage-7EqwuMOI-BwUso1Th.js.map +1 -0
- package/dist/SubMenu-eEDhZUvh.js +317 -0
- package/dist/SubMenu-eEDhZUvh.js.map +1 -0
- package/dist/{TableDetails-Cf_YfnY2.js → TableDetails-BtafRxXb.js} +1069 -831
- package/dist/TableDetails-BtafRxXb.js.map +1 -0
- package/dist/{TableList-D6jnIbnz.js → TableList-Dpo6dO7S.js} +2 -2
- package/dist/{TableList-D6jnIbnz.js.map → TableList-Dpo6dO7S.js.map} +1 -1
- package/dist/TransactionsPage-DrH53pVS-BkhIGB6C.js +746 -0
- package/dist/TransactionsPage-DrH53pVS-BkhIGB6C.js.map +1 -0
- package/dist/TransferCreatePage-CuvoMrYH-DTTfHjz-.js +315 -0
- package/dist/TransferCreatePage-CuvoMrYH-DTTfHjz-.js.map +1 -0
- package/dist/TransfersPage-Cf701t8s-BBbN7cBf.js +476 -0
- package/dist/TransfersPage-Cf701t8s-BBbN7cBf.js.map +1 -0
- package/dist/{TypeConfiguration-37wp-gsl.js → TypeConfiguration-3O6ABrK-.js} +2 -2
- package/dist/{TypeConfiguration-37wp-gsl.js.map → TypeConfiguration-3O6ABrK-.js.map} +1 -1
- package/dist/{UserList-Bc8gYxRL.js → UserList-DgPxsnj2.js} +253 -236
- package/dist/{UserList-Bc8gYxRL.js.map → UserList-DgPxsnj2.js.map} +1 -1
- package/dist/Users-Bpc4Sazd.js +41 -0
- package/dist/Users-Bpc4Sazd.js.map +1 -0
- package/dist/VialsPage-8oAc1yFv-Cl3FUXBJ.js +321 -0
- package/dist/VialsPage-8oAc1yFv-Cl3FUXBJ.js.map +1 -0
- package/dist/{WidgetList-Dw_FmbbE.js → WidgetList-D7YuWfDD.js} +2 -2
- package/dist/{WidgetList-Dw_FmbbE.js.map → WidgetList-D7YuWfDD.js.map} +1 -1
- package/dist/constants-ClZJY2x1-MkSWn6TZ.js +434 -0
- package/dist/constants-ClZJY2x1-MkSWn6TZ.js.map +1 -0
- package/dist/dashboardLayoutUtils-D1xCAxp3.js +405 -0
- package/dist/dashboardLayoutUtils-D1xCAxp3.js.map +1 -0
- package/dist/format-UOyOu75i-D0GyylyQ.js +63 -0
- package/dist/format-UOyOu75i-D0GyylyQ.js.map +1 -0
- package/dist/index.css +1 -1
- package/dist/index.js +4 -752
- package/dist/index.js.map +1 -1
- package/dist/index.lib-Dn8PMkeD.js +862 -0
- package/dist/index.lib-Dn8PMkeD.js.map +1 -0
- package/dist/useFieldErrors-hDG8ox_x-DbSAzrGo.js +28 -0
- package/dist/useFieldErrors-hDG8ox_x-DbSAzrGo.js.map +1 -0
- package/dist/validation-BzlHnL-r-CCJm2utQ.js +125 -0
- package/dist/validation-BzlHnL-r-CCJm2utQ.js.map +1 -0
- package/package.json +5 -4
- package/dist/AccessRights-CHu27ZOw.js +0 -1262
- package/dist/AccessRights-CHu27ZOw.js.map +0 -1
- package/dist/AddEditQueryBuilder-Brdnm6rQ.js +0 -313
- package/dist/AddEditQueryBuilder-Brdnm6rQ.js.map +0 -1
- package/dist/AddLabelModal-DFllBVcd.js +0 -734
- package/dist/AddLabelModal-DFllBVcd.js.map +0 -1
- package/dist/AddMenuConfiguration-BSQLl88V.js +0 -6570
- package/dist/AddMenuConfiguration-BSQLl88V.js.map +0 -1
- package/dist/AddRoleDrawer-CQdzQZLb.js.map +0 -1
- package/dist/AppModal-CtG2GjD_.js +0 -428
- package/dist/AppModal-CtG2GjD_.js.map +0 -1
- package/dist/ChangePasswordModalCore-CDxkeIIM.js.map +0 -1
- package/dist/ConditionConfig-DSsgGEXS.js.map +0 -1
- package/dist/EventsSkeleton-8iiETGcf.js +0 -76
- package/dist/EventsSkeleton-8iiETGcf.js.map +0 -1
- package/dist/FeatureMenu-jl7-Tk6y.js +0 -265
- package/dist/FeatureMenu-jl7-Tk6y.js.map +0 -1
- package/dist/Features-CObdzJp_.js +0 -13
- package/dist/Features-CObdzJp_.js.map +0 -1
- package/dist/FlywayQuery-Cx2sly6g.js +0 -169
- package/dist/FlywayQuery-Cx2sly6g.js.map +0 -1
- package/dist/ImmunizationConfigurationBase-DZGqwda2.js +0 -5910
- package/dist/ImmunizationConfigurationBase-DZGqwda2.js.map +0 -1
- package/dist/ImmunizationConfigurationsList-DdSZicTP.js +0 -344
- package/dist/ImmunizationConfigurationsList-DdSZicTP.js.map +0 -1
- package/dist/LanguagesModal-D6VfaGrl.js +0 -394
- package/dist/LanguagesModal-D6VfaGrl.js.map +0 -1
- package/dist/ManageDynamicFeature-BhONvfC_.js +0 -4189
- package/dist/ManageDynamicFeature-BhONvfC_.js.map +0 -1
- package/dist/ManageEventConfiguration-DV3I5POA.js.map +0 -1
- package/dist/ManageRole-CGYfglpo.js.map +0 -1
- package/dist/ManageTranslation-B4C9-lWD.js +0 -625
- package/dist/ManageTranslation-B4C9-lWD.js.map +0 -1
- package/dist/ManageUser-AY1EUDLI.js.map +0 -1
- package/dist/MobileMenuManagement-CVAKyKDa.js +0 -112
- package/dist/MobileMenuManagement-CVAKyKDa.js.map +0 -1
- package/dist/MobileTypeEventConfigModal-BxLympIO.js.map +0 -1
- package/dist/NotificationFlywayQuery-BY8Zzml_.js +0 -244
- package/dist/NotificationFlywayQuery-BY8Zzml_.js.map +0 -1
- package/dist/NotificationList-C3Vb_jKU.js.map +0 -1
- package/dist/OtherTypeEventConfigModal-BeG1GrUi.js.map +0 -1
- package/dist/QueryBuilder-z7eqfd7D.js +0 -383
- package/dist/QueryBuilder-z7eqfd7D.js.map +0 -1
- package/dist/RoleManagement-BPl2cE27.js.map +0 -1
- package/dist/ServerSyncModal-D_oFpv3C.js.map +0 -1
- package/dist/ShowFlywayQuery-DVRCd384.js.map +0 -1
- package/dist/ShowFlywayQuery-tj42YQAS.js +0 -130
- package/dist/ShowFlywayQuery-tj42YQAS.js.map +0 -1
- package/dist/ShowQueryHistory-BDN0tzHg.js +0 -190
- package/dist/ShowQueryHistory-BDN0tzHg.js.map +0 -1
- package/dist/SubMenu-DYxAPH2Z.js +0 -191
- package/dist/SubMenu-DYxAPH2Z.js.map +0 -1
- package/dist/TableDetails-Cf_YfnY2.js.map +0 -1
- package/dist/Users-CsJ08Kjm.js +0 -40
- package/dist/Users-CsJ08Kjm.js.map +0 -1
- package/dist/dashboardLayoutUtils-Bt5HA96J.js +0 -265
- package/dist/dashboardLayoutUtils-Bt5HA96J.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ServerSyncModal-D_oFpv3C.js","sources":["../src/views/Features/ServerSyncModal.jsx"],"sourcesContent":["/**\n * @author Sanya Srivastava <ssrivastava@argusoft.com>\n * @date 2025-02-24 (Monday)\n */\nimport { execute } from \"@/common/services/GlobalApis\";\nimport { showToast } from \"@/common/toaster/toaster\";\nimport {\n Accordion,\n AccordionDetails,\n AccordionSummary,\n Alert,\n Autocomplete,\n Backdrop,\n Button,\n Checkbox,\n Chip,\n CircularProgress,\n Divider,\n Fade,\n FormControl,\n FormHelperText,\n FormLabel,\n IconButton,\n InputAdornment,\n Modal,\n OutlinedInput,\n Tab,\n Tabs,\n TextField,\n Tooltip,\n Typography,\n} from \"@mui/material\";\nimport Grid from \"@mui/material/Grid2\";\nimport { Box } from \"@mui/system\";\nimport { t } from \"i18next\";\nimport PropTypes from \"prop-types\";\nimport React, { useEffect, useState } from \"react\";\nimport { Controller, useFieldArray, useForm } from \"react-hook-form\";\nimport { api as API } from \"@/common/interceptors/AxiosInterceptor\";\nimport {\n syncMenuConfigFormsWithServer,\n downloadFeature,\n} from \"@/common/services/SyncWithServer\";\nimport { FormConfiguratorService } from \"@/common/services/FormConfiguratorService\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport {\n faArrowsRotate,\n faChevronDown,\n faCircleInfo,\n faDownload,\n faEye,\n faEyeSlash,\n faXmark,\n} from \"@fortawesome/free-solid-svg-icons\";\nimport GeneralUtil from \"@/common/services/util/GeneralUtil\";\nimport InfoBadge from \"@/views/custom-components/InfoBadge\";\nimport AlertPlaceholder from \"@/views/custom-components/AlertPlaceholder\";\nimport PostgresEditor from \"@/views/custom-components/PostgresEditor\";\n\nexport default function ServerSyncModal({\n id,\n navigationState,\n selectedFeature,\n openServerSyncModal,\n openModalFunc,\n}) {\n const [linkedForms, setLinkedForms] = useState();\n const [allRouteMaps, setAllRouteMaps] = useState([]);\n // const [formSyncMap, setFormSyncMap] = useState([]);\n const [serverDetails, setServerDetails] = useState();\n\n const [showPassword, setShowPassword] = useState(false);\n const [currentSelectedMigrationTab, setCurrentSelectedMigrationTab] =\n useState(-1);\n const [loading, setLoading] = useState(false);\n const [selectedMigrationByFormCode, setSelectedMigrationByFormCode] =\n useState({});\n const [syncedMigrations, setSyncedMigrations] = useState([]);\n const [tabValue, setTabValue] = useState(\"SYNC\");\n\n const formCtrl = useForm({\n defaultValues: {\n serverName: \"\",\n formCode: [],\n formDetails: [],\n userName: \"\",\n password: \"\",\n requestMessage: \"\",\n },\n mode: \"onChange\",\n });\n\n const { fields, remove, append, replace } = useFieldArray({\n control: formCtrl.control,\n name: \"formDetails\",\n });\n\n const handleTabValueChange = (event, newValue) => {\n setSelectedMigrationByFormCode({});\n\n const fieldData = [...fields];\n fieldData.forEach((field) => {\n const linkedField = linkedForms.find(\n (f) => f.formCode === field.formCode\n );\n field.migrationList = linkedField.migrationListAll;\n field.migrationListAll = linkedField.migrationListAll;\n });\n\n replace(fieldData);\n setTabValue(newValue);\n };\n\n useEffect(() => {\n (async () => {\n try {\n await fetchForms();\n await fetchServerDet();\n } catch (error) {\n showToast({\n message: error,\n type: \"error\",\n });\n }\n })();\n }, [openServerSyncModal]);\n\n const fetchForms = async () => {\n try {\n const response = (\n await FormConfiguratorService.getAllLinkedFormsByMenuConfigId(id)\n ).data;\n if (response) {\n setAllRouteMaps(response);\n setLinkedForms(() => {\n const responseObj = response;\n const uniqueMap = new Map();\n responseObj.forEach((item) => {\n if (!uniqueMap.has(item.formCode)) {\n uniqueMap.set(item.formCode, {\n sourceFormCode: item.sourceFormCode,\n formName: item.formName,\n formCode: item.formCode,\n versions: JSON.parse(item.versions).filter(\n (v) => v.version !== \"DRAFT\"\n ),\n formUUID: item.uuid,\n builderType: item.builderType,\n migrationList: item.migrationList,\n migrationListAll: item.migrationList,\n });\n }\n });\n\n return Array.from(uniqueMap.values());\n });\n }\n } catch (error) {\n showToast({\n message: error,\n type: \"error\",\n });\n }\n };\n\n const handleServerChanged = async (server) => {\n if (server && linkedForms) {\n const formMasterUUIDs = linkedForms.map((item) => item.formUUID);\n\n try {\n const response = await API.get(\n `sync/migrationUUIDsByListOfFormMasterUUIDSource`,\n {\n params: {\n formMasterUUIDs,\n serverCode: server.code,\n },\n paramsSerializer: {\n serialize: (params) =>\n Object.entries(params)\n .map(([key, value]) =>\n Array.isArray(value)\n ? value\n .map((v) => `${key}=${encodeURIComponent(v)}`)\n .join(\"&\")\n : `${key}=${encodeURIComponent(value)}`\n )\n .join(\"&\"),\n },\n }\n );\n\n setSyncedMigrations([...response.data]);\n } catch (error) {\n console.error(\"Error fetching UUIDs:\", error);\n }\n } else {\n setSyncedMigrations([]);\n }\n\n // const response = (\n // await execute({\n // code: 'medplat_form_get_all_form_sync_map_by_destination_server_code',\n // parameters: {\n // destinationServerCode: serverCode,\n // },\n // })\n // ).data;\n // if (response.result) {\n // let formSyncMapResult = response.result;\n // formSyncMapResult.forEach((fsm) => {\n // fsm.syncVersionMap = JSON.parse(fsm.syncVersionMap) || [];\n // });\n // setFormSyncMap(formSyncMapResult);\n // }\n };\n\n const fetchServerDet = async () => {\n try {\n const response = (\n await execute({\n code: \"fetch_server_details\",\n })\n ).data;\n if (response.result) {\n setServerDetails(response.result);\n }\n } catch (error) {\n showToast({\n message: error,\n type: \"error\",\n });\n }\n };\n\n\n\n const onFormSelectionChange = () => {\n let formCodes = formCtrl.getValues(\"formCode\") || [];\n if (formCodes.length > 0) {\n setCurrentSelectedMigrationTab(formCodes[0]);\n let selectedFormDetails = formCodes\n .map((code) => {\n let form = linkedForms?.find((f) => f.formCode === code);\n return form\n ? {\n formName: form.formName,\n formCode: form.formCode,\n formUUID: form.formUUID,\n migrationList: form.migrationList?.filter(\n (ml) => !syncedMigrations.includes(ml.uuid)\n ),\n migrationListAll: form.migrationList,\n }\n : null;\n })\n .filter(Boolean);\n\n let currentFields = fields.map((field) => field.formCode);\n\n let newForms = selectedFormDetails.filter(\n (form) => !currentFields.includes(form.formCode)\n );\n\n let removedForms = currentFields.filter(\n (code) => !formCodes.includes(code)\n );\n\n newForms.forEach((form) => {\n const formDetails = linkedForms?.find(\n (item) => item.formCode === form.formCode\n );\n const maxVersion = formDetails.versions.reduce((max, current) =>\n parseInt(current.version) > parseInt(max.version) ? current : max\n );\n append({\n formName: form.formName,\n formCode: form.formCode,\n migrationList: form.migrationList,\n migrationListAll: form.migrationList,\n version: maxVersion.version,\n formUUID: form.formUUID,\n builderType: form.builderType,\n });\n });\n\n removedForms.forEach((code) => {\n let index = fields.findIndex((field) => field.formCode === code);\n if (index !== -1) remove(index);\n });\n } else {\n setCurrentSelectedMigrationTab(-1);\n replace([]);\n }\n };\n\n const handleClickShowPassword = () => setShowPassword((show) => !show);\n\n const handleDialogClose = () => {\n openModalFunc(false);\n };\n\n const encrypt = async (encryptionKey, initVector, data) => {\n try {\n return await GeneralUtil.getEncodedData(encryptionKey, initVector, data);\n } catch (error) {\n console.error(error);\n return null;\n }\n };\n\n const getSortedUUIDsByCreatedOn = (data, allowedUUIDs) => {\n return Object.entries(data)\n .filter(([uuid]) => !allowedUUIDs.includes(uuid))\n .sort(([, a], [, b]) => a.createdOn - b.createdOn)\n .map(([uuid]) => uuid);\n };\n\n const onSubmit = async (data) => {\n try {\n setLoading(true);\n const keyIv = await API.get(\"/login/get-key-and-iv\", {\n withCredentials: true,\n });\n const encryptedUserName = await encrypt(\n keyIv.data.key,\n keyIv.data.initVector,\n data.userName\n );\n const encryptedPassword = await encrypt(\n keyIv.data.key,\n keyIv.data.initVector,\n data.password\n );\n const formConfigsData = data.formDetails.map((form) => {\n let migrationUUIDList = getSortedUUIDsByCreatedOn(\n selectedMigrationByFormCode[form.formCode] || {},\n syncedMigrations || []\n );\n\n let obj = {\n formMasterUUID: form.formUUID,\n version: form.version,\n migrationUUIDList,\n builderType: form.builderType,\n };\n return obj;\n });\n\n const routeGraphMap = [];\n\n allRouteMaps.forEach((form) => {\n if (form.sourceFormCode != form.formCode) {\n routeGraphMap.push({ [form.sourceFormCode]: form.formCode });\n }\n });\n\n const requestBody = {\n menuConfigId: id,\n navigationState: navigationState,\n formConfigsData: formConfigsData,\n routeGraphMap: routeGraphMap,\n transactionRequestData: {\n serverCode: data.serverName,\n requestMessage: data.requestMessage,\n featureType: \"FORM_CONFIGURATOR\",\n featureReferenceType: \"FEATURE\",\n featureReferenceId: navigationState,\n },\n authRequestData: {\n userName: encryptedUserName,\n password: encryptedPassword,\n grantType: \"password\",\n clientId: \"imtecho-ui\",\n },\n };\n\n if (tabValue === \"SYNC\") {\n try {\n setLoading(true);\n const syncData = await syncMenuConfigFormsWithServer(requestBody);\n setLoading(false);\n if (syncData.data.isSuccess) {\n showToast({\n type: \"success\",\n message: \"Synced to server successfully.\",\n });\n openModalFunc(false);\n } else {\n showToast({\n type: \"error\",\n message: \"Issue in syncing with server.\",\n });\n console.error(\"error\", syncData.data.error);\n }\n } catch (error) {\n setLoading(false);\n showToast({\n type: \"error\",\n message: \"Sync failed: Unauthorized access\",\n });\n console.error(\"error\", error);\n }\n }\n\n if (tabValue === \"DOWNLOAD\") {\n try {\n setLoading(true);\n const response = await downloadFeature(requestBody);\n const timestamp = Date.now();\n const filename = `V${timestamp}__${requestBody.navigationState}__feature.json`;\n\n const blob = new Blob([response.data], { type: \"application/json\" });\n const url = window.URL.createObjectURL(blob);\n\n const link = document.createElement(\"a\");\n link.href = url;\n link.setAttribute(\"download\", filename);\n document.body.appendChild(link);\n link.click();\n link.remove();\n\n window.URL.revokeObjectURL(url);\n setLoading(false);\n } catch (error) {\n setLoading(false);\n showToast({\n type: \"error\",\n message: \"Download failed\",\n });\n console.error(\"error\", error);\n }\n }\n setLoading(false);\n } catch (error) {\n setLoading(false);\n console.error(\"error\", error);\n }\n };\n\n const handleSelectMigrationByForm = (event, formCode, migration) => {\n let existingSelectedMigration = { ...selectedMigrationByFormCode };\n if (event.target.checked) {\n if (\n Object.prototype.hasOwnProperty.call(\n existingSelectedMigration,\n formCode\n )\n ) {\n existingSelectedMigration[formCode][migration.uuid] = migration;\n } else {\n existingSelectedMigration[formCode] = {};\n existingSelectedMigration[formCode][migration.uuid] = migration;\n }\n } else {\n delete existingSelectedMigration[formCode][migration.uuid];\n }\n setSelectedMigrationByFormCode({ ...existingSelectedMigration });\n };\n\n // const formatDateForVersion = (dateString) => {\n // const date = new Date(dateString);\n // const day = String(date.getDate()).padStart(2, '0');\n // const month = String(date.getMonth() + 1).padStart(2, '0');\n // const year = date.getFullYear();\n // let hours = date.getHours();\n // const minutes = String(date.getMinutes()).padStart(2, '0');\n // hours = String(hours).padStart(2, '0');\n // return `${day}/${month}/${year} ${hours}:${minutes}`;\n // };\n\n // const truncateString = (str, maxLength) => {\n // if (!str) {\n // return 'Not available';\n // }\n // if (str.length > maxLength) {\n // return str.slice(0, maxLength - 3) + '...';\n // }\n // return str;\n // };\n\n // const checkIfVersionSynced = (formCode, version) => {\n // const form = formSyncMap.find((fsm) => fsm.formCode === formCode);\n // if (form) {\n // const syncedform = form?.syncVersionMap?.filter((f) => f.sourceVersion === version);\n // if (syncedform && syncedform.length > 0) {\n // const maxSyncedForm = syncedform.reduce((max, current) =>\n // parseInt(current.destinationVersion) > parseInt(max.destinationVersion) ? current : max\n // );\n // return `Version ${maxSyncedForm.sourceVersion} was synced with Version ${maxSyncedForm.destinationVersion} on (${formatDateForVersion(maxSyncedForm.createdOn)})`;\n // }\n // }\n // return '';\n // };\n\n const formatDate = (dateString) => {\n const date = new Date(dateString);\n\n const day = String(date.getDate()).padStart(2, \"0\");\n const month = String(date.getMonth() + 1).padStart(2, \"0\");\n const year = date.getFullYear();\n\n let hours = date.getHours();\n const minutes = String(date.getMinutes()).padStart(2, \"0\");\n\n hours = String(hours).padStart(2, \"0\");\n\n return `${day}/${month}/${year} ${hours}:${minutes}`;\n };\n\n return (\n <Modal\n open={openServerSyncModal}\n slots={{ backdrop: Backdrop }}\n slotProps={{\n backdrop: {\n timeout: 500,\n },\n }}\n PaperProps={{\n style: {\n borderRadius: \"8px\",\n },\n }}\n >\n <Fade in={openServerSyncModal}>\n <Box\n sx={{\n position: \"absolute\",\n top: \"50%\",\n left: \"50%\",\n padding: \"10px 25px\",\n transform: \"translate(-50%, -50%)\",\n width: \"80%\",\n maxHeight: \"90%\",\n scrollbarWidth: \"none\",\n overflowY: \"scroll\",\n bgcolor: \"background.paper\",\n borderRadius: \"12px\",\n boxShadow: 12,\n transition: \"all 0.5s ease !important\",\n }}\n >\n <Box\n sx={{\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n }}\n >\n <Typography variant=\"h6\" className=\"text-customBlue\">\n {t(\"Sync\")} {selectedFeature?.name}\n </Typography>\n <IconButton onClick={handleDialogClose}>\n <FontAwesomeIcon icon={faXmark} />\n </IconButton>\n </Box>\n <form noValidate onSubmit={formCtrl.handleSubmit(onSubmit)}>\n <Box sx={{ my: 2 }}>\n <Backdrop\n sx={(theme) => ({\n color: \"#fff\",\n zIndex: theme.zIndex.drawer + 1,\n })}\n open={loading}\n >\n <Box\n sx={{\n backgroundColor: \"white\",\n p: 3,\n color: \"black\",\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n borderRadius: \"10px\",\n }}\n >\n <CircularProgress color=\"inherit\" />\n <Typography sx={{ ml: 2 }}>\n Syncing feature, it may take some time, please wait...\n </Typography>\n </Box>\n </Backdrop>\n <Grid container spacing={2}>\n <Grid size={5} container>\n <Grid size={12}>\n <Tabs\n value={tabValue}\n onChange={handleTabValueChange}\n variant=\"fullWidth\"\n >\n <Tab label=\"SYNC\" value=\"SYNC\" />\n <Tab label=\"DOWNLOAD\" value=\"DOWNLOAD\" />\n </Tabs>\n </Grid>\n {[\"SYNC\"].includes(tabValue) && (\n <>\n <Grid size={12}>\n <Divider>\n <Chip label=\"Server and form details\" size=\"small\" />\n </Divider>\n </Grid>\n <Grid size={12}>\n <FormControl fullWidth>\n <FormLabel required>Select server</FormLabel>\n <Controller\n name=\"serverName\"\n control={formCtrl.control}\n rules={{\n required: {\n value: true,\n message: `Select server`,\n },\n }}\n render={({\n field: { onChange, value },\n fieldState: { error },\n }) => {\n const selectedServers = serverDetails?.filter(\n (server) => value?.includes(server.code)\n );\n return (\n <Autocomplete\n fullWidth\n size=\"small\"\n options={serverDetails || []}\n getOptionLabel={(option) =>\n option.serverDetails || \"\"\n }\n value={selectedServers}\n getOptionDisabled={(option) =>\n value?.includes(option.code)\n }\n onChange={(_, newValue) => {\n const serverCodes = newValue?.code;\n onChange(serverCodes);\n handleServerChanged(newValue);\n }}\n renderInput={(params) => (\n <TextField\n {...params}\n placeholder=\"Select server\"\n variant=\"outlined\"\n error={error}\n helperText={error?.message}\n />\n )}\n />\n );\n }}\n />\n </FormControl>\n </Grid>\n </>\n )}\n {[\"DOWNLOAD\", \"SYNC\"].includes(tabValue) && (\n <>\n <Grid size={12}>\n <FormControl fullWidth>\n <FormLabel required>\n {t(\"Select\")} {t(\"forms\")}\n </FormLabel>\n <Controller\n name=\"formCode\"\n rules={{\n required: {\n value: true,\n message: `Select server`,\n },\n }}\n control={formCtrl.control}\n render={({\n field: { onChange, value },\n fieldState: { error },\n }) => {\n const selectedObjects = linkedForms?.filter(\n (form) => value?.includes(form.formCode)\n );\n return (\n <Autocomplete\n multiple\n size=\"small\"\n options={linkedForms || []}\n disableCloseOnSelect\n getOptionLabel={(option) =>\n option.formName || \"\"\n }\n value={selectedObjects}\n getOptionDisabled={(option) =>\n value?.includes(option.formCode)\n }\n onChange={(_, newValue) => {\n const formCodes = newValue.map(\n (item) => item.formCode\n );\n onChange(formCodes);\n onFormSelectionChange();\n }}\n renderInput={(params) => (\n <TextField\n {...params}\n placeholder=\"Select all forms to sync\"\n variant=\"outlined\"\n error={error}\n helperText={error?.message}\n />\n )}\n />\n );\n }}\n />\n </FormControl>\n </Grid>\n </>\n )}\n {[\"SYNC\"].includes(tabValue) && (\n <>\n <Grid size={12}>\n <Divider>\n <Chip\n label={\n <Box>\n <Box component={\"span\"} sx={{ mr: 0.5 }}>\n User authentication details\n </Box>\n <Tooltip title=\"Users with admin role can perform the sync operation\">\n <FontAwesomeIcon icon={faCircleInfo} />\n </Tooltip>\n </Box>\n }\n size=\"small\"\n />\n </Divider>\n </Grid>\n <Grid size={12}>\n <FormControl variant=\"outlined\" fullWidth>\n <FormLabel required>\n {t(\"Username\")}\n </FormLabel>\n <Controller\n name=\"userName\"\n rules={{\n required: {\n value: true,\n message: `Enter username`,\n },\n }}\n control={formCtrl.control}\n render={({\n field,\n fieldState: { error },\n }) => (\n <TextField\n {...field}\n size=\"small\"\n placeholder=\"Enter username\"\n variant=\"outlined\"\n autoComplete=\"off\"\n error={!!error}\n helperText={error?.message}\n />\n )}\n />\n </FormControl>\n </Grid>\n <Grid size={12}>\n <FormControl fullWidth>\n <FormLabel\n required\n color=\"text.primary\"\n sx={{ mb: 0.5 }}\n >\n {t(\"Password\")}\n </FormLabel>\n <Controller\n name=\"password\"\n rules={{\n required: {\n value: true,\n message: `Enter password`,\n },\n }}\n control={formCtrl.control}\n errors={formCtrl.formState.errors}\n defaultValue=\"\"\n render={({\n field: { onChange, value },\n fieldState: { error },\n }) => (\n <Box sx={{ mb: 1 }}>\n <OutlinedInput\n fullWidth\n type={showPassword ? \"text\" : \"password\"}\n value={value}\n size=\"small\"\n placeholder=\"Enter password\"\n onChange={onChange}\n error={error}\n autoComplete=\"off\"\n endAdornment={\n <InputAdornment position=\"end\">\n <IconButton\n aria-label={\n showPassword\n ? \"hide the password\"\n : \"display the password\"\n }\n onClick={handleClickShowPassword}\n onMouseDown={(e) => e.preventDefault()}\n onMouseUp={(e) => e.preventDefault()}\n edge=\"end\"\n >\n {showPassword ? (\n <FontAwesomeIcon\n icon={faEyeSlash}\n size=\"xs\"\n />\n ) : (\n <FontAwesomeIcon\n icon={faEye}\n size=\"xs\"\n />\n )}\n </IconButton>\n </InputAdornment>\n }\n />\n {error && (\n <FormHelperText error={error}>\n {error?.message}\n </FormHelperText>\n )}\n </Box>\n )}\n />\n </FormControl>\n </Grid>\n <Grid size={12}>\n <FormControl fullWidth>\n <FormLabel required>\n {t(\"Request\")} {t(\"message\")}\n </FormLabel>\n <Controller\n name=\"requestMessage\"\n rules={{\n required: {\n value: true,\n message: `Enter request message`,\n },\n }}\n control={formCtrl.control}\n render={({ field, fieldState: { error } }) => (\n <TextField\n multiline\n rows={4}\n size=\"small\"\n placeholder=\"Enter request message\"\n {...field}\n error={error}\n helperText={error?.message}\n />\n )}\n />\n </FormControl>\n </Grid>\n </>\n )}\n </Grid>\n <Grid size={7}>\n {/* {fields?.length > 0 && (\n <Grid size={12}>\n <FormControl variant=\"outlined\" className=\"m-3 flex flex-row\">\n <Box className=\"w-[97%] m-2\" sx={{ padding: '10px' }}>\n <TableContainer component={Paper} sx={{ maxHeight: '300px', overflowY: 'auto' }}>\n <Table>\n <TableHead sx={{ backgroundColor: 'background.default' }}>\n <TableRow>\n <TableCell align=\"center\">\n <strong>{t('Name')}</strong>\n </TableCell>\n <TableCell align=\"center\">\n <strong>{t('Code')}</strong>\n </TableCell>\n <TableCell align=\"center\" width={'50%'}>\n <strong>{t('Version')}</strong>\n </TableCell>\n </TableRow>\n </TableHead>\n <TableBody>\n {fields?.map((selected, index) => {\n const formDet = linkedForms?.find((item) => item.formCode === selected.formCode);\n return (\n <TableRow key={selected.formCode}>\n <TableCell align=\"center\">{formDet?.formName}</TableCell>\n <TableCell align=\"center\">{selected.formCode}</TableCell>\n <TableCell align=\"center\">\n <Controller\n id=\"formDetails\"\n name={`formDetails.${index}.version`}\n control={formCtrl.control}\n render={({ field: { onChange, value }, fieldState: { error } }) => (\n <>\n <Autocomplete\n size=\"small\"\n disabled\n options={formDet?.versions || []}\n getOptionLabel={(option) => option.version || ''}\n renderOption={(props, option) => (\n <li {...props}>\n <Box sx={{ width: '100%' }}>\n <Box\n sx={{\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n }}\n >\n <Box>{option?.version}</Box>\n <Box sx={{ pl: 2, color: '#444', fontSize: '0.8rem' }}>\n <kbd>({formatDateForVersion(option?.createdOn)})</kbd>\n </Box>\n </Box>\n <Box\n sx={{\n float: 'right',\n color: option.versionDescription ? '#444' : '#999',\n fontSize: '0.8rem',\n }}\n >\n <Tooltip title={option.versionDescription} arrow>\n ({truncateString(option.versionDescription, 30)})\n </Tooltip>\n </Box>\n </Box>\n </li>\n )}\n value={\n formDet?.versions?.find((option) => option.version === value) || null\n }\n clearOnBlur\n onChange={(_, newValue) => onChange(newValue ? newValue.version : null)}\n renderInput={(params) => (\n <TextField\n {...params}\n placeholder=\"Select Versions\"\n variant=\"outlined\"\n error={!!error}\n helperText={error ? error.message : ''}\n />\n )}\n />\n <FormHelperText sx={{ color: 'info.dark' }}>\n {value && checkIfVersionSynced(selected.formCode, value)}\n </FormHelperText>\n </>\n )}\n />\n </TableCell>\n </TableRow>\n );\n })}\n </TableBody>\n </Table>\n </TableContainer>\n </Box>\n </FormControl>\n </Grid>\n )} */}\n <Box>\n {fields.length > 0 ? (\n <React.Fragment>\n <Alert sx={{ mt: 1 }} severity=\"info\">\n Please select the migration corresponding to the\n respective form for synchronization\n </Alert>\n <Tabs\n value={currentSelectedMigrationTab}\n onChange={(_, value) => {\n setCurrentSelectedMigrationTab(value);\n }}\n >\n {fields?.map((field) => (\n <Tab\n key={field.formUUID}\n value={field.formCode}\n label={\n <InfoBadge\n label={field.formCode}\n value={`V${field.version}`}\n color=\"info.main\"\n tooltipValue={`Version ${field.version} of ${field.formName} will be synced`}\n showTooltip={true}\n valueSize={30}\n fontSize=\"0.8rem\"\n />\n }\n />\n ))}\n </Tabs>\n <Divider sx={{ mb: 1 }} />\n {currentSelectedMigrationTab != -1 &&\n (() => {\n const currentForm = fields.find(\n (field) =>\n field.formCode === currentSelectedMigrationTab\n );\n return (\n <Grid\n spacing={2}\n container\n key={currentForm.formCode}\n sx={{ maxHeight: \"50vh\", overflowY: \"scroll\" }}\n >\n {currentForm?.migrationList.length === 0 && (\n <Grid size={12}>\n <AlertPlaceholder height=\"250px\">\n No migration queries present for (\n {currentForm.formName})\n </AlertPlaceholder>\n </Grid>\n )}\n {currentForm?.migrationList?.map(\n (migration) => (\n <Grid\n size={12}\n container\n key={migration.uuid}\n >\n <Grid size={1}>\n <Checkbox\n value={\n Object.keys(\n selectedMigrationByFormCode[\n currentSelectedMigrationTab\n ] || {}\n )?.includes(migration.uuid) &&\n (!syncedMigrations?.includes(\n migration.uuid\n ) ||\n tabValue == \"DOWNLOAD\")\n }\n checked={\n Object.keys(\n selectedMigrationByFormCode[\n currentSelectedMigrationTab\n ] || {}\n )?.includes(migration.uuid) &&\n (!syncedMigrations?.includes(\n migration.uuid\n ) ||\n tabValue == \"DOWNLOAD\")\n }\n disabled={\n syncedMigrations?.includes(\n migration.uuid\n ) && tabValue === \"SYNC\"\n }\n sx={{\n \"& .MuiSvgIcon-root\": {\n fontSize: 32,\n },\n mr: 1,\n }}\n onChange={(e) => {\n handleSelectMigrationByForm(\n e,\n currentSelectedMigrationTab,\n migration\n );\n }}\n />\n </Grid>\n <Grid size={11}>\n <Accordion\n slotProps={{\n transition: { unmountOnExit: true },\n }}\n >\n <AccordionSummary\n expandIcon={\n <FontAwesomeIcon\n icon={faChevronDown}\n />\n }\n aria-controls=\"panel1-content\"\n id=\"panel1-header\"\n sx={{\n backgroundColor:\n \"background.default\",\n }}\n >\n <Typography component=\"span\">\n Created on :{\" \"}\n {formatDate(migration.createdOn)}\n <Chip\n sx={{ ml: 2 }}\n size=\"small\"\n color={\n migration.isExecuted\n ? \"success\"\n : \"warning\"\n }\n label={\n migration.isExecuted\n ? \"Executed\"\n : \"Not Executed\"\n }\n />\n {migration.isExecuted &&\n migration.isError && (\n <Chip\n sx={{ ml: 2 }}\n size=\"small\"\n color={\"error\"}\n label={\"Error\"}\n />\n )}\n {syncedMigrations?.includes(\n migration.uuid\n ) &&\n tabValue === \"SYNC\" && (\n <Chip\n sx={{ ml: 2 }}\n size=\"small\"\n color={\"info\"}\n label={\"Synced\"}\n />\n )}\n </Typography>\n </AccordionSummary>\n <AccordionDetails>\n <PostgresEditor\n mode=\"READ_ONLY\"\n defaultValue={migration?.query}\n />\n </AccordionDetails>\n </Accordion>\n </Grid>\n </Grid>\n )\n )}\n </Grid>\n );\n })()}\n </React.Fragment>\n ) : (\n <Box sx={{ mt: 1 }}>\n <AlertPlaceholder height=\"250px\">\n Please select forms to sync\n </AlertPlaceholder>\n </Box>\n )}\n </Box>\n </Grid>\n </Grid>\n </Box>\n <Box\n sx={{\n my: 1,\n display: \"flex\",\n justifyContent: \"end\",\n alignItems: \"center\",\n }}\n >\n {[\"SYNC\"].includes(tabValue) && (\n <Button\n type=\"submit\"\n startIcon={\n <FontAwesomeIcon size=\"lg\" icon={faArrowsRotate} />\n }\n color=\"success\"\n size=\"small\"\n variant=\"contained\"\n sx={{ mr: 1 }}\n >\n Start Syncing\n </Button>\n )}\n\n {[\"DOWNLOAD\"].includes(tabValue) && (\n <Button\n type=\"submit\"\n startIcon={<FontAwesomeIcon size=\"lg\" icon={faDownload} />}\n color=\"success\"\n size=\"small\"\n variant=\"contained\"\n sx={{ mr: 1 }}\n >\n Download Config\n </Button>\n )}\n </Box>\n </form>\n </Box>\n </Fade>\n </Modal>\n );\n}\n\nServerSyncModal.propTypes = {\n id: PropTypes.any,\n selectedFeature: PropTypes.any,\n navigationState: PropTypes.any,\n openServerSyncModal: PropTypes.any,\n openModalFunc: PropTypes.any,\n};\n"],"names":["ServerSyncModal","id","navigationState","selectedFeature","openServerSyncModal","openModalFunc","linkedForms","setLinkedForms","useState","allRouteMaps","setAllRouteMaps","serverDetails","setServerDetails","showPassword","setShowPassword","currentSelectedMigrationTab","setCurrentSelectedMigrationTab","loading","setLoading","selectedMigrationByFormCode","setSelectedMigrationByFormCode","syncedMigrations","setSyncedMigrations","tabValue","setTabValue","formCtrl","useForm","fields","remove","append","replace","useFieldArray","handleTabValueChange","event","newValue","fieldData","field","linkedField","f","useEffect","fetchForms","fetchServerDet","error","showToast","response","FormConfiguratorService","responseObj","uniqueMap","item","v","handleServerChanged","server","formMasterUUIDs","API","params","key","value","execute","onFormSelectionChange","formCodes","selectedFormDetails","code","form","_a","ml","currentFields","newForms","removedForms","maxVersion","max","current","index","handleClickShowPassword","show","handleDialogClose","encrypt","encryptionKey","initVector","data","GeneralUtil","getSortedUUIDsByCreatedOn","allowedUUIDs","uuid","a","b","onSubmit","keyIv","encryptedUserName","encryptedPassword","formConfigsData","migrationUUIDList","routeGraphMap","requestBody","syncData","syncMenuConfigFormsWithServer","downloadFeature","filename","blob","url","link","handleSelectMigrationByForm","formCode","migration","existingSelectedMigration","formatDate","dateString","date","day","month","year","hours","minutes","jsx","Modal","Backdrop","Fade","jsxs","Box","Typography","t","IconButton","FontAwesomeIcon","faXmark","theme","CircularProgress","Grid","Tabs","Tab","Fragment","Divider","Chip","FormControl","FormLabel","Controller","onChange","selectedServers","Autocomplete","option","_","serverCodes","TextField","selectedObjects","Tooltip","faCircleInfo","OutlinedInput","InputAdornment","e","faEyeSlash","faEye","FormHelperText","React","Alert","InfoBadge","currentForm","AlertPlaceholder","Checkbox","_b","Accordion","AccordionSummary","faChevronDown","AccordionDetails","PostgresEditor","Button","faArrowsRotate","faDownload","PropTypes"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ShowFlywayQuery-DVRCd384.js","sources":["../src/views/Events/ShowFlywayQuery.jsx"],"sourcesContent":["import React, { useState, useEffect, useCallback } from \"react\";\nimport PropTypes from \"prop-types\";\nimport {\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n Button,\n TextField,\n} from \"@mui/material\";\nimport { showToast } from \"@/common/toaster/toaster\";\nimport CustomConfirmationModal from \"@/views/custom-components/CustomConfirmationModal\";\nimport moment from \"moment/moment\";\nimport useTrackEvent from \"@/hooks/useTrackEvent\";\nimport { useTranslateProvider } from \"@/common/languageTranslator/TranslationContext\";\n\n/**\n * A React functional component that displays a configured Flyway query.\n * @module ShowFlywayQuery\n * @param {Object} props - Component properties.\n * @param {Object} props.configuredQuery - The query configuration object to display.\n * @param {boolean} props.open - Boolean flag indicating if the component should be visible.\n * @param {function} props.onClose - Callback function to close the component.\n */\n\nconst ShowFlywayQuery = ({ configuredQuery, open, onClose, dataTestId }) => {\n const [text, setText] = useState(\"\");\n const [isPublicKeyword, setIsPublicKeyword] = useState(false);\n const { translate } = useTranslateProvider();\n\n const [openConfirm, setOpenConfirm] = useState(false);\n\n /**\n *\n * Generates a SQL query string based on the `configuredQuery` object.\n * @function generateQueryText\n * @param {Object} configuredQuery - The query configuration object used to generate the SQL query.\n * @param {string} configuredQuery.code - The unique code for the query.\n * @param {string} configuredQuery.uuid - The unique identifier for the query.\n * @param {number} configuredQuery.createdBy - The ID of the user who created the query.\n * @param {string} [configuredQuery.params] - The parameters for the query.\n * @param {string} configuredQuery.query - The actual SQL query text.\n * @param {string} [configuredQuery.description] - A description of the query.\n * @param {boolean} [configuredQuery.returnsResultSet] - Flag indicating if the query returns a result set.\n * @param {string} [configuredQuery.state] - The state of the query (e.g., 'ACTIVE').\n * @returns {void}\n */\n\n const generateQueryText = useCallback(() => {\n const publicKeyword = configuredQuery?.configJson?.includes(\"public\");\n setIsPublicKeyword(publicKeyword);\n // Delete existing event configuration\n let queryText = `DELETE FROM EVENT_CONFIGURATION WHERE uuid = '${configuredQuery.uuid}';\\n\\n`;\n\n // Insert new event configuration\n queryText += `INSERT INTO EVENT_CONFIGURATION (created_by, created_on, modified_by, modified_on, day, description, event_type, event_type_detail_id, form_type_id, hour, minute, name, config_json, state, trigger_when, event_type_detail_code, uuid)\\nVALUES (\\n`;\n queryText += `${configuredQuery.createdBy}, current_date, ${configuredQuery.createdBy}, current_date, `;\n\n queryText +=\n configuredQuery.day !== undefined && configuredQuery.day !== null\n ? `${configuredQuery.day}, `\n : \"null, \";\n queryText += configuredQuery.description\n ? `'${configuredQuery.description.replace(/'/g, \"''\")}', `\n : \"null, \";\n queryText += `'${configuredQuery.eventType}', `;\n queryText +=\n configuredQuery.eventTypeDetailId !== undefined &&\n configuredQuery.eventTypeDetailId !== null\n ? `${configuredQuery.eventTypeDetailId}, `\n : \"null, \";\n queryText +=\n configuredQuery.formTypeId !== undefined &&\n configuredQuery.formTypeId !== null\n ? `${configuredQuery.formTypeId}, `\n : \"null, \";\n queryText +=\n configuredQuery.hour !== undefined && configuredQuery.hour !== null\n ? `${configuredQuery.hour}, `\n : \"null, \";\n queryText +=\n configuredQuery.minute !== undefined && configuredQuery.minute !== null\n ? `${configuredQuery.minute}, `\n : \"null, \";\n queryText += `'${configuredQuery.name.replace(/'/g, \"''\")}', `;\n queryText += `'${configuredQuery.configJson.replace(/'/g, \"''\")}', `;\n queryText += `'${configuredQuery.state}', `;\n queryText +=\n configuredQuery.trigerWhen !== undefined &&\n configuredQuery.trigerWhen !== null\n ? `'${configuredQuery.trigerWhen}', `\n : \"null, \";\n queryText +=\n configuredQuery.eventTypeDetailCode !== undefined &&\n configuredQuery.eventTypeDetailCode !== null\n ? `${configuredQuery.eventTypeDetailCode}, `\n : \"null, \";\n queryText += `'${configuredQuery.uuid}');\\n`;\n\n if (\n configuredQuery.eventType === \"TIMMER_BASED\" &&\n configuredQuery.state !== \"INACTIVE\"\n ) {\n let nextDate = moment();\n switch (configuredQuery.trigerWhen) {\n case \"MONTHLY\":\n nextDate.add(1, \"months\").set({\n date: configuredQuery.day,\n hour: configuredQuery.hour || 0,\n minute: configuredQuery.minute || 0,\n second: 0,\n });\n break;\n case \"DAILY\":\n nextDate.add(getNextDate(configuredQuery), \"days\").set({\n hour: configuredQuery.hour || 0,\n minute: configuredQuery.minute || 0,\n second: 0,\n });\n break;\n case \"HOURLY\":\n nextDate\n .add(1, \"hours\")\n .set({ minute: getNextDate(configuredQuery), second: 0 });\n break;\n case \"MINUTE\":\n nextDate.add(configuredQuery.minute, \"minutes\").set({ second: 0 });\n break;\n default:\n }\n\n queryText += `\\nDELETE FROM TIMER_EVENT WHERE event_config_uuid = '${configuredQuery.uuid}' AND status = 'NEW';\\n\\n`;\n queryText += `INSERT INTO timer_event (event_config_uuid, processed, status, type, system_trigger_on)\\nVALUES (\\n`;\n queryText += `'${configuredQuery.uuid}', false, 'NEW', 'TIMER_EVENT', '${nextDate.format(\"MM-DD-yyyy HH:mm:ss\")}');\\n`;\n }\n\n // Handle notification configurations\n if (configuredQuery.configJson !== null) {\n const notificationConfigs = JSON.parse(configuredQuery.configJson);\n let firstDelete = true;\n\n notificationConfigs.forEach((config) => {\n if (config.conditions !== null && config.conditions.length > 0) {\n config.conditions.forEach((condition) => {\n if (\n condition.notificaitonConfigsType !== null &&\n condition.notificaitonConfigsType.length > 0\n ) {\n if (firstDelete) {\n queryText += `\\nDELETE FROM EVENT_CONFIGURATION_TYPE WHERE event_config_uuid = '${configuredQuery.uuid}';\\n`;\n firstDelete = false;\n }\n condition.notificaitonConfigsType.forEach((configType) => {\n queryText += `\\nINSERT INTO EVENT_CONFIGURATION_TYPE (id, base_date_field_name, event_config_uuid, day, email_subject, email_subject_parameter, hour, minute, mobile_notification_type, template, template_parameter, triger_when, type, user_field_name, family_field_name, member_field_name, query_master_id, query_master_param_json, query_code, sms_config_json, push_notification_config_json)\\nVALUES (\\n`;\n queryText += `'${configType.id}', `;\n queryText += configType.baseDateFieldName\n ? `'${configType.baseDateFieldName}', `\n : \"null, \";\n queryText += `'${configuredQuery.uuid}', `;\n queryText +=\n configType.day !== undefined && configType.day !== null\n ? `${configType.day}, `\n : \"null, \";\n queryText += configType.emailSubject\n ? `'${configType.emailSubject.replace(/'/g, \"''\")}', `\n : \"null, \";\n queryText += configType.emailSubjectParameter\n ? `'${configType.emailSubjectParameter}', `\n : \"null, \";\n queryText +=\n configType.hour !== undefined && configType.hour !== null\n ? `${configType.hour}, `\n : \"null, \";\n queryText +=\n configType.miniute !== undefined &&\n configType.miniute !== null\n ? `${configType.miniute}, `\n : \"null, \";\n queryText +=\n configType.mobileNotificationType !== undefined &&\n configType.mobileNotificationType !== null\n ? `${configType.mobileNotificationType}, `\n : \"null, \";\n queryText += configType.template\n ? `'${configType.template.replace(/'/g, \"''\")}', `\n : \"null, \";\n queryText += configType.templateParameter\n ? `'${configType.templateParameter.replace(/'/g, \"''\")}', `\n : \"null, \";\n queryText += configType.trigerWhen\n ? `'${configType.trigerWhen}', `\n : \"null, \";\n queryText += configType.type\n ? `'${configType.type}', `\n : \"null, \";\n queryText += configType.userFieldName\n ? `'${configType.userFieldName}', `\n : \"null, \";\n queryText += configType.familyFieldName\n ? `'${configType.familyFieldName}', `\n : \"null, \";\n queryText += configType.memberFieldName\n ? `'${configType.memberFieldName}', `\n : \"null, \";\n queryText +=\n configType.queryMasterId !== undefined &&\n configType.queryMasterId !== null\n ? `${configType.queryMasterId}, `\n : \"null, \";\n queryText +=\n configType.queryMasterParamJson !== undefined &&\n configType.queryMasterParamJson !== null\n ? `'${JSON.stringify(configType.queryMasterParamJson).replace(/'/g, \"''\")}', `\n : \"null, \";\n queryText += configType.queryCode\n ? `'${configType.queryCode}', `\n : \"null, \";\n queryText +=\n configType.smsConfigJson !== undefined &&\n configType.smsConfigJson !== null\n ? `'${JSON.stringify(configType.smsConfigJson).replace(/'/g, \"''\")}', `\n : \"null, \";\n queryText +=\n configType.pushNotificationConfigJson !== undefined &&\n configType.pushNotificationConfigJson !== null\n ? `'${JSON.stringify(configType.pushNotificationConfigJson).replace(/'/g, \"''\")}'`\n : \"null\";\n queryText += \");\\n\";\n\n // Handle mobile notification configs\n if (\n configType.mobileNotificationConfigs &&\n configType.mobileNotificationConfigs.length > 0\n ) {\n queryText += `\\nDELETE FROM EVENT_MOBILE_CONFIGURATION WHERE notification_type_config_id = '${configType.id}';\\n`;\n configType.mobileNotificationConfigs.forEach(\n (mobileConfig) => {\n queryText += `\\nINSERT INTO EVENT_MOBILE_CONFIGURATION (id, notification_code, notification_type_config_id, number_of_days_added_for_due_date, number_of_days_added_for_expiry_date, number_of_days_added_for_on_date)\\nVALUES (\\n`;\n queryText += `'${mobileConfig.id}', '${mobileConfig.notificationCode}', '${mobileConfig.notificationTypeConfigId}', ${mobileConfig.numberOfDaysAddedForDueDate}, ${mobileConfig.numberOfDaysAddedForExpiryDate}, ${mobileConfig.numberOfDaysAddedForOnDate});\\n`;\n }\n );\n }\n });\n }\n });\n }\n });\n }\n\n // Insert sync system configuration master\n let eventConfigObj = {\n id: configuredQuery.id,\n name: configuredQuery.name,\n description: configuredQuery.description,\n eventType: configuredQuery.eventType,\n eventTypeDetailId: configuredQuery.eventTypeDetailId,\n formTypeId: configuredQuery.formTypeId,\n eventTypeDetailCode: configuredQuery.eventTypeDetailCode,\n trigerWhen: configuredQuery.trigerWhen,\n day: configuredQuery.day,\n hour: configuredQuery.hour,\n minute: configuredQuery.minute,\n state: configuredQuery.state,\n createdBy: configuredQuery.createdBy,\n createdOn: moment().valueOf(),\n notificationConfigDetails: JSON.parse(configuredQuery.configJson),\n status: null,\n completionTime: null,\n configJson: null,\n uuid: configuredQuery.uuid,\n };\n\n queryText += `\\nINSERT INTO SYNC_SYSTEM_CONFIGURATION_MASTER (feature_type, config_json, created_on, created_by, feature_uuid, feature_name)\\nVALUES (\\n`;\n queryText += `'EVENT_BUILDER', '${JSON.stringify(eventConfigObj).replace(/'/g, \"''\")}', current_date, ${configuredQuery.createdBy}, '${configuredQuery.uuid}', '${configuredQuery.name}');\\n`;\n setText(queryText);\n }, [configuredQuery]);\n\n /**\n *\n * Copies the generated query text to the clipboard and displays a success message.\n * @function copyQuery\n * @returns {void}\n */\n\n const getNextDate = function (eventObj) {\n const now = new Date();\n const eventDate = new Date(\n now.getFullYear(),\n now.getMonth(),\n now.getDate(),\n eventObj.hour,\n eventObj.minute\n );\n\n if (eventDate > now) {\n return 0;\n } else {\n return 1;\n }\n };\n\n const copyQuery = () => {\n navigator?.clipboard?.writeText(text).then(() => {\n showToast({ message: \"Query Copied\", type: \"success\" });\n onClose();\n });\n };\n\n /**\n * Triggers a download operation and toggles the confirmation dialog visibility.\n * The function assumes that `download` and `setOpenConfirm` are available in the current scope.\n * @function askForConfirmation\n * @returns {void}\n */\n\n const askForConfirmation = () => {\n download();\n setOpenConfirm((cur) => !cur);\n };\n\n const trackEvent = useTrackEvent();\n\n /**\n * Creates and triggers a download of a text file containing the query text.\n *\n * @function download\n * @returns {void}\n */\n\n const download = async () => {\n if (window.showSaveFilePicker) {\n try {\n const options = {\n suggestedName: `V${new Date().getTime()}__CHANGE_IN_${configuredQuery.code}.sql`,\n types: [\n {\n description: \"SQL Files\",\n accept: { \"text/plain\": [\".sql\"] },\n },\n ],\n };\n const handle = await window.showSaveFilePicker(options);\n const writable = await handle.createWritable();\n await writable.write(text);\n await writable.close();\n const blobSizeInKB = (\n new Blob([text], { type: \"text/plain\" }).size / 1024\n ).toFixed(2);\n trackEvent(\"file_download\", {\n file_type: \"sql\",\n file_name: handle.name,\n file_size: `${blobSizeInKB} KB`,\n download_status: \"success\",\n });\n showToast({\n message: \"Query Downloaded SuccessFully\",\n type: \"success\",\n });\n onClose();\n } catch (err) {\n console.error(\"Something went wrong while downloading: \", err);\n }\n } else {\n // fallback for browsers that do not support showSaveFilePicker\n const blob = new Blob([text], { type: \"text/plain\" });\n const blobSizeInKB = (blob.size / 1024).toFixed(2);\n const url = URL.createObjectURL(blob);\n const a = document.createElement(\"a\");\n a.href = url;\n a.download = `V${new Date().getTime()}__CHANGE_IN_${configuredQuery.code}.sql`;\n document.body.appendChild(a);\n a.click();\n trackEvent(\"file_download\", {\n file_type: \"sql\",\n file_name: a.download,\n file_size: `${blobSizeInKB} KB`,\n download_status: \"success\",\n });\n document.body.removeChild(a);\n URL.revokeObjectURL(url);\n showToast({ message: \"Query Downloaded SuccessFully\", type: \"success\" });\n onClose();\n }\n };\n\n /**\n *\n * Handles the download process based on the presence of a public keyword in the query text.\n * @function handleDownload\n * @returns {void}\n */\n\n const handleDownload = () => {\n if (isPublicKeyword) {\n setOpenConfirm((cur) => !cur);\n } else {\n download();\n }\n };\n\n /**\n * `useEffect` Hook to Generate Query Text\n *\n * This effect hook is used to generate the SQL query text whenever the `configuredQuery` dependency changes.\n *\n * @function useEffect\n * @param {Object} configuredQuery - The query configuration object used to generate the SQL query text.\n * @param {function} generateQueryText - A function that generates the query text based on `configuredQuery`.\n */\n\n useEffect(() => {\n if (configuredQuery) {\n generateQueryText();\n }\n }, [configuredQuery]);\n return (\n <>\n <CustomConfirmationModal\n description={\n \"This Flyway contains keyword 'public'. Are you sure you want to download?\"\n }\n title={\"CONFIRM ACTION\"}\n handleClick={askForConfirmation}\n open={openConfirm}\n handleClose={() => setOpenConfirm((cur) => !cur)}\n dataTestId=\"showflywayquery-customconfirmationmodal-confirmation-modal\"\n />\n <Dialog\n open={open}\n onClose={onClose}\n fullWidth\n maxWidth=\"md\"\n data-testid={dataTestId}\n >\n <DialogTitle className=\"font-medium text-lg border-b p-2.5 px-5\">\n {translate(\"Flyway Query\")}\n </DialogTitle>\n <DialogContent>\n <TextField\n multiline\n rows={10}\n variant=\"outlined\"\n fullWidth\n value={text}\n sx={{\n \"& .MuiInputBase-input\": {\n fontSize: \"14px\",\n },\n \"& .MuiOutlinedInput-root\": {\n // fontSize: '14px'\n borderRadius: \"5px\",\n },\n }}\n slotProps={{\n input: {\n readOnly: true,\n },\n }}\n data-testid=\"showflywayquery-textfield-query-display\"\n />\n </DialogContent>\n <DialogActions>\n <Button\n onClick={handleDownload}\n variant=\"contained\"\n size=\"small\"\n color=\"primary\"\n data-testid=\"showflywayquery-button-download-action\"\n >\n {translate(\"Download\")}\n </Button>\n <Button\n onClick={copyQuery}\n variant=\"contained\"\n size=\"small\"\n color=\"primary\"\n data-testid=\"showflywayquery-button-copyquery-action\"\n >\n {translate(\"Copy Query\")}\n </Button>\n <Button\n onClick={onClose}\n variant=\"contained\"\n color=\"secondary\"\n size=\"small\"\n data-testid=\"showflywayquery-button-cancel-action\"\n >\n {translate(\"Cancel\")}\n </Button>\n </DialogActions>\n </Dialog>\n </>\n );\n};\n\nShowFlywayQuery.propTypes = {\n configuredQuery: PropTypes.any,\n open: PropTypes.any,\n onClose: PropTypes.any,\n dataTestId: PropTypes.any,\n};\n\nexport default ShowFlywayQuery;\n"],"names":["ShowFlywayQuery","configuredQuery","open","onClose","dataTestId","text","setText","useState","isPublicKeyword","setIsPublicKeyword","translate","useTranslateProvider","openConfirm","setOpenConfirm","generateQueryText","useCallback","publicKeyword","_a","queryText","nextDate","moment","getNextDate","notificationConfigs","firstDelete","config","condition","configType","mobileConfig","eventConfigObj","eventObj","now","copyQuery","showToast","askForConfirmation","download","cur","trackEvent","useTrackEvent","options","handle","writable","blobSizeInKB","err","blob","url","a","handleDownload","useEffect","jsxs","Fragment","jsx","CustomConfirmationModal","Dialog","DialogTitle","DialogContent","TextField","DialogActions","Button","PropTypes"],"mappings":"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"}
|
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
import { jsxs as d, Fragment as q, jsx as a } from "react/jsx-runtime";
|
|
2
|
-
import { useTranslateProvider as R } from "@/common/languageTranslator/TranslationContext";
|
|
3
|
-
import { showToast as v } from "@/common/toaster/toaster";
|
|
4
|
-
import I from "@/hooks/useTrackEvent";
|
|
5
|
-
import O from "@/views/custom-components/CustomConfirmationModal";
|
|
6
|
-
import { Dialog as S, DialogTitle as D, DialogContent as F, TextField as A, DialogActions as B, Button as c } from "@mui/material";
|
|
7
|
-
import p from "prop-types";
|
|
8
|
-
import { useState as m, useCallback as M, useEffect as z } from "react";
|
|
9
|
-
import N from "@/common/config/implementationConfig";
|
|
10
|
-
const U = ({ configuredQuery: t, open: b, onClose: s }) => {
|
|
11
|
-
const [n, C] = m(""), [_, T] = m(!1), [E, r] = m(!1), x = I(), { translate: i } = R(), y = N.queryBuilder.showClickhouseOption, w = M(() => {
|
|
12
|
-
const o = t.query.includes("public");
|
|
13
|
-
T(o);
|
|
14
|
-
let e = `DELETE FROM QUERY_MASTER WHERE CODE='${t.code}';
|
|
15
|
-
|
|
16
|
-
`;
|
|
17
|
-
e += `INSERT INTO QUERY_MASTER (uuid, created_by, created_on, modified_by, modified_on, code, params, query, description, returns_result_set, state, is_mobile_query, is_public ${y ? ", is_clickhouse_query" : ""})
|
|
18
|
-
VALUES (
|
|
19
|
-
`, e += `'${t.uuid}', ${t.createdBy}, current_date, ${t.createdBy}, current_date, `, e += `'${t.code}',
|
|
20
|
-
`, e += t.params ? `'${t.params}',
|
|
21
|
-
` : `null,
|
|
22
|
-
`, e += `'${t.query.replace(/'/g, "''")}',
|
|
23
|
-
`, e += t.description ? `'${t.description}',
|
|
24
|
-
` : `null,
|
|
25
|
-
`, e += t.returnsResultSet !== void 0 ? `${t.returnsResultSet}, ` : "false, ", e += t.state ? `'${t.state}', ` : "'ACTIVE', ", e += ` ${t == null ? void 0 : t.isMobileQuery},`, e += `${t == null ? void 0 : t.isPublic}`, y && (e += `,${t.isClickhouseQuery || !1}`), e += ");", C(e);
|
|
26
|
-
}, [t]), $ = () => {
|
|
27
|
-
navigator.clipboard.writeText(n).then(() => {
|
|
28
|
-
v({ message: "Query Copied", type: "success" }), s();
|
|
29
|
-
});
|
|
30
|
-
}, f = () => {
|
|
31
|
-
u(), r((o) => !o);
|
|
32
|
-
}, u = () => {
|
|
33
|
-
const o = new Blob([n], { type: "text/plain" }), e = (o.size / 1024).toFixed(2), h = URL.createObjectURL(o), l = document.createElement("a");
|
|
34
|
-
l.href = h, l.download = `V${(/* @__PURE__ */ new Date()).getTime()}__CHANGE_IN_${t.code}.sql`, document.body.appendChild(l), l.click(), x("file_download", {
|
|
35
|
-
file_type: "sql",
|
|
36
|
-
file_name: l.download,
|
|
37
|
-
file_size: `${e} KB`,
|
|
38
|
-
download_status: "success"
|
|
39
|
-
}), document.body.removeChild(l), URL.revokeObjectURL(h), s();
|
|
40
|
-
}, k = () => {
|
|
41
|
-
_ ? r((o) => !o) : u();
|
|
42
|
-
};
|
|
43
|
-
return z(() => {
|
|
44
|
-
t && w();
|
|
45
|
-
}, [t, w]), /* @__PURE__ */ d(q, { children: [
|
|
46
|
-
/* @__PURE__ */ a(
|
|
47
|
-
O,
|
|
48
|
-
{
|
|
49
|
-
description: "This Flyway contains keyword 'public'. Are you sure you want to download?",
|
|
50
|
-
title: "CONFIRM ACTION",
|
|
51
|
-
handleClick: f,
|
|
52
|
-
open: E,
|
|
53
|
-
handleClose: () => r((o) => !o),
|
|
54
|
-
dataTestId: "showflywayquery-customconfirmationmodal"
|
|
55
|
-
}
|
|
56
|
-
),
|
|
57
|
-
/* @__PURE__ */ d(S, { open: b, onClose: s, fullWidth: !0, maxWidth: "md", children: [
|
|
58
|
-
/* @__PURE__ */ a(D, { className: "p-2.5 px-5 flex border-b font-medium text-lg", children: i("Flyway Query") }),
|
|
59
|
-
/* @__PURE__ */ a(F, { children: /* @__PURE__ */ a(
|
|
60
|
-
A,
|
|
61
|
-
{
|
|
62
|
-
multiline: !0,
|
|
63
|
-
rows: 10,
|
|
64
|
-
variant: "outlined",
|
|
65
|
-
fullWidth: !0,
|
|
66
|
-
value: n,
|
|
67
|
-
sx: {
|
|
68
|
-
"& .MuiInputBase-input": {
|
|
69
|
-
fontSize: "14px"
|
|
70
|
-
},
|
|
71
|
-
"& .MuiOutlinedInput-root": {
|
|
72
|
-
// fontSize: '14px'
|
|
73
|
-
borderRadius: "5px"
|
|
74
|
-
}
|
|
75
|
-
},
|
|
76
|
-
slotProps: {
|
|
77
|
-
input: {
|
|
78
|
-
readOnly: !0
|
|
79
|
-
}
|
|
80
|
-
},
|
|
81
|
-
"data-testid": "showflywayquery-textfield"
|
|
82
|
-
}
|
|
83
|
-
) }),
|
|
84
|
-
/* @__PURE__ */ d(B, { children: [
|
|
85
|
-
/* @__PURE__ */ a(
|
|
86
|
-
c,
|
|
87
|
-
{
|
|
88
|
-
onClick: k,
|
|
89
|
-
variant: "contained",
|
|
90
|
-
size: "small",
|
|
91
|
-
color: "primary",
|
|
92
|
-
"data-testid": "showflywayquery-button-download",
|
|
93
|
-
children: i("Download")
|
|
94
|
-
}
|
|
95
|
-
),
|
|
96
|
-
/* @__PURE__ */ a(
|
|
97
|
-
c,
|
|
98
|
-
{
|
|
99
|
-
onClick: $,
|
|
100
|
-
variant: "contained",
|
|
101
|
-
size: "small",
|
|
102
|
-
color: "primary",
|
|
103
|
-
"data-testid": "showflywayquery-button-copyquery",
|
|
104
|
-
children: i("Copy Query")
|
|
105
|
-
}
|
|
106
|
-
),
|
|
107
|
-
/* @__PURE__ */ a(
|
|
108
|
-
c,
|
|
109
|
-
{
|
|
110
|
-
onClick: s,
|
|
111
|
-
variant: "contained",
|
|
112
|
-
color: "secondary",
|
|
113
|
-
size: "small",
|
|
114
|
-
"data-testid": "showflywayquery-button-cancel",
|
|
115
|
-
children: i("Cancel")
|
|
116
|
-
}
|
|
117
|
-
)
|
|
118
|
-
] })
|
|
119
|
-
] })
|
|
120
|
-
] });
|
|
121
|
-
};
|
|
122
|
-
U.propTypes = {
|
|
123
|
-
configuredQuery: p.any,
|
|
124
|
-
open: p.any,
|
|
125
|
-
onClose: p.any
|
|
126
|
-
};
|
|
127
|
-
export {
|
|
128
|
-
U as default
|
|
129
|
-
};
|
|
130
|
-
//# sourceMappingURL=ShowFlywayQuery-tj42YQAS.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ShowFlywayQuery-tj42YQAS.js","sources":["../src/views/QueryBuilder/ShowFlywayQuery.jsx"],"sourcesContent":["import { useTranslateProvider } from '@/common/languageTranslator/TranslationContext';\nimport { showToast } from '@/common/toaster/toaster';\nimport useTrackEvent from '@/hooks/useTrackEvent';\nimport CustomConfirmationModal from '@/views/custom-components/CustomConfirmationModal';\nimport { Button, Dialog, DialogActions, DialogContent, DialogTitle, TextField } from '@mui/material';\nimport PropTypes from 'prop-types';\nimport React, { useCallback, useEffect, useState } from 'react';\nimport implementationConfig from \"@/common/config/implementationConfig\";\n\n/**\n * A React functional component that displays a configured Flyway query.\n * @mdoule ShowFlywayQuery\n * @param {Object} props - Component properties.\n * @param {Object} props.configuredQuery - The query configuration object to display.\n * @param {boolean} props.open - Boolean flag indicating if the component should be visible.\n * @param {function} props.onClose - Callback function to close the component.\n */\n\nconst ShowFlywayQuery = ({ configuredQuery, open, onClose }) => {\n const [text, setText] = useState('');\n const [isPublicKeyword, setIsPublicKeyword] = useState(false);\n const [openConfirm, setOpenConfirm] = useState(false);\n const trackEvent = useTrackEvent();\n const { translate } = useTranslateProvider();\n const isClickhouseEnabledEnv = implementationConfig.queryBuilder.showClickhouseOption;\n\n /**\n *\n * Generates a SQL query string based on the `configuredQuery` object.\n * @function generateQueryText\n * @param {Object} configuredQuery - The query configuration object used to generate the SQL query.\n * @param {string} configuredQuery.code - The unique code for the query.\n * @param {string} configuredQuery.uuid - The unique identifier for the query.\n * @param {number} configuredQuery.createdBy - The ID of the user who created the query.\n * @param {string} [configuredQuery.params] - The parameters for the query.\n * @param {string} configuredQuery.query - The actual SQL query text.\n * @param {string} [configuredQuery.description] - A description of the query.\n * @param {boolean} [configuredQuery.returnsResultSet] - Flag indicating if the query returns a result set.\n * @param {string} [configuredQuery.state] - The state of the query (e.g., 'ACTIVE').\n * @returns {void}\n */\n\n const generateQueryText = useCallback(() => {\n const publicKeyword = configuredQuery.query.includes('public');\n setIsPublicKeyword(publicKeyword);\n\n let queryText = `DELETE FROM QUERY_MASTER WHERE CODE='${configuredQuery.code}';\\n\\n`;\n queryText += `INSERT INTO QUERY_MASTER (uuid, created_by, created_on, modified_by, modified_on, code, params, query, description, returns_result_set, state, is_mobile_query, is_public ${isClickhouseEnabledEnv ? ', is_clickhouse_query' : ''}) \\nVALUES ( \\n`;\n queryText += `'${configuredQuery.uuid}', ${configuredQuery.createdBy}, current_date, ${configuredQuery.createdBy}, current_date, `;\n queryText += `'${configuredQuery.code}', \\n`;\n\n queryText += configuredQuery.params ? `'${configuredQuery.params}', \\n` : 'null, \\n';\n queryText += `'${configuredQuery.query.replace(/'/g, \"''\")}', \\n`;\n queryText += configuredQuery.description ? `'${configuredQuery.description}', \\n` : 'null, \\n';\n queryText += configuredQuery.returnsResultSet !== undefined ? `${configuredQuery.returnsResultSet}, ` : 'false, ';\n queryText += configuredQuery.state ? `'${configuredQuery.state}', ` : `'ACTIVE', `;\n queryText += ` ${configuredQuery?.isMobileQuery},`;\n queryText += `${configuredQuery?.isPublic}`;\n if (isClickhouseEnabledEnv) queryText += `,${configuredQuery.isClickhouseQuery || false}`;\n queryText += ');';\n\n setText(queryText);\n }, [configuredQuery]);\n\n /**\n *\n * Copies the generated query text to the clipboard and displays a success message.\n * @function copyQuery\n * @returns {void}\n */\n\n const copyQuery = () => {\n navigator.clipboard.writeText(text).then(() => {\n showToast({ message: 'Query Copied', type: 'success' });\n onClose();\n });\n };\n\n /**\n * Triggers a download operation and toggles the confirmation dialog visibility.\n * The function assumes that `download` and `setOpenConfirm` are available in the current scope.\n * @function askForConfirmation\n * @returns {void}\n */\n\n const askForConfirmation = () => {\n download();\n setOpenConfirm((cur) => !cur);\n };\n\n /**\n * Creates and triggers a download of a text file containing the query text.\n *\n * @function download\n * @returns {void}\n */\n\n const download = () => {\n const blob = new Blob([text], { type: 'text/plain' });\n const blobSizeInKB = (blob.size / 1024).toFixed(2);\n const url = URL.createObjectURL(blob);\n const a = document.createElement('a');\n a.href = url;\n a.download = `V${new Date().getTime()}__CHANGE_IN_${configuredQuery.code}.sql`;\n document.body.appendChild(a);\n\n a.click();\n trackEvent('file_download', {\n file_type: 'sql',\n file_name: a.download,\n file_size: `${blobSizeInKB} KB`,\n download_status: 'success',\n });\n document.body.removeChild(a);\n URL.revokeObjectURL(url);\n onClose();\n };\n\n /**\n *\n * Handles the download process based on the presence of a public keyword in the query text.\n * @function handleDownload\n * @returns {void}\n */\n\n const handleDownload = () => {\n if (isPublicKeyword) {\n setOpenConfirm((cur) => !cur);\n } else {\n download();\n }\n };\n\n /**\n * `useEffect` Hook to Generate Query Text\n *\n * This effect hook is used to generate the SQL query text whenever the `configuredQuery` dependency changes.\n *\n * @function useEffect\n * @param {Object} configuredQuery - The query configuration object used to generate the SQL query text.\n * @param {function} generateQueryText - A function that generates the query text based on `configuredQuery`.\n */\n\n useEffect(() => {\n if (configuredQuery) {\n generateQueryText();\n }\n }, [configuredQuery, generateQueryText]);\n return (\n <>\n <CustomConfirmationModal\n description={\"This Flyway contains keyword 'public'. Are you sure you want to download?\"}\n title={'CONFIRM ACTION'}\n handleClick={askForConfirmation}\n open={openConfirm}\n handleClose={() => setOpenConfirm((cur) => !cur)}\n dataTestId=\"showflywayquery-customconfirmationmodal\"\n />\n <Dialog open={open} onClose={onClose} fullWidth maxWidth=\"md\">\n <DialogTitle className=\"p-2.5 px-5 flex border-b font-medium text-lg\">{translate('Flyway Query')}</DialogTitle>\n <DialogContent>\n <TextField\n multiline\n rows={10}\n variant=\"outlined\"\n fullWidth\n value={text}\n sx={{\n '& .MuiInputBase-input': {\n fontSize: '14px',\n },\n '& .MuiOutlinedInput-root': {\n // fontSize: '14px'\n borderRadius: '5px',\n },\n }}\n slotProps={{\n input: {\n readOnly: true,\n },\n }}\n data-testid=\"showflywayquery-textfield\"\n />\n </DialogContent>\n <DialogActions>\n <Button\n onClick={handleDownload}\n variant=\"contained\"\n size=\"small\"\n color=\"primary\"\n data-testid=\"showflywayquery-button-download\"\n >\n {translate('Download')}\n </Button>\n <Button\n onClick={copyQuery}\n variant=\"contained\"\n size=\"small\"\n color=\"primary\"\n data-testid=\"showflywayquery-button-copyquery\"\n >\n {translate('Copy Query')}\n </Button>\n <Button\n onClick={onClose}\n variant=\"contained\"\n color=\"secondary\"\n size=\"small\"\n data-testid=\"showflywayquery-button-cancel\"\n >\n {translate('Cancel')}\n </Button>\n </DialogActions>\n </Dialog>\n </>\n );\n};\n\nShowFlywayQuery.propTypes = {\n configuredQuery: PropTypes.any,\n open: PropTypes.any,\n onClose: PropTypes.any,\n};\n\nexport default ShowFlywayQuery;\n"],"names":["ShowFlywayQuery","configuredQuery","open","onClose","text","setText","useState","isPublicKeyword","setIsPublicKeyword","openConfirm","setOpenConfirm","trackEvent","useTrackEvent","translate","useTranslateProvider","isClickhouseEnabledEnv","implementationConfig","generateQueryText","useCallback","publicKeyword","queryText","copyQuery","showToast","askForConfirmation","download","cur","blob","blobSizeInKB","url","a","handleDownload","useEffect","jsxs","Fragment","jsx","CustomConfirmationModal","Dialog","DialogTitle","DialogContent","TextField","DialogActions","Button","PropTypes"],"mappings":"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"}
|
|
@@ -1,190 +0,0 @@
|
|
|
1
|
-
import { jsx as r, jsxs as e } from "react/jsx-runtime";
|
|
2
|
-
import "react";
|
|
3
|
-
import c from "prop-types";
|
|
4
|
-
import { Modal as w, Box as s, TableContainer as f, Paper as N, Table as v, TableHead as q, TableRow as d, TableCell as l, TableBody as T, Typography as n, Button as y, Stack as C } from "@mui/material";
|
|
5
|
-
import { showToast as u } from "@/common/toaster/toaster";
|
|
6
|
-
import { useTranslateProvider as x } from "@/common/languageTranslator/TranslationContext";
|
|
7
|
-
const D = ({ historyList: i, open: m, handleClose: h }) => {
|
|
8
|
-
const p = (t) => t ? "Yes" : "No", g = (t) => {
|
|
9
|
-
try {
|
|
10
|
-
navigator.clipboard.writeText(t), u({
|
|
11
|
-
message: "Query Copied",
|
|
12
|
-
type: "success"
|
|
13
|
-
});
|
|
14
|
-
} catch (o) {
|
|
15
|
-
console.error(o), u({
|
|
16
|
-
message: "Error in copying query",
|
|
17
|
-
type: "error"
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
|
-
}, b = (t) => {
|
|
21
|
-
const o = {
|
|
22
|
-
year: "numeric",
|
|
23
|
-
month: "2-digit",
|
|
24
|
-
day: "2-digit",
|
|
25
|
-
hour: "2-digit",
|
|
26
|
-
minute: "2-digit",
|
|
27
|
-
second: "2-digit",
|
|
28
|
-
hour12: !0
|
|
29
|
-
};
|
|
30
|
-
return new Date(t).toLocaleDateString("en-GB", o);
|
|
31
|
-
}, { translate: a } = x();
|
|
32
|
-
return /* @__PURE__ */ r(w, { open: m, onClose: h, "data-testid": "showqueryhistory-modal", className: "z-[1301]", children: /* @__PURE__ */ e(s, { className: "absolute top-[10%] left-1/2 transform -translate-x-1/2 w-3/5 bg-white container-fluid", children: [
|
|
33
|
-
/* @__PURE__ */ e(s, { className: "max-h-[360px] w-full overflow-y-auto overflow-x-hidden row", children: [
|
|
34
|
-
/* @__PURE__ */ r(s, { className: "col-12 padding-left-right-0", children: /* @__PURE__ */ r(f, { component: N, children: /* @__PURE__ */ e(v, { "aria-label": "query history table", children: [
|
|
35
|
-
/* @__PURE__ */ r(q, { children: /* @__PURE__ */ e(d, { children: [
|
|
36
|
-
/* @__PURE__ */ r(l, { className: "w-[5%] text-left align-top", children: a("Version") }),
|
|
37
|
-
/* @__PURE__ */ r(l, { className: "w-[30%] text-left align-top", children: a("Description") }),
|
|
38
|
-
/* @__PURE__ */ r(l, { className: "w-[65%] text-left align-top", children: a("Query") })
|
|
39
|
-
] }) }),
|
|
40
|
-
/* @__PURE__ */ r(T, { children: i && i.length > 0 ? i.map((t, o) => /* @__PURE__ */ e(d, { "data-testid": `showqueryhistory-tablerow-${o}`, children: [
|
|
41
|
-
/* @__PURE__ */ r(
|
|
42
|
-
l,
|
|
43
|
-
{
|
|
44
|
-
className: " text-left align-top",
|
|
45
|
-
"data-testid": `showqueryhistory-tablecell-version-${o}`,
|
|
46
|
-
children: i.length - o
|
|
47
|
-
}
|
|
48
|
-
),
|
|
49
|
-
/* @__PURE__ */ e(
|
|
50
|
-
l,
|
|
51
|
-
{
|
|
52
|
-
className: " text-left align-top",
|
|
53
|
-
"data-testid": `showqueryhistory-tablecell-description-${o}`,
|
|
54
|
-
children: [
|
|
55
|
-
/* @__PURE__ */ e(n, { variant: "body2", children: [
|
|
56
|
-
/* @__PURE__ */ e("strong", { children: [
|
|
57
|
-
a("Code"),
|
|
58
|
-
":"
|
|
59
|
-
] }),
|
|
60
|
-
" ",
|
|
61
|
-
t.oldCode || "N/A"
|
|
62
|
-
] }),
|
|
63
|
-
/* @__PURE__ */ e(n, { variant: "body2", children: [
|
|
64
|
-
/* @__PURE__ */ e("strong", { children: [
|
|
65
|
-
a("Date Time"),
|
|
66
|
-
":"
|
|
67
|
-
] }),
|
|
68
|
-
" ",
|
|
69
|
-
b(t.action_tstamp_tx)
|
|
70
|
-
] }),
|
|
71
|
-
/* @__PURE__ */ e(n, { variant: "body2", children: [
|
|
72
|
-
/* @__PURE__ */ e("strong", { children: [
|
|
73
|
-
a("description"),
|
|
74
|
-
":"
|
|
75
|
-
] }),
|
|
76
|
-
" ",
|
|
77
|
-
t.oldDescription || "N/A"
|
|
78
|
-
] }),
|
|
79
|
-
/* @__PURE__ */ e(n, { variant: "body2", children: [
|
|
80
|
-
/* @__PURE__ */ e("strong", { children: [
|
|
81
|
-
a("Status"),
|
|
82
|
-
":"
|
|
83
|
-
] }),
|
|
84
|
-
" ",
|
|
85
|
-
t.oldState || "N/A"
|
|
86
|
-
] }),
|
|
87
|
-
/* @__PURE__ */ e(n, { variant: "body2", children: [
|
|
88
|
-
/* @__PURE__ */ e("strong", { children: [
|
|
89
|
-
a("Parameters"),
|
|
90
|
-
":"
|
|
91
|
-
] }),
|
|
92
|
-
" ",
|
|
93
|
-
t.oldParams || "N/A"
|
|
94
|
-
] }),
|
|
95
|
-
/* @__PURE__ */ e(n, { variant: "body2", children: [
|
|
96
|
-
/* @__PURE__ */ e("strong", { children: [
|
|
97
|
-
a("Returns Result Set"),
|
|
98
|
-
":"
|
|
99
|
-
] }),
|
|
100
|
-
" ",
|
|
101
|
-
p(t.oldReturnsResultSet)
|
|
102
|
-
] }),
|
|
103
|
-
/* @__PURE__ */ e(n, { variant: "body2", children: [
|
|
104
|
-
/* @__PURE__ */ e("strong", { children: [
|
|
105
|
-
a("Is Public"),
|
|
106
|
-
":"
|
|
107
|
-
] }),
|
|
108
|
-
" ",
|
|
109
|
-
p(t.oldIsPublic)
|
|
110
|
-
] }),
|
|
111
|
-
/* @__PURE__ */ e(n, { variant: "body2", children: [
|
|
112
|
-
/* @__PURE__ */ e("strong", { children: [
|
|
113
|
-
a("CRUD Op"),
|
|
114
|
-
":"
|
|
115
|
-
] }),
|
|
116
|
-
t.action === "I" && "Insert",
|
|
117
|
-
t.action === "U" && "Update",
|
|
118
|
-
t.action === "D" && "Delete",
|
|
119
|
-
t.action === "T" && "Truncate",
|
|
120
|
-
!t.action && "N/A"
|
|
121
|
-
] })
|
|
122
|
-
]
|
|
123
|
-
}
|
|
124
|
-
),
|
|
125
|
-
/* @__PURE__ */ e(
|
|
126
|
-
l,
|
|
127
|
-
{
|
|
128
|
-
className: " text-left align-top",
|
|
129
|
-
"data-testid": `showqueryhistory-tablecell-query-${o}`,
|
|
130
|
-
children: [
|
|
131
|
-
/* @__PURE__ */ r(
|
|
132
|
-
y,
|
|
133
|
-
{
|
|
134
|
-
variant: "contained",
|
|
135
|
-
color: "primary",
|
|
136
|
-
size: "small",
|
|
137
|
-
onClick: () => g(t.oldQuery),
|
|
138
|
-
"data-testid": `showqueryhistory-button-copyquery-${o}`,
|
|
139
|
-
children: a("Copy Query")
|
|
140
|
-
}
|
|
141
|
-
),
|
|
142
|
-
/* @__PURE__ */ r(
|
|
143
|
-
n,
|
|
144
|
-
{
|
|
145
|
-
variant: "body2",
|
|
146
|
-
className: "whitespace-pre-wrap",
|
|
147
|
-
"data-testid": `showqueryhistory-typography-query-${o}`,
|
|
148
|
-
children: t.oldQuery
|
|
149
|
-
}
|
|
150
|
-
)
|
|
151
|
-
]
|
|
152
|
-
}
|
|
153
|
-
)
|
|
154
|
-
] }, o + 1)) : /* @__PURE__ */ r(d, { children: /* @__PURE__ */ r(l, { colSpan: 3, align: "center", children: a("No queries History") }) }) })
|
|
155
|
-
] }) }) }),
|
|
156
|
-
/* @__PURE__ */ r(s, { className: "col-12 padding-left-right-0 flex justify-end p-2" })
|
|
157
|
-
] }),
|
|
158
|
-
/* @__PURE__ */ r(
|
|
159
|
-
C,
|
|
160
|
-
{
|
|
161
|
-
direction: "row",
|
|
162
|
-
spacing: 2,
|
|
163
|
-
justifyContent: "flex-end",
|
|
164
|
-
mt: 1,
|
|
165
|
-
mr: 2,
|
|
166
|
-
mb: 1,
|
|
167
|
-
"data-testid": "showqueryhistory-stack",
|
|
168
|
-
children: /* @__PURE__ */ r(
|
|
169
|
-
y,
|
|
170
|
-
{
|
|
171
|
-
variant: "contained",
|
|
172
|
-
color: "secondary",
|
|
173
|
-
onClick: h,
|
|
174
|
-
"data-testid": "showqueryhistory-button-close",
|
|
175
|
-
children: /* @__PURE__ */ r(n, { variant: "body2", children: a("Close") })
|
|
176
|
-
}
|
|
177
|
-
)
|
|
178
|
-
}
|
|
179
|
-
)
|
|
180
|
-
] }) });
|
|
181
|
-
};
|
|
182
|
-
D.propTypes = {
|
|
183
|
-
historyList: c.any,
|
|
184
|
-
open: c.any,
|
|
185
|
-
handleClose: c.any
|
|
186
|
-
};
|
|
187
|
-
export {
|
|
188
|
-
D as default
|
|
189
|
-
};
|
|
190
|
-
//# sourceMappingURL=ShowQueryHistory-BDN0tzHg.js.map
|