@argusoft/medplat-core 1.0.24 → 1.0.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/dist/{AddFeatures-CTVs_Gr9.js → AddFeatures-CqE3v0BN.js} +2 -2
  2. package/dist/{AddFeatures-CTVs_Gr9.js.map → AddFeatures-CqE3v0BN.js.map} +1 -1
  3. package/dist/AddMenuConfiguration-BSQLl88V.js +6570 -0
  4. package/dist/AddMenuConfiguration-BSQLl88V.js.map +1 -0
  5. package/dist/{ChangePasswordModalCore-Czu7OZe6.js → ChangePasswordModalCore-DTYWRTa-.js} +3 -3
  6. package/dist/{ChangePasswordModalCore-Czu7OZe6.js.map → ChangePasswordModalCore-DTYWRTa-.js.map} +1 -1
  7. package/dist/{ConditionConfig-BECSbvY2.js → ConditionConfig-DSsgGEXS.js} +2 -2
  8. package/dist/{ConditionConfig-BECSbvY2.js.map → ConditionConfig-DSsgGEXS.js.map} +1 -1
  9. package/dist/{ManageEventConfiguration-CBi2KMB1.js → ManageEventConfiguration-DV3I5POA.js} +4 -4
  10. package/dist/{ManageEventConfiguration-CBi2KMB1.js.map → ManageEventConfiguration-DV3I5POA.js.map} +1 -1
  11. package/dist/{ManageRole-CZAk-IlM.js → ManageRole-B9bs_T00.js} +116 -116
  12. package/dist/ManageRole-B9bs_T00.js.map +1 -0
  13. package/dist/{ManageUser-BnEPFSPT.js → ManageUser-AB3_Vfp_.js} +34 -33
  14. package/dist/{ManageUser-BnEPFSPT.js.map → ManageUser-AB3_Vfp_.js.map} +1 -1
  15. package/dist/{MobileTypeEventConfigModal-C34AN-IJ.js → MobileTypeEventConfigModal-BxLympIO.js} +2 -2
  16. package/dist/{MobileTypeEventConfigModal-C34AN-IJ.js.map → MobileTypeEventConfigModal-BxLympIO.js.map} +1 -1
  17. package/dist/{OtherTypeEventConfigModal-BYjMFl0-.js → OtherTypeEventConfigModal-BeG1GrUi.js} +3 -2
  18. package/dist/{OtherTypeEventConfigModal-BYjMFl0-.js.map → OtherTypeEventConfigModal-BeG1GrUi.js.map} +1 -1
  19. package/dist/{RoleManagement-B9WgZGEj.js → RoleManagement-BIiW9uTq.js} +2 -2
  20. package/dist/{RoleManagement-B9WgZGEj.js.map → RoleManagement-BIiW9uTq.js.map} +1 -1
  21. package/dist/{TypeConfiguration-Bs5WkIa2.js → TypeConfiguration-37wp-gsl.js} +2 -2
  22. package/dist/{TypeConfiguration-Bs5WkIa2.js.map → TypeConfiguration-37wp-gsl.js.map} +1 -1
  23. package/dist/{UserList-BzHsbYel.js → UserList-2gGuDgNa.js} +38 -37
  24. package/dist/{UserList-BzHsbYel.js.map → UserList-2gGuDgNa.js.map} +1 -1
  25. package/dist/{UserListSkeleton-DhIJ5X3y.js → UserListSkeleton-BMKANCtW.js} +57 -93
  26. package/dist/UserListSkeleton-BMKANCtW.js.map +1 -0
  27. package/dist/Users-CsJ08Kjm.js +40 -0
  28. package/dist/Users-CsJ08Kjm.js.map +1 -0
  29. package/dist/index.js +4 -4
  30. package/package.json +1 -1
  31. package/dist/AddMenuConfiguration-m3R8FDhj.js +0 -5570
  32. package/dist/AddMenuConfiguration-m3R8FDhj.js.map +0 -1
  33. package/dist/ManageRole-CZAk-IlM.js.map +0 -1
  34. package/dist/UserListSkeleton-DhIJ5X3y.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ManageEventConfiguration-CBi2KMB1.js","sources":["../src/views/Events/ManageEventConfiguration.jsx"],"sourcesContent":["import {\n retrieveAllForm,\n retrieveByUUID,\n retrieveManualEvents,\n save,\n update,\n} from \"../../services/EventConfig\";\nimport {\n getReportsList,\n retrieveAllNotifications,\n} from \"@/common/services/GlobalApis\";\nimport { showToast } from \"@/common/toaster/toaster\";\nimport CustomTextArea from \"@/views/custom-components/CustomTextArea\";\nimport CustomTextField from \"@/views/custom-components/CustomTextField\";\nimport \"./Styles/ManageEventConfiguration.scss\";\nimport { yupResolver } from \"@hookform/resolvers/yup\";\nimport CustomDropdown from \"@/views/custom-components/CustomDropdown\";\nimport {\n Box,\n Button,\n Card,\n CardActions,\n CardContent,\n CardHeader,\n Divider,\n FormControl,\n MenuItem,\n Paper,\n Select,\n Table,\n TableBody,\n TableCell,\n TableContainer,\n TableHead,\n TableRow,\n Typography,\n} from \"@mui/material\";\nimport Grid from \"@mui/material/Grid2\";\nimport React, { lazy, Suspense, useEffect, useRef, useState } from \"react\";\nimport { Controller, useForm } from \"react-hook-form\";\nimport { useNavigate } from \"react-router\";\nimport { useParams } from \"react-router-dom\";\nimport * as Yup from \"yup\";\nimport { useTranslateProvider } from \"@/common/languageTranslator/TranslationContext\";\nimport useTrackEvent from \"@/hooks/useTrackEvent\";\nconst ConditionConfig = lazy(() => import(\"./ConditionConfig\"));\nconst MobileTypeEventConfigModal = lazy(\n () => import(\"./MobileTypeEventConfigModal\")\n);\nconst OtherTypeEventConfigModal = lazy(\n () => import(\"./OtherTypeEventConfigModal\")\n);\nimport { ManageEventConfigurationSkeleton } from \"./Skeletons/EventsSkeleton\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { faPen, faPlus, faTrash } from \"@fortawesome/free-solid-svg-icons\";\n\n/**\n * ManageEventConfiguration component handles the creation and editing\n * of event configurations, including various notification types and triggers.\n * @module ManageEventConfiguration\n *\n *\n *\n * @component\n */\nfunction ManageEventConfiguration() {\n const { translate } = useTranslateProvider();\n\n const formRef = useRef(null);\n const submitRef = useRef(false);\n const { id } = useParams();\n const navigate = useNavigate();\n const [forms, setForms] = useState(null);\n const [events, setEvents] = useState(null);\n const [notificationTypeMap, setNotificationTypeMap] = useState({});\n const [notificationConfigDetails, setNotificationConfigDetails] = useState(\n []\n );\n const [selectedConfigIndex, setSelectedConfigIndex] = useState(null);\n const [selectedConfig, setSelectedConfig] = useState(null);\n const [selectedCondition, setSelectedCondition] = useState(null);\n const [selectedIndex, setSelectedIndex] = useState(null);\n const [newCondition, setNewCondition] = useState(null);\n const [conditionEditMode, setConditionEditMode] = useState(null);\n const [selectedTypeConfig, setSelectedTypeConfig] = useState(null);\n const [newType, setNewType] = useState(null);\n const [overlayOpen, setOverlayOpen] = useState(false);\n const [typeEditMode, setTypeEditMode] = useState(false);\n const [toggleOtherOpen, setToggleOtherOpen] = useState(false);\n const [typeConfigurationData, setTypeConfigurationData] = useState([]);\n const [isLoading, setIsLoading] = useState(false);\n const [reportList, setReportList] = useState([]);\n const bodyLineHeight = window.getComputedStyle(document.body).lineHeight;\n /**\n * Toggles the overlay open/closed state.\n *\n * @function handleOverlayState\n */\n const handleOverlayState = () => setOverlayOpen(!overlayOpen);\n\n const validationSchema = Yup.object().shape({\n name: Yup.string().required(\"Enter Name\"),\n eventType: Yup.string().required(\"Select Event Type\"),\n recursionInterval: Yup.number()\n .typeError(\"Recursion Interval must be a number\")\n .when([], {\n is: () => eventType === \"RECURSION\",\n then: (schema) =>\n schema\n .required(\"Recursion Interval is required\")\n .moreThan(0, \"Recursion Interval must be greater than or equal to 1\")\n .lessThan(1441, \"Recursion Interval must be less than or equal to 1440\"),\n otherwise: (schema) => schema.notRequired(),\n }),\n trigerWhen: Yup.string().test(\n \"is-required\",\n \"trigerWhen is required\",\n function (value) {\n if (eventType === \"TIMMER_BASED\") {\n return !!value;\n }\n return true;\n }\n ),\n day: Yup.string().test(\"is-required\", \"day is required\", function (value) {\n if (\n eventType === \"TIMMER_BASED\" &&\n (trigerWhen === \"AFTER\" || trigerWhen === \"MONTHLY\")\n ) {\n return !!value;\n }\n return true;\n }),\n hour: Yup.string().test(\n \"is-required\",\n \"hour is required\",\n function (value) {\n if (\n eventType === \"TIMMER_BASED\" &&\n (trigerWhen === \"AFTER\" ||\n trigerWhen === \"MONTHLY\" ||\n trigerWhen === \"DAILY\")\n ) {\n return !!value;\n }\n return true;\n }\n ),\n minute: Yup.string().notRequired(),\n // notificationConfigDetails: Yup.array().of(\n // Yup.object().shape({\n // query: Yup.string().required('Query is required'), // Ensure query is present\n // // condition: Yup.string().required('Condition is required'), // Ensure condition is present\n // // action: Yup.string().required('Action is required'), // Ensure action is present\n // })\n // ),\n });\n const {\n control,\n handleSubmit,\n setValue,\n setError,\n clearErrors,\n getValues,\n watch,\n formState: { errors },\n } = useForm({\n defaultValues: {\n name: \"\",\n description: \"\",\n eventType: \"\",\n recursionInterval: 0,\n minute: 0\n },\n resolver: yupResolver(validationSchema),\n mode: \"onChange\",\n });\n\n const eventType = watch(\"eventType\");\n let trigerWhen = watch(\"trigerWhen\");\n\n /**\n * Handles form submission.\n *\n * @async\n * @function submit\n * @param {Object} data - The form data to submit.\n */\n\n useEffect(() => {\n let form = formRef.current;\n\n return () => {\n trackEvent(\"conversion_event\", {\n form,\n form_name: \"Manage Event Configuration\",\n submit: submitRef.current,\n }); // Use the current ref value\n };\n }, []);\n const submit = async (data) => {\n try {\n if (notificationConfigDetails.length > 0) {\n data.minute = Number(data.minute || 0);\n data.notificationConfigDetails = notificationConfigDetails;\n\n const isTimerBased = eventType === \"TIMMER_BASED\";\n const isFormSubmitted = eventType === \"FORM_SUBMITTED\";\n const isManual = eventType === \"MANUAL\";\n const isRecursion = eventType === \"RECURSION\";\n if (!isTimerBased) {\n delete data.trigerWhen;\n delete data.day;\n delete data.hour;\n delete data.minute;\n }\n if (!isFormSubmitted) {\n delete data.formTypeId;\n }\n if (!isFormSubmitted && !isManual) {\n delete data.eventTypeDetailCode;\n delete data.eventTypeDetailId;\n }\n if (isRecursion) {\n delete data.formTypeId;\n data.trigerWhen = \"RECURSION\";\n } else {\n delete data.recursionInterval;\n }\n\n const needsDay = [\"AFTER\", \"MONTHLY\", \"WEEKLY\"];\n const needsHour = [\"AFTER\", \"MONTHLY\", \"DAILY\", \"WEEKLY\"];\n if (!needsDay.includes(trigerWhen)) {\n delete data.day;\n }\n if (!needsHour.includes(trigerWhen)) {\n delete data.day;\n delete data.hour;\n }\n if (trigerWhen === \"IMMEDIATELY\") {\n delete data.day;\n delete data.hour;\n delete data.minute;\n }\n const cleanedNotificationConfigDetails = notificationConfigDetails.map(config => ({\n ...config,\n conditions: config.conditions?.map(condition => ({\n ...condition,\n notificaitonConfigsType: condition.notificaitonConfigsType ? condition.notificaitonConfigsType.map(typeConfig => ({\n ...typeConfig,\n queryCode: typeConfig.queryCode === \"\" ? null : typeConfig.queryCode\n })) : condition.notificaitonConfigsType\n }))\n }));\n data.notificationConfigDetails = cleanedNotificationConfigDetails;\n if (id) {\n await update(data);\n } else {\n await save(data);\n }\n\n trackEvent(\"button_click\", {\n button_name: \"manageeventconfiguration-save-button\",\n button_type: \"submit\",\n button_id: \"manageeventconfiguration-save-button\",\n });\n\n showToast({\n message: id\n ? \"Event Configuration Updated successfully\"\n : \"submit successfully\",\n type: \"success\",\n });\n submitRef.current = true;\n navigate(\"/ui/medplat/notification/all\");\n } else {\n showToast({\n message: \"Please add atleast query / condition for the configuration\",\n type: \"warn\",\n });\n }\n } catch {\n showToast({ message: \"submit problem\", type: \"error\" });\n setIsLoading((cur) => !cur);\n }\n };\n\n useEffect(() => {\n loadInitialData();\n }, []);\n\n /**\n * Loads initial data for forms, events, and notification types when the component mounts.\n *\n * @async\n * @function loadInitialData\n */\n const loadInitialData = async () => {\n try {\n setIsLoading((cur) => !cur);\n const res = await retrieveAllForm({ is_active: true });\n setForms(res?.data);\n const manualevent = await retrieveManualEvents();\n\n setEvents(manualevent?.data);\n const notificationtype = await retrieveAllNotifications(true);\n let notificationtypeObject = {};\n notificationtype?.data?.forEach((type) => {\n notificationtypeObject[type?.id] = type?.notificationName;\n });\n setNotificationTypeMap(notificationtypeObject);\n\n const { data: reportList } = await getReportsList(); // doubt for import\n setReportList(reportList || []);\n\n if (id) {\n const responseByid = await retrieveByUUID(id);\n responseByid?.data?.notificationConfigDetails?.forEach((config) => {\n setImplicitParam(config);\n });\n let data = responseByid?.data;\n Object.keys(data)?.forEach((key) => {\n if (data[key] !== undefined && data[key] !== null) {\n setValue(key, data[key]);\n }\n });\n setNotificationConfigDetails(data?.notificationConfigDetails || []);\n }\n setIsLoading((cur) => !cur);\n } catch (error) {\n showToast({\n message: \"Error in loading manage events\",\n type: `Error:${error?.message}`,\n });\n setIsLoading((cur) => !cur);\n }\n };\n\n /**\n * Sets implicit parameters for a given notification configuration.\n *\n * @function setImplicitParam\n * @param {Object} config - The notification configuration object.\n */\n const setImplicitParam = (config) => {\n config.implicitParam = [\"#resourceId#\"];\n\n const fromPattern = /\\bFROM\\b/gi;\n const selectPattern = /\\bSELECT\\b/gi;\n\n if (config?.query) {\n const fromCount = (config.query.match(fromPattern) || []).length;\n const selectCount = (config.query.match(selectPattern) || []).length;\n let namedParameters;\n\n if (selectCount > 0) {\n if (fromCount > 1 && fromCount === selectCount) {\n namedParameters = config.query\n .substring(6, config.query.search(/\\bfrom\\b(?!(.|\\n)*(from))/i))\n // eslint-disable-next-line no-useless-escape\n .match(/(\\w*\\(.*?\\) as \\w*|[^\\(\\),]+)(?=\\s*,|\\s*$)/g);\n } else if (fromCount !== selectCount) {\n namedParameters = config.query\n .substring(6)\n // eslint-disable-next-line no-useless-escape\n .match(/(\\w*\\(.*?\\) as \\w*|[^\\(\\),]+)(?=\\s*,|\\s*$)/gi);\n } else if (fromCount === 1 && fromCount === selectCount) {\n namedParameters = config.query\n .substring(6, config.query.toLowerCase().indexOf(\"from\"))\n // eslint-disable-next-line no-useless-escape\n .match(/(\\w*\\(.*?\\) as \\w*|[^\\(\\),]+)(?=\\s*,|\\s*$)/gi);\n } else {\n namedParameters = config.query\n .substring(6)\n // eslint-disable-next-line no-useless-escape\n .match(/(\\w*\\(.*?\\) as \\w*|[^\\(\\),]+)(?=\\s*,|\\s*$)/gi);\n }\n\n const finalParameters = namedParameters?.filter(\n (parameter) => parameter.trim().length > 0\n );\n finalParameters?.forEach((parameter) => {\n let tempParameter = parameter.trim();\n if (tempParameter.toLowerCase().indexOf(\"as\") === 0) {\n tempParameter = parameter;\n }\n if (tempParameter.endsWith(\";\")) {\n tempParameter = tempParameter.slice(0, -1);\n }\n if (tempParameter !== \"*\") {\n const aliasIndex = tempParameter.toLowerCase().lastIndexOf(\" as \");\n if (aliasIndex >= 0) {\n const parameterWithAlias = tempParameter\n .substring(aliasIndex + 4)\n .trim();\n config.implicitParam.push(\"#\" + parameterWithAlias + \"#\");\n } else {\n config.implicitParam.push(\"#\" + tempParameter + \"#\");\n }\n }\n });\n }\n }\n };\n\n /**\n * Handles the deletion of a row in the notification configurations.\n *\n * @function handleDeleteRow\n * @param {number} index - The index of the configuration to delete.\n */\n const handleDeleteRow = (index) => {\n const newRows = notificationConfigDetails?.filter(\n (_, rowIndex) => rowIndex !== index\n );\n setNotificationConfigDetails(newRows);\n };\n\n /**\n * Deletes a specific condition from a configuration.\n *\n * @function deleteCondition\n * @param {number} configIndex - The index of the configuration containing the condition.\n * @param {number} index - The index of the condition to delete.\n */\n\n const deleteCondition = (configIndex, index) => {\n const notificationConfigDetail = [...notificationConfigDetails];\n\n const filteredConditions = notificationConfigDetail[\n configIndex\n ].conditions.filter((_, idx) => idx !== index);\n notificationConfigDetail[configIndex].conditions = filteredConditions;\n setNotificationConfigDetails(notificationConfigDetail);\n };\n /**\n * Opens the condition modal for adding or editing a condition.\n *\n * @async\n * @function openConditionModal\n * @param {Object} config - The configuration object containing the conditions.\n * @param {number} configIndex - The index of the configuration.\n * @param {Object} condition - The condition to be edited (if any).\n * @param {number} index - The index of the condition to be edited.\n */\n const openConditionModal = async (config, configIndex, condition, index) => {\n setSelectedConfig(config);\n setSelectedConfigIndex(configIndex);\n if (condition) {\n setSelectedCondition(condition);\n setConditionEditMode(true);\n setNewCondition(JSON.parse(JSON.stringify(condition)));\n\n setTypeConfigurationData(condition?.notificaitonConfigsType || []);\n setSelectedIndex(index);\n } else {\n setSelectedCondition({});\n setNewCondition({});\n setTypeConfigurationData([]);\n setConditionEditMode(false);\n }\n setNewType({});\n handleOverlayState();\n };\n\n /**\n * Handles changes to the query text in the notification configuration.\n *\n * @function handleTextChange\n * @param {number} index - The index of the configuration being updated.\n * @param {string} value - The new query value.\n */\n const handleTextChange = (index, value) => {\n const newConfig = [...notificationConfigDetails];\n newConfig[index].query = value; // Update the query in the configuration\n setNotificationConfigDetails(newConfig);\n };\n\n /**\n * Adds a new notification configuration to the list.\n *\n * @async\n * @function addConfiguration\n */\n const addConfiguration = async () => {\n let configuration = [...notificationConfigDetails];\n let addconfiguration = true;\n notificationConfigDetails.forEach((notification, index) => {\n if (notification.query === \"\") {\n addconfiguration = false;\n const fieldPath = `notificationConfigDetails.${index}.query`;\n\n setError(fieldPath, { type: \"manual\", message: \"Query Required\" });\n }\n });\n if (addconfiguration) {\n configuration.push({ query: \"\", conditions: [], queryParam: null });\n setNotificationConfigDetails(configuration);\n }\n };\n\n /**\n * Adds or edits a type configuration associated with a condition.\n *\n * @async\n * @function addTypeConfig\n * @param {Object} config - The type configuration configuration.push({ query: '', conditions: [], queryParam: null });\n setNotificationConfigDetails(configuration); to add or edit.\n * @param {number} index - The index of the configuration being edited (if applicable).\n */\n const addTypeConfig = async (config, index) => {\n if (config) {\n config.index = index;\n setSelectedTypeConfig(config);\n setNewType({\n ...JSON.parse(JSON.stringify(config)),\n implicitParam: selectedConfig.implicitParam,\n });\n setTypeEditMode(true);\n } else {\n setNewType({ ...newType, implicitParam: selectedConfig.implicitParam });\n setTypeEditMode(false);\n }\n openAddConfigurationModal();\n };\n\n /**\n * Opens the modal for adding or editing a type configuration.\n *\n * @function openAddConfigurationModal\n */\n const openAddConfigurationModal = () => {\n setToggleOtherOpen((cur) => !cur);\n };\n\n /**\n * Handles the addition of a new type configuration.\n *\n * @function handleOtherTypeConfiguration\n * @param {Object} data - The type configuration data to add.\n */\n const handleOtherTypeConfiguration = (data) => {\n if (typeEditMode) {\n const updatedData = typeConfigurationData.map((item, index) => {\n if (index === data.index) {\n return { ...item, ...data };\n }\n return item;\n });\n setTypeConfigurationData(updatedData);\n } else {\n setTypeConfigurationData([...typeConfigurationData, data]);\n }\n addTypeConfiguration(data);\n };\n\n /**\n * Deletes a specific type configuration from the list.\n *\n * @function handleTypeConfigurationDelete\n * @param {number} index - The index of the type configuration to delete.\n */\n const handleTypeConfigurationDelete = (index) => {\n setTypeConfigurationData((prevData) =>\n prevData.filter((_, i) => i !== index)\n );\n };\n\n /**\n * Initiates the editing of a type configuration by setting it as the selected type configuration.\n *\n * @function handleTypeConfigurationEdit\n * @param {number} index - The index of the type configuration to edit.\n */\n const handleTypeConfigurationEdit = (index) => {\n addTypeConfig(typeConfigurationData[index], index);\n };\n\n /**\n * Adds a type configuration to the new condition being created or edited.\n *\n * @function addTypeConfiguration\n * @param {Object} data - The type configuration data to add.\n */\n const addTypeConfiguration = (data) => {\n let condition = { ...newCondition };\n if (!newCondition.notificaitonConfigsType) {\n condition.notificaitonConfigsType = [];\n }\n if (typeEditMode) {\n condition.notificaitonConfigsType[selectedTypeConfig.index] = data;\n } else {\n condition.notificaitonConfigsType.push(data);\n }\n\n setNewCondition(condition);\n setNewType({});\n };\n\n const trackEvent = useTrackEvent();\n\n /**\n * Updates the new condition data based on the provided input.\n * If in edit mode, it updates an existing condition; otherwise, it adds a new one.\n *\n * @function setNewConditionData\n * @param {Object} data - The data to set for the new condition.\n * @param {boolean} conditionEditMode - A flag indicating if the condition is being edited.\n */\n const setNewConditionData = (data) => {\n if (conditionEditMode) {\n const notificationConfigDetail = [...notificationConfigDetails];\n setNewCondition({ ...newCondition, ...data });\n let conditions = { ...newCondition, ...data };\n notificationConfigDetail[selectedConfigIndex].conditions[selectedIndex] =\n conditions;\n setNotificationConfigDetails(notificationConfigDetail);\n setTypeConfigurationData([]);\n } else {\n const notificationConfigDetail = [...notificationConfigDetails];\n setNewCondition({ ...newCondition, ...data });\n let conditions = { ...newCondition, ...data };\n notificationConfigDetail[selectedConfigIndex].conditions.push(conditions);\n setNotificationConfigDetails(notificationConfigDetail);\n setTypeConfigurationData([]);\n }\n };\n\n /**\n * Updates the new type data based on the provided input.\n *\n * @function setNewTypeData\n * @param {Object} data - The data to set for the new type.\n */\n const setNewTypeData = (data) => {\n setNewType({ ...newType, ...data });\n };\n\n return (\n <>\n <ManageEventConfigurationSkeleton isLoading={isLoading}>\n <Card\n className=\"manage-eventConfiguration-type-body\"\n component=\"form\"\n ref={formRef}\n onSubmit={handleSubmit(submit)}\n data-testid=\"manageeventconfiguration-form\"\n >\n <CardHeader\n className=\"p-2.5 px-5 flex border-b text-customBlue\"\n subheader={translate(\n `${id ? \"UPDATE\" : \"ADD\"} EVENT CONFIGURATION`,\n )}\n slotProps={{\n subheader: { className: \"font-medium text-lg text-customBlue\" },\n }}\n data-testid=\"manageeventconfiguration-cardheader-subheader\"\n />\n <CardContent data-testid=\"manageeventconfiguration-cardcontent\">\n <Grid container spacing={2}>\n <Grid\n item\n size={{ xs: 12, sm: 6 }}\n data-testid=\"manageeventconfiguration-name-field\"\n >\n <FormControl variant=\"outlined\" className=\"w-full\">\n <Typography variant=\"body2\">\n {translate(\"Name\")}\n <span className=\"text-red-500 ml-1\">*</span>\n </Typography>\n <Box className=\"w-full\">\n <CustomTextField\n control={control}\n id=\"name\"\n name=\"name\"\n errors={errors}\n label=\"\"\n size=\"small\"\n dataTestId=\"manageeventconfiguration-name-textfield\"\n />\n </Box>\n </FormControl>\n </Grid>\n <Grid\n item\n size={{ xs: 12, sm: 6 }}\n data-testid=\"manageeventconfiguration-description-field\"\n >\n <FormControl variant=\"outlined\" className=\"w-full\">\n <Typography variant=\"body2\">\n {translate(\"Description\")}\n </Typography>\n <Box className=\"w-full\">\n <CustomTextArea\n control={control}\n id=\"description\"\n name=\"description\"\n errors={errors}\n label=\"\"\n minRows={2}\n data-testid=\"manageeventconfiguration-description-textarea\"\n />\n </Box>\n </FormControl>\n </Grid>\n <Grid\n item\n size={{ xs: 12, sm: 6 }}\n data-testid=\"manageeventconfiguration-eventtype-field\"\n >\n <FormControl variant=\"outlined\" className=\"w-full\">\n <Typography variant=\"body2\">\n {translate(\"Event Type\")}\n <span className=\"text-red-500 ml-1\">*</span>\n </Typography>\n <Box className=\"w-full\">\n <Controller\n name=\"eventType\"\n control={control}\n defaultValue=\"\"\n className=\"w-full\"\n render={({ field }) => (\n <Select\n className=\"w-full\"\n labelId=\"event-type-label\"\n id=\"reportgroup\"\n {...field}\n error={errors.eventType}\n size=\"small\"\n data-testid=\"manageeventconfiguration-eventtype-select\"\n >\n <MenuItem value=\"FORM_SUBMITTED\">\n <Typography variant=\"body2\">\n {translate(\"Form Submitted\")}\n </Typography>\n </MenuItem>\n <MenuItem value=\"TIMMER_BASED\">\n <Typography variant=\"body2\">\n {translate(\"Timer Based\")}\n </Typography>\n </MenuItem>\n <MenuItem value=\"MANUAL\">\n <Typography variant=\"body2\">\n {translate(\"Manual\")}\n </Typography>\n </MenuItem>\n <MenuItem value=\"RECURSION\">\n <Typography variant=\"body2\">\n {translate(\"Recursion\")}\n </Typography>\n </MenuItem>\n </Select>\n )}\n />\n {errors?.eventType && (\n <p\n className=\"error-helper-manage-event\"\n data-testid=\"custom-error-message\"\n >\n {errors?.eventType?.message}\n </p>\n )}\n </Box>\n </FormControl>\n </Grid>\n {eventType === \"FORM_SUBMITTED\" && (\n <Grid\n item\n size={{ xs: 12, sm: 6 }}\n data-testid=\"manageeventconfiguration-formtype-field\"\n >\n <FormControl variant=\"outlined\" className=\"w-full\">\n <Typography variant=\"body2\">\n {translate(\"Form Type\")}\n </Typography>\n <Box className=\"w-full\">\n <Controller\n className=\"w-full\"\n name=\"formTypeId\"\n control={control}\n defaultValue=\"\"\n render={({ field }) => (\n <Select\n {...field}\n className=\"w-full\"\n labelId=\"event-type-label\"\n displayEmpty\n size=\"small\"\n onChange={(e) => {\n const selectedId = e.target.value;\n field.onChange(selectedId);\n const selectedData = forms.find(\n (data) => data.id === selectedId,\n );\n setValue(\n \"eventTypeDetailCode\",\n selectedData?.code,\n );\n setValue(\n \"eventTypeDetailId\",\n selectedData?.detaiId || null,\n );\n }}\n data-testid=\"manageeventconfiguration-formtype-select\"\n >\n <MenuItem value=\"\">\n <Typography variant=\"body2\">\n {translate(\"Select\")}\n </Typography>\n </MenuItem>\n {forms?.map((data) => (\n <MenuItem key={data.id} value={data.id}>\n <Typography variant=\"body2\">\n {translate(data.name)}\n </Typography>\n </MenuItem>\n ))}\n </Select>\n )}\n />\n </Box>\n </FormControl>\n </Grid>\n )}\n {eventType === \"TIMMER_BASED\" && (\n <Grid\n item\n size={{ xs: 12, sm: 6 }}\n data-testid=\"manageeventconfiguration-triggerwhen-field\"\n >\n <FormControl variant=\"outlined\" className=\"w-full\">\n <Typography variant=\"body2\">\n {translate(\"Trigger When\")}\n <span className=\"text-red-500 ml-1\">*</span>\n </Typography>\n <Box className=\"w-full\">\n <Controller\n name=\"trigerWhen\"\n control={control}\n defaultValue=\"\"\n className=\"w-full\"\n render={({ field }) => (\n <Select\n className=\"w-full\"\n {...field}\n value={field.value}\n error={errors.trigerWhen}\n size=\"small\"\n data-testid=\"manageeventconfiguration-triggerwhen-select\"\n >\n <MenuItem value=\"\">\n <Typography variant=\"body2\">\n {translate(\"Select\")}\n </Typography>\n </MenuItem>\n <MenuItem value=\"IMMEDIATELY\">\n <Typography variant=\"body2\">\n {translate(\"Immediately\")}\n </Typography>\n </MenuItem>\n <MenuItem value=\"AFTER\">\n <Typography variant=\"body2\">\n {translate(\"After\")}\n </Typography>\n </MenuItem>\n <MenuItem value=\"MONTHLY\">\n <Typography variant=\"body2\">\n {translate(\"Monthly\")}\n </Typography>\n </MenuItem>\n <MenuItem value=\"WEEKLY\">\n <Typography variant=\"body2\">\n {translate(\"Weekly\")}\n </Typography>\n </MenuItem>\n <MenuItem value=\"DAILY\">\n <Typography variant=\"body2\">\n {translate(\"Daily\")}\n </Typography>\n </MenuItem>\n <MenuItem value=\"HOURLY\">\n <Typography variant=\"body2\">\n {translate(\"Hourly\")}\n </Typography>\n </MenuItem>\n <MenuItem value=\"MINUTE\">\n <Typography variant=\"body2\">\n {translate(\"Minutely\")}\n </Typography>\n </MenuItem>\n </Select>\n )}\n />\n {errors?.trigerWhen && (\n <p\n className=\"error-helper-manage-event\"\n data-testid=\"custom-error-message\"\n >\n {errors?.trigerWhen?.message}\n </p>\n )}\n </Box>\n </FormControl>\n </Grid>\n )}\n {eventType === \"TIMMER_BASED\" &&\n (trigerWhen === \"AFTER\" ||\n trigerWhen === \"MONTHLY\" ||\n trigerWhen === \"WEEKLY\") && (\n <Grid\n item\n size={{ xs: 12, sm: 6 }}\n data-testid=\"manageeventconfiguration-day-field\"\n >\n <FormControl variant=\"outlined\" className=\"w-full\">\n <Typography variant=\"body2\">\n {translate(\"day\")}\n <span className=\"text-red-500 ml-1\">*</span>\n </Typography>\n <CustomTextField\n control={control}\n id=\"day\"\n name=\"day\"\n errors={errors}\n type=\"number\"\n label=\"\"\n size=\"small\"\n dataTestId=\"manageeventconfiguration-day-textfield\"\n />\n </FormControl>\n </Grid>\n )}\n {eventType === \"TIMMER_BASED\" &&\n (trigerWhen === \"AFTER\" ||\n trigerWhen === \"MONTHLY\" ||\n trigerWhen === \"DAILY\" ||\n trigerWhen === \"WEEKLY\") && (\n <Grid\n item\n size={{ xs: 12, sm: 6 }}\n data-testid=\"manageeventconfiguration-hour-field\"\n >\n <FormControl variant=\"outlined\" className=\"w-full\">\n <Typography variant=\"body2\">\n {translate(\"Hour\")}\n <span className=\"text-red-500 ml-1\">*</span>\n </Typography>\n <CustomTextField\n control={control}\n id=\"hour\"\n name=\"hour\"\n type=\"number\"\n errors={errors}\n label=\"\"\n size=\"small\"\n dataTestId=\"manageeventconfiguration-hour-textfield\"\n />\n </FormControl>\n </Grid>\n )}\n {eventType === \"TIMMER_BASED\" &&\n trigerWhen &&\n trigerWhen !== \"IMMEDIATELY\" && (\n <Grid\n item\n size={{ xs: 12, sm: 6 }}\n data-testid=\"manageeventconfiguration-minute-field\"\n >\n <FormControl variant=\"outlined\" className=\"w-full\">\n <Typography variant=\"body2\">\n {translate(\"Minute\")}\n </Typography>\n <CustomTextField\n control={control}\n id=\"minute\"\n name=\"minute\"\n errors={errors}\n type=\"number\"\n label=\"\"\n size=\"small\"\n dataTestId=\"manageeventconfiguration-minute-textfield\"\n />\n </FormControl>\n </Grid>\n )}\n {eventType === \"RECURSION\" && (\n <Grid item size={{ xs: 12, sm: 6 }}>\n <FormControl variant=\"outlined\" className=\"w-full\">\n <Typography variant=\"body2\">\n {translate(\"Recursion Interval (in Minutes)\")}\n <span className=\"text-red-500 ml-1\">*</span>\n </Typography>\n <Box className=\"w-full\">\n <CustomTextField\n type=\"number\"\n control={control}\n id=\"recursionInterval\"\n name=\"recursionInterval\"\n errors={errors}\n label=\"\"\n size=\"small\"\n dataTestId=\"manageeventconfiguration-recursionInterval-textfield\"\n />\n </Box>\n </FormControl>\n </Grid>\n )}\n {(eventType === \"TIMMER_BASED\" || eventType === \"RECURSION\") && (\n <Grid item size={{ xs: 12, sm: 6 }}>\n <FormControl variant=\"outlined\" className=\"w-full\">\n <Typography variant=\"body2\">\n {translate(\"Reports\")}\n </Typography>\n <Box className=\"w-full\">\n <CustomDropdown\n id=\"reportUUID\"\n name=\"reportUUID\"\n displayName=\"name\"\n optionValue=\"uuid\"\n multiple\n control={control}\n options={reportList}\n />\n </Box>\n </FormControl>\n </Grid>\n )}\n {eventType === \"MANUAL\" && (\n <Grid\n item\n size={{ xs: 12, sm: 6 }}\n data-testid=\"manageeventconfiguration-event-field\"\n >\n <FormControl variant=\"outlined\" className=\"w-full\">\n <Typography variant=\"body2\">\n {translate(\"Event\")}\n </Typography>\n <Box className=\"w-full\">\n <Controller\n name=\"eventTypeDetailCode\"\n control={control}\n className=\"w-full\"\n render={({ field }) => (\n <Select\n className=\"w-full\"\n {...field}\n value={field.value}\n error={errors.eventTypeDetailCode}\n size=\"small\"\n data-testid=\"manageeventconfiguration-eventtype-detail-select\"\n >\n <MenuItem value=\"\">{translate(\"None\")}</MenuItem>\n {events &&\n Object.entries(events).map(([key, data]) => (\n <MenuItem key={key} value={key}>\n {data}\n </MenuItem>\n ))}\n </Select>\n )}\n />\n {errors?.eventTypeDetailCode && (\n <p\n className=\"error-helper-manage-event\"\n data-testid=\"manageeventconfiguration-eventtype-detail-error\"\n >\n {errors?.eventTypeDetailCode?.message}\n </p>\n )}\n </Box>\n </FormControl>\n </Grid>\n )}\n </Grid>\n <Divider className=\"m-[20px_3px]\" />\n <Grid\n container\n spacing={5}\n justifyContent=\"space-between\"\n alignItems=\"center\"\n data-testid=\"manageeventconfiguration-add-configuration\"\n >\n <Grid item>\n <Typography variant=\"body2\">\n {translate(\"Add Configuration\")}\n </Typography>\n </Grid>\n <Grid item>\n <Button\n size=\"small\"\n variant=\"contained\"\n onClick={addConfiguration}\n data-testid=\"manageeventconfiguration-add-button\"\n >\n {translate(\"Add\")}\n </Button>\n </Grid>\n </Grid>\n <Grid container className=\"w-full mt-5\">\n <Grid item className=\"w-full\">\n <TableContainer\n component={Paper}\n className=\"w-full\"\n data-testid=\"manageeventconfiguration-table-container\"\n >\n <Table sx={{ minWidth: 800 }}>\n <TableHead>\n <TableRow\n sx={{\n backgroundColor: (theme) =>\n theme.palette.mode === \"dark\"\n ? theme.palette.custom.tableHeader\n : \"var(--color-gray4)\",\n }}\n >\n <TableCell\n className=\"border border-gray-300 align-top text-[13px]\"\n data-testid=\"manageeventconfiguration-table-header-query\"\n >\n {translate(\"Query\")}\n </TableCell>\n <TableCell\n className=\"border border-gray-300 align-top text-[13px]\"\n data-testid=\"manageeventconfiguration-table-header-condition\"\n >\n {translate(\"Condition\")}\n </TableCell>\n <TableCell\n className=\"border border-gray-300 align-top text-[13px]\"\n data-testid=\"manageeventconfiguration-table-header-action\"\n >\n {translate(\"Actions\")}\n </TableCell>\n </TableRow>\n </TableHead>\n <TableBody>\n {notificationConfigDetails?.map((row, index) => (\n <TableRow\n key={index + 1}\n sx={{\n backgroundColor: (theme) => {\n const isDark = theme.palette.mode === \"dark\";\n if (index % 2 === 0) {\n // Even rows: White in light mode, deep background in dark mode\n return isDark\n ? theme.palette.background.paper\n : \"#fff\";\n } else {\n // Odd rows: Light gray in light mode, slightly lighter gray/blue in dark mode\n return isDark ? \"#1C2128\" : \"var(--color-gray4)\";\n }\n },\n // Adding a hover state that works in both modes\n \"&:hover\": {\n backgroundColor: (theme) =>\n theme.palette.mode === \"dark\"\n ? \"#21262D\"\n : \"var(--color-gray4)\",\n },\n }}\n data-testid={`manageeventconfiguration-table-row-${index}`}\n >\n <TableCell\n className=\"border border-gray-300 align-top\"\n style={{ lineHeight: bodyLineHeight }}\n data-testid={`manageeventconfiguration-table-row-${index}-query`}\n >\n <div className=\"flex flex-col items-start min-w-[300px]\">\n <FormControl\n variant=\"outlined\"\n className=\"w-full\"\n >\n <Box className=\"w-full\">\n <CustomTextArea\n required\n control={control}\n id={`notificationConfigDetails.${index}.query`}\n name={`notificationConfigDetails.${index}.query`}\n errors={errors}\n value={row.query}\n onChange={(e) => {\n setValue(\n `notificationConfigDetails.${index}.query`,\n e.target.value,\n );\n handleTextChange(index, e.target.value);\n const fieldPath = `notificationConfigDetails.${index}.query`;\n if (getValues(fieldPath) === \"\") {\n setError(fieldPath, {\n type: \"manual\",\n message: \"Query Required\",\n });\n } else {\n clearErrors(fieldPath);\n }\n }}\n onBlur={() => {\n const fieldPath = `notificationConfigDetails.${index}.query`;\n if (getValues(fieldPath) === \"\") {\n setError(fieldPath, {\n type: \"manual\",\n message: \"Query Required\",\n });\n } else {\n clearErrors(fieldPath);\n }\n setImplicitParam(row);\n }}\n label=\"\"\n minRows={5}\n maxRows={20}\n data-testid={`manageeventconfiguration-table-row-${index}-query-textarea`}\n />\n </Box>\n </FormControl>\n <td\n style={{\n whiteSpace: \"normal\",\n width: \"100%\",\n overflowWrap: \"break-word\",\n }}\n >\n <b>{row?.implicitParam}</b>\n </td>\n </div>\n </TableCell>\n <TableCell\n className=\"border border-gray-300 align-top\"\n data-testid={`manageeventconfiguration-table-row-${index}-condition`}\n >\n <div\n style={{\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"flex-start\",\n width: \"100%\",\n }}\n >\n {row?.conditions?.length > 0 ? (\n row?.conditions.map(\n (condition, conditionIndex) => (\n <div\n key={conditionIndex + 1}\n style={{ width: \"100%\" }}\n >\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n width: \"100%\",\n }}\n data-testid={\n \"manageeventconfiguration-condition-rows\"\n }\n >\n <Typography\n className=\"mr-1\"\n variant=\"body2\"\n >\n {condition?.condition ||\n \"No condition specified\"}\n </Typography>\n <FontAwesomeIcon\n className=\"bg-[var(--color-gray3)] text-gray-600 rounded-full p-[10px] w-[14px] h-[14px] mx-1 cursor-pointer hover:bg-gray-300 hover:text-[#11B666] transition-all\"\n icon={faPen}\n onClick={() =>\n openConditionModal(\n row,\n index,\n condition,\n conditionIndex,\n )\n }\n data-testid={`manageeventconfiguration-table-row-${index}-condition-edit-${conditionIndex}`}\n />\n <FontAwesomeIcon\n icon={faTrash}\n className=\"bg-[var(--color-gray3)] text-gray-600 rounded-full p-[10px] w-[14px] h-[14px] mx-1 cursor-pointer hover:bg-gray-300 hover:text-[var(--color-error)] transition-all\"\n onClick={() =>\n deleteCondition(\n index,\n conditionIndex,\n )\n }\n data-testid={`manageeventconfiguration-table-row-${index}-condition-delete-${conditionIndex}`}\n />\n {conditionIndex ===\n row?.conditions.length - 1 && (\n <FontAwesomeIcon\n icon={faPlus}\n onClick={() =>\n openConditionModal(row, index)\n }\n className=\"bg-[var(--color-gray3)] text-gray-600 rounded-full p-[10px] w-[14px] h-[14px] mx-1 cursor-pointer hover:bg-gray-300 hover:text-[var(--color-primary)] transition-all\"\n data-testid={`manageeventconfiguration-table-row-${index}-condition-add`}\n />\n )}\n </div>\n {conditionIndex <\n row?.conditions.length - 1 && (\n <Divider className=\"w-full m-[10px_0px]\" />\n )}\n </div>\n ),\n )\n ) : (\n <div\n className=\"flex flex-row items-center justify-between w-full mt-2 sm:mt-0 text-[14px]\"\n >\n <span className=\"mr-3 flex-1\">{translate(\"No Condition Added\")}</span>\n <div className=\"flex items-center gap-3\">\n <FontAwesomeIcon\n icon={faPlus}\n onClick={() =>\n openConditionModal(row, index)\n }\n className=\"bg-gray-200 text-gray-600 rounded-full p-2 w-[16px] h-[16px] cursor-pointer hover:bg-gray-300 hover:text-[var(--color-primary)] transition-all\"\n data-testid={`manageeventconfiguration-table-row-${index}-condition-add-empty`}\n />\n </div>\n </div>\n )}\n </div>\n </TableCell>\n\n <TableCell\n className=\"border border-gray-300 align-top\"\n data-testid={`manageeventconfiguration-table-row-${index}-action`}\n >\n <div\n style={{\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"flex-start\",\n }}\n >\n <Button\n onClick={() => {\n handleDeleteRow(index);\n const fieldPath = `notificationConfigDetails.${index}.query`;\n clearErrors(fieldPath);\n }}\n size=\"small\"\n aria-label=\"delete\"\n data-testid={`manageeventconfiguration-table-row-${index}-action-delete`}\n >\n <FontAwesomeIcon\n icon={faTrash}\n className=\"text-[19px] text-[var(--color-error)]\"\n />\n </Button>\n </div>\n </TableCell>\n </TableRow>\n ))}\n </TableBody>\n </Table>\n </TableContainer>\n </Grid>\n </Grid>\n </CardContent>\n <Divider className=\"m-[8px_0px]\" />\n <CardActions\n className=\"flex flex-col sm:flex-row justify-end gap-2\"\n data-testid=\"manageeventconfiguration-cardactions\"\n >\n <Button\n variant=\"contained\"\n color=\"secondary\"\n type=\"button\"\n size=\"small\"\n className=\"w-full sm:w-auto\"\n onClick={() => {\n trackEvent(\"button_click\", {\n button_name: \"manageeventconfiguration-back-button\",\n button_type: \"cancel\",\n button_id: \"manageeventconfiguration-back-button\",\n });\n navigate(\"/ui/medplat/notification/all\");\n }}\n data-testid=\"manageeventconfiguration-back-button\"\n >\n {translate(\"Cancel\")}\n </Button>\n <Button\n size=\"small\"\n variant=\"contained\"\n type=\"submit\"\n color=\"primary\"\n className=\"w-full sm:w-auto m-0\"\n data-testid=\"manageeventconfiguration-save-button\"\n >\n {translate(`${id ? \"Update\" : \"Save\"}`)}\n </Button>\n </CardActions>\n </Card>\n </ManageEventConfigurationSkeleton>\n <Suspense>\n <ConditionConfig\n selectedConfig={selectedConfig}\n notificationtypeMap={notificationTypeMap}\n selectedCondition={selectedCondition}\n newCondition={newCondition}\n handleTypeConfigurationDelete={handleTypeConfigurationDelete}\n handleTypeConfigurationEdit={handleTypeConfigurationEdit}\n addTypeConfig={addTypeConfig}\n setNewConditionData={setNewConditionData}\n typeConfigurationData={typeConfigurationData}\n setNewTypeData={setNewTypeData}\n overlayOpen={overlayOpen}\n handleOverlayState={handleOverlayState}\n data-testid=\"manageeventconfiguration-conditionconfig\"\n />\n </Suspense>\n <Suspense>\n {newType?.type === \"MOBILE\" ? (\n <MobileTypeEventConfigModal\n type={newType}\n open={toggleOtherOpen}\n notificationtypeMap={notificationTypeMap}\n handleClick={handleOtherTypeConfiguration}\n handleClose={() => {\n setToggleOtherOpen((cur) => !cur);\n setNewType({});\n }}\n data-testid=\"manageeventconfiguration-mobiletypeeventconfigmodal\"\n />\n ) : (\n <OtherTypeEventConfigModal\n type={newType}\n open={toggleOtherOpen}\n handleClick={handleOtherTypeConfiguration}\n handleClose={() => {\n setToggleOtherOpen((cur) => !cur);\n setNewType({});\n }}\n data-testid=\"manageeventconfiguration-othertypeeventconfigmodal\"\n />\n )}\n </Suspense>\n </>\n );\n}\n\nexport default ManageEventConfiguration;\n"],"names":["ConditionConfig","lazy","MobileTypeEventConfigModal","OtherTypeEventConfigModal","ManageEventConfiguration","translate","useTranslateProvider","formRef","useRef","submitRef","id","useParams","navigate","useNavigate","forms","setForms","useState","events","setEvents","notificationTypeMap","setNotificationTypeMap","notificationConfigDetails","setNotificationConfigDetails","selectedConfigIndex","setSelectedConfigIndex","selectedConfig","setSelectedConfig","selectedCondition","setSelectedCondition","selectedIndex","setSelectedIndex","newCondition","setNewCondition","conditionEditMode","setConditionEditMode","selectedTypeConfig","setSelectedTypeConfig","newType","setNewType","overlayOpen","setOverlayOpen","typeEditMode","setTypeEditMode","toggleOtherOpen","setToggleOtherOpen","typeConfigurationData","setTypeConfigurationData","isLoading","setIsLoading","reportList","setReportList","bodyLineHeight","handleOverlayState","validationSchema","Yup","eventType","schema","value","trigerWhen","control","handleSubmit","setValue","setError","clearErrors","getValues","watch","errors","useForm","yupResolver","useEffect","form","trackEvent","submit","data","isTimerBased","isFormSubmitted","isManual","isRecursion","needsDay","needsHour","cleanedNotificationConfigDetails","config","_a","condition","typeConfig","update","save","showToast","cur","loadInitialData","res","retrieveAllForm","manualevent","retrieveManualEvents","notificationtype","retrieveAllNotifications","notificationtypeObject","type","getReportsList","responseByid","retrieveByUUID","_c","_b","setImplicitParam","_d","key","error","fromPattern","selectPattern","fromCount","selectCount","namedParameters","finalParameters","parameter","tempParameter","aliasIndex","parameterWithAlias","handleDeleteRow","index","newRows","_","rowIndex","deleteCondition","configIndex","notificationConfigDetail","filteredConditions","idx","openConditionModal","handleTextChange","newConfig","addConfiguration","configuration","addconfiguration","notification","fieldPath","addTypeConfig","openAddConfigurationModal","handleOtherTypeConfiguration","updatedData","item","addTypeConfiguration","handleTypeConfigurationDelete","prevData","i","handleTypeConfigurationEdit","useTrackEvent","setNewConditionData","conditions","setNewTypeData","jsxs","Fragment","jsx","ManageEventConfigurationSkeleton","Card","CardHeader","CardContent","Grid","FormControl","Typography","Box","CustomTextField","CustomTextArea","Controller","field","Select","MenuItem","e","selectedId","selectedData","CustomDropdown","Divider","Button","TableContainer","Paper","Table","TableHead","TableRow","theme","TableCell","TableBody","row","isDark","conditionIndex","FontAwesomeIcon","faPen","faTrash","faPlus","CardActions","Suspense"],"mappings":"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"}
1
+ {"version":3,"file":"ManageEventConfiguration-DV3I5POA.js","sources":["../src/views/Events/ManageEventConfiguration.jsx"],"sourcesContent":["import {\n retrieveAllForm,\n retrieveByUUID,\n retrieveManualEvents,\n save,\n update,\n} from \"../../services/EventConfig\";\nimport {\n getReportsList,\n retrieveAllNotifications,\n} from \"@/common/services/GlobalApis\";\nimport { showToast } from \"@/common/toaster/toaster\";\nimport CustomTextArea from \"@/views/custom-components/CustomTextArea\";\nimport CustomTextField from \"@/views/custom-components/CustomTextField\";\nimport \"./Styles/ManageEventConfiguration.scss\";\nimport { yupResolver } from \"@hookform/resolvers/yup\";\nimport CustomDropdown from \"@/views/custom-components/CustomDropdown\";\nimport {\n Box,\n Button,\n Card,\n CardActions,\n CardContent,\n CardHeader,\n Divider,\n FormControl,\n MenuItem,\n Paper,\n Select,\n Table,\n TableBody,\n TableCell,\n TableContainer,\n TableHead,\n TableRow,\n Typography,\n} from \"@mui/material\";\nimport Grid from \"@mui/material/Grid2\";\nimport React, { lazy, Suspense, useEffect, useRef, useState } from \"react\";\nimport { Controller, useForm } from \"react-hook-form\";\nimport { useNavigate } from \"react-router\";\nimport { useParams } from \"react-router-dom\";\nimport * as Yup from \"yup\";\nimport { useTranslateProvider } from \"@/common/languageTranslator/TranslationContext\";\nimport useTrackEvent from \"@/hooks/useTrackEvent\";\nconst ConditionConfig = lazy(() => import(\"./ConditionConfig\"));\nconst MobileTypeEventConfigModal = lazy(\n () => import(\"./MobileTypeEventConfigModal\")\n);\nconst OtherTypeEventConfigModal = lazy(\n () => import(\"./OtherTypeEventConfigModal\")\n);\nimport { ManageEventConfigurationSkeleton } from \"./Skeletons/EventsSkeleton\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { faPen, faPlus, faTrash } from \"@fortawesome/free-solid-svg-icons\";\n\n/**\n * ManageEventConfiguration component handles the creation and editing\n * of event configurations, including various notification types and triggers.\n * @module ManageEventConfiguration\n *\n *\n *\n * @component\n */\nfunction ManageEventConfiguration() {\n const { translate } = useTranslateProvider();\n\n const formRef = useRef(null);\n const submitRef = useRef(false);\n const { id } = useParams();\n const navigate = useNavigate();\n const [forms, setForms] = useState(null);\n const [events, setEvents] = useState(null);\n const [notificationTypeMap, setNotificationTypeMap] = useState({});\n const [notificationConfigDetails, setNotificationConfigDetails] = useState(\n []\n );\n const [selectedConfigIndex, setSelectedConfigIndex] = useState(null);\n const [selectedConfig, setSelectedConfig] = useState(null);\n const [selectedCondition, setSelectedCondition] = useState(null);\n const [selectedIndex, setSelectedIndex] = useState(null);\n const [newCondition, setNewCondition] = useState(null);\n const [conditionEditMode, setConditionEditMode] = useState(null);\n const [selectedTypeConfig, setSelectedTypeConfig] = useState(null);\n const [newType, setNewType] = useState(null);\n const [overlayOpen, setOverlayOpen] = useState(false);\n const [typeEditMode, setTypeEditMode] = useState(false);\n const [toggleOtherOpen, setToggleOtherOpen] = useState(false);\n const [typeConfigurationData, setTypeConfigurationData] = useState([]);\n const [isLoading, setIsLoading] = useState(false);\n const [reportList, setReportList] = useState([]);\n const bodyLineHeight = window.getComputedStyle(document.body).lineHeight;\n /**\n * Toggles the overlay open/closed state.\n *\n * @function handleOverlayState\n */\n const handleOverlayState = () => setOverlayOpen(!overlayOpen);\n\n const validationSchema = Yup.object().shape({\n name: Yup.string().required(\"Enter Name\"),\n eventType: Yup.string().required(\"Select Event Type\"),\n recursionInterval: Yup.number()\n .typeError(\"Recursion Interval must be a number\")\n .when([], {\n is: () => eventType === \"RECURSION\",\n then: (schema) =>\n schema\n .required(\"Recursion Interval is required\")\n .moreThan(0, \"Recursion Interval must be greater than or equal to 1\")\n .lessThan(1441, \"Recursion Interval must be less than or equal to 1440\"),\n otherwise: (schema) => schema.notRequired(),\n }),\n trigerWhen: Yup.string().test(\n \"is-required\",\n \"trigerWhen is required\",\n function (value) {\n if (eventType === \"TIMMER_BASED\") {\n return !!value;\n }\n return true;\n }\n ),\n day: Yup.string().test(\"is-required\", \"day is required\", function (value) {\n if (\n eventType === \"TIMMER_BASED\" &&\n (trigerWhen === \"AFTER\" || trigerWhen === \"MONTHLY\")\n ) {\n return !!value;\n }\n return true;\n }),\n hour: Yup.string().test(\n \"is-required\",\n \"hour is required\",\n function (value) {\n if (\n eventType === \"TIMMER_BASED\" &&\n (trigerWhen === \"AFTER\" ||\n trigerWhen === \"MONTHLY\" ||\n trigerWhen === \"DAILY\")\n ) {\n return !!value;\n }\n return true;\n }\n ),\n minute: Yup.string().notRequired(),\n // notificationConfigDetails: Yup.array().of(\n // Yup.object().shape({\n // query: Yup.string().required('Query is required'), // Ensure query is present\n // // condition: Yup.string().required('Condition is required'), // Ensure condition is present\n // // action: Yup.string().required('Action is required'), // Ensure action is present\n // })\n // ),\n });\n const {\n control,\n handleSubmit,\n setValue,\n setError,\n clearErrors,\n getValues,\n watch,\n formState: { errors },\n } = useForm({\n defaultValues: {\n name: \"\",\n description: \"\",\n eventType: \"\",\n recursionInterval: 0,\n minute: 0\n },\n resolver: yupResolver(validationSchema),\n mode: \"onChange\",\n });\n\n const eventType = watch(\"eventType\");\n let trigerWhen = watch(\"trigerWhen\");\n\n /**\n * Handles form submission.\n *\n * @async\n * @function submit\n * @param {Object} data - The form data to submit.\n */\n\n useEffect(() => {\n let form = formRef.current;\n\n return () => {\n trackEvent(\"conversion_event\", {\n form,\n form_name: \"Manage Event Configuration\",\n submit: submitRef.current,\n }); // Use the current ref value\n };\n }, []);\n const submit = async (data) => {\n try {\n if (notificationConfigDetails.length > 0) {\n data.minute = Number(data.minute || 0);\n data.notificationConfigDetails = notificationConfigDetails;\n\n const isTimerBased = eventType === \"TIMMER_BASED\";\n const isFormSubmitted = eventType === \"FORM_SUBMITTED\";\n const isManual = eventType === \"MANUAL\";\n const isRecursion = eventType === \"RECURSION\";\n if (!isTimerBased) {\n delete data.trigerWhen;\n delete data.day;\n delete data.hour;\n delete data.minute;\n }\n if (!isFormSubmitted) {\n delete data.formTypeId;\n }\n if (!isFormSubmitted && !isManual) {\n delete data.eventTypeDetailCode;\n delete data.eventTypeDetailId;\n }\n if (isRecursion) {\n delete data.formTypeId;\n data.trigerWhen = \"RECURSION\";\n } else {\n delete data.recursionInterval;\n }\n\n const needsDay = [\"AFTER\", \"MONTHLY\", \"WEEKLY\"];\n const needsHour = [\"AFTER\", \"MONTHLY\", \"DAILY\", \"WEEKLY\"];\n if (!needsDay.includes(trigerWhen)) {\n delete data.day;\n }\n if (!needsHour.includes(trigerWhen)) {\n delete data.day;\n delete data.hour;\n }\n if (trigerWhen === \"IMMEDIATELY\") {\n delete data.day;\n delete data.hour;\n delete data.minute;\n }\n const cleanedNotificationConfigDetails = notificationConfigDetails.map(config => ({\n ...config,\n conditions: config.conditions?.map(condition => ({\n ...condition,\n notificaitonConfigsType: condition.notificaitonConfigsType ? condition.notificaitonConfigsType.map(typeConfig => ({\n ...typeConfig,\n queryCode: typeConfig.queryCode === \"\" ? null : typeConfig.queryCode\n })) : condition.notificaitonConfigsType\n }))\n }));\n data.notificationConfigDetails = cleanedNotificationConfigDetails;\n if (id) {\n await update(data);\n } else {\n await save(data);\n }\n\n trackEvent(\"button_click\", {\n button_name: \"manageeventconfiguration-save-button\",\n button_type: \"submit\",\n button_id: \"manageeventconfiguration-save-button\",\n });\n\n showToast({\n message: id\n ? \"Event Configuration Updated successfully\"\n : \"submit successfully\",\n type: \"success\",\n });\n submitRef.current = true;\n navigate(\"/ui/medplat/notification/all\");\n } else {\n showToast({\n message: \"Please add atleast query / condition for the configuration\",\n type: \"warn\",\n });\n }\n } catch {\n showToast({ message: \"submit problem\", type: \"error\" });\n setIsLoading((cur) => !cur);\n }\n };\n\n useEffect(() => {\n loadInitialData();\n }, []);\n\n /**\n * Loads initial data for forms, events, and notification types when the component mounts.\n *\n * @async\n * @function loadInitialData\n */\n const loadInitialData = async () => {\n try {\n setIsLoading((cur) => !cur);\n const res = await retrieveAllForm({ is_active: true });\n setForms(res?.data);\n const manualevent = await retrieveManualEvents();\n\n setEvents(manualevent?.data);\n const notificationtype = await retrieveAllNotifications(true);\n let notificationtypeObject = {};\n notificationtype?.data?.forEach((type) => {\n notificationtypeObject[type?.id] = type?.notificationName;\n });\n setNotificationTypeMap(notificationtypeObject);\n\n const { data: reportList } = await getReportsList(); // doubt for import\n setReportList(reportList || []);\n\n if (id) {\n const responseByid = await retrieveByUUID(id);\n responseByid?.data?.notificationConfigDetails?.forEach((config) => {\n setImplicitParam(config);\n });\n let data = responseByid?.data;\n Object.keys(data)?.forEach((key) => {\n if (data[key] !== undefined && data[key] !== null) {\n setValue(key, data[key]);\n }\n });\n setNotificationConfigDetails(data?.notificationConfigDetails || []);\n }\n setIsLoading((cur) => !cur);\n } catch (error) {\n showToast({\n message: \"Error in loading manage events\",\n type: `Error:${error?.message}`,\n });\n setIsLoading((cur) => !cur);\n }\n };\n\n /**\n * Sets implicit parameters for a given notification configuration.\n *\n * @function setImplicitParam\n * @param {Object} config - The notification configuration object.\n */\n const setImplicitParam = (config) => {\n config.implicitParam = [\"#resourceId#\"];\n\n const fromPattern = /\\bFROM\\b/gi;\n const selectPattern = /\\bSELECT\\b/gi;\n\n if (config?.query) {\n const fromCount = (config.query.match(fromPattern) || []).length;\n const selectCount = (config.query.match(selectPattern) || []).length;\n let namedParameters;\n\n if (selectCount > 0) {\n if (fromCount > 1 && fromCount === selectCount) {\n namedParameters = config.query\n .substring(6, config.query.search(/\\bfrom\\b(?!(.|\\n)*(from))/i))\n // eslint-disable-next-line no-useless-escape\n .match(/(\\w*\\(.*?\\) as \\w*|[^\\(\\),]+)(?=\\s*,|\\s*$)/g);\n } else if (fromCount !== selectCount) {\n namedParameters = config.query\n .substring(6)\n // eslint-disable-next-line no-useless-escape\n .match(/(\\w*\\(.*?\\) as \\w*|[^\\(\\),]+)(?=\\s*,|\\s*$)/gi);\n } else if (fromCount === 1 && fromCount === selectCount) {\n namedParameters = config.query\n .substring(6, config.query.toLowerCase().indexOf(\"from\"))\n // eslint-disable-next-line no-useless-escape\n .match(/(\\w*\\(.*?\\) as \\w*|[^\\(\\),]+)(?=\\s*,|\\s*$)/gi);\n } else {\n namedParameters = config.query\n .substring(6)\n // eslint-disable-next-line no-useless-escape\n .match(/(\\w*\\(.*?\\) as \\w*|[^\\(\\),]+)(?=\\s*,|\\s*$)/gi);\n }\n\n const finalParameters = namedParameters?.filter(\n (parameter) => parameter.trim().length > 0\n );\n finalParameters?.forEach((parameter) => {\n let tempParameter = parameter.trim();\n if (tempParameter.toLowerCase().indexOf(\"as\") === 0) {\n tempParameter = parameter;\n }\n if (tempParameter.endsWith(\";\")) {\n tempParameter = tempParameter.slice(0, -1);\n }\n if (tempParameter !== \"*\") {\n const aliasIndex = tempParameter.toLowerCase().lastIndexOf(\" as \");\n if (aliasIndex >= 0) {\n const parameterWithAlias = tempParameter\n .substring(aliasIndex + 4)\n .trim();\n config.implicitParam.push(\"#\" + parameterWithAlias + \"#\");\n } else {\n config.implicitParam.push(\"#\" + tempParameter + \"#\");\n }\n }\n });\n }\n }\n };\n\n /**\n * Handles the deletion of a row in the notification configurations.\n *\n * @function handleDeleteRow\n * @param {number} index - The index of the configuration to delete.\n */\n const handleDeleteRow = (index) => {\n const newRows = notificationConfigDetails?.filter(\n (_, rowIndex) => rowIndex !== index\n );\n setNotificationConfigDetails(newRows);\n };\n\n /**\n * Deletes a specific condition from a configuration.\n *\n * @function deleteCondition\n * @param {number} configIndex - The index of the configuration containing the condition.\n * @param {number} index - The index of the condition to delete.\n */\n\n const deleteCondition = (configIndex, index) => {\n const notificationConfigDetail = [...notificationConfigDetails];\n\n const filteredConditions = notificationConfigDetail[\n configIndex\n ].conditions.filter((_, idx) => idx !== index);\n notificationConfigDetail[configIndex].conditions = filteredConditions;\n setNotificationConfigDetails(notificationConfigDetail);\n };\n /**\n * Opens the condition modal for adding or editing a condition.\n *\n * @async\n * @function openConditionModal\n * @param {Object} config - The configuration object containing the conditions.\n * @param {number} configIndex - The index of the configuration.\n * @param {Object} condition - The condition to be edited (if any).\n * @param {number} index - The index of the condition to be edited.\n */\n const openConditionModal = async (config, configIndex, condition, index) => {\n setSelectedConfig(config);\n setSelectedConfigIndex(configIndex);\n if (condition) {\n setSelectedCondition(condition);\n setConditionEditMode(true);\n setNewCondition(JSON.parse(JSON.stringify(condition)));\n\n setTypeConfigurationData(condition?.notificaitonConfigsType || []);\n setSelectedIndex(index);\n } else {\n setSelectedCondition({});\n setNewCondition({});\n setTypeConfigurationData([]);\n setConditionEditMode(false);\n }\n setNewType({});\n handleOverlayState();\n };\n\n /**\n * Handles changes to the query text in the notification configuration.\n *\n * @function handleTextChange\n * @param {number} index - The index of the configuration being updated.\n * @param {string} value - The new query value.\n */\n const handleTextChange = (index, value) => {\n const newConfig = [...notificationConfigDetails];\n newConfig[index].query = value; // Update the query in the configuration\n setNotificationConfigDetails(newConfig);\n };\n\n /**\n * Adds a new notification configuration to the list.\n *\n * @async\n * @function addConfiguration\n */\n const addConfiguration = async () => {\n let configuration = [...notificationConfigDetails];\n let addconfiguration = true;\n notificationConfigDetails.forEach((notification, index) => {\n if (notification.query === \"\") {\n addconfiguration = false;\n const fieldPath = `notificationConfigDetails.${index}.query`;\n\n setError(fieldPath, { type: \"manual\", message: \"Query Required\" });\n }\n });\n if (addconfiguration) {\n configuration.push({ query: \"\", conditions: [], queryParam: null });\n setNotificationConfigDetails(configuration);\n }\n };\n\n /**\n * Adds or edits a type configuration associated with a condition.\n *\n * @async\n * @function addTypeConfig\n * @param {Object} config - The type configuration configuration.push({ query: '', conditions: [], queryParam: null });\n setNotificationConfigDetails(configuration); to add or edit.\n * @param {number} index - The index of the configuration being edited (if applicable).\n */\n const addTypeConfig = async (config, index) => {\n if (config) {\n config.index = index;\n setSelectedTypeConfig(config);\n setNewType({\n ...JSON.parse(JSON.stringify(config)),\n implicitParam: selectedConfig.implicitParam,\n });\n setTypeEditMode(true);\n } else {\n setNewType({ ...newType, implicitParam: selectedConfig.implicitParam });\n setTypeEditMode(false);\n }\n openAddConfigurationModal();\n };\n\n /**\n * Opens the modal for adding or editing a type configuration.\n *\n * @function openAddConfigurationModal\n */\n const openAddConfigurationModal = () => {\n setToggleOtherOpen((cur) => !cur);\n };\n\n /**\n * Handles the addition of a new type configuration.\n *\n * @function handleOtherTypeConfiguration\n * @param {Object} data - The type configuration data to add.\n */\n const handleOtherTypeConfiguration = (data) => {\n if (typeEditMode) {\n const updatedData = typeConfigurationData.map((item, index) => {\n if (index === data.index) {\n return { ...item, ...data };\n }\n return item;\n });\n setTypeConfigurationData(updatedData);\n } else {\n setTypeConfigurationData([...typeConfigurationData, data]);\n }\n addTypeConfiguration(data);\n };\n\n /**\n * Deletes a specific type configuration from the list.\n *\n * @function handleTypeConfigurationDelete\n * @param {number} index - The index of the type configuration to delete.\n */\n const handleTypeConfigurationDelete = (index) => {\n setTypeConfigurationData((prevData) =>\n prevData.filter((_, i) => i !== index)\n );\n };\n\n /**\n * Initiates the editing of a type configuration by setting it as the selected type configuration.\n *\n * @function handleTypeConfigurationEdit\n * @param {number} index - The index of the type configuration to edit.\n */\n const handleTypeConfigurationEdit = (index) => {\n addTypeConfig(typeConfigurationData[index], index);\n };\n\n /**\n * Adds a type configuration to the new condition being created or edited.\n *\n * @function addTypeConfiguration\n * @param {Object} data - The type configuration data to add.\n */\n const addTypeConfiguration = (data) => {\n let condition = { ...newCondition };\n if (!newCondition.notificaitonConfigsType) {\n condition.notificaitonConfigsType = [];\n }\n if (typeEditMode) {\n condition.notificaitonConfigsType[selectedTypeConfig.index] = data;\n } else {\n condition.notificaitonConfigsType.push(data);\n }\n\n setNewCondition(condition);\n setNewType({});\n };\n\n const trackEvent = useTrackEvent();\n\n /**\n * Updates the new condition data based on the provided input.\n * If in edit mode, it updates an existing condition; otherwise, it adds a new one.\n *\n * @function setNewConditionData\n * @param {Object} data - The data to set for the new condition.\n * @param {boolean} conditionEditMode - A flag indicating if the condition is being edited.\n */\n const setNewConditionData = (data) => {\n if (conditionEditMode) {\n const notificationConfigDetail = [...notificationConfigDetails];\n setNewCondition({ ...newCondition, ...data });\n let conditions = { ...newCondition, ...data };\n notificationConfigDetail[selectedConfigIndex].conditions[selectedIndex] =\n conditions;\n setNotificationConfigDetails(notificationConfigDetail);\n setTypeConfigurationData([]);\n } else {\n const notificationConfigDetail = [...notificationConfigDetails];\n setNewCondition({ ...newCondition, ...data });\n let conditions = { ...newCondition, ...data };\n notificationConfigDetail[selectedConfigIndex].conditions.push(conditions);\n setNotificationConfigDetails(notificationConfigDetail);\n setTypeConfigurationData([]);\n }\n };\n\n /**\n * Updates the new type data based on the provided input.\n *\n * @function setNewTypeData\n * @param {Object} data - The data to set for the new type.\n */\n const setNewTypeData = (data) => {\n setNewType({ ...newType, ...data });\n };\n\n return (\n <>\n <ManageEventConfigurationSkeleton isLoading={isLoading}>\n <Card\n className=\"manage-eventConfiguration-type-body\"\n component=\"form\"\n ref={formRef}\n onSubmit={handleSubmit(submit)}\n data-testid=\"manageeventconfiguration-form\"\n >\n <CardHeader\n className=\"p-2.5 px-5 flex border-b text-customBlue\"\n subheader={translate(\n `${id ? \"UPDATE\" : \"ADD\"} EVENT CONFIGURATION`,\n )}\n slotProps={{\n subheader: { className: \"font-medium text-lg text-customBlue\" },\n }}\n data-testid=\"manageeventconfiguration-cardheader-subheader\"\n />\n <CardContent data-testid=\"manageeventconfiguration-cardcontent\">\n <Grid container spacing={2}>\n <Grid\n item\n size={{ xs: 12, sm: 6 }}\n data-testid=\"manageeventconfiguration-name-field\"\n >\n <FormControl variant=\"outlined\" className=\"w-full\">\n <Typography variant=\"body2\">\n {translate(\"Name\")}\n <span className=\"text-red-500 ml-1\">*</span>\n </Typography>\n <Box className=\"w-full\">\n <CustomTextField\n control={control}\n id=\"name\"\n name=\"name\"\n errors={errors}\n label=\"\"\n size=\"small\"\n dataTestId=\"manageeventconfiguration-name-textfield\"\n />\n </Box>\n </FormControl>\n </Grid>\n <Grid\n item\n size={{ xs: 12, sm: 6 }}\n data-testid=\"manageeventconfiguration-description-field\"\n >\n <FormControl variant=\"outlined\" className=\"w-full\">\n <Typography variant=\"body2\">\n {translate(\"Description\")}\n </Typography>\n <Box className=\"w-full\">\n <CustomTextArea\n control={control}\n id=\"description\"\n name=\"description\"\n errors={errors}\n label=\"\"\n minRows={2}\n data-testid=\"manageeventconfiguration-description-textarea\"\n />\n </Box>\n </FormControl>\n </Grid>\n <Grid\n item\n size={{ xs: 12, sm: 6 }}\n data-testid=\"manageeventconfiguration-eventtype-field\"\n >\n <FormControl variant=\"outlined\" className=\"w-full\">\n <Typography variant=\"body2\">\n {translate(\"Event Type\")}\n <span className=\"text-red-500 ml-1\">*</span>\n </Typography>\n <Box className=\"w-full\">\n <Controller\n name=\"eventType\"\n control={control}\n defaultValue=\"\"\n className=\"w-full\"\n render={({ field }) => (\n <Select\n className=\"w-full\"\n labelId=\"event-type-label\"\n id=\"reportgroup\"\n {...field}\n error={errors.eventType}\n size=\"small\"\n data-testid=\"manageeventconfiguration-eventtype-select\"\n >\n <MenuItem value=\"FORM_SUBMITTED\">\n <Typography variant=\"body2\">\n {translate(\"Form Submitted\")}\n </Typography>\n </MenuItem>\n <MenuItem value=\"TIMMER_BASED\">\n <Typography variant=\"body2\">\n {translate(\"Timer Based\")}\n </Typography>\n </MenuItem>\n <MenuItem value=\"MANUAL\">\n <Typography variant=\"body2\">\n {translate(\"Manual\")}\n </Typography>\n </MenuItem>\n <MenuItem value=\"RECURSION\">\n <Typography variant=\"body2\">\n {translate(\"Recursion\")}\n </Typography>\n </MenuItem>\n </Select>\n )}\n />\n {errors?.eventType && (\n <p\n className=\"error-helper-manage-event\"\n data-testid=\"custom-error-message\"\n >\n {errors?.eventType?.message}\n </p>\n )}\n </Box>\n </FormControl>\n </Grid>\n {eventType === \"FORM_SUBMITTED\" && (\n <Grid\n item\n size={{ xs: 12, sm: 6 }}\n data-testid=\"manageeventconfiguration-formtype-field\"\n >\n <FormControl variant=\"outlined\" className=\"w-full\">\n <Typography variant=\"body2\">\n {translate(\"Form Type\")}\n </Typography>\n <Box className=\"w-full\">\n <Controller\n className=\"w-full\"\n name=\"formTypeId\"\n control={control}\n defaultValue=\"\"\n render={({ field }) => (\n <Select\n {...field}\n className=\"w-full\"\n labelId=\"event-type-label\"\n displayEmpty\n size=\"small\"\n onChange={(e) => {\n const selectedId = e.target.value;\n field.onChange(selectedId);\n const selectedData = forms.find(\n (data) => data.id === selectedId,\n );\n setValue(\n \"eventTypeDetailCode\",\n selectedData?.code,\n );\n setValue(\n \"eventTypeDetailId\",\n selectedData?.detaiId || null,\n );\n }}\n data-testid=\"manageeventconfiguration-formtype-select\"\n >\n <MenuItem value=\"\">\n <Typography variant=\"body2\">\n {translate(\"Select\")}\n </Typography>\n </MenuItem>\n {forms?.map((data) => (\n <MenuItem key={data.id} value={data.id}>\n <Typography variant=\"body2\">\n {translate(data.name)}\n </Typography>\n </MenuItem>\n ))}\n </Select>\n )}\n />\n </Box>\n </FormControl>\n </Grid>\n )}\n {eventType === \"TIMMER_BASED\" && (\n <Grid\n item\n size={{ xs: 12, sm: 6 }}\n data-testid=\"manageeventconfiguration-triggerwhen-field\"\n >\n <FormControl variant=\"outlined\" className=\"w-full\">\n <Typography variant=\"body2\">\n {translate(\"Trigger When\")}\n <span className=\"text-red-500 ml-1\">*</span>\n </Typography>\n <Box className=\"w-full\">\n <Controller\n name=\"trigerWhen\"\n control={control}\n defaultValue=\"\"\n className=\"w-full\"\n render={({ field }) => (\n <Select\n className=\"w-full\"\n {...field}\n value={field.value}\n error={errors.trigerWhen}\n size=\"small\"\n data-testid=\"manageeventconfiguration-triggerwhen-select\"\n >\n <MenuItem value=\"\">\n <Typography variant=\"body2\">\n {translate(\"Select\")}\n </Typography>\n </MenuItem>\n <MenuItem value=\"IMMEDIATELY\">\n <Typography variant=\"body2\">\n {translate(\"Immediately\")}\n </Typography>\n </MenuItem>\n <MenuItem value=\"AFTER\">\n <Typography variant=\"body2\">\n {translate(\"After\")}\n </Typography>\n </MenuItem>\n <MenuItem value=\"MONTHLY\">\n <Typography variant=\"body2\">\n {translate(\"Monthly\")}\n </Typography>\n </MenuItem>\n <MenuItem value=\"WEEKLY\">\n <Typography variant=\"body2\">\n {translate(\"Weekly\")}\n </Typography>\n </MenuItem>\n <MenuItem value=\"DAILY\">\n <Typography variant=\"body2\">\n {translate(\"Daily\")}\n </Typography>\n </MenuItem>\n <MenuItem value=\"HOURLY\">\n <Typography variant=\"body2\">\n {translate(\"Hourly\")}\n </Typography>\n </MenuItem>\n <MenuItem value=\"MINUTE\">\n <Typography variant=\"body2\">\n {translate(\"Minutely\")}\n </Typography>\n </MenuItem>\n </Select>\n )}\n />\n {errors?.trigerWhen && (\n <p\n className=\"error-helper-manage-event\"\n data-testid=\"custom-error-message\"\n >\n {errors?.trigerWhen?.message}\n </p>\n )}\n </Box>\n </FormControl>\n </Grid>\n )}\n {eventType === \"TIMMER_BASED\" &&\n (trigerWhen === \"AFTER\" ||\n trigerWhen === \"MONTHLY\" ||\n trigerWhen === \"WEEKLY\") && (\n <Grid\n item\n size={{ xs: 12, sm: 6 }}\n data-testid=\"manageeventconfiguration-day-field\"\n >\n <FormControl variant=\"outlined\" className=\"w-full\">\n <Typography variant=\"body2\">\n {translate(\"day\")}\n <span className=\"text-red-500 ml-1\">*</span>\n </Typography>\n <CustomTextField\n control={control}\n id=\"day\"\n name=\"day\"\n errors={errors}\n type=\"number\"\n label=\"\"\n size=\"small\"\n dataTestId=\"manageeventconfiguration-day-textfield\"\n />\n </FormControl>\n </Grid>\n )}\n {eventType === \"TIMMER_BASED\" &&\n (trigerWhen === \"AFTER\" ||\n trigerWhen === \"MONTHLY\" ||\n trigerWhen === \"DAILY\" ||\n trigerWhen === \"WEEKLY\") && (\n <Grid\n item\n size={{ xs: 12, sm: 6 }}\n data-testid=\"manageeventconfiguration-hour-field\"\n >\n <FormControl variant=\"outlined\" className=\"w-full\">\n <Typography variant=\"body2\">\n {translate(\"Hour\")}\n <span className=\"text-red-500 ml-1\">*</span>\n </Typography>\n <CustomTextField\n control={control}\n id=\"hour\"\n name=\"hour\"\n type=\"number\"\n errors={errors}\n label=\"\"\n size=\"small\"\n dataTestId=\"manageeventconfiguration-hour-textfield\"\n />\n </FormControl>\n </Grid>\n )}\n {eventType === \"TIMMER_BASED\" &&\n trigerWhen &&\n trigerWhen !== \"IMMEDIATELY\" && (\n <Grid\n item\n size={{ xs: 12, sm: 6 }}\n data-testid=\"manageeventconfiguration-minute-field\"\n >\n <FormControl variant=\"outlined\" className=\"w-full\">\n <Typography variant=\"body2\">\n {translate(\"Minute\")}\n </Typography>\n <CustomTextField\n control={control}\n id=\"minute\"\n name=\"minute\"\n errors={errors}\n type=\"number\"\n label=\"\"\n size=\"small\"\n dataTestId=\"manageeventconfiguration-minute-textfield\"\n />\n </FormControl>\n </Grid>\n )}\n {eventType === \"RECURSION\" && (\n <Grid item size={{ xs: 12, sm: 6 }}>\n <FormControl variant=\"outlined\" className=\"w-full\">\n <Typography variant=\"body2\">\n {translate(\"Recursion Interval (in Minutes)\")}\n <span className=\"text-red-500 ml-1\">*</span>\n </Typography>\n <Box className=\"w-full\">\n <CustomTextField\n type=\"number\"\n control={control}\n id=\"recursionInterval\"\n name=\"recursionInterval\"\n errors={errors}\n label=\"\"\n size=\"small\"\n dataTestId=\"manageeventconfiguration-recursionInterval-textfield\"\n />\n </Box>\n </FormControl>\n </Grid>\n )}\n {(eventType === \"TIMMER_BASED\" || eventType === \"RECURSION\") && (\n <Grid item size={{ xs: 12, sm: 6 }}>\n <FormControl variant=\"outlined\" className=\"w-full\">\n <Typography variant=\"body2\">\n {translate(\"Reports\")}\n </Typography>\n <Box className=\"w-full\">\n <CustomDropdown\n id=\"reportUUID\"\n name=\"reportUUID\"\n displayName=\"name\"\n optionValue=\"uuid\"\n multiple\n control={control}\n options={reportList}\n />\n </Box>\n </FormControl>\n </Grid>\n )}\n {eventType === \"MANUAL\" && (\n <Grid\n item\n size={{ xs: 12, sm: 6 }}\n data-testid=\"manageeventconfiguration-event-field\"\n >\n <FormControl variant=\"outlined\" className=\"w-full\">\n <Typography variant=\"body2\">\n {translate(\"Event\")}\n </Typography>\n <Box className=\"w-full\">\n <Controller\n name=\"eventTypeDetailCode\"\n control={control}\n className=\"w-full\"\n render={({ field }) => (\n <Select\n className=\"w-full\"\n {...field}\n value={field.value}\n error={errors.eventTypeDetailCode}\n size=\"small\"\n data-testid=\"manageeventconfiguration-eventtype-detail-select\"\n >\n <MenuItem value=\"\">{translate(\"None\")}</MenuItem>\n {events &&\n Object.entries(events).map(([key, data]) => (\n <MenuItem key={key} value={key}>\n {data}\n </MenuItem>\n ))}\n </Select>\n )}\n />\n {errors?.eventTypeDetailCode && (\n <p\n className=\"error-helper-manage-event\"\n data-testid=\"manageeventconfiguration-eventtype-detail-error\"\n >\n {errors?.eventTypeDetailCode?.message}\n </p>\n )}\n </Box>\n </FormControl>\n </Grid>\n )}\n </Grid>\n <Divider className=\"m-[20px_3px]\" />\n <Grid\n container\n spacing={5}\n justifyContent=\"space-between\"\n alignItems=\"center\"\n data-testid=\"manageeventconfiguration-add-configuration\"\n >\n <Grid item>\n <Typography variant=\"body2\">\n {translate(\"Add Configuration\")}\n </Typography>\n </Grid>\n <Grid item>\n <Button\n size=\"small\"\n variant=\"contained\"\n onClick={addConfiguration}\n data-testid=\"manageeventconfiguration-add-button\"\n >\n {translate(\"Add\")}\n </Button>\n </Grid>\n </Grid>\n <Grid container className=\"w-full mt-5\">\n <Grid item className=\"w-full\">\n <TableContainer\n component={Paper}\n className=\"w-full\"\n data-testid=\"manageeventconfiguration-table-container\"\n >\n <Table sx={{ minWidth: 800 }}>\n <TableHead>\n <TableRow\n sx={{\n backgroundColor: (theme) =>\n theme.palette.mode === \"dark\"\n ? theme.palette.custom.tableHeader\n : \"var(--color-gray4)\",\n }}\n >\n <TableCell\n className=\"border border-gray-300 align-top text-[13px]\"\n data-testid=\"manageeventconfiguration-table-header-query\"\n >\n {translate(\"Query\")}\n </TableCell>\n <TableCell\n className=\"border border-gray-300 align-top text-[13px]\"\n data-testid=\"manageeventconfiguration-table-header-condition\"\n >\n {translate(\"Condition\")}\n </TableCell>\n <TableCell\n className=\"border border-gray-300 align-top text-[13px]\"\n data-testid=\"manageeventconfiguration-table-header-action\"\n >\n {translate(\"Actions\")}\n </TableCell>\n </TableRow>\n </TableHead>\n <TableBody>\n {notificationConfigDetails?.map((row, index) => (\n <TableRow\n key={index + 1}\n sx={{\n backgroundColor: (theme) => {\n const isDark = theme.palette.mode === \"dark\";\n if (index % 2 === 0) {\n // Even rows: White in light mode, deep background in dark mode\n return isDark\n ? theme.palette.background.paper\n : \"#fff\";\n } else {\n // Odd rows: Light gray in light mode, slightly lighter gray/blue in dark mode\n return isDark ? \"#1C2128\" : \"var(--color-gray4)\";\n }\n },\n // Adding a hover state that works in both modes\n \"&:hover\": {\n backgroundColor: (theme) =>\n theme.palette.mode === \"dark\"\n ? \"#21262D\"\n : \"var(--color-gray4)\",\n },\n }}\n data-testid={`manageeventconfiguration-table-row-${index}`}\n >\n <TableCell\n className=\"border border-gray-300 align-top\"\n style={{ lineHeight: bodyLineHeight }}\n data-testid={`manageeventconfiguration-table-row-${index}-query`}\n >\n <div className=\"flex flex-col items-start min-w-[300px]\">\n <FormControl\n variant=\"outlined\"\n className=\"w-full\"\n >\n <Box className=\"w-full\">\n <CustomTextArea\n required\n control={control}\n id={`notificationConfigDetails.${index}.query`}\n name={`notificationConfigDetails.${index}.query`}\n errors={errors}\n value={row.query}\n onChange={(e) => {\n setValue(\n `notificationConfigDetails.${index}.query`,\n e.target.value,\n );\n handleTextChange(index, e.target.value);\n const fieldPath = `notificationConfigDetails.${index}.query`;\n if (getValues(fieldPath) === \"\") {\n setError(fieldPath, {\n type: \"manual\",\n message: \"Query Required\",\n });\n } else {\n clearErrors(fieldPath);\n }\n }}\n onBlur={() => {\n const fieldPath = `notificationConfigDetails.${index}.query`;\n if (getValues(fieldPath) === \"\") {\n setError(fieldPath, {\n type: \"manual\",\n message: \"Query Required\",\n });\n } else {\n clearErrors(fieldPath);\n }\n setImplicitParam(row);\n }}\n label=\"\"\n minRows={5}\n maxRows={20}\n data-testid={`manageeventconfiguration-table-row-${index}-query-textarea`}\n />\n </Box>\n </FormControl>\n <td\n style={{\n whiteSpace: \"normal\",\n width: \"100%\",\n overflowWrap: \"break-word\",\n }}\n >\n <b>{row?.implicitParam}</b>\n </td>\n </div>\n </TableCell>\n <TableCell\n className=\"border border-gray-300 align-top\"\n data-testid={`manageeventconfiguration-table-row-${index}-condition`}\n >\n <div\n style={{\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"flex-start\",\n width: \"100%\",\n }}\n >\n {row?.conditions?.length > 0 ? (\n row?.conditions.map(\n (condition, conditionIndex) => (\n <div\n key={conditionIndex + 1}\n style={{ width: \"100%\" }}\n >\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n width: \"100%\",\n }}\n data-testid={\n \"manageeventconfiguration-condition-rows\"\n }\n >\n <Typography\n className=\"mr-1\"\n variant=\"body2\"\n >\n {condition?.condition ||\n \"No condition specified\"}\n </Typography>\n <FontAwesomeIcon\n className=\"bg-[var(--color-gray3)] text-gray-600 rounded-full p-[10px] w-[14px] h-[14px] mx-1 cursor-pointer hover:bg-gray-300 hover:text-[#11B666] transition-all\"\n icon={faPen}\n onClick={() =>\n openConditionModal(\n row,\n index,\n condition,\n conditionIndex,\n )\n }\n data-testid={`manageeventconfiguration-table-row-${index}-condition-edit-${conditionIndex}`}\n />\n <FontAwesomeIcon\n icon={faTrash}\n className=\"bg-[var(--color-gray3)] text-gray-600 rounded-full p-[10px] w-[14px] h-[14px] mx-1 cursor-pointer hover:bg-gray-300 hover:text-[var(--color-error)] transition-all\"\n onClick={() =>\n deleteCondition(\n index,\n conditionIndex,\n )\n }\n data-testid={`manageeventconfiguration-table-row-${index}-condition-delete-${conditionIndex}`}\n />\n {conditionIndex ===\n row?.conditions.length - 1 && (\n <FontAwesomeIcon\n icon={faPlus}\n onClick={() =>\n openConditionModal(row, index)\n }\n className=\"bg-[var(--color-gray3)] text-gray-600 rounded-full p-[10px] w-[14px] h-[14px] mx-1 cursor-pointer hover:bg-gray-300 hover:text-[var(--color-primary)] transition-all\"\n data-testid={`manageeventconfiguration-table-row-${index}-condition-add`}\n />\n )}\n </div>\n {conditionIndex <\n row?.conditions.length - 1 && (\n <Divider className=\"w-full m-[10px_0px]\" />\n )}\n </div>\n ),\n )\n ) : (\n <div\n className=\"flex flex-row items-center justify-between w-full mt-2 sm:mt-0 text-[14px]\"\n >\n <span className=\"mr-3 flex-1\">{translate(\"No Condition Added\")}</span>\n <div className=\"flex items-center gap-3\">\n <FontAwesomeIcon\n icon={faPlus}\n onClick={() =>\n openConditionModal(row, index)\n }\n className=\"bg-gray-200 text-gray-600 rounded-full p-2 w-[16px] h-[16px] cursor-pointer hover:bg-gray-300 hover:text-[var(--color-primary)] transition-all\"\n data-testid={`manageeventconfiguration-table-row-${index}-condition-add-empty`}\n />\n </div>\n </div>\n )}\n </div>\n </TableCell>\n\n <TableCell\n className=\"border border-gray-300 align-top\"\n data-testid={`manageeventconfiguration-table-row-${index}-action`}\n >\n <div\n style={{\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"flex-start\",\n }}\n >\n <Button\n onClick={() => {\n handleDeleteRow(index);\n const fieldPath = `notificationConfigDetails.${index}.query`;\n clearErrors(fieldPath);\n }}\n size=\"small\"\n aria-label=\"delete\"\n data-testid={`manageeventconfiguration-table-row-${index}-action-delete`}\n >\n <FontAwesomeIcon\n icon={faTrash}\n className=\"text-[19px] text-[var(--color-error)]\"\n />\n </Button>\n </div>\n </TableCell>\n </TableRow>\n ))}\n </TableBody>\n </Table>\n </TableContainer>\n </Grid>\n </Grid>\n </CardContent>\n <Divider className=\"m-[8px_0px]\" />\n <CardActions\n className=\"flex flex-col sm:flex-row justify-end gap-2\"\n data-testid=\"manageeventconfiguration-cardactions\"\n >\n <Button\n variant=\"contained\"\n color=\"secondary\"\n type=\"button\"\n size=\"small\"\n className=\"w-full sm:w-auto\"\n onClick={() => {\n trackEvent(\"button_click\", {\n button_name: \"manageeventconfiguration-back-button\",\n button_type: \"cancel\",\n button_id: \"manageeventconfiguration-back-button\",\n });\n navigate(\"/ui/medplat/notification/all\");\n }}\n data-testid=\"manageeventconfiguration-back-button\"\n >\n {translate(\"Cancel\")}\n </Button>\n <Button\n size=\"small\"\n variant=\"contained\"\n type=\"submit\"\n color=\"primary\"\n className=\"w-full sm:w-auto m-0\"\n data-testid=\"manageeventconfiguration-save-button\"\n >\n {translate(`${id ? \"Update\" : \"Save\"}`)}\n </Button>\n </CardActions>\n </Card>\n </ManageEventConfigurationSkeleton>\n <Suspense>\n <ConditionConfig\n selectedConfig={selectedConfig}\n notificationtypeMap={notificationTypeMap}\n selectedCondition={selectedCondition}\n newCondition={newCondition}\n handleTypeConfigurationDelete={handleTypeConfigurationDelete}\n handleTypeConfigurationEdit={handleTypeConfigurationEdit}\n addTypeConfig={addTypeConfig}\n setNewConditionData={setNewConditionData}\n typeConfigurationData={typeConfigurationData}\n setNewTypeData={setNewTypeData}\n overlayOpen={overlayOpen}\n handleOverlayState={handleOverlayState}\n data-testid=\"manageeventconfiguration-conditionconfig\"\n />\n </Suspense>\n <Suspense>\n {newType?.type === \"MOBILE\" ? (\n <MobileTypeEventConfigModal\n type={newType}\n open={toggleOtherOpen}\n notificationtypeMap={notificationTypeMap}\n handleClick={handleOtherTypeConfiguration}\n handleClose={() => {\n setToggleOtherOpen((cur) => !cur);\n setNewType({});\n }}\n data-testid=\"manageeventconfiguration-mobiletypeeventconfigmodal\"\n />\n ) : (\n <OtherTypeEventConfigModal\n type={newType}\n open={toggleOtherOpen}\n handleClick={handleOtherTypeConfiguration}\n handleClose={() => {\n setToggleOtherOpen((cur) => !cur);\n setNewType({});\n }}\n data-testid=\"manageeventconfiguration-othertypeeventconfigmodal\"\n />\n )}\n </Suspense>\n </>\n );\n}\n\nexport default ManageEventConfiguration;\n"],"names":["ConditionConfig","lazy","MobileTypeEventConfigModal","OtherTypeEventConfigModal","ManageEventConfiguration","translate","useTranslateProvider","formRef","useRef","submitRef","id","useParams","navigate","useNavigate","forms","setForms","useState","events","setEvents","notificationTypeMap","setNotificationTypeMap","notificationConfigDetails","setNotificationConfigDetails","selectedConfigIndex","setSelectedConfigIndex","selectedConfig","setSelectedConfig","selectedCondition","setSelectedCondition","selectedIndex","setSelectedIndex","newCondition","setNewCondition","conditionEditMode","setConditionEditMode","selectedTypeConfig","setSelectedTypeConfig","newType","setNewType","overlayOpen","setOverlayOpen","typeEditMode","setTypeEditMode","toggleOtherOpen","setToggleOtherOpen","typeConfigurationData","setTypeConfigurationData","isLoading","setIsLoading","reportList","setReportList","bodyLineHeight","handleOverlayState","validationSchema","Yup","eventType","schema","value","trigerWhen","control","handleSubmit","setValue","setError","clearErrors","getValues","watch","errors","useForm","yupResolver","useEffect","form","trackEvent","submit","data","isTimerBased","isFormSubmitted","isManual","isRecursion","needsDay","needsHour","cleanedNotificationConfigDetails","config","_a","condition","typeConfig","update","save","showToast","cur","loadInitialData","res","retrieveAllForm","manualevent","retrieveManualEvents","notificationtype","retrieveAllNotifications","notificationtypeObject","type","getReportsList","responseByid","retrieveByUUID","_c","_b","setImplicitParam","_d","key","error","fromPattern","selectPattern","fromCount","selectCount","namedParameters","finalParameters","parameter","tempParameter","aliasIndex","parameterWithAlias","handleDeleteRow","index","newRows","_","rowIndex","deleteCondition","configIndex","notificationConfigDetail","filteredConditions","idx","openConditionModal","handleTextChange","newConfig","addConfiguration","configuration","addconfiguration","notification","fieldPath","addTypeConfig","openAddConfigurationModal","handleOtherTypeConfiguration","updatedData","item","addTypeConfiguration","handleTypeConfigurationDelete","prevData","i","handleTypeConfigurationEdit","useTrackEvent","setNewConditionData","conditions","setNewTypeData","jsxs","Fragment","jsx","ManageEventConfigurationSkeleton","Card","CardHeader","CardContent","Grid","FormControl","Typography","Box","CustomTextField","CustomTextArea","Controller","field","Select","MenuItem","e","selectedId","selectedData","CustomDropdown","Divider","Button","TableContainer","Paper","Table","TableHead","TableRow","theme","TableCell","TableBody","row","isDark","conditionIndex","FontAwesomeIcon","faPen","faTrash","faPlus","CardActions","Suspense"],"mappings":"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"}