@egovernments/digit-ui-module-core 2.0.0-dev-13 → 2.0.0-dev-15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","mappings":"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","sources":["webpack://@egovernments/digit-ui-module-core/webpack/universalModuleDefinition","webpack://@egovernments/digit-ui-module-core/./src/components/Background.js","webpack://@egovernments/digit-ui-module-core/./src/components/ChangeCity.js","webpack://@egovernments/digit-ui-module-core/./src/components/ChangeLanguage.js","webpack://@egovernments/digit-ui-module-core/./src/components/CustomErrorComponent.js","webpack://@egovernments/digit-ui-module-core/./src/components/Dialog/LogoutDialog.js","webpack://@egovernments/digit-ui-module-core/./src/components/DummyLoader.js","webpack://@egovernments/digit-ui-module-core/./src/components/DynamicModuleLoader.js","webpack://@egovernments/digit-ui-module-core/./src/components/ErrorBoundaries.js","webpack://@egovernments/digit-ui-module-core/./src/components/ErrorComponent.js","webpack://@egovernments/digit-ui-module-core/./src/components/Header.js","webpack://@egovernments/digit-ui-module-core/./src/components/RoleBasedEmployeeHome.js","webpack://@egovernments/digit-ui-module-core/./src/pages/employee/QuickStart/QuickSetup.js","webpack://@egovernments/digit-ui-module-core/./src/pages/employee/QuickStart/Config.js","webpack://@egovernments/digit-ui-module-core/./src/components/Home.js","webpack://@egovernments/digit-ui-module-core/./src/components/ImageComponent.js","webpack://@egovernments/digit-ui-module-core/./src/components/TopBarSideBar/TopBar.js","webpack://@egovernments/digit-ui-module-core/./src/components/utils.js","webpack://@egovernments/digit-ui-module-core/./src/config/sidebar-menu.js","webpack://@egovernments/digit-ui-module-core/./src/components/TopBarSideBar/SideBar/StaticCitizenSideBar.js","webpack://@egovernments/digit-ui-module-core/./src/components/TopBarSideBar/SideBar/CitizenSideBar.js","webpack://@egovernments/digit-ui-module-core/./src/components/TopBarSideBar/SideBar/EmployeeSideBar.js","webpack://@egovernments/digit-ui-module-core/./src/components/TopBarSideBar/SideBar/index.js","webpack://@egovernments/digit-ui-module-core/./src/components/TopBarSideBar/index.js","webpack://@egovernments/digit-ui-module-core/./src/hoc/withAutoFocusMain.js","webpack://@egovernments/digit-ui-module-core/./src/hooks/useInterval.js","webpack://@egovernments/digit-ui-module-core/./src/hooks/useLoginConfig.js","webpack://@egovernments/digit-ui-module-core/./src/pages/citizen/FAQs/FaqComponent.js","webpack://@egovernments/digit-ui-module-core/./src/pages/citizen/FAQs/FAQs.js","webpack://@egovernments/digit-ui-module-core/./src/pages/citizen/Home/LanguageSelection.js","webpack://@egovernments/digit-ui-module-core/./src/pages/citizen/Home/LocationSelection.js","webpack://@egovernments/digit-ui-module-core/./src/pages/citizen/Home/ImageUpload/UploadDrawer.js","webpack://@egovernments/digit-ui-module-core/./src/pages/citizen/Home/IndividualUserProfile.js","webpack://@egovernments/digit-ui-module-core/./src/pages/citizen/Home/UserProfile.js","webpack://@egovernments/digit-ui-module-core/./src/pages/citizen/Home/index.js","webpack://@egovernments/digit-ui-module-core/./src/pages/citizen/HowItWorks/howItWorks.js","webpack://@egovernments/digit-ui-module-core/./src/pages/citizen/Login/SelectOtp.js","webpack://@egovernments/digit-ui-module-core/./src/pages/citizen/Login/config.js","webpack://@egovernments/digit-ui-module-core/./src/pages/citizen/Login/SelectMobileNumber.js","webpack://@egovernments/digit-ui-module-core/./src/pages/citizen/Login/SelectName.js","webpack://@egovernments/digit-ui-module-core/./src/pages/citizen/Login/IndividualLogin.js","webpack://@egovernments/digit-ui-module-core/./src/pages/citizen/Login/index.js","webpack://@egovernments/digit-ui-module-core/../../../node_modules/react-hook-form/dist/index.esm.mjs","webpack://@egovernments/digit-ui-module-core/./src/components/Search/SearchFields.js","webpack://@egovernments/digit-ui-module-core/./src/components/Search/MobileSearchApplication.js","webpack://@egovernments/digit-ui-module-core/./src/components/Search/index.js","webpack://@egovernments/digit-ui-module-core/./src/pages/citizen/SearchApp.js","webpack://@egovernments/digit-ui-module-core/./src/pages/citizen/StaticDynamicComponent/StaticDynamicCard.js","webpack://@egovernments/digit-ui-module-core/./src/components/TopBarSideBar/SideBar/CitizenSideNav.js","webpack://@egovernments/digit-ui-module-core/./src/pages/citizen/index.js","webpack://@egovernments/digit-ui-module-core/./src/pages/employee/ChangePassword/changePassword.js","webpack://@egovernments/digit-ui-module-core/./src/pages/employee/ChangePassword/config.js","webpack://@egovernments/digit-ui-module-core/./src/pages/employee/ChangePassword/index.js","webpack://@egovernments/digit-ui-module-core/./src/pages/employee/ForgotPassword/config.js","webpack://@egovernments/digit-ui-module-core/./src/pages/employee/ForgotPassword/forgotPassword.js","webpack://@egovernments/digit-ui-module-core/./src/pages/employee/ForgotPassword/index.js","webpack://@egovernments/digit-ui-module-core/./src/pages/employee/LanguageSelection/index.js","webpack://@egovernments/digit-ui-module-core/./src/pages/employee/Login/Carousel/Carousel.js","webpack://@egovernments/digit-ui-module-core/./src/pages/employee/Login/config.js","webpack://@egovernments/digit-ui-module-core/./src/pages/employee/Login/ConfigOtp.js","webpack://@egovernments/digit-ui-module-core/./src/pages/employee/Login/login.js","webpack://@egovernments/digit-ui-module-core/./src/pages/employee/Login/index.js","webpack://@egovernments/digit-ui-module-core/./src/pages/employee/Otp/index.js","webpack://@egovernments/digit-ui-module-core/./src/pages/employee/SignUp/config.js","webpack://@egovernments/digit-ui-module-core/./src/pages/employee/SignUp/signUp.js","webpack://@egovernments/digit-ui-module-core/./src/pages/employee/SignUp/index.js","webpack://@egovernments/digit-ui-module-core/./src/pages/employee/ViewUrl/index.js","webpack://@egovernments/digit-ui-module-core/./src/components/AppModules.js","webpack://@egovernments/digit-ui-module-core/./src/pages/employee/index.js","webpack://@egovernments/digit-ui-module-core/../../../node_modules/css-mediaquery/index.js","webpack://@egovernments/digit-ui-module-core/../../../node_modules/matchmediaquery/index.js","webpack://@egovernments/digit-ui-module-core/../../../node_modules/prop-types/factoryWithThrowingShims.js","webpack://@egovernments/digit-ui-module-core/../../../node_modules/prop-types/index.js","webpack://@egovernments/digit-ui-module-core/../../../node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://@egovernments/digit-ui-module-core/../../../node_modules/react/cjs/react-jsx-runtime.production.js","webpack://@egovernments/digit-ui-module-core/../../../node_modules/react/jsx-runtime.js","webpack://@egovernments/digit-ui-module-core/../../../node_modules/hyphenate-style-name/index.js","webpack://@egovernments/digit-ui-module-core/./node_modules/react-responsive/dist/esm/index.js","webpack://@egovernments/digit-ui-module-core/./node_modules/shallow-equal/dist/index.modern.mjs","webpack://@egovernments/digit-ui-module-core/external umd \"@egovernments/digit-ui-components\"","webpack://@egovernments/digit-ui-module-core/external umd \"@egovernments/digit-ui-react-components\"","webpack://@egovernments/digit-ui-module-core/external umd \"@egovernments/digit-ui-svg-components\"","webpack://@egovernments/digit-ui-module-core/external umd \"@tanstack/react-query\"","webpack://@egovernments/digit-ui-module-core/external umd \"React\"","webpack://@egovernments/digit-ui-module-core/external umd \"react-i18next\"","webpack://@egovernments/digit-ui-module-core/external umd \"react-redux\"","webpack://@egovernments/digit-ui-module-core/external umd \"react-router-dom\"","webpack://@egovernments/digit-ui-module-core/external umd \"redux\"","webpack://@egovernments/digit-ui-module-core/external umd \"redux-thunk\"","webpack://@egovernments/digit-ui-module-core/webpack/bootstrap","webpack://@egovernments/digit-ui-module-core/webpack/runtime/compat get default export","webpack://@egovernments/digit-ui-module-core/webpack/runtime/define property getters","webpack://@egovernments/digit-ui-module-core/webpack/runtime/hasOwnProperty shorthand","webpack://@egovernments/digit-ui-module-core/webpack/runtime/make namespace object","webpack://@egovernments/digit-ui-module-core/./src/App.js","webpack://@egovernments/digit-ui-module-core/./src/redux/store.js","webpack://@egovernments/digit-ui-module-core/./src/redux/reducers/index.js","webpack://@egovernments/digit-ui-module-core/./src/components/PrivacyComponent.js","webpack://@egovernments/digit-ui-module-core/./src/Module.js","webpack://@egovernments/digit-ui-module-core/./src/pages/employee/Otp/OtpCustomComponent.js","webpack://@egovernments/digit-ui-module-core/./src/components/ForgotOrganizationTooltip.js","webpack://@egovernments/digit-ui-module-core/./src/components/LoginSignupSelector.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"@egovernments/digit-ui-components\"), require(\"React\"), require(\"react-i18next\"), require(\"@tanstack/react-query\"), require(\"react-redux\"), require(\"react-router-dom\"), require(\"@egovernments/digit-ui-svg-components\"), require(\"@egovernments/digit-ui-react-components\"), require(\"redux\"), require(\"redux-thunk\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"@egovernments/digit-ui-components\", \"React\", \"react-i18next\", \"@tanstack/react-query\", \"react-redux\", \"react-router-dom\", \"@egovernments/digit-ui-svg-components\", \"@egovernments/digit-ui-react-components\", \"redux\", \"redux-thunk\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"@egovernments/digit-ui-module-core\"] = factory(require(\"@egovernments/digit-ui-components\"), require(\"React\"), require(\"react-i18next\"), require(\"@tanstack/react-query\"), require(\"react-redux\"), require(\"react-router-dom\"), require(\"@egovernments/digit-ui-svg-components\"), require(\"@egovernments/digit-ui-react-components\"), require(\"redux\"), require(\"redux-thunk\"));\n\telse\n\t\troot[\"@egovernments/digit-ui-module-core\"] = factory(root[\"@egovernments/digit-ui-components\"], root[\"React\"], root[\"react-i18next\"], root[\"@tanstack/react-query\"], root[\"react-redux\"], root[\"react-router-dom\"], root[\"@egovernments/digit-ui-svg-components\"], root[\"@egovernments/digit-ui-react-components\"], root[\"redux\"], root[\"redux-thunk\"]);\n})(this, (__WEBPACK_EXTERNAL_MODULE__6243__, __WEBPACK_EXTERNAL_MODULE__4883__, __WEBPACK_EXTERNAL_MODULE__5953__, __WEBPACK_EXTERNAL_MODULE__4456__, __WEBPACK_EXTERNAL_MODULE__2148__, __WEBPACK_EXTERNAL_MODULE__4442__, __WEBPACK_EXTERNAL_MODULE__338__, __WEBPACK_EXTERNAL_MODULE__5053__, __WEBPACK_EXTERNAL_MODULE__1954__, __WEBPACK_EXTERNAL_MODULE__2247__) => {\nreturn ","import React from \"react\";\n\nconst Background = ({ children }) => {\n return <div className=\"banner banner-container\">{children}</div>;\n};\n\nexport default Background;\n","import { CardText, Dropdown } from \"@egovernments/digit-ui-components\";\nimport React, { useEffect, useState } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\n\nconst stringReplaceAll = (str = \"\", searcher = \"\", replaceWith = \"\") => {\n if (searcher == \"\") return str;\n while (str?.includes(searcher)) {\n str = str?.replace(searcher, replaceWith);\n }\n return str;\n};\n\nconst ChangeCity = (prop) => {\n const [dropDownData, setDropDownData] = useState(null);\n const [selectCityData, setSelectCityData] = useState([]);\n const [selectedCity, setSelectedCity] = useState([]); \n const navigate = useNavigate();\n const isDropdown = prop.dropdown || false;\n let selectedCities = [];\n const isMultiRootTenant = Digit.Utils.getMultiRootTenant();\n\n const handleChangeCity = (city) => {\n const loggedInData = Digit.SessionStorage.get(\"citizen.userRequestObject\");\n const filteredRoles = Digit.SessionStorage.get(\"citizen.userRequestObject\")?.info?.roles?.filter((role) => role.tenantId === city.value);\n if (filteredRoles?.length > 0) {\n loggedInData.info.roles = filteredRoles;\n loggedInData.info.tenantId = city?.value;\n }\n Digit.SessionStorage.set(\"Employee.tenantId\", city?.value);\n Digit.UserService.setUser(loggedInData);\n setDropDownData(city);\n if (typeof window !== 'undefined' && window.location?.href?.includes(`/${window?.contextPath}/employee/`)) {\n const redirectPath = location.state?.from || `/${window?.contextPath}/employee`;\n navigate(redirectPath, { replace: true });\n }\n // Safe reload with error handling\n try {\n if (typeof window !== 'undefined') {\n window.location.reload();\n }\n } catch (error) {\n console.warn('Failed to reload page:', error);\n }\n };\n\n useEffect(() => {\n const userloggedValues = Digit.SessionStorage.get(\"citizen.userRequestObject\");\n let teantsArray = [],\n filteredArray = [];\n userloggedValues?.info?.roles?.forEach((role) => teantsArray.push(role.tenantId));\n let unique = teantsArray.filter((item, i, ar) => ar.indexOf(item) === i);\n unique?.forEach((uniCode) => {\n filteredArray.push({\n label: `TENANT_TENANTS_${stringReplaceAll(uniCode, \".\", \"_\")?.toUpperCase()}`,\n value: uniCode,\n });\n });\n selectedCities = filteredArray?.filter((select) => select.value == Digit.SessionStorage.get(\"Employee.tenantId\"));\n setSelectCityData(filteredArray);\n }, [dropDownData]);\n\n // if (isDropdown) {\n return (\n <div style={prop?.mobileView ? { color: \"#767676\" } : {}}>\n {\n (isMultiRootTenant && selectCityData.length==1) ? \n <CardText style={{color:\"#363636\"}}>{selectCityData?.[0]?.value}</CardText>\n :\n <Dropdown\n t={prop?.t}\n option={selectCityData}\n selected={selectCityData.find((cityValue) => cityValue.value === dropDownData?.value)}\n optionKey={\"label\"}\n select={handleChangeCity}\n freeze={true}\n customSelector={\n <label className=\"cp\">\n {prop?.t(`TENANT_TENANTS_${stringReplaceAll(Digit.SessionStorage.get(\"Employee.tenantId\"), \".\", \"_\")?.toUpperCase()}`)}\n </label>\n }\n />\n}\n </div>\n );\n // } else {\n // return (\n // <React.Fragment>\n // <div style={{ marginBottom: \"5px\" }}>City</div>\n // <div className=\"language-selector\" style={{display: \"flex\", flexWrap: \"wrap\"}}>\n // {selectCityData?.map((city, index) => (\n // <div className=\"language-button-container\" key={index}>\n // <CustomButton\n // selected={city.value === Digit.SessionStorage.get(\"Employee.tenantId\")}\n // text={city.label}\n // onClick={() => handleChangeCity(city)}\n // ></CustomButton>\n // </div>\n // ))}\n // </div>\n // </React.Fragment>\n // );\n // }\n};\n\nexport default ChangeCity;\n","import { Button, Dropdown } from \"@egovernments/digit-ui-components\";\nimport React, { useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nconst ChangeLanguage = (prop) => {\n const isDropdown = prop.dropdown || false;\n const { data: storeData, isLoading } = Digit.Hooks.useStore.getInitData();\n const { languages, stateInfo } = storeData || {};\n const { t } = useTranslation();\n const selectedLanguage = Digit.StoreData.getCurrentLanguage();\n const [selected, setselected] = useState(selectedLanguage);\n const handleChangeLanguage = (language) => {\n setselected(language.value);\n Digit.LocalizationService.changeLanguage(language.value, stateInfo.code);\n };\n\n if (isLoading) return null;\n\n if (isDropdown) {\n return (\n <div>\n <Dropdown\n className={\"language-dropdown\"}\n option={languages}\n selected={languages?.find((language) => language?.value === selectedLanguage)}\n optionKey={\"label\"}\n select={handleChangeLanguage}\n freeze={true}\n customSelector={<label className=\"cp\">{t(languages?.find((language) => language?.value === selected)?.label)}</label>}\n />\n </div>\n );\n } else {\n return (\n <React.Fragment>\n <div style={{ marginBottom: \"5px\" }}>Language</div>\n <div className=\"language-selector\">\n {languages.map((language, index) => (\n <div className=\"language-button-container\" key={index}>\n <Button\n label={language.label}\n onClick={() => handleChangeLanguage(language)}\n variation={language.value === selected ? \"primary\" : \"\"}\n />\n </div>\n ))}\n </div>\n </React.Fragment>\n );\n }\n};\n\nexport default ChangeLanguage;\n","import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useLocation, useNavigate } from \"react-router-dom\";\nimport Background from \"./Background\";\nimport { Button, Card, CardHeader, CardText } from \"@egovernments/digit-ui-components\";\nimport Header from \"./Header\";\n\nconst CustomErrorComponent = (props) => {\n const { state = {} } = useLocation();\n // const module = state?.module;\n const { t } = useTranslation();\n const stateInfo = props.stateInfo;\n\n const navigate = useNavigate();\n const ModuleBasedErrorConfig = {\n sandbox: {\n imgUrl: `https://s3.ap-south-1.amazonaws.com/egov-qa-assets/error-image.png`,\n infoHeader: \"WRONG_TENANT_SIGN_UP\",\n infoMessage: \"WRONG_TENANT_SIGN_UP_MESSAGE\",\n buttonInfo: \"WRONG_TENANT_SIGN_UP_BUTTON\",\n action: () => {\n navigate(`/${window.globalPath}/`);\n },\n },\n };\n const config = ModuleBasedErrorConfig[\"sandbox\"];\n\n return (\n <Background>\n <Card className={`digit-employee-card customError`}>\n <Header showTenant={false} />\n <CardHeader className={\"center\"}>{t(config.infoHeader)}</CardHeader>\n <CardText className={\"center\"}>{t(config.infoMessage)}</CardText>\n <Button\n className=\"customErrorButton\"\n label={t(config?.buttonInfo)}\n variation={\"primary\"}\n isSuffix={true}\n onClick={(e) => {\n e.preventDefault();\n config?.action();\n }}\n />\n </Card>\n </Background>\n );\n};\n\nexport default CustomErrorComponent;\n","import { CardText, PopUp, Button } from \"@egovernments/digit-ui-components\";\nimport React from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nconst LogoutDialog = ({ onSelect, onCancel, onDismiss, PopupStyles, isDisabled, hideSubmit }) => {\n const { t } = useTranslation();\n\n const children = [\n <div>\n <CardText>\n {t(\"CORE_LOGOUT_WEB_CONFIRMATION_MESSAGE\") + \" \"}\n <strong>{t(\"CORE_LOGOUT_MESSAGE\")}</strong>\n </CardText>\n </div>,\n ];\n\n const footer = [\n <Button\n type={\"button\"}\n size={\"large\"}\n variation={\"secondary\"}\n label={t(\"CORE_LOGOUT_CANCEL\")}\n className={\"logout-cancel-button\"}\n onClick={onCancel}\n />,\n <Button\n type={\"button\"}\n size={\"large\"}\n variation={\"primary\"}\n label={t(\"CORE_LOGOUT_WEB_YES\")}\n formId={\"modal-action\"}\n onClick={onSelect}\n isDisabled={isDisabled}\n />\n ];\n\n const footerWithoutSubmit = [\n <Button\n type={\"button\"}\n size={\"large\"}\n variation={\"digit-action-cancel\"}\n label={t(\"CORE_LOGOUT_CANCEL\")}\n className={\"logout-cancel-button\"}\n onClick={onCancel}\n />,\n ];\n\n return (\n <PopUp\n type=\"default\"\n children={children}\n heading={t(\"CORE_LOGOUT_WEB_HEADER\")}\n footerChildren={hideSubmit ? footerWithoutSubmit : footer}\n sortFooterButtons={true}\n onClose={onDismiss}\n className={\"digit-logout-popup-wrapper\"}\n onOverlayClick={onDismiss}\n equalWidthButtons={true}\n style={PopupStyles}\n ></PopUp>\n );\n};\nexport default LogoutDialog;","import React, {useRef, useEffect, useState } from \"react\";\nimport { CheckCircle } from \"@egovernments/digit-ui-svg-components\";\nimport { useNavigate, useLocation } from \"react-router-dom\";\nimport { useTranslation } from \"react-i18next\";\n\nconst DummyLoaderScreen = () => {\n const [currentStep, setCurrentStep] = useState(0);\n const navigate = useNavigate();\n const location = useLocation();\n const { t } = useTranslation();\n const { tenant } = location.state || {};\n const steps = [\n \"SANDBOX_GUIDE_SETUP_ACCOUNT\",\n \"SANDBOX_GUIDE_DEFAULT_MASTER_DATA\",\n \"SANDBOX_GUIDE_CONFIGURING_COMPLAINTS\",\n \"SANDBOX_GUIDE_CONFIGURING_EMPLOYEE_MANAGEMENT\",\n \"SANDBOX_GUIDE_SETTING_UP_CITIZEN_PORTAL\",\n \"SANDBOX_GUIDE_SETTING_UP_EMPLOYEE_PORTAL\",\n \"SANDBOX_GUIDE_LOADING_CONFIGURATION_INTERFACE\",\n \"SANDBOX_GUIDE_CREATING_DASHBOARD\",\n \"SANDBOX_GUIDE_ALL_SETUP_DONE\",\n ];\n useEffect(() => {\n const stepInterval = setInterval(() => {\n if (currentStep < steps.length) {\n setCurrentStep((prev) => prev + 1);\n }\n }, 2000); // 1 second delay for each step\n\n if (currentStep === steps.length) {\n clearInterval(stepInterval); // Clear the interval to stop further updates\n const globalPath = typeof window !== 'undefined' ? window?.globalPath : '';\n\n const navigateTimeout = setTimeout(() => {\n if (roleForLandingPage(getUserRoles, MdmsRes)) {\n navigate({\n pathname: `/${window?.globalPath}/${tenant}${RoleLandingUrl}`,\n state: { tenant: tenant },\n });\n\n } else {\n navigate({\n pathname: `/${window?.globalPath}/${tenant}/employee`,\n state: { tenant: tenant },\n });\n }\n }, 1000);\n\n return () => clearTimeout(navigateTimeout); // Cleanup timeout\n }\n\n return () => {\n clearInterval(stepInterval);\n };\n }, [currentStep]);\n\n const ref = useRef(null);\n const getUserRoles = Digit.SessionStorage.get(\"User\")?.info?.roles;\n const [buttonDisabled, setButtonDisabled] = useState(true);\n const { data: MdmsRes } = Digit.Hooks.useCustomMDMS(\n tenant,\n \"SandBoxLanding\",\n [\n {\n name: \"LandingPageRoles\",\n },\n ],\n {\n enabled: true,\n staleTime: 0,\n cacheTime: 0,\n select: (data) => {\n return data?.[\"SandBoxLanding\"]?.[\"LandingPageRoles\"];\n },\n }\n );\n\n useEffect(() => {\n if (MdmsRes?.[0].url) {\n setButtonDisabled(false);\n }\n }, [MdmsRes]);\n\n const RoleLandingUrl = MdmsRes?.[0].url;\n\n const roleForLandingPage = (getUserRoles, MdmsRes) => {\n const userRole = getUserRoles?.[0]?.code;\n return userRole === \"SUPERUSER\" && MdmsRes.some((page) => page.rolesForLandingPage.includes(\"SUPERUSER\"));\n };\n\n const onButtonClick = () => {\n if (roleForLandingPage(getUserRoles, MdmsRes)) {\n window.location.href = `/${window?.globalPath}/${tenant}${RoleLandingUrl}`;\n } else {\n window.location.href = `/${window?.globalPath}/${tenant}/employee`;\n }\n };\n\n return (\n <div className=\"sandbox-loader-screen\">\n <div className=\"sandbox-loader\"></div>\n <ul className=\"sandbox-installation-steps\">\n {steps.map((step, index) => (\n <li key={index} className={`sandbox-step ${index < currentStep ? \"sandbox-visible\" : \"\"}`}>\n <span className=\"sandbox-step-text\">{t(step)}</span>\n {index < currentStep && <CheckCircle fill=\"#00703C\" />}\n </li>\n ))}\n </ul>\n </div>\n );\n};\n\nexport default DummyLoaderScreen;\n","import React, { useState, useEffect } from \"react\";\nimport { Navigate } from \"react-router-dom\";\nimport { Loader } from \"@egovernments/digit-ui-components\";\nimport { useTranslation } from \"react-i18next\";\n\n/**\n * DynamicModuleLoader handles loading of modules from the ComponentRegistryService\n * with loading states, retries, and graceful error handling\n */\nconst DynamicModuleLoader = ({ \n moduleCode, \n stateCode, \n userType, \n tenants, \n maxRetries = 5, \n retryDelay = 1500,\n initialDelay = 100 // Initial delay before first check to allow modules to register\n}) => {\n const [moduleState, setModuleState] = useState({\n module: null,\n loading: true,\n error: null,\n retryCount: 0,\n initialDelayComplete: false\n });\n const { t } = useTranslation();\n\n useEffect(() => {\n let retryTimeout;\n let initialTimeout;\n\n const loadModule = async () => {\n try {\n // Check if module is available in ComponentRegistryService\n const Module = Digit.ComponentRegistryService.getComponent(`${moduleCode}Module`);\n \n if (Module) {\n setModuleState({\n module: Module,\n loading: false,\n error: null,\n retryCount: 0,\n initialDelayComplete: true\n });\n } else {\n // Module not found, check if we should retry\n if (moduleState.retryCount < maxRetries) {\n setModuleState(prev => ({\n ...prev,\n retryCount: prev.retryCount + 1\n }));\n \n // Retry after delay (exponential backoff)\n const delay = retryDelay * Math.pow(1.5, moduleState.retryCount);\n retryTimeout = setTimeout(() => {\n loadModule();\n }, delay);\n } else {\n // Max retries reached\n setModuleState({\n module: null,\n loading: false,\n error: `Module \"${moduleCode}\" not found after ${maxRetries} attempts`,\n retryCount: moduleState.retryCount,\n initialDelayComplete: true\n });\n }\n }\n } catch (error) {\n console.error(`Error loading module ${moduleCode}:`, error);\n setModuleState({\n module: null,\n loading: false,\n error: error.message,\n retryCount: moduleState.retryCount,\n initialDelayComplete: true\n });\n }\n };\n\n // Start with initial delay to allow modules to register\n if (!moduleState.initialDelayComplete) {\n initialTimeout = setTimeout(() => {\n setModuleState(prev => ({ ...prev, initialDelayComplete: true }));\n loadModule();\n }, initialDelay);\n } else {\n loadModule();\n }\n\n // Cleanup timeouts on unmount\n return () => {\n if (retryTimeout) {\n clearTimeout(retryTimeout);\n }\n if (initialTimeout) {\n clearTimeout(initialTimeout);\n }\n };\n }, [moduleCode, moduleState.retryCount, moduleState.initialDelayComplete, maxRetries, retryDelay, initialDelay]);\n\n // Show loading state\n if (moduleState.loading) {\n const loadingText = !moduleState.initialDelayComplete\n ? t(\"CORE_INITIALIZING_MODULE\", { moduleCode, defaultValue: \"Initializing {{moduleCode}} module...\" })\n : t(\"CORE_LOADING_MODULE\", { moduleCode, defaultValue: \"Loading {{moduleCode}} module...\" });\n\n return (\n <div className=\"module-loading-container\">\n <Loader \n page={true} \n variant=\"PageLoader\" \n loaderText={loadingText}\n />\n {moduleState.retryCount > 0 && moduleState.initialDelayComplete && (\n <div className=\"retry-info\" style={{ textAlign: 'center', marginTop: '1rem', color: '#666' }}>\n {t(\"CORE_MODULE_RETRY_ATTEMPT\", { retryCount: moduleState.retryCount, maxRetries, defaultValue: \"Retry attempt {{retryCount}}/{{maxRetries}}\" })}\n </div>\n )}\n </div>\n );\n }\n\n // Show error state and redirect\n if (moduleState.error || !moduleState.module) {\n console.warn(`Module loading failed for ${moduleCode}:`, moduleState.error);\n return (\n <Navigate\n to={`/${window?.contextPath}/employee/user/error?type=notfound&module=${moduleCode}&reason=${encodeURIComponent(moduleState.error || 'Module not found')}`}\n replace\n />\n );\n }\n\n // Render the loaded module\n const Module = moduleState.module;\n return (\n <Module \n stateCode={stateCode} \n moduleCode={moduleCode} \n userType={userType} \n tenants={tenants} \n />\n );\n};\n\nexport default DynamicModuleLoader;","import React from \"react\";\nimport ErrorComponent from \"./ErrorComponent\";\n\nconst Redircter = () => {\n // Add safety checks for window object\n if (typeof window === 'undefined') {\n return <span></span>;\n }\n\n try {\n const contextPath = window?.contextPath || '';\n const userType = Digit.UserService.getType();\n const path = userType === \"employee\" \n ? `/${contextPath}/employee/user/error` \n : `/${contextPath}/citizen/error`;\n \n const currentHref = window.location.href;\n \n // Check if we're already on an error page or in development\n if (\n currentHref.includes(\"employee/user/error\") ||\n currentHref.includes(\"citizen/error\") ||\n process.env.NODE_ENV === \"development\"\n ) {\n // Do nothing - already on error page or in development\n return <span></span>;\n }\n \n // Safe navigation with error handling\n try {\n window.location.href = path;\n } catch (navigationError) {\n console.warn('Navigation failed in error boundary:', navigationError);\n // Fallback: try using replace instead\n try {\n window.location.replace(path);\n } catch (replaceError) {\n console.error('Both href and replace failed:', replaceError);\n }\n }\n } catch (error) {\n console.error('Error in Redircter component:', error);\n }\n\n return <span></span>;\n};\n\nclass ErrorBoundary extends React.Component {\n constructor(props) {\n super(props);\n this.state = { error: null, errorStack: null, hasError: false, module: null, action: null, info: null };\n }\n\n static getDerivedStateFromError(error) {\n // Update state so the next render will show the fallback UI.\n return { error: error?.message, hasError: true, errorStack: error?.stack, module: error?.module, action: error?.action, info: error?.info };\n }\n\n componentDidCatch(error, errorInfo) {\n // Catch errors in any components below and re-render with error message\n this.setState({ \n error: error?.message, \n hasError: true, \n errorStack: error?.stack,\n module: error?.module,\n action: error?.action,\n info: errorInfo\n });\n \n // Enhanced error logging with safety checks\n try {\n // Log to console in development\n if (process.env.NODE_ENV === 'development') {\n console.group('🚨 Error Boundary Caught Error');\n console.error('Error:', error);\n console.error('Error Info:', errorInfo);\n console.error('Component Stack:', errorInfo?.componentStack);\n console.groupEnd();\n }\n \n // You can also log error messages to an error reporting service here\n // Example: errorReportingService.captureException(error, { extra: errorInfo });\n \n } catch (loggingError) {\n console.warn('Failed to log error in ErrorBoundary:', loggingError);\n }\n }\n\n render() {\n if (this.state.hasError) {\n // (\"UI-errorInfo\", this.state?.errorStack);\n // (\"UI-component-details\", this.props);\n // You can render any custom fallback UI\n return (\n <div className=\"error-boundary\">\n <Redircter />\n <ErrorComponent initData={this.props.initData} errorData={this.state} goToHome={() => {\n window.location.href = `/${window?.contextPath}/${Digit?.UserService?.getType?.()}`; // Use navigate\n }}/>\n\n {/* <summary>Something went wrong</summary>\n <details style={{ whiteSpace: \"pre-wrap\" }}>\n {this.state?.errorStack && this.state.errorStack.toString().substring(0, 600)}\n {this.state?.error}\n </details> */}\n </div>\n );\n }\n return this.props.children;\n }\n}\n\nexport default ErrorBoundary;\n","import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport ImageComponent from \"./ImageComponent\";\n\nconst ErrorConfig = {\n error: {\n imgUrl: `https://digit-ui-assets.s3.ap-south-1.amazonaws.com/error-image.png`,\n infoMessage: \"CORE_SOMETHING_WENT_WRONG\",\n buttonInfo: \"ACTION_TEST_HOME\",\n },\n maintenance: {\n imgUrl: `https://digit-ui-assets.s3.ap-south-1.amazonaws.com/maintainence-image.png`,\n infoMessage: \"CORE_UNDER_MAINTENANCE\",\n buttonInfo: \"ACTION_TEST_HOME\",\n },\n notfound: {\n imgUrl: `https://digit-ui-assets.s3.ap-south-1.amazonaws.com/PageNotFound.png`,\n infoMessage: \"MODULE_NOT_FOUND\",\n buttonInfo: \"ACTION_TEST_HOME\",\n },\n};\n\nconst ModuleBasedErrorConfig = {\n sandbox: {\n imgUrl: `https://digit-ui-assets.s3.ap-south-1.amazonaws.com/error-image.png`,\n infoMessage: \"WRONG_TENANT_SIGN_UP\",\n buttonInfo: \"CREATE_TENANT_ERROR_BUTTON\",\n },\n};\n\nconst ErrorComponent = (props) => {\n const { type = \"error\" } = Digit.Hooks.useQueryParams();\n const module = props?.errorData?.module;\n const { t } = useTranslation();\n const config = module ? ModuleBasedErrorConfig[module] : ErrorConfig[type];\n const stateInfo = props.stateInfo;\n\n return (\n <div className=\"error-boundary\">\n <div className=\"error-container\">\n <ImageComponent src={config.imgUrl} alt=\"error\" />\n <h1>{t(config.infoMessage)}</h1>\n <button\n onClick={() => {\n module ? props?.errorData?.action() : props?.goToHome?.();\n }}\n >\n {t(config.buttonInfo)}\n </button>\n </div>\n </div>\n );\n};\n\nexport default ErrorComponent;\n","import { Loader } from \"@egovernments/digit-ui-components\";\nimport React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport ImageComponent from \"./ImageComponent\";\n\nconst Header = ({ showTenant = true }) => {\n const { data: storeData, isLoading } = Digit.Hooks.useStore.getInitData();\n const { stateInfo } = storeData || {};\n const { t } = useTranslation();\n\n if (isLoading) return <Loader />;\n\n //If HEADER_SVG config exists, return the custom block\n const headerSvgSecondaryUrl = window?.globalConfigs?.getConfig(\"SVG_HEADER_SECONDARY_LOGO_URL\");\n if (headerSvgSecondaryUrl) {\n return (\n <div className=\"bannerHeader secondaryBannerHeader\">\n <ImageComponent\n className=\"bannerLogo\"\n src={stateInfo?.logoUrl}\n style={!showTenant ? { borderRight: \"unset\" } : {}}\n alt=\"Digit Banner\"\n />\n <span style={{fontSize: \"xx-large\"}}>|</span>\n <ImageComponent\n className=\"svgHeaderLogo\"\n src={headerSvgSecondaryUrl}\n alt=\"DIGIT Logo\"\n />\n </div>\n );\n }\n\n // Default logic\n return (\n <div className=\"bannerHeader\">\n <ImageComponent\n className=\"bannerLogo\"\n src={stateInfo?.logoUrl}\n style={!showTenant ? { borderRight: \"unset\" } : {}}\n alt=\"Digit Banner\"\n />\n {showTenant && stateInfo?.code && (\n <p>{t(`TENANT_TENANTS_${stateInfo?.code?.toUpperCase()}`)}</p>\n )}\n </div>\n );\n};\n\nexport default Header;","import React, { Fragment, useState, useEffect } from \"react\";\nimport { Button, LandingPageCard, LandingPageWrapper } from \"@egovernments/digit-ui-components\";\nimport { useTranslation } from \"react-i18next\";\nimport { useNavigate } from \"react-router-dom\";\nimport { Loader } from \"@egovernments/digit-ui-components\";\n\n\nimport { CustomSVG } from \"@egovernments/digit-ui-components\";\nconst Components = require(\"@egovernments/digit-ui-svg-components\");\n\nexport const RoleBasedEmployeeHome = ({ modules, additionalComponent }) => {\n const { isLoading, data } = Digit.Hooks.useAccessControl();\n const isMultiRootTenant = Digit.Utils.getMultiRootTenant();\n const { t } = useTranslation();\n const navigate= useNavigate();\n const tenantId = Digit?.ULBService?.getStateId();\n let sortedConfigEmployeesSidebar = null;\n const [mdmsOrderData, setMdmsOrderData] = useState([{}]);\n\n const { data: MdmsRes } = Digit.Hooks.useCustomMDMS(\n tenantId,\n \"HomeScreenOrder\",\n [\n {\n name: \"CardsAndLinksOrder\",\n },\n ],\n {\n select: (data) => {\n return data?.[\"HomeScreenOrder\"]?.[\"CardsAndLinksOrder\"];\n },\n }\n );\n\n\n\n const { data: moduleConfigData, isLoading: isModuleConfigLoading } = Digit.Hooks.useCustomMDMS(\n tenantId,\n \"SandBoxLanding\",\n [\n {\n name: \"AdditionalModuleLinks\",\n },\n ],\n {\n \n select: (data) => {\n return data?.[\"SandBoxLanding\"]?.[\"AdditionalModuleLinks\"];\n },\n }\n );\n \n useEffect(() => {\n setMdmsOrderData(MdmsRes);\n }, [MdmsRes]);\n\n const transformURL = (url = \"\") => {\n if (url == \"/\") {\n return;\n }\n if (url?.indexOf(`/${window?.contextPath}`) === -1) {\n let updatedUrl = null;\n if (isMultiRootTenant) {\n url = url.replace(\"/sandbox-ui/employee\", `/sandbox-ui/${tenantId}/employee`);\n updatedUrl = url;\n } else {\n updatedUrl = url;\n }\n return updatedUrl;\n } else {\n return url;\n }\n };\n\n const getLinkByType = (moduleData, type) => {\n if (!moduleData || !type) return null;\n const moduleConfig = moduleConfigData?.find((config) => config.moduleName === moduleData.module);\n const linkKey = moduleConfig?.[type];\n const links = moduleData?.links;\n return links?.find((item) => item?.displayName === linkKey) || null;\n };\n\n // Function to filter links dynamically based on module config\n const getFilteredLinks = (moduleData) => {\n const moduleConfig = moduleConfigData?.find((config) => config.moduleName === moduleData.module);\n return moduleData?.links?.filter((item) => {\n const displayName = item.displayName;\n const isNotConfigureMaster = displayName !== \"Configure_master\";\n const isNotHowItWorks = displayName !== moduleConfig?.howItWorksLink;\n const isNotUserManual = displayName !== moduleConfig?.userManualLink;\n\n return isNotConfigureMaster && isNotHowItWorks && isNotUserManual;\n });\n };\n\n const configEmployeeSideBar = data?.actions\n .filter((e) => e.url === \"card\" && e.parentModule)\n .reduce((acc, item) => {\n const module = item.parentModule;\n if (!acc[module]) {\n acc[module] = {\n module: module,\n kpis: [],\n icon: item.leftIcon ? Digit.Utils.iconRender({iconName: item.leftIcon, iconFill: \"white\",CustomSVG,Components}) : \"\",\n label: Digit.Utils.locale.getTransformedLocale(`${module}_CARD_HEADER`),\n links: [],\n };\n }\n const linkUrl = transformURL(item.navigationURL);\n const queryParamIndex = linkUrl.indexOf(\"?\");\n acc[module].links.push({\n link: linkUrl,\n icon: item.leftIcon,\n queryParams: queryParamIndex === -1 ? null : linkUrl.substring(queryParamIndex),\n label: t(Digit.Utils.locale.getTransformedLocale(`${module}_LINK_${item.displayName}`)),\n displayName: item.displayName,\n });\n return acc;\n }, {});\n\n if (isLoading) {\n return <Loader page={false} variant={\"PageLoader\"} />;\n }\n\n if (!configEmployeeSideBar) {\n return \"\";\n }\n\n const sortCardAndLink = (configEmployeeSideBar) => {\n const sortedModules = Object.keys(configEmployeeSideBar)\n .sort((a, b) => {\n const cardOrderA = mdmsOrderData?.find((item) => item.moduleType === \"card\" && item.name === a)?.order || null;\n const cardOrderB = mdmsOrderData?.find((item) => item.moduleType === \"card\" && item.name === b)?.order || null;\n return cardOrderA - cardOrderB;\n })\n .reduce((acc, module) => {\n const sortedLinks = configEmployeeSideBar?.[module]?.links?.sort((linkA, linkB) => {\n const labelA = linkA?.displayName;\n const labelB = linkB?.displayName;\n const orderA =\n mdmsOrderData?.find((item) => item.moduleType === \"link\" && item.name === `${module}.${labelA.replace(/\\s+/g, \"_\")}`)?.order || null;\n const orderB =\n mdmsOrderData?.find((item) => item.moduleType === \"link\" && item.name === `${module}.${labelB.replace(/\\s+/g, \"_\")}`)?.order || null;\n\n return orderA - orderB;\n });\n\n acc[module] = {\n ...configEmployeeSideBar[module],\n links: sortedLinks,\n };\n\n return acc;\n }, {});\n\n return sortedModules;\n };\n\n if (isMultiRootTenant) {\n sortedConfigEmployeesSidebar = sortCardAndLink(configEmployeeSideBar);\n } else {\n sortedConfigEmployeesSidebar = configEmployeeSideBar;\n }\n\n const children = Object.keys(sortedConfigEmployeesSidebar)?.map((current, index) => {\n const moduleData = sortedConfigEmployeesSidebar?.[current];\n const configureData = moduleData?.links?.find((item) => item?.displayName === \"Configure_master\");\n const howItWorks = getLinkByType(moduleData, \"howItWorksLink\");\n const userManual = getLinkByType(moduleData, \"userManualLink\");\n\n const propsForModuleCard = {\n icon: \"SupervisorAccount\",\n moduleName: t(moduleData?.label),\n metrics: [],\n links: Digit.Utils.getMultiRootTenant() ? getFilteredLinks(moduleData) : moduleData?.links,\n centreChildren: [\n <div>{t(Digit.Utils.locale.getTransformedLocale(`MODULE_CARD_DESC_${current}`))}</div>,\n howItWorks && (\n <Button\n variation=\"teritiary\"\n label={howItWorks?.label}\n icon={howItWorks?.icon}\n type=\"button\"\n size={\"medium\"}\n onClick={() => window.open(howItWorks?.link, \"_blank\")}\n style={{ padding: \"0px\" }}\n />\n ),\n ],\n endChildren: Digit.Utils.getMultiRootTenant()\n ? [\n configureData && (\n <Button\n variation=\"teritiary\"\n label={configureData?.label}\n icon={configureData?.icon}\n type=\"button\"\n size={\"medium\"}\n onClick={() => navigate(configureData?.link)}\n style={{ padding: \"0px\" }}\n />\n ),\n userManual && (\n <Button\n variation=\"teritiary\"\n label={userManual?.label}\n icon={userManual?.icon}\n type=\"button\"\n size={\"medium\"}\n onClick={() => window.open(userManual?.link, \"_blank\")}\n style={{ padding: \"0px\" }}\n />\n ),\n ]\n : null,\n };\n\n return <LandingPageCard buttonSize={\"medium\"} {...propsForModuleCard} />;\n });\n\n return (\n <>\n <LandingPageWrapper>{React.Children.map(children, (child) => React.cloneElement(child))}</LandingPageWrapper>\n </>\n );\n};","import React from \"react\";\nimport{ useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { CardText, CardHeader, LinkLabel, Card, Button } from \"@egovernments/digit-ui-components\";\nimport { ArrowForward } from \"@egovernments/digit-ui-svg-components\";\nimport { CardSubHeader, CardSectionHeader, BreakLine, CardSectionSubText } from \"@egovernments/digit-ui-react-components\";\n\nconst FaqComponent = (props) => {\n const { question,isLabelLink, answer,type,actions,content, lastIndex } = props;\n const [isOpen, toggleOpen] = useState(false);\n const { t } = useTranslation();\n const tenantId = Digit.ULBService.getStateId();\n const ListTag = type === \"number\" ? \"ol\" : \"ul\";\n return (\n <div className=\"faqs border-none\" onClick={() => toggleOpen(!isOpen)}>\n <div className=\"faq-question\" style={{ justifyContent: \"space-between\", display: \"flex\" }}>\n <span>{t(question)}</span>\n <span className={isOpen ? \"faqicon rotate\" : \"faqicon\"} style={{ float: \"right\" }}>\n <ArrowForward />\n </span>\n </div>\n <div className=\"faq-answer\" style={isOpen ? { display: \"block\" } : { display: \"none\" }}>\n <CardSectionSubText style={{ marginTop: \"1rem\" }}>{t(content)}</CardSectionSubText>\n <div style={{ marginTop: \"1rem\" }}>\n {actions && (\n <ListTag>\n {actions.map((action, index) => (\n <li key={index} style={{ listStyleType: ListTag === \"ul\" ? \"disc\" : \"auto\", margin: \"8px 0\" }}>\n {isLabelLink ? (\n action?.label ? (\n <Button\n variation=\"teritiary\"\n label={t(action?.label)} \n type=\"button\"\n size={\"medium\"}\n onClick={() => {\n if (action?.fulllink) {\n window.open(action?.link, \"_blank\");\n } else {\n const baseURL = `https://${window.location.hostname}/${window?.globalPath}/${tenantId}`;\n window.open(`${baseURL}/${action?.link}`, \"_blank\");\n }\n }}\n style={{ padding: \"0px\" }}\n />\n ) : null\n ) : (\n action?.label ? <strong>{t(action?.label)}:</strong> : null\n )} \n {t(action?.description)}\n </li>\n ))}\n </ListTag>\n )}\n </div>\n </div>\n {!lastIndex ? <div className=\"cs-box-border\" /> : null}\n </div>\n );\n};\n\nconst CardC = ({ type, title, content, actions, style }) => {\n const { t } = useTranslation();\n const ListTag = type === \"number\" ? \"ol\" : \"ul\";\n return (\n <div>\n {/* <div style={{ border: \"1px solid #ccc\", borderRadius: \"8px\", padding: \"16px\", margin: \"16px\", ...style }}> */}\n <CardSectionHeader>{t(title)}</CardSectionHeader>\n <CardSectionSubText style={{ marginTop: \"1rem\" }}>{t(content)}</CardSectionSubText>\n <div style={{ marginTop: \"1rem\" }}>\n {actions && (\n <ListTag>\n {actions.map((action, index) => (\n <li key={index} style={{ listStyleType: ListTag === \"ul\" ? \"disc\" : \"auto\", margin: \"8px 0\" }}>\n {action?.label ? <strong>{t(action?.label)}:</strong> : null} {t(action?.description)}\n </li>\n ))}\n </ListTag>\n )}\n </div>\n </div>\n );\n};\n\nconst FAQ = ({ key, title, content, faqs ,type}) => {\n const { t } = useTranslation();\n return (\n <div style={{ width: \"100%\" }}>\n <div style={{ width: \"100%\" }}>\n {faqs.map((faq, i) => (\n <FaqComponent key={\"faq_\" + i} question={faq.question} answer={faq.answer} isLabelLink={faq.isLabelLink} type ={type} actions={faq.answer} content ={faq.content}lastIndex={i === faqs?.length - 1} />\n ))}\n </div>\n </div>\n );\n};\nconst QuickSetup = ({ cardConfig }) => {\n const { t } = useTranslation();\n\n const moduleFaqs = [\n {\n question: \"SANDBOX_FAQ_QUES_ONE\",\n answer: \"SANDBOX_FAQ_ANS_ONE\",\n },\n {\n question: \"SANDBOX_FAQ_QUES_TWO\",\n answer: \"SANDBOX_FAQ_ANS_TWO\",\n },\n {\n question: \"SANDBOX_FAQ_QUES_THREE\",\n answer: \"SANDBOX_FAQ_ANS_THREE\",\n },\n {\n question: \"SANDBOX_FAQ_QUES_FOUR\",\n answer: \"SANDBOX_FAQ_ANS_FOUR\",\n },\n ];\n return (\n <Card className={\"sandbox-guide\"} style={{ width: \"25rem\", height: \"47rem\", overflowY: \"scroll\" }}>\n {/* <Card style={{ height: \"47rem\", overflowY: \"scroll\" }}> */}\n <CardHeader>{t(\"GUIDE_TO_SETUP\")}</CardHeader>\n <div style={{ display: \"flex\", flexWrap: \"wrap\" }}>\n {cardConfig.map((config, index) => {\n return config?.type === \"faqs\" ? (\n <FAQ key={config.id} title={config.title} type = {config?.type} content={config.content} faqs={config.actions} />\n ) : (\n <React.Fragment>\n <CardC\n type={config?.type}\n key={config.id}\n title={config.title}\n content={config.content}\n actions={config.actions}\n style={config.style}\n />\n {index !== cardConfig?.length - 1 && <BreakLine style={{ width: \"100%\", border: \"1px solid #d6d5d4\" }} />}\n </React.Fragment>\n );\n })}\n </div>\n </Card>\n );\n};\n\nexport default QuickSetup;","import React, { Fragment, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { CardText, CardLabelError, Toast, CardLabel, Card, CardHeader, LinkLabel, Loader } from \"@egovernments/digit-ui-components\";\nimport QuickSetupComponent from \".\";\nimport QuickSetup from \"./QuickSetup\";\n\nconst QuickSetupConfigComponent = ({ onSelect, formData, control, formState, ...props }) => {\n const { t } = useTranslation();\n const { isLoading, data } = Digit.Hooks.useAccessControl();\n const isMultiRootTenant = Digit.Utils.getMultiRootTenant();\n const tenantId = Digit.ULBService.getStateId();\n\n // const transformURL = (url = \"\") => {\n // if (url == \"/\") {\n // return;\n // }\n // if (Digit.Utils.isContextPathMissing(url)) {\n // let updatedUrl = null;\n // if (isMultiRootTenant) {\n // url = url.replace(\"/sandbox-ui/employee\", `/sandbox-ui/${tenantId}/employee`);\n // updatedUrl = url;\n // } else {\n // updatedUrl = DIGIT_UI_CONTEXTS?.every((e) => url?.indexOf(`/${e}`) === -1) ? \"/employee/\" + url : url;\n // }\n // return updatedUrl;\n // } else {\n // return url;\n // }\n // };\n\n const configEmployeeSideBar = data?.actions\n .filter((e) => e.url === \"card\" && e.parentModule)\n .reduce((acc, item) => {\n const module = item.parentModule;\n if (!acc[module]) {\n acc[module] = {\n module: module,\n label: Digit.Utils.locale.getTransformedLocale(`${module}_CARD_HEADER`),\n links: [],\n };\n }\n const linkUrl = Digit.Utils.transformURL(item.navigationURL, tenantId);\n const queryParamIndex = linkUrl.indexOf(\"?\");\n acc[module].links.push({\n link: queryParamIndex === -1 ? linkUrl : linkUrl.substring(0, queryParamIndex),\n label: t(Digit.Utils.locale.getTransformedLocale(`${module}_LINK_${item.displayName}`)),\n queryParams: queryParamIndex === -1 ? null : linkUrl.substring(queryParamIndex),\n description: t(Digit.Utils.locale.getTransformedLocale(`${module}_LINK_${item.displayName}_DESCRIPTION`)),\n });\n return acc;\n }, {});\n\n if (!configEmployeeSideBar) {\n return \"\";\n }\n const QuickSetupConfig = [\n {\n sectionHeader: \"WELCOME_TO_SANDBOX\",\n sections: [\n {\n label: \"SANDBOX_DESCRIPTION_1\",\n },\n {\n label: \"SANDBOX_DESCRIPTION_2\",\n },\n {\n label: \"SANDBOX_DESCRIPTION_3\",\n },\n ],\n },\n {\n sectionHeader: \"QUICK_SETUP\",\n links: configEmployeeSideBar,\n },\n ];\n\n const cardConfig = [\n {\n id: 1,\n type: \"faqs\",\n actions: [\n {\n question: \"SANDBOX_FAQ_QUES_14\",\n isLabelLink: true,\n answer: [\n {\n label: \"SANDBOX_FAQ_ANS_14_LABEL_1\",\n fulllink:true,\n link:\"https://egov-digit.gitbook.io/digit-sandbox/specifications/user-manual/walkthrough-videos\",\n }\n ]\n },\n {\n question: \"SANDBOX_FAQ_QUES_1\",\n content: \"SANDBOX_FAQ_CONTENT_1\",\n isLabelLink: true,\n answer: [\n {\n label: \"SANDBOX_FAQ_ANS_1_LABEL_1\",\n link:\"citizen/login\",\n description: \"SANDBOX_FAQ_ANS_1_DESCRIPTION_1\",\n },\n {\n label: \"SANDBOX_FAQ_ANS_1_LABEL_2\",\n link: \"employee/user/login\",\n description: \"SANDBOX_FAQ_ANS_1_DESCRIPTION_2\",\n }\n ]\n },\n {\n question: \"SANDBOX_FAQ_QUES_2\",\n content: \"SANDBOX_FAQ_CONTENT_2\",\n answer: [\n {\n label: null,\n description: \"SANDBOX_FAQ_ANS_2_DESCRIPTION_1\",\n },\n {\n label: null,\n description: \"SANDBOX_FAQ_ANS_2_DESCRIPTION_2\",\n },\n {\n label: null,\n description: \"SANDBOX_FAQ_ANS_2_DESCRIPTION_3\",\n },\n {\n label: null,\n description: \"SANDBOX_FAQ_ANS_2_DESCRIPTION_4\",\n }\n ]\n },\n {\n question: \"SANDBOX_FAQ_QUES_3\",\n content: \"SANDBOX_FAQ_CONTENT_3\",\n answer: [\n {\n label: null,\n description: \"SANDBOX_FAQ_ANS_3_DESCRIPTION_1\",\n },\n {\n label: null,\n description: \"SANDBOX_FAQ_ANS_3_DESCRIPTION_2\",\n },\n {\n label: null,\n description: \"SANDBOX_FAQ_ANS_3_DESCRIPTION_3\",\n },\n {\n label: null,\n description: \"SANDBOX_FAQ_ANS_3_DESCRIPTION_4\",\n }\n ]\n },\n {\n question: \"SANDBOX_FAQ_QUES_4\",\n content: \"SANDBOX_FAQ_CONTENT_4\",\n answer: [\n {\n label: null,\n description: \"SANDBOX_FAQ_ANS_4_DESCRIPTION_1\",\n },\n {\n label: null,\n description: \"SANDBOX_FAQ_ANS_4_DESCRIPTION_2\",\n }\n ]\n },\n {\n question: \"SANDBOX_FAQ_QUES_5\",\n content: \"SANDBOX_FAQ_CONTENT_5\",\n answer: [\n {\n label: \"SANDBOX_FAQ_ANS_5_LABEL_1\",\n description: \"SANDBOX_FAQ_ANS_5_DESCRIPTION_1\",\n },\n {\n label: \"SANDBOX_FAQ_ANS_5_LABEL_2\",\n description: \"SANDBOX_FAQ_ANS_5_DESCRIPTION_2\",\n },\n {\n label: \"SANDBOX_FAQ_ANS_5_LABEL_3\",\n description: \"SANDBOX_FAQ_ANS_5_DESCRIPTION_3\",\n },\n {\n label: \"SANDBOX_FAQ_ANS_5_LABEL_4\",\n description: \"SANDBOX_FAQ_ANS_5_DESCRIPTION_4\",\n },\n {\n label: \"SANDBOX_FAQ_ANS_5_LABEL_5\",\n description: \"SANDBOX_FAQ_ANS_5_DESCRIPTION_5\",\n }\n ]\n },\n {\n question: \"SANDBOX_FAQ_QUES_6\",\n content: \"SANDBOX_FAQ_CONTENT_6\",\n },\n {\n question: \"SANDBOX_FAQ_QUES_7\",\n content: \"SANDBOX_FAQ_CONTENT_7\",\n answer: [\n {\n label: null,\n description: \"SANDBOX_FAQ_ANS_7_DESCRIPTION_1\",\n },\n {\n label: null,\n description: \"SANDBOX_FAQ_ANS_7_DESCRIPTION_2\",\n }\n ]\n },\n {\n question: \"SANDBOX_FAQ_QUES_8\",\n content: \"SANDBOX_FAQ_CONTENT_8\",\n answer: [\n {\n label: null,\n description: \"SANDBOX_FAQ_ANS_8_DESCRIPTION_1\",\n },\n {\n label: null,\n description: \"SANDBOX_FAQ_ANS_8_DESCRIPTION_2\",\n },\n {\n label: null,\n description: \"SANDBOX_FAQ_ANS_8_DESCRIPTION_3\",\n },\n {\n label: null,\n description: \"SANDBOX_FAQ_ANS_8_DESCRIPTION_4\",\n },\n ]\n },\n {\n question: \"SANDBOX_FAQ_QUES_9\",\n content: \"SANDBOX_FAQ_CONTENT_9\",\n answer: [\n {\n label: \"SANDBOX_FAQ_ANS_9_LABEL_1\",\n description: \"SANDBOX_FAQ_ANS_9_DESCRIPTION_1\",\n },\n {\n label: \"SANDBOX_FAQ_ANS_9_LABEL_2\",\n description: \"SANDBOX_FAQ_ANS_9_DESCRIPTION_2\",\n }\n ]\n },\n {\n question: \"SANDBOX_FAQ_QUES_10\",\n content: \"SANDBOX_FAQ_CONTENT_10\",\n answer: [\n {\n label: \"SANDBOX_FAQ_ANS_10_LABEL_1\",\n description: \"SANDBOX_FAQ_ANS_10_DESCRIPTION_1\",\n },\n {\n label: \"SANDBOX_FAQ_ANS_10_LABEL_2\",\n description: \"SANDBOX_FAQ_ANS_10_DESCRIPTION_2\",\n },\n {\n label: \"SANDBOX_FAQ_ANS_10_LABEL_3\",\n description: \"SANDBOX_FAQ_ANS_10_DESCRIPTION_3\",\n },\n {\n label: \"SANDBOX_FAQ_ANS_10_LABEL_4\",\n description: \"SANDBOX_FAQ_ANS_10_DESCRIPTION_4\",\n }\n ]\n },\n {\n question: \"SANDBOX_FAQ_QUES_11\",\n content: \"SANDBOX_FAQ_CONTENT_11\",\n },\n {\n question: \"SANDBOX_FAQ_QUES_12\",\n content: \"SANDBOX_FAQ_CONTENT_12\",\n },\n {\n question: \"SANDBOX_FAQ_QUES_13\",\n content: \"SANDBOX_FAQ_CONTENT_13\",\n } \n ],\n },\n ];\n\n // return <QuickSetupComponent config={QuickSetupConfig}></QuickSetupComponent>;\n return <QuickSetup cardConfig={cardConfig}></QuickSetup>;\n};\n\nexport default QuickSetupConfigComponent;\n","import {\n CitizenHomeCard,\n CitizenInfoLabel,\n Loader,\n} from \"@egovernments/digit-ui-react-components\";\n\nimport { BackLink, CustomSVG, SVG, LandingPageWrapper, Card, Divider } from \"@egovernments/digit-ui-components\";\n\nimport React, { Fragment } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { RoleBasedEmployeeHome } from \"./RoleBasedEmployeeHome\";\nimport QuickSetupConfigComponent from \"../pages/employee/QuickStart/Config\";\n\n/* \nFeature :: Citizen All service screen cards\n*/\nexport const processLinkData = (newData, code, t) => {\n const obj = newData?.[`${code}`];\n if (obj) {\n obj.map((link) => {\n if (Digit.Utils.getMultiRootTenant()) {\n link[\"navigationURL\"] = link[\"navigationURL\"].replace(\"/sandbox-ui/citizen\", `/sandbox-ui/${Digit.ULBService.getStateId()}/citizen`);\n }\n link.link = link[\"navigationURL\"];\n link.i18nKey = t(link[\"name\"]);\n\n });\n }\n const newObj = {\n links: obj?.reverse(),\n header: Digit.Utils.locale.getTransformedLocale(`ACTION_TEST_${code}`),\n iconName: `CITIZEN_${code}_ICON`,\n };\n if (code === \"FSM\") {\n const roleBasedLoginRoutes = [\n {\n role: \"FSM_DSO\",\n from: `/${window?.contextPath}/citizen/fsm/dso-dashboard`,\n dashoardLink: \"CS_LINK_DSO_DASHBOARD\",\n loginLink: \"CS_LINK_LOGIN_DSO\",\n },\n ];\n //RAIN-7297\n roleBasedLoginRoutes.map(({ role, from, loginLink, dashoardLink }) => {\n if (Digit.UserService.hasAccess(role))\n newObj?.links?.push({\n link: from,\n i18nKey: t(dashoardLink),\n });\n else\n newObj?.links?.push({\n link: `/${window?.contextPath}/citizen/login`,\n state: { role: \"FSM_DSO\", from },\n i18nKey: t(loginLink),\n });\n });\n }\n\n return newObj;\n};\nconst iconSelector = (code) => {\n switch (code) {\n case \"PT\":\n return <CustomSVG.PTIcon className=\"fill-path-primary-main\" />;\n case \"WS\":\n return <CustomSVG.WSICon className=\"fill-path-primary-main\" />;\n case \"FSM\":\n return <CustomSVG.FSMIcon className=\"fill-path-primary-main\" />;\n case \"MCollect\":\n return <CustomSVG.MCollectIcon className=\"fill-path-primary-main\" />;\n case \"PGR\":\n return <CustomSVG.PGRIcon className=\"fill-path-primary-main\" />;\n case \"TL\":\n return <CustomSVG.TLIcon className=\"fill-path-primary-main\" />;\n case \"OBPS\":\n return <CustomSVG.OBPSIcon className=\"fill-path-primary-main\" />;\n case \"Bills\":\n return <CustomSVG.BillsIcon className=\"fill-path-primary-main\" />;\n default:\n return <CustomSVG.PTIcon className=\"fill-path-primary-main\" />;\n }\n};\nimport { useNavigate } from \"react-router-dom\";\n\n// Inside CitizenHome component\nconst CitizenHome = ({ getCitizenMenu, fetchedCitizen, isLoading }) => {\n const { t } = useTranslation();\n const navigate = useNavigate();\n const isMobile = window.Digit.Utils.browser.isMobile();\n\n if (isLoading || !fetchedCitizen || !getCitizenMenu) {\n return <Loader />;\n }\n\n const parentModules = Object.keys(getCitizenMenu);\n\n const handleLinkClick = (e, link) => {\n e.preventDefault();\n navigate(link);\n };\n\n \n\n const handleNavigate = (link) => {\n if (!link) return;\n link?.includes(`${window?.contextPath}/`) ? navigate(link) : (window.location.href = link);\n };\n\n const renderApplyIcon = () => (\n <SVG.AddExpense fill=\"#C84C0E\" width=\"1.25rem\" height=\"1.25rem\" className=\"digit-button-customIcon medium teritiary\" />\n );\n\n const renderMyAppIcon = () => (\n <SVG.ListAlt fill=\"#C84C0E\" width=\"1.25rem\" height=\"1.25rem\" className=\"digit-button-customIcon medium teritiary\" />\n );\n\n const isApplyLink = (link) => {\n const name = (link.name || link.displayName || \"\").toLowerCase();\n return name.includes(\"apply\") || name.includes(\"_apply\");\n };\n \n\n // Desktop: LandingPageWrapper + custom cards with icons (same grid as employee)\n if (!isMobile) {\n const children = parentModules.map((code) => {\n const mdmsDataObj = processLinkData(getCitizenMenu, code, t);\n\n if (!mdmsDataObj?.links?.length) return null;\n\n const seenLinks = new Set();\n const dedupedLinks = mdmsDataObj.links\n ?.filter((ele) => ele?.link)\n ?.sort((x, y) => x?.orderNumber - y?.orderNumber)\n .filter((link) => {\n const key = link.link;\n if (seenLinks.has(key)) return false;\n seenLinks.add(key);\n return true;\n });\n\n return (\n <Card key={code} className=\"digit-landing-page-card\" style={{ borderRadius: \"1rem\" }}>\n <div className=\"icon-module-header\">\n <div className=\"digit-landingpagecard-icon\">\n <CustomSVG.Devices fill=\"#C84C0E\" width=\"1rem\" height=\"1rem\" />\n </div>\n <div className=\"ladingcard-moduleName\" role=\"heading\" aria-level=\"2\">\n {t(mdmsDataObj?.header)}\n </div>\n </div>\n <Divider className=\"digit-landingpage-divider\" variant=\"small\" />\n {dedupedLinks.map((link, i) => {\n const LinkIcon = link.leftIcon && link.leftIcon !== \"TLIcon\" && CustomSVG[link.leftIcon] ? CustomSVG[link.leftIcon] : null;\n return (\n <button\n key={i}\n className=\"digit-button-teritiary medium\"\n type=\"button\"\n style={{ padding: \"0px\" }}\n onClick={() => handleNavigate(link.link)}\n >\n <div className=\"icon-label-container teritiary medium\">\n {LinkIcon ? <LinkIcon fill=\"#C84C0E\" width=\"1.25rem\" height=\"1.25rem\" className=\"digit-button-customIcon medium teritiary\" /> : (isApplyLink(link) ? renderApplyIcon() : renderMyAppIcon())}\n <h2 className=\"digit-button-label\">{link.i18nKey}</h2>\n </div>\n </button>\n );\n })}\n </Card>\n );\n }).filter(Boolean);\n\n return (\n <div className=\"citizen-all-services-wrapper\">\n <div className=\"employee-app-container digit-home-employee-app\">\n <LandingPageWrapper>{children}</LandingPageWrapper>\n </div>\n </div>\n );\n }\n\n // Mobile: Original vertical card layout\n return (\n <div className=\"citizen-all-services-wrapper\">\n {location.pathname.includes(\n \"sanitation-ui/citizen/all-services\"\n ) || (location.pathname.includes(\"sandbox-ui\") && location.pathname.includes(\"all-services\")) ? null : (\n <BackLink onClick={() => window.history.back()}/>\n )}\n <div className=\"citizenAllServiceGrid\">\n {parentModules.map((code) => {\n const mdmsDataObj = processLinkData(getCitizenMenu, code, t);\n\n if (mdmsDataObj?.links?.length > 0) {\n return (\n <div className=\"CitizenHomeCard\" key={code}>\n <div className=\"header\">\n <h2>{t(mdmsDataObj?.header)}</h2>\n {iconSelector(code)}\n </div>\n <div className=\"links\">\n {mdmsDataObj?.links\n ?.filter((ele) => ele?.link)\n ?.sort((x, y) => x?.orderNumber - y?.orderNumber)\n .map((link, i) => (\n <div className=\"linksWrapper\" key={i}>\n <a\n href={link.link}\n onClick={(e) => handleLinkClick(e, link.link)}\n >\n {link.i18nKey}\n </a>\n </div>\n ))}\n </div>\n </div>\n );\n }\n return null;\n })}\n </div>\n </div>\n );\n};\n\nconst EmployeeHome = ({ modules, additionalComponent }) => {\n return (\n <>\n <div className=\"employee-app-container digit-home-employee-app\">\n {/* <div className=\"ground-container moduleCardWrapper gridModuleWrapper digit-home-moduleCardWrapper\"> */}\n <LandingPageWrapper>\n {modules?.map(({ code }, index) => {\n const Card =\n Digit.ComponentRegistryService.getComponent(`${code}Card`) ||\n (() => <React.Fragment />);\n return <Card key={index} />;\n })}\n </LandingPageWrapper>\n {/* </div> */}\n </div>\n\n {additionalComponent &&\n additionalComponent?.length > 0 &&\n additionalComponent.map((i) => {\n const Component =\n typeof i === \"string\"\n ? Digit.ComponentRegistryService.getComponent(i)\n : null;\n return Component ? (\n <div className=\"additional-component-wrapper\">\n <Component />\n </div>\n ) : null;\n })}\n </>\n );\n};\n\nexport const AppHome = ({\n userType,\n modules,\n getCitizenMenu,\n fetchedCitizen,\n isLoading,\n additionalComponent,\n}) => {\n if (userType === \"citizen\") {\n return (\n <CitizenHome\n modules={modules}\n getCitizenMenu={getCitizenMenu}\n fetchedCitizen={fetchedCitizen}\n isLoading={isLoading}\n />\n );\n }\n const isSuperUserWithMultipleRootTenant = Digit.UserService.hasAccess(\"SUPERUSER\") && Digit.Utils.getMultiRootTenant()\n return Digit.Utils.getRoleBasedHomeCard() ? (\n <div className={isSuperUserWithMultipleRootTenant ? \"homeWrapper\" : \"\"}>\n <RoleBasedEmployeeHome modules={modules} additionalComponent={additionalComponent} />\n {isSuperUserWithMultipleRootTenant && !window.Digit.Utils.browser.isMobile() ? <QuickSetupConfigComponent /> : null}\n </div>\n ) : (\n <EmployeeHome modules={modules} additionalComponent={additionalComponent} />\n );\n};\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\nconst ImageComponent = ({\n src,\n alt = \"Image not found\",\n decorative = false,\n ariaLabel = \"No Image description set\",\n ariaLabelledby = \"no-image-description\",\n ...props\n}) => {\n // Determine the appropriate attributes based on the props\n const accessibilityProps = {};\n\n if (decorative) {\n // For decorative images\n accessibilityProps.alt = \"\";\n } else if (alt) {\n // Provide meaningful alt text if available\n accessibilityProps.alt = alt;\n } else if (ariaLabel) {\n // Use aria-label if alt is not provided\n accessibilityProps[\"aria-label\"] = ariaLabel;\n } else if (ariaLabelledby) {\n // Use aria-labelledby for descriptive associations\n accessibilityProps[\"aria-labelledby\"] = ariaLabelledby;\n } else {\n console.warn(\"AccessibleImage: Missing alt, aria-label, or aria-labelledby for non-decorative image.\");\n }\n\n return (\n <img\n src={src}\n {...accessibilityProps}\n {...props}\n tabIndex={0}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n window.open(window?.globalConfigs?.getConfig?.(\"DIGIT_HOME_URL\"), \"_blank\").focus();\n }\n }}\n />\n );\n};\n\nImageComponent.propTypes = {\n src: PropTypes.string.isRequired, // The source URL for the image\n alt: PropTypes.string, // Alternative text for the image\n decorative: PropTypes.bool, // If true, image is decorative\n ariaLabel: PropTypes.string, // Custom label for screen readers\n ariaLabelledby: PropTypes.string, // Association with another descriptive element\n};\n\nexport default ImageComponent;\n","import { Hamburger, TopBar as TopBarComponent } from \"@egovernments/digit-ui-react-components\";\nimport { Dropdown } from \"@egovernments/digit-ui-components\";\nimport React,{Fragment} from \"react\";\nimport {useNavigate, useLocation } from \"react-router-dom\";\nimport ChangeCity from \"../ChangeCity\";\nimport ChangeLanguage from \"../ChangeLanguage\";\nimport { Header as TopBarComponentMain } from \"@egovernments/digit-ui-components\";\nimport ImageComponent from \"../ImageComponent\";\n\nconst DEFAULT_EGOV_LOGO =\"https://egov-dev-assets.s3.ap-south-1.amazonaws.com/egov-logo-2025.png\";\n\n\nconst TopBar = ({\n t,\n stateInfo,\n toggleSidebar,\n isSidebarOpen,\n handleLogout,\n userDetails,\n CITIZEN,\n cityDetails,\n mobileView,\n userOptions,\n handleUserDropdownSelection,\n logoUrl,\n logoUrlWhite,\n showLanguageChange = true,\n}) => {\n const [profilePic, setProfilePic] = React.useState(null);\n\n React.useEffect( () => {\n const app=async ()=>{\n const tenant = Digit.Utils.getMultiRootTenant() ? Digit.ULBService.getStateId() : Digit.ULBService.getCurrentTenantId();\n const uuid = userDetails?.info?.uuid;\n if (uuid) {\n const usersResponse = await Digit.UserService.userSearch(tenant, { uuid: [uuid] }, {});\n if (usersResponse && usersResponse.user && usersResponse.user.length) {\n const userDetails = usersResponse.user[0];\n const thumbs = userDetails?.photo?.split(\",\");\n setProfilePic(thumbs?.at(0));\n }\n }\n }\n app()\n }, [profilePic !== null, userDetails?.info?.uuid]);\n\n const CitizenHomePageTenantId = Digit.ULBService.getCitizenCurrentTenant(true);\n\n let navigate = useNavigate();\n const { pathname } = useLocation();\n\n const conditionsToDisableNotificationCountTrigger = () => {\n if (Digit.UserService?.getUser()?.info?.type === \"EMPLOYEE\") return false;\n if (Digit.UserService?.getUser()?.info?.type === \"CITIZEN\") {\n if (!CitizenHomePageTenantId) return false;\n else return true;\n }\n return false;\n };\n\n const { data: { unreadCount: unreadNotificationCount } = {}, isSuccess: notificationCountLoaded } = Digit.Hooks.useNotificationCount({\n tenantId: CitizenHomePageTenantId,\n config: {\n enabled: conditionsToDisableNotificationCountTrigger(),\n },\n });\n\n const updateSidebar = () => {\n if (!Digit.clikOusideFired) {\n toggleSidebar(true);\n } else {\n Digit.clikOusideFired = false;\n }\n };\n\n function onNotificationIconClick() {\n navigate(`/${window?.contextPath}/citizen/engagement/notifications`);\n }\n\n const urlsToDisableNotificationIcon = (pathname) =>\n !!Digit.UserService?.getUser()?.access_token\n ? false\n : [`/${window?.contextPath}/citizen/select-language`, `/${window?.contextPath}/citizen/select-location`].includes(pathname);\n\n if (CITIZEN) {\n return (\n <div>\n <TopBarComponent\n img={stateInfo?.logoUrlWhite}\n isMobile={true}\n toggleSidebar={updateSidebar}\n logoUrl={stateInfo?.logoUrlWhite}\n onLogout={handleLogout}\n userDetails={userDetails}\n notificationCount={unreadNotificationCount < 99 ? unreadNotificationCount : 99}\n notificationCountLoaded={notificationCountLoaded}\n cityOfCitizenShownBesideLogo={t(CitizenHomePageTenantId)}\n onNotificationIconClick={onNotificationIconClick}\n hideNotificationIconOnSomeUrlsWhenNotLoggedIn={urlsToDisableNotificationIcon(pathname)}\n changeLanguage={!mobileView ? <ChangeLanguage dropdown={true} /> : null}\n />\n </div>\n );\n }\n const loggedin = userDetails?.access_token ? true : false;\n\n //checking for custom topbar components\n const CustomEmployeeTopBar = Digit.ComponentRegistryService?.getComponent(\"CustomEmployeeTopBar\");\n\n if (CustomEmployeeTopBar) {\n return (\n <CustomEmployeeTopBar\n {...{\n t,\n stateInfo,\n toggleSidebar,\n isSidebarOpen,\n handleLogout,\n userDetails,\n CITIZEN,\n cityDetails,\n mobileView,\n userOptions,\n handleUserDropdownSelection,\n logoUrl,\n showLanguageChange,\n loggedin,\n }}\n />\n );\n }\n return (\n <TopBarComponentMain\n actionFields={[\n <ChangeCity dropdown={true} t={t} />,\n showLanguageChange && <ChangeLanguage dropdown={true} />,\n userDetails?.access_token && (\n <Dropdown\n option={userOptions}\n optionKey=\"name\"\n profilePic={profilePic ? profilePic : userDetails?.info?.name || userDetails?.info?.userInfo?.name || \"Employee\"}\n select={handleUserDropdownSelection}\n showArrow={true}\n menuStyles={{ marginTop: \"1rem\" }}\n theme=\"light\"\n />\n ),\n ]}\n onHamburgerClick={() => {\n toggleSidebar();\n }}\n className=\"digit-employee-header\"\n img={logoUrl}\n logoWidth={\"64px\"}\n logoHeight={\"48px\"}\n logo={(loggedin ? cityDetails?.logoId : stateInfo?.statelogo)||DEFAULT_EGOV_LOGO}\n onImageClick={() => {}}\n onLogoClick={() => {}}\n props={{}}\n showDeafultImg\n style={{}}\n theme={window?.globalConfigs?.getConfig(\"HEADER_THEME\") || \"light\"}\n ulb={\n loggedin ? (\n cityDetails?.city?.ulbGrade ? (\n <>\n {t(cityDetails?.i18nKey).toUpperCase()}{\" \"}\n {t(`ULBGRADE_${cityDetails?.city?.ulbGrade.toUpperCase().replace(\" \", \"_\").replace(\".\", \"_\")}`).toUpperCase()}\n </>\n ) : (\n <ImageComponent className=\"state\" src={logoUrlWhite} alt=\"State Logo\" />\n )\n ) : (\n <>\n {t(`MYCITY_${stateInfo?.code?.toUpperCase()}_LABEL`)} {t(`MYCITY_STATECODE_LABEL`)}\n </>\n )\n }\n />\n );\n};\n\nexport default TopBar;\n","export const defaultImage =\n \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAO4AAADUCAMAAACs0e/bAAAAM1BMVEXK0eL\" +\n \"/\" +\n \"/\" +\n \"/\" +\n \"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\";","import React from \"react\";\nimport { LanguageIcon, LogoutIcon, AddressBookIcon, LocationIcon } from \"@egovernments/digit-ui-react-components\";\nimport ChangeLanguage from \"../components/ChangeLanguage\";\n\nconst SideBarMenu = (t, closeSidebar, redirectToLoginPage, isEmployee) => [\n {\n type: \"component\",\n element: \"LANGUAGE\",\n action: <ChangeLanguage />,\n icon: \"LanguageIcon\",\n },\n {\n id: \"login-btn\",\n element: \"LOGIN\",\n text: t(\"CORE_COMMON_LOGIN\"),\n icon: <LogoutIcon className=\"icon\" />,\n populators: {\n onClick: redirectToLoginPage,\n },\n },\n];\n\nexport default SideBarMenu;\n","import React, { useEffect, useState } from \"react\";\nimport {\n HomeIcon,\n EditPencilIcon,\n LogoutIcon,\n AddressBookIcon,\n PropertyHouse,\n CaseIcon,\n CollectionIcon,\n PTIcon,\n OBPSIcon,\n PGRIcon,\n FSMIcon,\n WSICon,\n MCollectIcon,\n Phone,\n BirthIcon,\n DeathIcon,\n FirenocIcon,\n Loader,\n} from \"@egovernments/digit-ui-react-components\";\nimport { Link, useLocation } from \"react-router-dom\";\nimport SideBarMenu from \"../../../config/sidebar-menu\";\nimport { useTranslation } from \"react-i18next\";\nimport { useNavigate } from \"react-router-dom\";\nimport LogoutDialog from \"../../Dialog/LogoutDialog\";\nimport ChangeCity from \"../../ChangeCity\";\nimport { defaultImage } from \"../../utils\";\nimport ImageComponent from \"../../ImageComponent\";\n\n/* \nFeature :: Citizen Webview sidebar\n*/\nconst Profile = ({ info, stateName, t }) => (\n <div className=\"profile-section\">\n <div className=\"imageloader imageloader-loaded\">\n <ImageComponent className=\"img-responsive img-circle img-Profile\" src={defaultImage} alt=\"Profile Logo\" />\n </div>\n <div id=\"profile-name\" className=\"label-container name-Profile\">\n <div className=\"label-text\"> {info?.name} </div>\n </div>\n <div id=\"profile-location\" className=\"label-container loc-Profile\">\n <div className=\"label-text\"> {info?.mobileNumber} </div>\n </div>\n {info?.emailId && (\n <div id=\"profile-emailid\" className=\"label-container loc-Profile\">\n <div className=\"label-text\"> {info.emailId} </div>\n </div>\n )}\n <div className=\"profile-divider\"></div>\n {window.location.href.includes(\"/employee\") &&\n !window.location.href.includes(\"/employee/user/login\") &&\n !window.location.href.includes(\"employee/user/language-selection\") && <ChangeCity t={t} mobileView={true} />}\n </div>\n);\nconst IconsObject = {\n CommonPTIcon: <PTIcon className=\"icon\" />,\n OBPSIcon: <OBPSIcon className=\"icon\" />,\n propertyIcon: <PropertyHouse className=\"icon\" />,\n TLIcon: <CaseIcon className=\"icon\" />,\n PGRIcon: <PGRIcon className=\"icon\" />,\n FSMIcon: <FSMIcon className=\"icon\" />,\n WSIcon: <WSICon className=\"icon\" />,\n MCollectIcon: <MCollectIcon className=\"icon\" />,\n BillsIcon: <CollectionIcon className=\"icon\" />,\n BirthIcon: <BirthIcon className=\"icon\" />,\n DeathIcon: <DeathIcon className=\"icon\" />,\n FirenocIcon: <FirenocIcon className=\"icon\" />,\n HomeIcon: <HomeIcon className=\"icon\" />,\n EditPencilIcon: <EditPencilIcon className=\"icon\" />,\n LogoutIcon: <LogoutIcon className=\"icon\" />,\n Phone: <Phone className=\"icon\" />,\n};\nconst StaticCitizenSideBar = ({ linkData, islinkDataLoading }) => {\n const { t } = useTranslation();\n const navigate = useNavigate();\n const location = useLocation();\n const { pathname } = location;\n const { data: storeData, isFetched } = Digit.Hooks.useStore.getInitData();\n const { stateInfo } = storeData || {};\n const user = Digit.UserService.getUser();\n let isMobile = window.Digit.Utils.browser.isMobile();\n\n const [isEmployee, setisEmployee] = useState(false);\n const [isSidebarOpen, toggleSidebar] = useState(false);\n const [showDialog, setShowDialog] = useState(false);\n\n const handleLogout = () => {\n toggleSidebar(false);\n setShowDialog(true);\n };\n const handleOnSubmit = () => {\n if (Digit.Utils.getMultiRootTenant()) {\n Digit.UserService.logout();\n setShowDialog(false);\n window.location.href = `/${window?.contextPath}/citizen/login`;\n } else {\n Digit.UserService.logout();\n setShowDialog(false);\n }\n };\n const handleOnCancel = () => {\n setShowDialog(false);\n };\n\n if (islinkDataLoading) {\n return <Loader />;\n }\n\n const redirectToLoginPage = () => {\n \n navigate(`/${window?.contextPath}/citizen/login`);\n };\n const showProfilePage = () => {\n navigate(`/${window?.contextPath}/citizen/user/profile`);\n };\n\n const closeSidebar = () => {\n navigate(`/${window?.contextPath}/citizen/all-services`);\n };\n\n let menuItems = [...SideBarMenu(t, showProfilePage, redirectToLoginPage, isEmployee)];\n\n menuItems = menuItems.filter((item) => item.element !== \"LANGUAGE\");\n\n const tenantId = Digit.ULBService.getCurrentTenantId();\n const MenuItem = ({ item }) => {\n const leftIconArray = item?.icon || item.icon?.type?.name;\n const leftIcon = leftIconArray ? IconsObject[leftIconArray] : IconsObject.BillsIcon;\n let itemComponent;\n if (item.type === \"component\") {\n itemComponent = item.action;\n } else {\n itemComponent = item.text;\n }\n const Item = () => (\n <span className=\"menu-item\" {...item.populators}>\n {leftIcon}\n <div className=\"menu-label\">{itemComponent}</div>\n </span>\n );\n if (item.type === \"external-link\") {\n return (\n <a href={item.link}>\n <Item />\n </a>\n );\n }\n if (item.type === \"link\") {\n return (\n <Link to={item?.link}>\n <Item />\n </Link>\n );\n }\n\n return <Item />;\n };\n let profileItem;\n\n if (isFetched && user && user.access_token && user?.info?.type === \"CITIZEN\") {\n profileItem = <Profile info={user?.info} stateName={stateInfo?.name} t={t} />;\n menuItems = menuItems.filter((item) => item?.id !== \"login-btn\");\n menuItems = [\n ...menuItems,\n {\n type: \"link\",\n icon: \"HomeIcon\",\n element: \"HOME\",\n text: t(\"COMMON_BOTTOM_NAVIGATION_HOME\"),\n link: isEmployee ? `/${window?.contextPath}/employee` : `/${window?.contextPath}/citizen`,\n populators: {\n onClick: closeSidebar,\n },\n },\n {\n text: t(\"EDIT_PROFILE\"),\n element: \"PROFILE\",\n icon: \"EditPencilIcon\",\n populators: {\n onClick: showProfilePage,\n },\n },\n {\n text: t(\"CORE_COMMON_LOGOUT\"),\n element: \"LOGOUT\",\n icon: \"LogoutIcon\",\n populators: { onClick: handleLogout },\n },\n {\n text: (\n <React.Fragment>\n {t(\"CS_COMMON_HELPLINE\")}\n <div className=\"telephone\" style={{ marginTop: \"-10%\" }}>\n {storeData?.tenants?.length > 0 && (\n <div className=\"link\">\n <a href={`tel:${\n storeData.tenants.find((tenant) => tenant.code === tenantId)?.contactNumber \n || storeData.tenants[0]?.contactNumber \n || ''\n }`}>\n {storeData.tenants.find((tenant) => tenant.code === tenantId)?.contactNumber \n || storeData.tenants[0]?.contactNumber \n || t(\"CS_NA\")}\n </a>\n </div>\n )}\n </div>\n </React.Fragment>\n ),\n element: \"Helpline\",\n icon: \"Phone\",\n}\n ];\n }\n Object.keys(linkData || {})\n ?.sort((x, y) => y.localeCompare(x))\n ?.map((key) => {\n if (linkData[key][0]?.sidebar === `${window.contextPath}-links`) {\n menuItems.splice(1, 0, {\n type: linkData[key][0]?.sidebarURL?.includes(window?.contextPath) ? \"link\" : \"external-link\",\n text: t(`ACTION_TEST_${Digit.Utils.locale.getTransformedLocale(key)}`),\n links: linkData[key],\n icon: linkData[key][0]?.leftIcon,\n link: linkData[key][0]?.sidebarURL,\n });\n }\n });\n\n return (\n <React.Fragment>\n <div>\n <div\n style={{\n height: \"100%\",\n width: \"100%\",\n top: \"0px\",\n backgroundColor: \"rgba(0, 0, 0, 0.54)\",\n pointerzevents: \"auto\",\n }}\n ></div>\n <div\n style={{\n display: \"flex\",\n flexDirection: \"column\",\n height: isMobile ? \"calc(100vh - 56px)\" : \"auto\",\n zIndex: \"99\",\n }}\n >\n {profileItem}\n <div className=\"drawer-desktop\">\n {menuItems?.map((item, index) => (\n <div className={`sidebar-list ${pathname === item?.link || pathname === item?.sidebarURL ? \"active\" : \"\"}`} key={index}>\n <MenuItem item={item} />\n </div>\n ))}\n </div>\n </div>\n <div>{showDialog && <LogoutDialog onSelect={handleOnSubmit} onCancel={handleOnCancel} onDismiss={handleOnCancel}></LogoutDialog>}</div>\n </div>\n </React.Fragment>\n );\n};\n\nexport default StaticCitizenSideBar;\n","// import { NavBar } from \"@egovernments/digit-ui-react-components\";\nimport { Loader } from \"@egovernments/digit-ui-components\";\nimport React, { useState, Fragment, useEffect } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useNavigate, useLocation } from \"react-router-dom\";\nimport ChangeCity from \"../../ChangeCity\";\nimport { defaultImage } from \"../../utils\";\nimport StaticCitizenSideBar from \"./StaticCitizenSideBar\";\nimport { Hamburger } from \"@egovernments/digit-ui-components\";\nimport { LogoutIcon } from \"@egovernments/digit-ui-react-components\";\nimport ImageComponent from \"../../ImageComponent\";\n\nconst Profile = ({ info, stateName, t }) => {\n const [profilePic, setProfilePic] = React.useState(null);\n React.useEffect(async () => {\n const tenant = Digit.ULBService.getCurrentTenantId();\n const uuid = info?.uuid;\n if (uuid) {\n const usersResponse = await Digit.UserService.userSearch(tenant, { uuid: [uuid] }, {});\n if (usersResponse && usersResponse.user && usersResponse?.user?.length) {\n const userDetails = usersResponse.user[0];\n const thumbs = userDetails?.photo?.split(\",\");\n setProfilePic(thumbs?.at(0));\n }\n }\n }, [profilePic !== null]);\n\n const CustomEmployeeTopBar = Digit.ComponentRegistryService?.getComponent(\"CustomEmployeeTopBar\");\n\n return (\n <div className=\"profile-section\">\n <div className=\"imageloader imageloader-loaded\">\n <ImageComponent\n className=\"img-responsive img-circle img-Profile\"\n src={profilePic ? profilePic : defaultImage}\n style={{ objectFit: \"cover\", objectPosition: \"center\" }}\n alt=\"Profile Image\"\n />\n </div>\n <div id=\"profile-name\" className=\"label-container name-Profile\">\n <div className=\"label-text\"> {info?.name} </div>\n </div>\n <div id=\"profile-location\" className=\"label-container loc-Profile\">\n <div className=\"label-text\"> {info?.mobileNumber} </div>\n </div>\n {info?.emailId && (\n <div id=\"profile-emailid\" className=\"label-container loc-Profile\">\n <div className=\"label-text\"> {info.emailId} </div>\n </div>\n )}\n <div className=\"profile-divider\"></div>\n {window.location.href.includes(\"/employee\") &&\n !window.location.href.includes(\"/employee/user/login\") &&\n !window.location.href.includes(\"employee/user/language-selection\") &&\n !CustomEmployeeTopBar && <ChangeCity t={t} mobileView={true} />}\n </div>\n );\n};\n\n/* \nFeature :: Citizen Webview sidebar\n*/\nexport const CitizenSideBar = ({\n isOpen,\n isMobile = false,\n toggleSidebar,\n onLogout,\n isEmployee = false,\n linkData,\n islinkDataLoading,\n userProfile,\n}) => {\n const isMultiRootTenant = Digit.Utils.getMultiRootTenant();\n const { data: storeData, isFetched } = Digit.Hooks.useStore.getInitData();\n const selectedLanguage = Digit.StoreData.getCurrentLanguage();\n const [profilePic, setProfilePic] = useState(null);\n const { languages, stateInfo } = storeData || {};\n const user = Digit.UserService.getUser();\n const [search, setSearch] = useState(\"\");\n const [dropDownData, setDropDownData] = useState(null);\n const [selectCityData, setSelectCityData] = useState([]);\n const [selectedCity, setSelectedCity] = useState([]); //selectedCities?.[0]?.value\n const [selected, setselected] = useState(selectedLanguage);\n let selectedCities = [];\n const { isLoading, data } = Digit.Hooks.useAccessControl();\n const tenantId = Digit.ULBService.getCurrentTenantId();\n const { t } = useTranslation();\n \n // React Router v6: useNavigate replaces useHistory\n const navigate = useNavigate();\n // React Router v6: useLocation for accessing location object\n const location = useLocation();\n\n const stringReplaceAll = (str = \"\", searcher = \"\", replaceWith = \"\") => {\n if (searcher == \"\") return str;\n while (str?.includes(searcher)) {\n str = str?.replace(searcher, replaceWith);\n }\n return str;\n };\n\n useEffect(() => {\n const userloggedValues = Digit.SessionStorage.get(\"citizen.userRequestObject\");\n let teantsArray = [],\n filteredArray = [];\n userloggedValues?.info?.roles?.forEach((role) => teantsArray.push(role.tenantId));\n let unique = teantsArray.filter((item, i, ar) => ar.indexOf(item) === i);\n unique?.forEach((uniCode) => {\n filteredArray.push({\n label: t(`TENANT_TENANTS_${stringReplaceAll(uniCode, \".\", \"_\")?.toUpperCase()}`),\n value: uniCode,\n });\n });\n selectedCities = filteredArray?.filter((select) => select.value == Digit.SessionStorage.get(\"Employee.tenantId\"));\n setSelectCityData(filteredArray);\n }, [dropDownData]);\n\n const closeSidebar = () => {\n Digit.clikOusideFired = true;\n toggleSidebar(false);\n };\n\n useEffect(() => {\n const fetchUserProfile = async () => {\n const tenant = Digit.ULBService.getCurrentTenantId();\n const uuid = user?.info?.uuid;\n if (uuid) {\n const usersResponse = await Digit.UserService.userSearch(tenant, { uuid: [uuid] }, {});\n const userData = usersResponse?.user?.[0];\n if (userData) {\n const currentUser = Digit.UserService.getUser();\n Digit.UserService.setUser({\n ...currentUser,\n info: userData\n });\n }\n if (usersResponse && usersResponse.user && usersResponse?.user?.length) {\n const userDetails = usersResponse.user[0];\n const thumbs = userDetails?.photo?.split(\",\");\n setProfilePic(thumbs?.at(0));\n }\n }\n };\n if (!profilePic) {\n fetchUserProfile();\n }\n }, [profilePic]);\n\n const handleChangeCity = (city) => {\n const loggedInData = Digit.SessionStorage.get(\"citizen.userRequestObject\");\n const filteredRoles = Digit.SessionStorage.get(\"citizen.userRequestObject\")?.info?.roles?.filter((role) => role.tenantId === city.value);\n if (filteredRoles?.length > 0) {\n loggedInData.info.roles = filteredRoles;\n loggedInData.info.tenantId = city?.value;\n }\n Digit.SessionStorage.set(\"Employee.tenantId\", city?.value);\n Digit.UserService.setUser(loggedInData);\n setDropDownData(city);\n if (typeof window !== 'undefined' && window.location?.href?.includes(`/${window?.contextPath}/employee/`)) {\n\n // React Router v6: navigate with { replace: true } instead of history.replace()\n const redirectPath = location.state?.from || `/${window?.contextPath}/employee`;\n navigate(redirectPath, { replace: true });\n }\n // Safe reload with error handling\n try {\n if (typeof window !== 'undefined') {\n window.location.reload();\n }\n } catch (error) {\n console.warn('Failed to reload page:', error);\n }\n };\n\n const handleChangeLanguage = (language) => {\n setselected(language.value);\n Digit.LocalizationService.changeLanguage(language.value, stateInfo.code);\n };\n\n const handleModuleClick = (url) => {\n let updatedUrl = null;\n if (Digit.Utils.getMultiRootTenant()) {\n updatedUrl = isEmployee\n ? url.replace(\"/sandbox-ui/employee\", `/sandbox-ui/${tenantId}/employee`)\n : url.replace(\"/sandbox-ui/citizen\", `/sandbox-ui/${tenantId}/citizen`);\n // React Router v6: navigate() instead of history.push()\n navigate(updatedUrl);\n toggleSidebar();\n } else {\n url[0] === \"/\"\n ? navigate(`/${window?.contextPath}/${isEmployee ? \"employee\" : \"citizen\"}${url}`)\n : navigate(`/${window?.contextPath}/${isEmployee ? \"employee\" : \"citizen\"}/${url}`);\n toggleSidebar();\n }\n };\n\n const redirectToLoginPage = () => {\n if (isEmployee) {\n // React Router v6: navigate() instead of history.push()\n navigate(`/${window?.contextPath}/employee/user/language-selection`);\n } else {\n navigate(`/${window?.contextPath}/citizen/login`);\n }\n closeSidebar();\n };\n\n if (islinkDataLoading || isLoading) {\n return <Loader />;\n }\n\n let menuItems = [\n {\n id: \"login-btn\",\n element: \"LOGIN\",\n text: t(\"CORE_COMMON_LOGIN\"),\n icon: <LogoutIcon className=\"icon\" />,\n populators: {\n onClick: redirectToLoginPage,\n },\n },\n ];\n\n let profileItem;\n if (isFetched && user && user.access_token) {\n profileItem = <Profile info={user?.info} stateName={stateInfo?.name} t={t} />;\n menuItems = menuItems.filter((item) => item?.id !== \"login-btn\");\n }\n\n let configEmployeeSideBar = {};\n\n if (!isEmployee) {\n Object.keys(linkData)\n ?.sort((x, y) => y.localeCompare(x))\n ?.map((key) => {\n if (linkData[key][0]?.sidebar === \"digit-ui-links\")\n menuItems.splice(1, 0, {\n type: linkData[key][0]?.sidebarURL?.includes(window?.contextPath) ? \"link\" : \"external-link\",\n text: t(`ACTION_TEST_${Digit.Utils.locale.getTransformedLocale(key)}`),\n links: linkData[key],\n icon: linkData[key][0]?.leftIcon,\n link: linkData[key][0]?.sidebarURL,\n });\n });\n } else {\n data?.actions\n .filter((e) => e.url === \"url\" && e.displayName !== \"Home\")\n .forEach((item) => {\n if (search == \"\" && item.path !== \"\") {\n let index = item.path.split(\".\")[0];\n if (index === \"TradeLicense\") index = \"Trade License\";\n if (!configEmployeeSideBar[index]) {\n configEmployeeSideBar[index] = [item];\n } else {\n configEmployeeSideBar[index].push(item);\n }\n } else if (item.path !== \"\" && item?.displayName?.toLowerCase().includes(search.toLowerCase())) {\n let index = item.path.split(\".\")[0];\n if (index === \"TradeLicense\") index = \"Trade License\";\n if (!configEmployeeSideBar[index]) {\n configEmployeeSideBar[index] = [item];\n } else {\n configEmployeeSideBar[index].push(item);\n }\n }\n });\n const keys = Object.keys(configEmployeeSideBar);\n for (let i = 0; i < keys?.length; i++) {\n const getSingleDisplayName = configEmployeeSideBar[keys[i]][0]?.displayName?.toUpperCase()?.replace(/[ -]/g, \"_\");\n const getParentDisplayName = keys[i]?.toUpperCase()?.replace(/[ -]/g, \"_\");\n\n if (configEmployeeSideBar[keys[i]][0].path.indexOf(\".\") === -1) {\n menuItems.splice(1, 0, {\n type: \"link\",\n text: t(`ACTION_TEST_${getSingleDisplayName}`),\n link: configEmployeeSideBar[keys[i]][0]?.navigationURL,\n icon: configEmployeeSideBar[keys[i]][0]?.leftIcon,\n populators: {\n onClick: () => {\n // React Router v6: navigate() instead of history.push()\n navigate(configEmployeeSideBar[keys[i]][0]?.navigationURL);\n closeSidebar();\n },\n },\n });\n } else {\n menuItems.splice(1, 0, {\n type: \"dynamic\",\n moduleName: t(`ACTION_TEST_${getParentDisplayName}`),\n links: configEmployeeSideBar[keys[i]]?.map((ob) => {\n return {\n ...ob,\n displayName: t(`ACTION_TEST_${ob?.displayName?.toUpperCase()?.replace(/[ -]/g, \"_\")}`),\n };\n }),\n icon: configEmployeeSideBar[keys[i]][1]?.leftIcon,\n });\n }\n }\n const indx = menuItems.findIndex((a) => a.element === \"HOME\");\n const home = menuItems.splice(indx, 1);\n const comp = menuItems.findIndex((a) => a.element === \"LANGUAGE\");\n const part = menuItems.splice(comp, menuItems?.length - comp);\n menuItems.sort((a, b) => {\n let c1 = a?.type === \"dynamic\" ? a?.moduleName : a?.text;\n let c2 = b?.type === \"dynamic\" ? b?.moduleName : b?.text;\n return c1.localeCompare(c2);\n });\n home?.[0] && menuItems.splice(0, 0, home[0]);\n menuItems = part?.length > 0 ? menuItems.concat(part) : menuItems;\n }\n\n /* URL with openlink wont have sidebar and actions */\n // React Router v6: location.pathname instead of history.location.pathname\n if (location.pathname.includes(\"/openlink\")) {\n profileItem = <span></span>;\n menuItems = menuItems.filter((ele) => ele.element === \"LANGUAGE\");\n }\n\n menuItems = menuItems?.map((item) => ({\n ...item,\n label: item?.text || item?.moduleName || \"\",\n icon: item?.icon ? item?.icon : undefined,\n }));\n\n let city = \"\";\n if (Digit.Utils.getMultiRootTenant()) {\n city = t(`TENANT_TENANTS_${tenantId}`);\n } else {\n city = t(`TENANT_TENANTS_${stringReplaceAll(Digit.ULBService.getCurrentTenantId(), \".\", \"_\")?.toUpperCase()}`);\n // city = \"TEST\";\n }\n const goToHome = () => {\n if (isEmployee) {\n // React Router v6: navigate() instead of history.push()\n navigate(`/${window?.contextPath}/employee`);\n } else {\n navigate(`/${window?.contextPath}/citizen`);\n }\n };\n const onItemSelect = ({ item, index, parentIndex }) => {\n if (item?.navigationURL) {\n handleModuleClick(item?.navigationURL);\n } else if (item?.link) {\n handleModuleClick(item?.link);\n } else if (item?.type === \"custom\") {\n switch (item?.key) {\n case \"home\":\n goToHome();\n toggleSidebar();\n break;\n case \"editProfile\":\n userProfile();\n toggleSidebar();\n break;\n case \"language\":\n handleChangeLanguage(item);\n toggleSidebar();\n break;\n case \"city\":\n handleChangeCity(item);\n toggleSidebar();\n break;\n }\n } else {\n return;\n }\n };\n\n const transformedMenuItems = menuItems?.map((item) => {\n if (item?.type === \"dynamic\") {\n return {\n ...item,\n children: item?.links?.map((link) => ({\n ...link,\n label: link?.displayName,\n icon: link?.leftIcon,\n })),\n };\n } else {\n return item;\n }\n });\n\n const transformedSelectedCityData = selectCityData?.map((city) => ({\n ...city,\n type: \"custom\",\n key: \"city\",\n }));\n\n const transformedLanguageData = languages?.map((language) => ({\n ...language,\n type: \"custom\",\n key: \"language\",\n icon: \"Language\",\n }));\n\n const hamburgerItems = [\n {\n label: \"HOME\",\n value: \"HOME\",\n icon: \"Home\",\n // children: transformedSelectedCityData?.length>0 ? transformedSelectedCityData : undefined,\n type: \"custom\",\n key: \"home\",\n },\n {\n label: city,\n value: city,\n children: transformedSelectedCityData?.length > 0 ? transformedSelectedCityData : undefined,\n type: \"custom\",\n icon: \"LocationCity\",\n key: \"city\",\n },\n {\n label: t(\"Language\"),\n children: transformedLanguageData?.length > 0 ? transformedLanguageData : undefined,\n type: \"custom\",\n icon: \"Language\",\n key: \"language\",\n },\n ...(user && user.access_token\n ? [\n {\n label: t(\"EDIT_PROFILE\"),\n type: \"custom\",\n icon: \"Edit\",\n key: \"editProfile\",\n },\n ]\n : []),\n {\n label: t(\"Modules\"),\n icon: \"DriveFileMove\",\n children: transformedMenuItems,\n },\n ];\n return isMobile ? (\n <Hamburger\n items={hamburgerItems}\n profileName={user?.info?.name}\n profileNumber={user?.info?.mobileNumber || user?.info?.emailId}\n theme=\"dark\"\n transitionDuration={0.3}\n styles={{ marginTop: \"64px\", height: \"93%\" }}\n onLogout={onLogout}\n hideUserManuals={true}\n profile={profilePic ? profilePic : undefined}\n isSearchable={true}\n onSelect={({ item, index, parentIndex }) => onItemSelect({ item, index, parentIndex })}\n />\n ) : (\n <StaticCitizenSideBar logout={onLogout} />\n );\n};","import React, { useRef, useEffect, useState } from \"react\";\nimport { SideNav, Loader } from \"@egovernments/digit-ui-components\";\nimport { useTranslation } from \"react-i18next\";\nimport { useNavigate } from \"react-router-dom\";\nimport MediaQuery from 'react-responsive';\n\n\n\n\nconst EmployeeSideBar = () => {\n const { isLoading, data } = Digit.Hooks.useAccessControl();\n const isMultiRootTenant = Digit.Utils.getMultiRootTenant();\n const { t } = useTranslation();\n const navigate = useNavigate();\n const tenantId = Digit?.ULBService?.getStateId();\n\n function extractLeftIcon(data = {}) {\n for (const key in data) {\n const item = data[key];\n if (key === \"item\" && item?.leftIcon !== \"\") {\n return item?.leftIcon;\n }\n if (typeof data[key] === \"object\" && !Array.isArray(data[key])) {\n const subResult = extractLeftIcon(data[key]);\n if (subResult) {\n return subResult;\n }\n }\n }\n return null;\n }\n\n function mergeObjects(obj1, obj2) {\n for (const key in obj2) {\n if (obj2.hasOwnProperty(key)) {\n if (typeof obj2[key] === \"object\" && !Array.isArray(obj2[key])) {\n if (!obj1[key]) {\n obj1[key] = {};\n }\n mergeObjects(obj1[key], obj2[key]);\n } else {\n if (!obj1[key]) {\n obj1[key] = obj2[key];\n }\n }\n }\n }\n }\n\n const configEmployeeSideBar = {};\n data?.actions\n .filter((e) => e.url === \"url\")\n .forEach((item) => {\n let index = item?.path?.split(\".\")?.[0] || \"\";\n if (item?.path !== \"\") {\n const keys = item?.path?.split(\".\");\n let hierarchicalMap = {};\n\n keys.reduce((acc, key, index) => {\n if (index === keys.length - 1) {\n acc[key] = { item };\n } else {\n acc[key] = {};\n return acc[key];\n }\n }, hierarchicalMap);\n mergeObjects(configEmployeeSideBar, hierarchicalMap);\n }\n });\n\n const splitKeyValue = (configEmployeeSideBar) => {\n const objectArray = Object.entries(configEmployeeSideBar);\n objectArray.sort((a, b) => {\n if (a[0] < b[0]) {\n return -1;\n }\n if (a[0] > b[0]) {\n return 1;\n }\n return 0;\n });\n const sortedObject = Object.fromEntries(objectArray);\n configEmployeeSideBar = sortedObject;\n return configEmployeeSideBar;\n };\n\n const navigateToRespectiveURL = (navigate = {}, url = \"\") => {\n if (!url || url === \"/\") return;\n\n //Detect if it's an external link (starts with http or https)\n const isExternal = /^https?:\\/\\//i.test(url);\n\n if (isExternal) {\n //Open external links in a new tab\n window.open(url, \"_blank\", \"noopener,noreferrer\");\n return;\n }\n\n //Internal navigation logic\n if (!url.includes(`/${window?.contextPath}`)) {\n const hostUrl = window.location.origin;\n let updatedUrl;\n\n if (isMultiRootTenant) {\n const contextPath = window?.contextPath || \"sandbox-ui\";\n url = url.replace(`/${contextPath}/employee`, `/${contextPath}/${tenantId}/employee`);\n updatedUrl = url;\n navigate(updatedUrl);\n }\n else{\n updatedUrl = hostUrl + url;\n try {\n if (typeof window !== 'undefined') {\n window.location.href = updatedUrl;\n }\n } catch (error) {\n console.warn('Navigation failed, attempting fallback:', error);\n try {\n window.location.replace(updatedUrl);\n } catch (fallbackError) {\n console.error('All navigation methods failed:', fallbackError);\n }\n }\n }\n } else {\n navigate(url);\n }\n};\n\n const onItemSelect = ({ item, index, parentIndex }) => {\n if (item?.navigationUrl) {\n navigateToRespectiveURL(navigate, item?.navigationUrl);\n } else {\n return;\n } \n };\n\n function transformData(data) {\n const transformItem = (key, value) => {\n if (value.item) {\n return {\n label: t(value.item.displayName),\n icon: { icon: value.item.leftIcon, width: \"1.5rem\", height: \"1.5rem\" },\n navigationUrl: value.item.navigationURL,\n orderNumber:value.item.orderNumber,\n };\n }\n const children = Object.keys(value).map((childKey) => transformItem(childKey, value[childKey]));\n const iconKey = extractLeftIcon(value);\n return {\n label: t(key),\n icon: { icon: iconKey, width: \"1.5rem\", height: \"1.5rem\" },\n children: children,\n };\n };\n return Object.keys(data).map((key) => transformItem(key, data[key]));\n }\n\n const sortDataByOrderNumber = (data) => {\n // Sort the current level of data by orderNumber, handling cases where orderNumber might be missing\n data.sort((a, b) => {\n const aOrder = a.orderNumber !== undefined ? a.orderNumber : Infinity; // Use Infinity if orderNumber is missing\n const bOrder = b.orderNumber !== undefined ? b.orderNumber : Infinity; // Use Infinity if orderNumber is missing\n return aOrder - bOrder;\n });\n \n // Recursively sort the children if they exist\n data.forEach((item) => {\n if (item.children && item.children.length > 0) {\n sortDataByOrderNumber(item.children);\n }\n });\n \n return data;\n };\n\n const transformedData = transformData(splitKeyValue(configEmployeeSideBar));\n const sortedTransformedData= sortDataByOrderNumber(transformedData);\n if (isLoading) {\n return <Loader />;\n }\n\n if (!configEmployeeSideBar) {\n return \"\";\n }\n \n return (\n <MediaQuery minWidth={768}>\n <SideNav\n items={sortedTransformedData}\n hideAccessbilityTools={true}\n onSelect={({ item, index, parentIndex }) => onItemSelect({ item, index, parentIndex })}\n theme={window?.globalConfigs?.getConfig(\"SIDENAV_THEME\") || \"dark\"}\n variant={window?.globalConfigs?.getConfig(\"SIDENAV_VARIANT\") || \"primary\"}\n transitionDuration={\"\"}\n className=\"\"\n styles={{}}\n expandedWidth=\"\"\n collapsedWidth=\"\"\n onBottomItemClick={() => { }}\n />\n </MediaQuery>\n );\n};\n\nexport default EmployeeSideBar;\n\n\n\n\n\n","import React from \"react\";\nimport { CitizenSideBar } from \"./CitizenSideBar\";\nimport EmployeeSideBar from \"./EmployeeSideBar\";\n\nconst SideBar = ({ t, CITIZEN, isSidebarOpen, toggleSidebar, handleLogout, mobileView, userDetails, modules, linkData, islinkDataLoading,userProfile}) => {\n if (CITIZEN)\n return (\n <CitizenSideBar\n isOpen={isSidebarOpen}\n isMobile={true}\n toggleSidebar={toggleSidebar}\n onLogout={handleLogout}\n linkData={linkData}\n islinkDataLoading={islinkDataLoading}\n userProfile={userProfile}\n isEmployee={false}\n />\n );\n else {\n return !isSidebarOpen && userDetails?.access_token ? (\n <div className=\"digit-employeeSidebar\">\n <EmployeeSideBar {...{ mobileView, userDetails, modules }} />\n </div>\n ) : (\n <div className=\"digit-citizenSidebar\">\n <CitizenSideBar\n isOpen={isSidebarOpen}\n isMobile={true}\n toggleSidebar={toggleSidebar}\n onLogout={handleLogout}\n isEmployee={true}\n userProfile={userProfile}\n />\n </div>\n );\n }\n};\n\nexport default SideBar;\n","import React, { useState } from \"react\";\nimport TopBar from \"./TopBar\";\nimport { useNavigate } from \"react-router-dom\";\nimport SideBar from \"./SideBar\";\nimport LogoutDialog from \"../Dialog/LogoutDialog\";\nconst TopBarSideBar = ({\n t,\n stateInfo,\n userDetails,\n CITIZEN,\n cityDetails,\n mobileView,\n handleUserDropdownSelection,\n logoUrl,\n logoUrlWhite,\n showSidebar = true,\n showLanguageChange,\n linkData,\n islinkDataLoading,\n}) => {\n const [isSidebarOpen, toggleSidebar] = useState(false);\n const navigate = useNavigate()\n const [showDialog, setShowDialog] = useState(false);\n const handleLogout = () => {\n toggleSidebar(false);\n setShowDialog(true);\n };\n const handleOnSubmit = () => {\n Digit.UserService.logout();\n setShowDialog(false);\n };\n const handleOnCancel = () => {\n setShowDialog(false);\n };\n\n const handleSidebar = () => {\n toggleSidebar(!isSidebarOpen);\n };\n const userProfile = () => {\n CITIZEN ? navigate(`/${window?.contextPath}/citizen/user/profile`) : navigate(`/${window?.contextPath}/employee/user/profile`);\n };\n const userOptions = [\n { name: t(\"EDIT_PROFILE\"), icon: \"Edit\", func: userProfile },\n { name: t(\"CORE_COMMON_LOGOUT\"), icon: \"Logout\", func: handleLogout },\n ];\n\n return (\n <React.Fragment>\n <TopBar\n t={t}\n stateInfo={stateInfo}\n toggleSidebar={handleSidebar}\n isSidebarOpen={isSidebarOpen}\n handleLogout={handleLogout}\n userDetails={userDetails}\n CITIZEN={CITIZEN}\n cityDetails={cityDetails}\n mobileView={mobileView}\n userOptions={userOptions}\n handleUserDropdownSelection={handleUserDropdownSelection}\n logoUrl={logoUrl}\n logoUrlWhite={logoUrlWhite}\n showLanguageChange={showLanguageChange}\n />\n {showDialog && <LogoutDialog onSelect={handleOnSubmit} onCancel={handleOnCancel} onDismiss={handleOnCancel}></LogoutDialog>}\n {!CITIZEN\n ? showSidebar && (\n <SideBar\n t={t}\n CITIZEN={CITIZEN}\n isSidebarOpen={isSidebarOpen}\n toggleSidebar={handleSidebar}\n handleLogout={handleLogout}\n mobileView={mobileView}\n userDetails={userDetails}\n linkData={linkData}\n userProfile={userProfile}\n islinkDataLoading={islinkDataLoading}\n />\n )\n : CITIZEN\n ? showSidebar && isSidebarOpen && (\n <SideBar\n t={t}\n CITIZEN={CITIZEN}\n isSidebarOpen={isSidebarOpen}\n toggleSidebar={handleSidebar}\n handleLogout={handleLogout}\n mobileView={mobileView}\n userDetails={userDetails}\n linkData={linkData}\n userProfile={userProfile}\n islinkDataLoading={islinkDataLoading}\n />\n )\n : null}\n </React.Fragment>\n );\n};\nexport default TopBarSideBar;\n","import React, { useEffect } from 'react';\n\nconst withAutoFocusMain = (WrappedComponent, mainSelector = '.digit-home-main') => {\n return function WithAutoFocusWrapper(props) {\n useEffect(() => {\n const handleFirstTab = (e) => {\n if (e.key === 'Tab') {\n const main = document.querySelector(mainSelector);\n if (main) {\n main.setAttribute('tabindex', '-1');\n main.style.outline = 'none';\n main.focus();\n }\n window.removeEventListener('keydown', handleFirstTab);\n }\n };\n\n window.addEventListener('keydown', handleFirstTab);\n return () => window.removeEventListener('keydown', handleFirstTab);\n }, []);\n\n return <WrappedComponent {...props} />;\n };\n};\n\nexport default withAutoFocusMain;","import React, { useEffect, useRef } from \"react\";\n\nfunction useInterval(callback, delay) {\n const savedCallback = useRef();\n useEffect(() => {\n savedCallback.current = callback;\n }, [callback]);\n\n useEffect(() => {\n function tick() {\n savedCallback.current();\n }\n if (delay !== null) {\n const timer = setInterval(tick, delay);\n return () => clearInterval(timer);\n }\n }, [delay]);\n}\n\nexport default useInterval;\n","export const useLoginConfig = (stateCode) => {\n const moduleName = Digit.Utils.getConfigModuleName();\n\n return Digit.Hooks.useCommonMDMS(\n stateCode,\n moduleName,\n [\"LoginConfig\"],\n {\n select: (data) => ({\n config: data?.[moduleName]?.LoginConfig,\n }),\n retry: false,\n }\n );\n};\n","import { ArrowForward } from \"@egovernments/digit-ui-svg-components\";\nimport React, { useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nconst FaqComponent = (props) => {\n const { question, answer, lastIndex } = props;\n const [isOpen, toggleOpen] = useState(false);\n const { t } = useTranslation();\n\n return (\n <div className=\"faqs border-none\" onClick={() => toggleOpen(!isOpen)}>\n <div className=\"faq-question\" style={{ justifyContent: \"space-between\", display: \"flex\" }}>\n <span>{t(question)}</span>\n <span className={isOpen ? \"faqicon rotate\" : \"faqicon\"} style={{ float: \"right\" }}>\n <ArrowForward />\n </span>\n </div>\n\n <div className=\"faq-answer\" style={isOpen ? { display: \"block\" } : { display: \"none\" }}>\n <span>{t(answer)}</span>\n </div>\n {!lastIndex ? <div className=\"cs-box-border\" /> : null}\n </div>\n );\n};\n\nexport default FaqComponent;\n","import { BackButton, HeaderComponent, Loader ,SearchIconSvg} from \"@egovernments/digit-ui-components\";\nimport React, { Fragment } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport FaqComponent from \"./FaqComponent\";\n\nconst FAQsSection = ({ module }) => {\n const user = Digit.UserService.getUser();\n const tenantId = user?.info?.tenantId || Digit.ULBService.getCurrentTenantId();\n const { t } = useTranslation();\n\n const SearchImg = () => {\n return <SearchIconSvg className=\"signature-img\" />;\n };\n\n const { isLoading, data } = Digit.Hooks.useGetFAQsJSON(Digit.ULBService.getStateId());\n\n const moduleFaqs = data?.MdmsRes[\"common-masters\"]?.faqs[0]?.[`${module}`].faqs;\n\n if (isLoading) {\n return <Loader />;\n }\n return (\n <Fragment>\n <div className=\"faq-page\">\n <BackButton style={{ marginLeft: \"unset\" }}></BackButton>\n <div style={{ marginBottom: \"15px\" }}>\n <HeaderComponent styles={{ marginLeft: \"0px\", paddingTop: \"10px\", fontSize: \"32px\" }}>{t(\"FAQ_S\")}</HeaderComponent>\n </div>\n <div className=\"faq-list\">\n {moduleFaqs.map((faq, i) => (\n <FaqComponent key={\"faq_\" + i} question={faq.question} answer={faq.answer} lastIndex={i === moduleFaqs?.length - 1} />\n ))}\n </div>\n </div>\n </Fragment>\n );\n};\n\nexport default FAQsSection;\n","import { PageBasedInput, Loader, RadioButtons, CardHeader } from \"@egovernments/digit-ui-components\";\nimport React, { useMemo } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useNavigate } from \"react-router-dom\";\n\nconst LanguageSelection = () => {\n const { t } = useTranslation();\n const navigate = useNavigate();\n\n const { data: { languages, stateInfo } = {}, isLoading } = Digit.Hooks.useStore.getInitData();\n const selectedLanguage = Digit.StoreData.getCurrentLanguage();\n\n const texts = useMemo(\n () => ({\n header: t(\"CS_COMMON_CHOOSE_LANGUAGE\"),\n submitBarLabel: t(\"CORE_COMMON_CONTINUE\"),\n }),\n [t]\n );\n\n const RadioButtonProps = useMemo(\n () => ({\n options: languages,\n optionsKey: \"label\",\n additionalWrapperClass: \"digit-reverse-radio-selection-wrapper\",\n onSelect: (language) => Digit.LocalizationService.changeLanguage(language.value, stateInfo.code),\n selectedOption: languages?.filter((i) => i.value === selectedLanguage)[0],\n }),\n [selectedLanguage, languages]\n );\n\n function onSubmit() {\n navigate(`/${window?.contextPath}/citizen/select-location`);\n }\n\n return isLoading ? (\n <Loader />\n ) : (\n <div className=\"selection-card-wrapper\">\n <PageBasedInput texts={texts} onSubmit={onSubmit}>\n <CardHeader>{t(\"CS_COMMON_CHOOSE_LANGUAGE\")}</CardHeader>\n <RadioButtons {...RadioButtonProps} />\n </PageBasedInput>\n </div>\n );\n};\n\nexport default LanguageSelection;\n","import { BackLink } from \"@egovernments/digit-ui-components\";\nimport { CardHeader, CardLabelError, PageBasedInput, SearchOnRadioButtons } from \"@egovernments/digit-ui-react-components\";\nimport React, { useMemo, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useNavigate, useLocation } from \"react-router-dom\";\n\nconst LocationSelection = () => {\n const { t } = useTranslation();\n const navigate = useNavigate();\n const location = useLocation();\nconst {\n data: { stateInfo, uiHomePage } = {},\n isLoading: initisLoading,\n} = Digit.Hooks.useStore.getInitData();\n\nconst redirectURL = uiHomePage?.redirectURL;\n\nconst { data: cities, isLoading } = Digit.Hooks.useTenants();\n\n\n const [selectedCity, setSelectedCity] = useState(() => ({ code: Digit.ULBService.getCitizenCurrentTenant(true) }));\n const [showError, setShowError] = useState(false);\n\n const texts = useMemo(\n () => ({\n header: t(\"CS_COMMON_CHOOSE_LOCATION\"),\n submitBarLabel: t(\"CORE_COMMON_CONTINUE\"),\n }),\n [t]\n );\n\n function selectCity(city) {\n setSelectedCity(city);\n setShowError(false);\n }\n\n const RadioButtonProps = useMemo(() => {\n return {\n options: cities,\n optionsKey:\"i18nKey\",\n additionalWrapperClass: \"digit-reverse-radio-selection-wrapper\",\n onSelect: selectCity,\n selectedOption: selectedCity,\n };\n }, [cities, t, selectedCity]);\n\n function onSubmit() {\n if (selectedCity) {\n Digit.SessionStorage.set(\"CITIZEN.COMMON.HOME.CITY\", selectedCity);\n const redirectBackTo = location.state?.redirectBackTo;\n if(redirectURL){\n navigate(`/${window?.contextPath}/citizen/${redirectURL}`);\n }\n else{\n if (redirectBackTo) {\n navigate(redirectBackTo, {replace:true});\n } else navigate(`/${window?.contextPath}/citizen`);\n }\n } else {\n setShowError(true);\n }\n }\n\n return isLoading ? (\n <loader />\n ) : (\n <div>\n <BackLink onClick={() => window.history.back()}/>\n <PageBasedInput texts={texts} onSubmit={onSubmit} className=\"location-selection-container\">\n <CardHeader>{t(\"CS_COMMON_CHOOSE_LOCATION\")}</CardHeader>\n <SearchOnRadioButtons {...RadioButtonProps} placeholder={t(\"COMMON_TABLE_SEARCH\")} />\n {showError ? <CardLabelError>{t(\"CS_COMMON_LOCATION_SELECTION_ERROR\")}</CardLabelError> : null}\n </PageBasedInput>\n </div>\n );\n};\n\nexport default LocationSelection;\n","import React, { useState, useEffect } from \"react\";\nimport { GalleryIcon, RemoveIcon } from \"@egovernments/digit-ui-react-components\";\nimport { useTranslation } from \"react-i18next\";\n\nfunction UploadDrawer({ setProfilePic, closeDrawer, userType, removeProfilePic ,showToast}) {\n const [uploadedFile, setUploadedFile] = useState(null);\n const [file, setFile] = useState(\"\");\n const [error, setError] = useState(null);\n const { t } = useTranslation();\n const selectfile = (e) => setFile(e.target.files[0]);\n const removeimg = () => {removeProfilePic(); closeDrawer()};\n const onOverlayBodyClick = () => closeDrawer();\n\n useEffect(() => {\n (async () => {\n setError(null);\n if (file) {\n if (file.size >= 1000000) {\n showToast(\"error\", t(\"CORE_COMMON_PROFILE_MAXIMUM_UPLOAD_SIZE_EXCEEDED\"))\n setError(t(\"CORE_COMMON_PROFILE_MAXIMUM_UPLOAD_SIZE_EXCEEDED\"));\n } else {\n try {\n const response = await Digit.UploadServices.Filestorage(`${userType}-profile`, file, Digit.ULBService.getStateId());\n if (response?.data?.files?.length > 0) {\n const fileStoreId = response?.data?.files[0]?.fileStoreId;\n setUploadedFile(fileStoreId);\n setProfilePic(fileStoreId);\n } else {\n showToast(\"error\", t(\"CORE_COMMON_PROFILE_FILE_UPLOAD_ERROR\"))\n setError(t(\"CORE_COMMON_PROFILE_FILE_UPLOAD_ERROR\"));\n }\n } catch (err) {\n showToast(\"error\",t(\"CORE_COMMON_PROFILE_INVALID_FILE_INPUT\"))\n // setError(t(\"PT_FILE_UPLOAD_ERROR\"));\n }\n }\n }\n })();\n }, [file]);\n\n return (\n <React.Fragment>\n <div\n style={{\n position: \"fixed\",\n top: \"0\",\n left: \"0\",\n right: \"0\",\n bottom: \"0\",\n width: \"100%\",\n height: \"100vh\",\n backgroundColor: \"rgba(0,0,0,.5)\",\n // zIndex: \"9998\",\n }}\n onClick={onOverlayBodyClick}\n ></div>\n <div\n style={{\n width: \"100%\",\n justifyContent: \"space-between\",\n display: \"flex\",\n backgroundColor: \"white\",\n alignItems: \"center\",\n position: \"fixed\",\n left: \"0\",\n right: \"0\",\n height: \"20%\",\n bottom: userType === \"citizen\" ? \"2.5rem\" : \"0\",\n zIndex: \"1000\",\n }}\n >\n <div\n style={{ display: \"flex\", flex: \"1\", flexDirection: \"column\", width: \"100%\", justifyContent: \"center\", alignItems: \"center\", gap: \"8px 0\" }}\n >\n <label for=\"file\" style={{ cursor: \"pointer\" }}>\n {\" \"}\n <GalleryIcon />\n </label>\n <label style={{ cursor: \"pointer\" }}> Gallery</label>\n <input type=\"file\" id=\"file\" accept=\"image/*, .png, .jpeg, .jpg\" onChange={selectfile} style={{ display: \"none\" }} />\n </div>\n\n <div\n style={{ display: \"flex\", flex: \"1\", width: \"100%\", justifyContent: \"center\", alignItems: \"center\", flexDirection: \"column\", gap: \"8px 0\" }}\n >\n <button onClick={removeimg}>\n <RemoveIcon />\n </button>\n <label style={{ cursor: \"pointer\" }}>Remove</label>\n </div>\n </div>\n </React.Fragment>\n );\n}\n\nexport default UploadDrawer;\n","import {\n SVG,\n Dropdown,\n LabelFieldPair,\n MobileNumber,\n TextInput,\n CardLabelError,\n BackLink,\n Loader,\n Button,\n SubmitBar,\n Footer,\n CardLabel,\n BreadCrumb,\n Toast,\n ErrorMessage,\n} from \"@egovernments/digit-ui-components\";\nimport { CameraIcon } from \"@egovernments/digit-ui-react-components\";\nimport React, { useEffect, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useNavigate } from \"react-router-dom\";\nimport UploadDrawer from \"./ImageUpload/UploadDrawer\";\nimport ImageComponent from \"../../../components/ImageComponent\";\n\nconst DEFAULT_TENANT = Digit?.ULBService?.getStateId?.();\n\nconst defaultImage =\n \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAO4AAADUCAMAAACs0e/bAAAAM1BMVEXK0eL\" +\n \"/\" +\n \"/\" +\n \"/\" +\n \"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\";\n\nconst defaultValidationConfig = {\n tenantId: `${DEFAULT_TENANT}`,\n UserProfileValidationConfig: [\n {\n name: \"/^[a-zA-Z ]+$/i\",\n mobileNumber: \"/^[6-9]{1}[0-9]{9}$/\",\n password: \"/^([a-zA-Z0-9@#$%]{8,15})$/i\",\n },\n ],\n};\n\nconst IndividualUserProfile = ({ stateCode, userType, cityDetails }) => {\n const navigate = useNavigate();\n const { t } = useTranslation();\n const url = window.location.href;\n const stateId = Digit.ULBService.getStateId();\n const tenant = Digit.ULBService.getCurrentTenantId();\n const userInfo = Digit.UserService.getUser()?.info || {};\n const [userDetails, setUserDetails] = useState(null);\n const [name, setName] = useState(userInfo?.name ? userInfo.name : \"\");\n const [email, setEmail] = useState(userInfo?.emailId ? userInfo.emailId : \"\");\n const [gender, setGender] = useState(userDetails?.gender);\n const [city, setCity] = useState(userInfo?.permanentCity ? userInfo.permanentCity : cityDetails.name);\n const [mobileNumber, setMobileNo] = useState(userInfo?.mobileNumber ? userInfo.mobileNumber : \"\");\n const [profilePic, setProfilePic] = useState(null);\n const [profileImg, setProfileImg] = useState(\"\");\n const [openUploadSlide, setOpenUploadSide] = useState(false);\n const [changepassword, setChangepassword] = useState(false);\n const [currentPassword, setCurrentPassword] = useState(\"\");\n const [newPassword, setNewPassword] = useState(\"\");\n const [confirmPassword, setConfirmPassword] = useState(\"\");\n const [toast, setToast] = useState(null);\n const [loading, setLoading] = useState(false);\n const [windowWidth, setWindowWidth] = React.useState(window.innerWidth);\n const [errors, setErrors] = React.useState({});\n const isMobile = window.Digit.Utils.browser.isMobile();\n const isMultiRootTenant = Digit.Utils.getMultiRootTenant();\n\n const individualServicePath = window?.globalConfigs?.getConfig(\"INDIVIDUAL_SERVICE_CONTEXT_PATH\");\n // const useAnIndividual = window?.globalConfigs?.getConfig(\"USE_INDIVIDUAL_MODEL\"); // Handled in parent\n\n const mapConfigToRegExp = (config) => {\n return (\n config?.UserProfileValidationConfig?.[0] &&\n Object.entries(config?.UserProfileValidationConfig[0]).reduce((acc, [key, value]) => {\n if (typeof value === \"string\") {\n try {\n // Checking if value looks like a regex (starts with \"/\" and ends with \"/flags\")\n if (value.startsWith(\"/\") && value.lastIndexOf(\"/\") > 0) {\n const lastSlashIndex = value.lastIndexOf(\"/\");\n const pattern = value.slice(1, lastSlashIndex); // Extracting regex pattern\n const flags = value.slice(lastSlashIndex + 1); // Extracting regex flags\n\n acc[key] = new RegExp(pattern, flags); // Converting properly\n } else {\n acc[key] = new RegExp(value); // Treating it as a normal regex pattern (no flags)\n }\n } catch (error) {\n console.error(`Error parsing regex for key \"${key}\":`, error);\n acc[key] = value; // Keeping as string if invalid regex\n }\n } else {\n acc[key] = value; // Keeping non-string values as it is\n }\n return acc;\n }, {})\n );\n };\n\n const [validationConfig, setValidationConfig] = useState(mapConfigToRegExp(defaultValidationConfig) || {});\n\n const { data: mdmsValidationData, isValidationConfigLoading } = Digit.Hooks.useCustomMDMS(\n stateCode,\n \"commonUiConfig\",\n [{ name: \"UserProfileValidationConfig\" }],\n {\n select: (data) => {\n return data?.commonUiConfig;\n },\n }\n );\n\n useEffect(() => {\n if (mdmsValidationData && mdmsValidationData?.UserProfileValidationConfig?.[0]) {\n const updatedValidationConfig = mapConfigToRegExp(mdmsValidationData);\n setValidationConfig(updatedValidationConfig);\n }\n }, [mdmsValidationData]);\n\n const getUserInfo = async () => {\n const uuid = userInfo?.uuid;\n\n if (uuid) {\n // New API using health-individual\n const response = await Digit.CustomService.getResponse({\n url: `${individualServicePath}/v1/_search`,\n useCache: false,\n method: \"POST\",\n userService: true,\n params: {\n limit: 1000,\n offset: 0,\n tenantId: tenant,\n },\n body: {\n Individual: {\n userUuid: [uuid],\n tenantId: tenant,\n },\n },\n });\n\n if (response?.Individual?.length) {\n setUserDetails(response.Individual[0]);\n }\n }\n };\n\n React.useEffect(() => {\n window.addEventListener(\"resize\", () => setWindowWidth(window.innerWidth));\n return () => {\n window.removeEventListener(\"resize\", () => setWindowWidth(window.innerWidth));\n };\n });\n\n useEffect(() => {\n setLoading(true);\n\n getUserInfo();\n\n setGender({\n i18nKey: undefined,\n code: userDetails?.gender,\n value: userDetails?.gender,\n });\n\n const thumbs = userDetails?.photo?.split(\",\");\n setProfileImg(thumbs?.at(0));\n\n setLoading(false);\n }, [userDetails !== null]);\n\n let validation = {};\n const editScreen = false; // To-do: Deubug and make me dynamic or remove if not needed\n const onClickAddPic = () => setOpenUploadSide(!openUploadSlide);\n const TogleforPassword = () => setChangepassword(!changepassword);\n const setGenderName = (value) => setGender(value);\n const closeFileUploadDrawer = () => setOpenUploadSide(false);\n\n const setUserName = (value) => {\n setName(value);\n\n if (!validationConfig?.name?.test(value) || value.length === 0 || value.length > 50) {\n setErrors({\n ...errors,\n userName: {\n type: \"pattern\",\n message: \"CORE_COMMON_PROFILE_NAME_INVALID\",\n },\n });\n } else {\n setErrors({ ...errors, userName: null });\n }\n };\n\n const setUserEmailAddress = (value) => {\n if (userInfo?.userName !== value) {\n setEmail(value);\n\n if (value.length && !(value.includes(\"@\") && value.includes(\".\"))) {\n setErrors({\n ...errors,\n emailAddress: {\n type: \"pattern\",\n message: \"CORE_COMMON_PROFILE_EMAIL_INVALID\",\n },\n });\n } else {\n setErrors({ ...errors, emailAddress: null });\n }\n } else {\n setErrors({ ...errors, emailAddress: null });\n }\n };\n\n const setUserMobileNumber = (value) => {\n setMobileNo(value);\n\n if (userType === \"employee\" && !validationConfig?.mobileNumber?.test(value)) {\n setErrors({\n ...errors,\n mobileNumber: {\n type: \"pattern\",\n message: \"CORE_COMMON_PROFILE_MOBILE_NUMBER_INVALID\",\n },\n });\n } else {\n setErrors({ ...errors, mobileNumber: null });\n }\n };\n\n const setUserCurrentPassword = (value) => {\n if (!validationConfig?.password.test(value)) {\n setErrors({\n ...errors,\n currentPassword: {\n type: \"pattern\",\n message: \"CORE_COMMON_PROFILE_PASSWORD_INVALID\",\n },\n });\n } else {\n setErrors({ ...errors, currentPassword: null });\n }\n };\n\n const setUserNewPassword = (value) => {\n setNewPassword(value);\n if (!validationConfig?.password.test(value)) {\n setErrors({\n ...errors,\n newPassword: {\n type: \"pattern\",\n message: \"CORE_COMMON_PROFILE_PASSWORD_INVALID\",\n },\n });\n } else {\n setErrors({ ...errors, newPassword: null });\n }\n };\n\n const setUserConfirmPassword = (value) => {\n setConfirmPassword(value);\n\n if (!validationConfig?.password.test(value)) {\n setErrors({\n ...errors,\n confirmPassword: {\n type: \"pattern\",\n message: \"CORE_COMMON_PROFILE_PASSWORD_INVALID\",\n },\n });\n } else {\n setErrors({ ...errors, confirmPassword: null });\n }\n };\n\n const removeProfilePic = () => {\n setProfilePic(null);\n setProfileImg(null);\n };\n\n const showToast = (type, message, duration = 5000) => {\n setToast({ key: type, action: message });\n setTimeout(() => {\n setToast(null);\n }, duration);\n };\n\n const updateProfile = async () => {\n setLoading(true);\n try {\n if (name) {\n setName((prev) => prev.trim());\n }\n\n if (!validationConfig?.name.test(name) || name === \"\" || name.length > 50 || name.length < 1) {\n throw JSON.stringify({\n type: \"error\",\n message: t(\"CORE_COMMON_PROFILE_NAME_INVALID\"),\n });\n }\n\n if (userType === \"employee\" && !validationConfig?.mobileNumber.test(mobileNumber)) {\n throw JSON.stringify({\n type: \"error\",\n message: t(\"CORE_COMMON_PROFILE_MOBILE_NUMBER_INVALID\"),\n });\n }\n\n if (email.length && !(email.includes(\"@\") && email.includes(\".\"))) {\n throw JSON.stringify({\n type: \"error\",\n message: t(\"CORE_COMMON_PROFILE_EMAIL_INVALID\"),\n });\n }\n\n const trimmedCurrentPassword = currentPassword.trim();\n const trimmedNewPassword = newPassword.trim();\n const trimmedConfirmPassword = confirmPassword.trim();\n\n setCurrentPassword(trimmedCurrentPassword);\n setNewPassword(trimmedNewPassword);\n setConfirmPassword(trimmedConfirmPassword);\n\n if (changepassword && (trimmedCurrentPassword && trimmedNewPassword && trimmedConfirmPassword)) {\n if (trimmedNewPassword !== trimmedConfirmPassword) {\n throw JSON.stringify({\n type: \"error\",\n message: t(\"CORE_COMMON_PROFILE_PASSWORD_MISMATCH\"),\n });\n }\n\n if (!(trimmedCurrentPassword.length && trimmedNewPassword.length && trimmedConfirmPassword.length)) {\n throw JSON.stringify({\n type: \"error\",\n message: t(\"CORE_COMMON_PROFILE_PASSWORD_INVALID\"),\n });\n }\n\n if (!validationConfig?.password.test(trimmedNewPassword) && !validationConfig?.password.test(trimmedConfirmPassword)) {\n throw JSON.stringify({\n type: \"error\",\n message: t(\"CORE_COMMON_PROFILE_PASSWORD_INVALID\"),\n });\n }\n }\n\n let responseInfo;\n\n // Build Individual object dynamically\n const individualPayload = {\n ...userDetails,\n tenantId: tenant,\n name: {\n givenName: name.trim(),\n familyName: userDetails?.name?.familyName,\n otherNames: userDetails?.name?.otherNames,\n },\n mobileNumber: mobileNumber,\n isDeleted: false,\n isSystemUser: true,\n isSystemUserActive: true,\n };\n\n // Only add optional fields if they have values\n if (gender?.value) {\n individualPayload.gender = gender.value;\n }\n\n if (email) {\n individualPayload.email = email;\n }\n\n if (profilePic) {\n individualPayload.photo = profilePic;\n }\n\n const response = await Digit.CustomService.getResponse({\n url: `${individualServicePath}/v1/_update`,\n useCache: false,\n method: \"POST\",\n userService: true,\n body: {\n Individual: individualPayload,\n },\n });\n responseInfo = response?.responseInfo;\n \n\n\n if (responseInfo && responseInfo.status === \"200\") {\n const user = Digit.UserService.getUser();\n\n if (user) {\n Digit.UserService.setUser({\n ...user,\n info: {\n ...user.info,\n name,\n mobileNumber,\n emailId: email,\n permanentCity: city,\n },\n });\n }\n }\n\n if (currentPassword.length && newPassword.length && confirmPassword.length) {\n const requestData = {\n existingPassword: currentPassword,\n newPassword: newPassword,\n tenantId: tenant,\n type: \"EMPLOYEE\",\n username: userInfo?.userName,\n confirmPassword: confirmPassword,\n };\n\n if (newPassword === confirmPassword) {\n try {\n const res = await Digit.UserService.changePassword(requestData, tenant);\n\n const { responseInfo: changePasswordResponseInfo } = res;\n if (changePasswordResponseInfo?.status && changePasswordResponseInfo.status === \"200\") {\n showToast(\"success\", t(\"CORE_COMMON_PROFILE_UPDATE_SUCCESS_WITH_PASSWORD\"), 5000);\n setTimeout(() => Digit.UserService.logout(), 2000);\n } else {\n throw \"\";\n }\n } catch (error) {\n throw JSON.stringify({\n type: \"error\",\n message: error.Errors?.at(0)?.description ? error.Errors.at(0).description : \"CORE_COMMON_PROFILE_UPDATE_ERROR_WITH_PASSWORD\",\n });\n }\n } else {\n throw JSON.stringify({\n type: \"error\",\n message: \"CORE_COMMON_PROFILE_ERROR_PASSWORD_NOT_MATCH\",\n });\n }\n } else if (responseInfo?.status && responseInfo.status === \"200\") {\n showToast(\"success\", t(\"CORE_COMMON_PROFILE_UPDATE_SUCCESS\"), 5000);\n }\n } catch (error) {\n let errorObj;\n try {\n errorObj = JSON.parse(error);\n } catch (e) {\n errorObj = {\n type: \"error\",\n message: error?.response?.data?.Errors?.[0]?.description || \"CORE_COMMON_PROFILE_UPDATE_ERROR\",\n };\n }\n showToast(errorObj.type, t(errorObj.message), 5000);\n }\n\n setLoading(false);\n };\n\n let menu = [];\n const { data: Menu } = Digit.Hooks.useGenderMDMS(stateId, \"common-masters\", \"GenderType\");\n Menu &&\n Menu.map((genderDetails) => {\n menu.push({\n i18nKey: `PT_COMMON_GENDER_${genderDetails.code}`,\n code: `${genderDetails.code}`,\n value: `${genderDetails.code}`,\n });\n });\n\n const setFileStoreId = async (fileStoreId) => {\n setProfilePic(fileStoreId);\n\n const thumbnails = fileStoreId ? await getThumbnails([fileStoreId], stateId) : null;\n\n setProfileImg(thumbnails?.thumbs[0]);\n\n closeFileUploadDrawer();\n };\n\n const getThumbnails = async (ids, tenantId) => {\n const res = await Digit.UploadServices.Filefetch(ids, tenantId);\n if (res.data.fileStoreIds && res.data.fileStoreIds.length !== 0) {\n return {\n thumbs: res.data.fileStoreIds.map((o) => o.url.split(\",\")[3]),\n images: res.data.fileStoreIds.map((o) => Digit.Utils.getFileUrl(o.url)),\n };\n } else {\n return null;\n }\n };\n\n if (loading || isValidationConfigLoading) return <Loader></Loader>;\n\n // ... (RENDER JSX FROM NEW FILE) ...\n return (\n <div className={`user-profile ${userType === \"citizen\" ? \"citizen\" : \"employee\"}`}>\n <section style={{ margin: userType === \"citizen\" || isMobile ? \"8px\" : \"0px\" }}>\n {userType === \"citizen\" || isMobile ? (\n <BackLink onClick={() => navigate(\"/\")} />\n ) : (\n <BreadCrumb\n style={{ marginTop: \"0rem\", marginBottom: \"1.5rem\" }}\n crumbs={[\n {\n internalLink: isMultiRootTenant ? `/${window?.contextPath}/employee/sandbox/landing` : `/${window?.contextPath}/employee`,\n content: t(\"ES_COMMON_HOME\"),\n show: true,\n },\n {\n internalLink: `/${window?.contextPath}/employee/user/profile`,\n content: t(\"ES_COMMON_PAGE_1\"),\n show: url.includes(\"/user/profile\"),\n },\n ]}\n />\n )}\n </section>\n <div\n style={{\n display: \"flex\",\n flex: 1,\n flexDirection: windowWidth < 768 || userType === \"citizen\" ? \"column\" : \"row\",\n margin: userType === \"citizen\" ? \"8px\" : \"0px\",\n gap: userType === \"citizen\" ? \"\" : \"0 24px\",\n boxShadow: userType === \"citizen\" ? \"1px 1px 4px 0px rgba(0,0,0,0.2)\" : \"\",\n background: userType === \"citizen\" ? \"white\" : \"\",\n borderRadius: userType === \"citizen\" ? \"4px\" : \"\",\n maxWidth: userType === \"citizen\" ? \"960px\" : \"\",\n }}\n >\n <section\n style={{\n position: \"relative\",\n display: \"flex\",\n flex: userType === \"citizen\" ? 1 : 2.5,\n justifyContent: \"center\",\n alignItems: \"center\",\n maxWidth: \"100%\",\n // height: \"376px\",\n borderRadius: \"4px\",\n boxShadow: userType === \"citizen\" ? \"\" : \"1px 1px 4px 0px rgba(0,0,0,0.2)\",\n border: `${userType === \"citizen\" ? \"8px\" : \"24px\"} solid #fff`,\n background: \"#EEEEEE\",\n padding: userType === \"citizen\" ? \"8px\" : \"16px\",\n }}\n >\n <div\n style={{\n position: \"relative\",\n height: userType === \"citizen\" ? \"114px\" : \"150px\",\n width: userType === \"citizen\" ? \"114px\" : \"150px\",\n margin: \"16px\",\n }}\n >\n <ImageComponent\n style={{\n margin: \"auto\",\n borderRadius: \"300px\",\n justifyContent: \"center\",\n height: \"100%\",\n width: \"100%\",\n }}\n src={!profileImg || profileImg === \"\" ? defaultImage : profileImg}\n alt=\"Profile Image\"\n />\n\n <button\n style={{\n position: \"absolute\",\n left: \"50%\",\n bottom: \"-24px\",\n transform: \"translateX(-50%)\",\n }}\n onClick={onClickAddPic}\n >\n <CameraIcon />\n </button>\n </div>\n </section>\n <section\n style={{\n display: \"flex\",\n flexDirection: \"column\",\n flex: userType === \"citizen\" ? 1 : 7.5,\n width: \"100%\",\n borderRadius: \"4px\",\n height: \"fit-content\",\n boxShadow: userType === \"citizen\" ? \"\" : \"1px 1px 4px 0px rgba(0,0,0,0.2)\",\n background: \"white\",\n padding: userType === \"citizen\" ? \"8px\" : \"24px\",\n paddingBottom: \"20px\",\n }}\n >\n {userType === \"citizen\" ? (\n <React.Fragment>\n <LabelFieldPair>\n <CardLabel className=\"user-profile\" style={editScreen ? { color: \"#B1B4B6\" } : {}}>\n {`${t(\"CORE_COMMON_PROFILE_NAME\")}`}*\n </CardLabel>\n <div style={{ width: \"100%\", maxWidth: \"960px\" }}>\n <TextInput\n t={t}\n style={{ width: \"100%\" }}\n type={\"text\"}\n isMandatory={false}\n name=\"name\"\n value={name}\n onChange={(e) => setUserName(e.target.value)}\n {...(validation = {\n isRequired: true,\n pattern:\n mdmsValidationData?.UserProfileValidationConfig?.[0]?.name || defaultValidationConfig?.UserProfileValidationConfig?.[0]?.name,\n type: \"tel\",\n title: t(\"CORE_COMMON_PROFILE_NAME_ERROR_MESSAGE\"),\n })}\n disable={editScreen}\n />\n {/* {errors?.userName && (\n <CardLabelError>\n {\" \"}\n {t(errors?.userName?.message)}{\" \"}\n </CardLabelError>\n )} */}\n {errors?.userName && (\n <ErrorMessage\n message={t(errors?.userName?.message)}\n truncateMessage={true}\n maxLength={256}\n className=\"\"\n wrapperClassName=\"\"\n showIcon={true}\n />\n )}\n </div>\n </LabelFieldPair>\n\n <LabelFieldPair>\n <CardLabel className=\"user-profile\" style={editScreen ? { color: \"#B1B4B6\" } : {}}>{`${t(\"CORE_COMMON_PROFILE_GENDER\")}`}</CardLabel>\n <Dropdown\n style={{ width: \"100%\", fontSize: \"1rem\" }}\n className=\"form-field profileDropdown\"\n selected={gender?.length === 1 ? gender[0] : gender}\n disable={gender?.length === 1 || editScreen}\n option={menu}\n select={setGenderName}\n value={gender}\n optionKey=\"code\"\n t={t}\n name=\"gender\"\n />\n </LabelFieldPair>\n\n <LabelFieldPair>\n <CardLabel className=\"user-profile\" style={editScreen ? { color: \"#B1B4B6\" } : {}}>{`${t(\"CORE_COMMON_PROFILE_EMAIL\")}`}</CardLabel>\n <div style={{ width: \"100%\" }}>\n <TextInput\n t={t}\n style={{ width: \"100%\" }}\n type={\"email\"}\n isMandatory={false}\n optionKey=\"i18nKey\"\n name=\"email\"\n value={email}\n onChange={(e) => setUserEmailAddress(e.target.value)}\n disabled={editScreen}\n />\n {errors?.emailAddress && (\n <ErrorMessage\n message={t(errors?.emailAddress?.message)}\n truncateMessage={true}\n maxLength={256}\n className=\"\"\n wrapperClassName=\"\"\n showIcon={true}\n />\n )}\n </div>\n </LabelFieldPair>\n\n <button\n onClick={updateProfile}\n style={{\n marginTop: \"24px\",\n backgroundColor: \"#c84c0e\",\n width: \"100%\",\n height: \"40px\",\n color: \"white\",\n\n maxWidth: isMobile ? \"100%\" : \"240px\",\n borderBottom: \"1px solid black\",\n }}\n >\n {t(\"CORE_COMMON_SAVE\")}\n </button>\n </React.Fragment>\n ) : (\n <React.Fragment>\n <LabelFieldPair style={{ display: \"flex\" }}>\n <CardLabel className=\"profile-label-margin\" style={editScreen ? { color: \"#B1B4B6\", width: \"300px\" } : { width: \"300px\" }}>\n {`${t(\"CORE_COMMON_PROFILE_NAME\")}`}*\n </CardLabel>\n <div style={{ width: \"100%\" }}>\n <TextInput\n t={t}\n type={\"text\"}\n isMandatory={false}\n name=\"name\"\n value={name}\n onChange={(e) => setUserName(e.target.value)}\n placeholder=\"Enter Your Name\"\n {...(validation = {\n isRequired: true,\n pattern:\n mdmsValidationData?.UserProfileValidationConfig?.[0]?.name || defaultValidationConfig?.UserProfileValidationConfig?.[0]?.name,\n type: \"text\",\n title: t(\"CORE_COMMON_PROFILE_NAME_ERROR_MESSAGE\"),\n })}\n disabled={editScreen}\n />\n {errors?.userName && (\n <ErrorMessage\n message={t(errors?.userName?.message)}\n truncateMessage={true}\n maxLength={256}\n className=\"\"\n wrapperClassName=\"\"\n showIcon={true}\n />\n )}\n </div>\n </LabelFieldPair>\n\n <LabelFieldPair style={{ display: \"flex\" }}>\n <CardLabel className=\"profile-label-margin\" style={editScreen ? { color: \"#B1B4B6\", width: \"300px\" } : { width: \"300px\" }}>{`${t(\n \"CORE_COMMON_PROFILE_GENDER\"\n )}`}</CardLabel>\n <div style={{ width: \"100%\" }}>\n <Dropdown\n className=\"profileDropdown\"\n selected={gender?.length === 1 ? gender[0] : gender}\n disable={gender?.length === 1 || editScreen}\n option={menu}\n select={setGenderName}\n value={gender}\n optionKey=\"code\"\n t={t}\n name=\"gender\"\n />\n </div>\n </LabelFieldPair>\n\n <LabelFieldPair style={{ display: \"flex\" }}>\n <CardLabel className=\"profile-label-margin\" style={editScreen ? { color: \"#B1B4B6\", width: \"300px\" } : { width: \"300px\" }}>{`${t(\n \"CORE_COMMON_PROFILE_CITY\"\n )}`}</CardLabel>\n <div style={{ width: \"100%\" }}>\n <TextInput\n t={t}\n type={\"text\"}\n isMandatory={false}\n name=\"city\"\n value={t(Digit.Utils.locale.getTransformedLocale(`TENANT_TENANTS_${tenant}`))}\n onChange={(e) => setCity(e.target.value)}\n placeholder=\"Enter Your City Name\"\n {...(validation = {\n isRequired: true,\n // pattern: \"^[a-zA-Z-.`' ]*$\",\n type: \"text\",\n title: t(\"CORE_COMMON_PROFILE_CITY_ERROR_MESSAGE\"),\n })}\n disabled={true}\n />\n <ErrorMessage />\n </div>\n </LabelFieldPair>\n\n <LabelFieldPair style={{ display: \"flex\" }}>\n <CardLabel className=\"profile-label-margin\" style={{ width: \"300px\" }}>{`${t(\"CORE_COMMON_PROFILE_MOBILE_NUMBER\")}*`}</CardLabel>\n <div style={{ width: \"100%\" }}>\n <MobileNumber\n value={mobileNumber}\n style={{ width: \"100%\" }}\n name=\"mobileNumber\"\n placeholder=\"Enter a valid Mobile No.\"\n onChange={(value) => setUserMobileNumber(value)}\n disable={Digit.Utils.getMultiRootTenant() ? false : true}\n {...{\n required: true,\n pattern:\n mdmsValidationData?.UserProfileValidationConfig?.[0]?.mobileNumber ||\n defaultValidationConfig?.UserProfileValidationConfig?.[0]?.mobileNumber,\n type: \"tel\",\n title: t(\"CORE_COMMON_PROFILE_MOBILE_NUMBER_INVALID\"),\n }}\n />\n {errors?.mobileNumber && (\n <ErrorMessage\n message={t(errors?.mobileNumber?.message)}\n truncateMessage={true}\n maxLength={256}\n className=\"\"\n wrapperClassName=\"\"\n showIcon={true}\n />\n )}\n </div>\n </LabelFieldPair>\n\n <LabelFieldPair style={{ display: \"flex\" }}>\n <CardLabel className=\"profile-label-margin\" style={editScreen ? { color: \"#B1B4B6\", width: \"300px\" } : { width: \"300px\" }}>{`${t(\n \"CORE_COMMON_PROFILE_EMAIL\"\n )}`}</CardLabel>\n <div style={{ width: \"100%\" }}>\n <TextInput\n t={t}\n type={\"email\"}\n isMandatory={false}\n placeholder={t(\"EMAIL_VALIDATION\")}\n optionKey=\"i18nKey\"\n name=\"email\"\n value={email}\n onChange={(e) => setUserEmailAddress(e.target.value)}\n disabled={Digit.Utils.getMultiRootTenant() ? true : editScreen}\n />\n {errors?.emailAddress && (\n <ErrorMessage\n message={t(errors?.emailAddress?.message)}\n truncateMessage={true}\n maxLength={256}\n className=\"\"\n wrapperClassName=\"\"\n showIcon={true}\n />\n )}\n </div>\n </LabelFieldPair>\n\n <LabelFieldPair>\n <div style={{ width: \"100%\" }}>\n {changepassword == false && !Digit.Utils.getOTPBasedLogin() ? (\n <Button\n label={t(\"CORE_COMMON_CHANGE_PASSWORD\")}\n variation={\"teritiary\"}\n onClick={TogleforPassword}\n style={{ paddingLeft: \"20rem\" }}\n ></Button>\n ) : null}\n {changepassword ? (\n <div style={{ marginTop: \"10px\" }}>\n <LabelFieldPair style={{ display: \"flex\" }}>\n <CardLabel\n className=\"profile-label-margin\"\n style={editScreen ? { color: \"#B1B4B6\", width: \"300px\" } : { width: \"300px\" }}\n >{`${t(\"CORE_COMMON_PROFILE_CURRENT_PASSWORD\")}`}</CardLabel>\n <div style={{ width: \"100%\" }}>\n <TextInput\n t={t}\n type={\"password\"}\n isMandatory={false}\n name=\"name\"\n pattern={\n mdmsValidationData?.UserProfileValidationConfig?.[0]?.password ||\n defaultValidationConfig?.UserProfileValidationConfig?.[0]?.password\n }\n onChange={(e) => setUserCurrentPassword(e?.target?.value)}\n disabled={editScreen}\n />\n {errors?.currentPassword && (\n <ErrorMessage\n message={t(errors?.currentPassword?.message)}\n truncateMessage={true}\n maxLength={256}\n className=\"\"\n wrapperClassName=\"\"\n showIcon={true}\n />\n )}\n </div>\n </LabelFieldPair>\n\n <LabelFieldPair style={{ display: \"flex\" }}>\n <CardLabel\n className=\"profile-label-margin\"\n style={editScreen ? { color: \"#B1B4B6\", width: \"300px\" } : { width: \"300px\" }}\n >{`${t(\"CORE_COMMON_PROFILE_NEW_PASSWORD\")}`}</CardLabel>\n <div style={{ width: \"100%\" }}>\n <TextInput\n t={t}\n type={\"password\"}\n isMandatory={false}\n name=\"name\"\n pattern={\n mdmsValidationData?.UserProfileValidationConfig?.[0]?.password ||\n defaultValidationConfig?.UserProfileValidationConfig?.[0]?.password\n }\n onChange={(e) => setUserNewPassword(e?.target?.value)}\n disabled={editScreen}\n />\n {errors?.newPassword && (\n <ErrorMessage\n message={t(errors?.newPassword?.message)}\n truncateMessage={true}\n maxLength={256}\n className=\"\"\n wrapperClassName=\"\"\n showIcon={true}\n />\n )}\n </div>\n </LabelFieldPair>\n\n <LabelFieldPair style={{ display: \"flex\" }}>\n <CardLabel\n className=\"profile-label-margin\"\n style={editScreen ? { color: \"#B1B4B6\", width: \"300px\" } : { width: \"300px\" }}\n >{`${t(\"CORE_COMMON_PROFILE_CONFIRM_PASSWORD\")}`}</CardLabel>\n <div style={{ width: \"100%\" }}>\n <TextInput\n t={t}\n type={\"password\"}\n isMandatory={false}\n name=\"name\"\n pattern={\n mdmsValidationData?.UserProfileValidationConfig?.[0]?.password ||\n defaultValidationConfig?.UserProfileValidationConfig?.[0]?.password\n }\n onChange={(e) => setUserConfirmPassword(e?.target?.value)}\n disabled={editScreen}\n />\n {errors?.confirmPassword && (\n <ErrorMessage\n message={t(errors?.confirmPassword?.message)}\n truncateMessage={true}\n maxLength={256}\n className=\"\"\n wrapperClassName=\"\"\n showIcon={true}\n />\n )}\n </div>\n </LabelFieldPair>\n </div>\n ) : (\n \"\"\n )}\n </div>\n </LabelFieldPair>\n {userType === \"employee\" && isMobile ? (\n <button\n onClick={updateProfile}\n style={{\n marginTop: \"24px\",\n backgroundColor: \"#c84c0e\",\n width: \"100%\",\n height: \"40px\",\n color: \"white\",\n maxWidth: isMobile ? \"100%\" : \"240px\",\n borderBottom: \"1px solid black\",\n fontWeight: \"700\",\n fontSize: \"17px\",\n }}\n >\n {t(\"CORE_COMMON_SAVE\")}\n </button>\n ) : null}\n </React.Fragment>\n )}\n </section>\n </div>\n\n {userType === \"employee\" && !isMobile ? (\n <Footer actionFields={[<SubmitBar t={t} label={t(\"CORE_COMMON_SAVE\")} onSubmit={updateProfile} />]} className=\"\" setactionFieldsToRight />\n ) : null}\n {toast && (\n <Toast\n type={toast.key}\n label={t(toast.key === \"success\" ? `CORE_COMMON_PROFILE_UPDATE_SUCCESS` : toast.action)}\n onClose={() => setToast(null)}\n style={{ maxWidth: \"670px\" }}\n />\n )}\n\n {openUploadSlide == true ? (\n <UploadDrawer\n setProfilePic={setFileStoreId}\n closeDrawer={closeFileUploadDrawer}\n userType={userType}\n removeProfilePic={removeProfilePic}\n showToast={showToast}\n />\n ) : (\n \"\"\n )}\n </div>\n );\n};\n\nexport default IndividualUserProfile;","import {\n SVG,\n Dropdown,\n LabelFieldPair,\n MobileNumber,\n TextInput,\n CardLabelError,\n BackLink,\n Loader,\n Button,\n SubmitBar,\n Footer,\n CardLabel,\n BreadCrumb,\n Toast,\n ErrorMessage,\n} from \"@egovernments/digit-ui-components\";\nimport { CameraIcon } from \"@egovernments/digit-ui-react-components\";\nimport React, { useEffect, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useNavigate } from \"react-router-dom\";\nimport UploadDrawer from \"./ImageUpload/UploadDrawer\";\nimport ImageComponent from \"../../../components/ImageComponent\";\nimport IndividualUserProfile from \"./IndividualUserProfile\";\n\nconst DEFAULT_TENANT=Digit?.ULBService?.getStateId?.();\n\nconst defaultImage =\n \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAO4AAADUCAMAAACs0e/bAAAAM1BMVEXK0eL\" +\n \"/\" +\n \"/\" +\n \"/\" +\n \"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\";\n\nconst defaultValidationConfig = {\n tenantId: `${DEFAULT_TENANT}`,\n UserProfileValidationConfig: [\n {\n name: \"/^[a-zA-Z ]+$/i\",\n mobileNumber: \"/^[6-9]{1}[0-9]{9}$/\",\n password: \"/^([a-zA-Z0-9@#$%]{8,15})$/i\",\n },\n ],\n};\n\nconst UserProfile = ({ stateCode, userType, cityDetails }) => {\n\n // Check if individual should be used for login\n const useAnIndividual = window?.globalConfigs?.getConfig(\"USE_INDIVIDUAL_MODEL\");\n const individualServicePath = window?.globalConfigs?.getConfig(\"INDIVIDUAL_SERVICE_CONTEXT_PATH\");\n\n // If useAnIndividual exists, use IndividualLogin component\n if (useAnIndividual && individualServicePath) {\n return <IndividualUserProfile stateCode={stateCode} userType={userType} cityDetails={cityDetails} />;\n }\n \n const navigate = useNavigate();\n const { t } = useTranslation();\n const url = window.location.href;\n const stateId = Digit.ULBService.getStateId();\n const tenant = Digit.ULBService.getCurrentTenantId();\n const userInfo = Digit.UserService.getUser()?.info || {};\n const [userDetails, setUserDetails] = useState(null);\n const [name, setName] = useState(userInfo?.name ? userInfo.name : \"\");\n const [email, setEmail] = useState(userInfo?.emailId ? userInfo.emailId : \"\");\n const [gender, setGender] = useState(userDetails?.gender);\n const [city, setCity] = useState(userInfo?.permanentCity ? userInfo.permanentCity : cityDetails.name);\n const [mobileNumber, setMobileNo] = useState(userInfo?.mobileNumber ? userInfo.mobileNumber : \"\");\n const [profilePic, setProfilePic] = useState(null);\n const [profileImg, setProfileImg] = useState(\"\");\n const [openUploadSlide, setOpenUploadSide] = useState(false);\n const [changepassword, setChangepassword] = useState(false);\n const [currentPassword, setCurrentPassword] = useState(\"\");\n const [newPassword, setNewPassword] = useState(\"\");\n const [confirmPassword, setConfirmPassword] = useState(\"\");\n const [toast, setToast] = useState(null);\n const [loading, setLoading] = useState(false);\n const [windowWidth, setWindowWidth] = React.useState(window.innerWidth);\n const [errors, setErrors] = React.useState({});\n const isMobile = window.Digit.Utils.browser.isMobile();\n const isMultiRootTenant = Digit.Utils.getMultiRootTenant();\n\n const mapConfigToRegExp = (config) => {\n return (\n config?.UserProfileValidationConfig?.[0] &&\n Object.entries(config?.UserProfileValidationConfig[0]).reduce((acc, [key, value]) => {\n if (typeof value === \"string\") {\n try {\n // Checking if value looks like a regex (starts with \"/\" and ends with \"/flags\")\n if (value.startsWith(\"/\") && value.lastIndexOf(\"/\") > 0) {\n const lastSlashIndex = value.lastIndexOf(\"/\");\n const pattern = value.slice(1, lastSlashIndex); // Extracting regex pattern\n const flags = value.slice(lastSlashIndex + 1); // Extracting regex flags\n \n acc[key] = new RegExp(pattern, flags); // Converting properly\n } else {\n acc[key] = new RegExp(value); // Treating it as a normal regex pattern (no flags)\n }\n } catch (error) {\n console.error(`Error parsing regex for key \"${key}\":`, error);\n acc[key] = value; // Keeping as string if invalid regex\n }\n } else {\n acc[key] = value; // Keeping non-string values as it is\n }\n return acc;\n }, {})\n );\n };\n\n const [validationConfig, setValidationConfig] = useState(mapConfigToRegExp(defaultValidationConfig) || {});\n\n const { data: mdmsValidationData, isValidationConfigLoading } = Digit.Hooks.useCustomMDMS(\n stateCode,\n \"commonUiConfig\",\n [{ name: \"UserProfileValidationConfig\" }],\n {\n select: (data) => {\n return data?.commonUiConfig;\n },\n }\n );\n\n useEffect(() => {\n if (mdmsValidationData && mdmsValidationData?.UserProfileValidationConfig?.[0]) {\n const updatedValidationConfig = mapConfigToRegExp(mdmsValidationData);\n setValidationConfig(updatedValidationConfig);\n }\n }, [mdmsValidationData]);\n\n const getUserInfo = async () => {\n const uuid = userInfo?.uuid;\n if (uuid) {\n const usersResponse = await Digit.UserService.userSearch(tenant, { uuid: [uuid] }, {});\n usersResponse && usersResponse.user && usersResponse.user.length && setUserDetails(usersResponse.user[0]);\n }\n };\n\n React.useEffect(() => {\n const handleResize = () => setWindowWidth(window.innerWidth);\n window.addEventListener(\"resize\", handleResize);\n return () => {\n window.removeEventListener(\"resize\", handleResize);\n };\n }, []);\n\n useEffect(() => {\n setLoading(true);\n\n getUserInfo();\n\n setGender({\n i18nKey: undefined,\n code: userDetails?.gender,\n value: userDetails?.gender,\n });\n\n const thumbs = userDetails?.photo?.split(\",\");\n setProfileImg(thumbs?.at(0));\n\n setLoading(false);\n }, [userDetails !== null]);\n\n let validation = {};\n const editScreen = false; // To-do: Deubug and make me dynamic or remove if not needed\n const onClickAddPic = () => setOpenUploadSide(!openUploadSlide);\n const TogleforPassword = () => setChangepassword(!changepassword);\n const setGenderName = (value) => setGender(value);\n const closeFileUploadDrawer = () => setOpenUploadSide(false);\n\n const setUserName = (value) => {\n setName(value);\n\n if (!validationConfig?.name?.test(value) || value.length === 0 || value.length > 50) {\n setErrors({\n ...errors,\n userName: {\n type: \"pattern\",\n message: \"CORE_COMMON_PROFILE_NAME_INVALID\",\n },\n });\n } else {\n setErrors({ ...errors, userName: null });\n }\n };\n\n const setUserEmailAddress = (value) => {\n if (userInfo?.userName !== value) {\n setEmail(value);\n\n if (value.length && !(value.includes(\"@\") && value.includes(\".\"))) {\n setErrors({\n ...errors,\n emailAddress: {\n type: \"pattern\",\n message: \"CORE_COMMON_PROFILE_EMAIL_INVALID\",\n },\n });\n } else {\n setErrors({ ...errors, emailAddress: null });\n }\n } else {\n setErrors({ ...errors, emailAddress: null });\n }\n };\n\n const setUserMobileNumber = (value) => {\n setMobileNo(value);\n\n if (userType === \"employee\" && !validationConfig?.mobileNumber?.test(value)) {\n setErrors({\n ...errors,\n mobileNumber: {\n type: \"pattern\",\n message: \"CORE_COMMON_PROFILE_MOBILE_NUMBER_INVALID\",\n },\n });\n } else {\n setErrors({ ...errors, mobileNumber: null });\n }\n };\n\n const setUserCurrentPassword = (value) => {\n if (!validationConfig?.password.test(value)) {\n setErrors({\n ...errors,\n currentPassword: {\n type: \"pattern\",\n message: \"CORE_COMMON_PROFILE_PASSWORD_INVALID\",\n },\n });\n } else {\n setErrors({ ...errors, currentPassword: null });\n }\n };\n\n const setUserNewPassword = (value) => {\n setNewPassword(value);\n if (!validationConfig?.password.test(value)) {\n setErrors({\n ...errors,\n newPassword: {\n type: \"pattern\",\n message: \"CORE_COMMON_PROFILE_PASSWORD_INVALID\",\n },\n });\n } else {\n setErrors({ ...errors, newPassword: null });\n }\n };\n\n const setUserConfirmPassword = (value) => {\n setConfirmPassword(value);\n\n if (!validationConfig?.password.test(value)) {\n setErrors({\n ...errors,\n confirmPassword: {\n type: \"pattern\",\n message: \"CORE_COMMON_PROFILE_PASSWORD_INVALID\",\n },\n });\n } else {\n setErrors({ ...errors, confirmPassword: null });\n }\n };\n\n const removeProfilePic = () => {\n setProfilePic(null);\n setProfileImg(null);\n };\n\n const showToast = (type, message, duration = 5000) => {\n setToast({ key: type, action: message });\n setTimeout(() => {\n setToast(null);\n }, duration);\n };\n\n const updateProfile = async () => {\n setLoading(true);\n try {\n const requestData = {\n ...userInfo,\n name,\n gender: gender?.value,\n emailId: email,\n photo: profilePic,\n };\n\n if(name){\n setName((prev)=>prev.trim());\n }\n\n if (!validationConfig?.name.test(name) || name === \"\" || name.length > 50 || name.length < 1) {\n throw JSON.stringify({\n type: \"error\",\n message: t(\"CORE_COMMON_PROFILE_NAME_INVALID\"),\n });\n }\n\n if (userType === \"employee\" && !validationConfig?.mobileNumber.test(mobileNumber)) {\n throw JSON.stringify({\n type: \"error\",\n message: t(\"CORE_COMMON_PROFILE_MOBILE_NUMBER_INVALID\"),\n });\n }\n\n if (email.length && !(email.includes(\"@\") && email.includes(\".\"))) {\n throw JSON.stringify({\n type: \"error\",\n message: t(\"CORE_COMMON_PROFILE_EMAIL_INVALID\"),\n });\n }\n const trimmedCurrentPassword = currentPassword.trim();\n const trimmedNewPassword = newPassword.trim();\n const trimmedConfirmPassword = confirmPassword.trim();\n\n // Updating state with trimmed values\n setCurrentPassword(trimmedCurrentPassword);\n setNewPassword(trimmedNewPassword);\n setConfirmPassword(trimmedConfirmPassword);\n \n\n if (changepassword && (trimmedCurrentPassword && trimmedNewPassword && trimmedConfirmPassword)) {\n if (trimmedNewPassword !== trimmedConfirmPassword) {\n throw JSON.stringify({\n type: \"error\",\n message: t(\"CORE_COMMON_PROFILE_PASSWORD_MISMATCH\"),\n });\n }\n\n if (!(trimmedCurrentPassword.length && trimmedNewPassword.length && trimmedConfirmPassword.length)) {\n throw JSON.stringify({\n type: \"error\",\n message: t(\"CORE_COMMON_PROFILE_PASSWORD_INVALID\"),\n });\n }\n\n if (!validationConfig?.password.test(trimmedNewPassword) && !validationConfig?.password.test(trimmedConfirmPassword)) {\n throw JSON.stringify({\n type: \"error\",\n message: t(\"CORE_COMMON_PROFILE_PASSWORD_INVALID\"),\n });\n }\n }\n\n const { responseInfo, user } = await Digit.UserService.updateUser(requestData, stateCode);\n\n if (responseInfo && responseInfo.status === \"200\") {\n const user = Digit.UserService.getUser();\n\n if (user) {\n Digit.UserService.setUser({\n ...user,\n info: {\n ...user.info,\n name,\n mobileNumber,\n emailId: email,\n permanentCity: city,\n },\n });\n }\n }\n\n if (currentPassword.length && newPassword.length && confirmPassword.length) {\n const requestData = {\n existingPassword: currentPassword,\n newPassword: newPassword,\n tenantId: tenant,\n type: \"EMPLOYEE\",\n username: userInfo?.userName,\n confirmPassword: confirmPassword,\n };\n\n if (newPassword === confirmPassword) {\n try {\n const res = await Digit.UserService.changePassword(requestData, tenant);\n\n const { responseInfo: changePasswordResponseInfo } = res;\n if (changePasswordResponseInfo?.status && changePasswordResponseInfo.status === \"200\") {\n showToast(\"success\", t(\"CORE_COMMON_PROFILE_UPDATE_SUCCESS_WITH_PASSWORD\"), 5000);\n setTimeout(() => Digit.UserService.logout(), 2000);\n } else {\n throw \"\";\n }\n } catch (error) {\n throw JSON.stringify({\n type: \"error\",\n message: error.Errors?.at(0)?.description ? error.Errors.at(0).description : \"CORE_COMMON_PROFILE_UPDATE_ERROR_WITH_PASSWORD\",\n });\n }\n } else {\n throw JSON.stringify({\n type: \"error\",\n message: \"CORE_COMMON_PROFILE_ERROR_PASSWORD_NOT_MATCH\",\n });\n }\n } else if (responseInfo?.status && responseInfo.status === \"200\") {\n showToast(\"success\", t(\"CORE_COMMON_PROFILE_UPDATE_SUCCESS\"), 5000);\n }\n } catch (error) {\n const errorObj = JSON.parse(error);\n showToast(errorObj.type, t(errorObj.message), 5000);\n }\n\n setLoading(false);\n };\n\n let menu = [];\n const { data: Menu } = Digit.Hooks.useGenderMDMS(stateId, \"common-masters\", \"GenderType\");\n Menu &&\n Menu.map((genderDetails) => {\n menu.push({\n i18nKey: `PT_COMMON_GENDER_${genderDetails.code}`,\n code: `${genderDetails.code}`,\n value: `${genderDetails.code}`,\n });\n });\n\n const setFileStoreId = async (fileStoreId) => {\n setProfilePic(fileStoreId);\n\n const thumbnails = fileStoreId ? await getThumbnails([fileStoreId], stateId) : null;\n\n setProfileImg(thumbnails?.thumbs[0]);\n\n closeFileUploadDrawer();\n };\n\n const getThumbnails = async (ids, tenantId) => {\n const res = await Digit.UploadServices.Filefetch(ids, tenantId);\n if (res.data.fileStoreIds && res.data.fileStoreIds.length !== 0) {\n return {\n thumbs: res.data.fileStoreIds.map((o) => o.url.split(\",\")[3]),\n images: res.data.fileStoreIds.map((o) => Digit.Utils.getFileUrl(o.url)),\n };\n } else {\n return null;\n }\n };\n\n if (loading || isValidationConfigLoading) return <Loader></Loader>;\n\n return (\n <div className={`user-profile ${userType === \"citizen\" ? \"citizen\" : \"employee\"}`}>\n <section style={{ margin: userType === \"citizen\" || isMobile ? \"8px\" : \"0px\" }}>\n {userType === \"citizen\" || isMobile ? (\n <BackLink onClick={() => navigate(\"/\")} />\n ) : (\n <BreadCrumb\n style={{ marginTop: \"0rem\", marginBottom: \"1.5rem\" }}\n crumbs={[\n {\n internalLink: isMultiRootTenant ? `/${window?.contextPath}/employee/sandbox/landing` : `/${window?.contextPath}/employee`,\n content: t(\"ES_COMMON_HOME\"),\n show: true,\n },\n {\n internalLink: `/${window?.contextPath}/employee/user/profile`,\n content: t(\"ES_COMMON_PAGE_1\"),\n show: url.includes(\"/user/profile\"),\n },\n ]}\n />\n )}\n </section>\n <div\n style={{\n display: \"flex\",\n flex: 1,\n flexDirection: windowWidth < 768 || userType === \"citizen\" ? \"column\" : \"row\",\n margin: userType === \"citizen\" ? \"8px\" : \"0px\",\n gap: userType === \"citizen\" ? \"\" : \"0 24px\",\n boxShadow: userType === \"citizen\" ? \"1px 1px 4px 0px rgba(0,0,0,0.2)\" : \"\",\n background: userType === \"citizen\" ? \"white\" : \"\",\n borderRadius: userType === \"citizen\" ? \"4px\" : \"\",\n maxWidth: userType === \"citizen\" ? \"960px\" : \"\",\n }}\n >\n <section\n style={{\n position: \"relative\",\n display: \"flex\",\n flex: userType === \"citizen\" ? 1 : 2.5,\n justifyContent: \"center\",\n alignItems: \"center\",\n maxWidth: \"100%\",\n // height: \"376px\",\n borderRadius: \"4px\",\n boxShadow: userType === \"citizen\" ? \"\" : \"1px 1px 4px 0px rgba(0,0,0,0.2)\",\n border: `${userType === \"citizen\" ? \"8px\" : \"24px\"} solid #fff`,\n background: \"#EEEEEE\",\n padding: userType === \"citizen\" ? \"8px\" : \"16px\",\n }}\n >\n <div\n style={{\n position: \"relative\",\n height: userType === \"citizen\" ? \"114px\" : \"150px\",\n width: userType === \"citizen\" ? \"114px\" : \"150px\",\n margin: \"16px\",\n }}\n >\n <ImageComponent\n style={{\n margin: \"auto\",\n borderRadius: \"300px\",\n justifyContent: \"center\",\n height: \"100%\",\n width: \"100%\",\n }}\n src={!profileImg || profileImg === \"\" ? defaultImage : profileImg}\n alt=\"Profile Image\"\n />\n\n <button\n style={{\n position: \"absolute\",\n left: \"50%\",\n bottom: \"-24px\",\n transform: \"translateX(-50%)\",\n }}\n onClick={onClickAddPic}\n >\n <CameraIcon />\n </button>\n </div>\n </section>\n <section\n style={{\n display: \"flex\",\n flexDirection: \"column\",\n flex: userType === \"citizen\" ? 1 : 7.5,\n width: \"100%\",\n borderRadius: \"4px\",\n height: \"fit-content\",\n boxShadow: userType === \"citizen\" ? \"\" : \"1px 1px 4px 0px rgba(0,0,0,0.2)\",\n background: \"white\",\n padding: userType === \"citizen\" ? \"8px\" : \"24px\",\n paddingBottom: \"20px\",\n }}\n >\n {userType === \"citizen\" ? (\n <React.Fragment>\n <LabelFieldPair>\n <CardLabel className=\"user-profile\" style={editScreen ? { color: \"#B1B4B6\" } : {}}>\n {`${t(\"CORE_COMMON_PROFILE_NAME\")}`}*\n </CardLabel>\n <div style={{ width: \"40rem\", maxWidth: \"960px\" }}>\n <TextInput\n t={t}\n style={{ width: \"100%\" }}\n type={\"text\"}\n isMandatory={false}\n name=\"name\"\n value={name}\n onChange={(e) => setUserName(e.target.value)}\n {...(validation = {\n isRequired: true,\n pattern:\n mdmsValidationData?.UserProfileValidationConfig?.[0]?.name || defaultValidationConfig?.UserProfileValidationConfig?.[0]?.name,\n type: \"tel\",\n title: t(\"CORE_COMMON_PROFILE_NAME_ERROR_MESSAGE\"),\n })}\n disable={editScreen}\n />\n {/* {errors?.userName && (\n <CardLabelError>\n {\" \"}\n {t(errors?.userName?.message)}{\" \"}\n </CardLabelError>\n )} */}\n {errors?.userName && (\n <ErrorMessage\n message={t(errors?.userName?.message)}\n truncateMessage={true}\n maxLength={256}\n className=\"\"\n wrapperClassName=\"\"\n showIcon={true}\n />\n )}\n </div>\n </LabelFieldPair>\n\n <LabelFieldPair>\n <CardLabel className=\"user-profile\" style={editScreen ? { color: \"#B1B4B6\" } : {}}>{`${t(\"CORE_COMMON_PROFILE_GENDER\")}`}</CardLabel>\n <Dropdown\n style={{ width: \"40rem\", fontSize: \"1rem\" }}\n className=\"form-field profileDropdown\"\n selected={gender?.length === 1 ? gender[0] : gender}\n disable={gender?.length === 1 || editScreen}\n option={menu}\n select={setGenderName}\n value={gender}\n optionKey=\"code\"\n t={t}\n name=\"gender\"\n />\n </LabelFieldPair>\n\n <LabelFieldPair>\n <CardLabel className=\"user-profile\" style={editScreen ? { color: \"#B1B4B6\" } : {}}>{`${t(\"CORE_COMMON_PROFILE_EMAIL\")}`}</CardLabel>\n <div style={{ width: \"40rem\" }}>\n <TextInput\n t={t}\n style={{ width: \"100%\" }}\n type={\"email\"}\n isMandatory={false}\n optionKey=\"i18nKey\"\n name=\"email\"\n value={email}\n onChange={(e) => setUserEmailAddress(e.target.value)}\n disabled={editScreen}\n />\n {errors?.emailAddress && (\n <ErrorMessage\n message={t(errors?.emailAddress?.message)}\n truncateMessage={true}\n maxLength={256}\n className=\"\"\n wrapperClassName=\"\"\n showIcon={true}\n />\n )}\n </div>\n </LabelFieldPair>\n\n <button\n onClick={updateProfile}\n style={{\n marginTop: \"24px\",\n backgroundColor: \"#c84c0e\",\n width: \"100%\",\n height: \"40px\",\n color: \"white\",\n\n maxWidth: isMobile ? \"100%\" : \"240px\",\n borderBottom: \"1px solid black\",\n }}\n >\n {t(\"CORE_COMMON_SAVE\")}\n </button>\n </React.Fragment>\n ) : (\n <React.Fragment>\n <LabelFieldPair style={{ display: \"flex\" }}>\n <CardLabel className=\"profile-label-margin\" style={editScreen ? { color: \"#B1B4B6\", width: \"300px\" } : { width: \"300px\" }}>\n {`${t(\"CORE_COMMON_PROFILE_NAME\")}`}*\n </CardLabel>\n <div style={{ width: \"100%\" }}>\n <TextInput\n t={t}\n type={\"text\"}\n isMandatory={false}\n name=\"name\"\n value={name}\n onChange={(e) => setUserName(e.target.value)}\n placeholder=\"Enter Your Name\"\n {...(validation = {\n isRequired: true,\n pattern:\n mdmsValidationData?.UserProfileValidationConfig?.[0]?.name || defaultValidationConfig?.UserProfileValidationConfig?.[0]?.name,\n type: \"text\",\n title: t(\"CORE_COMMON_PROFILE_NAME_ERROR_MESSAGE\"),\n })}\n disabled={editScreen}\n />\n {errors?.userName && (\n <ErrorMessage\n message={t(errors?.userName?.message)}\n truncateMessage={true}\n maxLength={256}\n className=\"\"\n wrapperClassName=\"\"\n showIcon={true}\n />\n )}\n </div>\n </LabelFieldPair>\n\n <LabelFieldPair style={{ display: \"flex\" }}>\n <CardLabel className=\"profile-label-margin\" style={editScreen ? { color: \"#B1B4B6\", width: \"300px\" } : { width: \"300px\" }}>{`${t(\n \"CORE_COMMON_PROFILE_GENDER\"\n )}`}</CardLabel>\n <div style={{ width: \"100%\" }}>\n <Dropdown\n className=\"profileDropdown\"\n selected={gender?.length === 1 ? gender[0] : gender}\n disable={gender?.length === 1 || editScreen}\n option={menu}\n select={setGenderName}\n value={gender}\n optionKey=\"code\"\n t={t}\n name=\"gender\"\n />\n </div>\n </LabelFieldPair>\n\n <LabelFieldPair style={{ display: \"flex\" }}>\n <CardLabel className=\"profile-label-margin\" style={editScreen ? { color: \"#B1B4B6\", width: \"300px\" } : { width: \"300px\" }}>{`${t(\n \"CORE_COMMON_PROFILE_CITY\"\n )}`}</CardLabel>\n <div style={{ width: \"100%\" }}>\n <TextInput\n t={t}\n type={\"text\"}\n isMandatory={false}\n name=\"city\"\n value={t(Digit.Utils.locale.getTransformedLocale(`TENANT_TENANTS_${tenant}`))}\n onChange={(e) => setCity(e.target.value)}\n placeholder=\"Enter Your City Name\"\n {...(validation = {\n isRequired: true,\n // pattern: \"^[a-zA-Z-.`' ]*$\",\n type: \"text\",\n title: t(\"CORE_COMMON_PROFILE_CITY_ERROR_MESSAGE\"),\n })}\n disabled={true}\n />\n <ErrorMessage />\n </div>\n </LabelFieldPair>\n\n <LabelFieldPair style={{ display: \"flex\" }}>\n <CardLabel className=\"profile-label-margin\" style={{ width: \"300px\" }}>{`${t(\"CORE_COMMON_PROFILE_MOBILE_NUMBER\")}*`}</CardLabel>\n <div style={{ width: \"100%\" }}>\n <MobileNumber\n value={mobileNumber}\n style={{ width: \"100%\" }}\n name=\"mobileNumber\"\n placeholder=\"Enter a valid Mobile No.\"\n onChange={(value) => setUserMobileNumber(value)}\n disable={Digit.Utils.getMultiRootTenant() ? false : true}\n {...{\n required: true,\n pattern:\n mdmsValidationData?.UserProfileValidationConfig?.[0]?.mobileNumber ||\n defaultValidationConfig?.UserProfileValidationConfig?.[0]?.mobileNumber,\n type: \"tel\",\n title: t(\"CORE_COMMON_PROFILE_MOBILE_NUMBER_INVALID\"),\n }}\n />\n {errors?.mobileNumber && (\n <ErrorMessage\n message={t(errors?.mobileNumber?.message)}\n truncateMessage={true}\n maxLength={256}\n className=\"\"\n wrapperClassName=\"\"\n showIcon={true}\n />\n )}\n </div>\n </LabelFieldPair>\n\n <LabelFieldPair style={{ display: \"flex\" }}>\n <CardLabel className=\"profile-label-margin\" style={editScreen ? { color: \"#B1B4B6\", width: \"300px\" } : { width: \"300px\" }}>{`${t(\n \"CORE_COMMON_PROFILE_EMAIL\"\n )}`}</CardLabel>\n <div style={{ width: \"100%\" }}>\n <TextInput\n t={t}\n type={\"email\"}\n isMandatory={false}\n placeholder={t(\"EMAIL_VALIDATION\")}\n optionKey=\"i18nKey\"\n name=\"email\"\n value={email}\n onChange={(e) => setUserEmailAddress(e.target.value)}\n disabled={Digit.Utils.getMultiRootTenant() ? true : editScreen}\n />\n {errors?.emailAddress && (\n <ErrorMessage\n message={t(errors?.emailAddress?.message)}\n truncateMessage={true}\n maxLength={256}\n className=\"\"\n wrapperClassName=\"\"\n showIcon={true}\n />\n )}\n </div>\n </LabelFieldPair>\n\n <LabelFieldPair>\n <div style={{ width: \"100%\" }}>\n {changepassword == false && !Digit.Utils.getOTPBasedLogin() ? (\n <Button\n label={t(\"CORE_COMMON_CHANGE_PASSWORD\")}\n variation={\"teritiary\"}\n onClick={TogleforPassword}\n style={{ paddingLeft: \"0rem\" }}\n ></Button>\n ) : null}\n {changepassword ? (\n <div style={{ marginTop: \"10px\" }}>\n <LabelFieldPair style={{ display: \"flex\" }}>\n <CardLabel\n className=\"profile-label-margin\"\n style={editScreen ? { color: \"#B1B4B6\", width: \"300px\" } : { width: \"300px\" }}\n >{`${t(\"CORE_COMMON_PROFILE_CURRENT_PASSWORD\")}`}</CardLabel>\n <div style={{ width: \"100%\" }}>\n <TextInput\n t={t}\n type={\"password\"}\n isMandatory={false}\n name=\"name\"\n pattern={\n mdmsValidationData?.UserProfileValidationConfig?.[0]?.password ||\n defaultValidationConfig?.UserProfileValidationConfig?.[0]?.password\n }\n onChange={(e) => setUserCurrentPassword(e?.target?.value)}\n disabled={editScreen}\n />\n {errors?.currentPassword && (\n <ErrorMessage\n message={t(errors?.currentPassword?.message)}\n truncateMessage={true}\n maxLength={256}\n className=\"\"\n wrapperClassName=\"\"\n showIcon={true}\n />\n )}\n </div>\n </LabelFieldPair>\n\n <LabelFieldPair style={{ display: \"flex\" }}>\n <CardLabel\n className=\"profile-label-margin\"\n style={editScreen ? { color: \"#B1B4B6\", width: \"300px\" } : { width: \"300px\" }}\n >{`${t(\"CORE_COMMON_PROFILE_NEW_PASSWORD\")}`}</CardLabel>\n <div style={{ width: \"100%\" }}>\n <TextInput\n t={t}\n type={\"password\"}\n isMandatory={false}\n name=\"name\"\n pattern={\n mdmsValidationData?.UserProfileValidationConfig?.[0]?.password ||\n defaultValidationConfig?.UserProfileValidationConfig?.[0]?.password\n }\n onChange={(e) => setUserNewPassword(e?.target?.value)}\n disabled={editScreen}\n />\n {errors?.newPassword && (\n <ErrorMessage\n message={t(errors?.newPassword?.message)}\n truncateMessage={true}\n maxLength={256}\n className=\"\"\n wrapperClassName=\"\"\n showIcon={true}\n />\n )}\n </div>\n </LabelFieldPair>\n\n <LabelFieldPair style={{ display: \"flex\" }}>\n <CardLabel\n className=\"profile-label-margin\"\n style={editScreen ? { color: \"#B1B4B6\", width: \"300px\" } : { width: \"300px\" }}\n >{`${t(\"CORE_COMMON_PROFILE_CONFIRM_PASSWORD\")}`}</CardLabel>\n <div style={{ width: \"100%\" }}>\n <TextInput\n t={t}\n type={\"password\"}\n isMandatory={false}\n name=\"name\"\n pattern={\n mdmsValidationData?.UserProfileValidationConfig?.[0]?.password ||\n defaultValidationConfig?.UserProfileValidationConfig?.[0]?.password\n }\n onChange={(e) => setUserConfirmPassword(e?.target?.value)}\n disabled={editScreen}\n />\n {errors?.confirmPassword && (\n <ErrorMessage\n message={t(errors?.confirmPassword?.message)}\n truncateMessage={true}\n maxLength={256}\n className=\"\"\n wrapperClassName=\"\"\n showIcon={true}\n />\n )}\n </div>\n </LabelFieldPair>\n </div>\n ) : (\n \"\"\n )}\n </div>\n </LabelFieldPair>\n {userType === \"employee\" && isMobile ? (\n <button\n onClick={updateProfile}\n style={{\n marginTop: \"24px\",\n backgroundColor: \"#c84c0e\",\n width: \"100%\",\n height: \"40px\",\n color: \"white\",\n maxWidth: isMobile ? \"100%\" : \"240px\",\n borderBottom: \"1px solid black\",\n fontWeight: \"700\",\n fontSize: \"17px\",\n }}\n >\n {t(\"CORE_COMMON_SAVE\")}\n </button>\n ) : null}\n </React.Fragment>\n )}\n </section>\n </div>\n\n {userType === \"employee\" && !isMobile ? (\n <Footer actionFields={[<SubmitBar t={t} label={t(\"CORE_COMMON_SAVE\")} onSubmit={updateProfile} />]} className=\"\" setactionFieldsToRight />\n ) : null}\n {toast && (\n <Toast\n type={toast.key}\n label={t(toast.key === \"success\" ? `CORE_COMMON_PROFILE_UPDATE_SUCCESS` : toast.action)}\n onClose={() => setToast(null)}\n style={{ maxWidth: \"670px\" }}\n />\n )}\n\n {openUploadSlide == true ? (\n <UploadDrawer\n setProfilePic={setFileStoreId}\n closeDrawer={closeFileUploadDrawer}\n userType={userType}\n removeProfilePic={removeProfilePic}\n showToast={showToast}\n />\n ) : (\n \"\"\n )}\n </div>\n );\n};\n\nexport default UserProfile;","import {\n Calender,\n CardBasedOptions,\n CaseIcon,\n ComplaintIcon,\n DocumentIcon,\n HomeIcon,\n OBPSIcon,\n PTIcon,\n Loader,\n WhatsNewCard,\n} from \"@egovernments/digit-ui-react-components\";\nimport React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useNavigate } from \"react-router-dom\";\nimport ImageComponent from \"../../../components/ImageComponent\";\n\nconst Home = () => {\n const { t } = useTranslation();\n const navigate = useNavigate();\n const tenantId = Digit.Utils.getMultiRootTenant() ? Digit.ULBService.getStateId() : Digit.ULBService.getCitizenCurrentTenant(true);\n const { data: { stateInfo, uiHomePage } = {}, isLoading } = Digit.Hooks.useStore.getInitData();\n let isMobile = window.Digit.Utils.browser.isMobile();\n\n const conditionsToDisableNotificationCountTrigger = () => {\n if (Digit.UserService?.getUser()?.info?.type === \"EMPLOYEE\") return false;\n if (!Digit.UserService?.getUser()?.access_token) return false;\n return true;\n };\n\n const { data: EventsData, isLoading: EventsDataLoading } = Digit.Hooks.useEvents({\n tenantId,\n variant: \"whats-new\",\n config: {\n enabled: conditionsToDisableNotificationCountTrigger(),\n },\n });\n\n if (!tenantId) {\n navigate(`/${window?.contextPath}/citizen/select-language`);\n }\n\n const appBannerWebObj = uiHomePage?.appBannerDesktop;\n const appBannerMobObj = uiHomePage?.appBannerMobile;\n const citizenServicesObj = uiHomePage?.citizenServicesCard;\n const infoAndUpdatesObj = uiHomePage?.informationAndUpdatesCard;\n const whatsAppBannerWebObj = uiHomePage?.whatsAppBannerDesktop;\n const whatsAppBannerMobObj = uiHomePage?.whatsAppBannerMobile;\n const whatsNewSectionObj = uiHomePage?.whatsNewSection;\n const redirectURL = uiHomePage?.redirectURL;\n /* configure redirect URL only if it is required to overide the default citizen home screen */\n if (redirectURL) {\n navigate(`/${window?.contextPath}/citizen/${redirectURL}`);\n }\n /* fix for sanitation ui & sandbox*/\n if (window?.location?.href?.includes?.(\"sanitation-ui\") || window?.location?.href?.includes?.(\"sandbox-ui\")) {\n navigate(`/${window?.contextPath}/citizen/all-services`);\n }\n\n const handleClickOnWhatsAppBanner = (obj) => {\n window.open(obj?.navigationUrl);\n };\n\n const allCitizenServicesProps = {\n header: t(citizenServicesObj?.headerLabel),\n sideOption: {\n name: t(citizenServicesObj?.sideOption?.name),\n onClick: () =>\n navigate(citizenServicesObj?.sideOption?.navigationUrl),\n },\n options: [\n {\n name: t(citizenServicesObj?.props?.[0]?.label),\n Icon: <ComplaintIcon />,\n onClick: () =>\n navigate(citizenServicesObj?.props?.[0]?.navigationUrl),\n },\n {\n name: t(citizenServicesObj?.props?.[1]?.label),\n Icon: <PTIcon className=\"fill-path-primary-main\" />,\n onClick: () =>\n navigate(citizenServicesObj?.props?.[1]?.navigationUrl),\n },\n {\n name: t(citizenServicesObj?.props?.[2]?.label),\n Icon: <CaseIcon className=\"fill-path-primary-main\" />,\n onClick: () =>\n navigate(citizenServicesObj?.props?.[2]?.navigationUrl),\n },\n // {\n // name: t(\"ACTION_TEST_WATER_AND_SEWERAGE\"),\n // Icon: <DropIcon/>,\n // onClick: () => history.push(`/${window?.contextPath}/citizen`)\n // },\n {\n name: t(citizenServicesObj?.props?.[3]?.label),\n Icon: <OBPSIcon />,\n onClick: () =>\n navigate(citizenServicesObj?.props?.[3]?.navigationUrl),\n },\n ],\n styles: {\n display: \"flex\",\n flexWrap: \"wrap\",\n justifyContent: \"flex-start\",\n width: \"100%\",\n },\n };\n const allInfoAndUpdatesProps = {\n header: t(infoAndUpdatesObj?.headerLabel),\n sideOption: {\n name: t(infoAndUpdatesObj?.sideOption?.name),\n onClick: () => navigate(infoAndUpdatesObj?.sideOption?.navigationUrl),\n },\n options: [\n {\n name: t(infoAndUpdatesObj?.props?.[0]?.label),\n Icon: <HomeIcon />,\n onClick: () =>\n navigate(infoAndUpdatesObj?.props?.[0]?.navigationUrl),\n },\n {\n name: t(infoAndUpdatesObj?.props?.[1]?.label),\n Icon: <Calender />,\n onClick: () =>\n navigate(infoAndUpdatesObj?.props?.[1]?.navigationUrl),\n },\n {\n name: t(infoAndUpdatesObj?.props?.[2]?.label),\n Icon: <DocumentIcon />,\n onClick: () =>\n navigate(infoAndUpdatesObj?.props?.[2]?.navigationUrl),\n },\n {\n name: t(infoAndUpdatesObj?.props?.[3]?.label),\n Icon: <DocumentIcon />,\n onClick: () =>\n navigate(infoAndUpdatesObj?.props?.[3]?.navigationUrl),\n },\n // {\n // name: t(\"CS_COMMON_HELP\"),\n // Icon: <HelpIcon/>\n // }\n ],\n styles: {\n display: \"flex\",\n flexWrap: \"wrap\",\n justifyContent: \"flex-start\",\n width: \"100%\",\n },\n };\n\n return isLoading ? (\n <Loader />\n ) : (\n <div className=\"HomePageContainer\">\n {/* <div className=\"SideBarStatic\">\n <StaticCitizenSideBar />\n </div> */}\n <div className=\"HomePageWrapper\">\n {\n <div className=\"BannerWithSearch\">\n {isMobile ? (\n <ImageComponent src={appBannerMobObj?.bannerUrl} alt=\"Banner Image\" />\n ) : (\n <ImageComponent src={appBannerWebObj?.bannerUrl} alt=\"Banner Image\" />\n )}\n {/* <div className=\"Search\">\n <StandaloneSearchBar placeholder={t(\"CS_COMMON_SEARCH_PLACEHOLDER\")} />\n </div> */}\n <div className=\"ServicesSection\">\n <CardBasedOptions style={{ marginTop: \"-30px\" }} {...allCitizenServicesProps} />\n <CardBasedOptions style={isMobile ? {} : { marginTop: \"-30px\" }} {...allInfoAndUpdatesProps} />\n </div>\n </div>\n }\n\n {(whatsAppBannerMobObj || whatsAppBannerWebObj) && (\n <div className=\"WhatsAppBanner\">\n {isMobile ? (\n <ImageComponent\n src={whatsAppBannerMobObj?.bannerUrl}\n onClick={() => handleClickOnWhatsAppBanner(whatsAppBannerMobObj)}\n alt=\"Whatsapp Banner\"\n />\n ) : (\n <ImageComponent\n src={whatsAppBannerWebObj?.bannerUrl}\n onClick={() => handleClickOnWhatsAppBanner(whatsAppBannerWebObj)}\n alt=\"Whatsapp Banner\"\n />\n )}\n </div>\n )}\n\n {conditionsToDisableNotificationCountTrigger() ? (\n EventsDataLoading ? (\n <Loader />\n ) : (\n <div className=\"WhatsNewSection\">\n <div className=\"headSection\">\n <h2>{t(whatsNewSectionObj?.headerLabel)}</h2>\n <p onClick={() => navigate(whatsNewSectionObj?.sideOption?.navigationUrl)}>{t(whatsNewSectionObj?.sideOption?.name)}</p>\n </div>\n <WhatsNewCard {...EventsData?.[0]} />\n </div>\n )\n ) : null}\n </div>\n </div>\n );\n};\n\nexport default Home;\n","import {\n BackButton,\n HeaderComponent,\n Loader,\n CloseSvg,\n DownloadImgIcon,\n PDFSvg,\n} from \"@egovernments/digit-ui-components\";\nimport { CustomButton } from \"@egovernments/digit-ui-react-components\";\nimport React, { Fragment, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nconst HowItWorks = ({ module }) => {\n const user = Digit.UserService.getUser();\n const tenantId =\n user?.info?.tenantId || Digit.ULBService.getCurrentTenantId();\n const { t } = useTranslation();\n const storeData = Digit.SessionStorage.get(\"initData\");\n const stateInfo = storeData.stateInfo;\n const selectedLanguage = Digit.StoreData.getCurrentLanguage();\n const [selected, setselected] = useState(selectedLanguage);\n const handleChangeLanguage = (language) => {\n setselected(language.value);\n Digit.LocalizationService.changeLanguage(language.value, stateInfo.code);\n };\n const [videoPlay, setVideoPlay] = useState(false);\n const [vidSrc, setVidSrc] = useState(\"\");\n\n const ViDSvg = () => (\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M12 24C5.38053 24 0 18.6143 0 12C0 5.38054 5.38053 1.90735e-06 12 1.90735e-06C18.6143 1.90735e-06 24 5.38054 24 12C24 18.6143 18.6143 24 12 24ZM16.3488 10.7852L11.3855 7.25251C11.1263 7.0701 10.8238 6.97889 10.5214 6.97889C10.291 6.97889 10.0557 7.03172 9.83976 7.14202C9.34054 7.40118 9.02857 7.91006 9.02857 8.46694L9.02877 15.5323C9.02877 16.0892 9.34076 16.5979 9.83996 16.8572C10.3344 17.1116 10.9296 17.0732 11.3857 16.7467L16.349 13.214C16.7426 12.9356 16.9778 12.4795 16.9778 11.9996C16.9776 11.5197 16.7426 11.0636 16.3489 10.7852L16.3488 10.7852Z\"\n fill=\"white\"\n />\n </svg>\n );\n const onClickVideo = (vidObj) => {\n if (selected === \"hi_IN\") {\n setVidSrc(vidObj[\"hi_IN\"]);\n } else {\n setVidSrc(vidObj[\"en_IN\"]);\n }\n setVideoPlay(true);\n };\n const onClose = () => {\n setVideoPlay(false);\n };\n\n const { isLoading, data } = Digit.Hooks.useGetHowItWorksJSON(\n Digit.ULBService.getStateId()\n );\n\n const mdmsConfigResult =\n data?.MdmsRes[\"common-masters\"]?.howItWorks[0]?.[`${module}`];\n const languages = [\n {\n label: \"ENGLISH\",\n value: \"en_IN\",\n },\n {\n label: \"हिंदी\",\n value: \"hi_IN\",\n },\n ];\n\n if (isLoading) {\n return <Loader />;\n }\n return (\n <Fragment>\n <div className=\"how-it-works-page\">\n <BackButton></BackButton>\n <div className=\"how-it-works-page-header\">\n <HeaderComponent>\n {t(\n mdmsConfigResult.screenHeader\n ? mdmsConfigResult.screenHeader\n : \"HOW_IT_WORKS\"\n )}\n </HeaderComponent>\n </div>\n <div className=\"language-selector\" style={{ margin: \"10px\" }}>\n {languages.map((language, index) => (\n <div className=\"language-button-container\" key={index}>\n <CustomButton\n selected={language.value === selected}\n text={language.label}\n onClick={() => handleChangeLanguage(language)}\n ></CustomButton>\n </div>\n ))}\n </div>\n {mdmsConfigResult.videosJson.map((videos, index) => (\n <div>\n <div\n className=\"WhatsNewCard\"\n style={{\n float: \"left\",\n position: \"relative\",\n width: \"100%\",\n marginBottom: 10,\n }}\n >\n <div className=\"video-icon\" onClick={() => onClickVideo(videos)}>\n <div className=\"vid-svg\">\n <ViDSvg></ViDSvg>\n </div>\n </div>\n <div className=\"how-it-works-header-description\">\n <h2>{t(videos.headerLabel)}</h2>\n <p>{t(videos.description)}</p>\n </div>\n </div>\n </div>\n ))}\n {mdmsConfigResult.pdfHeader && mdmsConfigResult.pdfDesc && (\n <div\n className=\"WhatsNewCard\"\n style={{\n position: \"relative\",\n width: \"100%\",\n marginBottom: 10,\n display: \"inline-block\",\n }}\n >\n <div className=\"how-it-works-pdf-section\">\n <div className=\"pdf-icon-header-desc\">\n <div className=\"pdf-icon\">\n <PDFSvg></PDFSvg>\n </div>\n <div className=\"pdf-header-desc\">\n <h2>{t(mdmsConfigResult.pdfHeader)}</h2>\n <p>{t(mdmsConfigResult.pdfDesc)}</p>\n </div>\n </div>\n <div className=\"download-icon\">\n <DownloadImgIcon />\n </div>\n </div>\n </div>\n )}\n {videoPlay && (\n <div className=\"how-it-works-video-play\">\n <div className=\"close-button\">\n <CloseSvg onClick={onClose}></CloseSvg>\n </div>\n <video width={500} height={500} controls autoPlay>\n <source src={vidSrc} type=\"video/mp4\"></source>\n </video>\n </div>\n )}\n </div>\n </Fragment>\n );\n};\n\nexport default HowItWorks;\n","import { CardText, CardLabelError, FormStep } from \"@egovernments/digit-ui-components\";\nimport React, { Fragment, useState } from \"react\";\nimport useInterval from \"../../../hooks/useInterval\";\nimport { OTPInput } from \"@egovernments/digit-ui-react-components\";\n\nconst SelectOtp = ({ config, otp, onOtpChange, onResend, onSelect, t, error, userType = \"citizen\", canSubmit }) => {\n const [timeLeft, setTimeLeft] = useState(30);\n\n useInterval(\n () => {\n setTimeLeft(timeLeft - 1);\n },\n timeLeft > 0 ? 1000 : null\n );\n\n const handleResendOtp = () => {\n onResend();\n setTimeLeft(2);\n };\n\n if (userType === \"employee\") {\n return (\n <Fragment>\n <OTPInput length={6} onChange={onOtpChange} value={otp} />\n {timeLeft > 0 ? (\n <CardText>{`${t(\"CS_RESEND_ANOTHER_OTP\")} ${timeLeft} ${t(\"CS_RESEND_SECONDS\")}`}</CardText>\n ) : (\n <p className=\"card-text-button resend-otp\" onClick={handleResendOtp}>\n {t(\"CS_RESEND_OTP\")}\n </p>\n )}\n {!error && <CardLabelError>{t(\"CS_INVALID_OTP\")}</CardLabelError>}\n </Fragment>\n );\n }\n\n return (\n <FormStep onSelect={onSelect} config={config} t={t} isDisabled={!(otp?.length === 6 && canSubmit)}>\n <OTPInput length={6} onChange={onOtpChange} value={otp} />\n {timeLeft > 0 ? (\n <CardText>{`${t(\"CS_RESEND_ANOTHER_OTP\")} ${timeLeft} ${t(\"CS_RESEND_SECONDS\")}`}</CardText>\n ) : (\n <p className=\"card-text-button\" onClick={handleResendOtp}>\n {t(\"CS_RESEND_OTP\")}\n </p>\n )}\n {!error && <CardLabelError>{t(\"CS_INVALID_OTP\")}</CardLabelError>}\n </FormStep>\n );\n};\n\nexport default SelectOtp;\n","export const loginSteps = [\n {\n texts: {\n header: \"CS_LOGIN_PROVIDE_MOBILE_NUMBER\",\n cardText: \"CS_LOGIN_TEXT\",\n nextText: \"CS_COMMONS_NEXT\",\n submitBarLabel: \"CS_COMMONS_NEXT\",\n },\n inputs: [\n {\n label: \"CORE_COMMON_MOBILE_NUMBER\",\n type: \"text\",\n name: \"mobileNumber\",\n error: \"ERR_HRMS_INVALID_MOB_NO\",\n validation: {\n required: true,\n minlength: 10,\n maxlength: 10,\n },\n },\n ],\n },\n {\n texts: {\n header: \"CS_LOGIN_OTP\",\n cardText: \"CS_LOGIN_OTP_TEXT\",\n nextText: \"CS_COMMONS_NEXT\",\n submitBarLabel: \"CS_COMMONS_NEXT\",\n },\n },\n {\n texts: {\n header: \"CS_LOGIN_PROVIDE_NAME\",\n cardText: \"CS_LOGIN_NAME_TEXT\",\n nextText: \"CS_COMMONS_NEXT\",\n submitBarLabel: \"CS_COMMONS_NEXT\",\n },\n inputs: [\n {\n label: \"CORE_COMMON_NAME\",\n type: \"text\",\n name: \"name\",\n error: \"CORE_COMMON_NAME_VALIDMSG\",\n validation: {\n required: true,\n minlength: 1,\n maxlength: 50,\n // pattern: /^[^{0-9}^\\$\\\"<>?\\\\\\\\~!@#$%^()+={}\\[\\]*,/_:;“”‘’]{1,50}$/i,\n // pattern: /^(?!\\s)[^{0-9}^\\$\\\"<>?\\\\\\\\~!@#$%^()+={}\\[\\]*,/_:;“”‘’]{1,50}(?!\\s)$/i\n pattern: \"^[A-Za-z]+( [A-Za-z]+)*$\",\n },\n },\n ],\n },\n];\n","import { InputCard, TextBlock, FieldV1, LinkLabel } from \"@egovernments/digit-ui-components\";\nimport React, { useMemo, useState } from \"react\";\n\nconst SelectMobileNumber = ({ t, onSelect, mobileNumber,emailId, onMobileChange,onEmailChange, config, canSubmit }) => {\n const [isEmail, setIsEmail] = useState(emailId? true : false);\n const [error, setError] = useState(\"\");\n\n const core_mobile_config = window?.globalConfigs?.getConfig(\"CORE_MOBILE_CONFIGS\") || {};\n const EMAIL_REGEX = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n const rawPattern = core_mobile_config?.mobileNumberPattern || \"^\\\\d+$\";\n const mobileNumberPattern = new RegExp(rawPattern);\n\n const isEmailValid = useMemo(() => EMAIL_REGEX.test(emailId), [emailId]);\n const isMobileValid = useMemo(() => mobileNumberPattern.test(mobileNumber || \"\"), [mobileNumber, mobileNumberPattern]);\n\n const handleSubmit = () => {\n if (isEmail) {\n if (!isEmailValid) {\n setError(t(\"ERR_INVALID_EMAIL\"));\n return;\n }\n onSelect({ userName: emailId });\n } else {\n if (!isMobileValid) {\n setError(t(\"ERR_INVALID_MOBILE_NUMBER\"));\n return;\n }\n onSelect({ mobileNumber });\n }\n };\n\n const handleChange = (e) => {\n const value = e.target.value;\n setError(\"\");\n if (isEmail) {\n onEmailChange(e)\n if (value && !EMAIL_REGEX.test(value)) setError(t(\"ERR_INVALID_EMAIL\"));\n } else {\n onMobileChange(e);\n if (value && !mobileNumberPattern.test(value)) setError(t(\"ERR_INVALID_MOBILE_NUMBER\"));\n }\n };\n\n const switchMode = () => {\n setIsEmail(!isEmail);\n setError(\"\");\n if(isEmail)\n onEmailChange({ target: { value: \"\" } });\n else\n onMobileChange({ target: { value: \"\" } }); // clear mobile input\n };\n\n const isDisabled = useMemo(() => {\n return isEmail ? !(isEmailValid && canSubmit) : !(isMobileValid && canSubmit);\n }, [isEmail, isEmailValid, isMobileValid, canSubmit]);\n\n const mobileViewStyles = {\n marginLeft:\"0px\",\n userSelect: \"none\",\n color: \"inherit\", \n cursor: \"pointer\", // keeps it clickable\n textDecoration: \"underline\",\n };\n\n // Responsive label\n const linkLabel = useMemo(() => {\n if (window.innerWidth <= 768) {\n return isEmail ? t(\"LOGIN_WITH_MOBILE\") : t(\"LOGIN_WITH_EMAIL\");\n }\n return isEmail ? t(\"CS_USE_MOBILE_INSTEAD\") : t(\"CS_LOGIN_REGISTER_WITH_EMAIL\");\n }, [isEmail, t]);\n\n return (\n <InputCard\n t={t}\n texts={config?.texts}\n submit\n onNext={handleSubmit}\n isDisable={isDisabled}\n >\n <div>\n <FieldV1\n key={isEmail ? \"email\" : \"mobile\"}\n withoutLabel\n charCount\n error={error}\n onChange={handleChange}\n placeholder={isEmail ? t(\"ENTER_EMAIL_PLACEHOLDER\") : t(\"ENTER_MOBILE_PLACEHOLDER\")}\n populators={{\n name: isEmail ? \"userName\" : \"mobileNumber\",\n prefix: isEmail ? \"\" : core_mobile_config?.mobilePrefix,\n validation: {\n maxlength: isEmail ? 256 : (core_mobile_config?.mobileNumberLength || 10),\n pattern: isEmail ? EMAIL_REGEX : mobileNumberPattern,\n },\n }}\n props={{ fieldStyle: { width: \"100%\" } }}\n type=\"text\"\n value={isEmail ? emailId : mobileNumber}\n />\n </div>\n\n <div style={{ display: \"flex\", alignItems: \"center\", gap: \"1rem\", marginBottom: \"1.5rem\", marginTop: \"-24px\" }}>\n <LinkLabel style={{ display: \"inline\", ...mobileViewStyles }} onClick={switchMode}>\n {linkLabel}\n </LinkLabel>\n </div>\n </InputCard>\n );\n};\n\nexport default SelectMobileNumber;","import { FormStep } from \"@egovernments/digit-ui-components\";\nimport React from \"react\";\n\nconst SelectName = ({ config, onSelect, t, isDisabled }) => {\n return <FormStep config={config} onSelect={onSelect} t={t} isDisabled={isDisabled}></FormStep>;\n};\n\nexport default SelectName;\n","import { AppContainer, BackLink, Toast } from \"@egovernments/digit-ui-components\";\nimport React, { useEffect, useMemo, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Routes, Route, useLocation, useNavigate } from \"react-router-dom\";\nimport { loginSteps } from \"./config\";\nimport SelectMobileNumber from \"./SelectMobileNumber\";\nimport SelectName from \"./SelectName\";\nimport SelectOtp from \"./SelectOtp\";\n\nconst TYPE_REGISTER = { type: \"register\" };\nconst TYPE_LOGIN = { type: \"login\" };\nconst DEFAULT_USER = \"digit-user\";\nlet DEFAULT_REDIRECT_URL = `/${window?.contextPath || window?.globalConfigs?.getConfig(\"CONTEXT_PATH\")}/citizen`;\n\n/* set citizen details to enable backward compatible */\nconst setCitizenDetail = (userObject, token, tenantId) => {\n if (Digit.Utils.getMultiRootTenant()) {\n return;\n }\n let locale = JSON.parse(sessionStorage.getItem(\"Digit.initData\"))?.value?.selectedLanguage;\n localStorage.setItem(\"Citizen.tenant-id\", tenantId);\n localStorage.setItem(\"tenant-id\", tenantId);\n localStorage.setItem(\"citizen.userRequestObject\", JSON.stringify(userObject));\n localStorage.setItem(\"locale\", locale);\n localStorage.setItem(\"Citizen.locale\", locale);\n localStorage.setItem(\"token\", token);\n localStorage.setItem(\"Citizen.token\", token);\n localStorage.setItem(\"user-info\", JSON.stringify(userObject));\n localStorage.setItem(\"Citizen.user-info\", JSON.stringify(userObject));\n};\n\nconst getFromLocation = (state, searchParams) => {\n return state?.from || searchParams?.from || DEFAULT_REDIRECT_URL;\n};\n\nconst IndividualLogin = ({ stateCode, isUserRegistered = true }) => {\n const { t } = useTranslation();\n const location = useLocation();\n const navigate = useNavigate();\n const [user, setUser] = useState(null);\n const [error, setError] = useState(null);\n const [isOtpValid, setIsOtpValid] = useState(true);\n const [params, setParams] = useState(isUserRegistered ? {} : location?.state?.data);\n const [errorTO, setErrorTO] = useState(null);\n const searchParams = Digit.Hooks.useQueryParams();\n const [canSubmitName, setCanSubmitName] = useState(false);\n const [canSubmitOtp, setCanSubmitOtp] = useState(true);\n const [canSubmitNo, setCanSubmitNo] = useState(true);\n\n const individualServicePath = window?.globalConfigs?.getConfig(\"INDIVIDUAL_SERVICE_CONTEXT_PATH\");\n\n useEffect(() => {\n let errorTimeout;\n if (error) {\n if (errorTO) {\n clearTimeout(errorTO);\n setErrorTO(null);\n }\n errorTimeout = setTimeout(() => {\n setError(\"\");\n }, 5000);\n setErrorTO(errorTimeout);\n }\n return () => {\n errorTimeout && clearTimeout(errorTimeout);\n };\n }, [error]);\n\n useEffect(() => {\n if (!user) {\n return;\n }\n Digit.SessionStorage.set(\"citizen.userRequestObject\", user);\n Digit.UserService.setUser(user);\n setCitizenDetail(user?.info, user?.access_token, stateCode);\n const redirectPath = location.state?.from || DEFAULT_REDIRECT_URL;\n if (!Digit.ULBService.getCitizenCurrentTenant(true)) {\n navigate(\n `/${window?.contextPath}/citizen/select-location`,\n { state: { redirectBackTo: redirectPath }, replace: true }\n );\n } else {\n navigate(redirectPath, { replace: true });\n }\n }, [user]);\n\n const stepItems = useMemo(() =>\n loginSteps.map(\n (step) => {\n const texts = {};\n for (const key in step.texts) {\n texts[key] = t(step.texts[key]);\n }\n return { ...step, texts };\n },\n [loginSteps]\n )\n );\n\n const getUserType = () => \"citizen\" || Digit.UserService.getType();\n\n const handleOtpChange = (otp) => {\n setParams({ ...params, otp });\n };\n\n const handleMobileChange = (event) => {\n const { value } = event.target;\n setParams({ ...params, mobileNumber: value });\n };\n\n const handleEmailChange = (event) => {\n const { value } = event.target;\n setParams({ ...params, userName: value });\n };\n\n const selectMobileNumber = async (mobileNumber) => {\n setCanSubmitNo(false);\n setParams({ ...params, ...mobileNumber });\n const data = {\n ...mobileNumber,\n tenantId: stateCode,\n userType: getUserType(),\n };\n\n if (isUserRegistered) {\n // LOGIN FLOW: Send OTP\n const [res, err] = await sendOtp({ otp: { ...data, ...TYPE_LOGIN } });\n if (!err) {\n setCanSubmitNo(true);\n navigate(`otp`, { \n state: { \n from: getFromLocation(location.state, searchParams) \n }, \n replace: true \n });\n return;\n } else {\n setCanSubmitNo(true);\n setError(t(\"USER_NOT_REGISTERED\") || \"User not registered.\");\n }\n } else {\n // REGISTER FLOW: Go directly to name screen (no OTP needed yet)\n setCanSubmitNo(true);\n navigate(`name`, {\n state: {\n from: getFromLocation(location.state, searchParams),\n data: data\n },\n replace: true\n });\n }\n };\n\n const selectName = async (name) => {\n setCanSubmitName(true);\n\n const userData = {\n ...params,\n ...name,\n };\n\n setParams(userData);\n\n // Call the Individual service registration API\n const registerURL = `${individualServicePath}/v1/_register`;\n\n const requestData = {\n IndividualRegister: {\n tenantId: stateCode,\n name: userData.name,\n emailId: userData.userName || \"\",\n mobileNumber: userData.mobileNumber || \"\",\n requestType: \"Register\"\n }\n };\n\n try {\n const registerResponse = await Digit.CustomService.getResponse({\n url: registerURL,\n body: requestData,\n useCache: false,\n method: \"POST\",\n userService: false,\n auth: false,\n params: {}\n });\n\n if (!registerResponse) {\n throw new Error(\"Registration API failed\");\n }\n\n setCanSubmitName(false);\n // After registration, go to OTP screen\n navigate(`otp`, {\n state: {\n from: getFromLocation(location.state, searchParams)\n },\n replace: true\n });\n\n } catch (err) {\n console.error(\"Registration error:\", err);\n setCanSubmitName(false);\n setError(t(\"REGISTRATION_FAILED\") || \"Registration failed. Please try again.\");\n }\n };\n\n const selectOtp = async () => {\n try {\n setIsOtpValid(true);\n setCanSubmitOtp(false);\n const { mobileNumber, otp, userName } = params;\n\n // Authenticate with OTP\n const requestData = {\n username: mobileNumber || userName,\n password: otp,\n tenantId: stateCode,\n userType: getUserType(),\n };\n\n const { ResponseInfo, UserRequest: info, ...tokens } = await Digit.UserService.authenticate(requestData);\n\n if (window?.globalConfigs?.getConfig(\"ENABLE_SINGLEINSTANCE\")) {\n info.tenantId = Digit.ULBService.getStateId();\n }\n\n setUser({ info, ...tokens });\n\n } catch (err) {\n setCanSubmitOtp(true);\n setIsOtpValid(false);\n setError(t(\"INVALID_OTP\") || \"Invalid OTP\");\n }\n };\n\n const resendOtp = async () => {\n if (!isUserRegistered) {\n // For registration flow, user needs to complete registration first\n setError(t(\"PLEASE_COMPLETE_REGISTRATION\") || \"Please enter the OTP sent during registration.\");\n } else {\n // For login flow, resend OTP\n const { mobileNumber, userName } = params;\n const data = {\n mobileNumber,\n userName,\n tenantId: stateCode,\n userType: getUserType(),\n };\n const [res, err] = await sendOtp({ otp: { ...data, ...TYPE_LOGIN } });\n if (err) {\n setError(t(\"OTP_RESEND_ERROR\") || \"Failed to resend OTP\");\n }\n }\n };\n\n const sendOtp = async (data) => {\n try {\n const res = await Digit.UserService.sendOtp(data, stateCode);\n return [res, null];\n } catch (err) {\n return [null, err];\n }\n };\n\n return (\n <div className=\"citizen-form-wrapper citizen-form-center\">\n <AppContainer>\n {location.pathname.includes(\"login\") ? null : <BackLink onClick={() => window.history.back()} />}\n <Routes>\n <Route\n path=\"/\" \n element={\n <SelectMobileNumber\n onSelect={selectMobileNumber}\n config={stepItems[0]}\n mobileNumber={params.mobileNumber || \"\"}\n emailId={params.userName || \"\"}\n onMobileChange={handleMobileChange}\n onEmailChange={handleEmailChange}\n canSubmit={canSubmitNo}\n showRegisterLink={isUserRegistered}\n t={t}\n />\n } \n />\n <Route \n path=\"otp\" \n element={\n <SelectOtp\n config={{ \n ...stepItems[1], \n texts: { \n ...stepItems[1].texts, \n cardText: `${stepItems[1].texts.cardText} ${params.mobileNumber || params.userName || \"\"}` \n } \n }}\n onOtpChange={handleOtpChange}\n onResend={resendOtp}\n onSelect={selectOtp}\n otp={params.otp}\n error={isOtpValid}\n canSubmit={canSubmitOtp}\n t={t}\n />\n } \n />\n <Route \n path=\"name\" \n element={\n <SelectName \n config={stepItems[2]} \n onSelect={selectName} \n t={t} \n isDisabled={canSubmitName} \n />\n } \n />\n </Routes>\n {error && <Toast type={\"error\"} label={error} onClose={() => setError(null)} />}\n </AppContainer>\n </div>\n );\n};\n\nexport default IndividualLogin;","import { AppContainer, BackLink, Toast } from \"@egovernments/digit-ui-components\";\nimport React, { useEffect, useMemo, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Routes, Route, useLocation, useNavigate } from \"react-router-dom\";\nimport { loginSteps } from \"./config\";\nimport SelectMobileNumber from \"./SelectMobileNumber\";\nimport SelectName from \"./SelectName\";\nimport SelectOtp from \"./SelectOtp\";\nimport IndividualLogin from \"./IndividualLogin\";\n\nconst TYPE_REGISTER = { type: \"register\" };\nconst TYPE_LOGIN = { type: \"login\" };\nconst DEFAULT_USER = \"digit-user\";\nconst DEFAULT_REDIRECT_URL = `/${window?.contextPath}/citizen`;\n\n/* set citizen details to enable backward compatible */\nconst setCitizenDetail = (userObject, token, tenantId) => {\n if (Digit.Utils.getMultiRootTenant()) {\n return;\n }\n let locale = JSON.parse(sessionStorage.getItem(\"Digit.initData\"))?.value?.selectedLanguage;\n localStorage.setItem(\"Citizen.tenant-id\", tenantId);\n localStorage.setItem(\"tenant-id\", tenantId);\n localStorage.setItem(\"citizen.userRequestObject\", JSON.stringify(userObject));\n localStorage.setItem(\"locale\", locale);\n localStorage.setItem(\"Citizen.locale\", locale);\n localStorage.setItem(\"token\", token);\n localStorage.setItem(\"Citizen.token\", token);\n localStorage.setItem(\"user-info\", JSON.stringify(userObject));\n localStorage.setItem(\"Citizen.user-info\", JSON.stringify(userObject));\n};\n\nconst getFromLocation = (state, searchParams) => {\n return state?.from || searchParams?.from || DEFAULT_REDIRECT_URL;\n};\n\nconst Login = ({ stateCode, isUserRegistered = true }) => {\n // Check if individual should be used for login\n const useAnIndividual = window?.globalConfigs?.getConfig(\"USE_INDIVIDUAL_MODEL\");\n const individualServicePath = window?.globalConfigs?.getConfig(\"INDIVIDUAL_SERVICE_CONTEXT_PATH\");\n\n // If useAnIndividual exists, use IndividualLogin component\n if (useAnIndividual && individualServicePath) {\n return <IndividualLogin stateCode={stateCode} isUserRegistered={isUserRegistered} />;\n }\n\n // Otherwise, continue with standard login flow\n const { t } = useTranslation();\n const location = useLocation();\n const navigate = useNavigate(); // Replaced useHistory with useNavigate\n // useRouteMatch is removed in v6. Path matching is handled by Routes/Route.\n // `path` and `url` were used for constructing sub-routes. In v6, paths are often relative.\n const [user, setUser] = useState(null);\n const [error, setError] = useState(null);\n const [isOtpValid, setIsOtpValid] = useState(true);\n const [params, setParams] = useState(isUserRegistered ? {} : location?.state?.data);\n const [errorTO, setErrorTO] = useState(null);\n const searchParams = Digit.Hooks.useQueryParams();\n const [canSubmitName, setCanSubmitName] = useState(false);\n const [canSubmitOtp, setCanSubmitOtp] = useState(true);\n const [canSubmitNo, setCanSubmitNo] = useState(true);\n\n useEffect(() => {\n let errorTimeout;\n if (error) {\n if (errorTO) {\n clearTimeout(errorTO);\n setErrorTO(null);\n }\n errorTimeout = setTimeout(() => {\n setError(\"\");\n }, 5000);\n setErrorTO(errorTimeout);\n }\n return () => {\n errorTimeout && clearTimeout(errorTimeout);\n };\n }, [error]);\n\n useEffect(() => {\n if (!user) {\n return;\n }\n Digit.SessionStorage.set(\"citizen.userRequestObject\", user);\n Digit.UserService.setUser(user);\n setCitizenDetail(user?.info, user?.access_token, stateCode);\n const redirectPath = location.state?.from || DEFAULT_REDIRECT_URL;\n if (!Digit.ULBService.getCitizenCurrentTenant(true)) {\n navigate(\n `/${window?.contextPath}/citizen/select-location`,\n { state: { redirectBackTo: redirectPath }, replace: true }\n );\n } else {\n navigate(redirectPath, { replace: true });\n }\n }, [user]);\n\n const stepItems = useMemo(\n () =>\n loginSteps.map((step) => {\n const texts = {};\n for (const key in step.texts) {\n texts[key] = t(step.texts[key]);\n }\n return { ...step, texts };\n }),\n [loginSteps]\n );\n\n const getUserType = () => \"citizen\" || Digit.UserService.getType();\n\n const handleOtpChange = (otp) => {\n setParams({ ...params, otp });\n };\n\n const handleMobileChange = (event) => {\n const { value } = event.target;\n setParams({ ...params, mobileNumber: value });\n };\n\n const selectMobileNumber = async (mobileNumber) => {\n setCanSubmitNo(false);\n setParams({ ...params, ...mobileNumber });\n const data = {\n ...mobileNumber,\n tenantId: stateCode,\n userType: getUserType(),\n };\n if (isUserRegistered) {\n const [res, err] = await sendOtp({ otp: { ...data, ...TYPE_LOGIN } });\n if (!err) {\n setCanSubmitNo(true);\n // Use relative path for navigation, `.` means current base path\n navigate(`otp`, { state: { from: getFromLocation(location.state, searchParams), role: location.state?.role }, replace: true });\n return;\n } else {\n setCanSubmitNo(true);\n if (!(location.state && location.state.role === \"FSM_DSO\")) {\n // Use absolute path if navigating outside the current route's scope, or relative if it's a sibling route\n navigate(`/${window?.contextPath}/citizen/register/name`, { state: { from: getFromLocation(location.state, searchParams), data: data } });\n }\n }\n if (location.state?.role) {\n setCanSubmitNo(true);\n setError(location.state?.role === \"FSM_DSO\" ? t(\"ES_ERROR_DSO_LOGIN\") : \"User not registered.\");\n }\n } else {\n const [res, err] = await sendOtp({ otp: { ...data, ...TYPE_REGISTER } });\n if (!err) {\n setCanSubmitNo(true);\n navigate(`otp`, { state: { from: getFromLocation(location.state, searchParams) }, replace: true });\n return;\n }\n setCanSubmitNo(true);\n }\n };\n\n const selectName = async (name) => {\n const data = {\n ...params,\n tenantId: stateCode,\n userType: getUserType(),\n ...name,\n };\n setParams({ ...params, ...name });\n setCanSubmitName(true);\n const [res, err] = await sendOtp({ otp: { ...data, ...TYPE_REGISTER } });\n if (res) {\n setCanSubmitName(false);\n navigate(`otp`, { state: { from: getFromLocation(location.state, searchParams) }, replace: true });\n } else {\n setCanSubmitName(false);\n }\n };\n\n const selectOtp = async () => {\n try {\n setIsOtpValid(true);\n setCanSubmitOtp(false);\n const { mobileNumber, otp, name } = params;\n if (isUserRegistered) {\n const requestData = {\n username: mobileNumber,\n password: otp,\n tenantId: stateCode,\n userType: getUserType(),\n };\n const { ResponseInfo, UserRequest: info, ...tokens } = await Digit.UserService.authenticate(requestData);\n\n if (location.state?.role) {\n const roleInfo = info.roles.find((userRole) => userRole.code === location.state.role);\n if (!roleInfo || !roleInfo.code) {\n setError(t(\"ES_ERROR_USER_NOT_PERMITTED\"));\n // navigate also handles timeouts for redirects\n setTimeout(() => navigate(DEFAULT_REDIRECT_URL, { replace: true }), 5000);\n return;\n }\n }\n if (window?.globalConfigs?.getConfig(\"ENABLE_SINGLEINSTANCE\")) {\n info.tenantId = Digit.ULBService.getStateId();\n }\n\n setUser({ info, ...tokens });\n } else if (!isUserRegistered) {\n const requestData = {\n name,\n username: mobileNumber,\n otpReference: otp,\n tenantId: stateCode,\n };\n\n const { ResponseInfo, UserRequest: info, ...tokens } = await Digit.UserService.registerUser(requestData, stateCode);\n\n if (window?.globalConfigs?.getConfig(\"ENABLE_SINGLEINSTANCE\")) {\n info.tenantId = Digit.ULBService.getStateId();\n }\n\n setUser({ info, ...tokens });\n }\n } catch (err) {\n setCanSubmitOtp(true);\n setIsOtpValid(false);\n }\n };\n\n const resendOtp = async () => {\n const { mobileNumber } = params;\n const data = {\n mobileNumber,\n tenantId: stateCode,\n userType: getUserType(),\n };\n if (!isUserRegistered) {\n const [res, err] = await sendOtp({ otp: { ...data, ...TYPE_REGISTER } });\n } else if (isUserRegistered) {\n const [res, err] = await sendOtp({ otp: { ...data, ...TYPE_LOGIN } });\n }\n };\n\n const sendOtp = async (data) => {\n try {\n const res = await Digit.UserService.sendOtp(data, stateCode);\n return [res, null];\n } catch (err) {\n return [null, err];\n }\n };\n\n const isCitizenDesktop = window.location.href.includes(\"citizen\") && !window.Digit.Utils.browser.isMobile();\n\n return (\n <div className={`citizen-form-wrapper${isCitizenDesktop ? ' citizen-form-center' : ''}`}>\n <AppContainer>\n {/* BackLink now uses navigate(-1) for going back */}\n {location.pathname.includes(\"login\") ? null : <BackLink onClick={() => navigate(-1)} />}\n <Routes> {/* Replaced Switch with Routes */}\n {/* Route path is now relative to the parent <Routes> */}\n <Route\n path=\"/\" // This will match the base path where this component is rendered (e.g., /citizen/login if mounted there)\n element={\n <SelectMobileNumber\n onSelect={selectMobileNumber}\n config={stepItems[0]}\n mobileNumber={params.mobileNumber || \"\"}\n onMobileChange={handleMobileChange}\n canSubmit={canSubmitNo}\n showRegisterLink={isUserRegistered && !location.state?.role}\n t={t}\n />\n }\n />\n <Route\n path=\"otp\" // This will match /path/to/current/route/otp\n element={\n <SelectOtp\n config={{ ...stepItems[1], texts: { ...stepItems[1].texts, cardText: `${stepItems[1].texts.cardText} ${params.mobileNumber || \"\"}` } }}\n onOtpChange={handleOtpChange}\n onResend={resendOtp}\n onSelect={selectOtp}\n otp={params.otp}\n error={isOtpValid}\n canSubmit={canSubmitOtp}\n t={t}\n />\n }\n />\n <Route\n path=\"name\" // This will match /path/to/current/route/name\n element={<SelectName config={stepItems[2]} onSelect={selectName} t={t} isDisabled={canSubmitName} />}\n />\n {error && <Toast type={\"error\"} label={error} onClose={() => setError(null)} />}\n </Routes>\n </AppContainer>\n </div>\n );\n};\n\nexport default Login;","import React from 'react';\n\nvar isCheckBoxInput = (element) => element.type === 'checkbox';\n\nvar isDateObject = (value) => value instanceof Date;\n\nvar isNullOrUndefined = (value) => value == null;\n\nconst isObjectType = (value) => typeof value === 'object';\nvar isObject = (value) => !isNullOrUndefined(value) &&\n !Array.isArray(value) &&\n isObjectType(value) &&\n !isDateObject(value);\n\nvar getEventValue = (event) => isObject(event) && event.target\n ? isCheckBoxInput(event.target)\n ? event.target.checked\n : event.target.value\n : event;\n\nvar getNodeParentName = (name) => name.substring(0, name.search(/\\.\\d+(\\.|$)/)) || name;\n\nvar isNameInFieldArray = (names, name) => names.has(getNodeParentName(name));\n\nvar isPlainObject = (tempObject) => {\n const prototypeCopy = tempObject.constructor && tempObject.constructor.prototype;\n return (isObject(prototypeCopy) && prototypeCopy.hasOwnProperty('isPrototypeOf'));\n};\n\nvar isWeb = typeof window !== 'undefined' &&\n typeof window.HTMLElement !== 'undefined' &&\n typeof document !== 'undefined';\n\nfunction cloneObject(data) {\n let copy;\n const isArray = Array.isArray(data);\n if (data instanceof Date) {\n copy = new Date(data);\n }\n else if (data instanceof Set) {\n copy = new Set(data);\n }\n else if (!(isWeb && (data instanceof Blob || data instanceof FileList)) &&\n (isArray || isObject(data))) {\n copy = isArray ? [] : {};\n if (!isArray && !isPlainObject(data)) {\n copy = data;\n }\n else {\n for (const key in data) {\n if (data.hasOwnProperty(key)) {\n copy[key] = cloneObject(data[key]);\n }\n }\n }\n }\n else {\n return data;\n }\n return copy;\n}\n\nvar compact = (value) => Array.isArray(value) ? value.filter(Boolean) : [];\n\nvar isUndefined = (val) => val === undefined;\n\nvar get = (object, path, defaultValue) => {\n if (!path || !isObject(object)) {\n return defaultValue;\n }\n const result = compact(path.split(/[,[\\].]+?/)).reduce((result, key) => isNullOrUndefined(result) ? result : result[key], object);\n return isUndefined(result) || result === object\n ? isUndefined(object[path])\n ? defaultValue\n : object[path]\n : result;\n};\n\nvar isBoolean = (value) => typeof value === 'boolean';\n\nvar isKey = (value) => /^\\w*$/.test(value);\n\nvar stringToPath = (input) => compact(input.replace(/[\"|']|\\]/g, '').split(/\\.|\\[/));\n\nvar set = (object, path, value) => {\n let index = -1;\n const tempPath = isKey(path) ? [path] : stringToPath(path);\n const length = tempPath.length;\n const lastIndex = length - 1;\n while (++index < length) {\n const key = tempPath[index];\n let newValue = value;\n if (index !== lastIndex) {\n const objValue = object[key];\n newValue =\n isObject(objValue) || Array.isArray(objValue)\n ? objValue\n : !isNaN(+tempPath[index + 1])\n ? []\n : {};\n }\n if (key === '__proto__') {\n return;\n }\n object[key] = newValue;\n object = object[key];\n }\n return object;\n};\n\nconst EVENTS = {\n BLUR: 'blur',\n FOCUS_OUT: 'focusout',\n CHANGE: 'change',\n};\nconst VALIDATION_MODE = {\n onBlur: 'onBlur',\n onChange: 'onChange',\n onSubmit: 'onSubmit',\n onTouched: 'onTouched',\n all: 'all',\n};\nconst INPUT_VALIDATION_RULES = {\n max: 'max',\n min: 'min',\n maxLength: 'maxLength',\n minLength: 'minLength',\n pattern: 'pattern',\n required: 'required',\n validate: 'validate',\n};\n\nconst HookFormContext = React.createContext(null);\n/**\n * This custom hook allows you to access the form context. useFormContext is intended to be used in deeply nested structures, where it would become inconvenient to pass the context as a prop. To be used with {@link FormProvider}.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useformcontext) • [Demo](https://codesandbox.io/s/react-hook-form-v7-form-context-ytudi)\n *\n * @returns return all useForm methods\n *\n * @example\n * ```tsx\n * function App() {\n * const methods = useForm();\n * const onSubmit = data => console.log(data);\n *\n * return (\n * <FormProvider {...methods} >\n * <form onSubmit={methods.handleSubmit(onSubmit)}>\n * <NestedInput />\n * <input type=\"submit\" />\n * </form>\n * </FormProvider>\n * );\n * }\n *\n * function NestedInput() {\n * const { register } = useFormContext(); // retrieve all hook methods\n * return <input {...register(\"test\")} />;\n * }\n * ```\n */\nconst useFormContext = () => React.useContext(HookFormContext);\n/**\n * A provider component that propagates the `useForm` methods to all children components via [React Context](https://reactjs.org/docs/context.html) API. To be used with {@link useFormContext}.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useformcontext) • [Demo](https://codesandbox.io/s/react-hook-form-v7-form-context-ytudi)\n *\n * @param props - all useForm methods\n *\n * @example\n * ```tsx\n * function App() {\n * const methods = useForm();\n * const onSubmit = data => console.log(data);\n *\n * return (\n * <FormProvider {...methods} >\n * <form onSubmit={methods.handleSubmit(onSubmit)}>\n * <NestedInput />\n * <input type=\"submit\" />\n * </form>\n * </FormProvider>\n * );\n * }\n *\n * function NestedInput() {\n * const { register } = useFormContext(); // retrieve all hook methods\n * return <input {...register(\"test\")} />;\n * }\n * ```\n */\nconst FormProvider = (props) => {\n const { children, ...data } = props;\n return (React.createElement(HookFormContext.Provider, { value: data }, children));\n};\n\nvar getProxyFormState = (formState, control, localProxyFormState, isRoot = true) => {\n const result = {\n defaultValues: control._defaultValues,\n };\n for (const key in formState) {\n Object.defineProperty(result, key, {\n get: () => {\n const _key = key;\n if (control._proxyFormState[_key] !== VALIDATION_MODE.all) {\n control._proxyFormState[_key] = !isRoot || VALIDATION_MODE.all;\n }\n localProxyFormState && (localProxyFormState[_key] = true);\n return formState[_key];\n },\n });\n }\n return result;\n};\n\nvar isEmptyObject = (value) => isObject(value) && !Object.keys(value).length;\n\nvar shouldRenderFormState = (formStateData, _proxyFormState, updateFormState, isRoot) => {\n updateFormState(formStateData);\n const { name, ...formState } = formStateData;\n return (isEmptyObject(formState) ||\n Object.keys(formState).length >= Object.keys(_proxyFormState).length ||\n Object.keys(formState).find((key) => _proxyFormState[key] ===\n (!isRoot || VALIDATION_MODE.all)));\n};\n\nvar convertToArrayPayload = (value) => (Array.isArray(value) ? value : [value]);\n\nvar shouldSubscribeByName = (name, signalName, exact) => !name ||\n !signalName ||\n name === signalName ||\n convertToArrayPayload(name).some((currentName) => currentName &&\n (exact\n ? currentName === signalName\n : currentName.startsWith(signalName) ||\n signalName.startsWith(currentName)));\n\nfunction useSubscribe(props) {\n const _props = React.useRef(props);\n _props.current = props;\n React.useEffect(() => {\n const subscription = !props.disabled &&\n _props.current.subject &&\n _props.current.subject.subscribe({\n next: _props.current.next,\n });\n return () => {\n subscription && subscription.unsubscribe();\n };\n }, [props.disabled]);\n}\n\n/**\n * This custom hook allows you to subscribe to each form state, and isolate the re-render at the custom hook level. It has its scope in terms of form state subscription, so it would not affect other useFormState and useForm. Using this hook can reduce the re-render impact on large and complex form application.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useformstate) • [Demo](https://codesandbox.io/s/useformstate-75xly)\n *\n * @param props - include options on specify fields to subscribe. {@link UseFormStateReturn}\n *\n * @example\n * ```tsx\n * function App() {\n * const { register, handleSubmit, control } = useForm({\n * defaultValues: {\n * firstName: \"firstName\"\n * }});\n * const { dirtyFields } = useFormState({\n * control\n * });\n * const onSubmit = (data) => console.log(data);\n *\n * return (\n * <form onSubmit={handleSubmit(onSubmit)}>\n * <input {...register(\"firstName\")} placeholder=\"First Name\" />\n * {dirtyFields.firstName && <p>Field is dirty.</p>}\n * <input type=\"submit\" />\n * </form>\n * );\n * }\n * ```\n */\nfunction useFormState(props) {\n const methods = useFormContext();\n const { control = methods.control, disabled, name, exact } = props || {};\n const [formState, updateFormState] = React.useState(control._formState);\n const _mounted = React.useRef(true);\n const _localProxyFormState = React.useRef({\n isDirty: false,\n isLoading: false,\n dirtyFields: false,\n touchedFields: false,\n validatingFields: false,\n isValidating: false,\n isValid: false,\n errors: false,\n });\n const _name = React.useRef(name);\n _name.current = name;\n useSubscribe({\n disabled,\n next: (value) => _mounted.current &&\n shouldSubscribeByName(_name.current, value.name, exact) &&\n shouldRenderFormState(value, _localProxyFormState.current, control._updateFormState) &&\n updateFormState({\n ...control._formState,\n ...value,\n }),\n subject: control._subjects.state,\n });\n React.useEffect(() => {\n _mounted.current = true;\n _localProxyFormState.current.isValid && control._updateValid(true);\n return () => {\n _mounted.current = false;\n };\n }, [control]);\n return getProxyFormState(formState, control, _localProxyFormState.current, false);\n}\n\nvar isString = (value) => typeof value === 'string';\n\nvar generateWatchOutput = (names, _names, formValues, isGlobal, defaultValue) => {\n if (isString(names)) {\n isGlobal && _names.watch.add(names);\n return get(formValues, names, defaultValue);\n }\n if (Array.isArray(names)) {\n return names.map((fieldName) => (isGlobal && _names.watch.add(fieldName), get(formValues, fieldName)));\n }\n isGlobal && (_names.watchAll = true);\n return formValues;\n};\n\n/**\n * Custom hook to subscribe to field change and isolate re-rendering at the component level.\n *\n * @remarks\n *\n * [API](https://react-hook-form.com/docs/usewatch) • [Demo](https://codesandbox.io/s/react-hook-form-v7-ts-usewatch-h9i5e)\n *\n * @example\n * ```tsx\n * const { control } = useForm();\n * const values = useWatch({\n * name: \"fieldName\"\n * control,\n * })\n * ```\n */\nfunction useWatch(props) {\n const methods = useFormContext();\n const { control = methods.control, name, defaultValue, disabled, exact, } = props || {};\n const _name = React.useRef(name);\n _name.current = name;\n useSubscribe({\n disabled,\n subject: control._subjects.values,\n next: (formState) => {\n if (shouldSubscribeByName(_name.current, formState.name, exact)) {\n updateValue(cloneObject(generateWatchOutput(_name.current, control._names, formState.values || control._formValues, false, defaultValue)));\n }\n },\n });\n const [value, updateValue] = React.useState(control._getWatch(name, defaultValue));\n React.useEffect(() => control._removeUnmounted());\n return value;\n}\n\n/**\n * Custom hook to work with controlled component, this function provide you with both form and field level state. Re-render is isolated at the hook level.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/usecontroller) • [Demo](https://codesandbox.io/s/usecontroller-0o8px)\n *\n * @param props - the path name to the form field value, and validation rules.\n *\n * @returns field properties, field and form state. {@link UseControllerReturn}\n *\n * @example\n * ```tsx\n * function Input(props) {\n * const { field, fieldState, formState } = useController(props);\n * return (\n * <div>\n * <input {...field} placeholder={props.name} />\n * <p>{fieldState.isTouched && \"Touched\"}</p>\n * <p>{formState.isSubmitted ? \"submitted\" : \"\"}</p>\n * </div>\n * );\n * }\n * ```\n */\nfunction useController(props) {\n const methods = useFormContext();\n const { name, disabled, control = methods.control, shouldUnregister } = props;\n const isArrayField = isNameInFieldArray(control._names.array, name);\n const value = useWatch({\n control,\n name,\n defaultValue: get(control._formValues, name, get(control._defaultValues, name, props.defaultValue)),\n exact: true,\n });\n const formState = useFormState({\n control,\n name,\n exact: true,\n });\n const _registerProps = React.useRef(control.register(name, {\n ...props.rules,\n value,\n ...(isBoolean(props.disabled) ? { disabled: props.disabled } : {}),\n }));\n React.useEffect(() => {\n const _shouldUnregisterField = control._options.shouldUnregister || shouldUnregister;\n const updateMounted = (name, value) => {\n const field = get(control._fields, name);\n if (field && field._f) {\n field._f.mount = value;\n }\n };\n updateMounted(name, true);\n if (_shouldUnregisterField) {\n const value = cloneObject(get(control._options.defaultValues, name));\n set(control._defaultValues, name, value);\n if (isUndefined(get(control._formValues, name))) {\n set(control._formValues, name, value);\n }\n }\n return () => {\n (isArrayField\n ? _shouldUnregisterField && !control._state.action\n : _shouldUnregisterField)\n ? control.unregister(name)\n : updateMounted(name, false);\n };\n }, [name, control, isArrayField, shouldUnregister]);\n React.useEffect(() => {\n if (get(control._fields, name)) {\n control._updateDisabledField({\n disabled,\n fields: control._fields,\n name,\n value: get(control._fields, name)._f.value,\n });\n }\n }, [disabled, name, control]);\n return {\n field: {\n name,\n value,\n ...(isBoolean(disabled) || formState.disabled\n ? { disabled: formState.disabled || disabled }\n : {}),\n onChange: React.useCallback((event) => _registerProps.current.onChange({\n target: {\n value: getEventValue(event),\n name: name,\n },\n type: EVENTS.CHANGE,\n }), [name]),\n onBlur: React.useCallback(() => _registerProps.current.onBlur({\n target: {\n value: get(control._formValues, name),\n name: name,\n },\n type: EVENTS.BLUR,\n }), [name, control]),\n ref: React.useCallback((elm) => {\n const field = get(control._fields, name);\n if (field && elm) {\n field._f.ref = {\n focus: () => elm.focus(),\n select: () => elm.select(),\n setCustomValidity: (message) => elm.setCustomValidity(message),\n reportValidity: () => elm.reportValidity(),\n };\n }\n }, [control._fields, name]),\n },\n formState,\n fieldState: Object.defineProperties({}, {\n invalid: {\n enumerable: true,\n get: () => !!get(formState.errors, name),\n },\n isDirty: {\n enumerable: true,\n get: () => !!get(formState.dirtyFields, name),\n },\n isTouched: {\n enumerable: true,\n get: () => !!get(formState.touchedFields, name),\n },\n isValidating: {\n enumerable: true,\n get: () => !!get(formState.validatingFields, name),\n },\n error: {\n enumerable: true,\n get: () => get(formState.errors, name),\n },\n }),\n };\n}\n\n/**\n * Component based on `useController` hook to work with controlled component.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/usecontroller/controller) • [Demo](https://codesandbox.io/s/react-hook-form-v6-controller-ts-jwyzw) • [Video](https://www.youtube.com/watch?v=N2UNk_UCVyA)\n *\n * @param props - the path name to the form field value, and validation rules.\n *\n * @returns provide field handler functions, field and form state.\n *\n * @example\n * ```tsx\n * function App() {\n * const { control } = useForm<FormValues>({\n * defaultValues: {\n * test: \"\"\n * }\n * });\n *\n * return (\n * <form>\n * <Controller\n * control={control}\n * name=\"test\"\n * render={({ field: { onChange, onBlur, value, ref }, formState, fieldState }) => (\n * <>\n * <input\n * onChange={onChange} // send value to hook form\n * onBlur={onBlur} // notify when input is touched\n * value={value} // return updated value\n * ref={ref} // set ref for focus management\n * />\n * <p>{formState.isSubmitted ? \"submitted\" : \"\"}</p>\n * <p>{fieldState.isTouched ? \"touched\" : \"\"}</p>\n * </>\n * )}\n * />\n * </form>\n * );\n * }\n * ```\n */\nconst Controller = (props) => props.render(useController(props));\n\nconst POST_REQUEST = 'post';\n/**\n * Form component to manage submission.\n *\n * @param props - to setup submission detail. {@link FormProps}\n *\n * @returns form component or headless render prop.\n *\n * @example\n * ```tsx\n * function App() {\n * const { control, formState: { errors } } = useForm();\n *\n * return (\n * <Form action=\"/api\" control={control}>\n * <input {...register(\"name\")} />\n * <p>{errors?.root?.server && 'Server error'}</p>\n * <button>Submit</button>\n * </Form>\n * );\n * }\n * ```\n */\nfunction Form(props) {\n const methods = useFormContext();\n const [mounted, setMounted] = React.useState(false);\n const { control = methods.control, onSubmit, children, action, method = POST_REQUEST, headers, encType, onError, render, onSuccess, validateStatus, ...rest } = props;\n const submit = async (event) => {\n let hasError = false;\n let type = '';\n await control.handleSubmit(async (data) => {\n const formData = new FormData();\n let formDataJson = '';\n try {\n formDataJson = JSON.stringify(data);\n }\n catch (_a) { }\n for (const name of control._names.mount) {\n formData.append(name, get(data, name));\n }\n if (onSubmit) {\n await onSubmit({\n data,\n event,\n method,\n formData,\n formDataJson,\n });\n }\n if (action) {\n try {\n const shouldStringifySubmissionData = [\n headers && headers['Content-Type'],\n encType,\n ].some((value) => value && value.includes('json'));\n const response = await fetch(action, {\n method,\n headers: {\n ...headers,\n ...(encType ? { 'Content-Type': encType } : {}),\n },\n body: shouldStringifySubmissionData ? formDataJson : formData,\n });\n if (response &&\n (validateStatus\n ? !validateStatus(response.status)\n : response.status < 200 || response.status >= 300)) {\n hasError = true;\n onError && onError({ response });\n type = String(response.status);\n }\n else {\n onSuccess && onSuccess({ response });\n }\n }\n catch (error) {\n hasError = true;\n onError && onError({ error });\n }\n }\n })(event);\n if (hasError && props.control) {\n props.control._subjects.state.next({\n isSubmitSuccessful: false,\n });\n props.control.setError('root.server', {\n type,\n });\n }\n };\n React.useEffect(() => {\n setMounted(true);\n }, []);\n return render ? (React.createElement(React.Fragment, null, render({\n submit,\n }))) : (React.createElement(\"form\", { noValidate: mounted, action: action, method: method, encType: encType, onSubmit: submit, ...rest }, children));\n}\n\nvar appendErrors = (name, validateAllFieldCriteria, errors, type, message) => validateAllFieldCriteria\n ? {\n ...errors[name],\n types: {\n ...(errors[name] && errors[name].types ? errors[name].types : {}),\n [type]: message || true,\n },\n }\n : {};\n\nvar generateId = () => {\n const d = typeof performance === 'undefined' ? Date.now() : performance.now() * 1000;\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n const r = (Math.random() * 16 + d) % 16 | 0;\n return (c == 'x' ? r : (r & 0x3) | 0x8).toString(16);\n });\n};\n\nvar getFocusFieldName = (name, index, options = {}) => options.shouldFocus || isUndefined(options.shouldFocus)\n ? options.focusName ||\n `${name}.${isUndefined(options.focusIndex) ? index : options.focusIndex}.`\n : '';\n\nvar getValidationModes = (mode) => ({\n isOnSubmit: !mode || mode === VALIDATION_MODE.onSubmit,\n isOnBlur: mode === VALIDATION_MODE.onBlur,\n isOnChange: mode === VALIDATION_MODE.onChange,\n isOnAll: mode === VALIDATION_MODE.all,\n isOnTouch: mode === VALIDATION_MODE.onTouched,\n});\n\nvar isWatched = (name, _names, isBlurEvent) => !isBlurEvent &&\n (_names.watchAll ||\n _names.watch.has(name) ||\n [..._names.watch].some((watchName) => name.startsWith(watchName) &&\n /^\\.\\w+/.test(name.slice(watchName.length))));\n\nconst iterateFieldsByAction = (fields, action, fieldsNames, abortEarly) => {\n for (const key of fieldsNames || Object.keys(fields)) {\n const field = get(fields, key);\n if (field) {\n const { _f, ...currentField } = field;\n if (_f) {\n if (_f.refs && _f.refs[0] && action(_f.refs[0], key) && !abortEarly) {\n break;\n }\n else if (_f.ref && action(_f.ref, _f.name) && !abortEarly) {\n break;\n }\n else {\n iterateFieldsByAction(currentField, action);\n }\n }\n else if (isObject(currentField)) {\n iterateFieldsByAction(currentField, action);\n }\n }\n }\n};\n\nvar updateFieldArrayRootError = (errors, error, name) => {\n const fieldArrayErrors = convertToArrayPayload(get(errors, name));\n set(fieldArrayErrors, 'root', error[name]);\n set(errors, name, fieldArrayErrors);\n return errors;\n};\n\nvar isFileInput = (element) => element.type === 'file';\n\nvar isFunction = (value) => typeof value === 'function';\n\nvar isHTMLElement = (value) => {\n if (!isWeb) {\n return false;\n }\n const owner = value ? value.ownerDocument : 0;\n return (value instanceof\n (owner && owner.defaultView ? owner.defaultView.HTMLElement : HTMLElement));\n};\n\nvar isMessage = (value) => isString(value);\n\nvar isRadioInput = (element) => element.type === 'radio';\n\nvar isRegex = (value) => value instanceof RegExp;\n\nconst defaultResult = {\n value: false,\n isValid: false,\n};\nconst validResult = { value: true, isValid: true };\nvar getCheckboxValue = (options) => {\n if (Array.isArray(options)) {\n if (options.length > 1) {\n const values = options\n .filter((option) => option && option.checked && !option.disabled)\n .map((option) => option.value);\n return { value: values, isValid: !!values.length };\n }\n return options[0].checked && !options[0].disabled\n ? // @ts-expect-error expected to work in the browser\n options[0].attributes && !isUndefined(options[0].attributes.value)\n ? isUndefined(options[0].value) || options[0].value === ''\n ? validResult\n : { value: options[0].value, isValid: true }\n : validResult\n : defaultResult;\n }\n return defaultResult;\n};\n\nconst defaultReturn = {\n isValid: false,\n value: null,\n};\nvar getRadioValue = (options) => Array.isArray(options)\n ? options.reduce((previous, option) => option && option.checked && !option.disabled\n ? {\n isValid: true,\n value: option.value,\n }\n : previous, defaultReturn)\n : defaultReturn;\n\nfunction getValidateError(result, ref, type = 'validate') {\n if (isMessage(result) ||\n (Array.isArray(result) && result.every(isMessage)) ||\n (isBoolean(result) && !result)) {\n return {\n type,\n message: isMessage(result) ? result : '',\n ref,\n };\n }\n}\n\nvar getValueAndMessage = (validationData) => isObject(validationData) && !isRegex(validationData)\n ? validationData\n : {\n value: validationData,\n message: '',\n };\n\nvar validateField = async (field, formValues, validateAllFieldCriteria, shouldUseNativeValidation, isFieldArray) => {\n const { ref, refs, required, maxLength, minLength, min, max, pattern, validate, name, valueAsNumber, mount, disabled, } = field._f;\n const inputValue = get(formValues, name);\n if (!mount || disabled) {\n return {};\n }\n const inputRef = refs ? refs[0] : ref;\n const setCustomValidity = (message) => {\n if (shouldUseNativeValidation && inputRef.reportValidity) {\n inputRef.setCustomValidity(isBoolean(message) ? '' : message || '');\n inputRef.reportValidity();\n }\n };\n const error = {};\n const isRadio = isRadioInput(ref);\n const isCheckBox = isCheckBoxInput(ref);\n const isRadioOrCheckbox = isRadio || isCheckBox;\n const isEmpty = ((valueAsNumber || isFileInput(ref)) &&\n isUndefined(ref.value) &&\n isUndefined(inputValue)) ||\n (isHTMLElement(ref) && ref.value === '') ||\n inputValue === '' ||\n (Array.isArray(inputValue) && !inputValue.length);\n const appendErrorsCurry = appendErrors.bind(null, name, validateAllFieldCriteria, error);\n const getMinMaxMessage = (exceedMax, maxLengthMessage, minLengthMessage, maxType = INPUT_VALIDATION_RULES.maxLength, minType = INPUT_VALIDATION_RULES.minLength) => {\n const message = exceedMax ? maxLengthMessage : minLengthMessage;\n error[name] = {\n type: exceedMax ? maxType : minType,\n message,\n ref,\n ...appendErrorsCurry(exceedMax ? maxType : minType, message),\n };\n };\n if (isFieldArray\n ? !Array.isArray(inputValue) || !inputValue.length\n : required &&\n ((!isRadioOrCheckbox && (isEmpty || isNullOrUndefined(inputValue))) ||\n (isBoolean(inputValue) && !inputValue) ||\n (isCheckBox && !getCheckboxValue(refs).isValid) ||\n (isRadio && !getRadioValue(refs).isValid))) {\n const { value, message } = isMessage(required)\n ? { value: !!required, message: required }\n : getValueAndMessage(required);\n if (value) {\n error[name] = {\n type: INPUT_VALIDATION_RULES.required,\n message,\n ref: inputRef,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.required, message),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(message);\n return error;\n }\n }\n }\n if (!isEmpty && (!isNullOrUndefined(min) || !isNullOrUndefined(max))) {\n let exceedMax;\n let exceedMin;\n const maxOutput = getValueAndMessage(max);\n const minOutput = getValueAndMessage(min);\n if (!isNullOrUndefined(inputValue) && !isNaN(inputValue)) {\n const valueNumber = ref.valueAsNumber ||\n (inputValue ? +inputValue : inputValue);\n if (!isNullOrUndefined(maxOutput.value)) {\n exceedMax = valueNumber > maxOutput.value;\n }\n if (!isNullOrUndefined(minOutput.value)) {\n exceedMin = valueNumber < minOutput.value;\n }\n }\n else {\n const valueDate = ref.valueAsDate || new Date(inputValue);\n const convertTimeToDate = (time) => new Date(new Date().toDateString() + ' ' + time);\n const isTime = ref.type == 'time';\n const isWeek = ref.type == 'week';\n if (isString(maxOutput.value) && inputValue) {\n exceedMax = isTime\n ? convertTimeToDate(inputValue) > convertTimeToDate(maxOutput.value)\n : isWeek\n ? inputValue > maxOutput.value\n : valueDate > new Date(maxOutput.value);\n }\n if (isString(minOutput.value) && inputValue) {\n exceedMin = isTime\n ? convertTimeToDate(inputValue) < convertTimeToDate(minOutput.value)\n : isWeek\n ? inputValue < minOutput.value\n : valueDate < new Date(minOutput.value);\n }\n }\n if (exceedMax || exceedMin) {\n getMinMaxMessage(!!exceedMax, maxOutput.message, minOutput.message, INPUT_VALIDATION_RULES.max, INPUT_VALIDATION_RULES.min);\n if (!validateAllFieldCriteria) {\n setCustomValidity(error[name].message);\n return error;\n }\n }\n }\n if ((maxLength || minLength) &&\n !isEmpty &&\n (isString(inputValue) || (isFieldArray && Array.isArray(inputValue)))) {\n const maxLengthOutput = getValueAndMessage(maxLength);\n const minLengthOutput = getValueAndMessage(minLength);\n const exceedMax = !isNullOrUndefined(maxLengthOutput.value) &&\n inputValue.length > +maxLengthOutput.value;\n const exceedMin = !isNullOrUndefined(minLengthOutput.value) &&\n inputValue.length < +minLengthOutput.value;\n if (exceedMax || exceedMin) {\n getMinMaxMessage(exceedMax, maxLengthOutput.message, minLengthOutput.message);\n if (!validateAllFieldCriteria) {\n setCustomValidity(error[name].message);\n return error;\n }\n }\n }\n if (pattern && !isEmpty && isString(inputValue)) {\n const { value: patternValue, message } = getValueAndMessage(pattern);\n if (isRegex(patternValue) && !inputValue.match(patternValue)) {\n error[name] = {\n type: INPUT_VALIDATION_RULES.pattern,\n message,\n ref,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.pattern, message),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(message);\n return error;\n }\n }\n }\n if (validate) {\n if (isFunction(validate)) {\n const result = await validate(inputValue, formValues);\n const validateError = getValidateError(result, inputRef);\n if (validateError) {\n error[name] = {\n ...validateError,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.validate, validateError.message),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(validateError.message);\n return error;\n }\n }\n }\n else if (isObject(validate)) {\n let validationResult = {};\n for (const key in validate) {\n if (!isEmptyObject(validationResult) && !validateAllFieldCriteria) {\n break;\n }\n const validateError = getValidateError(await validate[key](inputValue, formValues), inputRef, key);\n if (validateError) {\n validationResult = {\n ...validateError,\n ...appendErrorsCurry(key, validateError.message),\n };\n setCustomValidity(validateError.message);\n if (validateAllFieldCriteria) {\n error[name] = validationResult;\n }\n }\n }\n if (!isEmptyObject(validationResult)) {\n error[name] = {\n ref: inputRef,\n ...validationResult,\n };\n if (!validateAllFieldCriteria) {\n return error;\n }\n }\n }\n }\n setCustomValidity(true);\n return error;\n};\n\nvar appendAt = (data, value) => [\n ...data,\n ...convertToArrayPayload(value),\n];\n\nvar fillEmptyArray = (value) => Array.isArray(value) ? value.map(() => undefined) : undefined;\n\nfunction insert(data, index, value) {\n return [\n ...data.slice(0, index),\n ...convertToArrayPayload(value),\n ...data.slice(index),\n ];\n}\n\nvar moveArrayAt = (data, from, to) => {\n if (!Array.isArray(data)) {\n return [];\n }\n if (isUndefined(data[to])) {\n data[to] = undefined;\n }\n data.splice(to, 0, data.splice(from, 1)[0]);\n return data;\n};\n\nvar prependAt = (data, value) => [\n ...convertToArrayPayload(value),\n ...convertToArrayPayload(data),\n];\n\nfunction removeAtIndexes(data, indexes) {\n let i = 0;\n const temp = [...data];\n for (const index of indexes) {\n temp.splice(index - i, 1);\n i++;\n }\n return compact(temp).length ? temp : [];\n}\nvar removeArrayAt = (data, index) => isUndefined(index)\n ? []\n : removeAtIndexes(data, convertToArrayPayload(index).sort((a, b) => a - b));\n\nvar swapArrayAt = (data, indexA, indexB) => {\n [data[indexA], data[indexB]] = [data[indexB], data[indexA]];\n};\n\nfunction baseGet(object, updatePath) {\n const length = updatePath.slice(0, -1).length;\n let index = 0;\n while (index < length) {\n object = isUndefined(object) ? index++ : object[updatePath[index++]];\n }\n return object;\n}\nfunction isEmptyArray(obj) {\n for (const key in obj) {\n if (obj.hasOwnProperty(key) && !isUndefined(obj[key])) {\n return false;\n }\n }\n return true;\n}\nfunction unset(object, path) {\n const paths = Array.isArray(path)\n ? path\n : isKey(path)\n ? [path]\n : stringToPath(path);\n const childObject = paths.length === 1 ? object : baseGet(object, paths);\n const index = paths.length - 1;\n const key = paths[index];\n if (childObject) {\n delete childObject[key];\n }\n if (index !== 0 &&\n ((isObject(childObject) && isEmptyObject(childObject)) ||\n (Array.isArray(childObject) && isEmptyArray(childObject)))) {\n unset(object, paths.slice(0, -1));\n }\n return object;\n}\n\nvar updateAt = (fieldValues, index, value) => {\n fieldValues[index] = value;\n return fieldValues;\n};\n\n/**\n * A custom hook that exposes convenient methods to perform operations with a list of dynamic inputs that need to be appended, updated, removed etc. • [Demo](https://codesandbox.io/s/react-hook-form-usefieldarray-ssugn) • [Video](https://youtu.be/4MrbfGSFY2A)\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/usefieldarray) • [Demo](https://codesandbox.io/s/react-hook-form-usefieldarray-ssugn)\n *\n * @param props - useFieldArray props\n *\n * @returns methods - functions to manipulate with the Field Arrays (dynamic inputs) {@link UseFieldArrayReturn}\n *\n * @example\n * ```tsx\n * function App() {\n * const { register, control, handleSubmit, reset, trigger, setError } = useForm({\n * defaultValues: {\n * test: []\n * }\n * });\n * const { fields, append } = useFieldArray({\n * control,\n * name: \"test\"\n * });\n *\n * return (\n * <form onSubmit={handleSubmit(data => console.log(data))}>\n * {fields.map((item, index) => (\n * <input key={item.id} {...register(`test.${index}.firstName`)} />\n * ))}\n * <button type=\"button\" onClick={() => append({ firstName: \"bill\" })}>\n * append\n * </button>\n * <input type=\"submit\" />\n * </form>\n * );\n * }\n * ```\n */\nfunction useFieldArray(props) {\n const methods = useFormContext();\n const { control = methods.control, name, keyName = 'id', shouldUnregister, } = props;\n const [fields, setFields] = React.useState(control._getFieldArray(name));\n const ids = React.useRef(control._getFieldArray(name).map(generateId));\n const _fieldIds = React.useRef(fields);\n const _name = React.useRef(name);\n const _actioned = React.useRef(false);\n _name.current = name;\n _fieldIds.current = fields;\n control._names.array.add(name);\n props.rules &&\n control.register(name, props.rules);\n useSubscribe({\n next: ({ values, name: fieldArrayName, }) => {\n if (fieldArrayName === _name.current || !fieldArrayName) {\n const fieldValues = get(values, _name.current);\n if (Array.isArray(fieldValues)) {\n setFields(fieldValues);\n ids.current = fieldValues.map(generateId);\n }\n }\n },\n subject: control._subjects.array,\n });\n const updateValues = React.useCallback((updatedFieldArrayValues) => {\n _actioned.current = true;\n control._updateFieldArray(name, updatedFieldArrayValues);\n }, [control, name]);\n const append = (value, options) => {\n const appendValue = convertToArrayPayload(cloneObject(value));\n const updatedFieldArrayValues = appendAt(control._getFieldArray(name), appendValue);\n control._names.focus = getFocusFieldName(name, updatedFieldArrayValues.length - 1, options);\n ids.current = appendAt(ids.current, appendValue.map(generateId));\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._updateFieldArray(name, updatedFieldArrayValues, appendAt, {\n argA: fillEmptyArray(value),\n });\n };\n const prepend = (value, options) => {\n const prependValue = convertToArrayPayload(cloneObject(value));\n const updatedFieldArrayValues = prependAt(control._getFieldArray(name), prependValue);\n control._names.focus = getFocusFieldName(name, 0, options);\n ids.current = prependAt(ids.current, prependValue.map(generateId));\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._updateFieldArray(name, updatedFieldArrayValues, prependAt, {\n argA: fillEmptyArray(value),\n });\n };\n const remove = (index) => {\n const updatedFieldArrayValues = removeArrayAt(control._getFieldArray(name), index);\n ids.current = removeArrayAt(ids.current, index);\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._updateFieldArray(name, updatedFieldArrayValues, removeArrayAt, {\n argA: index,\n });\n };\n const insert$1 = (index, value, options) => {\n const insertValue = convertToArrayPayload(cloneObject(value));\n const updatedFieldArrayValues = insert(control._getFieldArray(name), index, insertValue);\n control._names.focus = getFocusFieldName(name, index, options);\n ids.current = insert(ids.current, index, insertValue.map(generateId));\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._updateFieldArray(name, updatedFieldArrayValues, insert, {\n argA: index,\n argB: fillEmptyArray(value),\n });\n };\n const swap = (indexA, indexB) => {\n const updatedFieldArrayValues = control._getFieldArray(name);\n swapArrayAt(updatedFieldArrayValues, indexA, indexB);\n swapArrayAt(ids.current, indexA, indexB);\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._updateFieldArray(name, updatedFieldArrayValues, swapArrayAt, {\n argA: indexA,\n argB: indexB,\n }, false);\n };\n const move = (from, to) => {\n const updatedFieldArrayValues = control._getFieldArray(name);\n moveArrayAt(updatedFieldArrayValues, from, to);\n moveArrayAt(ids.current, from, to);\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._updateFieldArray(name, updatedFieldArrayValues, moveArrayAt, {\n argA: from,\n argB: to,\n }, false);\n };\n const update = (index, value) => {\n const updateValue = cloneObject(value);\n const updatedFieldArrayValues = updateAt(control._getFieldArray(name), index, updateValue);\n ids.current = [...updatedFieldArrayValues].map((item, i) => !item || i === index ? generateId() : ids.current[i]);\n updateValues(updatedFieldArrayValues);\n setFields([...updatedFieldArrayValues]);\n control._updateFieldArray(name, updatedFieldArrayValues, updateAt, {\n argA: index,\n argB: updateValue,\n }, true, false);\n };\n const replace = (value) => {\n const updatedFieldArrayValues = convertToArrayPayload(cloneObject(value));\n ids.current = updatedFieldArrayValues.map(generateId);\n updateValues([...updatedFieldArrayValues]);\n setFields([...updatedFieldArrayValues]);\n control._updateFieldArray(name, [...updatedFieldArrayValues], (data) => data, {}, true, false);\n };\n React.useEffect(() => {\n control._state.action = false;\n isWatched(name, control._names) &&\n control._subjects.state.next({\n ...control._formState,\n });\n if (_actioned.current &&\n (!getValidationModes(control._options.mode).isOnSubmit ||\n control._formState.isSubmitted)) {\n if (control._options.resolver) {\n control._executeSchema([name]).then((result) => {\n const error = get(result.errors, name);\n const existingError = get(control._formState.errors, name);\n if (existingError\n ? (!error && existingError.type) ||\n (error &&\n (existingError.type !== error.type ||\n existingError.message !== error.message))\n : error && error.type) {\n error\n ? set(control._formState.errors, name, error)\n : unset(control._formState.errors, name);\n control._subjects.state.next({\n errors: control._formState.errors,\n });\n }\n });\n }\n else {\n const field = get(control._fields, name);\n if (field &&\n field._f &&\n !(getValidationModes(control._options.reValidateMode).isOnSubmit &&\n getValidationModes(control._options.mode).isOnSubmit)) {\n validateField(field, control._formValues, control._options.criteriaMode === VALIDATION_MODE.all, control._options.shouldUseNativeValidation, true).then((error) => !isEmptyObject(error) &&\n control._subjects.state.next({\n errors: updateFieldArrayRootError(control._formState.errors, error, name),\n }));\n }\n }\n }\n control._subjects.values.next({\n name,\n values: { ...control._formValues },\n });\n control._names.focus &&\n iterateFieldsByAction(control._fields, (ref, key) => {\n if (control._names.focus &&\n key.startsWith(control._names.focus) &&\n ref.focus) {\n ref.focus();\n return 1;\n }\n return;\n });\n control._names.focus = '';\n control._updateValid();\n _actioned.current = false;\n }, [fields, name, control]);\n React.useEffect(() => {\n !get(control._formValues, name) && control._updateFieldArray(name);\n return () => {\n (control._options.shouldUnregister || shouldUnregister) &&\n control.unregister(name);\n };\n }, [name, control, keyName, shouldUnregister]);\n return {\n swap: React.useCallback(swap, [updateValues, name, control]),\n move: React.useCallback(move, [updateValues, name, control]),\n prepend: React.useCallback(prepend, [updateValues, name, control]),\n append: React.useCallback(append, [updateValues, name, control]),\n remove: React.useCallback(remove, [updateValues, name, control]),\n insert: React.useCallback(insert$1, [updateValues, name, control]),\n update: React.useCallback(update, [updateValues, name, control]),\n replace: React.useCallback(replace, [updateValues, name, control]),\n fields: React.useMemo(() => fields.map((field, index) => ({\n ...field,\n [keyName]: ids.current[index] || generateId(),\n })), [fields, keyName]),\n };\n}\n\nvar createSubject = () => {\n let _observers = [];\n const next = (value) => {\n for (const observer of _observers) {\n observer.next && observer.next(value);\n }\n };\n const subscribe = (observer) => {\n _observers.push(observer);\n return {\n unsubscribe: () => {\n _observers = _observers.filter((o) => o !== observer);\n },\n };\n };\n const unsubscribe = () => {\n _observers = [];\n };\n return {\n get observers() {\n return _observers;\n },\n next,\n subscribe,\n unsubscribe,\n };\n};\n\nvar isPrimitive = (value) => isNullOrUndefined(value) || !isObjectType(value);\n\nfunction deepEqual(object1, object2) {\n if (isPrimitive(object1) || isPrimitive(object2)) {\n return object1 === object2;\n }\n if (isDateObject(object1) && isDateObject(object2)) {\n return object1.getTime() === object2.getTime();\n }\n const keys1 = Object.keys(object1);\n const keys2 = Object.keys(object2);\n if (keys1.length !== keys2.length) {\n return false;\n }\n for (const key of keys1) {\n const val1 = object1[key];\n if (!keys2.includes(key)) {\n return false;\n }\n if (key !== 'ref') {\n const val2 = object2[key];\n if ((isDateObject(val1) && isDateObject(val2)) ||\n (isObject(val1) && isObject(val2)) ||\n (Array.isArray(val1) && Array.isArray(val2))\n ? !deepEqual(val1, val2)\n : val1 !== val2) {\n return false;\n }\n }\n }\n return true;\n}\n\nvar isMultipleSelect = (element) => element.type === `select-multiple`;\n\nvar isRadioOrCheckbox = (ref) => isRadioInput(ref) || isCheckBoxInput(ref);\n\nvar live = (ref) => isHTMLElement(ref) && ref.isConnected;\n\nvar objectHasFunction = (data) => {\n for (const key in data) {\n if (isFunction(data[key])) {\n return true;\n }\n }\n return false;\n};\n\nfunction markFieldsDirty(data, fields = {}) {\n const isParentNodeArray = Array.isArray(data);\n if (isObject(data) || isParentNodeArray) {\n for (const key in data) {\n if (Array.isArray(data[key]) ||\n (isObject(data[key]) && !objectHasFunction(data[key]))) {\n fields[key] = Array.isArray(data[key]) ? [] : {};\n markFieldsDirty(data[key], fields[key]);\n }\n else if (!isNullOrUndefined(data[key])) {\n fields[key] = true;\n }\n }\n }\n return fields;\n}\nfunction getDirtyFieldsFromDefaultValues(data, formValues, dirtyFieldsFromValues) {\n const isParentNodeArray = Array.isArray(data);\n if (isObject(data) || isParentNodeArray) {\n for (const key in data) {\n if (Array.isArray(data[key]) ||\n (isObject(data[key]) && !objectHasFunction(data[key]))) {\n if (isUndefined(formValues) ||\n isPrimitive(dirtyFieldsFromValues[key])) {\n dirtyFieldsFromValues[key] = Array.isArray(data[key])\n ? markFieldsDirty(data[key], [])\n : { ...markFieldsDirty(data[key]) };\n }\n else {\n getDirtyFieldsFromDefaultValues(data[key], isNullOrUndefined(formValues) ? {} : formValues[key], dirtyFieldsFromValues[key]);\n }\n }\n else {\n dirtyFieldsFromValues[key] = !deepEqual(data[key], formValues[key]);\n }\n }\n }\n return dirtyFieldsFromValues;\n}\nvar getDirtyFields = (defaultValues, formValues) => getDirtyFieldsFromDefaultValues(defaultValues, formValues, markFieldsDirty(formValues));\n\nvar getFieldValueAs = (value, { valueAsNumber, valueAsDate, setValueAs }) => isUndefined(value)\n ? value\n : valueAsNumber\n ? value === ''\n ? NaN\n : value\n ? +value\n : value\n : valueAsDate && isString(value)\n ? new Date(value)\n : setValueAs\n ? setValueAs(value)\n : value;\n\nfunction getFieldValue(_f) {\n const ref = _f.ref;\n if (_f.refs ? _f.refs.every((ref) => ref.disabled) : ref.disabled) {\n return;\n }\n if (isFileInput(ref)) {\n return ref.files;\n }\n if (isRadioInput(ref)) {\n return getRadioValue(_f.refs).value;\n }\n if (isMultipleSelect(ref)) {\n return [...ref.selectedOptions].map(({ value }) => value);\n }\n if (isCheckBoxInput(ref)) {\n return getCheckboxValue(_f.refs).value;\n }\n return getFieldValueAs(isUndefined(ref.value) ? _f.ref.value : ref.value, _f);\n}\n\nvar getResolverOptions = (fieldsNames, _fields, criteriaMode, shouldUseNativeValidation) => {\n const fields = {};\n for (const name of fieldsNames) {\n const field = get(_fields, name);\n field && set(fields, name, field._f);\n }\n return {\n criteriaMode,\n names: [...fieldsNames],\n fields,\n shouldUseNativeValidation,\n };\n};\n\nvar getRuleValue = (rule) => isUndefined(rule)\n ? rule\n : isRegex(rule)\n ? rule.source\n : isObject(rule)\n ? isRegex(rule.value)\n ? rule.value.source\n : rule.value\n : rule;\n\nvar hasValidation = (options) => options.mount &&\n (options.required ||\n options.min ||\n options.max ||\n options.maxLength ||\n options.minLength ||\n options.pattern ||\n options.validate);\n\nfunction schemaErrorLookup(errors, _fields, name) {\n const error = get(errors, name);\n if (error || isKey(name)) {\n return {\n error,\n name,\n };\n }\n const names = name.split('.');\n while (names.length) {\n const fieldName = names.join('.');\n const field = get(_fields, fieldName);\n const foundError = get(errors, fieldName);\n if (field && !Array.isArray(field) && name !== fieldName) {\n return { name };\n }\n if (foundError && foundError.type) {\n return {\n name: fieldName,\n error: foundError,\n };\n }\n names.pop();\n }\n return {\n name,\n };\n}\n\nvar skipValidation = (isBlurEvent, isTouched, isSubmitted, reValidateMode, mode) => {\n if (mode.isOnAll) {\n return false;\n }\n else if (!isSubmitted && mode.isOnTouch) {\n return !(isTouched || isBlurEvent);\n }\n else if (isSubmitted ? reValidateMode.isOnBlur : mode.isOnBlur) {\n return !isBlurEvent;\n }\n else if (isSubmitted ? reValidateMode.isOnChange : mode.isOnChange) {\n return isBlurEvent;\n }\n return true;\n};\n\nvar unsetEmptyArray = (ref, name) => !compact(get(ref, name)).length && unset(ref, name);\n\nconst defaultOptions = {\n mode: VALIDATION_MODE.onSubmit,\n reValidateMode: VALIDATION_MODE.onChange,\n shouldFocusError: true,\n};\nfunction createFormControl(props = {}) {\n let _options = {\n ...defaultOptions,\n ...props,\n };\n let _formState = {\n submitCount: 0,\n isDirty: false,\n isLoading: isFunction(_options.defaultValues),\n isValidating: false,\n isSubmitted: false,\n isSubmitting: false,\n isSubmitSuccessful: false,\n isValid: false,\n touchedFields: {},\n dirtyFields: {},\n validatingFields: {},\n errors: _options.errors || {},\n disabled: _options.disabled || false,\n };\n let _fields = {};\n let _defaultValues = isObject(_options.defaultValues) || isObject(_options.values)\n ? cloneObject(_options.defaultValues || _options.values) || {}\n : {};\n let _formValues = _options.shouldUnregister\n ? {}\n : cloneObject(_defaultValues);\n let _state = {\n action: false,\n mount: false,\n watch: false,\n };\n let _names = {\n mount: new Set(),\n unMount: new Set(),\n array: new Set(),\n watch: new Set(),\n };\n let delayErrorCallback;\n let timer = 0;\n const _proxyFormState = {\n isDirty: false,\n dirtyFields: false,\n validatingFields: false,\n touchedFields: false,\n isValidating: false,\n isValid: false,\n errors: false,\n };\n const _subjects = {\n values: createSubject(),\n array: createSubject(),\n state: createSubject(),\n };\n const validationModeBeforeSubmit = getValidationModes(_options.mode);\n const validationModeAfterSubmit = getValidationModes(_options.reValidateMode);\n const shouldDisplayAllAssociatedErrors = _options.criteriaMode === VALIDATION_MODE.all;\n const debounce = (callback) => (wait) => {\n clearTimeout(timer);\n timer = setTimeout(callback, wait);\n };\n const _updateValid = async (shouldUpdateValid) => {\n if (_proxyFormState.isValid || shouldUpdateValid) {\n const isValid = _options.resolver\n ? isEmptyObject((await _executeSchema()).errors)\n : await executeBuiltInValidation(_fields, true);\n if (isValid !== _formState.isValid) {\n _subjects.state.next({\n isValid,\n });\n }\n }\n };\n const _updateIsValidating = (names, isValidating) => {\n if (_proxyFormState.isValidating || _proxyFormState.validatingFields) {\n (names || Array.from(_names.mount)).forEach((name) => {\n if (name) {\n isValidating\n ? set(_formState.validatingFields, name, isValidating)\n : unset(_formState.validatingFields, name);\n }\n });\n _subjects.state.next({\n validatingFields: _formState.validatingFields,\n isValidating: !isEmptyObject(_formState.validatingFields),\n });\n }\n };\n const _updateFieldArray = (name, values = [], method, args, shouldSetValues = true, shouldUpdateFieldsAndState = true) => {\n if (args && method) {\n _state.action = true;\n if (shouldUpdateFieldsAndState && Array.isArray(get(_fields, name))) {\n const fieldValues = method(get(_fields, name), args.argA, args.argB);\n shouldSetValues && set(_fields, name, fieldValues);\n }\n if (shouldUpdateFieldsAndState &&\n Array.isArray(get(_formState.errors, name))) {\n const errors = method(get(_formState.errors, name), args.argA, args.argB);\n shouldSetValues && set(_formState.errors, name, errors);\n unsetEmptyArray(_formState.errors, name);\n }\n if (_proxyFormState.touchedFields &&\n shouldUpdateFieldsAndState &&\n Array.isArray(get(_formState.touchedFields, name))) {\n const touchedFields = method(get(_formState.touchedFields, name), args.argA, args.argB);\n shouldSetValues && set(_formState.touchedFields, name, touchedFields);\n }\n if (_proxyFormState.dirtyFields) {\n _formState.dirtyFields = getDirtyFields(_defaultValues, _formValues);\n }\n _subjects.state.next({\n name,\n isDirty: _getDirty(name, values),\n dirtyFields: _formState.dirtyFields,\n errors: _formState.errors,\n isValid: _formState.isValid,\n });\n }\n else {\n set(_formValues, name, values);\n }\n };\n const updateErrors = (name, error) => {\n set(_formState.errors, name, error);\n _subjects.state.next({\n errors: _formState.errors,\n });\n };\n const _setErrors = (errors) => {\n _formState.errors = errors;\n _subjects.state.next({\n errors: _formState.errors,\n isValid: false,\n });\n };\n const updateValidAndValue = (name, shouldSkipSetValueAs, value, ref) => {\n const field = get(_fields, name);\n if (field) {\n const defaultValue = get(_formValues, name, isUndefined(value) ? get(_defaultValues, name) : value);\n isUndefined(defaultValue) ||\n (ref && ref.defaultChecked) ||\n shouldSkipSetValueAs\n ? set(_formValues, name, shouldSkipSetValueAs ? defaultValue : getFieldValue(field._f))\n : setFieldValue(name, defaultValue);\n _state.mount && _updateValid();\n }\n };\n const updateTouchAndDirty = (name, fieldValue, isBlurEvent, shouldDirty, shouldRender) => {\n let shouldUpdateField = false;\n let isPreviousDirty = false;\n const output = {\n name,\n };\n const disabledField = !!(get(_fields, name) &&\n get(_fields, name)._f &&\n get(_fields, name)._f.disabled);\n if (!isBlurEvent || shouldDirty) {\n if (_proxyFormState.isDirty) {\n isPreviousDirty = _formState.isDirty;\n _formState.isDirty = output.isDirty = _getDirty();\n shouldUpdateField = isPreviousDirty !== output.isDirty;\n }\n const isCurrentFieldPristine = disabledField || deepEqual(get(_defaultValues, name), fieldValue);\n isPreviousDirty = !!(!disabledField && get(_formState.dirtyFields, name));\n isCurrentFieldPristine || disabledField\n ? unset(_formState.dirtyFields, name)\n : set(_formState.dirtyFields, name, true);\n output.dirtyFields = _formState.dirtyFields;\n shouldUpdateField =\n shouldUpdateField ||\n (_proxyFormState.dirtyFields &&\n isPreviousDirty !== !isCurrentFieldPristine);\n }\n if (isBlurEvent) {\n const isPreviousFieldTouched = get(_formState.touchedFields, name);\n if (!isPreviousFieldTouched) {\n set(_formState.touchedFields, name, isBlurEvent);\n output.touchedFields = _formState.touchedFields;\n shouldUpdateField =\n shouldUpdateField ||\n (_proxyFormState.touchedFields &&\n isPreviousFieldTouched !== isBlurEvent);\n }\n }\n shouldUpdateField && shouldRender && _subjects.state.next(output);\n return shouldUpdateField ? output : {};\n };\n const shouldRenderByError = (name, isValid, error, fieldState) => {\n const previousFieldError = get(_formState.errors, name);\n const shouldUpdateValid = _proxyFormState.isValid &&\n isBoolean(isValid) &&\n _formState.isValid !== isValid;\n if (props.delayError && error) {\n delayErrorCallback = debounce(() => updateErrors(name, error));\n delayErrorCallback(props.delayError);\n }\n else {\n clearTimeout(timer);\n delayErrorCallback = null;\n error\n ? set(_formState.errors, name, error)\n : unset(_formState.errors, name);\n }\n if ((error ? !deepEqual(previousFieldError, error) : previousFieldError) ||\n !isEmptyObject(fieldState) ||\n shouldUpdateValid) {\n const updatedFormState = {\n ...fieldState,\n ...(shouldUpdateValid && isBoolean(isValid) ? { isValid } : {}),\n errors: _formState.errors,\n name,\n };\n _formState = {\n ..._formState,\n ...updatedFormState,\n };\n _subjects.state.next(updatedFormState);\n }\n };\n const _executeSchema = async (name) => {\n _updateIsValidating(name, true);\n const result = await _options.resolver(_formValues, _options.context, getResolverOptions(name || _names.mount, _fields, _options.criteriaMode, _options.shouldUseNativeValidation));\n _updateIsValidating(name);\n return result;\n };\n const executeSchemaAndUpdateState = async (names) => {\n const { errors } = await _executeSchema(names);\n if (names) {\n for (const name of names) {\n const error = get(errors, name);\n error\n ? set(_formState.errors, name, error)\n : unset(_formState.errors, name);\n }\n }\n else {\n _formState.errors = errors;\n }\n return errors;\n };\n const executeBuiltInValidation = async (fields, shouldOnlyCheckValid, context = {\n valid: true,\n }) => {\n for (const name in fields) {\n const field = fields[name];\n if (field) {\n const { _f, ...fieldValue } = field;\n if (_f) {\n const isFieldArrayRoot = _names.array.has(_f.name);\n _updateIsValidating([name], true);\n const fieldError = await validateField(field, _formValues, shouldDisplayAllAssociatedErrors, _options.shouldUseNativeValidation && !shouldOnlyCheckValid, isFieldArrayRoot);\n _updateIsValidating([name]);\n if (fieldError[_f.name]) {\n context.valid = false;\n if (shouldOnlyCheckValid) {\n break;\n }\n }\n !shouldOnlyCheckValid &&\n (get(fieldError, _f.name)\n ? isFieldArrayRoot\n ? updateFieldArrayRootError(_formState.errors, fieldError, _f.name)\n : set(_formState.errors, _f.name, fieldError[_f.name])\n : unset(_formState.errors, _f.name));\n }\n !isEmptyObject(fieldValue) &&\n (await executeBuiltInValidation(fieldValue, shouldOnlyCheckValid, context));\n }\n }\n return context.valid;\n };\n const _removeUnmounted = () => {\n for (const name of _names.unMount) {\n const field = get(_fields, name);\n field &&\n (field._f.refs\n ? field._f.refs.every((ref) => !live(ref))\n : !live(field._f.ref)) &&\n unregister(name);\n }\n _names.unMount = new Set();\n };\n const _getDirty = (name, data) => (name && data && set(_formValues, name, data),\n !deepEqual(getValues(), _defaultValues));\n const _getWatch = (names, defaultValue, isGlobal) => generateWatchOutput(names, _names, {\n ...(_state.mount\n ? _formValues\n : isUndefined(defaultValue)\n ? _defaultValues\n : isString(names)\n ? { [names]: defaultValue }\n : defaultValue),\n }, isGlobal, defaultValue);\n const _getFieldArray = (name) => compact(get(_state.mount ? _formValues : _defaultValues, name, props.shouldUnregister ? get(_defaultValues, name, []) : []));\n const setFieldValue = (name, value, options = {}) => {\n const field = get(_fields, name);\n let fieldValue = value;\n if (field) {\n const fieldReference = field._f;\n if (fieldReference) {\n !fieldReference.disabled &&\n set(_formValues, name, getFieldValueAs(value, fieldReference));\n fieldValue =\n isHTMLElement(fieldReference.ref) && isNullOrUndefined(value)\n ? ''\n : value;\n if (isMultipleSelect(fieldReference.ref)) {\n [...fieldReference.ref.options].forEach((optionRef) => (optionRef.selected = fieldValue.includes(optionRef.value)));\n }\n else if (fieldReference.refs) {\n if (isCheckBoxInput(fieldReference.ref)) {\n fieldReference.refs.length > 1\n ? fieldReference.refs.forEach((checkboxRef) => (!checkboxRef.defaultChecked || !checkboxRef.disabled) &&\n (checkboxRef.checked = Array.isArray(fieldValue)\n ? !!fieldValue.find((data) => data === checkboxRef.value)\n : fieldValue === checkboxRef.value))\n : fieldReference.refs[0] &&\n (fieldReference.refs[0].checked = !!fieldValue);\n }\n else {\n fieldReference.refs.forEach((radioRef) => (radioRef.checked = radioRef.value === fieldValue));\n }\n }\n else if (isFileInput(fieldReference.ref)) {\n fieldReference.ref.value = '';\n }\n else {\n fieldReference.ref.value = fieldValue;\n if (!fieldReference.ref.type) {\n _subjects.values.next({\n name,\n values: { ..._formValues },\n });\n }\n }\n }\n }\n (options.shouldDirty || options.shouldTouch) &&\n updateTouchAndDirty(name, fieldValue, options.shouldTouch, options.shouldDirty, true);\n options.shouldValidate && trigger(name);\n };\n const setValues = (name, value, options) => {\n for (const fieldKey in value) {\n const fieldValue = value[fieldKey];\n const fieldName = `${name}.${fieldKey}`;\n const field = get(_fields, fieldName);\n (_names.array.has(name) ||\n !isPrimitive(fieldValue) ||\n (field && !field._f)) &&\n !isDateObject(fieldValue)\n ? setValues(fieldName, fieldValue, options)\n : setFieldValue(fieldName, fieldValue, options);\n }\n };\n const setValue = (name, value, options = {}) => {\n const field = get(_fields, name);\n const isFieldArray = _names.array.has(name);\n const cloneValue = cloneObject(value);\n set(_formValues, name, cloneValue);\n if (isFieldArray) {\n _subjects.array.next({\n name,\n values: { ..._formValues },\n });\n if ((_proxyFormState.isDirty || _proxyFormState.dirtyFields) &&\n options.shouldDirty) {\n _subjects.state.next({\n name,\n dirtyFields: getDirtyFields(_defaultValues, _formValues),\n isDirty: _getDirty(name, cloneValue),\n });\n }\n }\n else {\n field && !field._f && !isNullOrUndefined(cloneValue)\n ? setValues(name, cloneValue, options)\n : setFieldValue(name, cloneValue, options);\n }\n isWatched(name, _names) && _subjects.state.next({ ..._formState });\n _subjects.values.next({\n name: _state.mount ? name : undefined,\n values: { ..._formValues },\n });\n };\n const onChange = async (event) => {\n _state.mount = true;\n const target = event.target;\n let name = target.name;\n let isFieldValueUpdated = true;\n const field = get(_fields, name);\n const getCurrentFieldValue = () => target.type ? getFieldValue(field._f) : getEventValue(event);\n const _updateIsFieldValueUpdated = (fieldValue) => {\n isFieldValueUpdated =\n Number.isNaN(fieldValue) ||\n fieldValue === get(_formValues, name, fieldValue);\n };\n if (field) {\n let error;\n let isValid;\n const fieldValue = getCurrentFieldValue();\n const isBlurEvent = event.type === EVENTS.BLUR || event.type === EVENTS.FOCUS_OUT;\n const shouldSkipValidation = (!hasValidation(field._f) &&\n !_options.resolver &&\n !get(_formState.errors, name) &&\n !field._f.deps) ||\n skipValidation(isBlurEvent, get(_formState.touchedFields, name), _formState.isSubmitted, validationModeAfterSubmit, validationModeBeforeSubmit);\n const watched = isWatched(name, _names, isBlurEvent);\n set(_formValues, name, fieldValue);\n if (isBlurEvent) {\n field._f.onBlur && field._f.onBlur(event);\n delayErrorCallback && delayErrorCallback(0);\n }\n else if (field._f.onChange) {\n field._f.onChange(event);\n }\n const fieldState = updateTouchAndDirty(name, fieldValue, isBlurEvent, false);\n const shouldRender = !isEmptyObject(fieldState) || watched;\n !isBlurEvent &&\n _subjects.values.next({\n name,\n type: event.type,\n values: { ..._formValues },\n });\n if (shouldSkipValidation) {\n _proxyFormState.isValid && _updateValid();\n return (shouldRender &&\n _subjects.state.next({ name, ...(watched ? {} : fieldState) }));\n }\n !isBlurEvent && watched && _subjects.state.next({ ..._formState });\n if (_options.resolver) {\n const { errors } = await _executeSchema([name]);\n _updateIsFieldValueUpdated(fieldValue);\n if (isFieldValueUpdated) {\n const previousErrorLookupResult = schemaErrorLookup(_formState.errors, _fields, name);\n const errorLookupResult = schemaErrorLookup(errors, _fields, previousErrorLookupResult.name || name);\n error = errorLookupResult.error;\n name = errorLookupResult.name;\n isValid = isEmptyObject(errors);\n }\n }\n else {\n _updateIsValidating([name], true);\n error = (await validateField(field, _formValues, shouldDisplayAllAssociatedErrors, _options.shouldUseNativeValidation))[name];\n _updateIsValidating([name]);\n _updateIsFieldValueUpdated(fieldValue);\n if (isFieldValueUpdated) {\n if (error) {\n isValid = false;\n }\n else if (_proxyFormState.isValid) {\n isValid = await executeBuiltInValidation(_fields, true);\n }\n }\n }\n if (isFieldValueUpdated) {\n field._f.deps &&\n trigger(field._f.deps);\n shouldRenderByError(name, isValid, error, fieldState);\n }\n }\n };\n const _focusInput = (ref, key) => {\n if (get(_formState.errors, key) && ref.focus) {\n ref.focus();\n return 1;\n }\n return;\n };\n const trigger = async (name, options = {}) => {\n let isValid;\n let validationResult;\n const fieldNames = convertToArrayPayload(name);\n if (_options.resolver) {\n const errors = await executeSchemaAndUpdateState(isUndefined(name) ? name : fieldNames);\n isValid = isEmptyObject(errors);\n validationResult = name\n ? !fieldNames.some((name) => get(errors, name))\n : isValid;\n }\n else if (name) {\n validationResult = (await Promise.all(fieldNames.map(async (fieldName) => {\n const field = get(_fields, fieldName);\n return await executeBuiltInValidation(field && field._f ? { [fieldName]: field } : field);\n }))).every(Boolean);\n !(!validationResult && !_formState.isValid) && _updateValid();\n }\n else {\n validationResult = isValid = await executeBuiltInValidation(_fields);\n }\n _subjects.state.next({\n ...(!isString(name) ||\n (_proxyFormState.isValid && isValid !== _formState.isValid)\n ? {}\n : { name }),\n ...(_options.resolver || !name ? { isValid } : {}),\n errors: _formState.errors,\n });\n options.shouldFocus &&\n !validationResult &&\n iterateFieldsByAction(_fields, _focusInput, name ? fieldNames : _names.mount);\n return validationResult;\n };\n const getValues = (fieldNames) => {\n const values = {\n ...(_state.mount ? _formValues : _defaultValues),\n };\n return isUndefined(fieldNames)\n ? values\n : isString(fieldNames)\n ? get(values, fieldNames)\n : fieldNames.map((name) => get(values, name));\n };\n const getFieldState = (name, formState) => ({\n invalid: !!get((formState || _formState).errors, name),\n isDirty: !!get((formState || _formState).dirtyFields, name),\n error: get((formState || _formState).errors, name),\n isValidating: !!get(_formState.validatingFields, name),\n isTouched: !!get((formState || _formState).touchedFields, name),\n });\n const clearErrors = (name) => {\n name &&\n convertToArrayPayload(name).forEach((inputName) => unset(_formState.errors, inputName));\n _subjects.state.next({\n errors: name ? _formState.errors : {},\n });\n };\n const setError = (name, error, options) => {\n const ref = (get(_fields, name, { _f: {} })._f || {}).ref;\n const currentError = get(_formState.errors, name) || {};\n // Don't override existing error messages elsewhere in the object tree.\n const { ref: currentRef, message, type, ...restOfErrorTree } = currentError;\n set(_formState.errors, name, {\n ...restOfErrorTree,\n ...error,\n ref,\n });\n _subjects.state.next({\n name,\n errors: _formState.errors,\n isValid: false,\n });\n options && options.shouldFocus && ref && ref.focus && ref.focus();\n };\n const watch = (name, defaultValue) => isFunction(name)\n ? _subjects.values.subscribe({\n next: (payload) => name(_getWatch(undefined, defaultValue), payload),\n })\n : _getWatch(name, defaultValue, true);\n const unregister = (name, options = {}) => {\n for (const fieldName of name ? convertToArrayPayload(name) : _names.mount) {\n _names.mount.delete(fieldName);\n _names.array.delete(fieldName);\n if (!options.keepValue) {\n unset(_fields, fieldName);\n unset(_formValues, fieldName);\n }\n !options.keepError && unset(_formState.errors, fieldName);\n !options.keepDirty && unset(_formState.dirtyFields, fieldName);\n !options.keepTouched && unset(_formState.touchedFields, fieldName);\n !options.keepIsValidating &&\n unset(_formState.validatingFields, fieldName);\n !_options.shouldUnregister &&\n !options.keepDefaultValue &&\n unset(_defaultValues, fieldName);\n }\n _subjects.values.next({\n values: { ..._formValues },\n });\n _subjects.state.next({\n ..._formState,\n ...(!options.keepDirty ? {} : { isDirty: _getDirty() }),\n });\n !options.keepIsValid && _updateValid();\n };\n const _updateDisabledField = ({ disabled, name, field, fields, value, }) => {\n if ((isBoolean(disabled) && _state.mount) || !!disabled) {\n const inputValue = disabled\n ? undefined\n : isUndefined(value)\n ? getFieldValue(field ? field._f : get(fields, name)._f)\n : value;\n set(_formValues, name, inputValue);\n updateTouchAndDirty(name, inputValue, false, false, true);\n }\n };\n const register = (name, options = {}) => {\n let field = get(_fields, name);\n const disabledIsDefined = isBoolean(options.disabled);\n set(_fields, name, {\n ...(field || {}),\n _f: {\n ...(field && field._f ? field._f : { ref: { name } }),\n name,\n mount: true,\n ...options,\n },\n });\n _names.mount.add(name);\n if (field) {\n _updateDisabledField({\n field,\n disabled: options.disabled,\n name,\n value: options.value,\n });\n }\n else {\n updateValidAndValue(name, true, options.value);\n }\n return {\n ...(disabledIsDefined ? { disabled: options.disabled } : {}),\n ...(_options.progressive\n ? {\n required: !!options.required,\n min: getRuleValue(options.min),\n max: getRuleValue(options.max),\n minLength: getRuleValue(options.minLength),\n maxLength: getRuleValue(options.maxLength),\n pattern: getRuleValue(options.pattern),\n }\n : {}),\n name,\n onChange,\n onBlur: onChange,\n ref: (ref) => {\n if (ref) {\n register(name, options);\n field = get(_fields, name);\n const fieldRef = isUndefined(ref.value)\n ? ref.querySelectorAll\n ? ref.querySelectorAll('input,select,textarea')[0] || ref\n : ref\n : ref;\n const radioOrCheckbox = isRadioOrCheckbox(fieldRef);\n const refs = field._f.refs || [];\n if (radioOrCheckbox\n ? refs.find((option) => option === fieldRef)\n : fieldRef === field._f.ref) {\n return;\n }\n set(_fields, name, {\n _f: {\n ...field._f,\n ...(radioOrCheckbox\n ? {\n refs: [\n ...refs.filter(live),\n fieldRef,\n ...(Array.isArray(get(_defaultValues, name)) ? [{}] : []),\n ],\n ref: { type: fieldRef.type, name },\n }\n : { ref: fieldRef }),\n },\n });\n updateValidAndValue(name, false, undefined, fieldRef);\n }\n else {\n field = get(_fields, name, {});\n if (field._f) {\n field._f.mount = false;\n }\n (_options.shouldUnregister || options.shouldUnregister) &&\n !(isNameInFieldArray(_names.array, name) && _state.action) &&\n _names.unMount.add(name);\n }\n },\n };\n };\n const _focusError = () => _options.shouldFocusError &&\n iterateFieldsByAction(_fields, _focusInput, _names.mount);\n const _disableForm = (disabled) => {\n if (isBoolean(disabled)) {\n _subjects.state.next({ disabled });\n iterateFieldsByAction(_fields, (ref, name) => {\n const currentField = get(_fields, name);\n if (currentField) {\n ref.disabled = currentField._f.disabled || disabled;\n if (Array.isArray(currentField._f.refs)) {\n currentField._f.refs.forEach((inputRef) => {\n inputRef.disabled = currentField._f.disabled || disabled;\n });\n }\n }\n }, 0, false);\n }\n };\n const handleSubmit = (onValid, onInvalid) => async (e) => {\n let onValidError = undefined;\n if (e) {\n e.preventDefault && e.preventDefault();\n e.persist && e.persist();\n }\n let fieldValues = cloneObject(_formValues);\n _subjects.state.next({\n isSubmitting: true,\n });\n if (_options.resolver) {\n const { errors, values } = await _executeSchema();\n _formState.errors = errors;\n fieldValues = values;\n }\n else {\n await executeBuiltInValidation(_fields);\n }\n unset(_formState.errors, 'root');\n if (isEmptyObject(_formState.errors)) {\n _subjects.state.next({\n errors: {},\n });\n try {\n await onValid(fieldValues, e);\n }\n catch (error) {\n onValidError = error;\n }\n }\n else {\n if (onInvalid) {\n await onInvalid({ ..._formState.errors }, e);\n }\n _focusError();\n setTimeout(_focusError);\n }\n _subjects.state.next({\n isSubmitted: true,\n isSubmitting: false,\n isSubmitSuccessful: isEmptyObject(_formState.errors) && !onValidError,\n submitCount: _formState.submitCount + 1,\n errors: _formState.errors,\n });\n if (onValidError) {\n throw onValidError;\n }\n };\n const resetField = (name, options = {}) => {\n if (get(_fields, name)) {\n if (isUndefined(options.defaultValue)) {\n setValue(name, cloneObject(get(_defaultValues, name)));\n }\n else {\n setValue(name, options.defaultValue);\n set(_defaultValues, name, cloneObject(options.defaultValue));\n }\n if (!options.keepTouched) {\n unset(_formState.touchedFields, name);\n }\n if (!options.keepDirty) {\n unset(_formState.dirtyFields, name);\n _formState.isDirty = options.defaultValue\n ? _getDirty(name, cloneObject(get(_defaultValues, name)))\n : _getDirty();\n }\n if (!options.keepError) {\n unset(_formState.errors, name);\n _proxyFormState.isValid && _updateValid();\n }\n _subjects.state.next({ ..._formState });\n }\n };\n const _reset = (formValues, keepStateOptions = {}) => {\n const updatedValues = formValues ? cloneObject(formValues) : _defaultValues;\n const cloneUpdatedValues = cloneObject(updatedValues);\n const isEmptyResetValues = isEmptyObject(formValues);\n const values = isEmptyResetValues ? _defaultValues : cloneUpdatedValues;\n if (!keepStateOptions.keepDefaultValues) {\n _defaultValues = updatedValues;\n }\n if (!keepStateOptions.keepValues) {\n if (keepStateOptions.keepDirtyValues) {\n for (const fieldName of _names.mount) {\n get(_formState.dirtyFields, fieldName)\n ? set(values, fieldName, get(_formValues, fieldName))\n : setValue(fieldName, get(values, fieldName));\n }\n }\n else {\n if (isWeb && isUndefined(formValues)) {\n for (const name of _names.mount) {\n const field = get(_fields, name);\n if (field && field._f) {\n const fieldReference = Array.isArray(field._f.refs)\n ? field._f.refs[0]\n : field._f.ref;\n if (isHTMLElement(fieldReference)) {\n const form = fieldReference.closest('form');\n if (form) {\n form.reset();\n break;\n }\n }\n }\n }\n }\n _fields = {};\n }\n _formValues = props.shouldUnregister\n ? keepStateOptions.keepDefaultValues\n ? cloneObject(_defaultValues)\n : {}\n : cloneObject(values);\n _subjects.array.next({\n values: { ...values },\n });\n _subjects.values.next({\n values: { ...values },\n });\n }\n _names = {\n mount: keepStateOptions.keepDirtyValues ? _names.mount : new Set(),\n unMount: new Set(),\n array: new Set(),\n watch: new Set(),\n watchAll: false,\n focus: '',\n };\n _state.mount =\n !_proxyFormState.isValid ||\n !!keepStateOptions.keepIsValid ||\n !!keepStateOptions.keepDirtyValues;\n _state.watch = !!props.shouldUnregister;\n _subjects.state.next({\n submitCount: keepStateOptions.keepSubmitCount\n ? _formState.submitCount\n : 0,\n isDirty: isEmptyResetValues\n ? false\n : keepStateOptions.keepDirty\n ? _formState.isDirty\n : !!(keepStateOptions.keepDefaultValues &&\n !deepEqual(formValues, _defaultValues)),\n isSubmitted: keepStateOptions.keepIsSubmitted\n ? _formState.isSubmitted\n : false,\n dirtyFields: isEmptyResetValues\n ? {}\n : keepStateOptions.keepDirtyValues\n ? keepStateOptions.keepDefaultValues && _formValues\n ? getDirtyFields(_defaultValues, _formValues)\n : _formState.dirtyFields\n : keepStateOptions.keepDefaultValues && formValues\n ? getDirtyFields(_defaultValues, formValues)\n : keepStateOptions.keepDirty\n ? _formState.dirtyFields\n : {},\n touchedFields: keepStateOptions.keepTouched\n ? _formState.touchedFields\n : {},\n errors: keepStateOptions.keepErrors ? _formState.errors : {},\n isSubmitSuccessful: keepStateOptions.keepIsSubmitSuccessful\n ? _formState.isSubmitSuccessful\n : false,\n isSubmitting: false,\n });\n };\n const reset = (formValues, keepStateOptions) => _reset(isFunction(formValues)\n ? formValues(_formValues)\n : formValues, keepStateOptions);\n const setFocus = (name, options = {}) => {\n const field = get(_fields, name);\n const fieldReference = field && field._f;\n if (fieldReference) {\n const fieldRef = fieldReference.refs\n ? fieldReference.refs[0]\n : fieldReference.ref;\n if (fieldRef.focus) {\n fieldRef.focus();\n options.shouldSelect && fieldRef.select();\n }\n }\n };\n const _updateFormState = (updatedFormState) => {\n _formState = {\n ..._formState,\n ...updatedFormState,\n };\n };\n const _resetDefaultValues = () => isFunction(_options.defaultValues) &&\n _options.defaultValues().then((values) => {\n reset(values, _options.resetOptions);\n _subjects.state.next({\n isLoading: false,\n });\n });\n return {\n control: {\n register,\n unregister,\n getFieldState,\n handleSubmit,\n setError,\n _executeSchema,\n _getWatch,\n _getDirty,\n _updateValid,\n _removeUnmounted,\n _updateFieldArray,\n _updateDisabledField,\n _getFieldArray,\n _reset,\n _resetDefaultValues,\n _updateFormState,\n _disableForm,\n _subjects,\n _proxyFormState,\n _setErrors,\n get _fields() {\n return _fields;\n },\n get _formValues() {\n return _formValues;\n },\n get _state() {\n return _state;\n },\n set _state(value) {\n _state = value;\n },\n get _defaultValues() {\n return _defaultValues;\n },\n get _names() {\n return _names;\n },\n set _names(value) {\n _names = value;\n },\n get _formState() {\n return _formState;\n },\n set _formState(value) {\n _formState = value;\n },\n get _options() {\n return _options;\n },\n set _options(value) {\n _options = {\n ..._options,\n ...value,\n };\n },\n },\n trigger,\n register,\n handleSubmit,\n watch,\n setValue,\n getValues,\n reset,\n resetField,\n clearErrors,\n unregister,\n setError,\n setFocus,\n getFieldState,\n };\n}\n\n/**\n * Custom hook to manage the entire form.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useform) • [Demo](https://codesandbox.io/s/react-hook-form-get-started-ts-5ksmm) • [Video](https://www.youtube.com/watch?v=RkXv4AXXC_4)\n *\n * @param props - form configuration and validation parameters.\n *\n * @returns methods - individual functions to manage the form state. {@link UseFormReturn}\n *\n * @example\n * ```tsx\n * function App() {\n * const { register, handleSubmit, watch, formState: { errors } } = useForm();\n * const onSubmit = data => console.log(data);\n *\n * console.log(watch(\"example\"));\n *\n * return (\n * <form onSubmit={handleSubmit(onSubmit)}>\n * <input defaultValue=\"test\" {...register(\"example\")} />\n * <input {...register(\"exampleRequired\", { required: true })} />\n * {errors.exampleRequired && <span>This field is required</span>}\n * <button>Submit</button>\n * </form>\n * );\n * }\n * ```\n */\nfunction useForm(props = {}) {\n const _formControl = React.useRef();\n const _values = React.useRef();\n const [formState, updateFormState] = React.useState({\n isDirty: false,\n isValidating: false,\n isLoading: isFunction(props.defaultValues),\n isSubmitted: false,\n isSubmitting: false,\n isSubmitSuccessful: false,\n isValid: false,\n submitCount: 0,\n dirtyFields: {},\n touchedFields: {},\n validatingFields: {},\n errors: props.errors || {},\n disabled: props.disabled || false,\n defaultValues: isFunction(props.defaultValues)\n ? undefined\n : props.defaultValues,\n });\n if (!_formControl.current) {\n _formControl.current = {\n ...createFormControl(props),\n formState,\n };\n }\n const control = _formControl.current.control;\n control._options = props;\n useSubscribe({\n subject: control._subjects.state,\n next: (value) => {\n if (shouldRenderFormState(value, control._proxyFormState, control._updateFormState, true)) {\n updateFormState({ ...control._formState });\n }\n },\n });\n React.useEffect(() => control._disableForm(props.disabled), [control, props.disabled]);\n React.useEffect(() => {\n if (control._proxyFormState.isDirty) {\n const isDirty = control._getDirty();\n if (isDirty !== formState.isDirty) {\n control._subjects.state.next({\n isDirty,\n });\n }\n }\n }, [control, formState.isDirty]);\n React.useEffect(() => {\n if (props.values && !deepEqual(props.values, _values.current)) {\n control._reset(props.values, control._options.resetOptions);\n _values.current = props.values;\n updateFormState((state) => ({ ...state }));\n }\n else {\n control._resetDefaultValues();\n }\n }, [props.values, control]);\n React.useEffect(() => {\n if (props.errors) {\n control._setErrors(props.errors);\n }\n }, [props.errors, control]);\n React.useEffect(() => {\n if (!control._state.mount) {\n control._updateValid();\n control._state.mount = true;\n }\n if (control._state.watch) {\n control._state.watch = false;\n control._subjects.state.next({ ...control._formState });\n }\n control._removeUnmounted();\n });\n React.useEffect(() => {\n props.shouldUnregister &&\n control._subjects.values.next({\n values: control._getWatch(),\n });\n }, [props.shouldUnregister, control]);\n _formControl.current.formState = getProxyFormState(formState, control);\n return _formControl.current;\n}\n\nexport { Controller, Form, FormProvider, appendErrors, get, set, useController, useFieldArray, useForm, useFormContext, useFormState, useWatch };\n//# sourceMappingURL=index.esm.mjs.map\n","import { DatePicker, SearchField, Button } from \"@egovernments/digit-ui-components\";\nimport React from \"react\";\nimport { Controller } from \"react-hook-form\";\nconst SearchFields = ({ register, control, reset, tenantId, t, previousPage, formState, isLoading }) => {\n const isMobile = window.Digit.Utils.browser.isMobile();\n\n return (\n <>\n <SearchField className=\"pt-form-field\">\n <label>{t(\"AUDIT_FROM_DATE_LABEL\")}</label>\n <Controller render={(props) => <DatePicker date={props.value} onChange={props.onChange} />} name=\"fromDate\" control={control} />\n </SearchField>\n <SearchField className=\"pt-form-field\">\n <label>{t(\"AUDIT_TO_DATE_LABEL\")}</label>\n <Controller render={(props) => <DatePicker date={props.value} onChange={props.onChange} />} name=\"toDate\" control={control} />\n </SearchField>\n <SearchField className=\"pt-search-action-submit\">\n <Button\n style={{ marginTop: isMobile ? \"510px\" : \"25px\", marginLeft: isMobile ? \"0\" : \"-30px\", maxWidth: isMobile ? \"100%\" : \"240px\" }}\n label={t(\"ES_COMMON_APPLY\")}\n submit\n />\n </SearchField>\n </>\n );\n};\nexport default SearchFields;\n","import {\n BackButton,\n DetailsCard,\n HeaderComponent,\n Loader,\n PopUp,\n SearchAction,\n SearchForm,\n CloseSvg,\n DownloadBtnCommon,\n} from \"@egovernments/digit-ui-components\";\nimport React, {\n useCallback,\n useEffect,\n useMemo,\n useReducer,\n useState,\n} from \"react\";\nimport SearchFormFields from \"./SearchFields\";\n// import { convertEpochToDateDMY } from \"../../utils\";\n\nconst MobileSearchApplication = ({\n Controller,\n register,\n control,\n t,\n reset,\n previousPage,\n handleSubmit,\n tenantId,\n data,\n onSubmit,\n isLoading,\n}) => {\n function activateModal(state, action) {\n switch (action.type) {\n case \"set\":\n return action.payload;\n case \"remove\":\n return false;\n default:\n break;\n }\n }\n const [tabledata, settabledata] = useState([]);\n const DownloadBtn = (props) => {\n return (\n <div onClick={props.onClick}>\n <DownloadBtnCommon />\n </div>\n );\n };\n const handleExcelDownload = (tabData) => {\n if (tabData?.[0] !== undefined) {\n return Digit.Download.Excel(tabData?.[0], \"AuditReport\");\n }\n };\n useEffect(() => {\n if (data?.length > 0) {\n settabledata([\n data?.map((obj) => {\n let returnObject = {};\n returnObject[t(\"AUDIT_DATE_LABEL\")] = convertEpochToDate(\n obj?.timestamp\n );\n returnObject[t(\"AUDIT_TIME_LABEL\")] = convertEpochToTimeInHours(\n obj?.timestamp\n );\n returnObject[t(\"AUDIT_DATAVIEWED_LABEL\")] =\n obj?.dataView[0] + \",\" + obj?.dataView[1];\n returnObject[t(\"AUDIT_DATAVIEWED_BY_LABEL\")] = obj?.dataViewedBy;\n returnObject[t(\"AUDIT_ROLE_LABEL\")] = obj?.roles\n .map((obj) => obj.name)\n .join(\",\");\n return {\n ...returnObject,\n };\n }),\n ]);\n }\n }, [data]);\n const convertEpochToDate = (dateEpoch) => {\n if (dateEpoch == null || dateEpoch == undefined || dateEpoch == \"\") {\n return \"NA\";\n }\n const dateFromApi = new Date(dateEpoch);\n let month = dateFromApi.getMonth() + 1;\n let day = dateFromApi.getDate();\n let year = dateFromApi.getFullYear();\n month = (month > 9 ? \"\" : \"0\") + month;\n day = (day > 9 ? \"\" : \"0\") + day;\n return `${day}/${month}/${year}`;\n };\n const convertEpochToTimeInHours = (dateEpoch) => {\n if (dateEpoch == null || dateEpoch == undefined || dateEpoch == \"\") {\n return \"NA\";\n }\n const dateFromApi = new Date(dateEpoch);\n let hour = dateFromApi.getHours();\n let min = dateFromApi.getMinutes();\n let period = hour > 12 ? \"PM\" : \"AM\";\n hour = hour > 12 ? hour - 12 : hour;\n hour = (hour > 9 ? \"\" : \"0\") + hour;\n min = (min > 9 ? \"\" : \"0\") + min;\n return `${hour}:${min} ${period}`;\n };\n const [currentlyActiveMobileModal, setActiveMobileModal] = useReducer(\n activateModal,\n false\n );\n\n const closeMobilePopupModal = () => {\n setActiveMobileModal({ type: \"remove\" });\n };\n\n const MobilePopUpCloseButton = () => (\n <div\n className=\"InboxMobilePopupCloseButtonWrapper\"\n onClick={closeMobilePopupModal}\n >\n <CloseSvg />\n </div>\n );\n const searchFormFieldsComponentProps = {\n Controller,\n register,\n control,\n t,\n reset,\n previousPage,\n };\n\n const MobileComponentDirectory = ({\n currentlyActiveMobileModal,\n searchFormFieldsComponentProps,\n tenantId,\n ...props\n }) => {\n const { closeMobilePopupModal } = props;\n switch (currentlyActiveMobileModal) {\n case \"SearchFormComponent\":\n return (\n <SearchForm {...props}>\n <MobilePopUpCloseButton />\n <div className=\"MobilePopupHeadingWrapper\">\n <h2>{t(\"PRIVACY_AUDIT_REPORT\")}:</h2>\n </div>\n <SearchFormFields\n {...searchFormFieldsComponentProps}\n {...{ closeMobilePopupModal, tenantId, t }}\n />\n {/* <SearchField className=\"submit\">\n <SubmitBar label={t(\"ES_COMMON_SEARCH\")} submit form=\"search-form\"/>\n <p onClick={onResetSearchForm}>{t(`ES_COMMON_CLEAR_ALL`)}</p>\n </SearchField> */}\n </SearchForm>\n );\n default:\n return <span></span>;\n }\n };\n const CurrentMobileModalComponent = useCallback(\n ({\n currentlyActiveMobileModal,\n searchFormFieldsComponentProps,\n tenantId,\n ...props\n }) =>\n MobileComponentDirectory({\n currentlyActiveMobileModal,\n searchFormFieldsComponentProps,\n tenantId,\n ...props,\n }),\n [currentlyActiveMobileModal]\n );\n let roles = [];\n data?.roles?.forEach((item) => {\n roles.push(item?.name);\n });\n const propsMobileInboxCards = useMemo(() => {\n if (data?.display) {\n return [];\n }\n if (data === \"\") {\n return [];\n }\n return data?.map((data) => ({\n [t(\"AUDIT_DATE_LABEL\")]: convertEpochToDate(data.timestamp),\n [t(\"AUDIT_TIME_LABEL\")]: convertEpochToTimeInHours(data.timestamp),\n [t(\"AUDIT_DATAVIEWED_LABEL\")]: data.dataView[0] + \",\" + data.dataView[1],\n [t(\"AUDIT_DATAVIEWED_BY_LABEL\")]: data.dataViewedBy,\n [t(\"AUDIT_ROLE_LABEL\")]: data.roles\n .slice(0, 3)\n ?.map((e) => e.name)\n .join(\",\"),\n }));\n }, [data]);\n\n return (\n <React.Fragment>\n <BackButton />\n <div\n className=\"sideContent\"\n style={{ marginLeft: \"70%\", marginTop: \"-12%\" }}\n >\n <DownloadBtn\n className=\"mrlg cursorPointer\"\n onClick={() => handleExcelDownload(tabledata)}\n />\n </div>\n <HeaderComponent>{t(\"PRIVACY_AUDIT_REPORT\")}:</HeaderComponent>\n <div className=\"digit-search-box\">\n <SearchAction\n text={t(\"ES_COMMON_SEARCH\")}\n handleActionClick={() =>\n setActiveMobileModal({\n type: \"set\",\n payload: \"SearchFormComponent\",\n })\n }\n {...{ tenantId, t }}\n />\n </div>\n {currentlyActiveMobileModal ? (\n <PopUp>\n <CurrentMobileModalComponent\n onSubmit={(data) => {\n setActiveMobileModal({ type: \"remove\" });\n onSubmit(data);\n }}\n handleSubmit={handleSubmit}\n id=\"search-form\"\n className=\"rm-mb form-field-flex-one inboxPopupMobileWrapper\"\n {...{\n searchFormFieldsComponentProps,\n currentlyActiveMobileModal,\n closeMobilePopupModal,\n tenantId,\n }}\n />\n </PopUp>\n ) : null}\n {isLoading && <Loader />}\n <DetailsCard\n {...{\n data: propsMobileInboxCards,\n }}\n />\n </React.Fragment>\n );\n};\n\nexport default MobileSearchApplication;\n","import {\n DownloadBtnCommon,\n Table,\n} from \"@egovernments/digit-ui-react-components\";\nimport {\n BackButton,\n Loader,\n SearchForm,\n HeaderComponent\n} from \"@egovernments/digit-ui-components\";\nimport React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { Controller, useForm } from \"react-hook-form\";\nimport MobileSearchApplication from \"./MobileSearchApplication\";\nimport SearchFields from \"./SearchFields\";\n\nconst SearchApplication = ({ tenantId, t, onSubmit, data, count }) => {\n const initialValues = Digit.SessionStorage.get(\n \"AUDIT_APPLICATION_DETAIL\"\n ) || {\n offset: 0,\n limit: 5,\n sortOrder: \"DESC\",\n };\n const {\n register,\n control,\n handleSubmit,\n setValue,\n getValues,\n reset,\n } = useForm({\n defaultValues: initialValues,\n });\n const convertEpochToDate = (dateEpoch) => {\n if (dateEpoch == null || dateEpoch == undefined || dateEpoch == \"\") {\n return \"NA\";\n }\n const dateFromApi = new Date(dateEpoch);\n let month = dateFromApi.getMonth() + 1;\n let day = dateFromApi.getDate();\n let year = dateFromApi.getFullYear();\n month = (month > 9 ? \"\" : \"0\") + month;\n day = (day > 9 ? \"\" : \"0\") + day;\n return `${day}/${month}/${year}`;\n };\n const convertEpochToTimeInHours = (dateEpoch) => {\n if (dateEpoch == null || dateEpoch == undefined || dateEpoch == \"\") {\n return \"NA\";\n }\n const dateFromApi = new Date(dateEpoch);\n let hour = dateFromApi.getHours();\n let min = dateFromApi.getMinutes();\n let period = hour > 12 ? \"PM\" : \"AM\";\n hour = hour > 12 ? hour - 12 : hour;\n hour = (hour > 9 ? \"\" : \"0\") + hour;\n min = (min > 9 ? \"\" : \"0\") + min;\n return `${hour}:${min} ${period}`;\n };\n const [tabledata, settabledata] = useState([]);\n const DownloadBtn = (props) => {\n return (\n <div onClick={props.onClick}>\n <DownloadBtnCommon />\n </div>\n );\n };\n const handleExcelDownload = (tabData) => {\n if (tabData?.[0] !== undefined) {\n return Digit.Download.Excel(tabData?.[0], \"AuditReport\");\n }\n };\n useEffect(() => {\n register(\"offset\", 0);\n register(\"limit\", 5);\n register(\"sortOrder\", \"DESC\");\n }, [register]);\n useEffect(() => {\n if (data?.length > 0) {\n settabledata([\n data?.map((obj) => {\n let returnObject = {};\n returnObject[t(\"AUDIT_DATE_LABEL\")] = convertEpochToDate(\n obj?.timestamp\n );\n returnObject[t(\"AUDIT_TIME_LABEL\")] = convertEpochToTimeInHours(\n obj?.timestamp\n );\n returnObject[t(\"AUDIT_DATAVIEWED_LABEL\")] =\n obj?.dataView[0] + \",\" + obj?.dataView[1];\n returnObject[t(\"AUDIT_DATAVIEWED_BY_LABEL\")] = obj?.dataViewedBy;\n returnObject[t(\"AUDIT_ROLE_LABEL\")] = obj?.roles\n .map((obj) => obj.name)\n .join(\",\");\n return {\n ...returnObject,\n };\n }),\n ]);\n }\n }, [data]);\n const onSort = useCallback((args) => {\n if (args.length === 0) return;\n setValue(\"sortBy\", args.id);\n setValue(\"sortOrder\", args.desc ? \"DESC\" : \"ASC\");\n }, []);\n\n function onPageSizeChange(e) {\n setValue(\"limit\", Number(e.target.value));\n handleSubmit(onSubmit)();\n }\n\n function nextPage() {\n setValue(\"offset\", getValues(\"offset\") + getValues(\"limit\"));\n handleSubmit(onSubmit)();\n }\n function previousPage() {\n setValue(\"offset\", getValues(\"offset\") - getValues(\"limit\"));\n handleSubmit(onSubmit)();\n }\n const isMobile = window.Digit.Utils.browser.isMobile();\n\n if (isMobile) {\n return (\n <MobileSearchApplication\n {...{\n Controller,\n register,\n control,\n t,\n reset,\n previousPage,\n handleSubmit,\n tenantId,\n data,\n onSubmit,\n }}\n />\n );\n }\n\n //need to get from workflow\n const GetCell = (value) => <span className=\"cell-text\">{value}</span>;\n const columns = useMemo(\n () => [\n {\n Header: t(\"AUDIT_DATE_LABEL\"),\n disableSortBy: true,\n accessor: (row) => {\n const timestamp =\n row.timestamp === \"NA\"\n ? t(\"WS_NA\")\n : convertEpochToDate(row.timestamp);\n return GetCell(`${timestamp}`);\n },\n },\n {\n Header: t(\"AUDIT_TIME_LABEL\"),\n disableSortBy: true,\n accessor: (row) => {\n const timestamp =\n row.timestamp === \"NA\"\n ? t(\"WS_NA\")\n : convertEpochToTimeInHours(row.timestamp);\n return GetCell(`${timestamp}`);\n },\n },\n {\n Header: isMobile\n ? t(\"AUDIT_DATAVIEWED_LABEL\")\n : t(\"AUDIT_DATAVIEWED_PRIVACY\"),\n disableSortBy: true,\n accessor: (row) => {\n return GetCell(`${row?.dataView}`);\n },\n },\n {\n Header: isMobile\n ? t(\"AUDIT_DATAVIEWED_BY_LABEL\")\n : t(\"AUDIT_DATAVIEWED_BY_PRIVACY\"),\n disableSortBy: true,\n accessor: (row) => {\n return GetCell(`${row?.dataViewedBy}`);\n },\n },\n {\n Header: t(\"AUDIT_ROLE_LABEL\"),\n disableSortBy: true,\n accessor: (row) => {\n return GetCell(`${row?.roles.slice(0, 3)?.map((e) => e.name)}`);\n },\n },\n ],\n []\n );\n\n return (\n <React.Fragment>\n <div style={{ marginRight: \"-70px\" }}>\n {\" \"}\n <BackButton />{\" \"}\n </div>\n <div style={{ marginTop: \"30px\", marginLeft: \"30px\" }}>\n {\" \"}\n <HeaderComponent>{t(\"PRIVACY_AUDIT_REPORT\")}</HeaderComponent>{\" \"}\n </div>\n <SearchForm\n className=\"audit-card\"\n onSubmit={onSubmit}\n handleSubmit={handleSubmit}\n >\n <SearchFields\n {...{ register, control, reset, tenantId, t, previousPage }}\n />\n </SearchForm>\n <div\n style={{\n marginTop: \"240px\",\n marginLeft: \"-55%\",\n maxWidth: \"80%\",\n marginRight: \"52px\",\n }}\n >\n {data?.display ? (\n <div\n style={{\n marginTop: \"20x\",\n width: \"1025px\",\n marginLeft: \"25px\",\n backgroundColor: \"white\",\n height: \"60px\",\n }}\n >\n {t(data.display)\n .split(\"\\\\n\")\n .map((text, index) => (\n <p key={index} style={{ textAlign: \"center\" }}>\n {text}\n </p>\n ))}\n </div>\n ) : data !== \"\" ? (\n <div\n style={{\n backgroundColor: \"white\",\n marginRight: \"-30px\",\n marginLeft: \"30px\",\n }}\n >\n <div\n className=\"sideContent\"\n style={{ float: \"right\", padding: \"10px 30px\" }}\n >\n <DownloadBtn\n className=\"mrlg cursorPointer\"\n onClick={() => handleExcelDownload(tabledata)}\n />\n </div>\n <Table\n t={t}\n data={data}\n totalRecords={count}\n columns={columns}\n getCellProps={(cellInfo) => {\n return {\n style: {\n minWidth:\n cellInfo.column.Header === t(\"ES_INBOX_APPLICATION_NO\")\n ? \"240px\"\n : \"\",\n padding: \"20px 18px\",\n fontSize: \"16px\",\n },\n };\n }}\n onPageSizeChange={onPageSizeChange}\n currentPage={getValues(\"offset\") / getValues(\"limit\")}\n onNextPage={nextPage}\n onPrevPage={previousPage}\n manualPagination={false}\n pageSizeLimit={getValues(\"limit\")}\n onSort={onSort}\n disableSort={false}\n sortParams={[\n {\n id: getValues(\"sortBy\"),\n desc: getValues(\"sortOrder\") === \"DESC\" ? true : false,\n },\n ]}\n />\n </div>\n ) : (\n <Loader />\n )}\n </div>\n </React.Fragment>\n );\n};\n\nexport default SearchApplication;\n","import React, { useEffect, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport AuditSearchApplication from \"../../components/Search\";\nconst Search = ({ path }) => {\n const { t } = useTranslation();\n const tenantId = Digit.ULBService.getCitizenCurrentTenant()\n const [payload, setPayload] = useState({});\n const convertDateToEpoch = (dateString, dayStartOrEnd = \"dayend\") => {\n //example input format : \"2018-10-02\"\n try {\n const parts = dateString.match(/(\\d{4})-(\\d{1,2})-(\\d{1,2})/);\n const DateObj = new Date(Date.UTC(parts[1], parts[2] - 1, parts[3]));\n DateObj.setMinutes(DateObj.getMinutes() + DateObj.getTimezoneOffset());\n if (dayStartOrEnd === \"dayend\") {\n DateObj.setHours(DateObj.getHours() + 24);\n DateObj.setSeconds(DateObj.getSeconds() - 1);\n }\n return DateObj.getTime();\n } catch (e) {\n return dateString;\n }\n };\n function onSubmit(_data) {\n Digit.SessionStorage.set(\"AUDIT_APPLICATION_DETAIL\", {\n offset: 0,\n limit: 5,\n sortBy: \"commencementDate\",\n sortOrder: \"DESC\",\n });\n const data = {\n ..._data,\n fromDate: convertDateToEpoch(_data?.fromDate),\n toDate: convertDateToEpoch(_data?.toDate),\n };\n \n setPayload(\n Object.keys(data)\n .filter((k) => data[k])\n .reduce((acc, key) => ({ ...acc, [key]: typeof data[key] === \"object\" ? data[key] : data[key] }), {})\n );\n }\n useEffect(() => {\n const storedPayload = Digit.SessionStorage.get(\"AUDIT_APPLICATION_DETAIL\") || {};\n if (storedPayload) {\n const data = {\n ...storedPayload,\n };\n \n setPayload(\n Object.keys(data)\n .filter((k) => data[k])\n .reduce((acc, key) => ({ ...acc, [key]: typeof data[key] === \"object\" ? data[key].code : data[key] }), {})\n );\n }\n }, []);\n const config = {\n enabled: !!(payload && Object.keys(payload).length > 0),\n };\n const newObj = { ...payload };\n \n const {\n isLoading,\n data,\n} = Digit.Hooks.useAudit({\n tenantId,\n filters: {\n ...newObj,\n },\n config,\n });\n\n return (\n <AuditSearchApplication\n t={t}\n tenantId={tenantId}\n onSubmit={onSubmit}\n data={\n !isLoading\n ? data?.ElasticSearchData?.length > 0\n ? data?.ElasticSearchData\n : { display: \"ES_COMMON_NO_DATA\" }\n : \"\"\n }\n count={data?.ElasticSearchData?.length}\n />\n );\n };\n export default Search;","import {\n Card,\n Loader,\n CaseIcon,\n ComplaintIcon,\n HelpLineIcon,\n MCollectIcon,\n PTIcon,\n RupeeSymbol,\n ServiceCenterIcon,\n TimerIcon,\n ValidityTimeIcon,\n WhatsappIconGreen,\n} from \"@egovernments/digit-ui-components\";\nimport React from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nconst StaticDynamicCard = ({ moduleCode }) => {\n const { t } = useTranslation();\n const tenantId = Digit.ULBService.getCitizenCurrentTenant();\n const {\n isLoading: isMdmsLoading,\n data: mdmsData,\n } = Digit.Hooks.useStaticData(Digit.ULBService.getStateId());\n const {\n isLoading: isSearchLoading,\n error,\n data: dynamicData,\n isSuccess,\n } = Digit.Hooks.useDynamicData({\n moduleCode,\n tenantId: tenantId,\n filters: {},\n t,\n });\n const handleClickOnWhatsApp = (obj) => {\n window.open(obj);\n };\n\n const IconComponent = ({ module, styles }) => {\n switch (module) {\n case \"TL\":\n return <CaseIcon className=\"fill-path-primary-main\" styles={styles} />;\n case \"PT\":\n return <PTIcon className=\"fill-path-primary-main\" styles={styles} />;\n case \"MCOLLECT\":\n return (\n <MCollectIcon className=\"fill-path-primary-main\" styles={styles} />\n );\n case \"PGR\":\n return (\n <ComplaintIcon className=\"fill-path-primary-main\" styles={styles} />\n );\n default:\n return <CaseIcon className=\"fill-path-primary-main\" styles={styles} />;\n }\n };\n const mdmsConfigResult =\n mdmsData?.MdmsRes[\"common-masters\"]?.StaticData[0]?.[`${moduleCode}`];\n\n const StaticDataIconComponentOne = ({ module }) => {\n switch (module) {\n case \"PT\":\n case \"WS\":\n return (\n <span className=\"timerIcon\">\n <TimerIcon />\n </span>\n );\n default:\n return null;\n }\n };\n const StaticDataIconComponentTwo = ({ module }) => {\n switch (module) {\n case \"PT\":\n return (\n <span className=\"rupeeSymbol\">\n <RupeeSymbol />\n </span>\n );\n case \"WS\":\n return (\n <span className=\"timerIcon\">\n <TimerIcon />\n </span>\n );\n default:\n return null;\n }\n };\n const staticContent = (module) => {\n switch (module) {\n case \"TL\":\n case \"PT\":\n case \"MCOLLECT\":\n return {\n staticCommonContent: t(\"COMMON_VALIDITY\"),\n validity:\n mdmsConfigResult?.validity +\n (mdmsConfigResult?.validity === \"1\"\n ? t(\"COMMON_DAY\")\n : t(\"COMMON_DAYS\")),\n };\n case \"PGR\":\n return {\n staticCommonContent: t(\"ACTION_TEST_COMPLAINT_TYPES\"),\n };\n case \"OBPS\":\n return {\n staticCommonContent: t(\"BUILDING_PLAN_PERMIT_VALIDITY\"),\n validity:\n mdmsConfigResult?.validity +\n \" \" +\n (mdmsConfigResult?.validity === \"1\"\n ? t(\"COMMON_DAY\")\n : t(\"COMMON_DAYS\")),\n };\n default:\n return {\n staticCommonContent: \"\",\n };\n }\n };\n\n const staticData = (module) => {\n switch (module) {\n case \"PT\":\n return {\n staticDataOne:\n mdmsConfigResult?.staticDataOne + \" \" + t(\"COMMON_DAYS\"),\n staticDataOneHeader: t(\"APPLICATION_PROCESSING_TIME\"),\n staticDataTwo: mdmsConfigResult?.staticDataTwo,\n staticDataTwoHeader: t(\"APPLICATION_PROCESSING_FEE\"),\n };\n case \"WS\":\n return {\n staticDataOne: \"\",\n staticDataOneHeader:\n t(\"PAY_WATER_CHARGES_BY\") +\n \" \" +\n mdmsConfigResult?.staticDataOne +\n \" \" +\n t(\"COMMON_DAYS\") +\n \" \" +\n t(\"OF_BILL_GEN_TO_AVOID_LATE_FEE\"),\n staticDataTwo:\n mdmsConfigResult?.staticDataTwo + \" \" + t(\"COMMON_DAYS\"),\n staticDataTwoHeader: t(\"APPLICATION_PROCESSING_TIME\"),\n };\n default:\n return {};\n }\n };\n\n if (isMdmsLoading || isSearchLoading) {\n return <Loader />;\n }\n return mdmsConfigResult ? (\n <React.Fragment>\n {mdmsConfigResult && mdmsConfigResult?.payViaWhatsApp ? (\n <Card style={{ margin: \"16px\", padding: \"16px\", maxWidth: \"unset\" }}>\n <div\n className=\"pay-whatsapp-card\"\n onClick={() =>\n handleClickOnWhatsApp(mdmsConfigResult?.payViaWhatsApp)\n }\n >\n <div className=\"pay-whatsapp-text\">{t(\"PAY_VIA_WHATSAPP\")}</div>\n <div className=\"whatsAppIconG\">\n <WhatsappIconGreen />\n </div>\n </div>\n </Card>\n ) : null}\n {mdmsConfigResult && mdmsConfigResult?.helpline ? (\n <Card style={{ margin: \"16px\", padding: \"16px\", maxWidth: \"unset\" }}>\n <div className=\"static-home-Card\">\n <div className=\"static-home-Card-header\">\n {t(\"CALL_CENTER_HELPLINE\")}\n </div>\n <div className=\"helplineIcon\">\n <HelpLineIcon />\n </div>\n </div>\n <div className=\"call-center-card-text\">\n {mdmsConfigResult?.helpline?.contactOne ? (\n <div className=\"call-center-card-content\">\n <a href={`tel:${mdmsConfigResult?.helpline?.contactOne}`}>\n {mdmsConfigResult?.helpline?.contactOne}\n </a>\n </div>\n ) : null}\n {mdmsConfigResult?.helpline?.contactTwo ? (\n <div className=\"call-center-card-content\">\n <a href={`tel:${mdmsConfigResult?.helpline?.contactTwo}`}>\n {mdmsConfigResult?.helpline?.contactTwo}\n </a>\n </div>\n ) : null}\n </div>\n </Card>\n ) : null}\n {mdmsConfigResult && mdmsConfigResult?.serviceCenter ? (\n <Card style={{ margin: \"16px\", padding: \"16px\", maxWidth: \"unset\" }}>\n <div className=\"static-home-Card\">\n <div className=\"static-home-Card-header\">\n {t(\"CITIZEN_SERVICE_CENTER\")}\n </div>\n <div className=\"serviceCentrIcon\">\n <ServiceCenterIcon />\n </div>\n </div>\n <div className=\"service-center-details-card\">\n <div className=\"service-center-details-text\">\n {mdmsConfigResult?.serviceCenter}\n </div>\n </div>\n {mdmsConfigResult?.viewMapLocation ? (\n <div className=\"link\">\n <a href={mdmsConfigResult?.viewMapLocation}>{t(\"VIEW_ON_MAP\")}</a>\n </div>\n ) : null}\n </Card>\n ) : (\n <div />\n )}\n <Card style={{ margin: \"16px\", padding: \"16px\", maxWidth: \"unset\" }}>\n {error ||\n dynamicData == null ||\n dynamicData?.dynamicDataOne === null ? (\n <div />\n ) : (\n <div className=\"dynamicDataCard\">\n <div className=\"dynamicData\">\n <IconComponent\n module={moduleCode}\n styles={{ width: \"24px\", height: \"24px\" }}\n />\n <span className=\"dynamicData-content\">\n {dynamicData?.dynamicDataOne}\n </span>\n </div>\n </div>\n )}\n {error ||\n dynamicData == null ||\n dynamicData?.dynamicDataTwo === null ? (\n <div />\n ) : (\n <div className=\"dynamicDataCard\">\n <div className=\"dynamicData\">\n <IconComponent\n module={moduleCode}\n styles={{ width: \"24px\", height: \"24px\" }}\n />\n <span className=\"dynamicData-content\">\n {dynamicData?.dynamicDataTwo}\n </span>\n </div>\n </div>\n )}\n {mdmsConfigResult && mdmsConfigResult?.staticDataOne ? (\n <div className=\"staticDataCard\">\n <div className=\"staticData\">\n <StaticDataIconComponentOne module={moduleCode} />\n <span className=\"static-data-content\">\n <span\n className=\"static-data-content-first\"\n style={{\n marginTop:\n staticData(moduleCode)?.staticDataOne === \"\"\n ? \"8px\"\n : \"unset\",\n }}\n >\n {staticData(moduleCode)?.staticDataOneHeader}\n </span>\n <span className=\"static-data-content-second\">{`${\n staticData(moduleCode)?.staticDataOne\n }`}</span>\n </span>\n </div>\n </div>\n ) : (\n <div />\n )}\n {mdmsConfigResult && mdmsConfigResult?.staticDataTwo ? (\n <div className=\"staticDataCard\">\n <div className=\"staticData\">\n <StaticDataIconComponentTwo module={moduleCode} />\n <span className=\"static-data-content\">\n <span className=\"static-data-content-first\">\n {staticData(moduleCode)?.staticDataTwoHeader}\n </span>\n <span className=\"static-data-content-second\">\n {staticData(moduleCode)?.staticDataTwo}\n </span>\n </span>\n </div>\n </div>\n ) : (\n <div />\n )}\n {mdmsConfigResult && mdmsConfigResult?.validity ? (\n <div className=\"staticDataCard\">\n <div className=\"staticData\">\n <span className=\"validityIcon\">\n <ValidityTimeIcon />\n </span>\n <span className=\"static-data-content\">\n <span className=\"static-data-content-first\">\n {staticContent(moduleCode)?.staticCommonContent}\n </span>\n <span className=\"static-data-content-second\">\n {staticContent(moduleCode)?.validity}\n </span>\n </span>\n </div>\n </div>\n ) : (\n <div />\n )}\n {error ||\n dynamicData == null ||\n !dynamicData?.staticData ||\n dynamicData?.staticData === null ? (\n <div />\n ) : (\n <div className=\"staticDataCard\">\n <div className=\"staticData\">\n {moduleCode === \"PGR\" ? (\n <IconComponent\n module={moduleCode}\n styles={{\n width: \"24px\",\n height: \"24px\",\n marginLeft: \"13px\",\n marginTop: \"12px\",\n }}\n />\n ) : (\n <span className=\"validityIcon\">\n <ValidityTimeIcon />\n </span>\n )}\n <span className=\"static-data-content\">\n <span className=\"static-data-content-first\">\n {staticContent(moduleCode)?.staticCommonContent}\n </span>\n <span className=\"static-data-content-second\">\n {dynamicData?.staticData}\n </span>\n </span>\n </div>\n </div>\n )}\n </Card>\n </React.Fragment>\n ) : (\n <React.Fragment />\n );\n};\n\nexport default StaticDynamicCard;\n","import React, { useState } from \"react\";\nimport { SideNav, Loader } from \"@egovernments/digit-ui-components\";\nimport { useTranslation } from \"react-i18next\";\nimport { useNavigate } from \"react-router-dom\";\nimport MediaQuery from \"react-responsive\";\nimport LogoutDialog from \"../../Dialog/LogoutDialog\";\n\nconst CitizenSideNav = ({ linkData, islinkDataLoading }) => {\n const { t } = useTranslation();\n const navigate = useNavigate();\n const isMultiRootTenant = Digit.Utils.getMultiRootTenant();\n const tenantId = Digit?.ULBService?.getStateId();\n const user = Digit.UserService.getUser();\n const isLoggedIn = user && user.access_token && user?.info?.type === \"CITIZEN\";\n\n const [showDialog, setShowDialog] = useState(false);\n\n const handleLogoutSubmit = () => {\n Digit.UserService.logout();\n setShowDialog(false);\n window.location.href = `/${window?.contextPath}/citizen/login`;\n };\n\n const handleLogoutCancel = () => {\n setShowDialog(false);\n };\n\n const navigateToUrl = (url) => {\n if (!url || url === \"/\") return;\n\n const isExternal = /^https?:\\/\\//i.test(url);\n if (isExternal) {\n window.open(url, \"_blank\", \"noopener,noreferrer\");\n return;\n }\n\n if (!url.includes(`/${window?.contextPath}`)) {\n const hostUrl = window.location.origin;\n if (isMultiRootTenant) {\n const contextPath = window?.contextPath || \"sandbox-ui\";\n url = url.replace(`/${contextPath}/citizen`, `/${contextPath}/${tenantId}/citizen`);\n navigate(url);\n } else {\n const updatedUrl = hostUrl + url;\n try {\n window.location.href = updatedUrl;\n } catch (error) {\n console.warn(\"Navigation failed, attempting fallback:\", error);\n window.location.replace(updatedUrl);\n }\n }\n } else {\n navigate(url);\n }\n };\n\n const onItemSelect = ({ item }) => {\n if (item?.navigationUrl) {\n navigateToUrl(item.navigationUrl);\n }\n };\n\n const onBottomItemClick = (item) => {\n if (item === \"Logout\") {\n setShowDialog(true);\n }\n };\n\n const buildItems = () => {\n const isDigitStudio = window.location.href.includes(\"digit-studio\");\n const items = [];\n let orderCounter = 1;\n\n if (isLoggedIn) {\n items.push({\n label: t(\"COMMON_BOTTOM_NAVIGATION_HOME\"),\n icon: { icon: \"Home\", width: \"1.5rem\", height: \"1.5rem\" },\n navigationUrl: `/${window?.contextPath}/citizen`,\n orderNumber: orderCounter++,\n });\n\n items.push({\n label: t(\"EDIT_PROFILE\"),\n icon: { icon: \"Edit\", width: \"1.5rem\", height: \"1.5rem\" },\n navigationUrl: `/${window?.contextPath}/citizen/user/profile`,\n orderNumber: orderCounter++,\n });\n }\n\n Object.keys(linkData || {})\n ?.sort((x, y) => x.localeCompare(y))\n ?.forEach((key) => {\n const moduleEntries = linkData[key];\n if (!moduleEntries || moduleEntries.length === 0) return;\n\n // Check if any entry in this module has a sidebar value ending with \"-links\"\n const hasSidebarLink = moduleEntries.some((entry) => entry.sidebar?.endsWith(\"-links\"));\n if (!hasSidebarLink) return;\n\n const rawIcon = moduleEntries[0]?.leftIcon;\n const leftIcon = isDigitStudio && (!rawIcon || rawIcon === \"TLIcon\") ? \"Devices\" : (rawIcon || \"ViewModule\");\n\n // Deduplicate entries by name to avoid duplicate children\n const seen = new Set();\n const uniqueEntries = moduleEntries.filter((entry) => {\n if (seen.has(entry.name)) return false;\n seen.add(entry.name);\n return true;\n });\n\n // Build children from all entries (Apply, My Applications, etc.)\n const children = uniqueEntries.map((entry) => ({\n label: t(entry.displayName || entry.i18nKey),\n icon: { icon: isDigitStudio && (!entry.leftIcon || entry.leftIcon === \"TLIcon\") ? \"Devices\" : (entry.leftIcon || \"ViewModule\"), width: \"1.5rem\", height: \"1.5rem\" },\n navigationUrl: entry.navigationURL || entry.link,\n orderNumber: entry.orderNumber,\n }));\n\n // Sort children by orderNumber\n children.sort((a, b) => {\n const aOrder = a.orderNumber !== undefined ? a.orderNumber : Infinity;\n const bOrder = b.orderNumber !== undefined ? b.orderNumber : Infinity;\n return aOrder - bOrder;\n });\n\n if (children.length === 1) {\n // Single entry — render as flat item (no parent/child nesting)\n items.push({\n label: t(`ACTION_TEST_${Digit.Utils.locale.getTransformedLocale(key)}`),\n icon: { icon: leftIcon, width: \"1.5rem\", height: \"1.5rem\" },\n navigationUrl: children[0].navigationUrl,\n orderNumber: orderCounter++,\n });\n } else {\n // Multiple entries — render as parent with children\n items.push({\n label: t(`ACTION_TEST_${Digit.Utils.locale.getTransformedLocale(key)}`),\n icon: { icon: leftIcon, width: \"1.5rem\", height: \"1.5rem\" },\n children: children,\n orderNumber: orderCounter++,\n });\n }\n });\n\n items.sort((a, b) => {\n const aOrder = a.orderNumber !== undefined ? a.orderNumber : Infinity;\n const bOrder = b.orderNumber !== undefined ? b.orderNumber : Infinity;\n return aOrder - bOrder;\n });\n\n return items;\n };\n\n if (islinkDataLoading) {\n return <Loader />;\n }\n\n const items = buildItems();\n\n return (\n <React.Fragment>\n <MediaQuery minWidth={768}>\n <SideNav\n items={items}\n hideAccessbilityTools={!isLoggedIn}\n onSelect={onItemSelect}\n theme={window?.globalConfigs?.getConfig(\"SIDENAV_THEME\") || \"light\"}\n enableSearch={true}\n variant={window?.globalConfigs?.getConfig(\"SIDENAV_VARIANT\") || \"primary\"}\n transitionDuration={\"\"}\n className=\"\"\n styles={{ position : \"unset\"}}\n expandedWidth=\"\"\n collapsedWidth=\"\"\n onBottomItemClick={onBottomItemClick}\n />\n </MediaQuery>\n {showDialog && (\n <LogoutDialog\n onSelect={handleLogoutSubmit}\n onCancel={handleLogoutCancel}\n onDismiss={handleLogoutCancel}\n />\n )}\n </React.Fragment>\n );\n};\n\nexport default CitizenSideNav;\n","import { BackLink, CitizenHomeCard, CitizenInfoLabel } from \"@egovernments/digit-ui-components\";\nimport React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Routes, Route, useNavigate, useLocation } from \"react-router-dom\";\nimport ErrorBoundary from \"../../components/ErrorBoundaries\";\nimport { AppHome, processLinkData } from \"../../components/Home\";\nimport TopBarSideBar from \"../../components/TopBarSideBar\";\nimport CitizenSideNav from \"../../components/TopBarSideBar/SideBar/CitizenSideNav\";\nimport ImageComponent from \"../../components/ImageComponent\";\nimport { lazyWithFallback } from \"@egovernments/digit-ui-components\";\nimport DynamicModuleLoader from \"../../components/DynamicModuleLoader\";\n\n// Create lazy components with fallbacks using the utility\nconst ErrorComponent = lazyWithFallback(\n () => import(/* webpackChunkName: \"citizen-error-component\" */ \"../../components/ErrorComponent\"),\n () => require(\"../../components/ErrorComponent\").default,\n { loaderText: \"CORE_LOADING_ERROR_COMPONENT\" }\n);\n\nconst FAQsSection = lazyWithFallback(\n () => import(/* webpackChunkName: \"citizen-faqs\" */ \"./FAQs/FAQs\"),\n () => require(\"./FAQs/FAQs\").default,\n { loaderText: \"CORE_LOADING_FAQS\" }\n);\n\nconst CitizenHome = lazyWithFallback(\n () => import(/* webpackChunkName: \"citizen-home\" */ \"./Home\"),\n () => require(\"./Home\").default,\n { loaderText: \"CORE_LOADING_HOME\" }\n);\n\nconst LanguageSelection = lazyWithFallback(\n () => import(/* webpackChunkName: \"citizen-language-selection\" */ \"./Home/LanguageSelection\"),\n () => require(\"./Home/LanguageSelection\").default,\n { loaderText: \"CORE_LOADING_LANGUAGE_SELECTION\" }\n);\n\nconst LocationSelection = lazyWithFallback(\n () => import(/* webpackChunkName: \"citizen-location-selection\" */ \"./Home/LocationSelection\"),\n () => require(\"./Home/LocationSelection\").default,\n { loaderText: \"CORE_LOADING_LOCATION_SELECTION\" }\n);\n\nconst UserProfile = lazyWithFallback(\n () => import(/* webpackChunkName: \"citizen-user-profile\" */ \"./Home/UserProfile\"),\n () => require(\"./Home/UserProfile\").default,\n { loaderText: \"CORE_LOADING_USER_PROFILE\" }\n);\n\nconst HowItWorks = lazyWithFallback(\n () => import(/* webpackChunkName: \"citizen-how-it-works\" */ \"./HowItWorks/howItWorks\"),\n () => require(\"./HowItWorks/howItWorks\").default,\n { loaderText: \"CORE_LOADING_HOW_IT_WORKS\" }\n);\n\nconst Login = lazyWithFallback(\n () => import(/* webpackChunkName: \"citizen-login\" */ \"./Login\"),\n () => require(\"./Login\").default,\n { loaderText: \"CORE_LOADING_LOGIN\" }\n);\n\nconst Search = lazyWithFallback(\n () => import(/* webpackChunkName: \"citizen-search\" */ \"./SearchApp\"),\n () => require(\"./SearchApp\").default,\n { loaderText: \"CORE_LOADING_SEARCH\" }\n);\n\nconst StaticDynamicCard = lazyWithFallback(\n () => import(/* webpackChunkName: \"citizen-static-dynamic-card\" */ \"./StaticDynamicComponent/StaticDynamicCard\"),\n () => require(\"./StaticDynamicComponent/StaticDynamicCard\").default,\n { loaderText: \"CORE_LOADING_DYNAMIC_CONTENT\" }\n);\n\nconst sidebarHiddenFor = [\n `${window?.contextPath}/citizen/register/name`,\n `/${window?.contextPath}/citizen/select-language`,\n `/${window?.contextPath}/citizen/select-location`,\n `/${window?.contextPath}/citizen/login`,\n `/${window?.contextPath}/citizen/register/otp`,\n];\n\nconst getTenants = (codes, tenants) => {\n return tenants.filter((tenant) => codes.map((item) => item.code).includes(tenant.code));\n};\n\nconst Home = ({\n stateInfo,\n userDetails,\n CITIZEN,\n cityDetails,\n mobileView,\n handleUserDropdownSelection,\n logoUrl,\n DSO,\n stateCode,\n modules,\n appTenants,\n sourceUrl, // This prop seems unused, consider removing\n pathname, // This prop seems unused, `useLocation().pathname` is used directly\n initData,\n}) => {\n const { isLoading: islinkDataLoading, data: linkData, isFetched: isLinkDataFetched } = Digit.Hooks.useCustomMDMS(\n Digit.ULBService.getStateId(),\n \"ACCESSCONTROL-ACTIONS-TEST\",\n [\n {\n name: \"actions-test\",\n filter: `[?(@.url == '${Digit.Utils.getMultiRootTenant() ? window.globalPath : window.contextPath}-card')]`,\n },\n ],\n {\n select: (data) => {\n const formattedData = data?.[\"ACCESSCONTROL-ACTIONS-TEST\"]?.[\"actions-test\"]\n ?.filter((el) => el.enabled === true)\n .reduce((a, b) => {\n a[b.parentModule] = a[b.parentModule]?.length > 0 ? [b, ...a[b.parentModule]] : [b];\n return a;\n }, {});\n return formattedData;\n },\n }\n );\n const classname = Digit.Hooks.useRouteSubscription(pathname);\n const { t } = useTranslation();\n const navigate = useNavigate();\n const location = useLocation();\n\n const handleClickOnWhatsApp = (obj) => {\n window.open(obj);\n };\n\n const hideSidebar = sidebarHiddenFor.some((e) => window.location.href.includes(e));\n\n // Create app routes with dynamic module loading and loading states for citizen modules\n const appRoutes = modules.map(({ code, tenants }, index) => {\n return (\n <Route\n key={index}\n path={`${code.toLowerCase()}/*`}\n element={\n <DynamicModuleLoader\n moduleCode={code}\n stateCode={stateCode}\n userType=\"citizen\"\n tenants={getTenants(tenants, appTenants)}\n maxRetries={3}\n retryDelay={1000}\n initialDelay={800}\n />\n }\n />\n );\n });\n\n const ModuleLevelLinkHomePages = modules.map(({ code, bannerImage }, index) => {\n let Links = Digit.ComponentRegistryService.getComponent(`${code}Links`) || (() => <React.Fragment />);\n let mdmsDataObj = isLinkDataFetched ? processLinkData(linkData, code, t) : undefined;\n\n if (mdmsDataObj?.header === \"ACTION_TEST_WS\") {\n mdmsDataObj?.links.sort((a, b) => {\n return b.orderNumber - a.orderNumber;\n });\n }\n return (\n <React.Fragment key={code + \"-routes\"}>\n <Route path={`${code.toLowerCase()}-home`} element={\n <div className=\"moduleLinkHomePage\">\n <ImageComponent src={bannerImage || stateInfo?.bannerUrl} alt=\"noimagefound\" />\n <BackLink className=\"moduleLinkHomePageBackButton\" onClick={() => navigate(-1)} />\n <h1>{t(\"MODULE_\" + code.toUpperCase())}</h1>\n <div className=\"moduleLinkHomePageModuleLinks\">\n {mdmsDataObj && (\n <CitizenHomeCard\n header={t(mdmsDataObj?.header)}\n links={mdmsDataObj?.links}\n Icon={() => <span />}\n Info={\n code === \"OBPS\"\n ? () => (\n <CitizenInfoLabel\n style={{ margin: \"0px\", padding: \"10px\" }}\n info={t(\"CS_FILE_APPLICATION_INFO_LABEL\")}\n text={t(`BPA_CITIZEN_HOME_STAKEHOLDER_INCLUDES_INFO_LABEL`)}\n />\n )\n : null\n }\n isInfo={code === \"OBPS\" ? true : false}\n />\n )}\n </div>\n <StaticDynamicCard moduleCode={code?.toUpperCase()} />\n </div>\n } />\n <Route path={`${code.toLowerCase()}-faq`} element={<FAQsSection module={code?.toUpperCase()} />} />\n <Route path={`${code.toLowerCase()}-how-it-works`} element={<HowItWorks module={code?.toUpperCase()} />} />\n </React.Fragment>\n );\n });\n\n return (\n <div className={classname}>\n <TopBarSideBar\n t={t}\n stateInfo={stateInfo}\n userDetails={userDetails}\n CITIZEN={CITIZEN}\n cityDetails={cityDetails}\n mobileView={mobileView}\n handleUserDropdownSelection={handleUserDropdownSelection}\n logoUrl={logoUrl}\n showSidebar={CITIZEN ? true : false}\n linkData={linkData}\n islinkDataLoading={islinkDataLoading}\n />\n\n <div className={`main center-container citizen-home-container mb-25`}>\n {hideSidebar ? null : (\n <div>\n <CitizenSideNav linkData={linkData} islinkDataLoading={islinkDataLoading} />\n </div>\n )}\n\n <Routes>\n <Route path=\"/\" element={<CitizenHome />} />\n\n <Route path=\"select-language\" element={<LanguageSelection />} />\n\n <Route path=\"select-location\" element={\n <div className=\"citizen-location-selection-wrapper\">\n <LocationSelection />\n </div>\n } />\n\n <Route path=\"error\" element={\n <ErrorComponent\n initData={initData}\n goToHome={() => {\n navigate(`/${window?.contextPath}/${Digit?.UserService?.getType?.()}`);\n }}\n />\n } />\n\n <Route path=\"all-services\" element={\n <AppHome\n userType=\"citizen\"\n modules={modules}\n getCitizenMenu={linkData}\n fetchedCitizen={isLinkDataFetched}\n isLoading={islinkDataLoading}\n />\n } />\n\n <Route path=\"login/*\" element={<Login stateCode={stateCode} />} />\n\n <Route path=\"register/*\" element={<Login stateCode={stateCode} isUserRegistered={false} />} />\n\n <Route path=\"user/profile\" element={\n <div className=\"citizen-user-profile-wrapper\">\n <UserProfile stateCode={stateCode} userType={\"citizen\"} cityDetails={cityDetails} />\n </div>\n } />\n\n <Route path=\"Audit\" element={<Search />} />\n\n {/* Dynamic App Routes and Module Level Link Home Pages */}\n {appRoutes}\n {ModuleLevelLinkHomePages}\n </Routes>\n </div>\n <div className=\"citizen-home-footer\" style={window.location.href.includes(\"citizen/obps\") ? { zIndex: \"-1\" } : {}}>\n <ImageComponent\n alt=\"Powered by DIGIT\"\n src={window?.globalConfigs?.getConfig?.(\"DIGIT_FOOTER\")}\n style={{ height: \"1.2em\", cursor: \"pointer\" }}\n onClick={() => {\n window.open(window?.globalConfigs?.getConfig?.(\"DIGIT_HOME_URL\"), \"_blank\").focus();\n }}\n />\n </div>\n </div>\n );\n};\n\nexport default Home;","import { CardSubHeader, FormComposer,CardText} from \"@egovernments/digit-ui-react-components\";\nimport { BackLink,Toast} from \"@egovernments/digit-ui-components\";\nimport PropTypes from \"prop-types\";\nimport React, { useEffect, useState } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport Background from \"../../../components/Background\";\nimport Header from \"../../../components/Header\";\nimport SelectOtp from \"../../citizen/Login/SelectOtp\";\nimport ImageComponent from \"../../../components/ImageComponent\";\n\nconst ChangePasswordComponent = ({ config: propsConfig, t }) => {\n const [user, setUser] = useState(null);\n const { mobile_number: mobileNumber, tenantId } = Digit.Hooks.useQueryParams();\n const navigate = useNavigate();\n const [otp, setOtp] = useState(\"\");\n const [isOtpValid, setIsOtpValid] = useState(true);\n const [showToast, setShowToast] = useState(null);\n const getUserType = () => Digit.UserService.getType();\n useEffect(() => {\n if (!user) {\n Digit.UserService.setType(\"employee\");\n return;\n }\n Digit.UserService.setUser(user);\n const redirectPath = location.state?.from || `/${window?.contextPath}/employee`;\n navigate(redirectPath, {replace:true});\n }, [user]);\n\n const closeToast = () => {\n setShowToast(null);\n };\n\n const onResendOTP = async () => {\n const requestData = {\n otp: {\n mobileNumber,\n userType: getUserType().toUpperCase(),\n type: \"passwordreset\",\n tenantId,\n },\n };\n\n try {\n await Digit.UserService.sendOtp(requestData, tenantId);\n setShowToast(t(\"ES_OTP_RESEND\"));\n } catch (err) {\n setShowToast(err?.response?.data?.error_description || t(\"ES_INVALID_LOGIN_CREDENTIALS\"));\n }\n setTimeout(closeToast, 5000);\n };\n\n const onChangePassword = async (data) => {\n try {\n if (data.newPassword !== data.confirmPassword) {\n return setShowToast(t(\"ERR_PASSWORD_DO_NOT_MATCH\"));\n }\n const requestData = {\n ...data,\n otpReference: otp,\n tenantId,\n type: getUserType().toUpperCase(),\n };\n\n const response = await Digit.UserService.changePassword(requestData, tenantId);\n navigateToLogin();\n } catch (err) {\n setShowToast(err?.response?.data?.error?.fields?.[0]?.message || t(\"ES_SOMETHING_WRONG\"));\n setTimeout(closeToast, 5000);\n }\n };\n\n const navigateToLogin = () => {\n navigate(`/${window?.contextPath}/employee/user/login`, {replace:true});\n };\n\n const [username, password, confirmPassword] = propsConfig.inputs;\n const config = [\n {\n body: [\n {\n label: t(username.label),\n type: username.type,\n populators: {\n name: username.name,\n },\n isMandatory: true,\n },\n {\n label: t(password.label),\n type: password.type,\n populators: {\n name: password.name,\n },\n isMandatory: true,\n },\n {\n label: t(confirmPassword.label),\n type: confirmPassword.type,\n populators: {\n name: confirmPassword.name,\n },\n isMandatory: true,\n },\n ],\n },\n ];\n\n return (\n <Background>\n <div className=\"employeeBackbuttonAlign\">\n <BackLink variant=\"primary\" style={{ borderBottom: \"none\" }} />\n </div>\n <FormComposer\n onSubmit={onChangePassword}\n noBoxShadow\n inline\n submitInForm\n config={config}\n label={propsConfig.texts.submitButtonLabel}\n cardStyle={{ maxWidth: \"408px\", margin: \"auto\" }}\n className=\"employeeChangePassword\"\n >\n <Header />\n <CardSubHeader style={{ textAlign: \"center\" }}> {propsConfig.texts.header} </CardSubHeader>\n <CardText>\n {`${t(`CS_LOGIN_OTP_TEXT`)} `}\n <b>\n {\" \"}\n {`${t(`+ 91 - `)}`} {mobileNumber}\n </b>\n </CardText>\n <SelectOtp t={t} userType=\"employee\" otp={otp} onOtpChange={setOtp} error={isOtpValid} onResend={onResendOTP} />\n {/* <div>\n <CardLabel style={{ marginBottom: \"8px\" }}>{t(\"CORE_OTP_SENT_MESSAGE\")}</CardLabel>\n <CardLabelDesc style={{ marginBottom: \"0px\" }}> {mobileNumber} </CardLabelDesc>\n <CardLabelDesc style={{ marginBottom: \"8px\" }}> {t(\"CORE_EMPLOYEE_OTP_CHECK_MESSAGE\")}</CardLabelDesc>\n </div>\n <CardLabel style={{ marginBottom: \"8px\" }}>{t(\"CORE_OTP_OTP\")} *</CardLabel>\n <TextInput className=\"field\" name={otpReference} isRequired={true} onChange={updateOtp} type={\"text\"} style={{ marginBottom: \"10px\" }} />\n <div className=\"flex-right\">\n <div className=\"primary-label-btn\" onClick={onResendOTP}>\n {t(\"CORE_OTP_RESEND\")}\n </div>\n </div> */}\n </FormComposer>\n {showToast && <Toast type={\"error\"} label={t(showToast)} onClose={closeToast} />}\n <div className=\"EmployeeLoginFooter\">\n <ImageComponent\n alt=\"Powered by DIGIT\"\n src={window?.globalConfigs?.getConfig?.(\"DIGIT_FOOTER_BW\")}\n style={{ cursor: \"pointer\" }}\n onClick={() => {\n window.open(window?.globalConfigs?.getConfig?.(\"DIGIT_HOME_URL\"), \"_blank\").focus();\n }}\n />{\" \"}\n </div>\n </Background>\n );\n};\n\nChangePasswordComponent.propTypes = {\n loginParams: PropTypes.any,\n};\n\nChangePasswordComponent.defaultProps = {\n loginParams: null,\n};\n\nexport default ChangePasswordComponent;\n","export const config = [\n {\n texts: {\n header: \"CORE_COMMON_RESET_PASSWORD_LABEL\",\n submitButtonLabel: \"CORE_COMMON_CHANGE_PASSWORD\",\n },\n inputs: [\n {\n label: \"CORE_LOGIN_USERNAME\",\n type: \"text\",\n name: \"userName\",\n error: \"ERR_HRMS_INVALID_USERNAME\",\n },\n {\n label: \"CORE_LOGIN_NEW_PASSWORD\",\n type: \"password\",\n name: \"newPassword\",\n error: \"CORE_COMMON_REQUIRED_ERRMSG\",\n },\n {\n label: \"CORE_LOGIN_CONFIRM_NEW_PASSWORD\",\n type: \"password\",\n name: \"confirmPassword\",\n error: \"CORE_COMMON_REQUIRED_ERRMSG\",\n },\n ],\n },\n];\n","import React, { useMemo } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Routes, Route } from \"react-router-dom\";\nimport ChangePasswordComponent from \"./changePassword\";\nimport { config } from \"./config\";\n\nconst EmployeeChangePassword = () => {\n const { t } = useTranslation();\n\n const params = useMemo(\n () =>\n config.map((step) => {\n const texts = {};\n for (const key in step.texts) {\n texts[key] = t(step.texts[key]);\n }\n return { ...step, texts };\n }),\n [config]\n );\n\n return (\n <Routes>\n <Route\n path=\"\"\n element={<ChangePasswordComponent config={params[0]} t={t} />}\n />\n </Routes>\n );\n};\n\nexport default EmployeeChangePassword;\n","export const loginConfig = [\n {\n texts: {\n header: \"CORE_COMMON_FORGOT_PASSWORD_LABEL\",\n description: \"ES_FORGOT_PASSWORD_DESC\",\n submitButtonLabel: \"CORE_COMMON_CONTINUE\",\n },\n inputs: [\n {\n label: \"CORE_COMMON_MOBILE_NUMBER\",\n type: \"mobileNumber\",\n name: \"mobileNumber\",\n error: \"ERR_HRMS_INVALID_MOBILE_NUMBER\",\n },\n {\n label: \"CORE_COMMON_CITY\",\n type: \"dropdown\",\n name: \"city\",\n error: \"ERR_HRMS_INVALID_CITY\",\n },\n ]\n },\n];\n","// import { FormComposer } from \"@egovernments/digit-ui-react-components\";\nimport { BackLink, Dropdown, Loader, Toast, FormComposerV2 } from \"@egovernments/digit-ui-components\";\nimport PropTypes from \"prop-types\";\nimport React, { useEffect, useState } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport Background from \"../../../components/Background\";\nimport Header from \"../../../components/Header\";\nimport ImageComponent from \"../../../components/ImageComponent\";\nimport Carousel from \"../Login/Carousel/Carousel\";\nimport { useLoginConfig } from \"../../../hooks/useLoginConfig\";\n\nconst ForgotPassword = ({ config: propsConfig, t, stateCode }) => {\n const { data: cities, isLoading } = Digit.Hooks.useTenants();\n const [user, setUser] = useState(null);\n const navigate = useNavigate();\n const [showToast, setShowToast] = useState(null);\n const getUserType = () => Digit.UserService.getType();\n \n const { data : mdmsData } = useLoginConfig(stateCode);\n \n if(mdmsData?.config){\n const bannerImages = mdmsData?.config[0]?.bannerImages;\n propsConfig.bannerImages = bannerImages;\n }\n\n useEffect(() => {\n if (!user) {\n Digit.UserService.setType(\"employee\");\n return;\n }\n Digit.UserService.setUser(user);\n const redirectPath = location.state?.from || `/${window?.contextPath}/employee`;\n navigate(redirectPath, {replace:true});\n }, [user]);\n\n const closeToast = () => {\n setShowToast(null);\n };\n\n const onForgotPassword = async (data) => {\n if (!data.city) {\n alert(\"Please Select City!\");\n return;\n }\n const requestData = {\n otp: {\n userName: data.username,\n userType: getUserType().toUpperCase(),\n type: \"passwordreset\",\n tenantId: data.city.code,\n },\n };\n try {\n await Digit.UserService.sendOtp(requestData, data.city.code);\n navigate(`/${window?.contextPath}/employee/user/change-password?USERNAME=${data.username}&tenantId=${data.city.code}`);\n } catch (err) {\n setShowToast(err?.response?.data?.error?.fields?.[0]?.message || \"Invalid login credentials!\");\n setTimeout(closeToast, 5000);\n }\n };\n\n const navigateToLogin = () => {\n navigate(`/${window?.contextPath}/employee/login`);\n };\n\n const [userId, city] = propsConfig.inputs;\n const config = [\n {\n body: [\n {\n label: t(\"USERNAME\"),\n type: \"text\",\n populators: {\n name: \"username\",\n },\n isMandatory: true,\n },\n {\n label: t(city.label),\n type: city.type,\n populators: {\n name: city.name,\n optionsKey: \"name\",\n required: true,\n options: cities,\n },\n isMandatory: true,\n },\n ],\n },\n ];\n\n if (isLoading) {\n return <Loader page={true} variant=\"PageLoader\" />\n }\n\n return (\n propsConfig?.bannerImages ? (\n <React.Fragment>\n <div className=\"login-container\">\n <Carousel bannerImages={propsConfig?.bannerImages} />\n <div className=\"login-form-container\">\n <FormComposerV2\n onSubmit={onForgotPassword}\n noBoxShadow\n inline\n submitInForm\n config={config}\n label={propsConfig.texts.submitButtonLabel}\n secondaryActionLabel={propsConfig.texts.secondaryButtonLabel}\n onSecondayActionClick={navigateToLogin}\n heading={propsConfig.texts.header}\n description={propsConfig.texts.description}\n headingStyle={{ textAlign: \"center\", fontWeight: \"bold\", color: \"#363636\" }}\n descriptionStyles={{ color: \"#787878\", textAlign: \"center\" }}\n cardStyle={{ maxWidth: \"408px\", margin: \"auto\" }}\n className=\"employeeForgotPassword\"\n secondaryActionId={\"employeeForgotPassword\"}\n >\n <Header />\n </FormComposerV2>\n {showToast && <Toast type={\"error\"} label={t(showToast)} onClose={closeToast} />}\n <div className=\"EmployeeLoginFooter\">\n <ImageComponent\n alt=\"Powered by DIGIT\"\n src={window?.globalConfigs?.getConfig?.(\"DIGIT_FOOTER_BW\")}\n style={{ cursor: \"pointer\" }}\n onClick={() => {\n window.open(window?.globalConfigs?.getConfig?.(\"DIGIT_HOME_URL\"), \"_blank\").focus();\n }}\n />{\" \"}\n </div>\n </div>\n </div>\n </React.Fragment>\n ) :\n <Background>\n <div className=\"employeeBackbuttonAlign\">\n <BackLink onClick={() => window.history.back()} />\n </div>\n <FormComposerV2\n onSubmit={onForgotPassword}\n noBoxShadow\n inline\n submitInForm\n config={config}\n label={propsConfig.texts.submitButtonLabel}\n secondaryActionLabel={propsConfig.texts.secondaryButtonLabel}\n onSecondayActionClick={navigateToLogin}\n heading={propsConfig.texts.header}\n description={propsConfig.texts.description}\n headingStyle={{ textAlign: \"center\", fontWeight: \"bold\", color: \"#363636\" }}\n descriptionStyles={{ color: \"#787878\", textAlign: \"center\" }}\n cardStyle={{ maxWidth: \"408px\", margin: \"auto\" }}\n className=\"employeeForgotPassword\"\n secondaryActionId={\"employeeForgotPassword\"}\n >\n <Header />\n </FormComposerV2>\n {showToast && <Toast type={\"error\"} label={t(showToast)} onClose={closeToast} />}\n <div className=\"EmployeeLoginFooter\">\n <ImageComponent\n alt=\"Powered by DIGIT\"\n src={window?.globalConfigs?.getConfig?.(\"DIGIT_FOOTER_BW\")}\n style={{ cursor: \"pointer\" }}\n onClick={() => {\n window.open(window?.globalConfigs?.getConfig?.(\"DIGIT_HOME_URL\"), \"_blank\").focus();\n }}\n />{\" \"}\n </div>\n </Background>\n );\n};\n\nForgotPassword.propTypes = {\n loginParams: PropTypes.any,\n};\n\nForgotPassword.defaultProps = {\n loginParams: null,\n};\n\nexport default ForgotPassword;","import React, { useMemo } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Routes, Route } from \"react-router-dom\";\nimport { loginConfig } from \"./config\";\nimport ForgotPasswordComponent from \"./forgotPassword\";\n\nconst EmployeeForgotPassword = ({ stateCode }) => {\n const { t } = useTranslation();\n\n const params = useMemo(\n () =>\n loginConfig.map((step) => {\n const texts = {};\n for (const key in step.texts) {\n texts[key] = t(step.texts[key]);\n }\n return { ...step, texts };\n }),\n [loginConfig]\n );\n\n return (\n <Routes>\n <Route\n path=\"\"\n element={<ForgotPasswordComponent config={params[0]} t={t} stateCode={stateCode} />}\n />\n </Routes>\n );\n};\n\nexport default EmployeeForgotPassword;\n","import { Button, Card, SubmitBar, Loader } from \"@egovernments/digit-ui-components\";\nimport { CustomButton } from \"@egovernments/digit-ui-react-components\";\nimport React, { useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Navigate, useNavigate } from \"react-router-dom\";\nimport Background from \"../../../components/Background\";\nimport ImageComponent from \"../../../components/ImageComponent\";\n\nconst DEFAULT_LOCALE=Digit?.Utils?.getDefaultLanguage?.();\n\nconst defaultLanguage = { label: \"English\", value: DEFAULT_LOCALE};\n\nconst LanguageSelection = () => {\n const { data: storeData, isLoading } = Digit.Hooks.useStore.getInitData();\n const { t } = useTranslation();\n const navigate = useNavigate();\n const { languages, stateInfo } = storeData || {};\n let defaultLanguages = languages;\n if (!defaultLanguages || defaultLanguages?.length == 0) {\n defaultLanguages = [defaultLanguage];\n }\n const selectedLanguage = Digit.StoreData.getCurrentLanguage();\n const [selected, setselected] = useState(selectedLanguage);\n const handleChangeLanguage = (language) => {\n setselected(language.value);\n Digit.LocalizationService.changeLanguage(language.value, stateInfo.code);\n };\n function getContextPath(contextPath) {\n if (!contextPath || typeof contextPath !== \"string\") return \"\";\n return contextPath.split(\"/\")[0];\n }\n \n const hasMultipleLanguages = languages?.length > 1;\n\n const handleSubmit = (event) => {\n navigate(`/${getContextPath(window.contextPath)}/user/login?ts=${Date.now()}`);\n };\n\n if (isLoading) return <Loader />;\n\n if (!hasMultipleLanguages) {\n return <Navigate to={`/${window?.contextPath}/employee/user/login`} replace />;\n }\n\n return (\n <Background>\n <Card className={\"bannerCard removeBottomMargin languageSelection\"}>\n <div className=\"bannerHeader\">\n <ImageComponent className=\"bannerLogo\" src={stateInfo?.logoUrl} alt=\"Digit Banner Image\" />\n\n <p>{t(`TENANT_TENANTS_${stateInfo?.code?.toUpperCase()}`)}</p>\n </div>\n <div className=\"language-selector\" style={{ justifyContent: \"space-around\", marginBottom: \"24px\", padding: \"0 5%\" }}>\n {defaultLanguages.map((language, index) => (\n <div className=\"language-button-container\" key={index}>\n <CustomButton\n selected={language.value === selected}\n text={t(language.label)}\n onClick={() => handleChangeLanguage(language)}\n ></CustomButton>\n </div>\n ))}\n </div>\n <SubmitBar style={{ width: \"100%\" }} label={t(`CORE_COMMON_CONTINUE`)} onSubmit={handleSubmit} />\n </Card>\n <div className=\"EmployeeLoginFooter\">\n <ImageComponent\n alt=\"Powered by DIGIT\"\n src={window?.globalConfigs?.getConfig?.(\"DIGIT_FOOTER_BW\")}\n style={{ cursor: \"pointer\" }}\n onClick={() => {\n window.open(window?.globalConfigs?.getConfig?.(\"DIGIT_HOME_URL\"), \"_blank\").focus();\n }}\n />{\" \"}\n </div>\n </Background>\n );\n};\n\nexport default LanguageSelection;\n","import React, { useState, useEffect, Fragment } from 'react';\nimport { loginConfig } from '../config';\nimport { useTranslation } from \"react-i18next\";\n\nconst Carousel = ({bannerImages=[]}) => {\n const [currentSlide, setCurrentSlide] = useState(0);\n const { t } = useTranslation();\n\n const carouselItems = bannerImages|| loginConfig[0]?.bannerImages || [];\n\n const nextSlide = () => {\n setCurrentSlide(prev => (prev === carouselItems.length - 1 ? 0 : prev + 1));\n };\n\n const prevSlide = () => {\n setCurrentSlide(prev => (prev === 0 ? carouselItems.length - 1 : prev - 1));\n };\n\n const goToSlide = (index) => {\n setCurrentSlide(index);\n };\n\n // Auto-rotate carousel every 5 seconds\n useEffect(() => {\n const interval = setInterval(() => {\n nextSlide();\n }, 5000);\n return () => clearInterval(interval);\n }, [carouselItems.length]);\n\n return (\n <Fragment>\n\n {/* Carousel Background (70% width) */}\n\n <div className=\"carousel-container\">\n {carouselItems.sort((x,y)=>x?.id-y?.id).map((item, index) => (\n <div\n key={item.id}\n className={`carousel-slide ${index === currentSlide ? 'active' : ''}`}\n style={{ backgroundImage: `url(${item.image})` }}\n >\n <div className=\"carousel-content\">\n <h2>{t(item.title)}</h2>\n <p>{t(item.description)}</p>\n </div>\n </div>\n ))}\n\n {/* Combined Navigation and Indicators (Bottom Center) */}\n <div className=\"carousel-controls\">\n <button className=\"carousel-nav\" onClick={prevSlide}>\n &lt;\n </button>\n\n <div className=\"carousel-indicators\">\n {carouselItems.map((_, index) => (\n <button\n key={index}\n className={`indicator ${index === currentSlide ? 'active' : ''}`}\n onClick={() => goToSlide(index)}\n />\n ))}\n </div>\n\n <button className=\"carousel-nav\" onClick={nextSlide}>\n &gt;\n </button>\n </div>\n </div>\n </Fragment>\n );\n};\n\nexport default Carousel;","export const loginConfig = [\n {\n texts: {\n header: \"CORE_COMMON_LOGIN\",\n submitButtonLabel: \"CORE_COMMON_LOGIN\",\n secondaryButtonLabel: \"CORE_COMMON_FORGOT_PASSWORD\",\n },\n inputs: [\n {\n label: \"CORE_LOGIN_USERNAME\",\n type: \"text\",\n key: \"username\",\n isMandatory: true,\n populators: {\n name: \"username\",\n validation: {\n required: true,\n },\n error: \"ERR_USERNAME_REQUIRED\",\n },\n },\n {\n label: \"CORE_LOGIN_PASSWORD\",\n type: \"password\",\n key: \"password\",\n isMandatory: true,\n populators: {\n name: \"password\",\n validation: {\n required: true,\n },\n error: \"ERR_PASSWORD_REQUIRED\",\n },\n },\n {\n isMandatory: true,\n type: \"dropdown\",\n key: \"city\",\n label: \"CORE_COMMON_CITY\",\n disable: false,\n populators: {\n name: \"city\",\n optionsKey: \"name\",\n error: \"ERR_HRMS_INVALID_CITY\",\n mdmsConfig: {\n masterName: \"tenants\",\n moduleName: \"tenant\",\n localePrefix: \"TENANT_TENANTS\",\n select:\n \"(data)=>{ return Array.isArray(data['tenant'].tenants) && Digit.Utils.getUnique(data['tenant'].tenants).map(ele=>({code:ele.code,name:Digit.Utils.locale.getTransformedLocale('TENANT_TENANTS_'+ele.code)}))}\",\n },\n },\n },\n {\n key: \"check\",\n type: \"component\",\n disable: false,\n component: \"PrivacyComponent\",\n populators: {\n name: \"check\"\n },\n customProps: {\n module: \"HCM\"\n },\n isMandatory: false,\n withoutLabel: true\n },\n ],\n },\n];\n","export const LoginOtpConfig = [\n {\n texts: {\n header: \"CORE_COMMON_LOGIN\",\n submitButtonLabel: \"CORE_COMMON_CONTINUE\",\n },\n inputs: [\n {\n label: \"CORE_SIGNUP_EMAILID\",\n type: \"text\",\n key: \"email\",\n isMandatory: true,\n populators: {\n name: \"email\",\n validation: {\n required: true,\n pattern: /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/,\n },\n error: \"ERR_EMAIL_REQUIRED\",\n },\n },\n {\n isMandatory: true,\n key: \"check\",\n type: \"component\",\n component: \"PrivacyComponent\",\n withoutLabel: true,\n disable: false,\n customProps: {\n module: \"Sandbox\",\n },\n populators: {\n name: \"check\",\n },\n },\n ],\n },\n];\n","import { BackLink, Loader, FormComposerV2, Toast } from \"@egovernments/digit-ui-components\";\nimport PropTypes from \"prop-types\";\nimport React, { useEffect, useMemo, useState } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport Background from \"../../../components/Background\";\nimport Header from \"../../../components/Header\";\nimport Carousel from \"./Carousel/Carousel\";\nimport ImageComponent from \"../../../components/ImageComponent\";\n// import SkipToMainContent from \"../SkipToMainContent/SkipToMainContent\";\nimport withAutoFocusMain from \"../../../hoc/withAutoFocusMain\";\n\nconst setEmployeeDetail = (userObject, token) => {\n if (Digit.Utils.getMultiRootTenant() && process.env.NODE_ENV !== \"development\") {\n return;\n }\n let locale = JSON.parse(sessionStorage.getItem(\"Digit.locale\"))?.value || Digit.Utils.getDefaultLanguage();\n localStorage.setItem(\"Employee.tenant-id\", userObject?.tenantId);\n localStorage.setItem(\"tenant-id\", userObject?.tenantId);\n localStorage.setItem(\"citizen.userRequestObject\", JSON.stringify(userObject));\n localStorage.setItem(\"locale\", locale);\n localStorage.setItem(\"Employee.locale\", locale);\n localStorage.setItem(\"token\", token);\n localStorage.setItem(\"Employee.token\", token);\n localStorage.setItem(\"user-info\", JSON.stringify(userObject));\n localStorage.setItem(\"Employee.user-info\", JSON.stringify(userObject));\n};\n\nconst Login = ({ config: propsConfig, t, isDisabled, loginOTPBased }) => {\n const { data: cities, isLoading } = Digit.Hooks.useTenants();\n const { data: storeData, isLoading: isStoreLoading } = Digit.Hooks.useStore.getInitData();\n const { stateInfo } = storeData || {};\n const [user, setUser] = useState(null);\n const [showToast, setShowToast] = useState(null);\n const [disable, setDisable] = useState(false);\n const navigate = useNavigate(); \n const DynamicLoginComponent = Digit.ComponentRegistryService?.getComponent(\"DynamicLoginComponent\");\n\n\n useEffect(() => {\n if (!user) {\n return;\n }\n Digit.SessionStorage.set(\"citizen.userRequestObject\", user);\n const filteredRoles = user?.info?.roles?.filter((role) => role.tenantId === Digit.SessionStorage.get(\"Employee.tenantId\"));\n if (user?.info?.roles?.length > 0) user.info.roles = filteredRoles;\n Digit.UserService.setUser(user);\n setEmployeeDetail(user?.info, user?.access_token);\n let redirectPath = `/${window?.contextPath}/employee`;\n\n /* logic to redirect back to same screen where we left off */\n if (window?.location?.href?.includes(\"from=\")) {\n redirectPath = decodeURIComponent(window?.location?.href?.split(\"from=\")?.[1]) || `/${window?.contextPath}/employee`;\n }\n\n /* RAIN-6489 Logic to navigate to National DSS home in case user has only one role [NATADMIN]*/\n if (user?.info?.roles && user?.info?.roles?.length > 0 && user?.info?.roles?.every((e) => e.code === \"NATADMIN\")) {\n redirectPath = `/${window?.contextPath}/employee/dss/landing/NURT_DASHBOARD`;\n }\n /* RAIN-6489 Logic to navigate to National DSS home in case user has only one role [NATADMIN]*/\n if (user?.info?.roles && user?.info?.roles?.length > 0 && user?.info?.roles?.every((e) => e.code === \"STADMIN\")) {\n redirectPath = `/${window?.contextPath}/employee/dss/landing/home`;\n }\n\n navigate(redirectPath, { replace: true }); // Replaced history.replace with navigate\n }, [user]);\n\n const onLogin = async (data) => {\n // if (!data.city) {\n // alert(\"Please Select City!\");\n // return;\n // }\n if (data?.username) {\n data.username = data.username.trim();\n }\n if (data?.password) {\n data.password = data.password.trim();\n }\n\n setDisable(true);\n\n const requestData = {\n ...data,\n ...defaultValues,\n userType: \"EMPLOYEE\",\n };\n requestData.tenantId = requestData?.city?.code || Digit?.ULBService?.getStateId();\n delete requestData.city;\n try {\n const { UserRequest: info, ...tokens } = await Digit.UserService.authenticate(requestData);\n Digit.SessionStorage.set(\"Employee.tenantId\", info?.tenantId);\n setUser({ info, ...tokens });\n } catch (err) {\n setShowToast(\n err?.response?.data?.error_description ||\n (err?.message == \"ES_ERROR_USER_NOT_PERMITTED\" && t(\"ES_ERROR_USER_NOT_PERMITTED\")) ||\n t(\"INVALID_LOGIN_CREDENTIALS\")\n );\n setTimeout(closeToast, 5000);\n }\n setDisable(false);\n };\n\n const reqCreate = {\n url: `/user-otp/v1/_send`,\n params: { tenantId: Digit?.ULBService?.getStateId() },\n body: {},\n config: {\n enable: false,\n },\n };\n const mutation = Digit.Hooks.useCustomAPIMutationHook(reqCreate);\n\n const onOtpLogin = async (data) => {\n const inputEmail = data.email;\n await mutation.mutate(\n {\n body: {\n otp: {\n userName: data.email,\n type: \"login\",\n tenantId: Digit?.ULBService?.getStateId(),\n userType: \"EMPLOYEE\",\n },\n },\n config: {\n enable: true,\n },\n },\n {\n onError: (error, variables) => {\n setShowToast(\n error?.response?.data?.Errors?.[0].code ? `SANDBOX_RESEND_OTP${error?.response?.data?.Errors?.[0]?.code}` : `SANDBOX_RESEND_OTP_ERROR`\n );\n setTimeout(closeToast, 5000);\n },\n onSuccess: async (data) => {\n navigate(`/${window?.contextPath}/employee/user/login/otp`, {\n state: { email: inputEmail, tenant: Digit?.ULBService?.getStateId() },\n });\n },\n }\n );\n };\n\n const closeToast = () => {\n setShowToast(null);\n };\n\n const onForgotPassword = () => {\n navigate(`/${window?.contextPath}/employee/user/forgot-password`);\n };\n const defaultTenant = Digit.ULBService.getStateId();\n\n const defaultValue = {\n code: defaultTenant,\n name: Digit.Utils.locale.getTransformedLocale(`TENANT_TENANTS_${defaultTenant}`),\n };\n\n let config = [{ body: propsConfig?.inputs }];\n\n const { mode } = Digit.Hooks.useQueryParams();\n if (mode === \"admin\" && config?.[0]?.body?.[2]?.disable == false && config?.[0]?.body?.[2]?.populators?.defaultValue == undefined) {\n config[0].body[2].disable = true;\n config[0].body[2].isMandatory = false;\n config[0].body[2].populators.defaultValue = defaultValue;\n }\n\n const defaultValues = useMemo(()=>Object.fromEntries(\n config[0].body\n .filter(field => field?.populators?.defaultValue && field?.populators?.name)\n .map(field => [field.populators.name, field.populators.defaultValue])\n ),[])\n\n const onFormValueChange = (setValue, formData, formState) => {\n\n // Extract keys from the config \n const keys = config[0].body.filter(field => field?.isMandatory).map((field) => field?.key);\n\n const hasEmptyFields = keys.some((key) => {\n const value = formData[key];\n return value == null || value === \"\" || value === false;\n });\n\n setDisable(hasEmptyFields);\n };\n\n const renderLoginForm = (extraClasses = \"\", cardClassName = \"\", wrapperClass = \"\") => (\n <FormComposerV2\n onSubmit={loginOTPBased ? onOtpLogin : onLogin}\n isDisabled={isDisabled || disable}\n noBoxShadow\n inline\n submitInForm\n config={config}\n label={propsConfig?.texts?.submitButtonLabel}\n secondaryActionLabel={\n propsConfig?.texts?.secondaryButtonLabel +\n (extraClasses.includes(\"login-form-container\") ? \"?\" : \"\")\n }\n onSecondayActionClick={onForgotPassword}\n onFormValueChange={onFormValueChange}\n heading={propsConfig?.texts?.header}\n className={`${wrapperClass}`}\n cardSubHeaderClassName=\"loginCardSubHeaderClassName\"\n cardClassName={cardClassName}\n buttonClassName=\"buttonClassName\"\n defaultValues={defaultValues}\n >\n {stateInfo?.code ? <Header /> : <Header showTenant={false} />}\n </FormComposerV2>\n );\n \n const renderFooter = (footerClassName) => (\n <div className={footerClassName} style={{ backgroundColor: \"unset\" }}>\n <ImageComponent\n alt=\"Powered by DIGIT\"\n src={window?.globalConfigs?.getConfig?.(\"DIGIT_FOOTER_BW\")}\n style={{ cursor: \"pointer\" }}\n onClick={() => {\n window.open(window?.globalConfigs?.getConfig?.(\"DIGIT_HOME_URL\"), \"_blank\").focus();\n }}\n />\n </div>\n );\n \n\n if(isLoading || isStoreLoading ){\n return <Loader page={true} variant=\"PageLoader\" />\n }\n return propsConfig?.bannerImages ? (\n <div className=\"login-container\">\n {/* <SkipToMainContent class_name={\".login-form-container\"}/> */}\n <Carousel bannerImages={propsConfig?.bannerImages} />\n <div className=\"login-form-container\">\n {renderLoginForm(\"login-form-container\", \"\", loginOTPBased ? \"sandbox-onboarding-wrapper\" : \"\")}\n {DynamicLoginComponent && <DynamicLoginComponent />} \n {showToast && <Toast type=\"error\" label={t(showToast)} onClose={closeToast} />}\n {renderFooter(\"EmployeeLoginFooter\")}\n </div>\n </div>\n ) : (\n <Background>\n <div className=\"employeeBackbuttonAlign\">\n <BackLink onClick={() => window.history.back()} />\n </div>\n {renderLoginForm(\n \"loginFormStyleEmployee\",\n \"loginCardClassName\",\n loginOTPBased ? \"sandbox-onboarding-wrapper\" : \"\"\n )}\n {DynamicLoginComponent && <DynamicLoginComponent />}\n {showToast && <Toast type=\"error\" label={t(showToast)} onClose={closeToast} />}\n {renderFooter(\"employee-login-home-footer\")}\n </Background>\n );\n \n};\n\nLogin.propTypes = {\n loginParams: PropTypes.any,\n};\n\nLogin.defaultProps = {\n loginParams: null,\n};\n\nexport default withAutoFocusMain(Login, \".login-form-container\");\n","import React, { useEffect, useMemo, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Routes, Route } from \"react-router-dom\"; // Updated imports for v6\nimport { loginConfig as defaultLoginConfig } from \"./config\";\nimport { LoginOtpConfig as defaultLoginOtpConfig } from \"./ConfigOtp\";\nimport LoginComponent from \"./login\";\nimport { useLoginConfig } from \"../../../hooks/useLoginConfig\";\nimport { Loader } from \"@egovernments/digit-ui-components\";\n\nconst EmployeeLogin = ({ stateCode }) => {\n const { t } = useTranslation();\n const [loginConfig, setloginConfig] = useState(defaultLoginConfig);\n const [loginOtpConfig, setloginOtpConfig] = useState(defaultLoginOtpConfig);\n const moduleCode = [\"privacy-policy\"];\n const language = Digit.StoreData.getCurrentLanguage();\n const modulePrefix = \"digit\";\n const loginType = window?.globalConfigs?.getConfig(\"OTP_BASED_LOGIN\") || false;\n const { data: mdmsData, isLoading } = useLoginConfig(stateCode);\n const { data: store } = Digit.Services.useStore({\n stateCode,\n moduleCode,\n language,\n modulePrefix,\n });\n\n useEffect(() => {\n if (!isLoading && mdmsData?.config) { \n setloginConfig(mdmsData?.config);\n } else {\n setloginConfig(defaultLoginConfig);\n }\n }, [mdmsData, isLoading]); \n\n const loginParams = useMemo(\n () =>\n loginConfig.map((step) => {\n const texts = {};\n for (const key in step.texts) {\n texts[key] = t(step.texts[key]);\n }\n return { ...step, texts };\n },\n [loginConfig]\n )\n );\n\n const loginOtpParams = useMemo(\n () =>\n loginOtpConfig.map((step) => {\n const texts = {};\n for (const key in step.texts) {\n texts[key] = t(step.texts[key]);\n }\n return { ...step, texts };\n },\n [loginOtpConfig]\n )\n );\n\n if (isLoading) {\n return <Loader page={false} variant={\"PageLoader\"} />;\n }\n\n return (\n <Routes> {/* Replaced Switch with Routes */}\n <Route\n path=\"/\" \n element={ \n loginType ? (\n <LoginComponent config={loginOtpParams[0]} t={t} loginOTPBased={loginType} />\n ) : (\n <LoginComponent config={loginParams[0]} t={t} />\n )\n }\n />\n </Routes>\n );\n};\n\nexport default EmployeeLogin;","import React, { useState, useEffect } from \"react\";\nimport { BackLink, CardLabel, Loader, Toast } from \"@egovernments/digit-ui-components\";\nimport { FormComposerV2 } from \"@egovernments/digit-ui-react-components\";\nimport { useTranslation } from \"react-i18next\";\nimport { useNavigate, useLocation } from \"react-router-dom\"; // Updated imports for v6\nimport Background from \"../../../components/Background\";\nimport Header from \"../../../components/Header\";\nimport ImageComponent from \"../../../components/ImageComponent\";\n\n/* set employee details to enable backward compatible */\nconst setEmployeeDetail = (userObject, token) => {\n if (Digit.Utils.getMultiRootTenant()) {\n return;\n }\n let locale = JSON.parse(sessionStorage.getItem(\"Digit.locale\"))?.value || Digit.Utils.getDefaultLanguage();\n localStorage.setItem(\"Employee.tenant-id\", userObject?.tenantId);\n localStorage.setItem(\"tenant-id\", userObject?.tenantId);\n localStorage.setItem(\"citizen.userRequestObject\", JSON.stringify(userObject));\n localStorage.setItem(\"locale\", locale);\n localStorage.setItem(\"Employee.locale\", locale);\n localStorage.setItem(\"token\", token);\n localStorage.setItem(\"Employee.token\", token);\n localStorage.setItem(\"user-info\", JSON.stringify(userObject));\n localStorage.setItem(\"Employee.user-info\", JSON.stringify(userObject));\n};\n\nconst Otp = ({ isLogin = false }) => {\n const { t } = useTranslation();\n const navigate = useNavigate(); // Replaced useHistory with useNavigate\n const location = useLocation();\n const [showToast, setShowToast] = useState(null);\n const [isOtpValid, setIsOtpValid] = useState(false);\n const [user, setUser] = useState(null);\n const [params, setParams] = useState(location?.state?.data || {});\n const [ifSuperUserExists, setIfSuperUserExist] = useState(false);\n // In v6, location.state is directly available, no need for destructuring within another object\n const { email, tenant } = location.state || {}; \n\n const { data: MdmsRes } = Digit.Hooks.useCustomMDMS(\n tenant,\n \"SandBoxLanding\",\n [\n {\n name: \"LandingPageRoles\",\n },\n ],\n {\n enabled: true,\n staleTime: 0,\n cacheTime: 0,\n select: (data) => {\n return data?.[\"SandBoxLanding\"]?.[\"LandingPageRoles\"];\n },\n }\n );\n\n const RoleLandingUrl = MdmsRes?.[0].url;\n\n const config = [\n {\n body: [\n {\n type: \"component\",\n component: \"OtpComponent\",\n key: \"OtpComponent\",\n withoutLabel: true,\n isMandatory: false,\n customProps: {\n email: email,\n tenant: tenant,\n },\n populators: {\n required: true,\n },\n },\n ],\n },\n ];\n\n const OtpConfig = [\n {\n texts: {\n // header: t(\"CORE_COMMON_OTP_LABEL\"),\n header: t(\"SANDBOX_OTP_VERIFICATION\"),\n submitButtonLabel: \"CORE_COMMON_SUBMIT\",\n },\n },\n ];\n\n const closeToast = () => {\n setShowToast(null);\n };\n\n useEffect(() => {\n if (!user) {\n return;\n }\n Digit.SessionStorage.set(\"citizen.userRequestObject\", user);\n const filteredRoles = user?.info?.roles?.filter((role) => role.tenantId === Digit.SessionStorage.get(\"Employee.tenantId\"));\n if (user?.info?.roles?.length > 0) user.info.roles = filteredRoles;\n Digit.UserService.setUser(user);\n setEmployeeDetail(user?.info, user?.access_token);\n let redirectPath = `/${window?.globalPath}/user/setup`;\n\n const getRedirectPathOtpLogin = (locationPathname, user, MdmsRes, RoleLandingUrl) => {\n const userRole = user?.info?.roles?.[0]?.code;\n const isSuperUser = userRole === \"SUPERUSER\";\n const contextPath = window?.contextPath;\n\n switch (true) {\n case locationPathname === \"/sandbox-ui/user/otp\" && isSuperUser:\n return `/${contextPath}/employee/sandbox/landing`;\n\n case isSuperUser && MdmsRes?.[0]?.rolesForLandingPage?.includes(\"SUPERUSER\"):\n return `/${contextPath}${RoleLandingUrl}`;\n\n default:\n return `/${contextPath}/employee`;\n }\n };\n\n // Usage\n const redirectPathOtpLogin = getRedirectPathOtpLogin(location.pathname, user, MdmsRes, RoleLandingUrl);\n\n if (isLogin) {\n navigate(redirectPathOtpLogin); // Replaced history.push with navigate\n return;\n } else {\n navigate(\n {\n pathname: redirectPath,\n },\n { state: { tenant: tenant } } // Pass state as a separate options object\n );\n return;\n }\n }, [user]);\n\n const onSubmit = async (formData) => {\n const requestData = {\n username: email,\n password: formData?.OtpComponent?.otp,\n tenantId: tenant,\n userType: \"EMPLOYEE\",\n };\n try {\n const { UserRequest: info, ...tokens } = await Digit.UserService.authenticate(requestData);\n Digit.SessionStorage.set(\"Employee.tenantId\", info?.tenantId);\n setUser({ info, ...tokens });\n } catch (err) {\n setShowToast(\n err?.response?.data?.error_description ||\n (err?.message == \"ES_ERROR_USER_NOT_PERMITTED\" && t(\"ES_ERROR_USER_NOT_PERMITTED\")) ||\n t(\"INVALID_LOGIN_CREDENTIALS\")\n );\n setTimeout(closeToast, 5000);\n }\n };\n\n return (\n <Background>\n <div className=\"employeeBackbuttonAlign\">\n <BackLink onClick={() => navigate(-1)} /> {/* navigate(-1) for going back */}\n </div>\n <FormComposerV2\n onSubmit={onSubmit}\n noBoxShadow\n inline\n submitInForm\n onFormValueChange={(setValue, formValue) => {\n const otpValue = formValue[\"OtpComponent\"];\n if (otpValue?.otp?.length === 6) {\n setIsOtpValid(true);\n } else {\n setIsOtpValid(false);\n }\n }}\n isDisabled={!isOtpValid}\n config={config}\n label={OtpConfig[0].texts.submitButtonLabel}\n heading={OtpConfig[0].texts.header}\n headingStyle={{ textAlign: \"center\" }}\n cardStyle={{ maxWidth: \"408px\", margin: \"auto\" }}\n className=\"sandbox-onboarding-wrapper\"\n >\n <Header showTenant={false} />\n </FormComposerV2>\n {showToast && <Toast type={\"error\"} label={t(showToast)} onClose={closeToast} />}\n <div className=\"EmployeeLoginFooter\">\n <ImageComponent\n alt=\"Powered by DIGIT\"\n src={window?.globalConfigs?.getConfig?.(\"DIGIT_FOOTER_BW\")}\n style={{ cursor: \"pointer\" }}\n onClick={() => {\n window.open(window?.globalConfigs?.getConfig?.(\"DIGIT_HOME_URL\"), \"_blank\").focus();\n }}\n />{\" \"}\n </div>\n </Background>\n );\n};\n\nexport default Otp;","export const SignUpConfig = [\n {\n texts: {\n header: \"CORE_COMMON_SIGN_UP\",\n submitButtonLabel: \"CORE_COMMON_SIGN_UP_BUTTON\",\n },\n inputs: [\n {\n label: \"CORE_SIGNUP_EMAILID\",\n type: \"text\",\n key: \"email\",\n isMandatory: true,\n populators: {\n name: \"email\",\n validation: {\n required: true,\n pattern: /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/,\n maxLength: 64,\n },\n error: \"ERR_EMAIL_REQUIRED\",\n },\n },\n {\n label: \"CORE_SIGNUP_ACCOUNT_NAME\",\n type: \"text\",\n key: \"accountName\",\n isMandatory: true,\n populators: {\n name: \"accountName\",\n validation: {\n required: true,\n pattern: /^[A-Za-z]+( [A-Za-z]+)*$/,\n maxLength: 50,\n },\n error: \"ERR_ACCOUNT_NAME_REQUIRED\",\n },\n infoMessage:\"SANDBOX_SIGNUP_ACCOUNT_NAME_TOOLTIP\"\n },\n {\n isMandatory: false,\n key: \"check\",\n type: \"component\",\n component: \"PrivacyComponent\",\n withoutLabel: true,\n disable: false,\n customProps: {\n module: \"SandboxSignUp\",\n },\n populators: {\n name: \"check\",\n },\n },\n ],\n bannerImages: [{\n id: 1,\n image: 'https://images.unsplash.com/photo-1746277121508-f44615ff09bb',\n title: 'A digital partner for frontline workers',\n description: \"Lorem ipsum dolor sit amet consectetur adipisicing elit. Distinctio nobis temporibus provident expedita consequuntur, repudiandae pariatur! Deleniti molestias vero, cumque vel error labore ipsam totam?\"\n },\n {\n id: 2,\n image: 'https://images.unsplash.com/photo-1581094271901-8022df4466f9',\n title: 'Feature 2 Title',\n description: \"Lorem, ipsum dolor sit amet consectetur adipisicing elit. Exercitationem esse doloribus molestiae fugiat eos adipisci sequi cumque sit, laboriosam dolores blanditiis nobis assumenda quasi nemo consectetur. Officia nesciunt quibusdam molestiae.\"\n },\n {\n id: 3,\n image: 'https://images.unsplash.com/photo-1624555130581-1d9cca783bc0',\n title: 'Feature 3 Title',\n description: \"Lorem ipsum dolor sit amet consectetur adipisicing elit. Cupiditate aut autem aperiam et modi saepe obcaecati doloremque voluptatem iusto quidem!\"\n },\n {\n id: 4,\n image: 'https://images.unsplash.com/photo-1547481887-a26e2cacb5b2',\n title: 'Feature 4 Title',\n description: \"Lorem, ipsum dolor sit amet consectetur adipisicing elit. Exercitationem esse doloribus molestiae fugiat eos adipisci sequi cumque sit, laboriosam dolores blanditiis nobis assumenda quasi nemo consectetur. Officia nesciunt quibusdam molestiae.\"\n },\n {\n id: 5,\n image: 'https://images.unsplash.com/photo-1536782376847-5c9d14d97cc0',\n title: 'Feature 5 Title',\n description: \"Lorem, ipsum dolor sit amet consectetur adipisicing elit. Exercitationem esse doloribus molestiae fugiat eos adipisci sequi cumque sit, laboriosam dolores blanditiis nobis assumenda quasi nemo consectetur. Officia nesciunt quibusdam molestiae.\"\n },\n {\n id: 6,\n image: 'https://images.unsplash.com/photo-1490730141103-6cac27aaab94',\n title: 'Feature 6 Title',\n description: \"Lorem, ipsum dolor sit amet consectetur adipisicing elit. Exercitationem esse doloribus molestiae fugiat eos adipisci sequi cumque sit, laboriosam dolores blanditiis nobis assumenda quasi nemo consectetur. Officia nesciunt quibusdam molestiae.\"\n },\n ],\n },\n];\n","import { BackLink, Loader, FormComposerV2, Toast, useCustomAPIMutationHook } from \"@egovernments/digit-ui-components\";\nimport PropTypes from \"prop-types\";\nimport React, { useEffect, useState } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport Background from \"../../../components/Background\";\nimport Header from \"../../../components/Header\";\nimport ImageComponent from \"../../../components/ImageComponent\";\n\nconst Login = ({ config: propsConfig, t, isDisabled }) => {\n const { data: cities, isLoading } = Digit.Hooks.useTenants();\n const { data: storeData, isLoading: isStoreLoading } = Digit.Hooks.useStore.getInitData();\n const { stateInfo } = storeData || {};\n const [showToast, setShowToast] = useState(null);\n const [disable, setDisable] = useState(false);\n\n const navigate = useNavigate();\n\n const reqCreate = {\n url: `/tenant-management/tenant/_create`,\n params: {},\n body: {},\n config: {\n enable: false,\n },\n };\n const mutation = Digit.Hooks.useCustomAPIMutationHook(reqCreate);\n\n const onLogin = async (data) => {\n await mutation.mutate(\n {\n body: {\n tenant: {\n name: data.accountName,\n email: data.email,\n },\n },\n config: {\n enable: true,\n },\n },\n {\n onError: (error, variables) => {\n setShowToast({\n key: \"error\",\n label: error?.response?.data?.Errors?.[0]?.code ? `SANDBOX_SIGNUP_${error?.response?.data?.Errors?.[0]?.code}` : `SANDBOX_SIGNUP_ERROR`,\n });\n },\n onSuccess: async (data) => {\n navigate({\n pathname: `/${window?.globalPath}/user/otp`,\n state: { email: data?.Tenants[0]?.email, tenant: data?.Tenants[0]?.code },\n });\n },\n }\n );\n };\n\n const closeToast = () => {\n setShowToast(null);\n };\n\n let config = [{ body: propsConfig?.inputs }];\n\n const { mode } = Digit.Hooks.useQueryParams();\n if (mode === \"admin\" && config?.[0]?.body?.[2]?.disable == false && config?.[0]?.body?.[2]?.populators?.defaultValue == undefined) {\n config[0].body[2].disable = true;\n config[0].body[2].isMandatory = false;\n config[0].body[2].populators.defaultValue = defaultValue;\n }\n\n const onFormValueChange = (setValue, formData, formState) => {\n // Extract keys from the config\n const keys = config[0].body.map((field) => field.key);\n\n const hasEmptyFields = keys.some((key) => {\n const value = formData[key];\n return value == null || value === \"\" || (key === \"check\" && value === false) || (key === \"captcha\" && value === false);\n });\n\n // Set disable based on the check\n setDisable(hasEmptyFields);\n };\n\n return isLoading || isStoreLoading ? (\n <Loader />\n ) : (\n <Background>\n <div className=\"employeeBackbuttonAlign\">\n <BackLink onClick={() => window.history.back()} />\n </div>\n <FormComposerV2\n onSubmit={onLogin}\n isDisabled={isDisabled || disable}\n noBoxShadow\n inline\n submitInForm\n config={config}\n label={propsConfig?.texts?.submitButtonLabel}\n secondaryActionLabel={propsConfig?.texts?.secondaryButtonLabel}\n onFormValueChange={onFormValueChange}\n heading={propsConfig?.texts?.header}\n className=\"sandbox-signup-form\"\n cardSubHeaderClassName=\"signupCardSubHeaderClassName\"\n cardClassName=\"signupCardClassName sandbox-onboarding-wrapper\"\n buttonClassName=\"buttonClassName\"\n >\n <Header showTenant={false} />\n </FormComposerV2>\n {showToast && <Toast type={\"error\"} label={t(showToast?.label)} onClose={closeToast} />}\n <div className=\"employee-login-home-footer\" style={{ backgroundColor: \"unset\" }}>\n <img\n alt=\"Powered by DIGIT\"\n src={window?.globalConfigs?.getConfig?.(\"DIGIT_FOOTER_BW\")}\n style={{ cursor: \"pointer\" }}\n onClick={() => {\n window.open(window?.globalConfigs?.getConfig?.(\"DIGIT_HOME_URL\"), \"_blank\").focus();\n }}\n />\n </div>\n </Background>\n );\n};\n\nLogin.propTypes = {\n loginParams: PropTypes.any,\n};\n\nLogin.defaultProps = {\n loginParams: null,\n};\n\nexport default Login;\n","import React, { useEffect, useMemo, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Routes, Route, useLocation } from \"react-router-dom\";\nimport { SignUpConfig as defaultSignUpConfig } from \"./config\";\nimport Login from \"./signUp\";\n\nconst SignUp = ({ stateCode }) => {\n const { t } = useTranslation();\n const [SignUpConfig, setSignUpConfig] = useState(defaultSignUpConfig);\n\n const moduleCode = [\"privacy-policy\"];\n const language = Digit.StoreData.getCurrentLanguage();\n const modulePrefix = \"digit\";\n\n const { data: store } = Digit.Services.useStore({\n stateCode,\n moduleCode,\n language,\n modulePrefix\n });\n\n const { data: mdmsData, isLoading } = Digit.Hooks.useCommonMDMS(\n stateCode,\n \"commonUiConfig\",\n [\"SignUpConfig\"],\n {\n select: (data) => ({\n config: data?.commonUiConfig?.SignUpConfig\n }),\n retry: false\n }\n );\n\n useEffect(() => {\n if (!isLoading && mdmsData?.config) {\n setSignUpConfig(mdmsData.config);\n } else {\n setSignUpConfig(defaultSignUpConfig);\n }\n }, [mdmsData, isLoading]);\n\n const SignUpParams = useMemo(\n () =>\n SignUpConfig.map((step) => {\n const texts = {};\n for (const key in step.texts) {\n texts[key] = t(step.texts[key]);\n }\n return { ...step, texts };\n }),\n [SignUpConfig]\n );\n\n return (\n <Routes>\n <Route\n path=\"\"\n element={<Login config={SignUpParams[0]} t={t} />}\n />\n </Routes>\n );\n};\n\nexport default SignUp;\n","import React, { useRef, useState, useEffect } from \"react\";\nimport { BackLink, Button, Card, CardHeader, CardLabel, CardText, FieldV1, SVG, TextInput } from \"@egovernments/digit-ui-components\";\nimport { useTranslation } from \"react-i18next\";\nimport { useLocation } from \"react-router-dom\";\nimport Background from \"../../../components/Background\";\nimport Header from \"../../../components/Header\";\nimport ImageComponent from \"../../../components/ImageComponent\";\n\nconst ViewUrl = () => {\n const { t } = useTranslation();\n const location = useLocation();\n const { tenant } = location.state || {};\n const ref = useRef(null);\n const getUserRoles = Digit.SessionStorage.get(\"User\")?.info?.roles;\n const [buttonDisabled, setButtonDisabled] = useState(true);\n const { data: MdmsRes } = Digit.Hooks.useCustomMDMS(\n tenant,\n \"SandBoxLanding\",\n [\n {\n name: \"LandingPageRoles\",\n },\n ],\n {\n enabled: true,\n staleTime:0,\n gcTime:0,\n select: (data) => {\n return data?.[\"SandBoxLanding\"]?.[\"LandingPageRoles\"];\n },\n }\n );\n\n useEffect(() => {\n if (MdmsRes?.[0].url) {\n setButtonDisabled(false);\n }\n }, [MdmsRes]);\n\n const RoleLandingUrl = MdmsRes?.[0].url;\n\n const roleForLandingPage = (getUserRoles, MdmsRes) => {\n const userRole = getUserRoles?.[0]?.code;\n return userRole === \"SUPERUSER\" && MdmsRes.some((page) => page.rolesForLandingPage.includes(\"SUPERUSER\"));\n };\n\n const onButtonClick = () => {\n if (roleForLandingPage(getUserRoles, MdmsRes)) {\n window.location.href = `/${window?.globalPath}/${tenant}${RoleLandingUrl}`;\n } else {\n window.location.href = `/${window?.globalPath}/${tenant}/employee`;\n }\n };\n\n const handleCopyUrl = () => {\n navigator.clipboard.writeText(ref.current.value);\n };\n\n return (\n <Background>\n <div className=\"employeeBackbuttonAlign\">\n <BackLink onClick={() => window.history.back()} />\n </div>\n <Card className=\"card-sandbox\">\n <Header showTenant={false} />\n <div className=\"sandbox-success-signup\">\n <SVG.TickMark fill={\"#fff\"} height={30} width={70} />\n </div>\n <CardHeader className=\"cardHeader-sandbox\" styles={{ color: \"#00703c\" }}>\n {t(\"SANDBOX_HEADER\")}\n </CardHeader>\n <CardText className=\"cardText-sandbox\">{t(\"SAMDBOX_URL_SUB\")}</CardText>\n <CardLabel> {t(\"SANDBOX_URL\")} </CardLabel>\n <div className=\"sandbox-url-wrapper\">\n <TextInput\n inputRef={ref}\n className={\"urlInputText\"}\n onChange={() => {}}\n nonEditable={true}\n value={`${window.location.host}/${window?.globalPath}/${tenant}/employee`}\n />\n <Button className=\"copyButton\" variation={\"secondary\"} onClick={() => handleCopyUrl()} label={t(\"COPY_URL\")}></Button>\n </div>\n <div className=\"sandbox-url-footer\">{t(\"SANDBOX_URL_FOOT\")}</div>\n <Button isDisabled={buttonDisabled} onClick={onButtonClick} label={t(\"SIGN_IN\")}></Button>\n </Card>\n <div className=\"EmployeeLoginFooter\">\n <ImageComponent\n alt=\"Powered by DIGIT\"\n src={window?.globalConfigs?.getConfig?.(\"DIGIT_FOOTER_BW\")}\n style={{ cursor: \"pointer\" }}\n onClick={() => {\n window.open(window?.globalConfigs?.getConfig?.(\"DIGIT_HOME_URL\"), \"_blank\").focus();\n }}\n />\n </div>\n </Background>\n );\n};\n\nexport default ViewUrl;\n","import React from \"react\";\nimport { Routes, Route, Navigate, useLocation } from \"react-router-dom\";\nimport { lazyWithFallback } from \"@egovernments/digit-ui-components\";\nimport DynamicModuleLoader from \"./DynamicModuleLoader\";\n\n// Create lazy components with fallbacks using the utility\nconst ChangePassword = lazyWithFallback(\n () => import(/* webpackChunkName: \"app-change-password\" */ \"../pages/employee/ChangePassword/index\"),\n () => require(\"../pages/employee/ChangePassword/index\").default,\n { loaderText: \"CORE_LOADING_CHANGE_PASSWORD\" }\n);\n\nconst ForgotPassword = lazyWithFallback(\n () => import(/* webpackChunkName: \"app-forgot-password\" */ \"../pages/employee/ForgotPassword/index\"),\n () => require(\"../pages/employee/ForgotPassword/index\").default,\n { loaderText: \"CORE_LOADING_FORGOT_PASSWORD\" }\n);\n\nconst AppHome = lazyWithFallback(\n () => import(/* webpackChunkName: \"app-home\" */ \"./Home\").then(module => ({ default: module.AppHome })),\n () => require(\"./Home\").AppHome,\n { loaderText: \"CORE_LOADING_HOME\" }\n);\n\nconst getTenants = (codes, tenants) => {\n return tenants.filter((tenant) => codes?.map?.((item) => item.code).includes(tenant.code));\n};\n\nexport const AppModules = ({ stateCode, userType, modules, appTenants, additionalComponent }) => {\n const location = useLocation();\n const user = Digit.UserService.getUser();\n\n if (!user || !user?.access_token || !user?.info) {\n return <Navigate to={{ pathname: `/${window?.contextPath}/${userType}/user/login`, state: { from: location.pathname + location.search } }} replace />;\n }\n\n // Create app routes with dynamic module loading and loading states\n const appRoutes = modules?.map(({ code, tenants }, index) => {\n return (\n <Route\n key={index}\n path={`${code.toLowerCase()}/*`}\n element={\n <DynamicModuleLoader\n moduleCode={code}\n stateCode={stateCode}\n userType={userType}\n tenants={getTenants(tenants, appTenants)}\n maxRetries={3}\n retryDelay={1000}\n initialDelay={800}\n />\n }\n />\n );\n });\n\n return (\n <div className=\"ground-container digit-home-ground\">\n <Routes>\n {appRoutes}\n <Route\n path=\"login\"\n element={\n <Navigate\n to={{ pathname: `/${window?.contextPath}/${userType}/user/login`, state: { from: location.pathname + location.search } }}\n replace\n />\n }\n />\n <Route path=\"forgot-password\" element={<ForgotPassword />} />\n <Route path=\"change-password\" element={<ChangePassword />} />\n <Route\n path=\"*\"\n element={\n <AppHome\n userType={userType}\n modules={modules}\n additionalComponent={additionalComponent}\n />\n }\n />\n </Routes>\n </div>\n );\n};","import React, { useEffect, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Routes, Route, useLocation, useNavigate, Navigate } from \"react-router-dom\";\nimport { AppModules } from \"../../components/AppModules\";\nimport ErrorBoundary from \"../../components/ErrorBoundaries\";\nimport TopBarSideBar from \"../../components/TopBarSideBar\";\nimport { PrivateRoute } from \"@egovernments/digit-ui-components\";\nimport ImageComponent from \"../../components/ImageComponent\";\nimport withAutoFocusMain from \"../../hoc/withAutoFocusMain\";\nimport { lazyWithFallback } from \"@egovernments/digit-ui-components\";\n\n// Create lazy components with fallbacks using the utility\nconst ChangePassword = lazyWithFallback(\n () => import(/* webpackChunkName: \"employee-change-password\" */ \"./ChangePassword\"),\n () => require(\"./ChangePassword\").default,\n { loaderText: \"CORE_LOADING_CHANGE_PASSWORD\" }\n);\n\nconst ForgotPassword = lazyWithFallback(\n () => import(/* webpackChunkName: \"employee-forgot-password\" */ \"./ForgotPassword\"),\n () => require(\"./ForgotPassword\").default,\n { loaderText: \"CORE_LOADING_FORGOT_PASSWORD\" }\n);\n\nconst LanguageSelection = lazyWithFallback(\n () => import(/* webpackChunkName: \"employee-language-selection\" */ \"./LanguageSelection\"),\n () => require(\"./LanguageSelection\").default,\n { loaderText: \"CORE_LOADING_LANGUAGE_SELECTION\" }\n);\n\nconst EmployeeLogin = lazyWithFallback(\n () => import(/* webpackChunkName: \"employee-login\" */ \"./Login\"),\n () => require(\"./Login\").default,\n { loaderText: \"CORE_LOADING_LOGIN\" }\n);\n\nconst Otp = lazyWithFallback(\n () => import(/* webpackChunkName: \"employee-otp\" */ \"./Otp\"),\n () => require(\"./Otp\").default,\n { loaderText: \"CORE_LOADING_OTP\" }\n);\n\nconst UserProfile = lazyWithFallback(\n () => import(/* webpackChunkName: \"user-profile\" */ \"../citizen/Home/UserProfile\"),\n () => require(\"../citizen/Home/UserProfile\").default,\n { loaderText: \"CORE_LOADING_USER_PROFILE\" }\n);\n\nconst ErrorComponent = lazyWithFallback(\n () => import(/* webpackChunkName: \"error-component\" */ \"../../components/ErrorComponent\"),\n () => require(\"../../components/ErrorComponent\").default,\n { loaderText: \"CORE_LOADING_ERROR_COMPONENT\" }\n);\n\nconst userScreensExempted = [\"user/landing\", \"user/profile\", \"user/error\", \"user/productPage\"];\n\nconst EmployeeApp = ({\n stateInfo,\n userDetails,\n CITIZEN,\n cityDetails,\n mobileView,\n handleUserDropdownSelection,\n logoUrl,\n logoUrlWhite,\n stateCode,\n modules,\n appTenants,\n sourceUrl,\n pathname, // This prop seems unused, consider removing\n initData,\n noTopBar = false,\n}) => {\n const navigate = useNavigate();\n const { t } = useTranslation();\n const location = useLocation();\n const showLanguageChange = location?.pathname?.includes(\"language-selection\");\n const isUserProfile = userScreensExempted.some((url) => location?.pathname?.includes(url));\n\n useEffect(() => {\n Digit.UserService.setType(\"employee\");\n }, []);\n\n const additionalComponent = initData?.modules?.filter((i) => i?.additionalComponent)?.map((i) => i?.additionalComponent);\n\n return (\n <div className=\"employee\">\n <Routes>\n <Route path=\"user/*\" element={\n <>\n {isUserProfile && (\n <TopBarSideBar\n t={t}\n stateInfo={stateInfo}\n userDetails={userDetails}\n CITIZEN={CITIZEN}\n cityDetails={cityDetails}\n mobileView={mobileView}\n handleUserDropdownSelection={handleUserDropdownSelection}\n logoUrl={logoUrl}\n logoUrlWhite={logoUrlWhite}\n showSidebar={isUserProfile ? true : false}\n showLanguageChange={!showLanguageChange}\n />\n )}\n <div\n className={isUserProfile ? \"grounded-container\" : \"loginContainer\"}\n style={\n isUserProfile\n ? { padding: 0, paddingTop: \"0\", marginLeft: mobileView ? \"0\" : \"0\" }\n : { \"--banner-url\": `url(${stateInfo?.bannerUrl})`, padding: \"0px\" }\n }\n >\n <Routes>\n <Route path=\"login\" element={<EmployeeLogin stateCode={stateCode} />} />\n <Route path=\"login/otp\" element={<Otp isLogin={true} />} />\n <Route path=\"forgot-password\" element={<ForgotPassword stateCode={stateCode} />} />\n <Route path=\"change-password\" element={<ChangePassword />} />\n <Route\n path=\"profile\"\n element={ <UserProfile stateCode={stateCode} userType={\"employee\"} cityDetails={cityDetails} />}\n />\n <Route\n path=\"error\"\n element={\n <ErrorComponent\n initData={initData}\n goToHome={() => {\n navigate(`/${window?.contextPath}/${Digit?.UserService?.getType?.()}`);\n }}\n />\n }\n />\n <Route path=\"language-selection\" element={<LanguageSelection />} />\n <Route path=\"*\" element={<Navigate to=\"language-selection\" replace />} />\n </Routes>\n </div>\n </>}\n />\n\n <Route path=\"*\" element={\n <>\n {!noTopBar && (\n <TopBarSideBar\n t={t}\n stateInfo={stateInfo}\n userDetails={userDetails}\n CITIZEN={CITIZEN}\n cityDetails={cityDetails}\n mobileView={mobileView}\n handleUserDropdownSelection={handleUserDropdownSelection}\n logoUrl={logoUrl}\n logoUrlWhite={logoUrlWhite}\n modules={modules}\n />\n )}\n <div className={!noTopBar ? `main digit-home-main` : \"\"}>\n <div className=\"employee-app-wrapper digit-home-app-wrapper\">\n <ErrorBoundary initData={initData}>\n <AppModules\n stateCode={stateCode}\n userType=\"employee\"\n modules={modules}\n appTenants={appTenants}\n additionalComponent={additionalComponent}\n />\n </ErrorBoundary>\n </div>\n <div className=\"employee-home-footer\">\n <ImageComponent\n alt=\"Powered by DIGIT\"\n src={window?.globalConfigs?.getConfig?.(\"DIGIT_FOOTER\")}\n style={{ height: \"1.1em\", cursor: \"pointer\" }}\n onClick={() => {\n window.open(window?.globalConfigs?.getConfig?.(\"DIGIT_HOME_URL\"), \"_blank\").focus();\n }}\n />\n </div>\n </div>\n </>\n }/>\n\n <Route path=\"*\" element={<Navigate to={`user/language-selection`} replace />} />\n </Routes>\n </div>\n );\n};\n\nexport default withAutoFocusMain(EmployeeApp, \".digit-home-main\");","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n'use strict';\n\nexports.match = matchQuery;\nexports.parse = parseQuery;\n\n// -----------------------------------------------------------------------------\n\nvar RE_MEDIA_QUERY = /(?:(only|not)?\\s*([^\\s\\(\\)]+)(?:\\s*and)?\\s*)?(.+)?/i,\n RE_MQ_EXPRESSION = /\\(\\s*([^\\s\\:\\)]+)\\s*(?:\\:\\s*([^\\s\\)]+))?\\s*\\)/,\n RE_MQ_FEATURE = /^(?:(min|max)-)?(.+)/,\n RE_LENGTH_UNIT = /(em|rem|px|cm|mm|in|pt|pc)?$/,\n RE_RESOLUTION_UNIT = /(dpi|dpcm|dppx)?$/;\n\nfunction matchQuery(mediaQuery, values) {\n return parseQuery(mediaQuery).some(function (query) {\n var inverse = query.inverse;\n\n // Either the parsed or specified `type` is \"all\", or the types must be\n // equal for a match.\n var typeMatch = query.type === 'all' || values.type === query.type;\n\n // Quit early when `type` doesn't match, but take \"not\" into account.\n if ((typeMatch && inverse) || !(typeMatch || inverse)) {\n return false;\n }\n\n var expressionsMatch = query.expressions.every(function (expression) {\n var feature = expression.feature,\n modifier = expression.modifier,\n expValue = expression.value,\n value = values[feature];\n\n // Missing or falsy values don't match.\n if (!value) { return false; }\n\n switch (feature) {\n case 'orientation':\n case 'scan':\n return value.toLowerCase() === expValue.toLowerCase();\n\n case 'width':\n case 'height':\n case 'device-width':\n case 'device-height':\n expValue = toPx(expValue);\n value = toPx(value);\n break;\n\n case 'resolution':\n expValue = toDpi(expValue);\n value = toDpi(value);\n break;\n\n case 'aspect-ratio':\n case 'device-aspect-ratio':\n case /* Deprecated */ 'device-pixel-ratio':\n expValue = toDecimal(expValue);\n value = toDecimal(value);\n break;\n\n case 'grid':\n case 'color':\n case 'color-index':\n case 'monochrome':\n expValue = parseInt(expValue, 10) || 1;\n value = parseInt(value, 10) || 0;\n break;\n }\n\n switch (modifier) {\n case 'min': return value >= expValue;\n case 'max': return value <= expValue;\n default : return value === expValue;\n }\n });\n\n return (expressionsMatch && !inverse) || (!expressionsMatch && inverse);\n });\n}\n\nfunction parseQuery(mediaQuery) {\n return mediaQuery.split(',').map(function (query) {\n query = query.trim();\n\n var captures = query.match(RE_MEDIA_QUERY),\n modifier = captures[1],\n type = captures[2],\n expressions = captures[3] || '',\n parsed = {};\n\n parsed.inverse = !!modifier && modifier.toLowerCase() === 'not';\n parsed.type = type ? type.toLowerCase() : 'all';\n\n // Split expressions into a list.\n expressions = expressions.match(/\\([^\\)]+\\)/g) || [];\n\n parsed.expressions = expressions.map(function (expression) {\n var captures = expression.match(RE_MQ_EXPRESSION),\n feature = captures[1].toLowerCase().match(RE_MQ_FEATURE);\n\n return {\n modifier: feature[1],\n feature : feature[2],\n value : captures[2]\n };\n });\n\n return parsed;\n });\n}\n\n// -- Utilities ----------------------------------------------------------------\n\nfunction toDecimal(ratio) {\n var decimal = Number(ratio),\n numbers;\n\n if (!decimal) {\n numbers = ratio.match(/^(\\d+)\\s*\\/\\s*(\\d+)$/);\n decimal = numbers[1] / numbers[2];\n }\n\n return decimal;\n}\n\nfunction toDpi(resolution) {\n var value = parseFloat(resolution),\n units = String(resolution).match(RE_RESOLUTION_UNIT)[1];\n\n switch (units) {\n case 'dpcm': return value / 2.54;\n case 'dppx': return value * 96;\n default : return value;\n }\n}\n\nfunction toPx(length) {\n var value = parseFloat(length),\n units = String(length).match(RE_LENGTH_UNIT)[1];\n\n switch (units) {\n case 'em' : return value * 16;\n case 'rem': return value * 16;\n case 'cm' : return value * 96 / 2.54;\n case 'mm' : return value * 96 / 2.54 / 10;\n case 'in' : return value * 96;\n case 'pt' : return value * 72;\n case 'pc' : return value * 72 / 12;\n default : return value;\n }\n}\n","'use strict';\n\nvar staticMatch = require('css-mediaquery').match;\nvar dynamicMatch = typeof window !== 'undefined' ? window.matchMedia : null;\n\n// our fake MediaQueryList\nfunction Mql(query, values, forceStatic){\n var self = this;\n var mql;\n\n // matchMedia will return null in FF when it's called in a hidden iframe\n // ref: https://stackoverflow.com/a/12330568\n if(dynamicMatch && !forceStatic) mql = dynamicMatch.call(window, query);\n\n if (mql) {\n this.matches = mql.matches;\n this.media = mql.media;\n // TODO: is there a time it makes sense to remove this listener?\n mql.addListener(update);\n } else {\n this.matches = staticMatch(query, values);\n this.media = query;\n }\n\n this.addListener = addListener;\n this.removeListener = removeListener;\n this.dispose = dispose;\n\n function addListener(listener){\n if(mql){\n mql.addListener(listener);\n }\n }\n\n function removeListener(listener){\n if(mql){\n mql.removeListener(listener);\n }\n }\n\n // update ourselves!\n function update(evt){\n self.matches = evt.matches;\n self.media = evt.media;\n }\n\n function dispose(){\n if(mql){\n mql.removeListener(update);\n }\n }\n}\n\nfunction matchMedia(query, values, forceStatic){\n return new Mql(query, values, forceStatic);\n}\n\nmodule.exports = matchMedia;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * @license React\n * react-jsx-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\nfunction jsxProd(type, config, maybeKey) {\n var key = null;\n void 0 !== maybeKey && (key = \"\" + maybeKey);\n void 0 !== config.key && (key = \"\" + config.key);\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n config = maybeKey.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== config ? config : null,\n props: maybeKey\n };\n}\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsxProd;\nexports.jsxs = jsxProd;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/* eslint-disable no-var, prefer-template */\nvar uppercasePattern = /[A-Z]/g\nvar msPattern = /^ms-/\nvar cache = {}\n\nfunction toHyphenLower(match) {\n return '-' + match.toLowerCase()\n}\n\nfunction hyphenateStyleName(name) {\n if (cache.hasOwnProperty(name)) {\n return cache[name]\n }\n\n var hName = name.replace(uppercasePattern, toHyphenLower)\n return (cache[name] = msPattern.test(hName) ? '-' + hName : hName)\n}\n\nexport default hyphenateStyleName\n","import { createContext, useRef, useEffect, useContext, useState } from 'react';\nimport matchMedia from 'matchmediaquery';\nimport hyphenate from 'hyphenate-style-name';\nimport { shallowEqualObjects } from 'shallow-equal';\nimport PropTypes from 'prop-types';\n\nconst stringOrNumber = PropTypes.oneOfType([PropTypes.string, PropTypes.number]);\n// media types\nconst types = {\n all: PropTypes.bool,\n grid: PropTypes.bool,\n aural: PropTypes.bool,\n braille: PropTypes.bool,\n handheld: PropTypes.bool,\n print: PropTypes.bool,\n projection: PropTypes.bool,\n screen: PropTypes.bool,\n tty: PropTypes.bool,\n tv: PropTypes.bool,\n embossed: PropTypes.bool\n};\n// properties that match media queries\nconst matchers = {\n orientation: PropTypes.oneOf(['portrait', 'landscape']),\n scan: PropTypes.oneOf(['progressive', 'interlace']),\n aspectRatio: PropTypes.string,\n deviceAspectRatio: PropTypes.string,\n height: stringOrNumber,\n deviceHeight: stringOrNumber,\n width: stringOrNumber,\n deviceWidth: stringOrNumber,\n color: PropTypes.bool,\n colorIndex: PropTypes.bool,\n monochrome: PropTypes.bool,\n resolution: stringOrNumber,\n type: Object.keys(types)\n};\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst { type, ...featureMatchers } = matchers;\n// media features\nconst features = {\n minAspectRatio: PropTypes.string,\n maxAspectRatio: PropTypes.string,\n minDeviceAspectRatio: PropTypes.string,\n maxDeviceAspectRatio: PropTypes.string,\n minHeight: stringOrNumber,\n maxHeight: stringOrNumber,\n minDeviceHeight: stringOrNumber,\n maxDeviceHeight: stringOrNumber,\n minWidth: stringOrNumber,\n maxWidth: stringOrNumber,\n minDeviceWidth: stringOrNumber,\n maxDeviceWidth: stringOrNumber,\n minColor: PropTypes.number,\n maxColor: PropTypes.number,\n minColorIndex: PropTypes.number,\n maxColorIndex: PropTypes.number,\n minMonochrome: PropTypes.number,\n maxMonochrome: PropTypes.number,\n minResolution: stringOrNumber,\n maxResolution: stringOrNumber,\n ...featureMatchers\n};\nconst all = { ...types, ...features };\nvar mq = {\n all: all,\n types: types,\n matchers: matchers,\n features: features\n};\n\nconst negate = (cond) => `not ${cond}`;\nconst keyVal = (k, v) => {\n const realKey = hyphenate(k);\n // px shorthand\n if (typeof v === 'number') {\n v = `${v}px`;\n }\n if (v === true) {\n return realKey;\n }\n if (v === false) {\n return negate(realKey);\n }\n return `(${realKey}: ${v})`;\n};\nconst join = (conds) => conds.join(' and ');\nconst toQuery = (obj) => {\n const rules = [];\n Object.keys(mq.all).forEach((k) => {\n const v = obj[k];\n if (v != null) {\n rules.push(keyVal(k, v));\n }\n });\n return join(rules);\n};\n\nconst Context = createContext(undefined);\n\nconst makeQuery = (settings) => settings.query || toQuery(settings);\nconst hyphenateKeys = (obj) => {\n if (!obj)\n return undefined;\n const keys = Object.keys(obj);\n return keys.reduce((result, key) => {\n result[hyphenate(key)] = obj[key];\n return result;\n }, {});\n};\nconst useIsUpdate = () => {\n const ref = useRef(false);\n useEffect(() => {\n ref.current = true;\n }, []);\n return ref.current;\n};\nconst useDevice = (deviceFromProps) => {\n const deviceFromContext = useContext(Context);\n const getDevice = () => hyphenateKeys(deviceFromProps) || hyphenateKeys(deviceFromContext);\n const [device, setDevice] = useState(getDevice);\n useEffect(() => {\n const newDevice = getDevice();\n if (!shallowEqualObjects(device, newDevice)) {\n setDevice(newDevice);\n }\n }, [deviceFromProps, deviceFromContext]);\n return device;\n};\nconst useQuery = (settings) => {\n const getQuery = () => makeQuery(settings);\n const [query, setQuery] = useState(getQuery);\n useEffect(() => {\n const newQuery = getQuery();\n if (query !== newQuery) {\n setQuery(newQuery);\n }\n }, [settings]);\n return query;\n};\nconst useMatchMedia = (query, device) => {\n const getMatchMedia = () => matchMedia(query, device || {}, !!device);\n const [mq, setMq] = useState(getMatchMedia);\n const isUpdate = useIsUpdate();\n useEffect(() => {\n if (isUpdate) {\n // skip on mounting, it has already been set\n const newMq = getMatchMedia();\n setMq(newMq);\n return () => {\n if (newMq) {\n newMq.dispose();\n }\n };\n }\n }, [query, device]);\n return mq;\n};\nconst useMatches = (mediaQuery) => {\n const [matches, setMatches] = useState(mediaQuery.matches);\n useEffect(() => {\n const updateMatches = (ev) => {\n setMatches(ev.matches);\n };\n mediaQuery.addListener(updateMatches);\n setMatches(mediaQuery.matches);\n return () => {\n mediaQuery.removeListener(updateMatches);\n };\n }, [mediaQuery]);\n return matches;\n};\nconst useMediaQuery = (settings, device, onChange) => {\n const deviceSettings = useDevice(device);\n const query = useQuery(settings);\n if (!query)\n throw new Error('Invalid or missing MediaQuery!');\n const mq = useMatchMedia(query, deviceSettings);\n const matches = useMatches(mq);\n const isUpdate = useIsUpdate();\n useEffect(() => {\n if (isUpdate && onChange) {\n onChange(matches);\n }\n }, [matches]);\n useEffect(() => () => {\n if (mq) {\n mq.dispose();\n }\n }, []);\n return matches;\n};\n\n// ReactNode and ReactElement typings are a little funky for functional components, so the ReactElement cast is needed on the return\nconst MediaQuery = ({ children, device, onChange, ...settings }) => {\n const matches = useMediaQuery(settings, device, onChange);\n if (typeof children === 'function') {\n return children(matches);\n }\n return matches ? children : null;\n};\n\nexport { Context, MediaQuery, MediaQuery as default, toQuery, useMediaQuery };\n//# sourceMappingURL=index.js.map\n","function shallowEqualArrays(arrA, arrB) {\n if (arrA === arrB) {\n return true;\n }\n if (!arrA || !arrB) {\n return false;\n }\n const len = arrA.length;\n if (arrB.length !== len) {\n return false;\n }\n for (let i = 0; i < len; i++) {\n if (arrA[i] !== arrB[i]) {\n return false;\n }\n }\n return true;\n}\n\nfunction shallowEqualObjects(objA, objB) {\n if (objA === objB) {\n return true;\n }\n if (!objA || !objB) {\n return false;\n }\n const aKeys = Object.keys(objA);\n const bKeys = Object.keys(objB);\n const len = aKeys.length;\n if (bKeys.length !== len) {\n return false;\n }\n for (let i = 0; i < len; i++) {\n const key = aKeys[i];\n if (objA[key] !== objB[key] || !Object.prototype.hasOwnProperty.call(objB, key)) {\n return false;\n }\n }\n return true;\n}\n\nfunction shallowEqual(a, b) {\n const aIsArr = Array.isArray(a);\n const bIsArr = Array.isArray(b);\n if (aIsArr !== bIsArr) {\n return false;\n }\n if (aIsArr && bIsArr) {\n return shallowEqualArrays(a, b);\n }\n return shallowEqualObjects(a, b);\n}\n\nexport { shallowEqual, shallowEqualArrays, shallowEqualObjects };\n//# sourceMappingURL=index.modern.mjs.map\n","module.exports = __WEBPACK_EXTERNAL_MODULE__6243__;","module.exports = __WEBPACK_EXTERNAL_MODULE__5053__;","module.exports = __WEBPACK_EXTERNAL_MODULE__338__;","module.exports = __WEBPACK_EXTERNAL_MODULE__4456__;","module.exports = __WEBPACK_EXTERNAL_MODULE__4883__;","module.exports = __WEBPACK_EXTERNAL_MODULE__5953__;","module.exports = __WEBPACK_EXTERNAL_MODULE__2148__;","module.exports = __WEBPACK_EXTERNAL_MODULE__4442__;","module.exports = __WEBPACK_EXTERNAL_MODULE__1954__;","module.exports = __WEBPACK_EXTERNAL_MODULE__2247__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import React from \"react\";\nimport { Routes, Route, useLocation, useNavigate } from \"react-router-dom\";\nimport { Navigate } from \"react-router-dom\";\nimport { lazyWithFallback } from \"@egovernments/digit-ui-components\";\n\n// Create lazy components with fallbacks using the utility\nconst CitizenApp = lazyWithFallback(\n () => import(/* webpackChunkName: \"citizen-app\" */ \"./pages/citizen\"),\n () => require(\"./pages/citizen\").default,\n { loaderText: \"CORE_LOADING_CITIZEN_APP\" }\n);\n\nconst EmployeeApp = lazyWithFallback(\n () => import(/* webpackChunkName: \"employee-app\" */ \"./pages/employee\"),\n () => require(\"./pages/employee\").default,\n { loaderText: \"CORE_LOADING_EMPLOYEE_APP\" }\n);\n\nconst SignUp = lazyWithFallback(\n () => import(/* webpackChunkName: \"sign-up\" */ \"./pages/employee/SignUp\"),\n () => require(\"./pages/employee/SignUp\").default,\n { loaderText: \"CORE_LOADING_SIGN_UP\" }\n);\n\nconst Otp = lazyWithFallback(\n () => import(/* webpackChunkName: \"otp\" */ \"./pages/employee/Otp\"),\n () => require(\"./pages/employee/Otp\").default,\n { loaderText: \"CORE_LOADING_OTP\" }\n);\n\nconst ViewUrl = lazyWithFallback(\n () => import(/* webpackChunkName: \"view-url\" */ \"./pages/employee/ViewUrl\"),\n () => require(\"./pages/employee/ViewUrl\").default,\n { loaderText: \"CORE_LOADING_VIEW_URL\" }\n);\n\nconst CustomErrorComponent = lazyWithFallback(\n () => import(/* webpackChunkName: \"custom-error\" */ \"./components/CustomErrorComponent\"),\n () => require(\"./components/CustomErrorComponent\").default,\n { loaderText: \"CORE_LOADING_ERROR_COMPONENT\" }\n);\n\nconst DummyLoaderScreen = lazyWithFallback(\n () => import(/* webpackChunkName: \"dummy-loader\" */ \"./components/DummyLoader\"),\n () => require(\"./components/DummyLoader\").default,\n { loaderText: \"CORE_LOADING\" }\n);\n\nexport const DigitApp = ({ stateCode, modules, appTenants, logoUrl, logoUrlWhite, initData, defaultLanding = \"citizen\", allowedUserTypes = [\"citizen\", \"employee\"] }) => {\n const navigate = useNavigate();\n const { pathname } = useLocation();\n const innerWidth = window.innerWidth;\n const cityDetails = Digit.ULBService.getCurrentUlb();\n const userDetails = Digit.UserService.getUser();\n const { data: storeData } = Digit.Hooks.useStore.getInitData();\n const { stateInfo } = storeData || {};\n\n const DSO = Digit.UserService.hasAccess([\"FSM_DSO\"]);\n let CITIZEN = userDetails?.info?.type === \"CITIZEN\" || !window.location.pathname.split(\"/\").includes(\"employee\") ? true : false;\n\n if (window.location.pathname.split(\"/\").includes(\"employee\")) CITIZEN = false;\n\n const handleUserDropdownSelection = (option) => {\n option.func();\n };\n\n const mobileView = innerWidth <= 640;\n let sourceUrl = `${window.location.origin}/citizen`;\n const commonProps = {\n stateInfo,\n userDetails,\n CITIZEN,\n cityDetails,\n mobileView,\n handleUserDropdownSelection,\n logoUrl,\n logoUrlWhite,\n DSO,\n stateCode,\n modules,\n appTenants,\n sourceUrl,\n pathname,\n initData,\n };\n\n return (\n <Routes>\n {allowedUserTypes?.includes(\"employee\") && (\n <Route path={`/${window?.contextPath}/employee/*`} element={<EmployeeApp {...commonProps} />} />\n )}\n {allowedUserTypes?.includes(\"citizen\") && (\n <Route path={`/${window?.contextPath}/citizen/*`} element={<CitizenApp {...commonProps} />} />\n )}\n {allowedUserTypes?.includes(\"employee\") && (\n <Route path={`/${window?.contextPath}/no-top-bar/employee`} element={<EmployeeApp {...commonProps} noTopBar />} />\n )}\n <Route path=\"*\" element={<Navigate to={`/${window?.contextPath}/${defaultLanding}`} />} />\n </Routes>\n );\n};\n\nexport const DigitAppWrapper = ({ stateCode, modules, appTenants, logoUrl, logoUrlWhite, initData, defaultLanding = \"citizen\" ,allowedUserTypes}) => {\n // const globalPath = window?.globalConfigs?.getConfig(\"CONTEXT_PATH\") || \"digit-ui\";\n const { data: storeData } = Digit.Hooks.useStore.getInitData();\n const { stateInfo } = storeData || {};\n const userScreensExempted = [\"user/error\"];\n const isUserProfile = userScreensExempted.some((url) => location?.pathname?.includes(url));\n const userDetails = Digit.UserService.getUser();\n let CITIZEN = userDetails?.info?.type === \"CITIZEN\" || !window.location.pathname.split(\"/\").includes(\"employee\") ? true : false;\n const innerWidth = window.innerWidth;\n const mobileView = innerWidth <= 640;\n\n return (\n <div\n className={isUserProfile ? \"grounded-container\" : \"loginContainer\"}\n style={\n isUserProfile ? { padding: 0, paddingTop: CITIZEN ? \"0\" : mobileView && !CITIZEN ? \"3rem\" : \"80px\", marginLeft: CITIZEN || mobileView ? \"0\" : \"40px\" } : { \"--banner-url\": `url(${stateInfo?.bannerUrl})`, padding: \"0px\" }\n }\n >\n <Routes>\n <Route path={`/${window?.globalPath}/user/invalid-url`} element={<CustomErrorComponent />} />\n <Route path={`/${window?.globalPath}/user/sign-up`} element={<SignUp stateCode={stateCode} />} />\n <Route path={`/${window?.globalPath}/user/otp`} element={<Otp />} />\n <Route path={`/${window?.globalPath}/user/setup`} element={<DummyLoaderScreen />} />\n <Route path={`/${window?.globalPath}/user/url`} element={<ViewUrl />} />\n {window?.globalPath !== window?.contextPath && (\n <Route\n path={`/${window?.contextPath}/*`}\n element={\n <DigitApp\n stateCode={stateCode}\n modules={modules}\n appTenants={appTenants}\n logoUrl={logoUrl}\n logoUrlWhite={logoUrlWhite}\n initData={initData}\n defaultLanding={defaultLanding}\n allowedUserTypes={allowedUserTypes}\n />\n }\n />\n )}\n <Route path=\"*\" element={<Navigate to={`/${window?.globalPath}/user/sign-up`} />} />\n </Routes>\n </div>\n );\n};","import { applyMiddleware, combineReducers, compose, createStore } from \"redux\";\nimport thunk from \"redux-thunk\";\nimport { commonReducer } from \"./reducers\";\n\nconst getRootReducer = (defaultStore, moduleReducers) =>\n combineReducers({\n common: commonReducer(defaultStore),\n ...moduleReducers,\n });\n\nconst middleware = [thunk];\n\nconst composeEnhancers =\n process.env.NODE_ENV === 'development' && typeof window === \"object\" && window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ \n ? window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__({}) \n : compose;\n\nconst enhancer = composeEnhancers(\n applyMiddleware(...middleware)\n // other store enhancers if any\n);\n\nconst getStore = (defaultStore, moduleReducers = {}) => {\n return createStore(getRootReducer(defaultStore, moduleReducers), enhancer);\n};\nexport default getStore;\n","export const commonReducer = (defaultData) => (state = defaultData, action) => {\n switch (action.type) {\n case \"LANGUAGE_SELECT\":\n return { ...state, selectedLanguage: action.payload };\n default:\n return state;\n }\n};\n","import React, { useState, useEffect, Fragment } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { CheckBox, PopUp, Button, HeaderComponent } from \"@egovernments/digit-ui-components\";\nimport { LinkButton } from \"@egovernments/digit-ui-react-components\";\n\nconst PrivacyComponent = ({ onSelect, formData, control, formState, ...props }) => {\n const { t } = useTranslation();\n const tenantId = Digit.ULBService.getCurrentTenantId();\n const [isChecked, setIsChecked] = useState(false);\n const [showPopUp, setShowPopUp] = useState(false);\n const moduleName=Digit.Utils.getConfigModuleName();\n \n const { data: privacy } = Digit.Hooks.useCustomMDMS(tenantId, moduleName, [{ name: \"PrivacyPolicy\" }], {\n select: (data) => {\n const filteredPrivacyPolicy = data?.[moduleName]?.PrivacyPolicy?.find(policy => policy.module === props?.props?.module);\n return filteredPrivacyPolicy;\n },\n });\n const handleCheckboxChange = (event) => {\n setIsChecked(event.target.checked);\n };\n useEffect(() => {\n onSelect(\"check\", isChecked);\n }, [isChecked]);\n const onButtonClick = () => {\n setShowPopUp(true);\n };\n\n const handleScrollToElement = (id) => {\n const element = document.getElementById(id);\n if (element) {\n element.scrollIntoView({ behavior: \"smooth\" });\n }\n };\n\n return (\n <React.Fragment>\n <div className=\"digit-privacy-checkbox digit-privacy-checkbox-align\">\n <CheckBox label={t(\"ES_BY_CLICKING\")} checked={isChecked} onChange={handleCheckboxChange} id={\"privacy-component-check\"}></CheckBox>\n <Button\n label={t(`ES_PRIVACY_POLICY`)}\n variation={\"link\"}\n size={\"small\"}\n onClick={onButtonClick}\n // isSuffix={true}\n style={{ marginBottom: \"1rem\", paddingLeft: \"0.2rem\" }}\n ></Button>\n </div>\n {showPopUp && (\n <PopUp\n type={\"default\"}\n className={\"privacy-popUpClass\"}\n footerclassName={\"popUpFooter\"}\n heading={t(privacy?.header)}\n onOverlayClick={() => {\n setShowPopUp(false);\n }}\n footerChildren={[\n <Button\n type={\"button\"}\n size={\"large\"}\n variation={\"secondary\"}\n label={t(\"DIGIT_I_DO_NOT_ACCEPT\")}\n onClick={() => {\n setIsChecked(false), setShowPopUp(false);\n }}\n />,\n <Button\n type={\"button\"}\n size={\"large\"}\n variation={\"primary\"}\n label={t(\"DIGIT_I_ACCEPT\")}\n className={\"accept-class\"}\n onClick={() => {\n setIsChecked(true), setShowPopUp(false);\n }}\n />,\n ]}\n sortFooterChildren={true}\n onClose={() => {\n setShowPopUp(false);\n }}\n >\n <div>\n <div className=\"privacy-table\">{t(\"DIGIT_TABLE_OF_CONTENTS\")}</div>\n <ul>\n {privacy?.contents.map((content, index) => (\n <li key={index} style={{ display: \"flex\", alignItems: \"center\" }}>\n <span style={{ marginRight: \"0.5rem\" }}>{index + 1}. </span>\n <Button\n label={t(content.header)}\n variation={\"link\"}\n size={\"medium\"}\n onClick={(e) => {\n e.preventDefault();\n handleScrollToElement(content?.header);\n }}\n style={{justifyContent: \"flex-start\"}}\n ></Button>\n </li>\n ))}\n </ul>\n </div>\n {privacy?.contents.map((content, index) => (\n <div key={index} id={content?.header}>\n <div\n style={{\n fontWeight: 'bold',\n paddingLeft: content?.isSpaceRequired ? \"1rem\" : \"0\",\n }}\n >\n {t(content.header)}\n </div>\n {content.descriptions.map((description, subIndex) => (\n <div key={subIndex} style={{ paddingLeft: description.isSpaceRequired ? \"1rem\" : \"0\" , marginBottom: '0.5rem'}}>\n <div\n style={{\n fontWeight: description?.isBold ? 700 : 400,\n display: \"flex\",\n alignItems: \"center\",\n }}\n >\n {description.type === 'points' && (\n <span style={{ marginRight: '0.5rem', listStyleType: 'disc' }}>&#8226;</span>\n )}\n {description.type === 'step' && (\n <span style={{ marginRight: '0.5rem', listStyleType: 'decimal' }}>{subIndex + 1}. </span>\n )}\n {t(description.text)}\n </div>\n {description?.subDescriptions && description?.subDescriptions.length > 0 && (\n <div className=\"policy-subdescription\">\n {description.subDescriptions.map((subDesc, subSubIndex) => (\n <div key={subSubIndex} className=\"policy-subdescription-points\">\n {subDesc.type === 'points' && (\n <span style={{ marginRight: '0.5rem', listStyleType: 'disc' , paddingLeft: '1rem'}}>&#8226;</span>\n )}\n {subDesc.type === 'step' && (\n <span style={{ marginRight: '0.5rem', listStyleType: 'decimal' , paddingLeft: '1rem'}}>{subSubIndex + 1}. </span>\n )}\n {subDesc.type === null && (\n <span style={{ marginRight: '0.5rem', paddingLeft: '1rem'}}> </span>\n )}\n {t(subDesc.text)}\n </div>\n ))}\n </div>\n )}\n </div>\n ))}\n </div>\n ))}\n </PopUp>\n )}\n </React.Fragment>\n );\n};\n\nexport default PrivacyComponent;\n","import { BodyContainer } from \"@egovernments/digit-ui-components\";\nimport { Loader } from \"@egovernments/digit-ui-components\";\nimport React from \"react\";\nimport { getI18n } from \"react-i18next\";\nimport { QueryClient, QueryClientProvider } from \"@tanstack/react-query\";\nimport { Provider } from \"react-redux\";\nimport { BrowserRouter as Router } from \"react-router-dom\";\nimport { DigitApp, DigitAppWrapper } from \"./App\";\nimport SelectOtp from \"./pages/citizen/Login/SelectOtp\";\nimport ChangeCity from \"./components/ChangeCity\";\nimport ChangeLanguage from \"./components/ChangeLanguage\";\nimport { useState, useMemo, useCallback } from \"react\";\nimport ErrorBoundary from \"./components/ErrorBoundaries\";\nimport getStore from \"./redux/store\";\nimport PrivacyComponent from \"./components/PrivacyComponent\";\nimport OtpComponent from \"./pages/employee/Otp/OtpCustomComponent\";\nimport LoginSignupSelector from \"./components/LoginSignupSelector\";\nimport ForgotOrganizationTooltip from \"./components/ForgotOrganizationTooltip\";\n\n// Create QueryClient instance outside component to prevent recreation\nconst createQueryClient = () => new QueryClient({\n defaultOptions: {\n queries: {\n staleTime: 15 * 60 * 1000,\n gcTime: 50 * 60 * 1000,\n retry: false,\n retryDelay: (attemptIndex) => Infinity,\n /*\n enable this to have auto retry incase of failure\n retryDelay: attemptIndex => Math.min(1000 * 3 ** attemptIndex, 60000)\n */\n },\n },\n});\n\nconst DigitUIWrapper = ({ stateCode, enabledModules, defaultLanding,allowedUserTypes }) => {\n const { isLoading, data: initData={} } = Digit.Hooks.useInitStore(stateCode, enabledModules);\n if (isLoading) {\n return <Loader page={true} variant={\"PageLoader\"} />;\n }\n const data=getStore(initData) || {};\n const i18n = getI18n();\n if(!Digit.ComponentRegistryService.getComponent(\"PrivacyComponent\")){\n Digit.ComponentRegistryService.setComponent(\"PrivacyComponent\", PrivacyComponent);\n }\n return (\n <Provider store={data}>\n <Router>\n <BodyContainer>\n {Digit.Utils.getMultiRootTenant() ? (\n <DigitAppWrapper\n initData={initData}\n stateCode={stateCode}\n modules={initData?.modules}\n appTenants={initData.tenants}\n logoUrl={initData?.stateInfo?.logoUrl}\n logoUrlWhite={initData?.stateInfo?.logoUrlWhite}\n defaultLanding={defaultLanding}\n allowedUserTypes={allowedUserTypes}\n />\n ) : (\n <DigitApp\n initData={initData}\n stateCode={stateCode}\n modules={initData?.modules}\n appTenants={initData.tenants}\n logoUrl={initData?.stateInfo?.logoUrl}\n defaultLanding={defaultLanding}\n allowedUserTypes={allowedUserTypes}\n />\n )}\n </BodyContainer>\n </Router>\n </Provider>\n );\n};\n\n/**\n * DigitUI Component - The main entry point for the UI.\n *\n * @param {Object} props - The properties passed to the component.\n * @param {string} props.stateCode - The state code for the application.\n * @param {Object} props.registry - The registry object containing components registrations.\n * @param {Array<string>} props.enabledModules - A list of enabled modules, if any modules to be disabled due to some condition.\n * @param {Object} props.moduleReducers - Reducers associated with enabled modules.\n * @param {string} props.defaultLanding - The default landing page (e.g., \"employee\", \"citizen\"), default is citizen.\n * @param {Array<string>} props.allowedUserTypes - A list of allowed user types (e.g., [\"employee\", \"citizen\"]) if any restriction to be applied, and default is both employee & citizen.\n * \n * @author jagankumar-egov\n *\n * @example\n * <DigitUI\n * stateCode=\"pg\"\n * registry={registry}\n * enabledModules={[\"Workbench\", \"PGR\"]}\n * defaultLanding=\"employee\"\n * allowedUserTypes={[\"employee\", \"citizen\"]}\n * moduleReducers={moduleReducers}\n * />\n */\nexport const DigitUI = ({ stateCode, registry, enabledModules, defaultLanding,allowedUserTypes }) => {\n // Memoize initial privacy state to prevent unnecessary re-renders\n const initialPrivacy = useMemo(() => Digit.Utils.getPrivacyObject() || {}, []);\n const [privacy, setPrivacy] = useState(initialPrivacy);\n \n const userType = Digit.UserService.getType();\n \n // Use memoized QueryClient to prevent recreation on every render\n const queryClient = useMemo(() => createQueryClient(), []);\n\n const ComponentProvider = Digit.Contexts.ComponentProvider;\n const PrivacyProvider = Digit.Contexts.PrivacyProvider;\n\n const DSO = Digit.UserService.hasAccess([\"FSM_DSO\"]);\n\n // Memoize privacy context methods to prevent unnecessary re-renders\n const resetPrivacy = useCallback((_data) => {\n Digit.Utils.setPrivacyObject({});\n setPrivacy({});\n }, []);\n\n const getPrivacy = useCallback(() => {\n const privacyObj = Digit.Utils.getPrivacyObject();\n setPrivacy(privacyObj);\n return privacyObj;\n }, []);\n\n const updatePrivacyDescoped = useCallback((_data) => {\n const privacyObj = Digit.Utils.getAllPrivacyObject();\n // Safely access pathname with fallback\n const pathname = typeof window !== 'undefined' ? window.location.pathname : '';\n const newObj = { ...privacyObj, [pathname]: _data };\n Digit.Utils.setPrivacyObject({ ...newObj });\n setPrivacy(privacyObj?.[pathname] || {});\n }, []);\n\n const updatePrivacy = useCallback((uuid, fieldName) => {\n setPrivacy(Digit.Utils.updatePrivacy(uuid, fieldName) || {});\n }, []);\n\n // Memoize privacy context value to prevent unnecessary re-renders\n const privacyContextValue = useMemo(() => ({\n privacy: typeof window !== 'undefined' ? privacy?.[window.location.pathname] : privacy,\n resetPrivacy,\n getPrivacy,\n updatePrivacyDescoped,\n updatePrivacy,\n }), [privacy, resetPrivacy, getPrivacy, updatePrivacyDescoped, updatePrivacy]);\n\n return (\n <div>\n <ErrorBoundary>\n <QueryClientProvider client={queryClient}>\n <ComponentProvider.Provider value={registry}>\n <PrivacyProvider.Provider value={privacyContextValue}>\n <DigitUIWrapper stateCode={stateCode} enabledModules={enabledModules} defaultLanding={defaultLanding} allowedUserTypes={allowedUserTypes} />\n </PrivacyProvider.Provider>\n </ComponentProvider.Provider>\n </QueryClientProvider>\n </ErrorBoundary>\n </div>\n );\n};\n\nconst componentsToRegister = {\n SelectOtp,\n ChangeCity,\n ChangeLanguage,\n PrivacyComponent,\n OtpComponent,\n ForgotOrganizationTooltip,\n LoginSignupSelector\n};\n\nexport const initCoreComponents = () => {\n Object.entries(componentsToRegister).forEach(([key, value]) => {\n Digit.ComponentRegistryService.setComponent(key, value);\n });\n};\n","import React, { Fragment, useState } from \"react\";\nimport { CardText, CardLabelError, Toast, CardLabel } from \"@egovernments/digit-ui-components\";\nimport { OTPInput } from \"@egovernments/digit-ui-react-components\";\nimport { useTranslation } from \"react-i18next\";\nimport { useLocation } from \"react-router-dom\";\nimport useInterval from \"../../../hooks/useInterval\";\nimport Background from \"../../../components/Background\";\nimport { useEffect } from \"react\";\n\nconst OtpComponent = ({ onSelect, formData, control, formState, ...props }) => {\n const { t } = useTranslation();\n const location = useLocation();\n const [showToast, setShowToast] = useState(null);\n const [params, setParams] = useState({});\n const [isOtpValid, setIsOtpValid] = useState(true);\n const [timeLeft, setTimeLeft] = useState(30);\n\n const closeToast = () => {\n setShowToast(null);\n };\n\n useInterval(\n () => {\n setTimeLeft(timeLeft - 1);\n },\n timeLeft > 0 ? 1000 : null\n );\n\n const handleOtpChange = (otp) => {\n setParams({ ...params, otp });\n };\n\n useEffect(() => {\n onSelect(\"OtpComponent\", params);\n }, [params]);\n\n const reqCreate = {\n url: `/user-otp/v1/_send`,\n params: { tenantId: props?.props?.code },\n body: {},\n config: {\n enable: false,\n },\n };\n const mutation = Digit.Hooks.useCustomAPIMutationHook(reqCreate);\n\n const resendOtp = async () => {\n setTimeLeft(30);\n await mutation.mutate(\n {\n body: {\n \"otp\": {\n \"userName\": props?.props?.email,\n \"type\": \"login\",\n \"tenantId\": props?.props?.tenant,\n \"userType\": \"EMPLOYEE\"\n }\n },\n config: {\n enable: true,\n },\n },\n {\n onError: (error, variables) => {\n setShowToast({\n key: \"error\",\n label: error?.response?.data?.Errors?.[0].code\n ? `SANDBOX_RESEND_OTP${error?.response?.data?.Errors?.[0]?.code}`\n : `SANDBOX_RESEND_OTP_ERROR`,\n });\n setTimeout(closeToast, 5000);\n },\n onSuccess: async (data) => {\n setShowToast({ key: \"info\", label: t(\"OTP_RESNED_SUCCESFULL\") });\n setTimeout(closeToast, 5000);\n },\n }\n );\n };\n\n return (\n <>\n <CardLabel className={\"sandbox-custom-otp-subheader\"}>{t(\"SANDBOX_ENTER_OTP\")}</CardLabel>\n <CardLabel className={\"sandbox-custom-otp-header\"} >{t(\"CS_OTP_EMAIL\")}</CardLabel>\n <CardLabel className={\"sandbox-custom-otp-email\"} style={{fontWeight: 'bold'}}>{props?.props?.email}</CardLabel>\n <OTPInput className={\"sandbox-otp-input\"} length={6} onChange={handleOtpChange} value={params?.otp} />\n {timeLeft > 0 ? (\n <CardText className={\"sandbox-resend-otp\"}>{`${t(\"CS_RESEND_ANOTHER_OTP\")} ${timeLeft} ${t(\"CS_RESEND_SECONDS\")}`}</CardText>\n ) : (\n <p className=\"card-text-button sandbox-otp-input\" onClick={resendOtp}>\n {t(\"CS_RESEND_OTP\")}\n </p>\n )}\n {!isOtpValid && <CardLabelError>{t(\"CS_INVALID_OTP\")}</CardLabelError>}\n {showToast && <Toast type={showToast?.key} label={t(showToast?.label)} onClose={closeToast} />}\n </>\n );\n};\n\nexport default OtpComponent;\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Button } from \"@egovernments/digit-ui-components\";\n\nconst ForgotOrganizationTooltip = ({ onSelect }) => {\n const { t } = useTranslation();\n const [showTip, setShowTip] = useState(false);\n const wrapperRef = useRef(null);\n\n useEffect(() => {\n const handleClickOutside = (event) => {\n if (wrapperRef.current && !wrapperRef.current.contains(event.target)) {\n setShowTip(false);\n }\n };\n document.addEventListener(\"mousedown\", handleClickOutside);\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside);\n };\n }, []);\n return (\n <div ref={wrapperRef} className=\"loginSignUpSelector\" style={{ position: \"relative\", marginTop: \"-2rem\" }}>\n <Button\n label={t(`SB_FORGOTORGANIZATION_TOOLTIP`)}\n variation={\"link\"}\n size={\"small\"}\n onClick={() => setShowTip((prev) => !prev)}\n // isSuffix={true}\n style={{ marginBottom: \"0.5rem\", paddingLeft: \"0.2rem\" }}\n ></Button>\n {showTip && (\n <div\n style={{\n position: \"absolute\",\n bottom: \"100%\",\n left: \"50%\",\n transform: \"translateY(-4px)\",\n backgroundColor: \"#0b4b66\",\n color: \"white\",\n padding: \"6px 10px\",\n borderRadius: \"4px\",\n whiteSpace: \"normal\",\n wordBreak: \"break-word\",\n maxWidth: \"20rem\",\n zIndex: 1000,\n fontSize: \"0.875rem\"\n }}\n >\n {t(\"SB_FORGOTORGANIZATION_TOOLTIP_TEXT\")}\n </div>\n )}\n </div>\n );\n};\n\nexport default ForgotOrganizationTooltip;\n","import React, { useState, useEffect, Fragment } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { CheckBox, PopUp, Button, HeaderComponent } from \"@egovernments/digit-ui-components\";\nconst LoginSignupSelector = ({ onSelect, formData, control, formState, ...props }) => {\n const { t } = useTranslation();\n const [isChecked, setIsChecked] = useState(true);\n\n\n useEffect(() => {\n onSelect(\"check\", isChecked);\n }, [isChecked]);\n const onButtonClickLogin = () => {\n window.location.replace(`/${window?.contextPath}/user/login`);\n };\n\n const onButtonClickSignUP = () => {\n window.location.replace(`/${window?.contextPath}/user/sign-up`);\n };\n\n const isSignupPage = window.location.href.includes(\"sandbox-ui/user/sign-up\");\n return (\n <React.Fragment>\n <div className=\"loginSignUpSelector\" style={{ marginTop: '-2rem' }}>\n {\n isSignupPage ?\n <Button\n label={t(`SB_ALREADY_HAVE_ACCOUNT`)}\n variation={\"link\"}\n size={\"small\"}\n onClick={onButtonClickLogin}\n // isSuffix={true}\n style={{ marginBottom: \"0.5rem\", paddingLeft: \"0.2rem\" }}\n ></Button> :\n <Button\n label={t(`SB_DONT_HAVE_ACCOUNT`)}\n variation={\"link\"}\n size={\"small\"}\n onClick={onButtonClickSignUP}\n // isSuffix={true}\n style={{ marginBottom: \"0.5rem\", paddingLeft: \"0.2rem\" }}\n ></Button>\n\n }\n\n </div>\n </React.Fragment>\n );\n};\n\nexport default LoginSignupSelector;\n"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE__6243__","__WEBPACK_EXTERNAL_MODULE__4883__","__WEBPACK_EXTERNAL_MODULE__5953__","__WEBPACK_EXTERNAL_MODULE__4456__","__WEBPACK_EXTERNAL_MODULE__2148__","__WEBPACK_EXTERNAL_MODULE__4442__","__WEBPACK_EXTERNAL_MODULE__338__","__WEBPACK_EXTERNAL_MODULE__5053__","__WEBPACK_EXTERNAL_MODULE__1954__","__WEBPACK_EXTERNAL_MODULE__2247__","_ref","children","_jsx","className","stringReplaceAll","str","arguments","length","undefined","searcher","replaceWith","_str","includes","_str2","replace","prop","_selectCityData$","_stringReplaceAll2","dropDownData","setDropDownData","useState","selectCityData","setSelectCityData","selectedCity","setSelectedCity","navigate","useNavigate","isMultiRootTenant","dropdown","Digit","Utils","getMultiRootTenant","useEffect","_userloggedValues$inf","userloggedValues","SessionStorage","get","teantsArray","filteredArray","info","roles","forEach","role","push","tenantId","unique","filter","item","i","ar","indexOf","uniCode","_stringReplaceAll","label","concat","toUpperCase","value","select","style","mobileView","color","CardText","Dropdown","t","option","selected","find","cityValue","optionKey","city","_Digit$SessionStorage","_window$location","_window","loggedInData","filteredRoles","set","UserService","setUser","window","location","href","contextPath","_location$state","_window2","redirectPath","state","from","reload","error","console","warn","freeze","customSelector","_languages$find","isDropdown","data","storeData","isLoading","Hooks","useStore","getInitData","languages","stateInfo","useTranslation","selectedLanguage","StoreData","getCurrentLanguage","setselected","handleChangeLanguage","language","LocalizationService","changeLanguage","code","_jsxs","React","marginBottom","map","index","Button","onClick","variation","props","useLocation","config","imgUrl","infoHeader","infoMessage","buttonInfo","action","globalPath","Background","Card","Header","showTenant","CardHeader","isSuffix","e","preventDefault","onSelect","onCancel","onDismiss","PopupStyles","isDisabled","hideSubmit","footer","type","size","formId","footerWithoutSubmit","PopUp","heading","footerChildren","sortFooterButtons","onClose","onOverlayClick","equalWidthButtons","DummyLoaderScreen","currentStep","setCurrentStep","tenant","steps","stepInterval","setInterval","prev","clearInterval","navigateTimeout","setTimeout","_window3","roleForLandingPage","getUserRoles","MdmsRes","pathname","RoleLandingUrl","clearTimeout","useRef","buttonDisabled","setButtonDisabled","useCustomMDMS","name","enabled","staleTime","cacheTime","_data$SandBoxLanding","url","_getUserRoles$","some","page","rolesForLandingPage","step","CheckCircle","fill","moduleCode","stateCode","userType","tenants","maxRetries","retryDelay","initialDelay","moduleState","setModuleState","loading","retryCount","initialDelayComplete","retryTimeout","initialTimeout","loadModule","_ref2","Module","ComponentRegistryService","getComponent","_objectSpread","delay","Math","pow","message","apply","loadingText","defaultValue","Loader","variant","loaderText","textAlign","marginTop","Navigate","to","encodeURIComponent","Redircter","getType","path","currentHref","navigationError","replaceError","ErrorBoundary","constructor","super","errorStack","hasError","getDerivedStateFromError","stack","componentDidCatch","errorInfo","setState","render","ErrorComponent","initData","errorData","goToHome","_Digit","_Digit$getType","call","ErrorConfig","maintenance","notfound","ModuleBasedErrorConfig","sandbox","_props$errorData","useQueryParams","ImageComponent","src","alt","_props$errorData2","_props$goToHome","_stateInfo$code","headerSvgSecondaryUrl","globalConfigs","getConfig","logoUrl","borderRight","fontSize","Components","RoleBasedEmployeeHome","_Object$keys","sortedConfigEmployeesSidebar","modules","additionalComponent","useAccessControl","ULBService","getStateId","mdmsOrderData","setMdmsOrderData","_data$HomeScreenOrder","moduleConfigData","isModuleConfigLoading","getLinkByType","moduleData","moduleConfig","moduleName","linkKey","links","displayName","getFilteredLinks","_moduleData$links","isNotConfigureMaster","isNotHowItWorks","howItWorksLink","isNotUserManual","userManualLink","configEmployeeSideBar","actions","parentModule","reduce","acc","kpis","icon","leftIcon","iconRender","iconName","iconFill","CustomSVG","locale","getTransformedLocale","linkUrl","_url","transformURL","navigationURL","queryParamIndex","link","queryParams","substring","Object","keys","sort","a","b","_mdmsOrderData$find","_mdmsOrderData$find2","moduleType","order","_configEmployeeSideBa","sortedLinks","linkA","linkB","_mdmsOrderData$find3","_mdmsOrderData$find4","labelA","labelB","sortCardAndLink","current","_sortedConfigEmployee","_moduleData$links2","configureData","howItWorks","userManual","propsForModuleCard","metrics","centreChildren","open","padding","endChildren","LandingPageCard","buttonSize","_Fragment","LandingPageWrapper","child","FaqComponent","question","isLabelLink","answer","content","lastIndex","isOpen","toggleOpen","ListTag","justifyContent","display","float","ArrowForward","CardSectionSubText","listStyleType","margin","fulllink","baseURL","hostname","description","CardC","title","CardSectionHeader","FAQ","key","faqs","width","faq","_ref3","cardConfig","height","overflowY","flexWrap","id","BreakLine","border","formData","control","formState","_objectWithoutProperties","_excluded","QuickSetup","processLinkData","newData","obj","i18nKey","newObj","reverse","header","dashoardLink","loginLink","_newObj$links","_newObj$links2","hasAccess","iconSelector","PTIcon","WSICon","FSMIcon","MCollectIcon","PGRIcon","TLIcon","OBPSIcon","BillsIcon","CitizenHome","getCitizenMenu","fetchedCitizen","isMobile","browser","parentModules","isApplyLink","toLowerCase","_mdmsDataObj$links","_mdmsDataObj$links2","mdmsDataObj","seenLinks","Set","dedupedLinks","ele","x","y","orderNumber","has","add","borderRadius","Devices","Divider","LinkIcon","handleNavigate","SVG","AddExpense","ListAlt","Boolean","BackLink","history","back","_mdmsDataObj$links3","_mdmsDataObj$links4","handleLinkClick","EmployeeHome","_ref4","Component","AppHome","_ref5","isSuperUserWithMultipleRootTenant","getRoleBasedHomeCard","QuickSetupConfigComponent","decorative","ariaLabel","ariaLabelledby","accessibilityProps","tabIndex","onKeyDown","_window$getConfig","focus","propTypes","PropTypes","isRequired","_userDetails$info2","_Digit$ComponentRegis","_userDetails$info3","_userDetails$info4","_window4","_cityDetails$city","_cityDetails$city2","toggleSidebar","isSidebarOpen","handleLogout","userDetails","CITIZEN","cityDetails","userOptions","handleUserDropdownSelection","logoUrlWhite","showLanguageChange","profilePic","setProfilePic","app","_userDetails$info","getCurrentTenantId","uuid","usersResponse","userSearch","user","_userDetails$photo","thumbs","photo","split","at","_Digit$UserService","_Digit$UserService2","CitizenHomePageTenantId","getCitizenCurrentTenant","unreadCount","unreadNotificationCount","isSuccess","notificationCountLoaded","useNotificationCount","getUser","TopBarComponent","img","updateSidebar","clikOusideFired","onLogout","notificationCount","cityOfCitizenShownBesideLogo","onNotificationIconClick","hideNotificationIconOnSomeUrlsWhenNotLoggedIn","_Digit$UserService3","access_token","urlsToDisableNotificationIcon","ChangeLanguage","loggedin","CustomEmployeeTopBar","TopBarComponentMain","actionFields","ChangeCity","userInfo","showArrow","menuStyles","theme","onHamburgerClick","logoWidth","logoHeight","logo","logoId","statelogo","onImageClick","onLogoClick","showDeafultImg","ulb","ulbGrade","defaultImage","SideBarMenu","closeSidebar","redirectToLoginPage","isEmployee","element","text","LogoutIcon","populators","Profile","stateName","mobileNumber","emailId","IconsObject","CommonPTIcon","propertyIcon","PropertyHouse","CaseIcon","WSIcon","CollectionIcon","BirthIcon","DeathIcon","FirenocIcon","HomeIcon","EditPencilIcon","Phone","_user$info","_menuItems","linkData","islinkDataLoading","isFetched","setisEmployee","showDialog","setShowDialog","handleOnCancel","showProfilePage","menuItems","profileItem","_window5","_window6","_storeData$tenants","_storeData$tenants$fi","_storeData$tenants$","_storeData$tenants$fi2","_storeData$tenants$2","MenuItem","_item$icon","itemComponent","leftIconArray","Item","Link","contactNumber","localeCompare","_linkData$key$","_linkData$key$2","_window7","_linkData$key$3","_linkData$key$4","sidebar","splice","sidebarURL","top","backgroundColor","pointerzevents","flexDirection","zIndex","LogoutDialog","handleOnSubmit","logout","CitizenSideBar","_menuItems2","_menuItems3","_user$info2","_user$info3","_user$info4","userProfile","search","setSearch","fetchUserProfile","_asyncToGenerator","_usersResponse$user2","_usersResponse$user3","userData","currentUser","_userDetails$photo2","handleModuleClick","updatedUrl","_item$displayName","_loop","_keys$i","_configEmployeeSideBa2","_configEmployeeSideBa3","_configEmployeeSideBa5","_configEmployeeSideBa6","getSingleDisplayName","getParentDisplayName","_configEmployeeSideBa4","ob","_ob$displayName","indx","findIndex","home","comp","part","c1","c2","transformedMenuItems","_item$links","transformedSelectedCityData","transformedLanguageData","hamburgerItems","Hamburger","items","profileName","profileNumber","transitionDuration","styles","hideUserManuals","profile","isSearchable","_ref6","parentIndex","_window8","_window9","handleChangeCity","onItemSelect","StaticCitizenSideBar","EmployeeSideBar","extractLeftIcon","Array","isArray","subResult","mergeObjects","obj1","obj2","hasOwnProperty","_item$path","_item$path2","hierarchicalMap","sortDataByOrderNumber","Infinity","transformedData","transformItem","navigationUrl","childKey","iconKey","transformData","objectArray","entries","fromEntries","splitKeyValue","sortedTransformedData","MediaQuery","minWidth","SideNav","hideAccessbilityTools","test","hostUrl","origin","fallbackError","navigateToRespectiveURL","expandedWidth","collapsedWidth","onBottomItemClick","showSidebar","handleSidebar","func","TopBar","SideBar","WrappedComponent","mainSelector","handleFirstTab","main","document","querySelector","setAttribute","outline","removeEventListener","addEventListener","callback","savedCallback","timer","useLoginConfig","getConfigModuleName","useCommonMDMS","_data$moduleName","LoginConfig","retry","_data$MdmsRes$common","useGetFAQsJSON","moduleFaqs","Fragment","BackButton","marginLeft","HeaderComponent","paddingTop","LanguageSelection","texts","useMemo","submitBarLabel","RadioButtonProps","options","optionsKey","additionalWrapperClass","selectedOption","PageBasedInput","onSubmit","RadioButtons","LocationSelection","uiHomePage","initisLoading","redirectURL","cities","useTenants","showError","setShowError","selectCity","redirectBackTo","SearchOnRadioButtons","placeholder","CardLabelError","closeDrawer","removeProfilePic","showToast","uploadedFile","setUploadedFile","file","setFile","setError","_response$data","response","UploadServices","Filestorage","files","_response$data2","fileStoreId","err","position","left","right","bottom","onOverlayBodyClick","alignItems","flex","gap","for","cursor","GalleryIcon","accept","onChange","target","removeimg","RemoveIcon","DEFAULT_TENANT","_Digit$getStateId","defaultValidationConfig","UserProfileValidationConfig","password","_Digit$UserService$ge","_mdmsValidationData$U2","_defaultValidationCon","_errors$userName","_errors$emailAddress","_mdmsValidationData$U3","_defaultValidationCon2","_errors$userName2","_mdmsValidationData$U4","_defaultValidationCon3","_errors$mobileNumber","_errors$emailAddress2","_mdmsValidationData$U5","_defaultValidationCon4","_errors$currentPasswo","_mdmsValidationData$U6","_defaultValidationCon5","_errors$newPassword","_mdmsValidationData$U7","_defaultValidationCon6","_errors$confirmPasswo","stateId","setUserDetails","setName","email","setEmail","gender","setGender","setCity","permanentCity","setMobileNo","profileImg","setProfileImg","openUploadSlide","setOpenUploadSide","changepassword","setChangepassword","currentPassword","setCurrentPassword","newPassword","setNewPassword","confirmPassword","setConfirmPassword","toast","setToast","setLoading","windowWidth","setWindowWidth","innerWidth","errors","setErrors","individualServicePath","mapConfigToRegExp","_config$UserProfileVa","startsWith","lastIndexOf","lastSlashIndex","pattern","slice","flags","RegExp","validationConfig","setValidationConfig","mdmsValidationData","isValidationConfigLoading","commonUiConfig","_mdmsValidationData$U","updatedValidationConfig","getUserInfo","_response$Individual","CustomService","getResponse","useCache","method","userService","params","limit","offset","body","Individual","userUuid","editScreen","setGenderName","closeFileUploadDrawer","setUserName","_validationConfig$nam","userName","setUserEmailAddress","emailAddress","duration","updateProfile","_userDetails$name","_userDetails$name2","_responseInfo","trim","JSON","stringify","responseInfo","trimmedCurrentPassword","trimmedNewPassword","trimmedConfirmPassword","individualPayload","givenName","familyName","otherNames","isDeleted","isSystemUser","isSystemUserActive","status","requestData","existingPassword","username","res","changePassword","changePasswordResponseInfo","_error$Errors","Errors","errorObj","parse","_error$response","menu","Menu","useGenderMDMS","genderDetails","setFileStoreId","thumbnails","getThumbnails","_x","ids","Filefetch","fileStoreIds","o","images","getFileUrl","_x2","_x3","BreadCrumb","crumbs","internalLink","show","boxShadow","background","maxWidth","transform","onClickAddPic","CameraIcon","paddingBottom","LabelFieldPair","CardLabel","TextInput","isMandatory","disable","ErrorMessage","truncateMessage","maxLength","wrapperClassName","showIcon","disabled","borderBottom","MobileNumber","_validationConfig$mob","setUserMobileNumber","required","getOTPBasedLogin","TogleforPassword","paddingLeft","_e$target","_e$target2","_e$target3","fontWeight","Footer","SubmitBar","setactionFieldsToRight","Toast","UploadDrawer","useAnIndividual","IndividualUserProfile","handleResize","updateUser","Home","_window3$includes","_window4$includes","_citizenServicesObj$s","_citizenServicesObj$p","_citizenServicesObj$p3","_citizenServicesObj$p5","_citizenServicesObj$p7","_infoAndUpdatesObj$si","_infoAndUpdatesObj$pr","_infoAndUpdatesObj$pr3","_infoAndUpdatesObj$pr5","_infoAndUpdatesObj$pr7","_whatsNewSectionObj$s2","conditionsToDisableNotificationCountTrigger","EventsData","EventsDataLoading","useEvents","appBannerWebObj","appBannerDesktop","appBannerMobObj","appBannerMobile","citizenServicesObj","citizenServicesCard","infoAndUpdatesObj","informationAndUpdatesCard","whatsAppBannerWebObj","whatsAppBannerDesktop","whatsAppBannerMobObj","whatsAppBannerMobile","whatsNewSectionObj","whatsNewSection","handleClickOnWhatsAppBanner","allCitizenServicesProps","headerLabel","sideOption","_citizenServicesObj$s2","Icon","ComplaintIcon","_citizenServicesObj$p2","_citizenServicesObj$p4","_citizenServicesObj$p6","_citizenServicesObj$p8","allInfoAndUpdatesProps","_infoAndUpdatesObj$si2","_infoAndUpdatesObj$pr2","Calender","_infoAndUpdatesObj$pr4","DocumentIcon","_infoAndUpdatesObj$pr6","_infoAndUpdatesObj$pr8","bannerUrl","CardBasedOptions","_whatsNewSectionObj$s","WhatsNewCard","videoPlay","setVideoPlay","vidSrc","setVidSrc","ViDSvg","viewBox","xmlns","d","useGetHowItWorksJSON","mdmsConfigResult","screenHeader","CustomButton","videosJson","videos","onClickVideo","vidObj","pdfHeader","pdfDesc","PDFSvg","DownloadImgIcon","CloseSvg","controls","autoPlay","otp","onOtpChange","onResend","canSubmit","timeLeft","setTimeLeft","useInterval","handleResendOtp","OTPInput","FormStep","loginSteps","cardText","nextText","inputs","validation","minlength","maxlength","onMobileChange","onEmailChange","isEmail","setIsEmail","core_mobile_config","EMAIL_REGEX","rawPattern","mobileNumberPattern","isEmailValid","isMobileValid","linkLabel","InputCard","submit","onNext","handleSubmit","isDisable","FieldV1","withoutLabel","charCount","prefix","mobilePrefix","mobileNumberLength","fieldStyle","LinkLabel","userSelect","textDecoration","switchMode","TYPE_LOGIN","DEFAULT_REDIRECT_URL","getFromLocation","searchParams","isUserRegistered","isOtpValid","setIsOtpValid","setParams","errorTO","setErrorTO","canSubmitName","setCanSubmitName","canSubmitOtp","setCanSubmitOtp","canSubmitNo","setCanSubmitNo","errorTimeout","_location$state2","setCitizenDetail","userObject","token","_JSON$parse","sessionStorage","getItem","localStorage","setItem","stepItems","selectMobileNumber","sendOtp","selectName","registerURL","IndividualRegister","requestType","auth","Error","selectOtp","_yield$Digit$UserServ","authenticate","ResponseInfo","UserRequest","tokens","resendOtp","AppContainer","Routes","Route","SelectMobileNumber","event","showRegisterLink","SelectOtp","SelectName","TYPE_REGISTER","_location$state7","IndividualLogin","_location$state4","_location$state3","_location$state5","_location$state6","roleInfo","userRole","otpReference","_yield$Digit$UserServ2","registerUser","_excluded2","isCitizenDesktop","isCheckBoxInput","isDateObject","Date","isNullOrUndefined","isObjectType","isObject","getEventValue","checked","isNameInFieldArray","names","getNodeParentName","isWeb","HTMLElement","cloneObject","copy","Blob","FileList","tempObject","prototypeCopy","prototype","isPlainObject","compact","isUndefined","val","object","result","isBoolean","isKey","stringToPath","input","tempPath","newValue","objValue","isNaN","EVENTS","VALIDATION_MODE","INPUT_VALIDATION_RULES","HookFormContext","useFormContext","getProxyFormState","localProxyFormState","isRoot","defaultValues","_defaultValues","defineProperty","_key","_proxyFormState","isEmptyObject","shouldRenderFormState","formStateData","updateFormState","convertToArrayPayload","shouldSubscribeByName","signalName","exact","currentName","useSubscribe","_props","subscription","subject","subscribe","next","unsubscribe","isString","generateWatchOutput","_names","formValues","isGlobal","watch","fieldName","watchAll","Controller","methods","shouldUnregister","isArrayField","array","_name","_subjects","values","updateValue","_formValues","_getWatch","_removeUnmounted","useWatch","_formState","_mounted","_localProxyFormState","isDirty","dirtyFields","touchedFields","validatingFields","isValidating","isValid","_updateFormState","_updateValid","useFormState","_registerProps","register","rules","_shouldUnregisterField","_options","updateMounted","field","_fields","_f","mount","_state","unregister","_updateDisabledField","fields","onBlur","ref","elm","setCustomValidity","reportValidity","fieldState","defineProperties","invalid","enumerable","isTouched","useController","appendErrors","validateAllFieldCriteria","types","getValidationModes","mode","isOnSubmit","isOnBlur","isOnChange","isOnAll","isOnTouch","isWatched","isBlurEvent","watchName","iterateFieldsByAction","fieldsNames","abortEarly","currentField","refs","updateFieldArrayRootError","fieldArrayErrors","isFileInput","isFunction","isHTMLElement","owner","ownerDocument","defaultView","isMessage","isRadioInput","isRegex","defaultResult","validResult","getCheckboxValue","attributes","defaultReturn","getRadioValue","previous","getValidateError","every","getValueAndMessage","validationData","validateField","async","shouldUseNativeValidation","isFieldArray","minLength","min","max","validate","valueAsNumber","inputValue","inputRef","isRadio","isCheckBox","isRadioOrCheckbox","isEmpty","appendErrorsCurry","bind","getMinMaxMessage","exceedMax","maxLengthMessage","minLengthMessage","maxType","minType","exceedMin","maxOutput","minOutput","valueDate","valueAsDate","convertTimeToDate","time","toDateString","isTime","isWeek","valueNumber","maxLengthOutput","minLengthOutput","patternValue","match","validateError","validationResult","unset","paths","childObject","updatePath","baseGet","isEmptyArray","createSubject","_observers","observers","observer","isPrimitive","deepEqual","object1","object2","getTime","keys1","keys2","val1","val2","isMultipleSelect","live","isConnected","objectHasFunction","markFieldsDirty","isParentNodeArray","getDirtyFieldsFromDefaultValues","dirtyFieldsFromValues","getDirtyFields","getFieldValueAs","setValueAs","NaN","getFieldValue","selectedOptions","getRuleValue","rule","source","schemaErrorLookup","join","foundError","pop","defaultOptions","reValidateMode","shouldFocusError","createFormControl","delayErrorCallback","submitCount","isSubmitted","isSubmitting","isSubmitSuccessful","unMount","validationModeBeforeSubmit","validationModeAfterSubmit","shouldDisplayAllAssociatedErrors","criteriaMode","shouldUpdateValid","resolver","_executeSchema","executeBuiltInValidation","_updateIsValidating","updateValidAndValue","shouldSkipSetValueAs","defaultChecked","setFieldValue","updateTouchAndDirty","fieldValue","shouldDirty","shouldRender","shouldUpdateField","isPreviousDirty","output","disabledField","_getDirty","isCurrentFieldPristine","isPreviousFieldTouched","context","getResolverOptions","shouldOnlyCheckValid","valid","isFieldArrayRoot","fieldError","getValues","fieldReference","optionRef","checkboxRef","radioRef","shouldTouch","shouldValidate","trigger","setValues","fieldKey","setValue","cloneValue","isFieldValueUpdated","_updateIsFieldValueUpdated","Number","shouldSkipValidation","deps","skipValidation","watched","previousErrorLookupResult","errorLookupResult","previousFieldError","delayError","updateErrors","wait","updatedFormState","shouldRenderByError","_focusInput","fieldNames","executeSchemaAndUpdateState","Promise","all","shouldFocus","getFieldState","currentError","currentRef","restOfErrorTree","delete","keepValue","keepError","keepDirty","keepTouched","keepIsValidating","keepDefaultValue","keepIsValid","disabledIsDefined","progressive","fieldRef","querySelectorAll","radioOrCheckbox","_focusError","onValid","onInvalid","onValidError","persist","fieldValues","_reset","keepStateOptions","updatedValues","cloneUpdatedValues","isEmptyResetValues","keepDefaultValues","keepValues","keepDirtyValues","form","closest","reset","keepSubmitCount","keepIsSubmitted","keepErrors","keepIsSubmitSuccessful","_updateFieldArray","args","shouldSetValues","shouldUpdateFieldsAndState","argA","argB","unsetEmptyArray","_getFieldArray","_resetDefaultValues","then","resetOptions","_disableForm","_setErrors","payload","resetField","clearErrors","inputName","setFocus","shouldSelect","previousPage","SearchField","DatePicker","date","_data$roles","tabledata","settabledata","DownloadBtn","DownloadBtnCommon","returnObject","convertEpochToDate","timestamp","convertEpochToTimeInHours","dataView","dataViewedBy","dateEpoch","dateFromApi","month","getMonth","day","getDate","year","getFullYear","hour","getHours","getMinutes","period","currentlyActiveMobileModal","setActiveMobileModal","useReducer","closeMobilePopupModal","MobilePopUpCloseButton","searchFormFieldsComponentProps","CurrentMobileModalComponent","useCallback","SearchForm","SearchFormFields","MobileComponentDirectory","propsMobileInboxCards","_data$roles$slice","tabData","Download","Excel","handleExcelDownload","SearchAction","handleActionClick","DetailsCard","count","initialValues","sortOrder","_formControl","_values","useForm","onSort","desc","MobileSearchApplication","GetCell","columns","disableSortBy","accessor","row","_row$roles$slice","marginRight","SearchFields","Table","totalRecords","getCellProps","cellInfo","column","onPageSizeChange","currentPage","onNextPage","onPrevPage","manualPagination","pageSizeLimit","disableSort","sortParams","_data$ElasticSearchDa","_data$ElasticSearchDa2","setPayload","convertDateToEpoch","dateString","dayStartOrEnd","parts","DateObj","UTC","setMinutes","getTimezoneOffset","setHours","setSeconds","getSeconds","storedPayload","k","useAudit","filters","AuditSearchApplication","_data","sortBy","fromDate","toDate","ElasticSearchData","_mdmsData$MdmsRes$com","_mdmsConfigResult$hel","_mdmsConfigResult$hel2","_mdmsConfigResult$hel3","_mdmsConfigResult$hel4","_mdmsConfigResult$hel5","_mdmsConfigResult$hel6","_staticData","_staticData2","_staticData3","_staticData4","_staticData5","_staticContent","_staticContent2","_staticContent3","isMdmsLoading","mdmsData","useStaticData","isSearchLoading","dynamicData","useDynamicData","IconComponent","StaticData","StaticDataIconComponentOne","TimerIcon","StaticDataIconComponentTwo","RupeeSymbol","staticContent","staticCommonContent","validity","staticData","staticDataOne","staticDataOneHeader","staticDataTwo","staticDataTwoHeader","payViaWhatsApp","handleClickOnWhatsApp","WhatsappIconGreen","helpline","HelpLineIcon","contactOne","contactTwo","serviceCenter","ServiceCenterIcon","viewMapLocation","dynamicDataOne","dynamicDataTwo","ValidityTimeIcon","isLoggedIn","handleLogoutCancel","buildItems","isDigitStudio","orderCounter","_moduleEntries$","moduleEntries","entry","_entry$sidebar","endsWith","rawIcon","seen","navigateToUrl","enableSearch","handleLogoutSubmit","lazyWithFallback","FAQsSection","UserProfile","HowItWorks","Login","Search","StaticDynamicCard","sidebarHiddenFor","getTenants","codes","_window7$getConfig","DSO","appTenants","sourceUrl","isLinkDataFetched","_data$ACCESSCONTROLA","el","_a$b$parentModule","classname","useRouteSubscription","hideSidebar","appRoutes","DynamicModuleLoader","ModuleLevelLinkHomePages","bannerImage","CitizenHomeCard","Info","CitizenInfoLabel","isInfo","TopBarSideBar","CitizenSideNav","_window8$getConfig","ChangePasswordComponent","_window3$getConfig","propsConfig","mobile_number","setOtp","setShowToast","getUserType","setType","closeToast","onResendOTP","_err$response","error_description","onChangePassword","navigateToLogin","_err$response2","FormComposer","noBoxShadow","inline","submitInForm","submitButtonLabel","cardStyle","CardSubHeader","_window4$getConfig","loginParams","defaultProps","EmployeeChangePassword","loginConfig","ForgotPassword","_window6$getConfig","_mdmsData$config$","bannerImages","onForgotPassword","alert","userId","Carousel","FormComposerV2","secondaryActionLabel","secondaryButtonLabel","onSecondayActionClick","headingStyle","descriptionStyles","secondaryActionId","_window5$getConfig","ForgotPasswordComponent","defaultLanguage","_Digit$getDefaultLang","getDefaultLanguage","_defaultLanguages","_window2$getConfig","defaultLanguages","hasMultipleLanguages","now","_loginConfig$","currentSlide","setCurrentSlide","carouselItems","nextSlide","interval","backgroundImage","image","prevSlide","_","goToSlide","mdmsConfig","masterName","localePrefix","component","customProps","LoginOtpConfig","_Digit2","_config$","_config$2","loginOTPBased","isStoreLoading","setDisable","DynamicLoginComponent","_user$info5","_user$info6","_user$info7","_user$info8","setEmployeeDetail","decodeURIComponent","onLogin","_requestData$city","reqCreate","enable","mutation","useCustomAPIMutationHook","onOtpLogin","_Digit3","_onSuccess","inputEmail","mutate","onError","variables","_error$response2","onSuccess","_Digit4","defaultTenant","_field$populators","_field$populators2","onFormValueChange","hasEmptyFields","renderLoginForm","_propsConfig$texts","_propsConfig$texts2","_propsConfig$texts3","extraClasses","cardClassName","wrapperClass","cardSubHeaderClassName","buttonClassName","renderFooter","footerClassName","_window9$getConfig","_window0","_window0$getConfig","withAutoFocusMain","setloginConfig","defaultLoginConfig","loginOtpConfig","setloginOtpConfig","defaultLoginOtpConfig","loginType","store","Services","modulePrefix","loginOtpParams","LoginComponent","isLogin","ifSuperUserExists","setIfSuperUserExist","OtpConfig","redirectPathOtpLogin","getRedirectPathOtpLogin","locationPathname","_MdmsRes$","isSuperUser","_formData$OtpComponen","OtpComponent","formValue","_otpValue$otp","otpValue","SignUpConfig","accountName","_data$Tenants$","_data$Tenants$2","Tenants","setSignUpConfig","defaultSignUpConfig","_data$commonUiConfig","SignUpParams","ViewUrl","gcTime","TickMark","nonEditable","host","navigator","clipboard","writeText","onButtonClick","ChangePassword","default","_codes$map","AppModules","EmployeeLogin","Otp","userScreensExempted","_location$pathname","_initData$modules","noTopBar","isUserProfile","_location$pathname2","mediaQuery","query","captures","RE_MEDIA_QUERY","modifier","expressions","parsed","inverse","expression","RE_MQ_EXPRESSION","feature","RE_MQ_FEATURE","parseQuery","typeMatch","expressionsMatch","expValue","toPx","toDpi","toDecimal","parseInt","RE_LENGTH_UNIT","RE_RESOLUTION_UNIT","ratio","numbers","decimal","resolution","parseFloat","String","staticMatch","dynamicMatch","matchMedia","Mql","forceStatic","mql","self","update","evt","matches","media","addListener","listener","removeListener","dispose","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","componentName","propFullName","secret","getShim","ReactPropTypes","bigint","bool","number","string","symbol","any","arrayOf","elementType","instanceOf","node","objectOf","oneOf","oneOfType","shape","checkPropTypes","REACT_ELEMENT_TYPE","Symbol","REACT_FRAGMENT_TYPE","jsxProd","maybeKey","$$typeof","jsx","jsxs","uppercasePattern","msPattern","cache","toHyphenLower","hName","stringOrNumber","grid","aural","braille","handheld","print","projection","screen","tty","tv","embossed","matchers","orientation","scan","aspectRatio","deviceAspectRatio","deviceHeight","deviceWidth","colorIndex","monochrome","featureMatchers","features","minAspectRatio","maxAspectRatio","minDeviceAspectRatio","maxDeviceAspectRatio","minHeight","maxHeight","minDeviceHeight","maxDeviceHeight","minDeviceWidth","maxDeviceWidth","minColor","maxColor","minColorIndex","maxColorIndex","minMonochrome","maxMonochrome","minResolution","maxResolution","mq","Context","createContext","hyphenateKeys","useIsUpdate","useQuery","settings","getQuery","v","realKey","keyVal","toQuery","makeQuery","setQuery","newQuery","useMediaQuery","device","deviceSettings","deviceFromProps","deviceFromContext","useContext","getDevice","setDevice","newDevice","objA","objB","aKeys","bKeys","len","shallowEqualObjects","useDevice","getMatchMedia","setMq","isUpdate","newMq","useMatchMedia","setMatches","updateMatches","ev","useMatches","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","n","getter","__esModule","definition","r","toStringTag","CitizenApp","EmployeeApp","SignUp","CustomErrorComponent","DigitApp","defaultLanding","allowedUserTypes","getCurrentUlb","commonProps","DigitAppWrapper","_window1","_window10","_window11","_location","middleware","thunk","enhancer","composeEnhancers","compose","applyMiddleware","defaultStore","moduleReducers","createStore","getRootReducer","combineReducers","common","defaultData","isChecked","setIsChecked","showPopUp","setShowPopUp","privacy","PrivacyPolicy","policy","_props$props","CheckBox","footerclassName","sortFooterChildren","contents","getElementById","scrollIntoView","behavior","isSpaceRequired","descriptions","subIndex","isBold","subDescriptions","subDesc","subSubIndex","DigitUIWrapper","_initData$stateInfo","_initData$stateInfo2","_initData$stateInfo3","enabledModules","useInitStore","getStore","getI18n","setComponent","PrivacyComponent","Provider","Router","BodyContainer","DigitUI","registry","initialPrivacy","getPrivacyObject","setPrivacy","queryClient","QueryClient","queries","attemptIndex","ComponentProvider","Contexts","PrivacyProvider","resetPrivacy","setPrivacyObject","getPrivacy","privacyObj","updatePrivacyDescoped","getAllPrivacyObject","updatePrivacy","privacyContextValue","QueryClientProvider","client","componentsToRegister","_props$props4","_props$props2","_props$props3","ForgotOrganizationTooltip","showTip","setShowTip","wrapperRef","handleClickOutside","contains","whiteSpace","wordBreak","LoginSignupSelector","isSignupPage","onButtonClickLogin","onButtonClickSignUP","initCoreComponents"],"sourceRoot":""}
1
+ {"version":3,"file":"main.js","mappings":"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","sources":["webpack://@egovernments/digit-ui-module-core/webpack/universalModuleDefinition","webpack://@egovernments/digit-ui-module-core/./src/components/Background.js","webpack://@egovernments/digit-ui-module-core/./src/components/ChangeCity.js","webpack://@egovernments/digit-ui-module-core/./src/components/ChangeLanguage.js","webpack://@egovernments/digit-ui-module-core/./src/components/CustomErrorComponent.js","webpack://@egovernments/digit-ui-module-core/./src/components/Dialog/LogoutDialog.js","webpack://@egovernments/digit-ui-module-core/./src/components/DummyLoader.js","webpack://@egovernments/digit-ui-module-core/./src/components/DynamicModuleLoader.js","webpack://@egovernments/digit-ui-module-core/./src/components/ErrorBoundaries.js","webpack://@egovernments/digit-ui-module-core/./src/components/ErrorComponent.js","webpack://@egovernments/digit-ui-module-core/./src/components/Header.js","webpack://@egovernments/digit-ui-module-core/./src/components/RoleBasedEmployeeHome.js","webpack://@egovernments/digit-ui-module-core/./src/pages/employee/QuickStart/QuickSetup.js","webpack://@egovernments/digit-ui-module-core/./src/pages/employee/QuickStart/Config.js","webpack://@egovernments/digit-ui-module-core/./src/components/Home.js","webpack://@egovernments/digit-ui-module-core/./src/components/ImageComponent.js","webpack://@egovernments/digit-ui-module-core/./src/components/TopBarSideBar/TopBar.js","webpack://@egovernments/digit-ui-module-core/./src/components/utils.js","webpack://@egovernments/digit-ui-module-core/./src/config/sidebar-menu.js","webpack://@egovernments/digit-ui-module-core/./src/components/TopBarSideBar/SideBar/StaticCitizenSideBar.js","webpack://@egovernments/digit-ui-module-core/./src/components/TopBarSideBar/SideBar/CitizenSideBar.js","webpack://@egovernments/digit-ui-module-core/./src/components/TopBarSideBar/SideBar/EmployeeSideBar.js","webpack://@egovernments/digit-ui-module-core/./src/components/TopBarSideBar/SideBar/index.js","webpack://@egovernments/digit-ui-module-core/./src/components/TopBarSideBar/index.js","webpack://@egovernments/digit-ui-module-core/./src/hoc/withAutoFocusMain.js","webpack://@egovernments/digit-ui-module-core/./src/hooks/useInterval.js","webpack://@egovernments/digit-ui-module-core/./src/hooks/useLoginConfig.js","webpack://@egovernments/digit-ui-module-core/./src/pages/citizen/FAQs/FaqComponent.js","webpack://@egovernments/digit-ui-module-core/./src/pages/citizen/FAQs/FAQs.js","webpack://@egovernments/digit-ui-module-core/./src/pages/citizen/Home/LanguageSelection.js","webpack://@egovernments/digit-ui-module-core/./src/pages/citizen/Home/LocationSelection.js","webpack://@egovernments/digit-ui-module-core/./src/pages/citizen/Home/ImageUpload/UploadDrawer.js","webpack://@egovernments/digit-ui-module-core/./src/pages/citizen/Home/IndividualUserProfile.js","webpack://@egovernments/digit-ui-module-core/./src/pages/citizen/Home/UserProfile.js","webpack://@egovernments/digit-ui-module-core/./src/pages/citizen/Home/index.js","webpack://@egovernments/digit-ui-module-core/./src/pages/citizen/HowItWorks/howItWorks.js","webpack://@egovernments/digit-ui-module-core/./src/pages/citizen/Login/SelectOtp.js","webpack://@egovernments/digit-ui-module-core/./src/pages/citizen/Login/config.js","webpack://@egovernments/digit-ui-module-core/./src/pages/citizen/Login/SelectMobileNumber.js","webpack://@egovernments/digit-ui-module-core/./src/pages/citizen/Login/SelectName.js","webpack://@egovernments/digit-ui-module-core/./src/pages/citizen/Login/IndividualLogin.js","webpack://@egovernments/digit-ui-module-core/./src/pages/citizen/Login/index.js","webpack://@egovernments/digit-ui-module-core/../../../node_modules/react-hook-form/dist/index.esm.mjs","webpack://@egovernments/digit-ui-module-core/./src/components/Search/SearchFields.js","webpack://@egovernments/digit-ui-module-core/./src/components/Search/MobileSearchApplication.js","webpack://@egovernments/digit-ui-module-core/./src/components/Search/index.js","webpack://@egovernments/digit-ui-module-core/./src/pages/citizen/SearchApp.js","webpack://@egovernments/digit-ui-module-core/./src/pages/citizen/StaticDynamicComponent/StaticDynamicCard.js","webpack://@egovernments/digit-ui-module-core/./src/components/TopBarSideBar/SideBar/CitizenSideNav.js","webpack://@egovernments/digit-ui-module-core/./src/pages/citizen/index.js","webpack://@egovernments/digit-ui-module-core/./src/pages/employee/ChangePassword/changePassword.js","webpack://@egovernments/digit-ui-module-core/./src/pages/employee/ChangePassword/config.js","webpack://@egovernments/digit-ui-module-core/./src/pages/employee/ChangePassword/index.js","webpack://@egovernments/digit-ui-module-core/./src/pages/employee/ForgotPassword/config.js","webpack://@egovernments/digit-ui-module-core/./src/pages/employee/ForgotPassword/forgotPassword.js","webpack://@egovernments/digit-ui-module-core/./src/pages/employee/ForgotPassword/index.js","webpack://@egovernments/digit-ui-module-core/./src/pages/employee/LanguageSelection/index.js","webpack://@egovernments/digit-ui-module-core/./src/pages/employee/Login/Carousel/Carousel.js","webpack://@egovernments/digit-ui-module-core/./src/pages/employee/Login/config.js","webpack://@egovernments/digit-ui-module-core/./src/pages/employee/Login/ConfigOtp.js","webpack://@egovernments/digit-ui-module-core/./src/pages/employee/Login/login.js","webpack://@egovernments/digit-ui-module-core/./src/pages/employee/Login/index.js","webpack://@egovernments/digit-ui-module-core/./src/pages/employee/Otp/index.js","webpack://@egovernments/digit-ui-module-core/./src/pages/employee/SignUp/config.js","webpack://@egovernments/digit-ui-module-core/./src/pages/employee/SignUp/signUp.js","webpack://@egovernments/digit-ui-module-core/./src/pages/employee/SignUp/index.js","webpack://@egovernments/digit-ui-module-core/./src/pages/employee/ViewUrl/index.js","webpack://@egovernments/digit-ui-module-core/./src/components/AppModules.js","webpack://@egovernments/digit-ui-module-core/./src/pages/employee/index.js","webpack://@egovernments/digit-ui-module-core/../../../node_modules/css-mediaquery/index.js","webpack://@egovernments/digit-ui-module-core/../../../node_modules/matchmediaquery/index.js","webpack://@egovernments/digit-ui-module-core/../../../node_modules/prop-types/factoryWithThrowingShims.js","webpack://@egovernments/digit-ui-module-core/../../../node_modules/prop-types/index.js","webpack://@egovernments/digit-ui-module-core/../../../node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://@egovernments/digit-ui-module-core/../../../node_modules/hyphenate-style-name/index.js","webpack://@egovernments/digit-ui-module-core/../../../node_modules/react-responsive/dist/esm/index.js","webpack://@egovernments/digit-ui-module-core/../../../node_modules/react-responsive/node_modules/shallow-equal/dist/index.modern.mjs","webpack://@egovernments/digit-ui-module-core/../../../node_modules/react/cjs/react-jsx-runtime.production.js","webpack://@egovernments/digit-ui-module-core/../../../node_modules/react/jsx-runtime.js","webpack://@egovernments/digit-ui-module-core/external umd \"@egovernments/digit-ui-components\"","webpack://@egovernments/digit-ui-module-core/external umd \"@egovernments/digit-ui-react-components\"","webpack://@egovernments/digit-ui-module-core/external umd \"@egovernments/digit-ui-svg-components\"","webpack://@egovernments/digit-ui-module-core/external umd \"@tanstack/react-query\"","webpack://@egovernments/digit-ui-module-core/external umd \"React\"","webpack://@egovernments/digit-ui-module-core/external umd \"react-i18next\"","webpack://@egovernments/digit-ui-module-core/external umd \"react-redux\"","webpack://@egovernments/digit-ui-module-core/external umd \"react-router-dom\"","webpack://@egovernments/digit-ui-module-core/external umd \"redux\"","webpack://@egovernments/digit-ui-module-core/external umd \"redux-thunk\"","webpack://@egovernments/digit-ui-module-core/webpack/bootstrap","webpack://@egovernments/digit-ui-module-core/webpack/runtime/compat get default export","webpack://@egovernments/digit-ui-module-core/webpack/runtime/define property getters","webpack://@egovernments/digit-ui-module-core/webpack/runtime/hasOwnProperty shorthand","webpack://@egovernments/digit-ui-module-core/webpack/runtime/make namespace object","webpack://@egovernments/digit-ui-module-core/./src/App.js","webpack://@egovernments/digit-ui-module-core/./src/redux/store.js","webpack://@egovernments/digit-ui-module-core/./src/redux/reducers/index.js","webpack://@egovernments/digit-ui-module-core/./src/components/PrivacyComponent.js","webpack://@egovernments/digit-ui-module-core/./src/Module.js","webpack://@egovernments/digit-ui-module-core/./src/pages/employee/Otp/OtpCustomComponent.js","webpack://@egovernments/digit-ui-module-core/./src/components/ForgotOrganizationTooltip.js","webpack://@egovernments/digit-ui-module-core/./src/components/LoginSignupSelector.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"@egovernments/digit-ui-components\"), require(\"React\"), require(\"react-i18next\"), require(\"@tanstack/react-query\"), require(\"react-redux\"), require(\"react-router-dom\"), require(\"@egovernments/digit-ui-svg-components\"), require(\"@egovernments/digit-ui-react-components\"), require(\"redux\"), require(\"redux-thunk\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"@egovernments/digit-ui-components\", \"React\", \"react-i18next\", \"@tanstack/react-query\", \"react-redux\", \"react-router-dom\", \"@egovernments/digit-ui-svg-components\", \"@egovernments/digit-ui-react-components\", \"redux\", \"redux-thunk\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"@egovernments/digit-ui-module-core\"] = factory(require(\"@egovernments/digit-ui-components\"), require(\"React\"), require(\"react-i18next\"), require(\"@tanstack/react-query\"), require(\"react-redux\"), require(\"react-router-dom\"), require(\"@egovernments/digit-ui-svg-components\"), require(\"@egovernments/digit-ui-react-components\"), require(\"redux\"), require(\"redux-thunk\"));\n\telse\n\t\troot[\"@egovernments/digit-ui-module-core\"] = factory(root[\"@egovernments/digit-ui-components\"], root[\"React\"], root[\"react-i18next\"], root[\"@tanstack/react-query\"], root[\"react-redux\"], root[\"react-router-dom\"], root[\"@egovernments/digit-ui-svg-components\"], root[\"@egovernments/digit-ui-react-components\"], root[\"redux\"], root[\"redux-thunk\"]);\n})(this, (__WEBPACK_EXTERNAL_MODULE__6243__, __WEBPACK_EXTERNAL_MODULE__4883__, __WEBPACK_EXTERNAL_MODULE__5953__, __WEBPACK_EXTERNAL_MODULE__4456__, __WEBPACK_EXTERNAL_MODULE__2148__, __WEBPACK_EXTERNAL_MODULE__4442__, __WEBPACK_EXTERNAL_MODULE__338__, __WEBPACK_EXTERNAL_MODULE__5053__, __WEBPACK_EXTERNAL_MODULE__1954__, __WEBPACK_EXTERNAL_MODULE__2247__) => {\nreturn ","import React from \"react\";\n\nconst Background = ({ children }) => {\n return <div className=\"banner banner-container\">{children}</div>;\n};\n\nexport default Background;\n","import { CardText, Dropdown } from \"@egovernments/digit-ui-components\";\nimport React, { useEffect, useState } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\n\nconst stringReplaceAll = (str = \"\", searcher = \"\", replaceWith = \"\") => {\n if (searcher == \"\") return str;\n while (str?.includes(searcher)) {\n str = str?.replace(searcher, replaceWith);\n }\n return str;\n};\n\nconst ChangeCity = (prop) => {\n const [dropDownData, setDropDownData] = useState(null);\n const [selectCityData, setSelectCityData] = useState([]);\n const [selectedCity, setSelectedCity] = useState([]); \n const navigate = useNavigate();\n const isDropdown = prop.dropdown || false;\n let selectedCities = [];\n const isMultiRootTenant = Digit.Utils.getMultiRootTenant();\n\n const handleChangeCity = (city) => {\n const loggedInData = Digit.SessionStorage.get(\"citizen.userRequestObject\");\n const filteredRoles = Digit.SessionStorage.get(\"citizen.userRequestObject\")?.info?.roles?.filter((role) => role.tenantId === city.value);\n if (filteredRoles?.length > 0) {\n loggedInData.info.roles = filteredRoles;\n loggedInData.info.tenantId = city?.value;\n }\n Digit.SessionStorage.set(\"Employee.tenantId\", city?.value);\n Digit.UserService.setUser(loggedInData);\n setDropDownData(city);\n if (typeof window !== 'undefined' && window.location?.href?.includes(`/${window?.contextPath}/employee/`)) {\n const redirectPath = location.state?.from || `/${window?.contextPath}/employee`;\n navigate(redirectPath, { replace: true });\n }\n // Safe reload with error handling\n try {\n if (typeof window !== 'undefined') {\n window.location.reload();\n }\n } catch (error) {\n console.warn('Failed to reload page:', error);\n }\n };\n\n useEffect(() => {\n const userloggedValues = Digit.SessionStorage.get(\"citizen.userRequestObject\");\n let teantsArray = [],\n filteredArray = [];\n userloggedValues?.info?.roles?.forEach((role) => teantsArray.push(role.tenantId));\n let unique = teantsArray.filter((item, i, ar) => ar.indexOf(item) === i);\n unique?.forEach((uniCode) => {\n filteredArray.push({\n label: `TENANT_TENANTS_${stringReplaceAll(uniCode, \".\", \"_\")?.toUpperCase()}`,\n value: uniCode,\n });\n });\n selectedCities = filteredArray?.filter((select) => select.value == Digit.SessionStorage.get(\"Employee.tenantId\"));\n setSelectCityData(filteredArray);\n }, [dropDownData]);\n\n // if (isDropdown) {\n return (\n <div style={prop?.mobileView ? { color: \"#767676\" } : {}}>\n {\n (isMultiRootTenant && selectCityData.length==1) ? \n <CardText style={{color:\"#363636\"}}>{selectCityData?.[0]?.value}</CardText>\n :\n <Dropdown\n t={prop?.t}\n option={selectCityData}\n selected={selectCityData.find((cityValue) => cityValue.value === dropDownData?.value)}\n optionKey={\"label\"}\n select={handleChangeCity}\n freeze={true}\n customSelector={\n <label className=\"cp\">\n {prop?.t(`TENANT_TENANTS_${stringReplaceAll(Digit.SessionStorage.get(\"Employee.tenantId\"), \".\", \"_\")?.toUpperCase()}`)}\n </label>\n }\n />\n}\n </div>\n );\n // } else {\n // return (\n // <React.Fragment>\n // <div style={{ marginBottom: \"5px\" }}>City</div>\n // <div className=\"language-selector\" style={{display: \"flex\", flexWrap: \"wrap\"}}>\n // {selectCityData?.map((city, index) => (\n // <div className=\"language-button-container\" key={index}>\n // <CustomButton\n // selected={city.value === Digit.SessionStorage.get(\"Employee.tenantId\")}\n // text={city.label}\n // onClick={() => handleChangeCity(city)}\n // ></CustomButton>\n // </div>\n // ))}\n // </div>\n // </React.Fragment>\n // );\n // }\n};\n\nexport default ChangeCity;\n","import { Button, Dropdown } from \"@egovernments/digit-ui-components\";\nimport React, { useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nconst ChangeLanguage = (prop) => {\n const isDropdown = prop.dropdown || false;\n const { data: storeData, isLoading } = Digit.Hooks.useStore.getInitData();\n const { languages, stateInfo } = storeData || {};\n const { t } = useTranslation();\n const selectedLanguage = Digit.StoreData.getCurrentLanguage();\n const [selected, setselected] = useState(selectedLanguage);\n const handleChangeLanguage = (language) => {\n setselected(language.value);\n Digit.LocalizationService.changeLanguage(language.value, stateInfo.code);\n };\n\n if (isLoading) return null;\n\n if (isDropdown) {\n return (\n <div>\n <Dropdown\n className={\"language-dropdown\"}\n option={languages}\n selected={languages?.find((language) => language?.value === selectedLanguage)}\n optionKey={\"label\"}\n select={handleChangeLanguage}\n freeze={true}\n customSelector={<label className=\"cp\">{t(languages?.find((language) => language?.value === selected)?.label)}</label>}\n />\n </div>\n );\n } else {\n return (\n <React.Fragment>\n <div style={{ marginBottom: \"5px\" }}>Language</div>\n <div className=\"language-selector\">\n {languages.map((language, index) => (\n <div className=\"language-button-container\" key={index}>\n <Button\n label={language.label}\n onClick={() => handleChangeLanguage(language)}\n variation={language.value === selected ? \"primary\" : \"\"}\n />\n </div>\n ))}\n </div>\n </React.Fragment>\n );\n }\n};\n\nexport default ChangeLanguage;\n","import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useLocation, useNavigate } from \"react-router-dom\";\nimport Background from \"./Background\";\nimport { Button, Card, CardHeader, CardText } from \"@egovernments/digit-ui-components\";\nimport Header from \"./Header\";\n\nconst CustomErrorComponent = (props) => {\n const { state = {} } = useLocation();\n // const module = state?.module;\n const { t } = useTranslation();\n const stateInfo = props.stateInfo;\n\n const navigate = useNavigate();\n const ModuleBasedErrorConfig = {\n sandbox: {\n imgUrl: `https://s3.ap-south-1.amazonaws.com/egov-qa-assets/error-image.png`,\n infoHeader: \"WRONG_TENANT_SIGN_UP\",\n infoMessage: \"WRONG_TENANT_SIGN_UP_MESSAGE\",\n buttonInfo: \"WRONG_TENANT_SIGN_UP_BUTTON\",\n action: () => {\n navigate(`/${window.globalPath}/`);\n },\n },\n };\n const config = ModuleBasedErrorConfig[\"sandbox\"];\n\n return (\n <Background>\n <Card className={`digit-employee-card customError`}>\n <Header showTenant={false} />\n <CardHeader className={\"center\"}>{t(config.infoHeader)}</CardHeader>\n <CardText className={\"center\"}>{t(config.infoMessage)}</CardText>\n <Button\n className=\"customErrorButton\"\n label={t(config?.buttonInfo)}\n variation={\"primary\"}\n isSuffix={true}\n onClick={(e) => {\n e.preventDefault();\n config?.action();\n }}\n />\n </Card>\n </Background>\n );\n};\n\nexport default CustomErrorComponent;\n","import { CardText, PopUp, Button } from \"@egovernments/digit-ui-components\";\nimport React from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nconst LogoutDialog = ({ onSelect, onCancel, onDismiss, PopupStyles, isDisabled, hideSubmit }) => {\n const { t } = useTranslation();\n\n const children = [\n <div>\n <CardText>\n {t(\"CORE_LOGOUT_WEB_CONFIRMATION_MESSAGE\") + \" \"}\n <strong>{t(\"CORE_LOGOUT_MESSAGE\")}</strong>\n </CardText>\n </div>,\n ];\n\n const footer = [\n <Button\n type={\"button\"}\n size={\"large\"}\n variation={\"secondary\"}\n label={t(\"CORE_LOGOUT_CANCEL\")}\n className={\"logout-cancel-button\"}\n onClick={onCancel}\n />,\n <Button\n type={\"button\"}\n size={\"large\"}\n variation={\"primary\"}\n label={t(\"CORE_LOGOUT_WEB_YES\")}\n formId={\"modal-action\"}\n onClick={onSelect}\n isDisabled={isDisabled}\n />\n ];\n\n const footerWithoutSubmit = [\n <Button\n type={\"button\"}\n size={\"large\"}\n variation={\"digit-action-cancel\"}\n label={t(\"CORE_LOGOUT_CANCEL\")}\n className={\"logout-cancel-button\"}\n onClick={onCancel}\n />,\n ];\n\n return (\n <PopUp\n type=\"default\"\n children={children}\n heading={t(\"CORE_LOGOUT_WEB_HEADER\")}\n footerChildren={hideSubmit ? footerWithoutSubmit : footer}\n sortFooterButtons={true}\n onClose={onDismiss}\n className={\"digit-logout-popup-wrapper\"}\n onOverlayClick={onDismiss}\n equalWidthButtons={true}\n style={PopupStyles}\n ></PopUp>\n );\n};\nexport default LogoutDialog;","import React, {useRef, useEffect, useState } from \"react\";\nimport { CheckCircle } from \"@egovernments/digit-ui-svg-components\";\nimport { useNavigate, useLocation } from \"react-router-dom\";\nimport { useTranslation } from \"react-i18next\";\n\nconst DummyLoaderScreen = () => {\n const [currentStep, setCurrentStep] = useState(0);\n const navigate = useNavigate();\n const location = useLocation();\n const { t } = useTranslation();\n const { tenant } = location.state || {};\n const steps = [\n \"SANDBOX_GUIDE_SETUP_ACCOUNT\",\n \"SANDBOX_GUIDE_DEFAULT_MASTER_DATA\",\n \"SANDBOX_GUIDE_CONFIGURING_COMPLAINTS\",\n \"SANDBOX_GUIDE_CONFIGURING_EMPLOYEE_MANAGEMENT\",\n \"SANDBOX_GUIDE_SETTING_UP_CITIZEN_PORTAL\",\n \"SANDBOX_GUIDE_SETTING_UP_EMPLOYEE_PORTAL\",\n \"SANDBOX_GUIDE_LOADING_CONFIGURATION_INTERFACE\",\n \"SANDBOX_GUIDE_CREATING_DASHBOARD\",\n \"SANDBOX_GUIDE_ALL_SETUP_DONE\",\n ];\n useEffect(() => {\n const stepInterval = setInterval(() => {\n if (currentStep < steps.length) {\n setCurrentStep((prev) => prev + 1);\n }\n }, 2000); // 1 second delay for each step\n\n if (currentStep === steps.length) {\n clearInterval(stepInterval); // Clear the interval to stop further updates\n const globalPath = typeof window !== 'undefined' ? window?.globalPath : '';\n\n const navigateTimeout = setTimeout(() => {\n if (roleForLandingPage(getUserRoles, MdmsRes)) {\n navigate({\n pathname: `/${window?.globalPath}/${tenant}${RoleLandingUrl}`,\n state: { tenant: tenant },\n });\n\n } else {\n navigate({\n pathname: `/${window?.globalPath}/${tenant}/employee`,\n state: { tenant: tenant },\n });\n }\n }, 1000);\n\n return () => clearTimeout(navigateTimeout); // Cleanup timeout\n }\n\n return () => {\n clearInterval(stepInterval);\n };\n }, [currentStep]);\n\n const ref = useRef(null);\n const getUserRoles = Digit.SessionStorage.get(\"User\")?.info?.roles;\n const [buttonDisabled, setButtonDisabled] = useState(true);\n const { data: MdmsRes } = Digit.Hooks.useCustomMDMS(\n tenant,\n \"SandBoxLanding\",\n [\n {\n name: \"LandingPageRoles\",\n },\n ],\n {\n enabled: true,\n staleTime: 0,\n cacheTime: 0,\n select: (data) => {\n return data?.[\"SandBoxLanding\"]?.[\"LandingPageRoles\"];\n },\n }\n );\n\n useEffect(() => {\n if (MdmsRes?.[0].url) {\n setButtonDisabled(false);\n }\n }, [MdmsRes]);\n\n const RoleLandingUrl = MdmsRes?.[0].url;\n\n const roleForLandingPage = (getUserRoles, MdmsRes) => {\n const userRole = getUserRoles?.[0]?.code;\n return userRole === \"SUPERUSER\" && MdmsRes.some((page) => page.rolesForLandingPage.includes(\"SUPERUSER\"));\n };\n\n const onButtonClick = () => {\n if (roleForLandingPage(getUserRoles, MdmsRes)) {\n window.location.href = `/${window?.globalPath}/${tenant}${RoleLandingUrl}`;\n } else {\n window.location.href = `/${window?.globalPath}/${tenant}/employee`;\n }\n };\n\n return (\n <div className=\"sandbox-loader-screen\">\n <div className=\"sandbox-loader\"></div>\n <ul className=\"sandbox-installation-steps\">\n {steps.map((step, index) => (\n <li key={index} className={`sandbox-step ${index < currentStep ? \"sandbox-visible\" : \"\"}`}>\n <span className=\"sandbox-step-text\">{t(step)}</span>\n {index < currentStep && <CheckCircle fill=\"#00703C\" />}\n </li>\n ))}\n </ul>\n </div>\n );\n};\n\nexport default DummyLoaderScreen;\n","import React, { useState, useEffect } from \"react\";\nimport { Navigate } from \"react-router-dom\";\nimport { Loader } from \"@egovernments/digit-ui-components\";\nimport { useTranslation } from \"react-i18next\";\n\n/**\n * DynamicModuleLoader handles loading of modules from the ComponentRegistryService\n * with loading states, retries, and graceful error handling\n */\nconst DynamicModuleLoader = ({ \n moduleCode, \n stateCode, \n userType, \n tenants, \n maxRetries = 5, \n retryDelay = 1500,\n initialDelay = 100 // Initial delay before first check to allow modules to register\n}) => {\n const [moduleState, setModuleState] = useState({\n module: null,\n loading: true,\n error: null,\n retryCount: 0,\n initialDelayComplete: false\n });\n const { t } = useTranslation();\n\n useEffect(() => {\n let retryTimeout;\n let initialTimeout;\n\n const loadModule = async () => {\n try {\n // Check if module is available in ComponentRegistryService\n const Module = Digit.ComponentRegistryService.getComponent(`${moduleCode}Module`);\n \n if (Module) {\n setModuleState({\n module: Module,\n loading: false,\n error: null,\n retryCount: 0,\n initialDelayComplete: true\n });\n } else {\n // Module not found, check if we should retry\n if (moduleState.retryCount < maxRetries) {\n setModuleState(prev => ({\n ...prev,\n retryCount: prev.retryCount + 1\n }));\n \n // Retry after delay (exponential backoff)\n const delay = retryDelay * Math.pow(1.5, moduleState.retryCount);\n retryTimeout = setTimeout(() => {\n loadModule();\n }, delay);\n } else {\n // Max retries reached\n setModuleState({\n module: null,\n loading: false,\n error: `Module \"${moduleCode}\" not found after ${maxRetries} attempts`,\n retryCount: moduleState.retryCount,\n initialDelayComplete: true\n });\n }\n }\n } catch (error) {\n console.error(`Error loading module ${moduleCode}:`, error);\n setModuleState({\n module: null,\n loading: false,\n error: error.message,\n retryCount: moduleState.retryCount,\n initialDelayComplete: true\n });\n }\n };\n\n // Start with initial delay to allow modules to register\n if (!moduleState.initialDelayComplete) {\n initialTimeout = setTimeout(() => {\n setModuleState(prev => ({ ...prev, initialDelayComplete: true }));\n loadModule();\n }, initialDelay);\n } else {\n loadModule();\n }\n\n // Cleanup timeouts on unmount\n return () => {\n if (retryTimeout) {\n clearTimeout(retryTimeout);\n }\n if (initialTimeout) {\n clearTimeout(initialTimeout);\n }\n };\n }, [moduleCode, moduleState.retryCount, moduleState.initialDelayComplete, maxRetries, retryDelay, initialDelay]);\n\n // Show loading state\n if (moduleState.loading) {\n const loadingText = !moduleState.initialDelayComplete\n ? t(\"CORE_INITIALIZING_MODULE\", { moduleCode, defaultValue: \"Initializing {{moduleCode}} module...\" })\n : t(\"CORE_LOADING_MODULE\", { moduleCode, defaultValue: \"Loading {{moduleCode}} module...\" });\n\n return (\n <div className=\"module-loading-container\">\n <Loader \n page={true} \n variant=\"PageLoader\" \n loaderText={loadingText}\n />\n {moduleState.retryCount > 0 && moduleState.initialDelayComplete && (\n <div className=\"retry-info\" style={{ textAlign: 'center', marginTop: '1rem', color: '#666' }}>\n {t(\"CORE_MODULE_RETRY_ATTEMPT\", { retryCount: moduleState.retryCount, maxRetries, defaultValue: \"Retry attempt {{retryCount}}/{{maxRetries}}\" })}\n </div>\n )}\n </div>\n );\n }\n\n // Show error state and redirect\n if (moduleState.error || !moduleState.module) {\n console.warn(`Module loading failed for ${moduleCode}:`, moduleState.error);\n return (\n <Navigate\n to={`/${window?.contextPath}/employee/user/error?type=notfound&module=${moduleCode}&reason=${encodeURIComponent(moduleState.error || 'Module not found')}`}\n replace\n />\n );\n }\n\n // Render the loaded module\n const Module = moduleState.module;\n return (\n <Module \n stateCode={stateCode} \n moduleCode={moduleCode} \n userType={userType} \n tenants={tenants} \n />\n );\n};\n\nexport default DynamicModuleLoader;","import React from \"react\";\nimport ErrorComponent from \"./ErrorComponent\";\n\nconst Redircter = () => {\n // Add safety checks for window object\n if (typeof window === 'undefined') {\n return <span></span>;\n }\n\n try {\n const contextPath = window?.contextPath || '';\n const userType = Digit.UserService.getType();\n const path = userType === \"employee\" \n ? `/${contextPath}/employee/user/error` \n : `/${contextPath}/citizen/error`;\n \n const currentHref = window.location.href;\n \n // Check if we're already on an error page or in development\n if (\n currentHref.includes(\"employee/user/error\") ||\n currentHref.includes(\"citizen/error\") ||\n process.env.NODE_ENV === \"development\"\n ) {\n // Do nothing - already on error page or in development\n return <span></span>;\n }\n \n // Safe navigation with error handling\n try {\n window.location.href = path;\n } catch (navigationError) {\n console.warn('Navigation failed in error boundary:', navigationError);\n // Fallback: try using replace instead\n try {\n window.location.replace(path);\n } catch (replaceError) {\n console.error('Both href and replace failed:', replaceError);\n }\n }\n } catch (error) {\n console.error('Error in Redircter component:', error);\n }\n\n return <span></span>;\n};\n\nclass ErrorBoundary extends React.Component {\n constructor(props) {\n super(props);\n this.state = { error: null, errorStack: null, hasError: false, module: null, action: null, info: null };\n }\n\n static getDerivedStateFromError(error) {\n // Update state so the next render will show the fallback UI.\n return { error: error?.message, hasError: true, errorStack: error?.stack, module: error?.module, action: error?.action, info: error?.info };\n }\n\n componentDidCatch(error, errorInfo) {\n // Catch errors in any components below and re-render with error message\n this.setState({ \n error: error?.message, \n hasError: true, \n errorStack: error?.stack,\n module: error?.module,\n action: error?.action,\n info: errorInfo\n });\n \n // Enhanced error logging with safety checks\n try {\n // Log to console in development\n if (process.env.NODE_ENV === 'development') {\n console.group('🚨 Error Boundary Caught Error');\n console.error('Error:', error);\n console.error('Error Info:', errorInfo);\n console.error('Component Stack:', errorInfo?.componentStack);\n console.groupEnd();\n }\n \n // You can also log error messages to an error reporting service here\n // Example: errorReportingService.captureException(error, { extra: errorInfo });\n \n } catch (loggingError) {\n console.warn('Failed to log error in ErrorBoundary:', loggingError);\n }\n }\n\n render() {\n if (this.state.hasError) {\n // (\"UI-errorInfo\", this.state?.errorStack);\n // (\"UI-component-details\", this.props);\n // You can render any custom fallback UI\n return (\n <div className=\"error-boundary\">\n <Redircter />\n <ErrorComponent initData={this.props.initData} errorData={this.state} goToHome={() => {\n window.location.href = `/${window?.contextPath}/${Digit?.UserService?.getType?.()}`; // Use navigate\n }}/>\n\n {/* <summary>Something went wrong</summary>\n <details style={{ whiteSpace: \"pre-wrap\" }}>\n {this.state?.errorStack && this.state.errorStack.toString().substring(0, 600)}\n {this.state?.error}\n </details> */}\n </div>\n );\n }\n return this.props.children;\n }\n}\n\nexport default ErrorBoundary;\n","import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport ImageComponent from \"./ImageComponent\";\n\nconst ErrorConfig = {\n error: {\n imgUrl: `https://digit-ui-assets.s3.ap-south-1.amazonaws.com/error-image.png`,\n infoMessage: \"CORE_SOMETHING_WENT_WRONG\",\n buttonInfo: \"ACTION_TEST_HOME\",\n },\n maintenance: {\n imgUrl: `https://digit-ui-assets.s3.ap-south-1.amazonaws.com/maintainence-image.png`,\n infoMessage: \"CORE_UNDER_MAINTENANCE\",\n buttonInfo: \"ACTION_TEST_HOME\",\n },\n notfound: {\n imgUrl: `https://digit-ui-assets.s3.ap-south-1.amazonaws.com/PageNotFound.png`,\n infoMessage: \"MODULE_NOT_FOUND\",\n buttonInfo: \"ACTION_TEST_HOME\",\n },\n};\n\nconst ModuleBasedErrorConfig = {\n sandbox: {\n imgUrl: `https://digit-ui-assets.s3.ap-south-1.amazonaws.com/error-image.png`,\n infoMessage: \"WRONG_TENANT_SIGN_UP\",\n buttonInfo: \"CREATE_TENANT_ERROR_BUTTON\",\n },\n};\n\nconst ErrorComponent = (props) => {\n const { type = \"error\" } = Digit.Hooks.useQueryParams();\n const module = props?.errorData?.module;\n const { t } = useTranslation();\n const config = module ? ModuleBasedErrorConfig[module] : ErrorConfig[type];\n const stateInfo = props.stateInfo;\n\n return (\n <div className=\"error-boundary\">\n <div className=\"error-container\">\n <ImageComponent src={config.imgUrl} alt=\"error\" />\n <h1>{t(config.infoMessage)}</h1>\n <button\n onClick={() => {\n module ? props?.errorData?.action() : props?.goToHome?.();\n }}\n >\n {t(config.buttonInfo)}\n </button>\n </div>\n </div>\n );\n};\n\nexport default ErrorComponent;\n","import { Loader } from \"@egovernments/digit-ui-components\";\nimport React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport ImageComponent from \"./ImageComponent\";\n\nconst Header = ({ showTenant = true }) => {\n const { data: storeData, isLoading } = Digit.Hooks.useStore.getInitData();\n const { stateInfo } = storeData || {};\n const { t } = useTranslation();\n\n if (isLoading) return <Loader />;\n\n //If HEADER_SVG config exists, return the custom block\n const headerSvgSecondaryUrl = window?.globalConfigs?.getConfig(\"SVG_HEADER_SECONDARY_LOGO_URL\");\n if (headerSvgSecondaryUrl) {\n return (\n <div className=\"bannerHeader secondaryBannerHeader\">\n <ImageComponent\n className=\"bannerLogo\"\n src={stateInfo?.logoUrl}\n style={!showTenant ? { borderRight: \"unset\" } : {}}\n alt=\"Digit Banner\"\n />\n <span style={{fontSize: \"xx-large\"}}>|</span>\n <ImageComponent\n className=\"svgHeaderLogo\"\n src={headerSvgSecondaryUrl}\n alt=\"DIGIT Logo\"\n />\n </div>\n );\n }\n\n // Default logic\n return (\n <div className=\"bannerHeader\">\n <ImageComponent\n className=\"bannerLogo\"\n src={stateInfo?.logoUrl}\n style={!showTenant ? { borderRight: \"unset\" } : {}}\n alt=\"Digit Banner\"\n />\n {showTenant && stateInfo?.code && (\n <p>{t(`TENANT_TENANTS_${stateInfo?.code?.toUpperCase()}`)}</p>\n )}\n </div>\n );\n};\n\nexport default Header;","import React, { Fragment, useState, useEffect } from \"react\";\nimport { Button, LandingPageCard, LandingPageWrapper } from \"@egovernments/digit-ui-components\";\nimport { useTranslation } from \"react-i18next\";\nimport { useNavigate } from \"react-router-dom\";\nimport { Loader } from \"@egovernments/digit-ui-components\";\n\n\nimport { CustomSVG } from \"@egovernments/digit-ui-components\";\nconst Components = require(\"@egovernments/digit-ui-svg-components\");\n\nexport const RoleBasedEmployeeHome = ({ modules, additionalComponent }) => {\n const { isLoading, data } = Digit.Hooks.useAccessControl();\n const isMultiRootTenant = Digit.Utils.getMultiRootTenant();\n const { t } = useTranslation();\n const navigate= useNavigate();\n const tenantId = Digit?.ULBService?.getStateId();\n let sortedConfigEmployeesSidebar = null;\n const [mdmsOrderData, setMdmsOrderData] = useState([{}]);\n\n const { data: MdmsRes } = Digit.Hooks.useCustomMDMS(\n tenantId,\n \"HomeScreenOrder\",\n [\n {\n name: \"CardsAndLinksOrder\",\n },\n ],\n {\n select: (data) => {\n return data?.[\"HomeScreenOrder\"]?.[\"CardsAndLinksOrder\"];\n },\n }\n );\n\n\n\n const { data: moduleConfigData, isLoading: isModuleConfigLoading } = Digit.Hooks.useCustomMDMS(\n tenantId,\n \"SandBoxLanding\",\n [\n {\n name: \"AdditionalModuleLinks\",\n },\n ],\n {\n \n select: (data) => {\n return data?.[\"SandBoxLanding\"]?.[\"AdditionalModuleLinks\"];\n },\n }\n );\n \n useEffect(() => {\n setMdmsOrderData(MdmsRes);\n }, [MdmsRes]);\n\n const transformURL = (url = \"\") => {\n if (url == \"/\") {\n return;\n }\n if (url?.indexOf(`/${window?.contextPath}`) === -1) {\n let updatedUrl = null;\n if (isMultiRootTenant) {\n url = url.replace(\"/sandbox-ui/employee\", `/sandbox-ui/${tenantId}/employee`);\n updatedUrl = url;\n } else {\n updatedUrl = url;\n }\n return updatedUrl;\n } else {\n return url;\n }\n };\n\n const getLinkByType = (moduleData, type) => {\n if (!moduleData || !type) return null;\n const moduleConfig = moduleConfigData?.find((config) => config.moduleName === moduleData.module);\n const linkKey = moduleConfig?.[type];\n const links = moduleData?.links;\n return links?.find((item) => item?.displayName === linkKey) || null;\n };\n\n // Function to filter links dynamically based on module config\n const getFilteredLinks = (moduleData) => {\n const moduleConfig = moduleConfigData?.find((config) => config.moduleName === moduleData.module);\n return moduleData?.links?.filter((item) => {\n const displayName = item.displayName;\n const isNotConfigureMaster = displayName !== \"Configure_master\";\n const isNotHowItWorks = displayName !== moduleConfig?.howItWorksLink;\n const isNotUserManual = displayName !== moduleConfig?.userManualLink;\n\n return isNotConfigureMaster && isNotHowItWorks && isNotUserManual;\n });\n };\n\n const configEmployeeSideBar = data?.actions\n .filter((e) => e.url === \"card\" && e.parentModule)\n .reduce((acc, item) => {\n const module = item.parentModule;\n if (!acc[module]) {\n acc[module] = {\n module: module,\n kpis: [],\n icon: item.leftIcon ? Digit.Utils.iconRender({iconName: item.leftIcon, iconFill: \"white\",CustomSVG,Components}) : \"\",\n label: Digit.Utils.locale.getTransformedLocale(`${module}_CARD_HEADER`),\n links: [],\n };\n }\n const linkUrl = transformURL(item.navigationURL);\n const queryParamIndex = linkUrl.indexOf(\"?\");\n acc[module].links.push({\n link: linkUrl,\n icon: item.leftIcon,\n queryParams: queryParamIndex === -1 ? null : linkUrl.substring(queryParamIndex),\n label: t(Digit.Utils.locale.getTransformedLocale(`${module}_LINK_${item.displayName}`)),\n displayName: item.displayName,\n });\n return acc;\n }, {});\n\n if (isLoading) {\n return <Loader page={false} variant={\"PageLoader\"} />;\n }\n\n if (!configEmployeeSideBar) {\n return \"\";\n }\n\n const sortCardAndLink = (configEmployeeSideBar) => {\n const sortedModules = Object.keys(configEmployeeSideBar)\n .sort((a, b) => {\n const cardOrderA = mdmsOrderData?.find((item) => item.moduleType === \"card\" && item.name === a)?.order || null;\n const cardOrderB = mdmsOrderData?.find((item) => item.moduleType === \"card\" && item.name === b)?.order || null;\n return cardOrderA - cardOrderB;\n })\n .reduce((acc, module) => {\n const sortedLinks = configEmployeeSideBar?.[module]?.links?.sort((linkA, linkB) => {\n const labelA = linkA?.displayName;\n const labelB = linkB?.displayName;\n const orderA =\n mdmsOrderData?.find((item) => item.moduleType === \"link\" && item.name === `${module}.${labelA.replace(/\\s+/g, \"_\")}`)?.order || null;\n const orderB =\n mdmsOrderData?.find((item) => item.moduleType === \"link\" && item.name === `${module}.${labelB.replace(/\\s+/g, \"_\")}`)?.order || null;\n\n return orderA - orderB;\n });\n\n acc[module] = {\n ...configEmployeeSideBar[module],\n links: sortedLinks,\n };\n\n return acc;\n }, {});\n\n return sortedModules;\n };\n\n if (isMultiRootTenant) {\n sortedConfigEmployeesSidebar = sortCardAndLink(configEmployeeSideBar);\n } else {\n sortedConfigEmployeesSidebar = configEmployeeSideBar;\n }\n\n const children = Object.keys(sortedConfigEmployeesSidebar)?.map((current, index) => {\n const moduleData = sortedConfigEmployeesSidebar?.[current];\n const configureData = moduleData?.links?.find((item) => item?.displayName === \"Configure_master\");\n const howItWorks = getLinkByType(moduleData, \"howItWorksLink\");\n const userManual = getLinkByType(moduleData, \"userManualLink\");\n\n const propsForModuleCard = {\n icon: \"SupervisorAccount\",\n moduleName: t(moduleData?.label),\n metrics: [],\n links: Digit.Utils.getMultiRootTenant() ? getFilteredLinks(moduleData) : moduleData?.links,\n centreChildren: [\n <div>{t(Digit.Utils.locale.getTransformedLocale(`MODULE_CARD_DESC_${current}`))}</div>,\n howItWorks && (\n <Button\n variation=\"teritiary\"\n label={howItWorks?.label}\n icon={howItWorks?.icon}\n type=\"button\"\n size={\"medium\"}\n onClick={() => window.open(howItWorks?.link, \"_blank\")}\n style={{ padding: \"0px\" }}\n />\n ),\n ],\n endChildren: Digit.Utils.getMultiRootTenant()\n ? [\n configureData && (\n <Button\n variation=\"teritiary\"\n label={configureData?.label}\n icon={configureData?.icon}\n type=\"button\"\n size={\"medium\"}\n onClick={() => navigate(configureData?.link)}\n style={{ padding: \"0px\" }}\n />\n ),\n userManual && (\n <Button\n variation=\"teritiary\"\n label={userManual?.label}\n icon={userManual?.icon}\n type=\"button\"\n size={\"medium\"}\n onClick={() => window.open(userManual?.link, \"_blank\")}\n style={{ padding: \"0px\" }}\n />\n ),\n ]\n : null,\n };\n\n return <LandingPageCard buttonSize={\"medium\"} {...propsForModuleCard} />;\n });\n\n return (\n <>\n <LandingPageWrapper>{React.Children.map(children, (child) => React.cloneElement(child))}</LandingPageWrapper>\n </>\n );\n};","import React from \"react\";\nimport{ useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { CardText, CardHeader, LinkLabel, Card, Button } from \"@egovernments/digit-ui-components\";\nimport { ArrowForward } from \"@egovernments/digit-ui-svg-components\";\nimport { CardSubHeader, CardSectionHeader, BreakLine, CardSectionSubText } from \"@egovernments/digit-ui-react-components\";\n\nconst FaqComponent = (props) => {\n const { question,isLabelLink, answer,type,actions,content, lastIndex } = props;\n const [isOpen, toggleOpen] = useState(false);\n const { t } = useTranslation();\n const tenantId = Digit.ULBService.getStateId();\n const ListTag = type === \"number\" ? \"ol\" : \"ul\";\n return (\n <div className=\"faqs border-none\" onClick={() => toggleOpen(!isOpen)}>\n <div className=\"faq-question\" style={{ justifyContent: \"space-between\", display: \"flex\" }}>\n <span>{t(question)}</span>\n <span className={isOpen ? \"faqicon rotate\" : \"faqicon\"} style={{ float: \"right\" }}>\n <ArrowForward />\n </span>\n </div>\n <div className=\"faq-answer\" style={isOpen ? { display: \"block\" } : { display: \"none\" }}>\n <CardSectionSubText style={{ marginTop: \"1rem\" }}>{t(content)}</CardSectionSubText>\n <div style={{ marginTop: \"1rem\" }}>\n {actions && (\n <ListTag>\n {actions.map((action, index) => (\n <li key={index} style={{ listStyleType: ListTag === \"ul\" ? \"disc\" : \"auto\", margin: \"8px 0\" }}>\n {isLabelLink ? (\n action?.label ? (\n <Button\n variation=\"teritiary\"\n label={t(action?.label)} \n type=\"button\"\n size={\"medium\"}\n onClick={() => {\n if (action?.fulllink) {\n window.open(action?.link, \"_blank\");\n } else {\n const baseURL = `https://${window.location.hostname}/${window?.globalPath}/${tenantId}`;\n window.open(`${baseURL}/${action?.link}`, \"_blank\");\n }\n }}\n style={{ padding: \"0px\" }}\n />\n ) : null\n ) : (\n action?.label ? <strong>{t(action?.label)}:</strong> : null\n )} \n {t(action?.description)}\n </li>\n ))}\n </ListTag>\n )}\n </div>\n </div>\n {!lastIndex ? <div className=\"cs-box-border\" /> : null}\n </div>\n );\n};\n\nconst CardC = ({ type, title, content, actions, style }) => {\n const { t } = useTranslation();\n const ListTag = type === \"number\" ? \"ol\" : \"ul\";\n return (\n <div>\n {/* <div style={{ border: \"1px solid #ccc\", borderRadius: \"8px\", padding: \"16px\", margin: \"16px\", ...style }}> */}\n <CardSectionHeader>{t(title)}</CardSectionHeader>\n <CardSectionSubText style={{ marginTop: \"1rem\" }}>{t(content)}</CardSectionSubText>\n <div style={{ marginTop: \"1rem\" }}>\n {actions && (\n <ListTag>\n {actions.map((action, index) => (\n <li key={index} style={{ listStyleType: ListTag === \"ul\" ? \"disc\" : \"auto\", margin: \"8px 0\" }}>\n {action?.label ? <strong>{t(action?.label)}:</strong> : null} {t(action?.description)}\n </li>\n ))}\n </ListTag>\n )}\n </div>\n </div>\n );\n};\n\nconst FAQ = ({ key, title, content, faqs ,type}) => {\n const { t } = useTranslation();\n return (\n <div style={{ width: \"100%\" }}>\n <div style={{ width: \"100%\" }}>\n {faqs.map((faq, i) => (\n <FaqComponent key={\"faq_\" + i} question={faq.question} answer={faq.answer} isLabelLink={faq.isLabelLink} type ={type} actions={faq.answer} content ={faq.content}lastIndex={i === faqs?.length - 1} />\n ))}\n </div>\n </div>\n );\n};\nconst QuickSetup = ({ cardConfig }) => {\n const { t } = useTranslation();\n\n const moduleFaqs = [\n {\n question: \"SANDBOX_FAQ_QUES_ONE\",\n answer: \"SANDBOX_FAQ_ANS_ONE\",\n },\n {\n question: \"SANDBOX_FAQ_QUES_TWO\",\n answer: \"SANDBOX_FAQ_ANS_TWO\",\n },\n {\n question: \"SANDBOX_FAQ_QUES_THREE\",\n answer: \"SANDBOX_FAQ_ANS_THREE\",\n },\n {\n question: \"SANDBOX_FAQ_QUES_FOUR\",\n answer: \"SANDBOX_FAQ_ANS_FOUR\",\n },\n ];\n return (\n <Card className={\"sandbox-guide\"} style={{ width: \"25rem\", height: \"47rem\", overflowY: \"scroll\" }}>\n {/* <Card style={{ height: \"47rem\", overflowY: \"scroll\" }}> */}\n <CardHeader>{t(\"GUIDE_TO_SETUP\")}</CardHeader>\n <div style={{ display: \"flex\", flexWrap: \"wrap\" }}>\n {cardConfig.map((config, index) => {\n return config?.type === \"faqs\" ? (\n <FAQ key={config.id} title={config.title} type = {config?.type} content={config.content} faqs={config.actions} />\n ) : (\n <React.Fragment>\n <CardC\n type={config?.type}\n key={config.id}\n title={config.title}\n content={config.content}\n actions={config.actions}\n style={config.style}\n />\n {index !== cardConfig?.length - 1 && <BreakLine style={{ width: \"100%\", border: \"1px solid #d6d5d4\" }} />}\n </React.Fragment>\n );\n })}\n </div>\n </Card>\n );\n};\n\nexport default QuickSetup;","import React, { Fragment, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { CardText, CardLabelError, Toast, CardLabel, Card, CardHeader, LinkLabel, Loader } from \"@egovernments/digit-ui-components\";\nimport QuickSetupComponent from \".\";\nimport QuickSetup from \"./QuickSetup\";\n\nconst QuickSetupConfigComponent = ({ onSelect, formData, control, formState, ...props }) => {\n const { t } = useTranslation();\n const { isLoading, data } = Digit.Hooks.useAccessControl();\n const isMultiRootTenant = Digit.Utils.getMultiRootTenant();\n const tenantId = Digit.ULBService.getStateId();\n\n // const transformURL = (url = \"\") => {\n // if (url == \"/\") {\n // return;\n // }\n // if (Digit.Utils.isContextPathMissing(url)) {\n // let updatedUrl = null;\n // if (isMultiRootTenant) {\n // url = url.replace(\"/sandbox-ui/employee\", `/sandbox-ui/${tenantId}/employee`);\n // updatedUrl = url;\n // } else {\n // updatedUrl = DIGIT_UI_CONTEXTS?.every((e) => url?.indexOf(`/${e}`) === -1) ? \"/employee/\" + url : url;\n // }\n // return updatedUrl;\n // } else {\n // return url;\n // }\n // };\n\n const configEmployeeSideBar = data?.actions\n .filter((e) => e.url === \"card\" && e.parentModule)\n .reduce((acc, item) => {\n const module = item.parentModule;\n if (!acc[module]) {\n acc[module] = {\n module: module,\n label: Digit.Utils.locale.getTransformedLocale(`${module}_CARD_HEADER`),\n links: [],\n };\n }\n const linkUrl = Digit.Utils.transformURL(item.navigationURL, tenantId);\n const queryParamIndex = linkUrl.indexOf(\"?\");\n acc[module].links.push({\n link: queryParamIndex === -1 ? linkUrl : linkUrl.substring(0, queryParamIndex),\n label: t(Digit.Utils.locale.getTransformedLocale(`${module}_LINK_${item.displayName}`)),\n queryParams: queryParamIndex === -1 ? null : linkUrl.substring(queryParamIndex),\n description: t(Digit.Utils.locale.getTransformedLocale(`${module}_LINK_${item.displayName}_DESCRIPTION`)),\n });\n return acc;\n }, {});\n\n if (!configEmployeeSideBar) {\n return \"\";\n }\n const QuickSetupConfig = [\n {\n sectionHeader: \"WELCOME_TO_SANDBOX\",\n sections: [\n {\n label: \"SANDBOX_DESCRIPTION_1\",\n },\n {\n label: \"SANDBOX_DESCRIPTION_2\",\n },\n {\n label: \"SANDBOX_DESCRIPTION_3\",\n },\n ],\n },\n {\n sectionHeader: \"QUICK_SETUP\",\n links: configEmployeeSideBar,\n },\n ];\n\n const cardConfig = [\n {\n id: 1,\n type: \"faqs\",\n actions: [\n {\n question: \"SANDBOX_FAQ_QUES_14\",\n isLabelLink: true,\n answer: [\n {\n label: \"SANDBOX_FAQ_ANS_14_LABEL_1\",\n fulllink:true,\n link:\"https://egov-digit.gitbook.io/digit-sandbox/specifications/user-manual/walkthrough-videos\",\n }\n ]\n },\n {\n question: \"SANDBOX_FAQ_QUES_1\",\n content: \"SANDBOX_FAQ_CONTENT_1\",\n isLabelLink: true,\n answer: [\n {\n label: \"SANDBOX_FAQ_ANS_1_LABEL_1\",\n link:\"citizen/login\",\n description: \"SANDBOX_FAQ_ANS_1_DESCRIPTION_1\",\n },\n {\n label: \"SANDBOX_FAQ_ANS_1_LABEL_2\",\n link: \"employee/user/login\",\n description: \"SANDBOX_FAQ_ANS_1_DESCRIPTION_2\",\n }\n ]\n },\n {\n question: \"SANDBOX_FAQ_QUES_2\",\n content: \"SANDBOX_FAQ_CONTENT_2\",\n answer: [\n {\n label: null,\n description: \"SANDBOX_FAQ_ANS_2_DESCRIPTION_1\",\n },\n {\n label: null,\n description: \"SANDBOX_FAQ_ANS_2_DESCRIPTION_2\",\n },\n {\n label: null,\n description: \"SANDBOX_FAQ_ANS_2_DESCRIPTION_3\",\n },\n {\n label: null,\n description: \"SANDBOX_FAQ_ANS_2_DESCRIPTION_4\",\n }\n ]\n },\n {\n question: \"SANDBOX_FAQ_QUES_3\",\n content: \"SANDBOX_FAQ_CONTENT_3\",\n answer: [\n {\n label: null,\n description: \"SANDBOX_FAQ_ANS_3_DESCRIPTION_1\",\n },\n {\n label: null,\n description: \"SANDBOX_FAQ_ANS_3_DESCRIPTION_2\",\n },\n {\n label: null,\n description: \"SANDBOX_FAQ_ANS_3_DESCRIPTION_3\",\n },\n {\n label: null,\n description: \"SANDBOX_FAQ_ANS_3_DESCRIPTION_4\",\n }\n ]\n },\n {\n question: \"SANDBOX_FAQ_QUES_4\",\n content: \"SANDBOX_FAQ_CONTENT_4\",\n answer: [\n {\n label: null,\n description: \"SANDBOX_FAQ_ANS_4_DESCRIPTION_1\",\n },\n {\n label: null,\n description: \"SANDBOX_FAQ_ANS_4_DESCRIPTION_2\",\n }\n ]\n },\n {\n question: \"SANDBOX_FAQ_QUES_5\",\n content: \"SANDBOX_FAQ_CONTENT_5\",\n answer: [\n {\n label: \"SANDBOX_FAQ_ANS_5_LABEL_1\",\n description: \"SANDBOX_FAQ_ANS_5_DESCRIPTION_1\",\n },\n {\n label: \"SANDBOX_FAQ_ANS_5_LABEL_2\",\n description: \"SANDBOX_FAQ_ANS_5_DESCRIPTION_2\",\n },\n {\n label: \"SANDBOX_FAQ_ANS_5_LABEL_3\",\n description: \"SANDBOX_FAQ_ANS_5_DESCRIPTION_3\",\n },\n {\n label: \"SANDBOX_FAQ_ANS_5_LABEL_4\",\n description: \"SANDBOX_FAQ_ANS_5_DESCRIPTION_4\",\n },\n {\n label: \"SANDBOX_FAQ_ANS_5_LABEL_5\",\n description: \"SANDBOX_FAQ_ANS_5_DESCRIPTION_5\",\n }\n ]\n },\n {\n question: \"SANDBOX_FAQ_QUES_6\",\n content: \"SANDBOX_FAQ_CONTENT_6\",\n },\n {\n question: \"SANDBOX_FAQ_QUES_7\",\n content: \"SANDBOX_FAQ_CONTENT_7\",\n answer: [\n {\n label: null,\n description: \"SANDBOX_FAQ_ANS_7_DESCRIPTION_1\",\n },\n {\n label: null,\n description: \"SANDBOX_FAQ_ANS_7_DESCRIPTION_2\",\n }\n ]\n },\n {\n question: \"SANDBOX_FAQ_QUES_8\",\n content: \"SANDBOX_FAQ_CONTENT_8\",\n answer: [\n {\n label: null,\n description: \"SANDBOX_FAQ_ANS_8_DESCRIPTION_1\",\n },\n {\n label: null,\n description: \"SANDBOX_FAQ_ANS_8_DESCRIPTION_2\",\n },\n {\n label: null,\n description: \"SANDBOX_FAQ_ANS_8_DESCRIPTION_3\",\n },\n {\n label: null,\n description: \"SANDBOX_FAQ_ANS_8_DESCRIPTION_4\",\n },\n ]\n },\n {\n question: \"SANDBOX_FAQ_QUES_9\",\n content: \"SANDBOX_FAQ_CONTENT_9\",\n answer: [\n {\n label: \"SANDBOX_FAQ_ANS_9_LABEL_1\",\n description: \"SANDBOX_FAQ_ANS_9_DESCRIPTION_1\",\n },\n {\n label: \"SANDBOX_FAQ_ANS_9_LABEL_2\",\n description: \"SANDBOX_FAQ_ANS_9_DESCRIPTION_2\",\n }\n ]\n },\n {\n question: \"SANDBOX_FAQ_QUES_10\",\n content: \"SANDBOX_FAQ_CONTENT_10\",\n answer: [\n {\n label: \"SANDBOX_FAQ_ANS_10_LABEL_1\",\n description: \"SANDBOX_FAQ_ANS_10_DESCRIPTION_1\",\n },\n {\n label: \"SANDBOX_FAQ_ANS_10_LABEL_2\",\n description: \"SANDBOX_FAQ_ANS_10_DESCRIPTION_2\",\n },\n {\n label: \"SANDBOX_FAQ_ANS_10_LABEL_3\",\n description: \"SANDBOX_FAQ_ANS_10_DESCRIPTION_3\",\n },\n {\n label: \"SANDBOX_FAQ_ANS_10_LABEL_4\",\n description: \"SANDBOX_FAQ_ANS_10_DESCRIPTION_4\",\n }\n ]\n },\n {\n question: \"SANDBOX_FAQ_QUES_11\",\n content: \"SANDBOX_FAQ_CONTENT_11\",\n },\n {\n question: \"SANDBOX_FAQ_QUES_12\",\n content: \"SANDBOX_FAQ_CONTENT_12\",\n },\n {\n question: \"SANDBOX_FAQ_QUES_13\",\n content: \"SANDBOX_FAQ_CONTENT_13\",\n } \n ],\n },\n ];\n\n // return <QuickSetupComponent config={QuickSetupConfig}></QuickSetupComponent>;\n return <QuickSetup cardConfig={cardConfig}></QuickSetup>;\n};\n\nexport default QuickSetupConfigComponent;\n","import {\n CitizenHomeCard,\n CitizenInfoLabel,\n Loader,\n} from \"@egovernments/digit-ui-react-components\";\n\nimport { BackLink, CustomSVG, SVG, LandingPageWrapper, Card, Divider } from \"@egovernments/digit-ui-components\";\n\nimport React, { Fragment } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { RoleBasedEmployeeHome } from \"./RoleBasedEmployeeHome\";\nimport QuickSetupConfigComponent from \"../pages/employee/QuickStart/Config\";\n\n/* \nFeature :: Citizen All service screen cards\n*/\nexport const processLinkData = (newData, code, t) => {\n const obj = newData?.[`${code}`];\n if (obj) {\n obj.map((link) => {\n if (Digit.Utils.getMultiRootTenant()) {\n link[\"navigationURL\"] = link[\"navigationURL\"].replace(\"/sandbox-ui/citizen\", `/sandbox-ui/${Digit.ULBService.getStateId()}/citizen`);\n }\n link.link = link[\"navigationURL\"];\n link.i18nKey = t(link[\"name\"]);\n\n });\n }\n const newObj = {\n links: obj?.reverse(),\n header: Digit.Utils.locale.getTransformedLocale(`ACTION_TEST_${code}`),\n iconName: `CITIZEN_${code}_ICON`,\n };\n if (code === \"FSM\") {\n const roleBasedLoginRoutes = [\n {\n role: \"FSM_DSO\",\n from: `/${window?.contextPath}/citizen/fsm/dso-dashboard`,\n dashoardLink: \"CS_LINK_DSO_DASHBOARD\",\n loginLink: \"CS_LINK_LOGIN_DSO\",\n },\n ];\n //RAIN-7297\n roleBasedLoginRoutes.map(({ role, from, loginLink, dashoardLink }) => {\n if (Digit.UserService.hasAccess(role))\n newObj?.links?.push({\n link: from,\n i18nKey: t(dashoardLink),\n });\n else\n newObj?.links?.push({\n link: `/${window?.contextPath}/citizen/login`,\n state: { role: \"FSM_DSO\", from },\n i18nKey: t(loginLink),\n });\n });\n }\n\n return newObj;\n};\nconst iconSelector = (code) => {\n switch (code) {\n case \"PT\":\n return <CustomSVG.PTIcon className=\"fill-path-primary-main\" />;\n case \"WS\":\n return <CustomSVG.WSICon className=\"fill-path-primary-main\" />;\n case \"FSM\":\n return <CustomSVG.FSMIcon className=\"fill-path-primary-main\" />;\n case \"MCollect\":\n return <CustomSVG.MCollectIcon className=\"fill-path-primary-main\" />;\n case \"PGR\":\n return <CustomSVG.PGRIcon className=\"fill-path-primary-main\" />;\n case \"TL\":\n return <CustomSVG.TLIcon className=\"fill-path-primary-main\" />;\n case \"OBPS\":\n return <CustomSVG.OBPSIcon className=\"fill-path-primary-main\" />;\n case \"Bills\":\n return <CustomSVG.BillsIcon className=\"fill-path-primary-main\" />;\n default:\n return <CustomSVG.PTIcon className=\"fill-path-primary-main\" />;\n }\n};\nimport { useNavigate } from \"react-router-dom\";\n\n// Inside CitizenHome component\nconst CitizenHome = ({ getCitizenMenu, fetchedCitizen, isLoading }) => {\n const { t } = useTranslation();\n const navigate = useNavigate();\n const isMobile = window.Digit.Utils.browser.isMobile();\n\n if (isLoading || !fetchedCitizen || !getCitizenMenu) {\n return <Loader />;\n }\n\n const parentModules = Object.keys(getCitizenMenu);\n\n const handleLinkClick = (e, link) => {\n e.preventDefault();\n navigate(link);\n };\n\n \n\n const handleNavigate = (link) => {\n if (!link) return;\n link?.includes(`${window?.contextPath}/`) ? navigate(link) : (window.location.href = link);\n };\n\n const renderApplyIcon = () => (\n <SVG.AddExpense fill=\"#C84C0E\" width=\"1.25rem\" height=\"1.25rem\" className=\"digit-button-customIcon medium teritiary\" />\n );\n\n const renderMyAppIcon = () => (\n <SVG.ListAlt fill=\"#C84C0E\" width=\"1.25rem\" height=\"1.25rem\" className=\"digit-button-customIcon medium teritiary\" />\n );\n\n const isApplyLink = (link) => {\n const name = (link.name || link.displayName || \"\").toLowerCase();\n return name.includes(\"apply\") || name.includes(\"_apply\");\n };\n \n\n // Desktop: LandingPageWrapper + custom cards with icons (same grid as employee)\n if (!isMobile) {\n const children = parentModules.map((code) => {\n const mdmsDataObj = processLinkData(getCitizenMenu, code, t);\n\n if (!mdmsDataObj?.links?.length) return null;\n\n const seenLinks = new Set();\n const dedupedLinks = mdmsDataObj.links\n ?.filter((ele) => ele?.link)\n ?.sort((x, y) => x?.orderNumber - y?.orderNumber)\n .filter((link) => {\n const key = link.link;\n if (seenLinks.has(key)) return false;\n seenLinks.add(key);\n return true;\n });\n\n return (\n <Card key={code} className=\"digit-landing-page-card\" style={{ borderRadius: \"1rem\" }}>\n <div className=\"icon-module-header\">\n <div className=\"digit-landingpagecard-icon\">\n <CustomSVG.Devices fill=\"#C84C0E\" width=\"1rem\" height=\"1rem\" />\n </div>\n <div className=\"ladingcard-moduleName\" role=\"heading\" aria-level=\"2\">\n {t(mdmsDataObj?.header)}\n </div>\n </div>\n <Divider className=\"digit-landingpage-divider\" variant=\"small\" />\n {dedupedLinks.map((link, i) => {\n const LinkIcon = link.leftIcon && link.leftIcon !== \"TLIcon\" && CustomSVG[link.leftIcon] ? CustomSVG[link.leftIcon] : null;\n return (\n <button\n key={i}\n className=\"digit-button-teritiary medium\"\n type=\"button\"\n style={{ padding: \"0px\" }}\n onClick={() => handleNavigate(link.link)}\n >\n <div className=\"icon-label-container teritiary medium\">\n {LinkIcon ? <LinkIcon fill=\"#C84C0E\" width=\"1.25rem\" height=\"1.25rem\" className=\"digit-button-customIcon medium teritiary\" /> : (isApplyLink(link) ? renderApplyIcon() : renderMyAppIcon())}\n <h2 className=\"digit-button-label\">{link.i18nKey}</h2>\n </div>\n </button>\n );\n })}\n </Card>\n );\n }).filter(Boolean);\n\n return (\n <div className=\"citizen-all-services-wrapper\">\n <div className=\"employee-app-container digit-home-employee-app\">\n <LandingPageWrapper>{children}</LandingPageWrapper>\n </div>\n </div>\n );\n }\n\n // Mobile: Original vertical card layout\n return (\n <div className=\"citizen-all-services-wrapper\">\n {location.pathname.includes(\n \"sanitation-ui/citizen/all-services\"\n ) || (location.pathname.includes(\"sandbox-ui\") && location.pathname.includes(\"all-services\")) ? null : (\n <BackLink onClick={() => window.history.back()}/>\n )}\n <div className=\"citizenAllServiceGrid\">\n {parentModules.map((code) => {\n const mdmsDataObj = processLinkData(getCitizenMenu, code, t);\n\n if (mdmsDataObj?.links?.length > 0) {\n return (\n <div className=\"CitizenHomeCard\" key={code}>\n <div className=\"header\">\n <h2>{t(mdmsDataObj?.header)}</h2>\n {iconSelector(code)}\n </div>\n <div className=\"links\">\n {mdmsDataObj?.links\n ?.filter((ele) => ele?.link)\n ?.sort((x, y) => x?.orderNumber - y?.orderNumber)\n .map((link, i) => (\n <div className=\"linksWrapper\" key={i}>\n <a\n href={link.link}\n onClick={(e) => handleLinkClick(e, link.link)}\n >\n {link.i18nKey}\n </a>\n </div>\n ))}\n </div>\n </div>\n );\n }\n return null;\n })}\n </div>\n </div>\n );\n};\n\nconst EmployeeHome = ({ modules, additionalComponent }) => {\n return (\n <>\n <div className=\"employee-app-container digit-home-employee-app\">\n {/* <div className=\"ground-container moduleCardWrapper gridModuleWrapper digit-home-moduleCardWrapper\"> */}\n <LandingPageWrapper>\n {modules?.map(({ code }, index) => {\n const Card =\n Digit.ComponentRegistryService.getComponent(`${code}Card`) ||\n (() => <React.Fragment />);\n return <Card key={index} />;\n })}\n </LandingPageWrapper>\n {/* </div> */}\n </div>\n\n {additionalComponent &&\n additionalComponent?.length > 0 &&\n additionalComponent.map((i) => {\n const Component =\n typeof i === \"string\"\n ? Digit.ComponentRegistryService.getComponent(i)\n : null;\n return Component ? (\n <div className=\"additional-component-wrapper\">\n <Component />\n </div>\n ) : null;\n })}\n </>\n );\n};\n\nexport const AppHome = ({\n userType,\n modules,\n getCitizenMenu,\n fetchedCitizen,\n isLoading,\n additionalComponent,\n}) => {\n if (userType === \"citizen\") {\n return (\n <CitizenHome\n modules={modules}\n getCitizenMenu={getCitizenMenu}\n fetchedCitizen={fetchedCitizen}\n isLoading={isLoading}\n />\n );\n }\n const isSuperUserWithMultipleRootTenant = Digit.UserService.hasAccess(\"SUPERUSER\") && Digit.Utils.getMultiRootTenant()\n return Digit.Utils.getRoleBasedHomeCard() ? (\n <div className={isSuperUserWithMultipleRootTenant ? \"homeWrapper\" : \"\"}>\n <RoleBasedEmployeeHome modules={modules} additionalComponent={additionalComponent} />\n {isSuperUserWithMultipleRootTenant && !window.Digit.Utils.browser.isMobile() ? <QuickSetupConfigComponent /> : null}\n </div>\n ) : (\n <EmployeeHome modules={modules} additionalComponent={additionalComponent} />\n );\n};\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\nconst ImageComponent = ({\n src,\n alt = \"Image not found\",\n decorative = false,\n ariaLabel = \"No Image description set\",\n ariaLabelledby = \"no-image-description\",\n ...props\n}) => {\n // Determine the appropriate attributes based on the props\n const accessibilityProps = {};\n\n if (decorative) {\n // For decorative images\n accessibilityProps.alt = \"\";\n } else if (alt) {\n // Provide meaningful alt text if available\n accessibilityProps.alt = alt;\n } else if (ariaLabel) {\n // Use aria-label if alt is not provided\n accessibilityProps[\"aria-label\"] = ariaLabel;\n } else if (ariaLabelledby) {\n // Use aria-labelledby for descriptive associations\n accessibilityProps[\"aria-labelledby\"] = ariaLabelledby;\n } else {\n console.warn(\"AccessibleImage: Missing alt, aria-label, or aria-labelledby for non-decorative image.\");\n }\n\n return (\n <img\n src={src}\n {...accessibilityProps}\n {...props}\n tabIndex={0}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n window.open(window?.globalConfigs?.getConfig?.(\"DIGIT_HOME_URL\"), \"_blank\").focus();\n }\n }}\n />\n );\n};\n\nImageComponent.propTypes = {\n src: PropTypes.string.isRequired, // The source URL for the image\n alt: PropTypes.string, // Alternative text for the image\n decorative: PropTypes.bool, // If true, image is decorative\n ariaLabel: PropTypes.string, // Custom label for screen readers\n ariaLabelledby: PropTypes.string, // Association with another descriptive element\n};\n\nexport default ImageComponent;\n","import { Hamburger, TopBar as TopBarComponent } from \"@egovernments/digit-ui-react-components\";\nimport { Dropdown } from \"@egovernments/digit-ui-components\";\nimport React,{Fragment} from \"react\";\nimport {useNavigate, useLocation } from \"react-router-dom\";\nimport ChangeCity from \"../ChangeCity\";\nimport ChangeLanguage from \"../ChangeLanguage\";\nimport { Header as TopBarComponentMain } from \"@egovernments/digit-ui-components\";\nimport ImageComponent from \"../ImageComponent\";\n\nconst DEFAULT_EGOV_LOGO =\"https://egov-dev-assets.s3.ap-south-1.amazonaws.com/egov-logo-2025.png\";\n\n\nconst TopBar = ({\n t,\n stateInfo,\n toggleSidebar,\n isSidebarOpen,\n handleLogout,\n userDetails,\n CITIZEN,\n cityDetails,\n mobileView,\n userOptions,\n handleUserDropdownSelection,\n logoUrl,\n logoUrlWhite,\n showLanguageChange = true,\n}) => {\n const [profilePic, setProfilePic] = React.useState(null);\n\n React.useEffect( () => {\n const app=async ()=>{\n const tenant = Digit.Utils.getMultiRootTenant() ? Digit.ULBService.getStateId() : Digit.ULBService.getCurrentTenantId();\n const uuid = userDetails?.info?.uuid;\n if (uuid) {\n const usersResponse = await Digit.UserService.userSearch(tenant, { uuid: [uuid] }, {});\n if (usersResponse && usersResponse.user && usersResponse.user.length) {\n const userDetails = usersResponse.user[0];\n const thumbs = userDetails?.photo?.split(\",\");\n setProfilePic(thumbs?.at(0));\n }\n }\n }\n app()\n }, [profilePic !== null, userDetails?.info?.uuid]);\n\n const CitizenHomePageTenantId = Digit.ULBService.getCitizenCurrentTenant(true);\n\n let navigate = useNavigate();\n const { pathname } = useLocation();\n\n const conditionsToDisableNotificationCountTrigger = () => {\n if (Digit.UserService?.getUser()?.info?.type === \"EMPLOYEE\") return false;\n if (Digit.UserService?.getUser()?.info?.type === \"CITIZEN\") {\n if (!CitizenHomePageTenantId) return false;\n else return true;\n }\n return false;\n };\n\n const { data: { unreadCount: unreadNotificationCount } = {}, isSuccess: notificationCountLoaded } = Digit.Hooks.useNotificationCount({\n tenantId: CitizenHomePageTenantId,\n config: {\n enabled: conditionsToDisableNotificationCountTrigger(),\n },\n });\n\n const updateSidebar = () => {\n if (!Digit.clikOusideFired) {\n toggleSidebar(true);\n } else {\n Digit.clikOusideFired = false;\n }\n };\n\n function onNotificationIconClick() {\n navigate(`/${window?.contextPath}/citizen/engagement/notifications`);\n }\n\n const urlsToDisableNotificationIcon = (pathname) =>\n !!Digit.UserService?.getUser()?.access_token\n ? false\n : [`/${window?.contextPath}/citizen/select-language`, `/${window?.contextPath}/citizen/select-location`].includes(pathname);\n\n if (CITIZEN) {\n return (\n <div>\n <TopBarComponent\n img={stateInfo?.logoUrlWhite}\n isMobile={true}\n toggleSidebar={updateSidebar}\n logoUrl={stateInfo?.logoUrlWhite}\n onLogout={handleLogout}\n userDetails={userDetails}\n notificationCount={unreadNotificationCount < 99 ? unreadNotificationCount : 99}\n notificationCountLoaded={notificationCountLoaded}\n cityOfCitizenShownBesideLogo={t(CitizenHomePageTenantId)}\n onNotificationIconClick={onNotificationIconClick}\n hideNotificationIconOnSomeUrlsWhenNotLoggedIn={urlsToDisableNotificationIcon(pathname)}\n changeLanguage={!mobileView ? <ChangeLanguage dropdown={true} /> : null}\n />\n </div>\n );\n }\n const loggedin = userDetails?.access_token ? true : false;\n\n //checking for custom topbar components\n const CustomEmployeeTopBar = Digit.ComponentRegistryService?.getComponent(\"CustomEmployeeTopBar\");\n\n if (CustomEmployeeTopBar) {\n return (\n <CustomEmployeeTopBar\n {...{\n t,\n stateInfo,\n toggleSidebar,\n isSidebarOpen,\n handleLogout,\n userDetails,\n CITIZEN,\n cityDetails,\n mobileView,\n userOptions,\n handleUserDropdownSelection,\n logoUrl,\n showLanguageChange,\n loggedin,\n }}\n />\n );\n }\n return (\n <TopBarComponentMain\n actionFields={[\n <ChangeCity dropdown={true} t={t} />,\n showLanguageChange && <ChangeLanguage dropdown={true} />,\n userDetails?.access_token && (\n <Dropdown\n option={userOptions}\n optionKey=\"name\"\n profilePic={profilePic ? profilePic : userDetails?.info?.name || userDetails?.info?.userInfo?.name || \"Employee\"}\n select={handleUserDropdownSelection}\n showArrow={true}\n menuStyles={{ marginTop: \"1rem\" }}\n theme=\"light\"\n />\n ),\n ]}\n onHamburgerClick={() => {\n toggleSidebar();\n }}\n className=\"digit-employee-header\"\n img={logoUrl}\n logoWidth={\"64px\"}\n logoHeight={\"48px\"}\n logo={(loggedin ? cityDetails?.logoId : stateInfo?.statelogo)||DEFAULT_EGOV_LOGO}\n onImageClick={() => {}}\n onLogoClick={() => {}}\n props={{}}\n showDeafultImg\n style={{}}\n theme={window?.globalConfigs?.getConfig(\"HEADER_THEME\") || \"light\"}\n ulb={\n loggedin ? (\n cityDetails?.city?.ulbGrade ? (\n <>\n {t(cityDetails?.i18nKey).toUpperCase()}{\" \"}\n {t(`ULBGRADE_${cityDetails?.city?.ulbGrade.toUpperCase().replace(\" \", \"_\").replace(\".\", \"_\")}`).toUpperCase()}\n </>\n ) : (\n <ImageComponent className=\"state\" src={logoUrlWhite} alt=\"State Logo\" />\n )\n ) : (\n <>\n {t(`MYCITY_${stateInfo?.code?.toUpperCase()}_LABEL`)} {t(`MYCITY_STATECODE_LABEL`)}\n </>\n )\n }\n />\n );\n};\n\nexport default TopBar;\n","export const defaultImage =\n \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAO4AAADUCAMAAACs0e/bAAAAM1BMVEXK0eL\" +\n \"/\" +\n \"/\" +\n \"/\" +\n \"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\";","import React from \"react\";\nimport { LanguageIcon, LogoutIcon, AddressBookIcon, LocationIcon } from \"@egovernments/digit-ui-react-components\";\nimport ChangeLanguage from \"../components/ChangeLanguage\";\n\nconst SideBarMenu = (t, closeSidebar, redirectToLoginPage, isEmployee) => [\n {\n type: \"component\",\n element: \"LANGUAGE\",\n action: <ChangeLanguage />,\n icon: \"LanguageIcon\",\n },\n {\n id: \"login-btn\",\n element: \"LOGIN\",\n text: t(\"CORE_COMMON_LOGIN\"),\n icon: <LogoutIcon className=\"icon\" />,\n populators: {\n onClick: redirectToLoginPage,\n },\n },\n];\n\nexport default SideBarMenu;\n","import React, { useEffect, useState } from \"react\";\nimport {\n HomeIcon,\n EditPencilIcon,\n LogoutIcon,\n AddressBookIcon,\n PropertyHouse,\n CaseIcon,\n CollectionIcon,\n PTIcon,\n OBPSIcon,\n PGRIcon,\n FSMIcon,\n WSICon,\n MCollectIcon,\n Phone,\n BirthIcon,\n DeathIcon,\n FirenocIcon,\n Loader,\n} from \"@egovernments/digit-ui-react-components\";\nimport { Link, useLocation } from \"react-router-dom\";\nimport SideBarMenu from \"../../../config/sidebar-menu\";\nimport { useTranslation } from \"react-i18next\";\nimport { useNavigate } from \"react-router-dom\";\nimport LogoutDialog from \"../../Dialog/LogoutDialog\";\nimport ChangeCity from \"../../ChangeCity\";\nimport { defaultImage } from \"../../utils\";\nimport ImageComponent from \"../../ImageComponent\";\n\n/* \nFeature :: Citizen Webview sidebar\n*/\nconst Profile = ({ info, stateName, t }) => (\n <div className=\"profile-section\">\n <div className=\"imageloader imageloader-loaded\">\n <ImageComponent className=\"img-responsive img-circle img-Profile\" src={defaultImage} alt=\"Profile Logo\" />\n </div>\n <div id=\"profile-name\" className=\"label-container name-Profile\">\n <div className=\"label-text\"> {info?.name} </div>\n </div>\n <div id=\"profile-location\" className=\"label-container loc-Profile\">\n <div className=\"label-text\"> {info?.mobileNumber} </div>\n </div>\n {info?.emailId && (\n <div id=\"profile-emailid\" className=\"label-container loc-Profile\">\n <div className=\"label-text\"> {info.emailId} </div>\n </div>\n )}\n <div className=\"profile-divider\"></div>\n {window.location.href.includes(\"/employee\") &&\n !window.location.href.includes(\"/employee/user/login\") &&\n !window.location.href.includes(\"employee/user/language-selection\") && <ChangeCity t={t} mobileView={true} />}\n </div>\n);\nconst IconsObject = {\n CommonPTIcon: <PTIcon className=\"icon\" />,\n OBPSIcon: <OBPSIcon className=\"icon\" />,\n propertyIcon: <PropertyHouse className=\"icon\" />,\n TLIcon: <CaseIcon className=\"icon\" />,\n PGRIcon: <PGRIcon className=\"icon\" />,\n FSMIcon: <FSMIcon className=\"icon\" />,\n WSIcon: <WSICon className=\"icon\" />,\n MCollectIcon: <MCollectIcon className=\"icon\" />,\n BillsIcon: <CollectionIcon className=\"icon\" />,\n BirthIcon: <BirthIcon className=\"icon\" />,\n DeathIcon: <DeathIcon className=\"icon\" />,\n FirenocIcon: <FirenocIcon className=\"icon\" />,\n HomeIcon: <HomeIcon className=\"icon\" />,\n EditPencilIcon: <EditPencilIcon className=\"icon\" />,\n LogoutIcon: <LogoutIcon className=\"icon\" />,\n Phone: <Phone className=\"icon\" />,\n};\nconst StaticCitizenSideBar = ({ linkData, islinkDataLoading }) => {\n const { t } = useTranslation();\n const navigate = useNavigate();\n const location = useLocation();\n const { pathname } = location;\n const { data: storeData, isFetched } = Digit.Hooks.useStore.getInitData();\n const { stateInfo } = storeData || {};\n const user = Digit.UserService.getUser();\n let isMobile = window.Digit.Utils.browser.isMobile();\n\n const [isEmployee, setisEmployee] = useState(false);\n const [isSidebarOpen, toggleSidebar] = useState(false);\n const [showDialog, setShowDialog] = useState(false);\n\n const handleLogout = () => {\n toggleSidebar(false);\n setShowDialog(true);\n };\n const handleOnSubmit = () => {\n if (Digit.Utils.getMultiRootTenant()) {\n Digit.UserService.logout();\n setShowDialog(false);\n window.location.href = `/${window?.contextPath}/citizen/login`;\n } else {\n Digit.UserService.logout();\n setShowDialog(false);\n }\n };\n const handleOnCancel = () => {\n setShowDialog(false);\n };\n\n if (islinkDataLoading) {\n return <Loader />;\n }\n\n const redirectToLoginPage = () => {\n \n navigate(`/${window?.contextPath}/citizen/login`);\n };\n const showProfilePage = () => {\n navigate(`/${window?.contextPath}/citizen/user/profile`);\n };\n\n const closeSidebar = () => {\n navigate(`/${window?.contextPath}/citizen/all-services`);\n };\n\n let menuItems = [...SideBarMenu(t, showProfilePage, redirectToLoginPage, isEmployee)];\n\n menuItems = menuItems.filter((item) => item.element !== \"LANGUAGE\");\n\n const tenantId = Digit.ULBService.getCurrentTenantId();\n const MenuItem = ({ item }) => {\n const leftIconArray = item?.icon || item.icon?.type?.name;\n const leftIcon = leftIconArray ? IconsObject[leftIconArray] : IconsObject.BillsIcon;\n let itemComponent;\n if (item.type === \"component\") {\n itemComponent = item.action;\n } else {\n itemComponent = item.text;\n }\n const Item = () => (\n <span className=\"menu-item\" {...item.populators}>\n {leftIcon}\n <div className=\"menu-label\">{itemComponent}</div>\n </span>\n );\n if (item.type === \"external-link\") {\n return (\n <a href={item.link}>\n <Item />\n </a>\n );\n }\n if (item.type === \"link\") {\n return (\n <Link to={item?.link}>\n <Item />\n </Link>\n );\n }\n\n return <Item />;\n };\n let profileItem;\n\n if (isFetched && user && user.access_token && user?.info?.type === \"CITIZEN\") {\n profileItem = <Profile info={user?.info} stateName={stateInfo?.name} t={t} />;\n menuItems = menuItems.filter((item) => item?.id !== \"login-btn\");\n menuItems = [\n ...menuItems,\n {\n type: \"link\",\n icon: \"HomeIcon\",\n element: \"HOME\",\n text: t(\"COMMON_BOTTOM_NAVIGATION_HOME\"),\n link: isEmployee ? `/${window?.contextPath}/employee` : `/${window?.contextPath}/citizen`,\n populators: {\n onClick: closeSidebar,\n },\n },\n {\n text: t(\"EDIT_PROFILE\"),\n element: \"PROFILE\",\n icon: \"EditPencilIcon\",\n populators: {\n onClick: showProfilePage,\n },\n },\n {\n text: t(\"CORE_COMMON_LOGOUT\"),\n element: \"LOGOUT\",\n icon: \"LogoutIcon\",\n populators: { onClick: handleLogout },\n },\n {\n text: (\n <React.Fragment>\n {t(\"CS_COMMON_HELPLINE\")}\n <div className=\"telephone\" style={{ marginTop: \"-10%\" }}>\n {storeData?.tenants?.length > 0 && (\n <div className=\"link\">\n <a href={`tel:${\n storeData.tenants.find((tenant) => tenant.code === tenantId)?.contactNumber \n || storeData.tenants[0]?.contactNumber \n || ''\n }`}>\n {storeData.tenants.find((tenant) => tenant.code === tenantId)?.contactNumber \n || storeData.tenants[0]?.contactNumber \n || t(\"CS_NA\")}\n </a>\n </div>\n )}\n </div>\n </React.Fragment>\n ),\n element: \"Helpline\",\n icon: \"Phone\",\n}\n ];\n }\n Object.keys(linkData || {})\n ?.sort((x, y) => y.localeCompare(x))\n ?.map((key) => {\n if (linkData[key][0]?.sidebar === `${window.contextPath}-links`) {\n menuItems.splice(1, 0, {\n type: linkData[key][0]?.sidebarURL?.includes(window?.contextPath) ? \"link\" : \"external-link\",\n text: t(`ACTION_TEST_${Digit.Utils.locale.getTransformedLocale(key)}`),\n links: linkData[key],\n icon: linkData[key][0]?.leftIcon,\n link: linkData[key][0]?.sidebarURL,\n });\n }\n });\n\n return (\n <React.Fragment>\n <div>\n <div\n style={{\n height: \"100%\",\n width: \"100%\",\n top: \"0px\",\n backgroundColor: \"rgba(0, 0, 0, 0.54)\",\n pointerzevents: \"auto\",\n }}\n ></div>\n <div\n style={{\n display: \"flex\",\n flexDirection: \"column\",\n height: isMobile ? \"calc(100vh - 56px)\" : \"auto\",\n zIndex: \"99\",\n }}\n >\n {profileItem}\n <div className=\"drawer-desktop\">\n {menuItems?.map((item, index) => (\n <div className={`sidebar-list ${pathname === item?.link || pathname === item?.sidebarURL ? \"active\" : \"\"}`} key={index}>\n <MenuItem item={item} />\n </div>\n ))}\n </div>\n </div>\n <div>{showDialog && <LogoutDialog onSelect={handleOnSubmit} onCancel={handleOnCancel} onDismiss={handleOnCancel}></LogoutDialog>}</div>\n </div>\n </React.Fragment>\n );\n};\n\nexport default StaticCitizenSideBar;\n","// import { NavBar } from \"@egovernments/digit-ui-react-components\";\nimport { Loader } from \"@egovernments/digit-ui-components\";\nimport React, { useState, Fragment, useEffect } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useNavigate, useLocation } from \"react-router-dom\";\nimport ChangeCity from \"../../ChangeCity\";\nimport { defaultImage } from \"../../utils\";\nimport StaticCitizenSideBar from \"./StaticCitizenSideBar\";\nimport { Hamburger } from \"@egovernments/digit-ui-components\";\nimport { LogoutIcon } from \"@egovernments/digit-ui-react-components\";\nimport ImageComponent from \"../../ImageComponent\";\n\nconst Profile = ({ info, stateName, t }) => {\n const [profilePic, setProfilePic] = React.useState(null);\n React.useEffect(async () => {\n const tenant = Digit.ULBService.getCurrentTenantId();\n const uuid = info?.uuid;\n if (uuid) {\n const usersResponse = await Digit.UserService.userSearch(tenant, { uuid: [uuid] }, {});\n if (usersResponse && usersResponse.user && usersResponse?.user?.length) {\n const userDetails = usersResponse.user[0];\n const thumbs = userDetails?.photo?.split(\",\");\n setProfilePic(thumbs?.at(0));\n }\n }\n }, [profilePic !== null]);\n\n const CustomEmployeeTopBar = Digit.ComponentRegistryService?.getComponent(\"CustomEmployeeTopBar\");\n\n return (\n <div className=\"profile-section\">\n <div className=\"imageloader imageloader-loaded\">\n <ImageComponent\n className=\"img-responsive img-circle img-Profile\"\n src={profilePic ? profilePic : defaultImage}\n style={{ objectFit: \"cover\", objectPosition: \"center\" }}\n alt=\"Profile Image\"\n />\n </div>\n <div id=\"profile-name\" className=\"label-container name-Profile\">\n <div className=\"label-text\"> {info?.name} </div>\n </div>\n <div id=\"profile-location\" className=\"label-container loc-Profile\">\n <div className=\"label-text\"> {info?.mobileNumber} </div>\n </div>\n {info?.emailId && (\n <div id=\"profile-emailid\" className=\"label-container loc-Profile\">\n <div className=\"label-text\"> {info.emailId} </div>\n </div>\n )}\n <div className=\"profile-divider\"></div>\n {window.location.href.includes(\"/employee\") &&\n !window.location.href.includes(\"/employee/user/login\") &&\n !window.location.href.includes(\"employee/user/language-selection\") &&\n !CustomEmployeeTopBar && <ChangeCity t={t} mobileView={true} />}\n </div>\n );\n};\n\n/* \nFeature :: Citizen Webview sidebar\n*/\nexport const CitizenSideBar = ({\n isOpen,\n isMobile = false,\n toggleSidebar,\n onLogout,\n isEmployee = false,\n linkData,\n islinkDataLoading,\n userProfile,\n}) => {\n const isMultiRootTenant = Digit.Utils.getMultiRootTenant();\n const { data: storeData, isFetched } = Digit.Hooks.useStore.getInitData();\n const selectedLanguage = Digit.StoreData.getCurrentLanguage();\n const [profilePic, setProfilePic] = useState(null);\n const { languages, stateInfo } = storeData || {};\n const user = Digit.UserService.getUser();\n const [search, setSearch] = useState(\"\");\n const [dropDownData, setDropDownData] = useState(null);\n const [selectCityData, setSelectCityData] = useState([]);\n const [selectedCity, setSelectedCity] = useState([]); //selectedCities?.[0]?.value\n const [selected, setselected] = useState(selectedLanguage);\n let selectedCities = [];\n const { isLoading, data } = Digit.Hooks.useAccessControl();\n const tenantId = Digit.ULBService.getCurrentTenantId();\n const { t } = useTranslation();\n \n // React Router v6: useNavigate replaces useHistory\n const navigate = useNavigate();\n // React Router v6: useLocation for accessing location object\n const location = useLocation();\n\n const stringReplaceAll = (str = \"\", searcher = \"\", replaceWith = \"\") => {\n if (searcher == \"\") return str;\n while (str?.includes(searcher)) {\n str = str?.replace(searcher, replaceWith);\n }\n return str;\n };\n\n useEffect(() => {\n const userloggedValues = Digit.SessionStorage.get(\"citizen.userRequestObject\");\n let teantsArray = [],\n filteredArray = [];\n userloggedValues?.info?.roles?.forEach((role) => teantsArray.push(role.tenantId));\n let unique = teantsArray.filter((item, i, ar) => ar.indexOf(item) === i);\n unique?.forEach((uniCode) => {\n filteredArray.push({\n label: t(`TENANT_TENANTS_${stringReplaceAll(uniCode, \".\", \"_\")?.toUpperCase()}`),\n value: uniCode,\n });\n });\n selectedCities = filteredArray?.filter((select) => select.value == Digit.SessionStorage.get(\"Employee.tenantId\"));\n setSelectCityData(filteredArray);\n }, [dropDownData]);\n\n const closeSidebar = () => {\n Digit.clikOusideFired = true;\n toggleSidebar(false);\n };\n\n useEffect(() => {\n const fetchUserProfile = async () => {\n const tenant = Digit.ULBService.getCurrentTenantId();\n const uuid = user?.info?.uuid;\n if (uuid) {\n const usersResponse = await Digit.UserService.userSearch(tenant, { uuid: [uuid] }, {});\n const userData = usersResponse?.user?.[0];\n if (userData) {\n const currentUser = Digit.UserService.getUser();\n Digit.UserService.setUser({\n ...currentUser,\n info: userData\n });\n }\n if (usersResponse && usersResponse.user && usersResponse?.user?.length) {\n const userDetails = usersResponse.user[0];\n const thumbs = userDetails?.photo?.split(\",\");\n setProfilePic(thumbs?.at(0));\n }\n }\n };\n if (!profilePic) {\n fetchUserProfile();\n }\n }, [profilePic]);\n\n const handleChangeCity = (city) => {\n const loggedInData = Digit.SessionStorage.get(\"citizen.userRequestObject\");\n const filteredRoles = Digit.SessionStorage.get(\"citizen.userRequestObject\")?.info?.roles?.filter((role) => role.tenantId === city.value);\n if (filteredRoles?.length > 0) {\n loggedInData.info.roles = filteredRoles;\n loggedInData.info.tenantId = city?.value;\n }\n Digit.SessionStorage.set(\"Employee.tenantId\", city?.value);\n Digit.UserService.setUser(loggedInData);\n setDropDownData(city);\n if (typeof window !== 'undefined' && window.location?.href?.includes(`/${window?.contextPath}/employee/`)) {\n\n // React Router v6: navigate with { replace: true } instead of history.replace()\n const redirectPath = location.state?.from || `/${window?.contextPath}/employee`;\n navigate(redirectPath, { replace: true });\n }\n // Safe reload with error handling\n try {\n if (typeof window !== 'undefined') {\n window.location.reload();\n }\n } catch (error) {\n console.warn('Failed to reload page:', error);\n }\n };\n\n const handleChangeLanguage = (language) => {\n setselected(language.value);\n Digit.LocalizationService.changeLanguage(language.value, stateInfo.code);\n };\n\n const handleModuleClick = (url) => {\n let updatedUrl = null;\n if (Digit.Utils.getMultiRootTenant()) {\n updatedUrl = isEmployee\n ? url.replace(\"/sandbox-ui/employee\", `/sandbox-ui/${tenantId}/employee`)\n : url.replace(\"/sandbox-ui/citizen\", `/sandbox-ui/${tenantId}/citizen`);\n // React Router v6: navigate() instead of history.push()\n navigate(updatedUrl);\n toggleSidebar();\n } else {\n url[0] === \"/\"\n ? navigate(`/${window?.contextPath}/${isEmployee ? \"employee\" : \"citizen\"}${url}`)\n : navigate(`/${window?.contextPath}/${isEmployee ? \"employee\" : \"citizen\"}/${url}`);\n toggleSidebar();\n }\n };\n\n const redirectToLoginPage = () => {\n if (isEmployee) {\n // React Router v6: navigate() instead of history.push()\n navigate(`/${window?.contextPath}/employee/user/language-selection`);\n } else {\n navigate(`/${window?.contextPath}/citizen/login`);\n }\n closeSidebar();\n };\n\n if (islinkDataLoading || isLoading) {\n return <Loader />;\n }\n\n let menuItems = [\n {\n id: \"login-btn\",\n element: \"LOGIN\",\n text: t(\"CORE_COMMON_LOGIN\"),\n icon: <LogoutIcon className=\"icon\" />,\n populators: {\n onClick: redirectToLoginPage,\n },\n },\n ];\n\n let profileItem;\n if (isFetched && user && user.access_token) {\n profileItem = <Profile info={user?.info} stateName={stateInfo?.name} t={t} />;\n menuItems = menuItems.filter((item) => item?.id !== \"login-btn\");\n }\n\n let configEmployeeSideBar = {};\n\n if (!isEmployee) {\n Object.keys(linkData)\n ?.sort((x, y) => y.localeCompare(x))\n ?.map((key) => {\n if (linkData[key][0]?.sidebar === \"digit-ui-links\")\n menuItems.splice(1, 0, {\n type: linkData[key][0]?.sidebarURL?.includes(window?.contextPath) ? \"link\" : \"external-link\",\n text: t(`ACTION_TEST_${Digit.Utils.locale.getTransformedLocale(key)}`),\n links: linkData[key],\n icon: linkData[key][0]?.leftIcon,\n link: linkData[key][0]?.sidebarURL,\n });\n });\n } else {\n data?.actions\n .filter((e) => e.url === \"url\" && e.displayName !== \"Home\")\n .forEach((item) => {\n if (search == \"\" && item.path !== \"\") {\n let index = item.path.split(\".\")[0];\n if (index === \"TradeLicense\") index = \"Trade License\";\n if (!configEmployeeSideBar[index]) {\n configEmployeeSideBar[index] = [item];\n } else {\n configEmployeeSideBar[index].push(item);\n }\n } else if (item.path !== \"\" && item?.displayName?.toLowerCase().includes(search.toLowerCase())) {\n let index = item.path.split(\".\")[0];\n if (index === \"TradeLicense\") index = \"Trade License\";\n if (!configEmployeeSideBar[index]) {\n configEmployeeSideBar[index] = [item];\n } else {\n configEmployeeSideBar[index].push(item);\n }\n }\n });\n const keys = Object.keys(configEmployeeSideBar);\n for (let i = 0; i < keys?.length; i++) {\n const getSingleDisplayName = configEmployeeSideBar[keys[i]][0]?.displayName?.toUpperCase()?.replace(/[ -]/g, \"_\");\n const getParentDisplayName = keys[i]?.toUpperCase()?.replace(/[ -]/g, \"_\");\n\n if (configEmployeeSideBar[keys[i]][0].path.indexOf(\".\") === -1) {\n menuItems.splice(1, 0, {\n type: \"link\",\n text: t(`ACTION_TEST_${getSingleDisplayName}`),\n link: configEmployeeSideBar[keys[i]][0]?.navigationURL,\n icon: configEmployeeSideBar[keys[i]][0]?.leftIcon,\n populators: {\n onClick: () => {\n // React Router v6: navigate() instead of history.push()\n navigate(configEmployeeSideBar[keys[i]][0]?.navigationURL);\n closeSidebar();\n },\n },\n });\n } else {\n menuItems.splice(1, 0, {\n type: \"dynamic\",\n moduleName: t(`ACTION_TEST_${getParentDisplayName}`),\n links: configEmployeeSideBar[keys[i]]?.map((ob) => {\n return {\n ...ob,\n displayName: t(`ACTION_TEST_${ob?.displayName?.toUpperCase()?.replace(/[ -]/g, \"_\")}`),\n };\n }),\n icon: configEmployeeSideBar[keys[i]][1]?.leftIcon,\n });\n }\n }\n const indx = menuItems.findIndex((a) => a.element === \"HOME\");\n const home = menuItems.splice(indx, 1);\n const comp = menuItems.findIndex((a) => a.element === \"LANGUAGE\");\n const part = menuItems.splice(comp, menuItems?.length - comp);\n menuItems.sort((a, b) => {\n let c1 = a?.type === \"dynamic\" ? a?.moduleName : a?.text;\n let c2 = b?.type === \"dynamic\" ? b?.moduleName : b?.text;\n return c1.localeCompare(c2);\n });\n home?.[0] && menuItems.splice(0, 0, home[0]);\n menuItems = part?.length > 0 ? menuItems.concat(part) : menuItems;\n }\n\n /* URL with openlink wont have sidebar and actions */\n // React Router v6: location.pathname instead of history.location.pathname\n if (location.pathname.includes(\"/openlink\")) {\n profileItem = <span></span>;\n menuItems = menuItems.filter((ele) => ele.element === \"LANGUAGE\");\n }\n\n menuItems = menuItems?.map((item) => ({\n ...item,\n label: item?.text || item?.moduleName || \"\",\n icon: item?.icon ? item?.icon : undefined,\n }));\n\n let city = \"\";\n if (Digit.Utils.getMultiRootTenant()) {\n city = t(`TENANT_TENANTS_${tenantId}`);\n } else {\n city = t(`TENANT_TENANTS_${stringReplaceAll(Digit.ULBService.getCurrentTenantId(), \".\", \"_\")?.toUpperCase()}`);\n // city = \"TEST\";\n }\n const goToHome = () => {\n if (isEmployee) {\n // React Router v6: navigate() instead of history.push()\n navigate(`/${window?.contextPath}/employee`);\n } else {\n navigate(`/${window?.contextPath}/citizen`);\n }\n };\n const onItemSelect = ({ item, index, parentIndex }) => {\n if (item?.navigationURL) {\n handleModuleClick(item?.navigationURL);\n } else if (item?.link) {\n handleModuleClick(item?.link);\n } else if (item?.type === \"custom\") {\n switch (item?.key) {\n case \"home\":\n goToHome();\n toggleSidebar();\n break;\n case \"editProfile\":\n userProfile();\n toggleSidebar();\n break;\n case \"language\":\n handleChangeLanguage(item);\n toggleSidebar();\n break;\n case \"city\":\n handleChangeCity(item);\n toggleSidebar();\n break;\n }\n } else {\n return;\n }\n };\n\n const transformedMenuItems = menuItems?.map((item) => {\n if (item?.type === \"dynamic\") {\n return {\n ...item,\n children: item?.links?.map((link) => ({\n ...link,\n label: link?.displayName,\n icon: link?.leftIcon,\n })),\n };\n } else {\n return item;\n }\n });\n\n const transformedSelectedCityData = selectCityData?.map((city) => ({\n ...city,\n type: \"custom\",\n key: \"city\",\n }));\n\n const transformedLanguageData = languages?.map((language) => ({\n ...language,\n type: \"custom\",\n key: \"language\",\n icon: \"Language\",\n }));\n\n const hamburgerItems = [\n {\n label: \"HOME\",\n value: \"HOME\",\n icon: \"Home\",\n // children: transformedSelectedCityData?.length>0 ? transformedSelectedCityData : undefined,\n type: \"custom\",\n key: \"home\",\n },\n {\n label: city,\n value: city,\n children: transformedSelectedCityData?.length > 0 ? transformedSelectedCityData : undefined,\n type: \"custom\",\n icon: \"LocationCity\",\n key: \"city\",\n },\n {\n label: t(\"Language\"),\n children: transformedLanguageData?.length > 0 ? transformedLanguageData : undefined,\n type: \"custom\",\n icon: \"Language\",\n key: \"language\",\n },\n ...(user && user.access_token\n ? [\n {\n label: t(\"EDIT_PROFILE\"),\n type: \"custom\",\n icon: \"Edit\",\n key: \"editProfile\",\n },\n ]\n : []),\n {\n label: t(\"Modules\"),\n icon: \"DriveFileMove\",\n children: transformedMenuItems,\n },\n ];\n return isMobile ? (\n <Hamburger\n items={hamburgerItems}\n profileName={user?.info?.name}\n profileNumber={user?.info?.mobileNumber || user?.info?.emailId}\n theme=\"dark\"\n transitionDuration={0.3}\n styles={{ marginTop: \"64px\", height: \"93%\" }}\n onLogout={onLogout}\n hideUserManuals={true}\n profile={profilePic ? profilePic : undefined}\n isSearchable={true}\n onSelect={({ item, index, parentIndex }) => onItemSelect({ item, index, parentIndex })}\n />\n ) : (\n <StaticCitizenSideBar logout={onLogout} />\n );\n};","import React, { useRef, useEffect, useState } from \"react\";\nimport { SideNav, Loader } from \"@egovernments/digit-ui-components\";\nimport { useTranslation } from \"react-i18next\";\nimport { useNavigate } from \"react-router-dom\";\nimport MediaQuery from 'react-responsive';\n\n\n\n\nconst EmployeeSideBar = () => {\n const { isLoading, data } = Digit.Hooks.useAccessControl();\n const isMultiRootTenant = Digit.Utils.getMultiRootTenant();\n const { t } = useTranslation();\n const navigate = useNavigate();\n const tenantId = Digit?.ULBService?.getStateId();\n\n function extractLeftIcon(data = {}) {\n for (const key in data) {\n const item = data[key];\n if (key === \"item\" && item?.leftIcon !== \"\") {\n return item?.leftIcon;\n }\n if (typeof data[key] === \"object\" && !Array.isArray(data[key])) {\n const subResult = extractLeftIcon(data[key]);\n if (subResult) {\n return subResult;\n }\n }\n }\n return null;\n }\n\n function mergeObjects(obj1, obj2) {\n for (const key in obj2) {\n if (obj2.hasOwnProperty(key)) {\n if (typeof obj2[key] === \"object\" && !Array.isArray(obj2[key])) {\n if (!obj1[key]) {\n obj1[key] = {};\n }\n mergeObjects(obj1[key], obj2[key]);\n } else {\n if (!obj1[key]) {\n obj1[key] = obj2[key];\n }\n }\n }\n }\n }\n\n const configEmployeeSideBar = {};\n data?.actions\n .filter((e) => e.url === \"url\")\n .forEach((item) => {\n let index = item?.path?.split(\".\")?.[0] || \"\";\n if (item?.path !== \"\") {\n const keys = item?.path?.split(\".\");\n let hierarchicalMap = {};\n\n keys.reduce((acc, key, index) => {\n if (index === keys.length - 1) {\n acc[key] = { item };\n } else {\n acc[key] = {};\n return acc[key];\n }\n }, hierarchicalMap);\n mergeObjects(configEmployeeSideBar, hierarchicalMap);\n }\n });\n\n const splitKeyValue = (configEmployeeSideBar) => {\n const objectArray = Object.entries(configEmployeeSideBar);\n objectArray.sort((a, b) => {\n if (a[0] < b[0]) {\n return -1;\n }\n if (a[0] > b[0]) {\n return 1;\n }\n return 0;\n });\n const sortedObject = Object.fromEntries(objectArray);\n configEmployeeSideBar = sortedObject;\n return configEmployeeSideBar;\n };\n\n const navigateToRespectiveURL = (navigate = {}, url = \"\") => {\n if (!url || url === \"/\") return;\n\n //Detect if it's an external link (starts with http or https)\n const isExternal = /^https?:\\/\\//i.test(url);\n\n if (isExternal) {\n //Open external links in a new tab\n window.open(url, \"_blank\", \"noopener,noreferrer\");\n return;\n }\n\n //Internal navigation logic\n if (!url.includes(`/${window?.contextPath}`)) {\n const hostUrl = window.location.origin;\n let updatedUrl;\n\n if (isMultiRootTenant) {\n const contextPath = window?.contextPath || \"sandbox-ui\";\n url = url.replace(`/${contextPath}/employee`, `/${contextPath}/${tenantId}/employee`);\n updatedUrl = url;\n navigate(updatedUrl);\n }\n else{\n updatedUrl = hostUrl + url;\n try {\n if (typeof window !== 'undefined') {\n window.location.href = updatedUrl;\n }\n } catch (error) {\n console.warn('Navigation failed, attempting fallback:', error);\n try {\n window.location.replace(updatedUrl);\n } catch (fallbackError) {\n console.error('All navigation methods failed:', fallbackError);\n }\n }\n }\n } else {\n navigate(url);\n }\n};\n\n const onItemSelect = ({ item, index, parentIndex }) => {\n if (item?.navigationUrl) {\n navigateToRespectiveURL(navigate, item?.navigationUrl);\n } else {\n return;\n } \n };\n\n function transformData(data) {\n const transformItem = (key, value) => {\n if (value.item) {\n return {\n label: t(value.item.displayName),\n icon: { icon: value.item.leftIcon, width: \"1.5rem\", height: \"1.5rem\" },\n navigationUrl: value.item.navigationURL,\n orderNumber:value.item.orderNumber,\n };\n }\n const children = Object.keys(value).map((childKey) => transformItem(childKey, value[childKey]));\n const iconKey = extractLeftIcon(value);\n return {\n label: t(key),\n icon: { icon: iconKey, width: \"1.5rem\", height: \"1.5rem\" },\n children: children,\n };\n };\n return Object.keys(data).map((key) => transformItem(key, data[key]));\n }\n\n const sortDataByOrderNumber = (data) => {\n // Sort the current level of data by orderNumber, handling cases where orderNumber might be missing\n data.sort((a, b) => {\n const aOrder = a.orderNumber !== undefined ? a.orderNumber : Infinity; // Use Infinity if orderNumber is missing\n const bOrder = b.orderNumber !== undefined ? b.orderNumber : Infinity; // Use Infinity if orderNumber is missing\n return aOrder - bOrder;\n });\n \n // Recursively sort the children if they exist\n data.forEach((item) => {\n if (item.children && item.children.length > 0) {\n sortDataByOrderNumber(item.children);\n }\n });\n \n return data;\n };\n\n const transformedData = transformData(splitKeyValue(configEmployeeSideBar));\n const sortedTransformedData= sortDataByOrderNumber(transformedData);\n if (isLoading) {\n return <Loader />;\n }\n\n if (!configEmployeeSideBar) {\n return \"\";\n }\n \n return (\n <MediaQuery minWidth={768}>\n <SideNav\n items={sortedTransformedData}\n hideAccessbilityTools={true}\n onSelect={({ item, index, parentIndex }) => onItemSelect({ item, index, parentIndex })}\n theme={window?.globalConfigs?.getConfig(\"SIDENAV_THEME\") || \"dark\"}\n variant={window?.globalConfigs?.getConfig(\"SIDENAV_VARIANT\") || \"primary\"}\n transitionDuration={\"\"}\n className=\"\"\n styles={{}}\n expandedWidth=\"\"\n collapsedWidth=\"\"\n onBottomItemClick={() => { }}\n />\n </MediaQuery>\n );\n};\n\nexport default EmployeeSideBar;\n\n\n\n\n\n","import React from \"react\";\nimport { CitizenSideBar } from \"./CitizenSideBar\";\nimport EmployeeSideBar from \"./EmployeeSideBar\";\n\nconst SideBar = ({ t, CITIZEN, isSidebarOpen, toggleSidebar, handleLogout, mobileView, userDetails, modules, linkData, islinkDataLoading,userProfile}) => {\n if (CITIZEN)\n return (\n <CitizenSideBar\n isOpen={isSidebarOpen}\n isMobile={true}\n toggleSidebar={toggleSidebar}\n onLogout={handleLogout}\n linkData={linkData}\n islinkDataLoading={islinkDataLoading}\n userProfile={userProfile}\n isEmployee={false}\n />\n );\n else {\n return !isSidebarOpen && userDetails?.access_token ? (\n <div className=\"digit-employeeSidebar\">\n <EmployeeSideBar {...{ mobileView, userDetails, modules }} />\n </div>\n ) : (\n <div className=\"digit-citizenSidebar\">\n <CitizenSideBar\n isOpen={isSidebarOpen}\n isMobile={true}\n toggleSidebar={toggleSidebar}\n onLogout={handleLogout}\n isEmployee={true}\n userProfile={userProfile}\n />\n </div>\n );\n }\n};\n\nexport default SideBar;\n","import React, { useState } from \"react\";\nimport TopBar from \"./TopBar\";\nimport { useNavigate } from \"react-router-dom\";\nimport SideBar from \"./SideBar\";\nimport LogoutDialog from \"../Dialog/LogoutDialog\";\nconst TopBarSideBar = ({\n t,\n stateInfo,\n userDetails,\n CITIZEN,\n cityDetails,\n mobileView,\n handleUserDropdownSelection,\n logoUrl,\n logoUrlWhite,\n showSidebar = true,\n showLanguageChange,\n linkData,\n islinkDataLoading,\n}) => {\n const [isSidebarOpen, toggleSidebar] = useState(false);\n const navigate = useNavigate()\n const [showDialog, setShowDialog] = useState(false);\n const handleLogout = () => {\n toggleSidebar(false);\n setShowDialog(true);\n };\n const handleOnSubmit = () => {\n Digit.UserService.logout();\n setShowDialog(false);\n };\n const handleOnCancel = () => {\n setShowDialog(false);\n };\n\n const handleSidebar = () => {\n toggleSidebar(!isSidebarOpen);\n };\n const userProfile = () => {\n CITIZEN ? navigate(`/${window?.contextPath}/citizen/user/profile`) : navigate(`/${window?.contextPath}/employee/user/profile`);\n };\n const userOptions = [\n { name: t(\"EDIT_PROFILE\"), icon: \"Edit\", func: userProfile },\n { name: t(\"CORE_COMMON_LOGOUT\"), icon: \"Logout\", func: handleLogout },\n ];\n\n return (\n <React.Fragment>\n <TopBar\n t={t}\n stateInfo={stateInfo}\n toggleSidebar={handleSidebar}\n isSidebarOpen={isSidebarOpen}\n handleLogout={handleLogout}\n userDetails={userDetails}\n CITIZEN={CITIZEN}\n cityDetails={cityDetails}\n mobileView={mobileView}\n userOptions={userOptions}\n handleUserDropdownSelection={handleUserDropdownSelection}\n logoUrl={logoUrl}\n logoUrlWhite={logoUrlWhite}\n showLanguageChange={showLanguageChange}\n />\n {showDialog && <LogoutDialog onSelect={handleOnSubmit} onCancel={handleOnCancel} onDismiss={handleOnCancel}></LogoutDialog>}\n {!CITIZEN\n ? showSidebar && (\n <SideBar\n t={t}\n CITIZEN={CITIZEN}\n isSidebarOpen={isSidebarOpen}\n toggleSidebar={handleSidebar}\n handleLogout={handleLogout}\n mobileView={mobileView}\n userDetails={userDetails}\n linkData={linkData}\n userProfile={userProfile}\n islinkDataLoading={islinkDataLoading}\n />\n )\n : CITIZEN\n ? showSidebar && isSidebarOpen && (\n <SideBar\n t={t}\n CITIZEN={CITIZEN}\n isSidebarOpen={isSidebarOpen}\n toggleSidebar={handleSidebar}\n handleLogout={handleLogout}\n mobileView={mobileView}\n userDetails={userDetails}\n linkData={linkData}\n userProfile={userProfile}\n islinkDataLoading={islinkDataLoading}\n />\n )\n : null}\n </React.Fragment>\n );\n};\nexport default TopBarSideBar;\n","import React, { useEffect } from 'react';\n\nconst withAutoFocusMain = (WrappedComponent, mainSelector = '.digit-home-main') => {\n return function WithAutoFocusWrapper(props) {\n useEffect(() => {\n const handleFirstTab = (e) => {\n if (e.key === 'Tab') {\n const main = document.querySelector(mainSelector);\n if (main) {\n main.setAttribute('tabindex', '-1');\n main.style.outline = 'none';\n main.focus();\n }\n window.removeEventListener('keydown', handleFirstTab);\n }\n };\n\n window.addEventListener('keydown', handleFirstTab);\n return () => window.removeEventListener('keydown', handleFirstTab);\n }, []);\n\n return <WrappedComponent {...props} />;\n };\n};\n\nexport default withAutoFocusMain;","import React, { useEffect, useRef } from \"react\";\n\nfunction useInterval(callback, delay) {\n const savedCallback = useRef();\n useEffect(() => {\n savedCallback.current = callback;\n }, [callback]);\n\n useEffect(() => {\n function tick() {\n savedCallback.current();\n }\n if (delay !== null) {\n const timer = setInterval(tick, delay);\n return () => clearInterval(timer);\n }\n }, [delay]);\n}\n\nexport default useInterval;\n","export const useLoginConfig = (stateCode) => {\n const moduleName = Digit.Utils.getConfigModuleName();\n\n return Digit.Hooks.useCommonMDMS(\n stateCode,\n moduleName,\n [\"LoginConfig\"],\n {\n select: (data) => ({\n config: data?.[moduleName]?.LoginConfig,\n }),\n retry: false,\n }\n );\n};\n","import { ArrowForward } from \"@egovernments/digit-ui-svg-components\";\nimport React, { useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nconst FaqComponent = (props) => {\n const { question, answer, lastIndex } = props;\n const [isOpen, toggleOpen] = useState(false);\n const { t } = useTranslation();\n\n return (\n <div className=\"faqs border-none\" onClick={() => toggleOpen(!isOpen)}>\n <div className=\"faq-question\" style={{ justifyContent: \"space-between\", display: \"flex\" }}>\n <span>{t(question)}</span>\n <span className={isOpen ? \"faqicon rotate\" : \"faqicon\"} style={{ float: \"right\" }}>\n <ArrowForward />\n </span>\n </div>\n\n <div className=\"faq-answer\" style={isOpen ? { display: \"block\" } : { display: \"none\" }}>\n <span>{t(answer)}</span>\n </div>\n {!lastIndex ? <div className=\"cs-box-border\" /> : null}\n </div>\n );\n};\n\nexport default FaqComponent;\n","import { BackButton, HeaderComponent, Loader ,SearchIconSvg} from \"@egovernments/digit-ui-components\";\nimport React, { Fragment } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport FaqComponent from \"./FaqComponent\";\n\nconst FAQsSection = ({ module }) => {\n const user = Digit.UserService.getUser();\n const tenantId = user?.info?.tenantId || Digit.ULBService.getCurrentTenantId();\n const { t } = useTranslation();\n\n const SearchImg = () => {\n return <SearchIconSvg className=\"signature-img\" />;\n };\n\n const { isLoading, data } = Digit.Hooks.useGetFAQsJSON(Digit.ULBService.getStateId());\n\n const moduleFaqs = data?.MdmsRes[\"common-masters\"]?.faqs[0]?.[`${module}`].faqs;\n\n if (isLoading) {\n return <Loader />;\n }\n return (\n <Fragment>\n <div className=\"faq-page\">\n <BackButton style={{ marginLeft: \"unset\" }}></BackButton>\n <div style={{ marginBottom: \"15px\" }}>\n <HeaderComponent styles={{ marginLeft: \"0px\", paddingTop: \"10px\", fontSize: \"32px\" }}>{t(\"FAQ_S\")}</HeaderComponent>\n </div>\n <div className=\"faq-list\">\n {moduleFaqs.map((faq, i) => (\n <FaqComponent key={\"faq_\" + i} question={faq.question} answer={faq.answer} lastIndex={i === moduleFaqs?.length - 1} />\n ))}\n </div>\n </div>\n </Fragment>\n );\n};\n\nexport default FAQsSection;\n","import { PageBasedInput, Loader, RadioButtons, CardHeader } from \"@egovernments/digit-ui-components\";\nimport React, { useMemo } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useNavigate } from \"react-router-dom\";\n\nconst LanguageSelection = () => {\n const { t } = useTranslation();\n const navigate = useNavigate();\n\n const { data: { languages, stateInfo } = {}, isLoading } = Digit.Hooks.useStore.getInitData();\n const selectedLanguage = Digit.StoreData.getCurrentLanguage();\n\n const texts = useMemo(\n () => ({\n header: t(\"CS_COMMON_CHOOSE_LANGUAGE\"),\n submitBarLabel: t(\"CORE_COMMON_CONTINUE\"),\n }),\n [t]\n );\n\n const RadioButtonProps = useMemo(\n () => ({\n options: languages,\n optionsKey: \"label\",\n additionalWrapperClass: \"digit-reverse-radio-selection-wrapper\",\n onSelect: (language) => Digit.LocalizationService.changeLanguage(language.value, stateInfo.code),\n selectedOption: languages?.filter((i) => i.value === selectedLanguage)[0],\n }),\n [selectedLanguage, languages]\n );\n\n function onSubmit() {\n navigate(`/${window?.contextPath}/citizen/select-location`);\n }\n\n return isLoading ? (\n <Loader />\n ) : (\n <div className=\"selection-card-wrapper\">\n <PageBasedInput texts={texts} onSubmit={onSubmit}>\n <CardHeader>{t(\"CS_COMMON_CHOOSE_LANGUAGE\")}</CardHeader>\n <RadioButtons {...RadioButtonProps} />\n </PageBasedInput>\n </div>\n );\n};\n\nexport default LanguageSelection;\n","import { BackLink } from \"@egovernments/digit-ui-components\";\nimport { CardHeader, CardLabelError, PageBasedInput, SearchOnRadioButtons } from \"@egovernments/digit-ui-react-components\";\nimport React, { useMemo, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useNavigate, useLocation } from \"react-router-dom\";\n\nconst LocationSelection = () => {\n const { t } = useTranslation();\n const navigate = useNavigate();\n const location = useLocation();\nconst {\n data: { stateInfo, uiHomePage } = {},\n isLoading: initisLoading,\n} = Digit.Hooks.useStore.getInitData();\n\nconst redirectURL = uiHomePage?.redirectURL;\n\nconst { data: cities, isLoading } = Digit.Hooks.useTenants();\n\n\n const [selectedCity, setSelectedCity] = useState(() => ({ code: Digit.ULBService.getCitizenCurrentTenant(true) }));\n const [showError, setShowError] = useState(false);\n\n const texts = useMemo(\n () => ({\n header: t(\"CS_COMMON_CHOOSE_LOCATION\"),\n submitBarLabel: t(\"CORE_COMMON_CONTINUE\"),\n }),\n [t]\n );\n\n function selectCity(city) {\n setSelectedCity(city);\n setShowError(false);\n }\n\n const RadioButtonProps = useMemo(() => {\n return {\n options: cities,\n optionsKey:\"i18nKey\",\n additionalWrapperClass: \"digit-reverse-radio-selection-wrapper\",\n onSelect: selectCity,\n selectedOption: selectedCity,\n };\n }, [cities, t, selectedCity]);\n\n function onSubmit() {\n if (selectedCity) {\n Digit.SessionStorage.set(\"CITIZEN.COMMON.HOME.CITY\", selectedCity);\n const redirectBackTo = location.state?.redirectBackTo;\n if(redirectURL){\n navigate(`/${window?.contextPath}/citizen/${redirectURL}`);\n }\n else{\n if (redirectBackTo) {\n navigate(redirectBackTo, {replace:true});\n } else navigate(`/${window?.contextPath}/citizen`);\n }\n } else {\n setShowError(true);\n }\n }\n\n return isLoading ? (\n <loader />\n ) : (\n <div>\n <BackLink onClick={() => window.history.back()}/>\n <PageBasedInput texts={texts} onSubmit={onSubmit} className=\"location-selection-container\">\n <CardHeader>{t(\"CS_COMMON_CHOOSE_LOCATION\")}</CardHeader>\n <SearchOnRadioButtons {...RadioButtonProps} placeholder={t(\"COMMON_TABLE_SEARCH\")} />\n {showError ? <CardLabelError>{t(\"CS_COMMON_LOCATION_SELECTION_ERROR\")}</CardLabelError> : null}\n </PageBasedInput>\n </div>\n );\n};\n\nexport default LocationSelection;\n","import React, { useState, useEffect } from \"react\";\nimport { GalleryIcon, RemoveIcon } from \"@egovernments/digit-ui-react-components\";\nimport { useTranslation } from \"react-i18next\";\n\nfunction UploadDrawer({ setProfilePic, closeDrawer, userType, removeProfilePic ,showToast}) {\n const [uploadedFile, setUploadedFile] = useState(null);\n const [file, setFile] = useState(\"\");\n const [error, setError] = useState(null);\n const { t } = useTranslation();\n const selectfile = (e) => setFile(e.target.files[0]);\n const removeimg = () => {removeProfilePic(); closeDrawer()};\n const onOverlayBodyClick = () => closeDrawer();\n\n useEffect(() => {\n (async () => {\n setError(null);\n if (file) {\n if (file.size >= 1000000) {\n showToast(\"error\", t(\"CORE_COMMON_PROFILE_MAXIMUM_UPLOAD_SIZE_EXCEEDED\"))\n setError(t(\"CORE_COMMON_PROFILE_MAXIMUM_UPLOAD_SIZE_EXCEEDED\"));\n } else {\n try {\n const response = await Digit.UploadServices.Filestorage(`${userType}-profile`, file, Digit.ULBService.getStateId());\n if (response?.data?.files?.length > 0) {\n const fileStoreId = response?.data?.files[0]?.fileStoreId;\n setUploadedFile(fileStoreId);\n setProfilePic(fileStoreId);\n } else {\n showToast(\"error\", t(\"CORE_COMMON_PROFILE_FILE_UPLOAD_ERROR\"))\n setError(t(\"CORE_COMMON_PROFILE_FILE_UPLOAD_ERROR\"));\n }\n } catch (err) {\n showToast(\"error\",t(\"CORE_COMMON_PROFILE_INVALID_FILE_INPUT\"))\n // setError(t(\"PT_FILE_UPLOAD_ERROR\"));\n }\n }\n }\n })();\n }, [file]);\n\n return (\n <React.Fragment>\n <div\n style={{\n position: \"fixed\",\n top: \"0\",\n left: \"0\",\n right: \"0\",\n bottom: \"0\",\n width: \"100%\",\n height: \"100vh\",\n backgroundColor: \"rgba(0,0,0,.5)\",\n // zIndex: \"9998\",\n }}\n onClick={onOverlayBodyClick}\n ></div>\n <div\n style={{\n width: \"100%\",\n justifyContent: \"space-between\",\n display: \"flex\",\n backgroundColor: \"white\",\n alignItems: \"center\",\n position: \"fixed\",\n left: \"0\",\n right: \"0\",\n height: \"20%\",\n bottom: userType === \"citizen\" ? \"2.5rem\" : \"0\",\n zIndex: \"1000\",\n }}\n >\n <div\n style={{ display: \"flex\", flex: \"1\", flexDirection: \"column\", width: \"100%\", justifyContent: \"center\", alignItems: \"center\", gap: \"8px 0\" }}\n >\n <label for=\"file\" style={{ cursor: \"pointer\" }}>\n {\" \"}\n <GalleryIcon />\n </label>\n <label style={{ cursor: \"pointer\" }}> Gallery</label>\n <input type=\"file\" id=\"file\" accept=\"image/*, .png, .jpeg, .jpg\" onChange={selectfile} style={{ display: \"none\" }} />\n </div>\n\n <div\n style={{ display: \"flex\", flex: \"1\", width: \"100%\", justifyContent: \"center\", alignItems: \"center\", flexDirection: \"column\", gap: \"8px 0\" }}\n >\n <button onClick={removeimg}>\n <RemoveIcon />\n </button>\n <label style={{ cursor: \"pointer\" }}>Remove</label>\n </div>\n </div>\n </React.Fragment>\n );\n}\n\nexport default UploadDrawer;\n","import {\n SVG,\n Dropdown,\n LabelFieldPair,\n MobileNumber,\n TextInput,\n CardLabelError,\n BackLink,\n Loader,\n Button,\n SubmitBar,\n Footer,\n CardLabel,\n BreadCrumb,\n Toast,\n ErrorMessage,\n} from \"@egovernments/digit-ui-components\";\nimport { CameraIcon } from \"@egovernments/digit-ui-react-components\";\nimport React, { useEffect, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useNavigate } from \"react-router-dom\";\nimport UploadDrawer from \"./ImageUpload/UploadDrawer\";\nimport ImageComponent from \"../../../components/ImageComponent\";\n\nconst DEFAULT_TENANT = Digit?.ULBService?.getStateId?.();\n\nconst defaultImage =\n \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAO4AAADUCAMAAACs0e/bAAAAM1BMVEXK0eL\" +\n \"/\" +\n \"/\" +\n \"/\" +\n \"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\";\n\nconst defaultValidationConfig = {\n tenantId: `${DEFAULT_TENANT}`,\n UserProfileValidationConfig: [\n {\n name: \"/^[a-zA-Z ]+$/i\",\n mobileNumber: \"/^[6-9]{1}[0-9]{9}$/\",\n password: \"/^([a-zA-Z0-9@#$%]{8,15})$/i\",\n },\n ],\n};\n\nconst IndividualUserProfile = ({ stateCode, userType, cityDetails }) => {\n const navigate = useNavigate();\n const { t } = useTranslation();\n const url = window.location.href;\n const stateId = Digit.ULBService.getStateId();\n const tenant = Digit.ULBService.getCurrentTenantId();\n const userInfo = Digit.UserService.getUser()?.info || {};\n const [userDetails, setUserDetails] = useState(null);\n const [name, setName] = useState(userInfo?.name ? userInfo.name : \"\");\n const [email, setEmail] = useState(userInfo?.emailId ? userInfo.emailId : \"\");\n const [gender, setGender] = useState(userDetails?.gender);\n const [city, setCity] = useState(userInfo?.permanentCity ? userInfo.permanentCity : cityDetails.name);\n const [mobileNumber, setMobileNo] = useState(userInfo?.mobileNumber ? userInfo.mobileNumber : \"\");\n const [profilePic, setProfilePic] = useState(null);\n const [profileImg, setProfileImg] = useState(\"\");\n const [openUploadSlide, setOpenUploadSide] = useState(false);\n const [changepassword, setChangepassword] = useState(false);\n const [currentPassword, setCurrentPassword] = useState(\"\");\n const [newPassword, setNewPassword] = useState(\"\");\n const [confirmPassword, setConfirmPassword] = useState(\"\");\n const [toast, setToast] = useState(null);\n const [loading, setLoading] = useState(false);\n const [windowWidth, setWindowWidth] = React.useState(window.innerWidth);\n const [errors, setErrors] = React.useState({});\n const isMobile = window.Digit.Utils.browser.isMobile();\n const isMultiRootTenant = Digit.Utils.getMultiRootTenant();\n\n const individualServicePath = window?.globalConfigs?.getConfig(\"INDIVIDUAL_SERVICE_CONTEXT_PATH\");\n // const useAnIndividual = window?.globalConfigs?.getConfig(\"USE_INDIVIDUAL_MODEL\"); // Handled in parent\n\n const mapConfigToRegExp = (config) => {\n return (\n config?.UserProfileValidationConfig?.[0] &&\n Object.entries(config?.UserProfileValidationConfig[0]).reduce((acc, [key, value]) => {\n if (typeof value === \"string\") {\n try {\n // Checking if value looks like a regex (starts with \"/\" and ends with \"/flags\")\n if (value.startsWith(\"/\") && value.lastIndexOf(\"/\") > 0) {\n const lastSlashIndex = value.lastIndexOf(\"/\");\n const pattern = value.slice(1, lastSlashIndex); // Extracting regex pattern\n const flags = value.slice(lastSlashIndex + 1); // Extracting regex flags\n\n acc[key] = new RegExp(pattern, flags); // Converting properly\n } else {\n acc[key] = new RegExp(value); // Treating it as a normal regex pattern (no flags)\n }\n } catch (error) {\n console.error(`Error parsing regex for key \"${key}\":`, error);\n acc[key] = value; // Keeping as string if invalid regex\n }\n } else {\n acc[key] = value; // Keeping non-string values as it is\n }\n return acc;\n }, {})\n );\n };\n\n const [validationConfig, setValidationConfig] = useState(mapConfigToRegExp(defaultValidationConfig) || {});\n\n const { data: mdmsValidationData, isValidationConfigLoading } = Digit.Hooks.useCustomMDMS(\n stateCode,\n \"commonUiConfig\",\n [{ name: \"UserProfileValidationConfig\" }],\n {\n select: (data) => {\n return data?.commonUiConfig;\n },\n }\n );\n\n useEffect(() => {\n if (mdmsValidationData && mdmsValidationData?.UserProfileValidationConfig?.[0]) {\n const updatedValidationConfig = mapConfigToRegExp(mdmsValidationData);\n setValidationConfig(updatedValidationConfig);\n }\n }, [mdmsValidationData]);\n\n const getUserInfo = async () => {\n const uuid = userInfo?.uuid;\n\n if (uuid) {\n // New API using health-individual\n const response = await Digit.CustomService.getResponse({\n url: `${individualServicePath}/v1/_search`,\n useCache: false,\n method: \"POST\",\n userService: true,\n params: {\n limit: 1000,\n offset: 0,\n tenantId: tenant,\n },\n body: {\n Individual: {\n userUuid: [uuid],\n tenantId: tenant,\n },\n },\n });\n\n if (response?.Individual?.length) {\n setUserDetails(response.Individual[0]);\n }\n }\n };\n\n React.useEffect(() => {\n window.addEventListener(\"resize\", () => setWindowWidth(window.innerWidth));\n return () => {\n window.removeEventListener(\"resize\", () => setWindowWidth(window.innerWidth));\n };\n });\n\n useEffect(() => {\n setLoading(true);\n\n getUserInfo();\n\n setGender({\n i18nKey: undefined,\n code: userDetails?.gender,\n value: userDetails?.gender,\n });\n\n const thumbs = userDetails?.photo?.split(\",\");\n setProfileImg(thumbs?.at(0));\n\n setLoading(false);\n }, [userDetails !== null]);\n\n let validation = {};\n const editScreen = false; // To-do: Deubug and make me dynamic or remove if not needed\n const onClickAddPic = () => setOpenUploadSide(!openUploadSlide);\n const TogleforPassword = () => setChangepassword(!changepassword);\n const setGenderName = (value) => setGender(value);\n const closeFileUploadDrawer = () => setOpenUploadSide(false);\n\n const setUserName = (value) => {\n setName(value);\n\n if (!validationConfig?.name?.test(value) || value.length === 0 || value.length > 50) {\n setErrors({\n ...errors,\n userName: {\n type: \"pattern\",\n message: \"CORE_COMMON_PROFILE_NAME_INVALID\",\n },\n });\n } else {\n setErrors({ ...errors, userName: null });\n }\n };\n\n const setUserEmailAddress = (value) => {\n if (userInfo?.userName !== value) {\n setEmail(value);\n\n if (value.length && !(value.includes(\"@\") && value.includes(\".\"))) {\n setErrors({\n ...errors,\n emailAddress: {\n type: \"pattern\",\n message: \"CORE_COMMON_PROFILE_EMAIL_INVALID\",\n },\n });\n } else {\n setErrors({ ...errors, emailAddress: null });\n }\n } else {\n setErrors({ ...errors, emailAddress: null });\n }\n };\n\n const setUserMobileNumber = (value) => {\n setMobileNo(value);\n\n if (userType === \"employee\" && !validationConfig?.mobileNumber?.test(value)) {\n setErrors({\n ...errors,\n mobileNumber: {\n type: \"pattern\",\n message: \"CORE_COMMON_PROFILE_MOBILE_NUMBER_INVALID\",\n },\n });\n } else {\n setErrors({ ...errors, mobileNumber: null });\n }\n };\n\n const setUserCurrentPassword = (value) => {\n if (!validationConfig?.password.test(value)) {\n setErrors({\n ...errors,\n currentPassword: {\n type: \"pattern\",\n message: \"CORE_COMMON_PROFILE_PASSWORD_INVALID\",\n },\n });\n } else {\n setErrors({ ...errors, currentPassword: null });\n }\n };\n\n const setUserNewPassword = (value) => {\n setNewPassword(value);\n if (!validationConfig?.password.test(value)) {\n setErrors({\n ...errors,\n newPassword: {\n type: \"pattern\",\n message: \"CORE_COMMON_PROFILE_PASSWORD_INVALID\",\n },\n });\n } else {\n setErrors({ ...errors, newPassword: null });\n }\n };\n\n const setUserConfirmPassword = (value) => {\n setConfirmPassword(value);\n\n if (!validationConfig?.password.test(value)) {\n setErrors({\n ...errors,\n confirmPassword: {\n type: \"pattern\",\n message: \"CORE_COMMON_PROFILE_PASSWORD_INVALID\",\n },\n });\n } else {\n setErrors({ ...errors, confirmPassword: null });\n }\n };\n\n const removeProfilePic = () => {\n setProfilePic(null);\n setProfileImg(null);\n };\n\n const showToast = (type, message, duration = 5000) => {\n setToast({ key: type, action: message });\n setTimeout(() => {\n setToast(null);\n }, duration);\n };\n\n const updateProfile = async () => {\n setLoading(true);\n try {\n if (name) {\n setName((prev) => prev.trim());\n }\n\n if (!validationConfig?.name.test(name) || name === \"\" || name.length > 50 || name.length < 1) {\n throw JSON.stringify({\n type: \"error\",\n message: t(\"CORE_COMMON_PROFILE_NAME_INVALID\"),\n });\n }\n\n if (userType === \"employee\" && !validationConfig?.mobileNumber.test(mobileNumber)) {\n throw JSON.stringify({\n type: \"error\",\n message: t(\"CORE_COMMON_PROFILE_MOBILE_NUMBER_INVALID\"),\n });\n }\n\n if (email.length && !(email.includes(\"@\") && email.includes(\".\"))) {\n throw JSON.stringify({\n type: \"error\",\n message: t(\"CORE_COMMON_PROFILE_EMAIL_INVALID\"),\n });\n }\n\n const trimmedCurrentPassword = currentPassword.trim();\n const trimmedNewPassword = newPassword.trim();\n const trimmedConfirmPassword = confirmPassword.trim();\n\n setCurrentPassword(trimmedCurrentPassword);\n setNewPassword(trimmedNewPassword);\n setConfirmPassword(trimmedConfirmPassword);\n\n if (changepassword && (trimmedCurrentPassword && trimmedNewPassword && trimmedConfirmPassword)) {\n if (trimmedNewPassword !== trimmedConfirmPassword) {\n throw JSON.stringify({\n type: \"error\",\n message: t(\"CORE_COMMON_PROFILE_PASSWORD_MISMATCH\"),\n });\n }\n\n if (!(trimmedCurrentPassword.length && trimmedNewPassword.length && trimmedConfirmPassword.length)) {\n throw JSON.stringify({\n type: \"error\",\n message: t(\"CORE_COMMON_PROFILE_PASSWORD_INVALID\"),\n });\n }\n\n if (!validationConfig?.password.test(trimmedNewPassword) && !validationConfig?.password.test(trimmedConfirmPassword)) {\n throw JSON.stringify({\n type: \"error\",\n message: t(\"CORE_COMMON_PROFILE_PASSWORD_INVALID\"),\n });\n }\n }\n\n let responseInfo;\n\n // Build Individual object dynamically\n const individualPayload = {\n ...userDetails,\n tenantId: tenant,\n name: {\n givenName: name.trim(),\n familyName: userDetails?.name?.familyName,\n otherNames: userDetails?.name?.otherNames,\n },\n mobileNumber: mobileNumber,\n isDeleted: false,\n isSystemUser: true,\n isSystemUserActive: true,\n };\n\n // Only add optional fields if they have values\n if (gender?.value) {\n individualPayload.gender = gender.value;\n }\n\n if (email) {\n individualPayload.email = email;\n }\n\n if (profilePic) {\n individualPayload.photo = profilePic;\n }\n\n const response = await Digit.CustomService.getResponse({\n url: `${individualServicePath}/v1/_update`,\n useCache: false,\n method: \"POST\",\n userService: true,\n body: {\n Individual: individualPayload,\n },\n });\n responseInfo = response?.responseInfo;\n \n\n\n if (responseInfo && responseInfo.status === \"200\") {\n const user = Digit.UserService.getUser();\n\n if (user) {\n Digit.UserService.setUser({\n ...user,\n info: {\n ...user.info,\n name,\n mobileNumber,\n emailId: email,\n permanentCity: city,\n },\n });\n }\n }\n\n if (currentPassword.length && newPassword.length && confirmPassword.length) {\n const requestData = {\n existingPassword: currentPassword,\n newPassword: newPassword,\n tenantId: tenant,\n type: \"EMPLOYEE\",\n username: userInfo?.userName,\n confirmPassword: confirmPassword,\n };\n\n if (newPassword === confirmPassword) {\n try {\n const res = await Digit.UserService.changePassword(requestData, tenant);\n\n const { responseInfo: changePasswordResponseInfo } = res;\n if (changePasswordResponseInfo?.status && changePasswordResponseInfo.status === \"200\") {\n showToast(\"success\", t(\"CORE_COMMON_PROFILE_UPDATE_SUCCESS_WITH_PASSWORD\"), 5000);\n setTimeout(() => Digit.UserService.logout(), 2000);\n } else {\n throw \"\";\n }\n } catch (error) {\n throw JSON.stringify({\n type: \"error\",\n message: error.Errors?.at(0)?.description ? error.Errors.at(0).description : \"CORE_COMMON_PROFILE_UPDATE_ERROR_WITH_PASSWORD\",\n });\n }\n } else {\n throw JSON.stringify({\n type: \"error\",\n message: \"CORE_COMMON_PROFILE_ERROR_PASSWORD_NOT_MATCH\",\n });\n }\n } else if (responseInfo?.status && responseInfo.status === \"200\") {\n showToast(\"success\", t(\"CORE_COMMON_PROFILE_UPDATE_SUCCESS\"), 5000);\n }\n } catch (error) {\n let errorObj;\n try {\n errorObj = JSON.parse(error);\n } catch (e) {\n errorObj = {\n type: \"error\",\n message: error?.response?.data?.Errors?.[0]?.description || \"CORE_COMMON_PROFILE_UPDATE_ERROR\",\n };\n }\n showToast(errorObj.type, t(errorObj.message), 5000);\n }\n\n setLoading(false);\n };\n\n let menu = [];\n const { data: Menu } = Digit.Hooks.useGenderMDMS(stateId, \"common-masters\", \"GenderType\");\n Menu &&\n Menu.map((genderDetails) => {\n menu.push({\n i18nKey: `PT_COMMON_GENDER_${genderDetails.code}`,\n code: `${genderDetails.code}`,\n value: `${genderDetails.code}`,\n });\n });\n\n const setFileStoreId = async (fileStoreId) => {\n setProfilePic(fileStoreId);\n\n const thumbnails = fileStoreId ? await getThumbnails([fileStoreId], stateId) : null;\n\n setProfileImg(thumbnails?.thumbs[0]);\n\n closeFileUploadDrawer();\n };\n\n const getThumbnails = async (ids, tenantId) => {\n const res = await Digit.UploadServices.Filefetch(ids, tenantId);\n if (res.data.fileStoreIds && res.data.fileStoreIds.length !== 0) {\n return {\n thumbs: res.data.fileStoreIds.map((o) => o.url.split(\",\")[3]),\n images: res.data.fileStoreIds.map((o) => Digit.Utils.getFileUrl(o.url)),\n };\n } else {\n return null;\n }\n };\n\n if (loading || isValidationConfigLoading) return <Loader></Loader>;\n\n // ... (RENDER JSX FROM NEW FILE) ...\n return (\n <div className={`user-profile ${userType === \"citizen\" ? \"citizen\" : \"employee\"}`}>\n <section style={{ margin: userType === \"citizen\" || isMobile ? \"8px\" : \"0px\" }}>\n {userType === \"citizen\" || isMobile ? (\n <BackLink onClick={() => navigate(-1)} />\n ) : (\n <BreadCrumb\n style={{ marginTop: \"0rem\", marginBottom: \"1.5rem\" }}\n crumbs={[\n {\n internalLink: isMultiRootTenant ? `/${window?.contextPath}/employee/sandbox/landing` : `/${window?.contextPath}/employee`,\n content: t(\"ES_COMMON_HOME\"),\n show: true,\n },\n {\n internalLink: `/${window?.contextPath}/employee/user/profile`,\n content: t(\"ES_COMMON_PAGE_1\"),\n show: url.includes(\"/user/profile\"),\n },\n ]}\n />\n )}\n </section>\n <div\n style={{\n display: \"flex\",\n flex: 1,\n flexDirection: windowWidth < 768 || userType === \"citizen\" ? \"column\" : \"row\",\n margin: userType === \"citizen\" ? \"8px\" : \"0px\",\n gap: userType === \"citizen\" ? \"\" : \"0 24px\",\n boxShadow: userType === \"citizen\" ? \"1px 1px 4px 0px rgba(0,0,0,0.2)\" : \"\",\n background: userType === \"citizen\" ? \"white\" : \"\",\n borderRadius: userType === \"citizen\" ? \"4px\" : \"\",\n maxWidth: userType === \"citizen\" ? \"960px\" : \"\",\n }}\n >\n <section\n style={{\n position: \"relative\",\n display: \"flex\",\n flex: userType === \"citizen\" ? 1 : 2.5,\n justifyContent: \"center\",\n alignItems: \"center\",\n maxWidth: \"100%\",\n // height: \"376px\",\n borderRadius: \"4px\",\n boxShadow: userType === \"citizen\" ? \"\" : \"1px 1px 4px 0px rgba(0,0,0,0.2)\",\n border: `${userType === \"citizen\" ? \"8px\" : \"24px\"} solid #fff`,\n background: \"#EEEEEE\",\n padding: userType === \"citizen\" ? \"8px\" : \"16px\",\n }}\n >\n <div\n style={{\n position: \"relative\",\n height: userType === \"citizen\" ? \"114px\" : \"150px\",\n width: userType === \"citizen\" ? \"114px\" : \"150px\",\n margin: \"16px\",\n }}\n >\n <ImageComponent\n style={{\n margin: \"auto\",\n borderRadius: \"300px\",\n justifyContent: \"center\",\n height: \"100%\",\n width: \"100%\",\n }}\n src={!profileImg || profileImg === \"\" ? defaultImage : profileImg}\n alt=\"Profile Image\"\n />\n\n <button\n style={{\n position: \"absolute\",\n left: \"50%\",\n bottom: \"-24px\",\n transform: \"translateX(-50%)\",\n }}\n onClick={onClickAddPic}\n >\n <CameraIcon />\n </button>\n </div>\n </section>\n <section\n style={{\n display: \"flex\",\n flexDirection: \"column\",\n flex: userType === \"citizen\" ? 1 : 7.5,\n width: \"100%\",\n borderRadius: \"4px\",\n height: \"fit-content\",\n boxShadow: userType === \"citizen\" ? \"\" : \"1px 1px 4px 0px rgba(0,0,0,0.2)\",\n background: \"white\",\n padding: userType === \"citizen\" ? \"8px\" : \"24px\",\n paddingBottom: \"20px\",\n }}\n >\n {userType === \"citizen\" ? (\n <React.Fragment>\n <LabelFieldPair>\n <CardLabel className=\"user-profile\" style={editScreen ? { color: \"#B1B4B6\" } : {}}>\n {`${t(\"CORE_COMMON_PROFILE_NAME\")}`}*\n </CardLabel>\n <div style={{ width: \"100%\", maxWidth: \"960px\" }}>\n <TextInput\n t={t}\n style={{ width: \"100%\" }}\n type={\"text\"}\n isMandatory={false}\n name=\"name\"\n value={name}\n onChange={(e) => setUserName(e.target.value)}\n {...(validation = {\n isRequired: true,\n pattern:\n mdmsValidationData?.UserProfileValidationConfig?.[0]?.name || defaultValidationConfig?.UserProfileValidationConfig?.[0]?.name,\n type: \"tel\",\n title: t(\"CORE_COMMON_PROFILE_NAME_ERROR_MESSAGE\"),\n })}\n disable={editScreen}\n />\n {/* {errors?.userName && (\n <CardLabelError>\n {\" \"}\n {t(errors?.userName?.message)}{\" \"}\n </CardLabelError>\n )} */}\n {errors?.userName && (\n <ErrorMessage\n message={t(errors?.userName?.message)}\n truncateMessage={true}\n maxLength={256}\n className=\"\"\n wrapperClassName=\"\"\n showIcon={true}\n />\n )}\n </div>\n </LabelFieldPair>\n\n <LabelFieldPair>\n <CardLabel className=\"user-profile\" style={editScreen ? { color: \"#B1B4B6\" } : {}}>{`${t(\"CORE_COMMON_PROFILE_GENDER\")}`}</CardLabel>\n <Dropdown\n style={{ width: \"100%\", fontSize: \"1rem\" }}\n className=\"form-field profileDropdown\"\n selected={gender?.length === 1 ? gender[0] : gender}\n disable={gender?.length === 1 || editScreen}\n option={menu}\n select={setGenderName}\n value={gender}\n optionKey=\"code\"\n t={t}\n name=\"gender\"\n />\n </LabelFieldPair>\n\n <LabelFieldPair>\n <CardLabel className=\"user-profile\" style={editScreen ? { color: \"#B1B4B6\" } : {}}>{`${t(\"CORE_COMMON_PROFILE_EMAIL\")}`}</CardLabel>\n <div style={{ width: \"100%\" }}>\n <TextInput\n t={t}\n style={{ width: \"100%\" }}\n type={\"email\"}\n isMandatory={false}\n optionKey=\"i18nKey\"\n name=\"email\"\n value={email}\n onChange={(e) => setUserEmailAddress(e.target.value)}\n disabled={editScreen}\n />\n {errors?.emailAddress && (\n <ErrorMessage\n message={t(errors?.emailAddress?.message)}\n truncateMessage={true}\n maxLength={256}\n className=\"\"\n wrapperClassName=\"\"\n showIcon={true}\n />\n )}\n </div>\n </LabelFieldPair>\n\n <button\n onClick={updateProfile}\n style={{\n marginTop: \"24px\",\n backgroundColor: \"#c84c0e\",\n width: \"100%\",\n height: \"40px\",\n color: \"white\",\n\n maxWidth: isMobile ? \"100%\" : \"240px\",\n borderBottom: \"1px solid black\",\n }}\n >\n {t(\"CORE_COMMON_SAVE\")}\n </button>\n </React.Fragment>\n ) : (\n <React.Fragment>\n <LabelFieldPair style={{ display: \"flex\" }}>\n <CardLabel className=\"profile-label-margin\" style={editScreen ? { color: \"#B1B4B6\", width: \"300px\" } : { width: \"300px\" }}>\n {`${t(\"CORE_COMMON_PROFILE_NAME\")}`}*\n </CardLabel>\n <div style={{ width: \"100%\" }}>\n <TextInput\n t={t}\n type={\"text\"}\n isMandatory={false}\n name=\"name\"\n value={name}\n onChange={(e) => setUserName(e.target.value)}\n placeholder=\"Enter Your Name\"\n {...(validation = {\n isRequired: true,\n pattern:\n mdmsValidationData?.UserProfileValidationConfig?.[0]?.name || defaultValidationConfig?.UserProfileValidationConfig?.[0]?.name,\n type: \"text\",\n title: t(\"CORE_COMMON_PROFILE_NAME_ERROR_MESSAGE\"),\n })}\n disabled={editScreen}\n />\n {errors?.userName && (\n <ErrorMessage\n message={t(errors?.userName?.message)}\n truncateMessage={true}\n maxLength={256}\n className=\"\"\n wrapperClassName=\"\"\n showIcon={true}\n />\n )}\n </div>\n </LabelFieldPair>\n\n <LabelFieldPair style={{ display: \"flex\" }}>\n <CardLabel className=\"profile-label-margin\" style={editScreen ? { color: \"#B1B4B6\", width: \"300px\" } : { width: \"300px\" }}>{`${t(\n \"CORE_COMMON_PROFILE_GENDER\"\n )}`}</CardLabel>\n <div style={{ width: \"100%\" }}>\n <Dropdown\n className=\"profileDropdown\"\n selected={gender?.length === 1 ? gender[0] : gender}\n disable={gender?.length === 1 || editScreen}\n option={menu}\n select={setGenderName}\n value={gender}\n optionKey=\"code\"\n t={t}\n name=\"gender\"\n />\n </div>\n </LabelFieldPair>\n\n <LabelFieldPair style={{ display: \"flex\" }}>\n <CardLabel className=\"profile-label-margin\" style={editScreen ? { color: \"#B1B4B6\", width: \"300px\" } : { width: \"300px\" }}>{`${t(\n \"CORE_COMMON_PROFILE_CITY\"\n )}`}</CardLabel>\n <div style={{ width: \"100%\" }}>\n <TextInput\n t={t}\n type={\"text\"}\n isMandatory={false}\n name=\"city\"\n value={t(Digit.Utils.locale.getTransformedLocale(`TENANT_TENANTS_${tenant}`))}\n onChange={(e) => setCity(e.target.value)}\n placeholder=\"Enter Your City Name\"\n {...(validation = {\n isRequired: true,\n // pattern: \"^[a-zA-Z-.`' ]*$\",\n type: \"text\",\n title: t(\"CORE_COMMON_PROFILE_CITY_ERROR_MESSAGE\"),\n })}\n disabled={true}\n />\n <ErrorMessage />\n </div>\n </LabelFieldPair>\n\n <LabelFieldPair style={{ display: \"flex\" }}>\n <CardLabel className=\"profile-label-margin\" style={{ width: \"300px\" }}>{`${t(\"CORE_COMMON_PROFILE_MOBILE_NUMBER\")}*`}</CardLabel>\n <div style={{ width: \"100%\" }}>\n <MobileNumber\n value={mobileNumber}\n style={{ width: \"100%\" }}\n name=\"mobileNumber\"\n placeholder=\"Enter a valid Mobile No.\"\n onChange={(value) => setUserMobileNumber(value)}\n disable={Digit.Utils.getMultiRootTenant() ? false : true}\n {...{\n required: true,\n pattern:\n mdmsValidationData?.UserProfileValidationConfig?.[0]?.mobileNumber ||\n defaultValidationConfig?.UserProfileValidationConfig?.[0]?.mobileNumber,\n type: \"tel\",\n title: t(\"CORE_COMMON_PROFILE_MOBILE_NUMBER_INVALID\"),\n }}\n />\n {errors?.mobileNumber && (\n <ErrorMessage\n message={t(errors?.mobileNumber?.message)}\n truncateMessage={true}\n maxLength={256}\n className=\"\"\n wrapperClassName=\"\"\n showIcon={true}\n />\n )}\n </div>\n </LabelFieldPair>\n\n <LabelFieldPair style={{ display: \"flex\" }}>\n <CardLabel className=\"profile-label-margin\" style={editScreen ? { color: \"#B1B4B6\", width: \"300px\" } : { width: \"300px\" }}>{`${t(\n \"CORE_COMMON_PROFILE_EMAIL\"\n )}`}</CardLabel>\n <div style={{ width: \"100%\" }}>\n <TextInput\n t={t}\n type={\"email\"}\n isMandatory={false}\n placeholder={t(\"EMAIL_VALIDATION\")}\n optionKey=\"i18nKey\"\n name=\"email\"\n value={email}\n onChange={(e) => setUserEmailAddress(e.target.value)}\n disabled={Digit.Utils.getMultiRootTenant() ? true : editScreen}\n />\n {errors?.emailAddress && (\n <ErrorMessage\n message={t(errors?.emailAddress?.message)}\n truncateMessage={true}\n maxLength={256}\n className=\"\"\n wrapperClassName=\"\"\n showIcon={true}\n />\n )}\n </div>\n </LabelFieldPair>\n\n <LabelFieldPair>\n <div style={{ width: \"100%\" }}>\n {changepassword == false && !Digit.Utils.getOTPBasedLogin() ? (\n <Button\n label={t(\"CORE_COMMON_CHANGE_PASSWORD\")}\n variation={\"teritiary\"}\n onClick={TogleforPassword}\n style={{ paddingLeft: \"20rem\" }}\n ></Button>\n ) : null}\n {changepassword ? (\n <div style={{ marginTop: \"10px\" }}>\n <LabelFieldPair style={{ display: \"flex\" }}>\n <CardLabel\n className=\"profile-label-margin\"\n style={editScreen ? { color: \"#B1B4B6\", width: \"300px\" } : { width: \"300px\" }}\n >{`${t(\"CORE_COMMON_PROFILE_CURRENT_PASSWORD\")}`}</CardLabel>\n <div style={{ width: \"100%\" }}>\n <TextInput\n t={t}\n type={\"password\"}\n isMandatory={false}\n name=\"name\"\n pattern={\n mdmsValidationData?.UserProfileValidationConfig?.[0]?.password ||\n defaultValidationConfig?.UserProfileValidationConfig?.[0]?.password\n }\n onChange={(e) => setUserCurrentPassword(e?.target?.value)}\n disabled={editScreen}\n />\n {errors?.currentPassword && (\n <ErrorMessage\n message={t(errors?.currentPassword?.message)}\n truncateMessage={true}\n maxLength={256}\n className=\"\"\n wrapperClassName=\"\"\n showIcon={true}\n />\n )}\n </div>\n </LabelFieldPair>\n\n <LabelFieldPair style={{ display: \"flex\" }}>\n <CardLabel\n className=\"profile-label-margin\"\n style={editScreen ? { color: \"#B1B4B6\", width: \"300px\" } : { width: \"300px\" }}\n >{`${t(\"CORE_COMMON_PROFILE_NEW_PASSWORD\")}`}</CardLabel>\n <div style={{ width: \"100%\" }}>\n <TextInput\n t={t}\n type={\"password\"}\n isMandatory={false}\n name=\"name\"\n pattern={\n mdmsValidationData?.UserProfileValidationConfig?.[0]?.password ||\n defaultValidationConfig?.UserProfileValidationConfig?.[0]?.password\n }\n onChange={(e) => setUserNewPassword(e?.target?.value)}\n disabled={editScreen}\n />\n {errors?.newPassword && (\n <ErrorMessage\n message={t(errors?.newPassword?.message)}\n truncateMessage={true}\n maxLength={256}\n className=\"\"\n wrapperClassName=\"\"\n showIcon={true}\n />\n )}\n </div>\n </LabelFieldPair>\n\n <LabelFieldPair style={{ display: \"flex\" }}>\n <CardLabel\n className=\"profile-label-margin\"\n style={editScreen ? { color: \"#B1B4B6\", width: \"300px\" } : { width: \"300px\" }}\n >{`${t(\"CORE_COMMON_PROFILE_CONFIRM_PASSWORD\")}`}</CardLabel>\n <div style={{ width: \"100%\" }}>\n <TextInput\n t={t}\n type={\"password\"}\n isMandatory={false}\n name=\"name\"\n pattern={\n mdmsValidationData?.UserProfileValidationConfig?.[0]?.password ||\n defaultValidationConfig?.UserProfileValidationConfig?.[0]?.password\n }\n onChange={(e) => setUserConfirmPassword(e?.target?.value)}\n disabled={editScreen}\n />\n {errors?.confirmPassword && (\n <ErrorMessage\n message={t(errors?.confirmPassword?.message)}\n truncateMessage={true}\n maxLength={256}\n className=\"\"\n wrapperClassName=\"\"\n showIcon={true}\n />\n )}\n </div>\n </LabelFieldPair>\n </div>\n ) : (\n \"\"\n )}\n </div>\n </LabelFieldPair>\n {userType === \"employee\" && isMobile ? (\n <button\n onClick={updateProfile}\n style={{\n marginTop: \"24px\",\n backgroundColor: \"#c84c0e\",\n width: \"100%\",\n height: \"40px\",\n color: \"white\",\n maxWidth: isMobile ? \"100%\" : \"240px\",\n borderBottom: \"1px solid black\",\n fontWeight: \"700\",\n fontSize: \"17px\",\n }}\n >\n {t(\"CORE_COMMON_SAVE\")}\n </button>\n ) : null}\n </React.Fragment>\n )}\n </section>\n </div>\n\n {userType === \"employee\" && !isMobile ? (\n <Footer actionFields={[<SubmitBar t={t} label={t(\"CORE_COMMON_SAVE\")} onSubmit={updateProfile} />]} className=\"\" setactionFieldsToRight />\n ) : null}\n {toast && (\n <Toast\n type={toast.key}\n label={t(toast.key === \"success\" ? `CORE_COMMON_PROFILE_UPDATE_SUCCESS` : toast.action)}\n onClose={() => setToast(null)}\n style={{ maxWidth: \"670px\" }}\n />\n )}\n\n {openUploadSlide == true ? (\n <UploadDrawer\n setProfilePic={setFileStoreId}\n closeDrawer={closeFileUploadDrawer}\n userType={userType}\n removeProfilePic={removeProfilePic}\n showToast={showToast}\n />\n ) : (\n \"\"\n )}\n </div>\n );\n};\n\nexport default IndividualUserProfile;","import {\n SVG,\n Dropdown,\n LabelFieldPair,\n MobileNumber,\n TextInput,\n CardLabelError,\n BackLink,\n Loader,\n Button,\n SubmitBar,\n Footer,\n CardLabel,\n BreadCrumb,\n Toast,\n ErrorMessage,\n} from \"@egovernments/digit-ui-components\";\nimport { CameraIcon } from \"@egovernments/digit-ui-react-components\";\nimport React, { useEffect, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useNavigate } from \"react-router-dom\";\nimport UploadDrawer from \"./ImageUpload/UploadDrawer\";\nimport ImageComponent from \"../../../components/ImageComponent\";\nimport IndividualUserProfile from \"./IndividualUserProfile\";\n\nconst DEFAULT_TENANT=Digit?.ULBService?.getStateId?.();\n\nconst defaultImage =\n \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAO4AAADUCAMAAACs0e/bAAAAM1BMVEXK0eL\" +\n \"/\" +\n \"/\" +\n \"/\" +\n \"/Dy97GzuD4+fvL0uPg5O7T2efb4OvR1+Xr7vTk5/Df4+37/P3v8fbO1eTt8PUsnq5FAAAGqElEQVR4nO2d25ajIBBFCajgvf/\" +\n \"/a0eMyZgEjcI5xgt7Hmatme507UaxuJXidiDqjmSgeVIMlB1ZR1WZAf2gbdu0QwixSYzjOJPmHurfEGEfY9XzjNGG9whQCeVAuv5xQEySLtR9hPuIcwj0EeroN5m3D1IbsbgHK0esiQ9MKs\" +\n \"qXVr8Hm/a/Pulk6wihpCIXBw3dh7bTvRBt9+dC5NfS1VH3xETdM3MxXRN1T0zUPTNR98xcS1dlV9NNfx3DhkTdM6PKqHteVBF1z0vU5f0sKdpc2zWLKutXrjJjdLvpesRmukqYonauPhXpds\" +\n \"Lb6CppmpnltsYIuY2yavi6Mi2/rzAWm1zUfF0limVLqkZyA+mDYevKBS37aGC+L1lX5e7uyU1Cv565uiua9k5LFqbqqrnu2I3m+jJ11ZoLeRtfmdB0Uw/ZDsP0VTxdn7a1VERfmq7Xl\" +\n \"Xyn5D2QWLoq8bZlPoBJumphJjVBw/Ll6CoTZGsTDs4NrGqKbqBth8ZHJUi6cn168QmleSm6GmB7Kxm+6obXlf7PoDHosCwM3QpiS2legi6ocSl3L0G3BdneDDgwQdENfeY+SfDJBkF37Z\" +\n \"B+GvwzA6/rMaafAn8143VhPZWdjMWG1oHXhdnemgPoAvLlB/iZyRTfVeF06wPoQhJmlm4bdcOAZRlRN5gcPc5SoPEQR1fDdbOo6wn+uYvXxY0QCLom6gYROKH+Aj5nvphuFXWDiLpRdxl\" +\n \"/19LFT95k6CHCrnW7pCDqBn1i1PUFvii2c11oZOJ6usWeH0RRNzC4Zs+6FTi2nevCVwCjbugnXklX5fkfTldL8PEilUB1kfNyN1u9MME2sATr4lbuB7AjfLAuvsRm1A0g6gYRdcPAjvBlje\" +\n \"2Z8brI8OC68AcRdlCkwLohx2mcZMjw9q+LzarQurjtnwPYAydX08WecECO/u6Ad0GBdYG7jO5gB4Ap+PwKcA9ZT43dn4/W9TyiPAn4OAJaF7h3uwe8StSCddFdM3jqFa2LvnnB5zzhuuBBAj\" +\n \"Y4gi50cg694gnXhTYvfMdrjtcFZhrwE9r41gUem8IXWMC3LrBzxh+a0gRd1N1LOK7M0IUUGuggvEmHoStA2/MJh7MpupiDU4TzjhxdzLAoO4ouZvqVURbFMHQlZD6SUeWHoguZsSLUGegreh\" +\n \"A+FZFowPdUWTi6iMoZlIpGGUUXkDbjj/9ZOLqAQS/+GIKl5BQOCn/ycqpzkXSDm5dU7ZWkG7wUyGlcmm7g5Ux56AqirgoaJ7BeokPTDbp9CbVunjFxPrl7+HqnkrSq1Da7JX20f3dV8yJi6v\" +\n \"oO81mX8vV0mx3qUsZCPRfTlVRdz2EvdufYGDvNQvvwqHtmXd+a1ITinwNcXc+lT6JuzdT1XDyBn/x7wtX1HCQQdW9MXc8xArGrirowfLeUEbMqqq6f7TF1lfRdOuGNiGi6SpT+WxY06xUfNN\" +\n \"2wBfyE9I4tlm7w5hvOPDNJN3yNiLMipji6gE3chKhouoCtN5x3QlF0EZt8OW/8ougitqJQlk1aii7iFC9l0MvRReyao7xNjKML2Z/PuHlzhi5mFxljiZeiC9rPTEisNEMX9KYAwo5Xhi7qaA\" +\n \"3hamboYm7dG+NVrXhdaYDv5zFaQZsYrCtbbAGnjkQDX2+J1FXCwOsqWOpKoIQNTFdqYBWydxqNqUoG0pVpCS+H8kaJaGKErlIaXj7CRRE+gRWuKwW9YZ80oVOUgbpdT0zpnSZJTIiwCtJVelv\" +\n \"Xntr4P5j6BWfPb5Wcx84C4cq3hb11lco2u2Mdwp6XdJ/Ne3wb8DWdfiRenZaXrhLwOj4e+GQeHroy3YOspS7TlU28Wle2m2QUS0mqdcbrdNW+ZHsSsyK7tBfm0q/dWcv+Z3mytVx3t7KWulq\" +\n \"Ue6ilunu8jF8pFwgv1FXp3mUt35OtRbr7eM4u4Gs6vUBXgeuHc5kfE/cbvWZtkROLm1DMtLCy80tzsu2PRj0hTI8fvrQuvsjlJkyutszq+m423wHaLTyniy/XuiGZ84LuT+m5ZfNfRxyGs7L\" +\n \"XZOvia7VujatUwVTrIt+Q/Csc7Tuhe+BOakT10b4TuoiiJjvgU9emTO42PwEfBa+cuodKkuf42DXr1D3JpXz73Hnn0j10evHKe+nufgfUm+7B84sX9FfdEzXux2DBpWuKokkCqN/5pa/8pmvn\" +\n \"L+RGKCddCGmatiPyPB/+ekO/M/q/7uvbt22kTt3zEnXPzCV13T3Gel4/6NduDu66xRvlPNkM1RjjxUdv+4WhGx6TftD19Q/dfzpwcHO+rE3fAAAAAElFTkSuQmCC\";\n\nconst defaultValidationConfig = {\n tenantId: `${DEFAULT_TENANT}`,\n UserProfileValidationConfig: [\n {\n name: \"/^[a-zA-Z ]+$/i\",\n mobileNumber: \"/^[6-9]{1}[0-9]{9}$/\",\n password: \"/^([a-zA-Z0-9@#$%]{8,15})$/i\",\n },\n ],\n};\n\nconst UserProfile = ({ stateCode, userType, cityDetails }) => {\n\n // Check if individual should be used for login\n const useAnIndividual = window?.globalConfigs?.getConfig(\"USE_INDIVIDUAL_MODEL\");\n const individualServicePath = window?.globalConfigs?.getConfig(\"INDIVIDUAL_SERVICE_CONTEXT_PATH\");\n\n // If useAnIndividual exists, use IndividualLogin component\n if (useAnIndividual && individualServicePath) {\n return <IndividualUserProfile stateCode={stateCode} userType={userType} cityDetails={cityDetails} />;\n }\n \n const navigate = useNavigate();\n const { t } = useTranslation();\n const url = window.location.href;\n const stateId = Digit.ULBService.getStateId();\n const tenant = Digit.ULBService.getCurrentTenantId();\n const userInfo = Digit.UserService.getUser()?.info || {};\n const [userDetails, setUserDetails] = useState(null);\n const [name, setName] = useState(userInfo?.name ? userInfo.name : \"\");\n const [email, setEmail] = useState(userInfo?.emailId ? userInfo.emailId : \"\");\n const [gender, setGender] = useState(userDetails?.gender);\n const [city, setCity] = useState(userInfo?.permanentCity ? userInfo.permanentCity : cityDetails.name);\n const [mobileNumber, setMobileNo] = useState(userInfo?.mobileNumber ? userInfo.mobileNumber : \"\");\n const [profilePic, setProfilePic] = useState(null);\n const [profileImg, setProfileImg] = useState(\"\");\n const [openUploadSlide, setOpenUploadSide] = useState(false);\n const [changepassword, setChangepassword] = useState(false);\n const [currentPassword, setCurrentPassword] = useState(\"\");\n const [newPassword, setNewPassword] = useState(\"\");\n const [confirmPassword, setConfirmPassword] = useState(\"\");\n const [toast, setToast] = useState(null);\n const [loading, setLoading] = useState(false);\n const [windowWidth, setWindowWidth] = React.useState(window.innerWidth);\n const [errors, setErrors] = React.useState({});\n const isMobile = window.Digit.Utils.browser.isMobile();\n const isMultiRootTenant = Digit.Utils.getMultiRootTenant();\n\n const mapConfigToRegExp = (config) => {\n return (\n config?.UserProfileValidationConfig?.[0] &&\n Object.entries(config?.UserProfileValidationConfig[0]).reduce((acc, [key, value]) => {\n if (typeof value === \"string\") {\n try {\n // Checking if value looks like a regex (starts with \"/\" and ends with \"/flags\")\n if (value.startsWith(\"/\") && value.lastIndexOf(\"/\") > 0) {\n const lastSlashIndex = value.lastIndexOf(\"/\");\n const pattern = value.slice(1, lastSlashIndex); // Extracting regex pattern\n const flags = value.slice(lastSlashIndex + 1); // Extracting regex flags\n \n acc[key] = new RegExp(pattern, flags); // Converting properly\n } else {\n acc[key] = new RegExp(value); // Treating it as a normal regex pattern (no flags)\n }\n } catch (error) {\n console.error(`Error parsing regex for key \"${key}\":`, error);\n acc[key] = value; // Keeping as string if invalid regex\n }\n } else {\n acc[key] = value; // Keeping non-string values as it is\n }\n return acc;\n }, {})\n );\n };\n\n const [validationConfig, setValidationConfig] = useState(mapConfigToRegExp(defaultValidationConfig) || {});\n\n const { data: mdmsValidationData, isValidationConfigLoading } = Digit.Hooks.useCustomMDMS(\n stateCode,\n \"commonUiConfig\",\n [{ name: \"UserProfileValidationConfig\" }],\n {\n select: (data) => {\n return data?.commonUiConfig;\n },\n }\n );\n\n useEffect(() => {\n if (mdmsValidationData && mdmsValidationData?.UserProfileValidationConfig?.[0]) {\n const updatedValidationConfig = mapConfigToRegExp(mdmsValidationData);\n setValidationConfig(updatedValidationConfig);\n }\n }, [mdmsValidationData]);\n\n const getUserInfo = async () => {\n const uuid = userInfo?.uuid;\n if (uuid) {\n const usersResponse = await Digit.UserService.userSearch(tenant, { uuid: [uuid] }, {});\n usersResponse && usersResponse.user && usersResponse.user.length && setUserDetails(usersResponse.user[0]);\n }\n };\n\n React.useEffect(() => {\n const handleResize = () => setWindowWidth(window.innerWidth);\n window.addEventListener(\"resize\", handleResize);\n return () => {\n window.removeEventListener(\"resize\", handleResize);\n };\n }, []);\n\n useEffect(() => {\n setLoading(true);\n\n getUserInfo();\n\n setGender({\n i18nKey: undefined,\n code: userDetails?.gender,\n value: userDetails?.gender,\n });\n\n const thumbs = userDetails?.photo?.split(\",\");\n setProfileImg(thumbs?.at(0));\n\n setLoading(false);\n }, [userDetails !== null]);\n\n let validation = {};\n const editScreen = false; // To-do: Deubug and make me dynamic or remove if not needed\n const onClickAddPic = () => setOpenUploadSide(!openUploadSlide);\n const TogleforPassword = () => setChangepassword(!changepassword);\n const setGenderName = (value) => setGender(value);\n const closeFileUploadDrawer = () => setOpenUploadSide(false);\n\n const setUserName = (value) => {\n setName(value);\n\n if (!validationConfig?.name?.test(value) || value.length === 0 || value.length > 50) {\n setErrors({\n ...errors,\n userName: {\n type: \"pattern\",\n message: \"CORE_COMMON_PROFILE_NAME_INVALID\",\n },\n });\n } else {\n setErrors({ ...errors, userName: null });\n }\n };\n\n const setUserEmailAddress = (value) => {\n if (userInfo?.userName !== value) {\n setEmail(value);\n\n if (value.length && !(value.includes(\"@\") && value.includes(\".\"))) {\n setErrors({\n ...errors,\n emailAddress: {\n type: \"pattern\",\n message: \"CORE_COMMON_PROFILE_EMAIL_INVALID\",\n },\n });\n } else {\n setErrors({ ...errors, emailAddress: null });\n }\n } else {\n setErrors({ ...errors, emailAddress: null });\n }\n };\n\n const setUserMobileNumber = (value) => {\n setMobileNo(value);\n\n if (userType === \"employee\" && !validationConfig?.mobileNumber?.test(value)) {\n setErrors({\n ...errors,\n mobileNumber: {\n type: \"pattern\",\n message: \"CORE_COMMON_PROFILE_MOBILE_NUMBER_INVALID\",\n },\n });\n } else {\n setErrors({ ...errors, mobileNumber: null });\n }\n };\n\n const setUserCurrentPassword = (value) => {\n if (!validationConfig?.password.test(value)) {\n setErrors({\n ...errors,\n currentPassword: {\n type: \"pattern\",\n message: \"CORE_COMMON_PROFILE_PASSWORD_INVALID\",\n },\n });\n } else {\n setErrors({ ...errors, currentPassword: null });\n }\n };\n\n const setUserNewPassword = (value) => {\n setNewPassword(value);\n if (!validationConfig?.password.test(value)) {\n setErrors({\n ...errors,\n newPassword: {\n type: \"pattern\",\n message: \"CORE_COMMON_PROFILE_PASSWORD_INVALID\",\n },\n });\n } else {\n setErrors({ ...errors, newPassword: null });\n }\n };\n\n const setUserConfirmPassword = (value) => {\n setConfirmPassword(value);\n\n if (!validationConfig?.password.test(value)) {\n setErrors({\n ...errors,\n confirmPassword: {\n type: \"pattern\",\n message: \"CORE_COMMON_PROFILE_PASSWORD_INVALID\",\n },\n });\n } else {\n setErrors({ ...errors, confirmPassword: null });\n }\n };\n\n const removeProfilePic = () => {\n setProfilePic(null);\n setProfileImg(null);\n };\n\n const showToast = (type, message, duration = 5000) => {\n setToast({ key: type, action: message });\n setTimeout(() => {\n setToast(null);\n }, duration);\n };\n\n const updateProfile = async () => {\n setLoading(true);\n try {\n const requestData = {\n ...userInfo,\n name,\n gender: gender?.value,\n emailId: email,\n photo: profilePic,\n };\n\n if(name){\n setName((prev)=>prev.trim());\n }\n\n if (!validationConfig?.name.test(name) || name === \"\" || name.length > 50 || name.length < 1) {\n throw JSON.stringify({\n type: \"error\",\n message: t(\"CORE_COMMON_PROFILE_NAME_INVALID\"),\n });\n }\n\n if (userType === \"employee\" && !validationConfig?.mobileNumber.test(mobileNumber)) {\n throw JSON.stringify({\n type: \"error\",\n message: t(\"CORE_COMMON_PROFILE_MOBILE_NUMBER_INVALID\"),\n });\n }\n\n if (email.length && !(email.includes(\"@\") && email.includes(\".\"))) {\n throw JSON.stringify({\n type: \"error\",\n message: t(\"CORE_COMMON_PROFILE_EMAIL_INVALID\"),\n });\n }\n const trimmedCurrentPassword = currentPassword.trim();\n const trimmedNewPassword = newPassword.trim();\n const trimmedConfirmPassword = confirmPassword.trim();\n\n // Updating state with trimmed values\n setCurrentPassword(trimmedCurrentPassword);\n setNewPassword(trimmedNewPassword);\n setConfirmPassword(trimmedConfirmPassword);\n \n\n if (changepassword && (trimmedCurrentPassword && trimmedNewPassword && trimmedConfirmPassword)) {\n if (trimmedNewPassword !== trimmedConfirmPassword) {\n throw JSON.stringify({\n type: \"error\",\n message: t(\"CORE_COMMON_PROFILE_PASSWORD_MISMATCH\"),\n });\n }\n\n if (!(trimmedCurrentPassword.length && trimmedNewPassword.length && trimmedConfirmPassword.length)) {\n throw JSON.stringify({\n type: \"error\",\n message: t(\"CORE_COMMON_PROFILE_PASSWORD_INVALID\"),\n });\n }\n\n if (!validationConfig?.password.test(trimmedNewPassword) && !validationConfig?.password.test(trimmedConfirmPassword)) {\n throw JSON.stringify({\n type: \"error\",\n message: t(\"CORE_COMMON_PROFILE_PASSWORD_INVALID\"),\n });\n }\n }\n\n const { responseInfo, user } = await Digit.UserService.updateUser(requestData, stateCode);\n\n if (responseInfo && responseInfo.status === \"200\") {\n const user = Digit.UserService.getUser();\n\n if (user) {\n Digit.UserService.setUser({\n ...user,\n info: {\n ...user.info,\n name,\n mobileNumber,\n emailId: email,\n permanentCity: city,\n },\n });\n }\n }\n\n if (currentPassword.length && newPassword.length && confirmPassword.length) {\n const requestData = {\n existingPassword: currentPassword,\n newPassword: newPassword,\n tenantId: tenant,\n type: \"EMPLOYEE\",\n username: userInfo?.userName,\n confirmPassword: confirmPassword,\n };\n\n if (newPassword === confirmPassword) {\n try {\n const res = await Digit.UserService.changePassword(requestData, tenant);\n\n const { responseInfo: changePasswordResponseInfo } = res;\n if (changePasswordResponseInfo?.status && changePasswordResponseInfo.status === \"200\") {\n showToast(\"success\", t(\"CORE_COMMON_PROFILE_UPDATE_SUCCESS_WITH_PASSWORD\"), 5000);\n setTimeout(() => Digit.UserService.logout(), 2000);\n } else {\n throw \"\";\n }\n } catch (error) {\n throw JSON.stringify({\n type: \"error\",\n message: error.Errors?.at(0)?.description ? error.Errors.at(0).description : \"CORE_COMMON_PROFILE_UPDATE_ERROR_WITH_PASSWORD\",\n });\n }\n } else {\n throw JSON.stringify({\n type: \"error\",\n message: \"CORE_COMMON_PROFILE_ERROR_PASSWORD_NOT_MATCH\",\n });\n }\n } else if (responseInfo?.status && responseInfo.status === \"200\") {\n showToast(\"success\", t(\"CORE_COMMON_PROFILE_UPDATE_SUCCESS\"), 5000);\n }\n } catch (error) {\n const errorObj = JSON.parse(error);\n showToast(errorObj.type, t(errorObj.message), 5000);\n }\n\n setLoading(false);\n };\n\n let menu = [];\n const { data: Menu } = Digit.Hooks.useGenderMDMS(stateId, \"common-masters\", \"GenderType\");\n Menu &&\n Menu.map((genderDetails) => {\n menu.push({\n i18nKey: `PT_COMMON_GENDER_${genderDetails.code}`,\n code: `${genderDetails.code}`,\n value: `${genderDetails.code}`,\n });\n });\n\n const setFileStoreId = async (fileStoreId) => {\n setProfilePic(fileStoreId);\n\n const thumbnails = fileStoreId ? await getThumbnails([fileStoreId], stateId) : null;\n\n setProfileImg(thumbnails?.thumbs[0]);\n\n closeFileUploadDrawer();\n };\n\n const getThumbnails = async (ids, tenantId) => {\n const res = await Digit.UploadServices.Filefetch(ids, tenantId);\n if (res.data.fileStoreIds && res.data.fileStoreIds.length !== 0) {\n return {\n thumbs: res.data.fileStoreIds.map((o) => o.url.split(\",\")[3]),\n images: res.data.fileStoreIds.map((o) => Digit.Utils.getFileUrl(o.url)),\n };\n } else {\n return null;\n }\n };\n\n if (loading || isValidationConfigLoading) return <Loader></Loader>;\n\n return (\n <div className={`user-profile ${userType === \"citizen\" ? \"citizen\" : \"employee\"}`}>\n <section style={{ margin: userType === \"citizen\" || isMobile ? \"8px\" : \"0px\" }}>\n {userType === \"citizen\" || isMobile ? (\n <BackLink onClick={() => navigate(\"/\")} />\n ) : (\n <BreadCrumb\n style={{ marginTop: \"0rem\", marginBottom: \"1.5rem\" }}\n crumbs={[\n {\n internalLink: isMultiRootTenant ? `/${window?.contextPath}/employee/sandbox/landing` : `/${window?.contextPath}/employee`,\n content: t(\"ES_COMMON_HOME\"),\n show: true,\n },\n {\n internalLink: `/${window?.contextPath}/employee/user/profile`,\n content: t(\"ES_COMMON_PAGE_1\"),\n show: url.includes(\"/user/profile\"),\n },\n ]}\n />\n )}\n </section>\n <div\n style={{\n display: \"flex\",\n flex: 1,\n flexDirection: windowWidth < 768 || userType === \"citizen\" ? \"column\" : \"row\",\n margin: userType === \"citizen\" ? \"8px\" : \"0px\",\n gap: userType === \"citizen\" ? \"\" : \"0 24px\",\n boxShadow: userType === \"citizen\" ? \"1px 1px 4px 0px rgba(0,0,0,0.2)\" : \"\",\n background: userType === \"citizen\" ? \"white\" : \"\",\n borderRadius: userType === \"citizen\" ? \"4px\" : \"\",\n maxWidth: userType === \"citizen\" ? \"960px\" : \"\",\n }}\n >\n <section\n style={{\n position: \"relative\",\n display: \"flex\",\n flex: userType === \"citizen\" ? 1 : 2.5,\n justifyContent: \"center\",\n alignItems: \"center\",\n maxWidth: \"100%\",\n // height: \"376px\",\n borderRadius: \"4px\",\n boxShadow: userType === \"citizen\" ? \"\" : \"1px 1px 4px 0px rgba(0,0,0,0.2)\",\n border: `${userType === \"citizen\" ? \"8px\" : \"24px\"} solid #fff`,\n background: \"#EEEEEE\",\n padding: userType === \"citizen\" ? \"8px\" : \"16px\",\n }}\n >\n <div\n style={{\n position: \"relative\",\n height: userType === \"citizen\" ? \"114px\" : \"150px\",\n width: userType === \"citizen\" ? \"114px\" : \"150px\",\n margin: \"16px\",\n }}\n >\n <ImageComponent\n style={{\n margin: \"auto\",\n borderRadius: \"300px\",\n justifyContent: \"center\",\n height: \"100%\",\n width: \"100%\",\n }}\n src={!profileImg || profileImg === \"\" ? defaultImage : profileImg}\n alt=\"Profile Image\"\n />\n\n <button\n style={{\n position: \"absolute\",\n left: \"50%\",\n bottom: \"-24px\",\n transform: \"translateX(-50%)\",\n }}\n onClick={onClickAddPic}\n >\n <CameraIcon />\n </button>\n </div>\n </section>\n <section\n style={{\n display: \"flex\",\n flexDirection: \"column\",\n flex: userType === \"citizen\" ? 1 : 7.5,\n width: \"100%\",\n borderRadius: \"4px\",\n height: \"fit-content\",\n boxShadow: userType === \"citizen\" ? \"\" : \"1px 1px 4px 0px rgba(0,0,0,0.2)\",\n background: \"white\",\n padding: userType === \"citizen\" ? \"8px\" : \"24px\",\n paddingBottom: \"20px\",\n }}\n >\n {userType === \"citizen\" ? (\n <React.Fragment>\n <LabelFieldPair>\n <CardLabel className=\"user-profile\" style={editScreen ? { color: \"#B1B4B6\" } : {}}>\n {`${t(\"CORE_COMMON_PROFILE_NAME\")}`}*\n </CardLabel>\n <div style={{ width: \"40rem\", maxWidth: \"960px\" }}>\n <TextInput\n t={t}\n style={{ width: \"100%\" }}\n type={\"text\"}\n isMandatory={false}\n name=\"name\"\n value={name}\n onChange={(e) => setUserName(e.target.value)}\n {...(validation = {\n isRequired: true,\n pattern:\n mdmsValidationData?.UserProfileValidationConfig?.[0]?.name || defaultValidationConfig?.UserProfileValidationConfig?.[0]?.name,\n type: \"tel\",\n title: t(\"CORE_COMMON_PROFILE_NAME_ERROR_MESSAGE\"),\n })}\n disable={editScreen}\n />\n {/* {errors?.userName && (\n <CardLabelError>\n {\" \"}\n {t(errors?.userName?.message)}{\" \"}\n </CardLabelError>\n )} */}\n {errors?.userName && (\n <ErrorMessage\n message={t(errors?.userName?.message)}\n truncateMessage={true}\n maxLength={256}\n className=\"\"\n wrapperClassName=\"\"\n showIcon={true}\n />\n )}\n </div>\n </LabelFieldPair>\n\n <LabelFieldPair>\n <CardLabel className=\"user-profile\" style={editScreen ? { color: \"#B1B4B6\" } : {}}>{`${t(\"CORE_COMMON_PROFILE_GENDER\")}`}</CardLabel>\n <Dropdown\n style={{ width: \"40rem\", fontSize: \"1rem\" }}\n className=\"form-field profileDropdown\"\n selected={gender?.length === 1 ? gender[0] : gender}\n disable={gender?.length === 1 || editScreen}\n option={menu}\n select={setGenderName}\n value={gender}\n optionKey=\"code\"\n t={t}\n name=\"gender\"\n />\n </LabelFieldPair>\n\n <LabelFieldPair>\n <CardLabel className=\"user-profile\" style={editScreen ? { color: \"#B1B4B6\" } : {}}>{`${t(\"CORE_COMMON_PROFILE_EMAIL\")}`}</CardLabel>\n <div style={{ width: \"40rem\" }}>\n <TextInput\n t={t}\n style={{ width: \"100%\" }}\n type={\"email\"}\n isMandatory={false}\n optionKey=\"i18nKey\"\n name=\"email\"\n value={email}\n onChange={(e) => setUserEmailAddress(e.target.value)}\n disabled={editScreen}\n />\n {errors?.emailAddress && (\n <ErrorMessage\n message={t(errors?.emailAddress?.message)}\n truncateMessage={true}\n maxLength={256}\n className=\"\"\n wrapperClassName=\"\"\n showIcon={true}\n />\n )}\n </div>\n </LabelFieldPair>\n\n <button\n onClick={updateProfile}\n style={{\n marginTop: \"24px\",\n backgroundColor: \"#c84c0e\",\n width: \"100%\",\n height: \"40px\",\n color: \"white\",\n\n maxWidth: isMobile ? \"100%\" : \"240px\",\n borderBottom: \"1px solid black\",\n }}\n >\n {t(\"CORE_COMMON_SAVE\")}\n </button>\n </React.Fragment>\n ) : (\n <React.Fragment>\n <LabelFieldPair style={{ display: \"flex\" }}>\n <CardLabel className=\"profile-label-margin\" style={editScreen ? { color: \"#B1B4B6\", width: \"300px\" } : { width: \"300px\" }}>\n {`${t(\"CORE_COMMON_PROFILE_NAME\")}`}*\n </CardLabel>\n <div style={{ width: \"100%\" }}>\n <TextInput\n t={t}\n type={\"text\"}\n isMandatory={false}\n name=\"name\"\n value={name}\n onChange={(e) => setUserName(e.target.value)}\n placeholder=\"Enter Your Name\"\n {...(validation = {\n isRequired: true,\n pattern:\n mdmsValidationData?.UserProfileValidationConfig?.[0]?.name || defaultValidationConfig?.UserProfileValidationConfig?.[0]?.name,\n type: \"text\",\n title: t(\"CORE_COMMON_PROFILE_NAME_ERROR_MESSAGE\"),\n })}\n disabled={editScreen}\n />\n {errors?.userName && (\n <ErrorMessage\n message={t(errors?.userName?.message)}\n truncateMessage={true}\n maxLength={256}\n className=\"\"\n wrapperClassName=\"\"\n showIcon={true}\n />\n )}\n </div>\n </LabelFieldPair>\n\n <LabelFieldPair style={{ display: \"flex\" }}>\n <CardLabel className=\"profile-label-margin\" style={editScreen ? { color: \"#B1B4B6\", width: \"300px\" } : { width: \"300px\" }}>{`${t(\n \"CORE_COMMON_PROFILE_GENDER\"\n )}`}</CardLabel>\n <div style={{ width: \"100%\" }}>\n <Dropdown\n className=\"profileDropdown\"\n selected={gender?.length === 1 ? gender[0] : gender}\n disable={gender?.length === 1 || editScreen}\n option={menu}\n select={setGenderName}\n value={gender}\n optionKey=\"code\"\n t={t}\n name=\"gender\"\n />\n </div>\n </LabelFieldPair>\n\n <LabelFieldPair style={{ display: \"flex\" }}>\n <CardLabel className=\"profile-label-margin\" style={editScreen ? { color: \"#B1B4B6\", width: \"300px\" } : { width: \"300px\" }}>{`${t(\n \"CORE_COMMON_PROFILE_CITY\"\n )}`}</CardLabel>\n <div style={{ width: \"100%\" }}>\n <TextInput\n t={t}\n type={\"text\"}\n isMandatory={false}\n name=\"city\"\n value={t(Digit.Utils.locale.getTransformedLocale(`TENANT_TENANTS_${tenant}`))}\n onChange={(e) => setCity(e.target.value)}\n placeholder=\"Enter Your City Name\"\n {...(validation = {\n isRequired: true,\n // pattern: \"^[a-zA-Z-.`' ]*$\",\n type: \"text\",\n title: t(\"CORE_COMMON_PROFILE_CITY_ERROR_MESSAGE\"),\n })}\n disabled={true}\n />\n <ErrorMessage />\n </div>\n </LabelFieldPair>\n\n <LabelFieldPair style={{ display: \"flex\" }}>\n <CardLabel className=\"profile-label-margin\" style={{ width: \"300px\" }}>{`${t(\"CORE_COMMON_PROFILE_MOBILE_NUMBER\")}*`}</CardLabel>\n <div style={{ width: \"100%\" }}>\n <MobileNumber\n value={mobileNumber}\n style={{ width: \"100%\" }}\n name=\"mobileNumber\"\n placeholder=\"Enter a valid Mobile No.\"\n onChange={(value) => setUserMobileNumber(value)}\n disable={Digit.Utils.getMultiRootTenant() ? false : true}\n {...{\n required: true,\n pattern:\n mdmsValidationData?.UserProfileValidationConfig?.[0]?.mobileNumber ||\n defaultValidationConfig?.UserProfileValidationConfig?.[0]?.mobileNumber,\n type: \"tel\",\n title: t(\"CORE_COMMON_PROFILE_MOBILE_NUMBER_INVALID\"),\n }}\n />\n {errors?.mobileNumber && (\n <ErrorMessage\n message={t(errors?.mobileNumber?.message)}\n truncateMessage={true}\n maxLength={256}\n className=\"\"\n wrapperClassName=\"\"\n showIcon={true}\n />\n )}\n </div>\n </LabelFieldPair>\n\n <LabelFieldPair style={{ display: \"flex\" }}>\n <CardLabel className=\"profile-label-margin\" style={editScreen ? { color: \"#B1B4B6\", width: \"300px\" } : { width: \"300px\" }}>{`${t(\n \"CORE_COMMON_PROFILE_EMAIL\"\n )}`}</CardLabel>\n <div style={{ width: \"100%\" }}>\n <TextInput\n t={t}\n type={\"email\"}\n isMandatory={false}\n placeholder={t(\"EMAIL_VALIDATION\")}\n optionKey=\"i18nKey\"\n name=\"email\"\n value={email}\n onChange={(e) => setUserEmailAddress(e.target.value)}\n disabled={Digit.Utils.getMultiRootTenant() ? true : editScreen}\n />\n {errors?.emailAddress && (\n <ErrorMessage\n message={t(errors?.emailAddress?.message)}\n truncateMessage={true}\n maxLength={256}\n className=\"\"\n wrapperClassName=\"\"\n showIcon={true}\n />\n )}\n </div>\n </LabelFieldPair>\n\n <LabelFieldPair>\n <div style={{ width: \"100%\" }}>\n {changepassword == false && !Digit.Utils.getOTPBasedLogin() ? (\n <Button\n label={t(\"CORE_COMMON_CHANGE_PASSWORD\")}\n variation={\"teritiary\"}\n onClick={TogleforPassword}\n style={{ paddingLeft: \"0rem\" }}\n ></Button>\n ) : null}\n {changepassword ? (\n <div style={{ marginTop: \"10px\" }}>\n <LabelFieldPair style={{ display: \"flex\" }}>\n <CardLabel\n className=\"profile-label-margin\"\n style={editScreen ? { color: \"#B1B4B6\", width: \"300px\" } : { width: \"300px\" }}\n >{`${t(\"CORE_COMMON_PROFILE_CURRENT_PASSWORD\")}`}</CardLabel>\n <div style={{ width: \"100%\" }}>\n <TextInput\n t={t}\n type={\"password\"}\n isMandatory={false}\n name=\"name\"\n pattern={\n mdmsValidationData?.UserProfileValidationConfig?.[0]?.password ||\n defaultValidationConfig?.UserProfileValidationConfig?.[0]?.password\n }\n onChange={(e) => setUserCurrentPassword(e?.target?.value)}\n disabled={editScreen}\n />\n {errors?.currentPassword && (\n <ErrorMessage\n message={t(errors?.currentPassword?.message)}\n truncateMessage={true}\n maxLength={256}\n className=\"\"\n wrapperClassName=\"\"\n showIcon={true}\n />\n )}\n </div>\n </LabelFieldPair>\n\n <LabelFieldPair style={{ display: \"flex\" }}>\n <CardLabel\n className=\"profile-label-margin\"\n style={editScreen ? { color: \"#B1B4B6\", width: \"300px\" } : { width: \"300px\" }}\n >{`${t(\"CORE_COMMON_PROFILE_NEW_PASSWORD\")}`}</CardLabel>\n <div style={{ width: \"100%\" }}>\n <TextInput\n t={t}\n type={\"password\"}\n isMandatory={false}\n name=\"name\"\n pattern={\n mdmsValidationData?.UserProfileValidationConfig?.[0]?.password ||\n defaultValidationConfig?.UserProfileValidationConfig?.[0]?.password\n }\n onChange={(e) => setUserNewPassword(e?.target?.value)}\n disabled={editScreen}\n />\n {errors?.newPassword && (\n <ErrorMessage\n message={t(errors?.newPassword?.message)}\n truncateMessage={true}\n maxLength={256}\n className=\"\"\n wrapperClassName=\"\"\n showIcon={true}\n />\n )}\n </div>\n </LabelFieldPair>\n\n <LabelFieldPair style={{ display: \"flex\" }}>\n <CardLabel\n className=\"profile-label-margin\"\n style={editScreen ? { color: \"#B1B4B6\", width: \"300px\" } : { width: \"300px\" }}\n >{`${t(\"CORE_COMMON_PROFILE_CONFIRM_PASSWORD\")}`}</CardLabel>\n <div style={{ width: \"100%\" }}>\n <TextInput\n t={t}\n type={\"password\"}\n isMandatory={false}\n name=\"name\"\n pattern={\n mdmsValidationData?.UserProfileValidationConfig?.[0]?.password ||\n defaultValidationConfig?.UserProfileValidationConfig?.[0]?.password\n }\n onChange={(e) => setUserConfirmPassword(e?.target?.value)}\n disabled={editScreen}\n />\n {errors?.confirmPassword && (\n <ErrorMessage\n message={t(errors?.confirmPassword?.message)}\n truncateMessage={true}\n maxLength={256}\n className=\"\"\n wrapperClassName=\"\"\n showIcon={true}\n />\n )}\n </div>\n </LabelFieldPair>\n </div>\n ) : (\n \"\"\n )}\n </div>\n </LabelFieldPair>\n {userType === \"employee\" && isMobile ? (\n <button\n onClick={updateProfile}\n style={{\n marginTop: \"24px\",\n backgroundColor: \"#c84c0e\",\n width: \"100%\",\n height: \"40px\",\n color: \"white\",\n maxWidth: isMobile ? \"100%\" : \"240px\",\n borderBottom: \"1px solid black\",\n fontWeight: \"700\",\n fontSize: \"17px\",\n }}\n >\n {t(\"CORE_COMMON_SAVE\")}\n </button>\n ) : null}\n </React.Fragment>\n )}\n </section>\n </div>\n\n {userType === \"employee\" && !isMobile ? (\n <Footer actionFields={[<SubmitBar t={t} label={t(\"CORE_COMMON_SAVE\")} onSubmit={updateProfile} />]} className=\"\" setactionFieldsToRight />\n ) : null}\n {toast && (\n <Toast\n type={toast.key}\n label={t(toast.key === \"success\" ? `CORE_COMMON_PROFILE_UPDATE_SUCCESS` : toast.action)}\n onClose={() => setToast(null)}\n style={{ maxWidth: \"670px\" }}\n />\n )}\n\n {openUploadSlide == true ? (\n <UploadDrawer\n setProfilePic={setFileStoreId}\n closeDrawer={closeFileUploadDrawer}\n userType={userType}\n removeProfilePic={removeProfilePic}\n showToast={showToast}\n />\n ) : (\n \"\"\n )}\n </div>\n );\n};\n\nexport default UserProfile;","import {\n Calender,\n CardBasedOptions,\n CaseIcon,\n ComplaintIcon,\n DocumentIcon,\n HomeIcon,\n OBPSIcon,\n PTIcon,\n Loader,\n WhatsNewCard,\n} from \"@egovernments/digit-ui-react-components\";\nimport React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useNavigate } from \"react-router-dom\";\nimport ImageComponent from \"../../../components/ImageComponent\";\n\nconst Home = () => {\n const { t } = useTranslation();\n const navigate = useNavigate();\n const tenantId = Digit.Utils.getMultiRootTenant() ? Digit.ULBService.getStateId() : Digit.ULBService.getCitizenCurrentTenant(true);\n const { data: { stateInfo, uiHomePage } = {}, isLoading } = Digit.Hooks.useStore.getInitData();\n let isMobile = window.Digit.Utils.browser.isMobile();\n\n const conditionsToDisableNotificationCountTrigger = () => {\n if (Digit.UserService?.getUser()?.info?.type === \"EMPLOYEE\") return false;\n if (!Digit.UserService?.getUser()?.access_token) return false;\n return true;\n };\n\n const { data: EventsData, isLoading: EventsDataLoading } = Digit.Hooks.useEvents({\n tenantId,\n variant: \"whats-new\",\n config: {\n enabled: conditionsToDisableNotificationCountTrigger(),\n },\n });\n\n if (!tenantId) {\n navigate(`/${window?.contextPath}/citizen/select-language`);\n }\n\n const appBannerWebObj = uiHomePage?.appBannerDesktop;\n const appBannerMobObj = uiHomePage?.appBannerMobile;\n const citizenServicesObj = uiHomePage?.citizenServicesCard;\n const infoAndUpdatesObj = uiHomePage?.informationAndUpdatesCard;\n const whatsAppBannerWebObj = uiHomePage?.whatsAppBannerDesktop;\n const whatsAppBannerMobObj = uiHomePage?.whatsAppBannerMobile;\n const whatsNewSectionObj = uiHomePage?.whatsNewSection;\n const redirectURL = uiHomePage?.redirectURL;\n /* configure redirect URL only if it is required to overide the default citizen home screen */\n if (redirectURL) {\n navigate(`/${window?.contextPath}/citizen/${redirectURL}`);\n }\n /* fix for sanitation ui & sandbox*/\n if (window?.location?.href?.includes?.(\"sanitation-ui\") || window?.location?.href?.includes?.(\"sandbox-ui\")) {\n navigate(`/${window?.contextPath}/citizen/all-services`);\n }\n\n const handleClickOnWhatsAppBanner = (obj) => {\n window.open(obj?.navigationUrl);\n };\n\n const allCitizenServicesProps = {\n header: t(citizenServicesObj?.headerLabel),\n sideOption: {\n name: t(citizenServicesObj?.sideOption?.name),\n onClick: () =>\n navigate(citizenServicesObj?.sideOption?.navigationUrl),\n },\n options: [\n {\n name: t(citizenServicesObj?.props?.[0]?.label),\n Icon: <ComplaintIcon />,\n onClick: () =>\n navigate(citizenServicesObj?.props?.[0]?.navigationUrl),\n },\n {\n name: t(citizenServicesObj?.props?.[1]?.label),\n Icon: <PTIcon className=\"fill-path-primary-main\" />,\n onClick: () =>\n navigate(citizenServicesObj?.props?.[1]?.navigationUrl),\n },\n {\n name: t(citizenServicesObj?.props?.[2]?.label),\n Icon: <CaseIcon className=\"fill-path-primary-main\" />,\n onClick: () =>\n navigate(citizenServicesObj?.props?.[2]?.navigationUrl),\n },\n // {\n // name: t(\"ACTION_TEST_WATER_AND_SEWERAGE\"),\n // Icon: <DropIcon/>,\n // onClick: () => history.push(`/${window?.contextPath}/citizen`)\n // },\n {\n name: t(citizenServicesObj?.props?.[3]?.label),\n Icon: <OBPSIcon />,\n onClick: () =>\n navigate(citizenServicesObj?.props?.[3]?.navigationUrl),\n },\n ],\n styles: {\n display: \"flex\",\n flexWrap: \"wrap\",\n justifyContent: \"flex-start\",\n width: \"100%\",\n },\n };\n const allInfoAndUpdatesProps = {\n header: t(infoAndUpdatesObj?.headerLabel),\n sideOption: {\n name: t(infoAndUpdatesObj?.sideOption?.name),\n onClick: () => navigate(infoAndUpdatesObj?.sideOption?.navigationUrl),\n },\n options: [\n {\n name: t(infoAndUpdatesObj?.props?.[0]?.label),\n Icon: <HomeIcon />,\n onClick: () =>\n navigate(infoAndUpdatesObj?.props?.[0]?.navigationUrl),\n },\n {\n name: t(infoAndUpdatesObj?.props?.[1]?.label),\n Icon: <Calender />,\n onClick: () =>\n navigate(infoAndUpdatesObj?.props?.[1]?.navigationUrl),\n },\n {\n name: t(infoAndUpdatesObj?.props?.[2]?.label),\n Icon: <DocumentIcon />,\n onClick: () =>\n navigate(infoAndUpdatesObj?.props?.[2]?.navigationUrl),\n },\n {\n name: t(infoAndUpdatesObj?.props?.[3]?.label),\n Icon: <DocumentIcon />,\n onClick: () =>\n navigate(infoAndUpdatesObj?.props?.[3]?.navigationUrl),\n },\n // {\n // name: t(\"CS_COMMON_HELP\"),\n // Icon: <HelpIcon/>\n // }\n ],\n styles: {\n display: \"flex\",\n flexWrap: \"wrap\",\n justifyContent: \"flex-start\",\n width: \"100%\",\n },\n };\n\n return isLoading ? (\n <Loader />\n ) : (\n <div className=\"HomePageContainer\">\n {/* <div className=\"SideBarStatic\">\n <StaticCitizenSideBar />\n </div> */}\n <div className=\"HomePageWrapper\">\n {\n <div className=\"BannerWithSearch\">\n {isMobile ? (\n <ImageComponent src={appBannerMobObj?.bannerUrl} alt=\"Banner Image\" />\n ) : (\n <ImageComponent src={appBannerWebObj?.bannerUrl} alt=\"Banner Image\" />\n )}\n {/* <div className=\"Search\">\n <StandaloneSearchBar placeholder={t(\"CS_COMMON_SEARCH_PLACEHOLDER\")} />\n </div> */}\n <div className=\"ServicesSection\">\n <CardBasedOptions style={{ marginTop: \"-30px\" }} {...allCitizenServicesProps} />\n <CardBasedOptions style={isMobile ? {} : { marginTop: \"-30px\" }} {...allInfoAndUpdatesProps} />\n </div>\n </div>\n }\n\n {(whatsAppBannerMobObj || whatsAppBannerWebObj) && (\n <div className=\"WhatsAppBanner\">\n {isMobile ? (\n <ImageComponent\n src={whatsAppBannerMobObj?.bannerUrl}\n onClick={() => handleClickOnWhatsAppBanner(whatsAppBannerMobObj)}\n alt=\"Whatsapp Banner\"\n />\n ) : (\n <ImageComponent\n src={whatsAppBannerWebObj?.bannerUrl}\n onClick={() => handleClickOnWhatsAppBanner(whatsAppBannerWebObj)}\n alt=\"Whatsapp Banner\"\n />\n )}\n </div>\n )}\n\n {conditionsToDisableNotificationCountTrigger() ? (\n EventsDataLoading ? (\n <Loader />\n ) : (\n <div className=\"WhatsNewSection\">\n <div className=\"headSection\">\n <h2>{t(whatsNewSectionObj?.headerLabel)}</h2>\n <p onClick={() => navigate(whatsNewSectionObj?.sideOption?.navigationUrl)}>{t(whatsNewSectionObj?.sideOption?.name)}</p>\n </div>\n <WhatsNewCard {...EventsData?.[0]} />\n </div>\n )\n ) : null}\n </div>\n </div>\n );\n};\n\nexport default Home;\n","import {\n BackButton,\n HeaderComponent,\n Loader,\n CloseSvg,\n DownloadImgIcon,\n PDFSvg,\n} from \"@egovernments/digit-ui-components\";\nimport { CustomButton } from \"@egovernments/digit-ui-react-components\";\nimport React, { Fragment, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nconst HowItWorks = ({ module }) => {\n const user = Digit.UserService.getUser();\n const tenantId =\n user?.info?.tenantId || Digit.ULBService.getCurrentTenantId();\n const { t } = useTranslation();\n const storeData = Digit.SessionStorage.get(\"initData\");\n const stateInfo = storeData.stateInfo;\n const selectedLanguage = Digit.StoreData.getCurrentLanguage();\n const [selected, setselected] = useState(selectedLanguage);\n const handleChangeLanguage = (language) => {\n setselected(language.value);\n Digit.LocalizationService.changeLanguage(language.value, stateInfo.code);\n };\n const [videoPlay, setVideoPlay] = useState(false);\n const [vidSrc, setVidSrc] = useState(\"\");\n\n const ViDSvg = () => (\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M12 24C5.38053 24 0 18.6143 0 12C0 5.38054 5.38053 1.90735e-06 12 1.90735e-06C18.6143 1.90735e-06 24 5.38054 24 12C24 18.6143 18.6143 24 12 24ZM16.3488 10.7852L11.3855 7.25251C11.1263 7.0701 10.8238 6.97889 10.5214 6.97889C10.291 6.97889 10.0557 7.03172 9.83976 7.14202C9.34054 7.40118 9.02857 7.91006 9.02857 8.46694L9.02877 15.5323C9.02877 16.0892 9.34076 16.5979 9.83996 16.8572C10.3344 17.1116 10.9296 17.0732 11.3857 16.7467L16.349 13.214C16.7426 12.9356 16.9778 12.4795 16.9778 11.9996C16.9776 11.5197 16.7426 11.0636 16.3489 10.7852L16.3488 10.7852Z\"\n fill=\"white\"\n />\n </svg>\n );\n const onClickVideo = (vidObj) => {\n if (selected === \"hi_IN\") {\n setVidSrc(vidObj[\"hi_IN\"]);\n } else {\n setVidSrc(vidObj[\"en_IN\"]);\n }\n setVideoPlay(true);\n };\n const onClose = () => {\n setVideoPlay(false);\n };\n\n const { isLoading, data } = Digit.Hooks.useGetHowItWorksJSON(\n Digit.ULBService.getStateId()\n );\n\n const mdmsConfigResult =\n data?.MdmsRes[\"common-masters\"]?.howItWorks[0]?.[`${module}`];\n const languages = [\n {\n label: \"ENGLISH\",\n value: \"en_IN\",\n },\n {\n label: \"हिंदी\",\n value: \"hi_IN\",\n },\n ];\n\n if (isLoading) {\n return <Loader />;\n }\n return (\n <Fragment>\n <div className=\"how-it-works-page\">\n <BackButton></BackButton>\n <div className=\"how-it-works-page-header\">\n <HeaderComponent>\n {t(\n mdmsConfigResult.screenHeader\n ? mdmsConfigResult.screenHeader\n : \"HOW_IT_WORKS\"\n )}\n </HeaderComponent>\n </div>\n <div className=\"language-selector\" style={{ margin: \"10px\" }}>\n {languages.map((language, index) => (\n <div className=\"language-button-container\" key={index}>\n <CustomButton\n selected={language.value === selected}\n text={language.label}\n onClick={() => handleChangeLanguage(language)}\n ></CustomButton>\n </div>\n ))}\n </div>\n {mdmsConfigResult.videosJson.map((videos, index) => (\n <div>\n <div\n className=\"WhatsNewCard\"\n style={{\n float: \"left\",\n position: \"relative\",\n width: \"100%\",\n marginBottom: 10,\n }}\n >\n <div className=\"video-icon\" onClick={() => onClickVideo(videos)}>\n <div className=\"vid-svg\">\n <ViDSvg></ViDSvg>\n </div>\n </div>\n <div className=\"how-it-works-header-description\">\n <h2>{t(videos.headerLabel)}</h2>\n <p>{t(videos.description)}</p>\n </div>\n </div>\n </div>\n ))}\n {mdmsConfigResult.pdfHeader && mdmsConfigResult.pdfDesc && (\n <div\n className=\"WhatsNewCard\"\n style={{\n position: \"relative\",\n width: \"100%\",\n marginBottom: 10,\n display: \"inline-block\",\n }}\n >\n <div className=\"how-it-works-pdf-section\">\n <div className=\"pdf-icon-header-desc\">\n <div className=\"pdf-icon\">\n <PDFSvg></PDFSvg>\n </div>\n <div className=\"pdf-header-desc\">\n <h2>{t(mdmsConfigResult.pdfHeader)}</h2>\n <p>{t(mdmsConfigResult.pdfDesc)}</p>\n </div>\n </div>\n <div className=\"download-icon\">\n <DownloadImgIcon />\n </div>\n </div>\n </div>\n )}\n {videoPlay && (\n <div className=\"how-it-works-video-play\">\n <div className=\"close-button\">\n <CloseSvg onClick={onClose}></CloseSvg>\n </div>\n <video width={500} height={500} controls autoPlay>\n <source src={vidSrc} type=\"video/mp4\"></source>\n </video>\n </div>\n )}\n </div>\n </Fragment>\n );\n};\n\nexport default HowItWorks;\n","import { CardText, CardLabelError, FormStep } from \"@egovernments/digit-ui-components\";\nimport React, { Fragment, useState } from \"react\";\nimport useInterval from \"../../../hooks/useInterval\";\nimport { OTPInput } from \"@egovernments/digit-ui-react-components\";\n\nconst SelectOtp = ({ config, otp, onOtpChange, onResend, onSelect, t, error, userType = \"citizen\", canSubmit }) => {\n const [timeLeft, setTimeLeft] = useState(30);\n\n useInterval(\n () => {\n setTimeLeft(timeLeft - 1);\n },\n timeLeft > 0 ? 1000 : null\n );\n\n const handleResendOtp = () => {\n onResend();\n setTimeLeft(2);\n };\n\n if (userType === \"employee\") {\n return (\n <Fragment>\n <OTPInput length={6} onChange={onOtpChange} value={otp} />\n {timeLeft > 0 ? (\n <CardText>{`${t(\"CS_RESEND_ANOTHER_OTP\")} ${timeLeft} ${t(\"CS_RESEND_SECONDS\")}`}</CardText>\n ) : (\n <p className=\"card-text-button resend-otp\" onClick={handleResendOtp}>\n {t(\"CS_RESEND_OTP\")}\n </p>\n )}\n {!error && <CardLabelError>{t(\"CS_INVALID_OTP\")}</CardLabelError>}\n </Fragment>\n );\n }\n\n return (\n <FormStep onSelect={onSelect} config={config} t={t} isDisabled={!(otp?.length === 6 && canSubmit)}>\n <OTPInput length={6} onChange={onOtpChange} value={otp} />\n {timeLeft > 0 ? (\n <CardText>{`${t(\"CS_RESEND_ANOTHER_OTP\")} ${timeLeft} ${t(\"CS_RESEND_SECONDS\")}`}</CardText>\n ) : (\n <p className=\"card-text-button\" onClick={handleResendOtp}>\n {t(\"CS_RESEND_OTP\")}\n </p>\n )}\n {!error && <CardLabelError>{t(\"CS_INVALID_OTP\")}</CardLabelError>}\n </FormStep>\n );\n};\n\nexport default SelectOtp;\n","export const loginSteps = [\n {\n texts: {\n header: \"CS_LOGIN_PROVIDE_MOBILE_NUMBER\",\n cardText: \"CS_LOGIN_TEXT\",\n nextText: \"CS_COMMONS_NEXT\",\n submitBarLabel: \"CS_COMMONS_NEXT\",\n },\n inputs: [\n {\n label: \"CORE_COMMON_MOBILE_NUMBER\",\n type: \"text\",\n name: \"mobileNumber\",\n error: \"ERR_HRMS_INVALID_MOB_NO\",\n validation: {\n required: true,\n minlength: 10,\n maxlength: 10,\n },\n },\n ],\n },\n {\n texts: {\n header: \"CS_LOGIN_OTP\",\n cardText: \"CS_LOGIN_OTP_TEXT\",\n nextText: \"CS_COMMONS_NEXT\",\n submitBarLabel: \"CS_COMMONS_NEXT\",\n },\n },\n {\n texts: {\n header: \"CS_LOGIN_PROVIDE_NAME\",\n cardText: \"CS_LOGIN_NAME_TEXT\",\n nextText: \"CS_COMMONS_NEXT\",\n submitBarLabel: \"CS_COMMONS_NEXT\",\n },\n inputs: [\n {\n label: \"CORE_COMMON_NAME\",\n type: \"text\",\n name: \"name\",\n error: \"CORE_COMMON_NAME_VALIDMSG\",\n validation: {\n required: true,\n minlength: 1,\n maxlength: 50,\n // pattern: /^[^{0-9}^\\$\\\"<>?\\\\\\\\~!@#$%^()+={}\\[\\]*,/_:;“”‘’]{1,50}$/i,\n // pattern: /^(?!\\s)[^{0-9}^\\$\\\"<>?\\\\\\\\~!@#$%^()+={}\\[\\]*,/_:;“”‘’]{1,50}(?!\\s)$/i\n pattern: \"^[A-Za-z]+( [A-Za-z]+)*$\",\n },\n },\n ],\n },\n];\n","import { InputCard, TextBlock, FieldV1, LinkLabel } from \"@egovernments/digit-ui-components\";\nimport React, { useMemo, useState } from \"react\";\n\nconst SelectMobileNumber = ({ t, onSelect, mobileNumber,emailId, onMobileChange,onEmailChange, config, canSubmit }) => {\n const [isEmail, setIsEmail] = useState(emailId? true : false);\n const [error, setError] = useState(\"\");\n\n const core_mobile_config = window?.globalConfigs?.getConfig(\"CORE_MOBILE_CONFIGS\") || {};\n const EMAIL_REGEX = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n const rawPattern = core_mobile_config?.mobileNumberPattern || \"^\\\\d+$\";\n const mobileNumberPattern = new RegExp(rawPattern);\n\n const isEmailValid = useMemo(() => EMAIL_REGEX.test(emailId), [emailId]);\n const isMobileValid = useMemo(() => mobileNumberPattern.test(mobileNumber || \"\"), [mobileNumber, mobileNumberPattern]);\n\n const handleSubmit = () => {\n if (isEmail) {\n if (!isEmailValid) {\n setError(t(\"ERR_INVALID_EMAIL\"));\n return;\n }\n onSelect({ userName: emailId });\n } else {\n if (!isMobileValid) {\n setError(t(\"ERR_INVALID_MOBILE_NUMBER\"));\n return;\n }\n onSelect({ mobileNumber });\n }\n };\n\n const handleChange = (e) => {\n const value = e.target.value;\n setError(\"\");\n if (isEmail) {\n onEmailChange(e)\n if (value && !EMAIL_REGEX.test(value)) setError(t(\"ERR_INVALID_EMAIL\"));\n } else {\n onMobileChange(e);\n if (value && !mobileNumberPattern.test(value)) setError(t(\"ERR_INVALID_MOBILE_NUMBER\"));\n }\n };\n\n const switchMode = () => {\n setIsEmail(!isEmail);\n setError(\"\");\n if(isEmail)\n onEmailChange({ target: { value: \"\" } });\n else\n onMobileChange({ target: { value: \"\" } }); // clear mobile input\n };\n\n const isDisabled = useMemo(() => {\n return isEmail ? !(isEmailValid && canSubmit) : !(isMobileValid && canSubmit);\n }, [isEmail, isEmailValid, isMobileValid, canSubmit]);\n\n const mobileViewStyles = {\n marginLeft:\"0px\",\n userSelect: \"none\",\n color: \"inherit\", \n cursor: \"pointer\", // keeps it clickable\n textDecoration: \"underline\",\n };\n\n // Responsive label\n const linkLabel = useMemo(() => {\n if (window.innerWidth <= 768) {\n return isEmail ? t(\"LOGIN_WITH_MOBILE\") : t(\"LOGIN_WITH_EMAIL\");\n }\n return isEmail ? t(\"CS_USE_MOBILE_INSTEAD\") : t(\"CS_LOGIN_REGISTER_WITH_EMAIL\");\n }, [isEmail, t]);\n\n return (\n <InputCard\n t={t}\n texts={config?.texts}\n submit\n onNext={handleSubmit}\n isDisable={isDisabled}\n >\n <div>\n <FieldV1\n key={isEmail ? \"email\" : \"mobile\"}\n withoutLabel\n charCount\n error={error}\n onChange={handleChange}\n placeholder={isEmail ? t(\"ENTER_EMAIL_PLACEHOLDER\") : t(\"ENTER_MOBILE_PLACEHOLDER\")}\n populators={{\n name: isEmail ? \"userName\" : \"mobileNumber\",\n prefix: isEmail ? \"\" : core_mobile_config?.mobilePrefix,\n validation: {\n maxlength: isEmail ? 256 : (core_mobile_config?.mobileNumberLength || 10),\n pattern: isEmail ? EMAIL_REGEX : mobileNumberPattern,\n },\n }}\n props={{ fieldStyle: { width: \"100%\" } }}\n type=\"text\"\n value={isEmail ? emailId : mobileNumber}\n />\n </div>\n\n <div style={{ display: \"flex\", alignItems: \"center\", gap: \"1rem\", marginBottom: \"1.5rem\", marginTop: \"-24px\" }}>\n <LinkLabel style={{ display: \"inline\", ...mobileViewStyles }} onClick={switchMode}>\n {linkLabel}\n </LinkLabel>\n </div>\n </InputCard>\n );\n};\n\nexport default SelectMobileNumber;","import { FormStep } from \"@egovernments/digit-ui-components\";\nimport React from \"react\";\n\nconst SelectName = ({ config, onSelect, t, isDisabled }) => {\n return <FormStep config={config} onSelect={onSelect} t={t} isDisabled={isDisabled}></FormStep>;\n};\n\nexport default SelectName;\n","import { AppContainer, BackLink, Toast } from \"@egovernments/digit-ui-components\";\nimport React, { useEffect, useMemo, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Routes, Route, useLocation, useNavigate } from \"react-router-dom\";\nimport { loginSteps } from \"./config\";\nimport SelectMobileNumber from \"./SelectMobileNumber\";\nimport SelectName from \"./SelectName\";\nimport SelectOtp from \"./SelectOtp\";\n\nconst TYPE_REGISTER = { type: \"register\" };\nconst TYPE_LOGIN = { type: \"login\" };\nconst DEFAULT_USER = \"digit-user\";\nlet DEFAULT_REDIRECT_URL = `/${window?.contextPath || window?.globalConfigs?.getConfig(\"CONTEXT_PATH\")}/citizen`;\n\n/* set citizen details to enable backward compatible */\nconst setCitizenDetail = (userObject, token, tenantId) => {\n if (Digit.Utils.getMultiRootTenant()) {\n return;\n }\n let locale = JSON.parse(sessionStorage.getItem(\"Digit.initData\"))?.value?.selectedLanguage;\n localStorage.setItem(\"Citizen.tenant-id\", tenantId);\n localStorage.setItem(\"tenant-id\", tenantId);\n localStorage.setItem(\"citizen.userRequestObject\", JSON.stringify(userObject));\n localStorage.setItem(\"locale\", locale);\n localStorage.setItem(\"Citizen.locale\", locale);\n localStorage.setItem(\"token\", token);\n localStorage.setItem(\"Citizen.token\", token);\n localStorage.setItem(\"user-info\", JSON.stringify(userObject));\n localStorage.setItem(\"Citizen.user-info\", JSON.stringify(userObject));\n};\n\nconst getFromLocation = (state, searchParams) => {\n return state?.from || searchParams?.from || DEFAULT_REDIRECT_URL;\n};\n\nconst IndividualLogin = ({ stateCode, isUserRegistered = false }) => {\n const { t } = useTranslation();\n const location = useLocation();\n const navigate = useNavigate();\n const [user, setUser] = useState(null);\n const [error, setError] = useState(null);\n const [isOtpValid, setIsOtpValid] = useState(true);\n const [params, setParams] = useState(isUserRegistered ? {} : location?.state?.data);\n const [errorTO, setErrorTO] = useState(null);\n const searchParams = Digit.Hooks.useQueryParams();\n const [canSubmitName, setCanSubmitName] = useState(false);\n const [canSubmitOtp, setCanSubmitOtp] = useState(true);\n const [canSubmitNo, setCanSubmitNo] = useState(true);\n\n const individualServicePath = window?.globalConfigs?.getConfig(\"INDIVIDUAL_SERVICE_CONTEXT_PATH\");\n\n useEffect(() => {\n let errorTimeout;\n if (error) {\n if (errorTO) {\n clearTimeout(errorTO);\n setErrorTO(null);\n }\n errorTimeout = setTimeout(() => {\n setError(\"\");\n }, 5000);\n setErrorTO(errorTimeout);\n }\n return () => {\n errorTimeout && clearTimeout(errorTimeout);\n };\n }, [error]);\n\n useEffect(() => {\n if (!user) {\n return;\n }\n Digit.SessionStorage.set(\"citizen.userRequestObject\", user);\n Digit.UserService.setUser(user);\n setCitizenDetail(user?.info, user?.access_token, stateCode);\n const redirectPath = location.state?.from || DEFAULT_REDIRECT_URL;\n if (!Digit.ULBService.getCitizenCurrentTenant(true)) {\n navigate(\n `/${window?.contextPath}/citizen/select-location`,\n { state: { redirectBackTo: redirectPath }, replace: true }\n );\n } else {\n navigate(redirectPath, { replace: true });\n }\n }, [user]);\n\n const stepItems = useMemo(() =>\n loginSteps.map(\n (step) => {\n const texts = {};\n for (const key in step.texts) {\n texts[key] = t(step.texts[key]);\n }\n return { ...step, texts };\n },\n \n ), [loginSteps]\n );\n\n const getUserType = () => \"citizen\" || Digit.UserService.getType();\n\n const handleOtpChange = (otp) => {\n setParams({ ...params, otp });\n };\n\n const handleMobileChange = (event) => {\n const { value } = event.target;\n setParams({ ...params, mobileNumber: value });\n };\n\n const handleEmailChange = (event) => {\n const { value } = event.target;\n setParams({ ...params, userName: value });\n };\n\n const selectMobileNumber = async (mobileNumber) => {\n setCanSubmitNo(false);\n setParams({ ...params, ...mobileNumber });\n const data = {\n ...mobileNumber,\n tenantId: stateCode,\n userType: getUserType(),\n };\n\n const [res, err] = await sendOtp({ otp: { ...data, ...TYPE_LOGIN } });\n if (!err) {\n setCanSubmitNo(true);\n navigate(`otp`, { \n state: { \n from: getFromLocation(location.state, searchParams) \n }, \n replace: true \n });\n return;\n } else {\n setCanSubmitNo(true);\n navigate(`name`, {\n state: {\n from: getFromLocation(location.state, searchParams),\n data: data\n },\n replace: true\n });\n }\n };\n\n const selectName = async (name) => {\n setCanSubmitName(true);\n\n const userData = {\n ...params,\n ...name,\n };\n\n setParams(userData);\n\n // Call the Individual service registration API\n const registerURL = `${individualServicePath}/v1/_register`;\n\n const requestData = {\n IndividualRegister: {\n tenantId: stateCode,\n name: userData.name,\n emailId: userData.userName || \"\",\n mobileNumber: userData.mobileNumber || \"\",\n requestType: \"Register\"\n }\n };\n\n try {\n const registerResponse = await Digit.CustomService.getResponse({\n url: registerURL,\n body: requestData,\n useCache: false,\n method: \"POST\",\n userService: false,\n auth: false,\n params: {}\n });\n\n if (!registerResponse) {\n throw new Error(\"Registration API failed\");\n }\n\n setCanSubmitName(false);\n // After registration, go to OTP screen\n navigate(`otp`, {\n state: {\n from: getFromLocation(location.state, searchParams)\n },\n replace: true\n });\n\n } catch (err) {\n console.error(\"Registration error:\", err);\n setCanSubmitName(false);\n setError(t(\"REGISTRATION_FAILED\") || \"Registration failed. Please try again.\");\n }\n };\n\n const selectOtp = async () => {\n try {\n setIsOtpValid(true);\n setCanSubmitOtp(false);\n const { mobileNumber, otp, userName } = params;\n\n // Authenticate with OTP\n const requestData = {\n username: mobileNumber || userName,\n password: otp,\n tenantId: stateCode,\n userType: getUserType(),\n };\n\n const { ResponseInfo, UserRequest: info, ...tokens } = await Digit.UserService.authenticate(requestData);\n\n if (window?.globalConfigs?.getConfig(\"ENABLE_SINGLEINSTANCE\")) {\n info.tenantId = Digit.ULBService.getStateId();\n }\n\n setUser({ info, ...tokens });\n\n } catch (err) {\n setCanSubmitOtp(true);\n setIsOtpValid(false);\n setError(t(\"INVALID_OTP\") || \"Invalid OTP\");\n }\n };\n\n const resendOtp = async () => {\n if (!isUserRegistered) {\n // For registration flow, user needs to complete registration first\n setError(t(\"PLEASE_COMPLETE_REGISTRATION\") || \"Please enter the OTP sent during registration.\");\n } else {\n // For login flow, resend OTP\n const { mobileNumber, userName } = params;\n const data = {\n mobileNumber,\n userName,\n tenantId: stateCode,\n userType: getUserType(),\n };\n const [res, err] = await sendOtp({ otp: { ...data, ...TYPE_LOGIN } });\n if (err) {\n setError(t(\"OTP_RESEND_ERROR\") || \"Failed to resend OTP\");\n }\n }\n };\n\n const sendOtp = async (data) => {\n try {\n const res = await Digit.UserService.sendOtp(data, stateCode);\n return [res, null];\n } catch (err) {\n return [null, err];\n }\n };\n\n return (\n <div className=\"citizen-form-wrapper citizen-form-center\">\n <AppContainer>\n {location.pathname.includes(\"login\") ? null : <BackLink onClick={() => window.history.back()} />}\n <Routes>\n <Route\n path=\"/\" \n element={\n <SelectMobileNumber\n onSelect={selectMobileNumber}\n config={stepItems[0]}\n mobileNumber={params.mobileNumber || \"\"}\n emailId={params.userName || \"\"}\n onMobileChange={handleMobileChange}\n onEmailChange={handleEmailChange}\n canSubmit={canSubmitNo}\n showRegisterLink={isUserRegistered}\n t={t}\n />\n } \n />\n <Route \n path=\"otp\" \n element={\n <SelectOtp\n config={{ \n ...stepItems[1], \n texts: { \n ...stepItems[1].texts, \n cardText: `${stepItems[1].texts.cardText} ${params.mobileNumber || params.userName || \"\"}` \n } \n }}\n onOtpChange={handleOtpChange}\n onResend={resendOtp}\n onSelect={selectOtp}\n otp={params.otp}\n error={isOtpValid}\n canSubmit={canSubmitOtp}\n t={t}\n />\n } \n />\n <Route \n path=\"name\" \n element={\n <SelectName \n config={stepItems[2]} \n onSelect={selectName} \n t={t} \n isDisabled={canSubmitName} \n />\n } \n />\n </Routes>\n {error && <Toast type={\"error\"} label={error} onClose={() => setError(null)} />}\n </AppContainer>\n </div>\n );\n};\n\nexport default IndividualLogin;","import { AppContainer, BackLink, Toast } from \"@egovernments/digit-ui-components\";\nimport React, { useEffect, useMemo, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Routes, Route, useLocation, useNavigate } from \"react-router-dom\";\nimport { loginSteps } from \"./config\";\nimport SelectMobileNumber from \"./SelectMobileNumber\";\nimport SelectName from \"./SelectName\";\nimport SelectOtp from \"./SelectOtp\";\nimport IndividualLogin from \"./IndividualLogin\";\n\nconst TYPE_REGISTER = { type: \"register\" };\nconst TYPE_LOGIN = { type: \"login\" };\nconst DEFAULT_USER = \"digit-user\";\nconst DEFAULT_REDIRECT_URL = `/${window?.contextPath}/citizen`;\n\n/* set citizen details to enable backward compatible */\nconst setCitizenDetail = (userObject, token, tenantId) => {\n if (Digit.Utils.getMultiRootTenant()) {\n return;\n }\n let locale = JSON.parse(sessionStorage.getItem(\"Digit.initData\"))?.value?.selectedLanguage;\n localStorage.setItem(\"Citizen.tenant-id\", tenantId);\n localStorage.setItem(\"tenant-id\", tenantId);\n localStorage.setItem(\"citizen.userRequestObject\", JSON.stringify(userObject));\n localStorage.setItem(\"locale\", locale);\n localStorage.setItem(\"Citizen.locale\", locale);\n localStorage.setItem(\"token\", token);\n localStorage.setItem(\"Citizen.token\", token);\n localStorage.setItem(\"user-info\", JSON.stringify(userObject));\n localStorage.setItem(\"Citizen.user-info\", JSON.stringify(userObject));\n};\n\nconst getFromLocation = (state, searchParams) => {\n return state?.from || searchParams?.from || DEFAULT_REDIRECT_URL;\n};\n\nconst Login = ({ stateCode, isUserRegistered = true }) => {\n // Check if individual should be used for login\n const useAnIndividual = window?.globalConfigs?.getConfig(\"USE_INDIVIDUAL_MODEL\");\n const individualServicePath = window?.globalConfigs?.getConfig(\"INDIVIDUAL_SERVICE_CONTEXT_PATH\");\n\n // If useAnIndividual exists, use IndividualLogin component\n if (useAnIndividual && individualServicePath) {\n return <IndividualLogin stateCode={stateCode} isUserRegistered={isUserRegistered} />;\n }\n\n // Otherwise, continue with standard login flow\n const { t } = useTranslation();\n const location = useLocation();\n const navigate = useNavigate(); // Replaced useHistory with useNavigate\n // useRouteMatch is removed in v6. Path matching is handled by Routes/Route.\n // `path` and `url` were used for constructing sub-routes. In v6, paths are often relative.\n const [user, setUser] = useState(null);\n const [error, setError] = useState(null);\n const [isOtpValid, setIsOtpValid] = useState(true);\n const [params, setParams] = useState(isUserRegistered ? {} : location?.state?.data);\n const [errorTO, setErrorTO] = useState(null);\n const searchParams = Digit.Hooks.useQueryParams();\n const [canSubmitName, setCanSubmitName] = useState(false);\n const [canSubmitOtp, setCanSubmitOtp] = useState(true);\n const [canSubmitNo, setCanSubmitNo] = useState(true);\n\n useEffect(() => {\n let errorTimeout;\n if (error) {\n if (errorTO) {\n clearTimeout(errorTO);\n setErrorTO(null);\n }\n errorTimeout = setTimeout(() => {\n setError(\"\");\n }, 5000);\n setErrorTO(errorTimeout);\n }\n return () => {\n errorTimeout && clearTimeout(errorTimeout);\n };\n }, [error]);\n\n useEffect(() => {\n if (!user) {\n return;\n }\n Digit.SessionStorage.set(\"citizen.userRequestObject\", user);\n Digit.UserService.setUser(user);\n setCitizenDetail(user?.info, user?.access_token, stateCode);\n const redirectPath = location.state?.from || DEFAULT_REDIRECT_URL;\n if (!Digit.ULBService.getCitizenCurrentTenant(true)) {\n navigate(\n `/${window?.contextPath}/citizen/select-location`,\n { state: { redirectBackTo: redirectPath }, replace: true }\n );\n } else {\n navigate(redirectPath, { replace: true });\n }\n }, [user]);\n\n const stepItems = useMemo(\n () =>\n loginSteps.map((step) => {\n const texts = {};\n for (const key in step.texts) {\n texts[key] = t(step.texts[key]);\n }\n return { ...step, texts };\n }),\n [loginSteps]\n );\n\n const getUserType = () => \"citizen\" || Digit.UserService.getType();\n\n const handleOtpChange = (otp) => {\n setParams({ ...params, otp });\n };\n\n const handleMobileChange = (event) => {\n const { value } = event.target;\n setParams({ ...params, mobileNumber: value });\n };\n\n const selectMobileNumber = async (mobileNumber) => {\n setCanSubmitNo(false);\n setParams({ ...params, ...mobileNumber });\n const data = {\n ...mobileNumber,\n tenantId: stateCode,\n userType: getUserType(),\n };\n if (isUserRegistered) {\n const [res, err] = await sendOtp({ otp: { ...data, ...TYPE_LOGIN } });\n if (!err) {\n setCanSubmitNo(true);\n // Use relative path for navigation, `.` means current base path\n navigate(`otp`, { state: { from: getFromLocation(location.state, searchParams), role: location.state?.role }, replace: true });\n return;\n } else {\n setCanSubmitNo(true);\n if (!(location.state && location.state.role === \"FSM_DSO\")) {\n // Use absolute path if navigating outside the current route's scope, or relative if it's a sibling route\n navigate(`/${window?.contextPath}/citizen/register/name`, { state: { from: getFromLocation(location.state, searchParams), data: data } });\n }\n }\n if (location.state?.role) {\n setCanSubmitNo(true);\n setError(location.state?.role === \"FSM_DSO\" ? t(\"ES_ERROR_DSO_LOGIN\") : \"User not registered.\");\n }\n } else {\n const [res, err] = await sendOtp({ otp: { ...data, ...TYPE_REGISTER } });\n if (!err) {\n setCanSubmitNo(true);\n navigate(`otp`, { state: { from: getFromLocation(location.state, searchParams) }, replace: true });\n return;\n }\n setCanSubmitNo(true);\n }\n };\n\n const selectName = async (name) => {\n const data = {\n ...params,\n tenantId: stateCode,\n userType: getUserType(),\n ...name,\n };\n setParams({ ...params, ...name });\n setCanSubmitName(true);\n const [res, err] = await sendOtp({ otp: { ...data, ...TYPE_REGISTER } });\n if (res) {\n setCanSubmitName(false);\n navigate(`otp`, { state: { from: getFromLocation(location.state, searchParams) }, replace: true });\n } else {\n setCanSubmitName(false);\n }\n };\n\n const selectOtp = async () => {\n try {\n setIsOtpValid(true);\n setCanSubmitOtp(false);\n const { mobileNumber, otp, name } = params;\n if (isUserRegistered) {\n const requestData = {\n username: mobileNumber,\n password: otp,\n tenantId: stateCode,\n userType: getUserType(),\n };\n const { ResponseInfo, UserRequest: info, ...tokens } = await Digit.UserService.authenticate(requestData);\n\n if (location.state?.role) {\n const roleInfo = info.roles.find((userRole) => userRole.code === location.state.role);\n if (!roleInfo || !roleInfo.code) {\n setError(t(\"ES_ERROR_USER_NOT_PERMITTED\"));\n // navigate also handles timeouts for redirects\n setTimeout(() => navigate(DEFAULT_REDIRECT_URL, { replace: true }), 5000);\n return;\n }\n }\n if (window?.globalConfigs?.getConfig(\"ENABLE_SINGLEINSTANCE\")) {\n info.tenantId = Digit.ULBService.getStateId();\n }\n\n setUser({ info, ...tokens });\n } else if (!isUserRegistered) {\n const requestData = {\n name,\n username: mobileNumber,\n otpReference: otp,\n tenantId: stateCode,\n };\n\n const { ResponseInfo, UserRequest: info, ...tokens } = await Digit.UserService.registerUser(requestData, stateCode);\n\n if (window?.globalConfigs?.getConfig(\"ENABLE_SINGLEINSTANCE\")) {\n info.tenantId = Digit.ULBService.getStateId();\n }\n\n setUser({ info, ...tokens });\n }\n } catch (err) {\n setCanSubmitOtp(true);\n setIsOtpValid(false);\n }\n };\n\n const resendOtp = async () => {\n const { mobileNumber } = params;\n const data = {\n mobileNumber,\n tenantId: stateCode,\n userType: getUserType(),\n };\n if (!isUserRegistered) {\n const [res, err] = await sendOtp({ otp: { ...data, ...TYPE_REGISTER } });\n } else if (isUserRegistered) {\n const [res, err] = await sendOtp({ otp: { ...data, ...TYPE_LOGIN } });\n }\n };\n\n const sendOtp = async (data) => {\n try {\n const res = await Digit.UserService.sendOtp(data, stateCode);\n return [res, null];\n } catch (err) {\n return [null, err];\n }\n };\n\n const isCitizenDesktop = window.location.href.includes(\"citizen\") && !window.Digit.Utils.browser.isMobile();\n\n return (\n <div className={`citizen-form-wrapper${isCitizenDesktop ? ' citizen-form-center' : ''}`}>\n <AppContainer>\n {/* BackLink now uses navigate(-1) for going back */}\n {location.pathname.includes(\"login\") ? null : <BackLink onClick={() => navigate(-1)} />}\n <Routes> {/* Replaced Switch with Routes */}\n {/* Route path is now relative to the parent <Routes> */}\n <Route\n path=\"/\" // This will match the base path where this component is rendered (e.g., /citizen/login if mounted there)\n element={\n <SelectMobileNumber\n onSelect={selectMobileNumber}\n config={stepItems[0]}\n mobileNumber={params.mobileNumber || \"\"}\n onMobileChange={handleMobileChange}\n canSubmit={canSubmitNo}\n showRegisterLink={isUserRegistered && !location.state?.role}\n t={t}\n />\n }\n />\n <Route\n path=\"otp\" // This will match /path/to/current/route/otp\n element={\n <SelectOtp\n config={{ ...stepItems[1], texts: { ...stepItems[1].texts, cardText: `${stepItems[1].texts.cardText} ${params.mobileNumber || \"\"}` } }}\n onOtpChange={handleOtpChange}\n onResend={resendOtp}\n onSelect={selectOtp}\n otp={params.otp}\n error={isOtpValid}\n canSubmit={canSubmitOtp}\n t={t}\n />\n }\n />\n <Route\n path=\"name\" // This will match /path/to/current/route/name\n element={<SelectName config={stepItems[2]} onSelect={selectName} t={t} isDisabled={canSubmitName} />}\n />\n {error && <Toast type={\"error\"} label={error} onClose={() => setError(null)} />}\n </Routes>\n </AppContainer>\n </div>\n );\n};\n\nexport default Login;","import React from 'react';\n\nvar isCheckBoxInput = (element) => element.type === 'checkbox';\n\nvar isDateObject = (value) => value instanceof Date;\n\nvar isNullOrUndefined = (value) => value == null;\n\nconst isObjectType = (value) => typeof value === 'object';\nvar isObject = (value) => !isNullOrUndefined(value) &&\n !Array.isArray(value) &&\n isObjectType(value) &&\n !isDateObject(value);\n\nvar getEventValue = (event) => isObject(event) && event.target\n ? isCheckBoxInput(event.target)\n ? event.target.checked\n : event.target.value\n : event;\n\nvar getNodeParentName = (name) => name.substring(0, name.search(/\\.\\d+(\\.|$)/)) || name;\n\nvar isNameInFieldArray = (names, name) => names.has(getNodeParentName(name));\n\nvar isPlainObject = (tempObject) => {\n const prototypeCopy = tempObject.constructor && tempObject.constructor.prototype;\n return (isObject(prototypeCopy) && prototypeCopy.hasOwnProperty('isPrototypeOf'));\n};\n\nvar isWeb = typeof window !== 'undefined' &&\n typeof window.HTMLElement !== 'undefined' &&\n typeof document !== 'undefined';\n\nfunction cloneObject(data) {\n let copy;\n const isArray = Array.isArray(data);\n if (data instanceof Date) {\n copy = new Date(data);\n }\n else if (data instanceof Set) {\n copy = new Set(data);\n }\n else if (!(isWeb && (data instanceof Blob || data instanceof FileList)) &&\n (isArray || isObject(data))) {\n copy = isArray ? [] : {};\n if (!isArray && !isPlainObject(data)) {\n copy = data;\n }\n else {\n for (const key in data) {\n if (data.hasOwnProperty(key)) {\n copy[key] = cloneObject(data[key]);\n }\n }\n }\n }\n else {\n return data;\n }\n return copy;\n}\n\nvar compact = (value) => Array.isArray(value) ? value.filter(Boolean) : [];\n\nvar isUndefined = (val) => val === undefined;\n\nvar get = (object, path, defaultValue) => {\n if (!path || !isObject(object)) {\n return defaultValue;\n }\n const result = compact(path.split(/[,[\\].]+?/)).reduce((result, key) => isNullOrUndefined(result) ? result : result[key], object);\n return isUndefined(result) || result === object\n ? isUndefined(object[path])\n ? defaultValue\n : object[path]\n : result;\n};\n\nvar isBoolean = (value) => typeof value === 'boolean';\n\nvar isKey = (value) => /^\\w*$/.test(value);\n\nvar stringToPath = (input) => compact(input.replace(/[\"|']|\\]/g, '').split(/\\.|\\[/));\n\nvar set = (object, path, value) => {\n let index = -1;\n const tempPath = isKey(path) ? [path] : stringToPath(path);\n const length = tempPath.length;\n const lastIndex = length - 1;\n while (++index < length) {\n const key = tempPath[index];\n let newValue = value;\n if (index !== lastIndex) {\n const objValue = object[key];\n newValue =\n isObject(objValue) || Array.isArray(objValue)\n ? objValue\n : !isNaN(+tempPath[index + 1])\n ? []\n : {};\n }\n if (key === '__proto__') {\n return;\n }\n object[key] = newValue;\n object = object[key];\n }\n return object;\n};\n\nconst EVENTS = {\n BLUR: 'blur',\n FOCUS_OUT: 'focusout',\n CHANGE: 'change',\n};\nconst VALIDATION_MODE = {\n onBlur: 'onBlur',\n onChange: 'onChange',\n onSubmit: 'onSubmit',\n onTouched: 'onTouched',\n all: 'all',\n};\nconst INPUT_VALIDATION_RULES = {\n max: 'max',\n min: 'min',\n maxLength: 'maxLength',\n minLength: 'minLength',\n pattern: 'pattern',\n required: 'required',\n validate: 'validate',\n};\n\nconst HookFormContext = React.createContext(null);\n/**\n * This custom hook allows you to access the form context. useFormContext is intended to be used in deeply nested structures, where it would become inconvenient to pass the context as a prop. To be used with {@link FormProvider}.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useformcontext) • [Demo](https://codesandbox.io/s/react-hook-form-v7-form-context-ytudi)\n *\n * @returns return all useForm methods\n *\n * @example\n * ```tsx\n * function App() {\n * const methods = useForm();\n * const onSubmit = data => console.log(data);\n *\n * return (\n * <FormProvider {...methods} >\n * <form onSubmit={methods.handleSubmit(onSubmit)}>\n * <NestedInput />\n * <input type=\"submit\" />\n * </form>\n * </FormProvider>\n * );\n * }\n *\n * function NestedInput() {\n * const { register } = useFormContext(); // retrieve all hook methods\n * return <input {...register(\"test\")} />;\n * }\n * ```\n */\nconst useFormContext = () => React.useContext(HookFormContext);\n/**\n * A provider component that propagates the `useForm` methods to all children components via [React Context](https://reactjs.org/docs/context.html) API. To be used with {@link useFormContext}.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useformcontext) • [Demo](https://codesandbox.io/s/react-hook-form-v7-form-context-ytudi)\n *\n * @param props - all useForm methods\n *\n * @example\n * ```tsx\n * function App() {\n * const methods = useForm();\n * const onSubmit = data => console.log(data);\n *\n * return (\n * <FormProvider {...methods} >\n * <form onSubmit={methods.handleSubmit(onSubmit)}>\n * <NestedInput />\n * <input type=\"submit\" />\n * </form>\n * </FormProvider>\n * );\n * }\n *\n * function NestedInput() {\n * const { register } = useFormContext(); // retrieve all hook methods\n * return <input {...register(\"test\")} />;\n * }\n * ```\n */\nconst FormProvider = (props) => {\n const { children, ...data } = props;\n return (React.createElement(HookFormContext.Provider, { value: data }, children));\n};\n\nvar getProxyFormState = (formState, control, localProxyFormState, isRoot = true) => {\n const result = {\n defaultValues: control._defaultValues,\n };\n for (const key in formState) {\n Object.defineProperty(result, key, {\n get: () => {\n const _key = key;\n if (control._proxyFormState[_key] !== VALIDATION_MODE.all) {\n control._proxyFormState[_key] = !isRoot || VALIDATION_MODE.all;\n }\n localProxyFormState && (localProxyFormState[_key] = true);\n return formState[_key];\n },\n });\n }\n return result;\n};\n\nvar isEmptyObject = (value) => isObject(value) && !Object.keys(value).length;\n\nvar shouldRenderFormState = (formStateData, _proxyFormState, updateFormState, isRoot) => {\n updateFormState(formStateData);\n const { name, ...formState } = formStateData;\n return (isEmptyObject(formState) ||\n Object.keys(formState).length >= Object.keys(_proxyFormState).length ||\n Object.keys(formState).find((key) => _proxyFormState[key] ===\n (!isRoot || VALIDATION_MODE.all)));\n};\n\nvar convertToArrayPayload = (value) => (Array.isArray(value) ? value : [value]);\n\nvar shouldSubscribeByName = (name, signalName, exact) => !name ||\n !signalName ||\n name === signalName ||\n convertToArrayPayload(name).some((currentName) => currentName &&\n (exact\n ? currentName === signalName\n : currentName.startsWith(signalName) ||\n signalName.startsWith(currentName)));\n\nfunction useSubscribe(props) {\n const _props = React.useRef(props);\n _props.current = props;\n React.useEffect(() => {\n const subscription = !props.disabled &&\n _props.current.subject &&\n _props.current.subject.subscribe({\n next: _props.current.next,\n });\n return () => {\n subscription && subscription.unsubscribe();\n };\n }, [props.disabled]);\n}\n\n/**\n * This custom hook allows you to subscribe to each form state, and isolate the re-render at the custom hook level. It has its scope in terms of form state subscription, so it would not affect other useFormState and useForm. Using this hook can reduce the re-render impact on large and complex form application.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useformstate) • [Demo](https://codesandbox.io/s/useformstate-75xly)\n *\n * @param props - include options on specify fields to subscribe. {@link UseFormStateReturn}\n *\n * @example\n * ```tsx\n * function App() {\n * const { register, handleSubmit, control } = useForm({\n * defaultValues: {\n * firstName: \"firstName\"\n * }});\n * const { dirtyFields } = useFormState({\n * control\n * });\n * const onSubmit = (data) => console.log(data);\n *\n * return (\n * <form onSubmit={handleSubmit(onSubmit)}>\n * <input {...register(\"firstName\")} placeholder=\"First Name\" />\n * {dirtyFields.firstName && <p>Field is dirty.</p>}\n * <input type=\"submit\" />\n * </form>\n * );\n * }\n * ```\n */\nfunction useFormState(props) {\n const methods = useFormContext();\n const { control = methods.control, disabled, name, exact } = props || {};\n const [formState, updateFormState] = React.useState(control._formState);\n const _mounted = React.useRef(true);\n const _localProxyFormState = React.useRef({\n isDirty: false,\n isLoading: false,\n dirtyFields: false,\n touchedFields: false,\n validatingFields: false,\n isValidating: false,\n isValid: false,\n errors: false,\n });\n const _name = React.useRef(name);\n _name.current = name;\n useSubscribe({\n disabled,\n next: (value) => _mounted.current &&\n shouldSubscribeByName(_name.current, value.name, exact) &&\n shouldRenderFormState(value, _localProxyFormState.current, control._updateFormState) &&\n updateFormState({\n ...control._formState,\n ...value,\n }),\n subject: control._subjects.state,\n });\n React.useEffect(() => {\n _mounted.current = true;\n _localProxyFormState.current.isValid && control._updateValid(true);\n return () => {\n _mounted.current = false;\n };\n }, [control]);\n return getProxyFormState(formState, control, _localProxyFormState.current, false);\n}\n\nvar isString = (value) => typeof value === 'string';\n\nvar generateWatchOutput = (names, _names, formValues, isGlobal, defaultValue) => {\n if (isString(names)) {\n isGlobal && _names.watch.add(names);\n return get(formValues, names, defaultValue);\n }\n if (Array.isArray(names)) {\n return names.map((fieldName) => (isGlobal && _names.watch.add(fieldName), get(formValues, fieldName)));\n }\n isGlobal && (_names.watchAll = true);\n return formValues;\n};\n\n/**\n * Custom hook to subscribe to field change and isolate re-rendering at the component level.\n *\n * @remarks\n *\n * [API](https://react-hook-form.com/docs/usewatch) • [Demo](https://codesandbox.io/s/react-hook-form-v7-ts-usewatch-h9i5e)\n *\n * @example\n * ```tsx\n * const { control } = useForm();\n * const values = useWatch({\n * name: \"fieldName\"\n * control,\n * })\n * ```\n */\nfunction useWatch(props) {\n const methods = useFormContext();\n const { control = methods.control, name, defaultValue, disabled, exact, } = props || {};\n const _name = React.useRef(name);\n _name.current = name;\n useSubscribe({\n disabled,\n subject: control._subjects.values,\n next: (formState) => {\n if (shouldSubscribeByName(_name.current, formState.name, exact)) {\n updateValue(cloneObject(generateWatchOutput(_name.current, control._names, formState.values || control._formValues, false, defaultValue)));\n }\n },\n });\n const [value, updateValue] = React.useState(control._getWatch(name, defaultValue));\n React.useEffect(() => control._removeUnmounted());\n return value;\n}\n\n/**\n * Custom hook to work with controlled component, this function provide you with both form and field level state. Re-render is isolated at the hook level.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/usecontroller) • [Demo](https://codesandbox.io/s/usecontroller-0o8px)\n *\n * @param props - the path name to the form field value, and validation rules.\n *\n * @returns field properties, field and form state. {@link UseControllerReturn}\n *\n * @example\n * ```tsx\n * function Input(props) {\n * const { field, fieldState, formState } = useController(props);\n * return (\n * <div>\n * <input {...field} placeholder={props.name} />\n * <p>{fieldState.isTouched && \"Touched\"}</p>\n * <p>{formState.isSubmitted ? \"submitted\" : \"\"}</p>\n * </div>\n * );\n * }\n * ```\n */\nfunction useController(props) {\n const methods = useFormContext();\n const { name, disabled, control = methods.control, shouldUnregister } = props;\n const isArrayField = isNameInFieldArray(control._names.array, name);\n const value = useWatch({\n control,\n name,\n defaultValue: get(control._formValues, name, get(control._defaultValues, name, props.defaultValue)),\n exact: true,\n });\n const formState = useFormState({\n control,\n name,\n exact: true,\n });\n const _registerProps = React.useRef(control.register(name, {\n ...props.rules,\n value,\n ...(isBoolean(props.disabled) ? { disabled: props.disabled } : {}),\n }));\n React.useEffect(() => {\n const _shouldUnregisterField = control._options.shouldUnregister || shouldUnregister;\n const updateMounted = (name, value) => {\n const field = get(control._fields, name);\n if (field && field._f) {\n field._f.mount = value;\n }\n };\n updateMounted(name, true);\n if (_shouldUnregisterField) {\n const value = cloneObject(get(control._options.defaultValues, name));\n set(control._defaultValues, name, value);\n if (isUndefined(get(control._formValues, name))) {\n set(control._formValues, name, value);\n }\n }\n return () => {\n (isArrayField\n ? _shouldUnregisterField && !control._state.action\n : _shouldUnregisterField)\n ? control.unregister(name)\n : updateMounted(name, false);\n };\n }, [name, control, isArrayField, shouldUnregister]);\n React.useEffect(() => {\n if (get(control._fields, name)) {\n control._updateDisabledField({\n disabled,\n fields: control._fields,\n name,\n value: get(control._fields, name)._f.value,\n });\n }\n }, [disabled, name, control]);\n return {\n field: {\n name,\n value,\n ...(isBoolean(disabled) || formState.disabled\n ? { disabled: formState.disabled || disabled }\n : {}),\n onChange: React.useCallback((event) => _registerProps.current.onChange({\n target: {\n value: getEventValue(event),\n name: name,\n },\n type: EVENTS.CHANGE,\n }), [name]),\n onBlur: React.useCallback(() => _registerProps.current.onBlur({\n target: {\n value: get(control._formValues, name),\n name: name,\n },\n type: EVENTS.BLUR,\n }), [name, control]),\n ref: React.useCallback((elm) => {\n const field = get(control._fields, name);\n if (field && elm) {\n field._f.ref = {\n focus: () => elm.focus(),\n select: () => elm.select(),\n setCustomValidity: (message) => elm.setCustomValidity(message),\n reportValidity: () => elm.reportValidity(),\n };\n }\n }, [control._fields, name]),\n },\n formState,\n fieldState: Object.defineProperties({}, {\n invalid: {\n enumerable: true,\n get: () => !!get(formState.errors, name),\n },\n isDirty: {\n enumerable: true,\n get: () => !!get(formState.dirtyFields, name),\n },\n isTouched: {\n enumerable: true,\n get: () => !!get(formState.touchedFields, name),\n },\n isValidating: {\n enumerable: true,\n get: () => !!get(formState.validatingFields, name),\n },\n error: {\n enumerable: true,\n get: () => get(formState.errors, name),\n },\n }),\n };\n}\n\n/**\n * Component based on `useController` hook to work with controlled component.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/usecontroller/controller) • [Demo](https://codesandbox.io/s/react-hook-form-v6-controller-ts-jwyzw) • [Video](https://www.youtube.com/watch?v=N2UNk_UCVyA)\n *\n * @param props - the path name to the form field value, and validation rules.\n *\n * @returns provide field handler functions, field and form state.\n *\n * @example\n * ```tsx\n * function App() {\n * const { control } = useForm<FormValues>({\n * defaultValues: {\n * test: \"\"\n * }\n * });\n *\n * return (\n * <form>\n * <Controller\n * control={control}\n * name=\"test\"\n * render={({ field: { onChange, onBlur, value, ref }, formState, fieldState }) => (\n * <>\n * <input\n * onChange={onChange} // send value to hook form\n * onBlur={onBlur} // notify when input is touched\n * value={value} // return updated value\n * ref={ref} // set ref for focus management\n * />\n * <p>{formState.isSubmitted ? \"submitted\" : \"\"}</p>\n * <p>{fieldState.isTouched ? \"touched\" : \"\"}</p>\n * </>\n * )}\n * />\n * </form>\n * );\n * }\n * ```\n */\nconst Controller = (props) => props.render(useController(props));\n\nconst POST_REQUEST = 'post';\n/**\n * Form component to manage submission.\n *\n * @param props - to setup submission detail. {@link FormProps}\n *\n * @returns form component or headless render prop.\n *\n * @example\n * ```tsx\n * function App() {\n * const { control, formState: { errors } } = useForm();\n *\n * return (\n * <Form action=\"/api\" control={control}>\n * <input {...register(\"name\")} />\n * <p>{errors?.root?.server && 'Server error'}</p>\n * <button>Submit</button>\n * </Form>\n * );\n * }\n * ```\n */\nfunction Form(props) {\n const methods = useFormContext();\n const [mounted, setMounted] = React.useState(false);\n const { control = methods.control, onSubmit, children, action, method = POST_REQUEST, headers, encType, onError, render, onSuccess, validateStatus, ...rest } = props;\n const submit = async (event) => {\n let hasError = false;\n let type = '';\n await control.handleSubmit(async (data) => {\n const formData = new FormData();\n let formDataJson = '';\n try {\n formDataJson = JSON.stringify(data);\n }\n catch (_a) { }\n for (const name of control._names.mount) {\n formData.append(name, get(data, name));\n }\n if (onSubmit) {\n await onSubmit({\n data,\n event,\n method,\n formData,\n formDataJson,\n });\n }\n if (action) {\n try {\n const shouldStringifySubmissionData = [\n headers && headers['Content-Type'],\n encType,\n ].some((value) => value && value.includes('json'));\n const response = await fetch(action, {\n method,\n headers: {\n ...headers,\n ...(encType ? { 'Content-Type': encType } : {}),\n },\n body: shouldStringifySubmissionData ? formDataJson : formData,\n });\n if (response &&\n (validateStatus\n ? !validateStatus(response.status)\n : response.status < 200 || response.status >= 300)) {\n hasError = true;\n onError && onError({ response });\n type = String(response.status);\n }\n else {\n onSuccess && onSuccess({ response });\n }\n }\n catch (error) {\n hasError = true;\n onError && onError({ error });\n }\n }\n })(event);\n if (hasError && props.control) {\n props.control._subjects.state.next({\n isSubmitSuccessful: false,\n });\n props.control.setError('root.server', {\n type,\n });\n }\n };\n React.useEffect(() => {\n setMounted(true);\n }, []);\n return render ? (React.createElement(React.Fragment, null, render({\n submit,\n }))) : (React.createElement(\"form\", { noValidate: mounted, action: action, method: method, encType: encType, onSubmit: submit, ...rest }, children));\n}\n\nvar appendErrors = (name, validateAllFieldCriteria, errors, type, message) => validateAllFieldCriteria\n ? {\n ...errors[name],\n types: {\n ...(errors[name] && errors[name].types ? errors[name].types : {}),\n [type]: message || true,\n },\n }\n : {};\n\nvar generateId = () => {\n const d = typeof performance === 'undefined' ? Date.now() : performance.now() * 1000;\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n const r = (Math.random() * 16 + d) % 16 | 0;\n return (c == 'x' ? r : (r & 0x3) | 0x8).toString(16);\n });\n};\n\nvar getFocusFieldName = (name, index, options = {}) => options.shouldFocus || isUndefined(options.shouldFocus)\n ? options.focusName ||\n `${name}.${isUndefined(options.focusIndex) ? index : options.focusIndex}.`\n : '';\n\nvar getValidationModes = (mode) => ({\n isOnSubmit: !mode || mode === VALIDATION_MODE.onSubmit,\n isOnBlur: mode === VALIDATION_MODE.onBlur,\n isOnChange: mode === VALIDATION_MODE.onChange,\n isOnAll: mode === VALIDATION_MODE.all,\n isOnTouch: mode === VALIDATION_MODE.onTouched,\n});\n\nvar isWatched = (name, _names, isBlurEvent) => !isBlurEvent &&\n (_names.watchAll ||\n _names.watch.has(name) ||\n [..._names.watch].some((watchName) => name.startsWith(watchName) &&\n /^\\.\\w+/.test(name.slice(watchName.length))));\n\nconst iterateFieldsByAction = (fields, action, fieldsNames, abortEarly) => {\n for (const key of fieldsNames || Object.keys(fields)) {\n const field = get(fields, key);\n if (field) {\n const { _f, ...currentField } = field;\n if (_f) {\n if (_f.refs && _f.refs[0] && action(_f.refs[0], key) && !abortEarly) {\n break;\n }\n else if (_f.ref && action(_f.ref, _f.name) && !abortEarly) {\n break;\n }\n else {\n iterateFieldsByAction(currentField, action);\n }\n }\n else if (isObject(currentField)) {\n iterateFieldsByAction(currentField, action);\n }\n }\n }\n};\n\nvar updateFieldArrayRootError = (errors, error, name) => {\n const fieldArrayErrors = convertToArrayPayload(get(errors, name));\n set(fieldArrayErrors, 'root', error[name]);\n set(errors, name, fieldArrayErrors);\n return errors;\n};\n\nvar isFileInput = (element) => element.type === 'file';\n\nvar isFunction = (value) => typeof value === 'function';\n\nvar isHTMLElement = (value) => {\n if (!isWeb) {\n return false;\n }\n const owner = value ? value.ownerDocument : 0;\n return (value instanceof\n (owner && owner.defaultView ? owner.defaultView.HTMLElement : HTMLElement));\n};\n\nvar isMessage = (value) => isString(value);\n\nvar isRadioInput = (element) => element.type === 'radio';\n\nvar isRegex = (value) => value instanceof RegExp;\n\nconst defaultResult = {\n value: false,\n isValid: false,\n};\nconst validResult = { value: true, isValid: true };\nvar getCheckboxValue = (options) => {\n if (Array.isArray(options)) {\n if (options.length > 1) {\n const values = options\n .filter((option) => option && option.checked && !option.disabled)\n .map((option) => option.value);\n return { value: values, isValid: !!values.length };\n }\n return options[0].checked && !options[0].disabled\n ? // @ts-expect-error expected to work in the browser\n options[0].attributes && !isUndefined(options[0].attributes.value)\n ? isUndefined(options[0].value) || options[0].value === ''\n ? validResult\n : { value: options[0].value, isValid: true }\n : validResult\n : defaultResult;\n }\n return defaultResult;\n};\n\nconst defaultReturn = {\n isValid: false,\n value: null,\n};\nvar getRadioValue = (options) => Array.isArray(options)\n ? options.reduce((previous, option) => option && option.checked && !option.disabled\n ? {\n isValid: true,\n value: option.value,\n }\n : previous, defaultReturn)\n : defaultReturn;\n\nfunction getValidateError(result, ref, type = 'validate') {\n if (isMessage(result) ||\n (Array.isArray(result) && result.every(isMessage)) ||\n (isBoolean(result) && !result)) {\n return {\n type,\n message: isMessage(result) ? result : '',\n ref,\n };\n }\n}\n\nvar getValueAndMessage = (validationData) => isObject(validationData) && !isRegex(validationData)\n ? validationData\n : {\n value: validationData,\n message: '',\n };\n\nvar validateField = async (field, formValues, validateAllFieldCriteria, shouldUseNativeValidation, isFieldArray) => {\n const { ref, refs, required, maxLength, minLength, min, max, pattern, validate, name, valueAsNumber, mount, disabled, } = field._f;\n const inputValue = get(formValues, name);\n if (!mount || disabled) {\n return {};\n }\n const inputRef = refs ? refs[0] : ref;\n const setCustomValidity = (message) => {\n if (shouldUseNativeValidation && inputRef.reportValidity) {\n inputRef.setCustomValidity(isBoolean(message) ? '' : message || '');\n inputRef.reportValidity();\n }\n };\n const error = {};\n const isRadio = isRadioInput(ref);\n const isCheckBox = isCheckBoxInput(ref);\n const isRadioOrCheckbox = isRadio || isCheckBox;\n const isEmpty = ((valueAsNumber || isFileInput(ref)) &&\n isUndefined(ref.value) &&\n isUndefined(inputValue)) ||\n (isHTMLElement(ref) && ref.value === '') ||\n inputValue === '' ||\n (Array.isArray(inputValue) && !inputValue.length);\n const appendErrorsCurry = appendErrors.bind(null, name, validateAllFieldCriteria, error);\n const getMinMaxMessage = (exceedMax, maxLengthMessage, minLengthMessage, maxType = INPUT_VALIDATION_RULES.maxLength, minType = INPUT_VALIDATION_RULES.minLength) => {\n const message = exceedMax ? maxLengthMessage : minLengthMessage;\n error[name] = {\n type: exceedMax ? maxType : minType,\n message,\n ref,\n ...appendErrorsCurry(exceedMax ? maxType : minType, message),\n };\n };\n if (isFieldArray\n ? !Array.isArray(inputValue) || !inputValue.length\n : required &&\n ((!isRadioOrCheckbox && (isEmpty || isNullOrUndefined(inputValue))) ||\n (isBoolean(inputValue) && !inputValue) ||\n (isCheckBox && !getCheckboxValue(refs).isValid) ||\n (isRadio && !getRadioValue(refs).isValid))) {\n const { value, message } = isMessage(required)\n ? { value: !!required, message: required }\n : getValueAndMessage(required);\n if (value) {\n error[name] = {\n type: INPUT_VALIDATION_RULES.required,\n message,\n ref: inputRef,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.required, message),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(message);\n return error;\n }\n }\n }\n if (!isEmpty && (!isNullOrUndefined(min) || !isNullOrUndefined(max))) {\n let exceedMax;\n let exceedMin;\n const maxOutput = getValueAndMessage(max);\n const minOutput = getValueAndMessage(min);\n if (!isNullOrUndefined(inputValue) && !isNaN(inputValue)) {\n const valueNumber = ref.valueAsNumber ||\n (inputValue ? +inputValue : inputValue);\n if (!isNullOrUndefined(maxOutput.value)) {\n exceedMax = valueNumber > maxOutput.value;\n }\n if (!isNullOrUndefined(minOutput.value)) {\n exceedMin = valueNumber < minOutput.value;\n }\n }\n else {\n const valueDate = ref.valueAsDate || new Date(inputValue);\n const convertTimeToDate = (time) => new Date(new Date().toDateString() + ' ' + time);\n const isTime = ref.type == 'time';\n const isWeek = ref.type == 'week';\n if (isString(maxOutput.value) && inputValue) {\n exceedMax = isTime\n ? convertTimeToDate(inputValue) > convertTimeToDate(maxOutput.value)\n : isWeek\n ? inputValue > maxOutput.value\n : valueDate > new Date(maxOutput.value);\n }\n if (isString(minOutput.value) && inputValue) {\n exceedMin = isTime\n ? convertTimeToDate(inputValue) < convertTimeToDate(minOutput.value)\n : isWeek\n ? inputValue < minOutput.value\n : valueDate < new Date(minOutput.value);\n }\n }\n if (exceedMax || exceedMin) {\n getMinMaxMessage(!!exceedMax, maxOutput.message, minOutput.message, INPUT_VALIDATION_RULES.max, INPUT_VALIDATION_RULES.min);\n if (!validateAllFieldCriteria) {\n setCustomValidity(error[name].message);\n return error;\n }\n }\n }\n if ((maxLength || minLength) &&\n !isEmpty &&\n (isString(inputValue) || (isFieldArray && Array.isArray(inputValue)))) {\n const maxLengthOutput = getValueAndMessage(maxLength);\n const minLengthOutput = getValueAndMessage(minLength);\n const exceedMax = !isNullOrUndefined(maxLengthOutput.value) &&\n inputValue.length > +maxLengthOutput.value;\n const exceedMin = !isNullOrUndefined(minLengthOutput.value) &&\n inputValue.length < +minLengthOutput.value;\n if (exceedMax || exceedMin) {\n getMinMaxMessage(exceedMax, maxLengthOutput.message, minLengthOutput.message);\n if (!validateAllFieldCriteria) {\n setCustomValidity(error[name].message);\n return error;\n }\n }\n }\n if (pattern && !isEmpty && isString(inputValue)) {\n const { value: patternValue, message } = getValueAndMessage(pattern);\n if (isRegex(patternValue) && !inputValue.match(patternValue)) {\n error[name] = {\n type: INPUT_VALIDATION_RULES.pattern,\n message,\n ref,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.pattern, message),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(message);\n return error;\n }\n }\n }\n if (validate) {\n if (isFunction(validate)) {\n const result = await validate(inputValue, formValues);\n const validateError = getValidateError(result, inputRef);\n if (validateError) {\n error[name] = {\n ...validateError,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.validate, validateError.message),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(validateError.message);\n return error;\n }\n }\n }\n else if (isObject(validate)) {\n let validationResult = {};\n for (const key in validate) {\n if (!isEmptyObject(validationResult) && !validateAllFieldCriteria) {\n break;\n }\n const validateError = getValidateError(await validate[key](inputValue, formValues), inputRef, key);\n if (validateError) {\n validationResult = {\n ...validateError,\n ...appendErrorsCurry(key, validateError.message),\n };\n setCustomValidity(validateError.message);\n if (validateAllFieldCriteria) {\n error[name] = validationResult;\n }\n }\n }\n if (!isEmptyObject(validationResult)) {\n error[name] = {\n ref: inputRef,\n ...validationResult,\n };\n if (!validateAllFieldCriteria) {\n return error;\n }\n }\n }\n }\n setCustomValidity(true);\n return error;\n};\n\nvar appendAt = (data, value) => [\n ...data,\n ...convertToArrayPayload(value),\n];\n\nvar fillEmptyArray = (value) => Array.isArray(value) ? value.map(() => undefined) : undefined;\n\nfunction insert(data, index, value) {\n return [\n ...data.slice(0, index),\n ...convertToArrayPayload(value),\n ...data.slice(index),\n ];\n}\n\nvar moveArrayAt = (data, from, to) => {\n if (!Array.isArray(data)) {\n return [];\n }\n if (isUndefined(data[to])) {\n data[to] = undefined;\n }\n data.splice(to, 0, data.splice(from, 1)[0]);\n return data;\n};\n\nvar prependAt = (data, value) => [\n ...convertToArrayPayload(value),\n ...convertToArrayPayload(data),\n];\n\nfunction removeAtIndexes(data, indexes) {\n let i = 0;\n const temp = [...data];\n for (const index of indexes) {\n temp.splice(index - i, 1);\n i++;\n }\n return compact(temp).length ? temp : [];\n}\nvar removeArrayAt = (data, index) => isUndefined(index)\n ? []\n : removeAtIndexes(data, convertToArrayPayload(index).sort((a, b) => a - b));\n\nvar swapArrayAt = (data, indexA, indexB) => {\n [data[indexA], data[indexB]] = [data[indexB], data[indexA]];\n};\n\nfunction baseGet(object, updatePath) {\n const length = updatePath.slice(0, -1).length;\n let index = 0;\n while (index < length) {\n object = isUndefined(object) ? index++ : object[updatePath[index++]];\n }\n return object;\n}\nfunction isEmptyArray(obj) {\n for (const key in obj) {\n if (obj.hasOwnProperty(key) && !isUndefined(obj[key])) {\n return false;\n }\n }\n return true;\n}\nfunction unset(object, path) {\n const paths = Array.isArray(path)\n ? path\n : isKey(path)\n ? [path]\n : stringToPath(path);\n const childObject = paths.length === 1 ? object : baseGet(object, paths);\n const index = paths.length - 1;\n const key = paths[index];\n if (childObject) {\n delete childObject[key];\n }\n if (index !== 0 &&\n ((isObject(childObject) && isEmptyObject(childObject)) ||\n (Array.isArray(childObject) && isEmptyArray(childObject)))) {\n unset(object, paths.slice(0, -1));\n }\n return object;\n}\n\nvar updateAt = (fieldValues, index, value) => {\n fieldValues[index] = value;\n return fieldValues;\n};\n\n/**\n * A custom hook that exposes convenient methods to perform operations with a list of dynamic inputs that need to be appended, updated, removed etc. • [Demo](https://codesandbox.io/s/react-hook-form-usefieldarray-ssugn) • [Video](https://youtu.be/4MrbfGSFY2A)\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/usefieldarray) • [Demo](https://codesandbox.io/s/react-hook-form-usefieldarray-ssugn)\n *\n * @param props - useFieldArray props\n *\n * @returns methods - functions to manipulate with the Field Arrays (dynamic inputs) {@link UseFieldArrayReturn}\n *\n * @example\n * ```tsx\n * function App() {\n * const { register, control, handleSubmit, reset, trigger, setError } = useForm({\n * defaultValues: {\n * test: []\n * }\n * });\n * const { fields, append } = useFieldArray({\n * control,\n * name: \"test\"\n * });\n *\n * return (\n * <form onSubmit={handleSubmit(data => console.log(data))}>\n * {fields.map((item, index) => (\n * <input key={item.id} {...register(`test.${index}.firstName`)} />\n * ))}\n * <button type=\"button\" onClick={() => append({ firstName: \"bill\" })}>\n * append\n * </button>\n * <input type=\"submit\" />\n * </form>\n * );\n * }\n * ```\n */\nfunction useFieldArray(props) {\n const methods = useFormContext();\n const { control = methods.control, name, keyName = 'id', shouldUnregister, } = props;\n const [fields, setFields] = React.useState(control._getFieldArray(name));\n const ids = React.useRef(control._getFieldArray(name).map(generateId));\n const _fieldIds = React.useRef(fields);\n const _name = React.useRef(name);\n const _actioned = React.useRef(false);\n _name.current = name;\n _fieldIds.current = fields;\n control._names.array.add(name);\n props.rules &&\n control.register(name, props.rules);\n useSubscribe({\n next: ({ values, name: fieldArrayName, }) => {\n if (fieldArrayName === _name.current || !fieldArrayName) {\n const fieldValues = get(values, _name.current);\n if (Array.isArray(fieldValues)) {\n setFields(fieldValues);\n ids.current = fieldValues.map(generateId);\n }\n }\n },\n subject: control._subjects.array,\n });\n const updateValues = React.useCallback((updatedFieldArrayValues) => {\n _actioned.current = true;\n control._updateFieldArray(name, updatedFieldArrayValues);\n }, [control, name]);\n const append = (value, options) => {\n const appendValue = convertToArrayPayload(cloneObject(value));\n const updatedFieldArrayValues = appendAt(control._getFieldArray(name), appendValue);\n control._names.focus = getFocusFieldName(name, updatedFieldArrayValues.length - 1, options);\n ids.current = appendAt(ids.current, appendValue.map(generateId));\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._updateFieldArray(name, updatedFieldArrayValues, appendAt, {\n argA: fillEmptyArray(value),\n });\n };\n const prepend = (value, options) => {\n const prependValue = convertToArrayPayload(cloneObject(value));\n const updatedFieldArrayValues = prependAt(control._getFieldArray(name), prependValue);\n control._names.focus = getFocusFieldName(name, 0, options);\n ids.current = prependAt(ids.current, prependValue.map(generateId));\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._updateFieldArray(name, updatedFieldArrayValues, prependAt, {\n argA: fillEmptyArray(value),\n });\n };\n const remove = (index) => {\n const updatedFieldArrayValues = removeArrayAt(control._getFieldArray(name), index);\n ids.current = removeArrayAt(ids.current, index);\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._updateFieldArray(name, updatedFieldArrayValues, removeArrayAt, {\n argA: index,\n });\n };\n const insert$1 = (index, value, options) => {\n const insertValue = convertToArrayPayload(cloneObject(value));\n const updatedFieldArrayValues = insert(control._getFieldArray(name), index, insertValue);\n control._names.focus = getFocusFieldName(name, index, options);\n ids.current = insert(ids.current, index, insertValue.map(generateId));\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._updateFieldArray(name, updatedFieldArrayValues, insert, {\n argA: index,\n argB: fillEmptyArray(value),\n });\n };\n const swap = (indexA, indexB) => {\n const updatedFieldArrayValues = control._getFieldArray(name);\n swapArrayAt(updatedFieldArrayValues, indexA, indexB);\n swapArrayAt(ids.current, indexA, indexB);\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._updateFieldArray(name, updatedFieldArrayValues, swapArrayAt, {\n argA: indexA,\n argB: indexB,\n }, false);\n };\n const move = (from, to) => {\n const updatedFieldArrayValues = control._getFieldArray(name);\n moveArrayAt(updatedFieldArrayValues, from, to);\n moveArrayAt(ids.current, from, to);\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._updateFieldArray(name, updatedFieldArrayValues, moveArrayAt, {\n argA: from,\n argB: to,\n }, false);\n };\n const update = (index, value) => {\n const updateValue = cloneObject(value);\n const updatedFieldArrayValues = updateAt(control._getFieldArray(name), index, updateValue);\n ids.current = [...updatedFieldArrayValues].map((item, i) => !item || i === index ? generateId() : ids.current[i]);\n updateValues(updatedFieldArrayValues);\n setFields([...updatedFieldArrayValues]);\n control._updateFieldArray(name, updatedFieldArrayValues, updateAt, {\n argA: index,\n argB: updateValue,\n }, true, false);\n };\n const replace = (value) => {\n const updatedFieldArrayValues = convertToArrayPayload(cloneObject(value));\n ids.current = updatedFieldArrayValues.map(generateId);\n updateValues([...updatedFieldArrayValues]);\n setFields([...updatedFieldArrayValues]);\n control._updateFieldArray(name, [...updatedFieldArrayValues], (data) => data, {}, true, false);\n };\n React.useEffect(() => {\n control._state.action = false;\n isWatched(name, control._names) &&\n control._subjects.state.next({\n ...control._formState,\n });\n if (_actioned.current &&\n (!getValidationModes(control._options.mode).isOnSubmit ||\n control._formState.isSubmitted)) {\n if (control._options.resolver) {\n control._executeSchema([name]).then((result) => {\n const error = get(result.errors, name);\n const existingError = get(control._formState.errors, name);\n if (existingError\n ? (!error && existingError.type) ||\n (error &&\n (existingError.type !== error.type ||\n existingError.message !== error.message))\n : error && error.type) {\n error\n ? set(control._formState.errors, name, error)\n : unset(control._formState.errors, name);\n control._subjects.state.next({\n errors: control._formState.errors,\n });\n }\n });\n }\n else {\n const field = get(control._fields, name);\n if (field &&\n field._f &&\n !(getValidationModes(control._options.reValidateMode).isOnSubmit &&\n getValidationModes(control._options.mode).isOnSubmit)) {\n validateField(field, control._formValues, control._options.criteriaMode === VALIDATION_MODE.all, control._options.shouldUseNativeValidation, true).then((error) => !isEmptyObject(error) &&\n control._subjects.state.next({\n errors: updateFieldArrayRootError(control._formState.errors, error, name),\n }));\n }\n }\n }\n control._subjects.values.next({\n name,\n values: { ...control._formValues },\n });\n control._names.focus &&\n iterateFieldsByAction(control._fields, (ref, key) => {\n if (control._names.focus &&\n key.startsWith(control._names.focus) &&\n ref.focus) {\n ref.focus();\n return 1;\n }\n return;\n });\n control._names.focus = '';\n control._updateValid();\n _actioned.current = false;\n }, [fields, name, control]);\n React.useEffect(() => {\n !get(control._formValues, name) && control._updateFieldArray(name);\n return () => {\n (control._options.shouldUnregister || shouldUnregister) &&\n control.unregister(name);\n };\n }, [name, control, keyName, shouldUnregister]);\n return {\n swap: React.useCallback(swap, [updateValues, name, control]),\n move: React.useCallback(move, [updateValues, name, control]),\n prepend: React.useCallback(prepend, [updateValues, name, control]),\n append: React.useCallback(append, [updateValues, name, control]),\n remove: React.useCallback(remove, [updateValues, name, control]),\n insert: React.useCallback(insert$1, [updateValues, name, control]),\n update: React.useCallback(update, [updateValues, name, control]),\n replace: React.useCallback(replace, [updateValues, name, control]),\n fields: React.useMemo(() => fields.map((field, index) => ({\n ...field,\n [keyName]: ids.current[index] || generateId(),\n })), [fields, keyName]),\n };\n}\n\nvar createSubject = () => {\n let _observers = [];\n const next = (value) => {\n for (const observer of _observers) {\n observer.next && observer.next(value);\n }\n };\n const subscribe = (observer) => {\n _observers.push(observer);\n return {\n unsubscribe: () => {\n _observers = _observers.filter((o) => o !== observer);\n },\n };\n };\n const unsubscribe = () => {\n _observers = [];\n };\n return {\n get observers() {\n return _observers;\n },\n next,\n subscribe,\n unsubscribe,\n };\n};\n\nvar isPrimitive = (value) => isNullOrUndefined(value) || !isObjectType(value);\n\nfunction deepEqual(object1, object2) {\n if (isPrimitive(object1) || isPrimitive(object2)) {\n return object1 === object2;\n }\n if (isDateObject(object1) && isDateObject(object2)) {\n return object1.getTime() === object2.getTime();\n }\n const keys1 = Object.keys(object1);\n const keys2 = Object.keys(object2);\n if (keys1.length !== keys2.length) {\n return false;\n }\n for (const key of keys1) {\n const val1 = object1[key];\n if (!keys2.includes(key)) {\n return false;\n }\n if (key !== 'ref') {\n const val2 = object2[key];\n if ((isDateObject(val1) && isDateObject(val2)) ||\n (isObject(val1) && isObject(val2)) ||\n (Array.isArray(val1) && Array.isArray(val2))\n ? !deepEqual(val1, val2)\n : val1 !== val2) {\n return false;\n }\n }\n }\n return true;\n}\n\nvar isMultipleSelect = (element) => element.type === `select-multiple`;\n\nvar isRadioOrCheckbox = (ref) => isRadioInput(ref) || isCheckBoxInput(ref);\n\nvar live = (ref) => isHTMLElement(ref) && ref.isConnected;\n\nvar objectHasFunction = (data) => {\n for (const key in data) {\n if (isFunction(data[key])) {\n return true;\n }\n }\n return false;\n};\n\nfunction markFieldsDirty(data, fields = {}) {\n const isParentNodeArray = Array.isArray(data);\n if (isObject(data) || isParentNodeArray) {\n for (const key in data) {\n if (Array.isArray(data[key]) ||\n (isObject(data[key]) && !objectHasFunction(data[key]))) {\n fields[key] = Array.isArray(data[key]) ? [] : {};\n markFieldsDirty(data[key], fields[key]);\n }\n else if (!isNullOrUndefined(data[key])) {\n fields[key] = true;\n }\n }\n }\n return fields;\n}\nfunction getDirtyFieldsFromDefaultValues(data, formValues, dirtyFieldsFromValues) {\n const isParentNodeArray = Array.isArray(data);\n if (isObject(data) || isParentNodeArray) {\n for (const key in data) {\n if (Array.isArray(data[key]) ||\n (isObject(data[key]) && !objectHasFunction(data[key]))) {\n if (isUndefined(formValues) ||\n isPrimitive(dirtyFieldsFromValues[key])) {\n dirtyFieldsFromValues[key] = Array.isArray(data[key])\n ? markFieldsDirty(data[key], [])\n : { ...markFieldsDirty(data[key]) };\n }\n else {\n getDirtyFieldsFromDefaultValues(data[key], isNullOrUndefined(formValues) ? {} : formValues[key], dirtyFieldsFromValues[key]);\n }\n }\n else {\n dirtyFieldsFromValues[key] = !deepEqual(data[key], formValues[key]);\n }\n }\n }\n return dirtyFieldsFromValues;\n}\nvar getDirtyFields = (defaultValues, formValues) => getDirtyFieldsFromDefaultValues(defaultValues, formValues, markFieldsDirty(formValues));\n\nvar getFieldValueAs = (value, { valueAsNumber, valueAsDate, setValueAs }) => isUndefined(value)\n ? value\n : valueAsNumber\n ? value === ''\n ? NaN\n : value\n ? +value\n : value\n : valueAsDate && isString(value)\n ? new Date(value)\n : setValueAs\n ? setValueAs(value)\n : value;\n\nfunction getFieldValue(_f) {\n const ref = _f.ref;\n if (_f.refs ? _f.refs.every((ref) => ref.disabled) : ref.disabled) {\n return;\n }\n if (isFileInput(ref)) {\n return ref.files;\n }\n if (isRadioInput(ref)) {\n return getRadioValue(_f.refs).value;\n }\n if (isMultipleSelect(ref)) {\n return [...ref.selectedOptions].map(({ value }) => value);\n }\n if (isCheckBoxInput(ref)) {\n return getCheckboxValue(_f.refs).value;\n }\n return getFieldValueAs(isUndefined(ref.value) ? _f.ref.value : ref.value, _f);\n}\n\nvar getResolverOptions = (fieldsNames, _fields, criteriaMode, shouldUseNativeValidation) => {\n const fields = {};\n for (const name of fieldsNames) {\n const field = get(_fields, name);\n field && set(fields, name, field._f);\n }\n return {\n criteriaMode,\n names: [...fieldsNames],\n fields,\n shouldUseNativeValidation,\n };\n};\n\nvar getRuleValue = (rule) => isUndefined(rule)\n ? rule\n : isRegex(rule)\n ? rule.source\n : isObject(rule)\n ? isRegex(rule.value)\n ? rule.value.source\n : rule.value\n : rule;\n\nvar hasValidation = (options) => options.mount &&\n (options.required ||\n options.min ||\n options.max ||\n options.maxLength ||\n options.minLength ||\n options.pattern ||\n options.validate);\n\nfunction schemaErrorLookup(errors, _fields, name) {\n const error = get(errors, name);\n if (error || isKey(name)) {\n return {\n error,\n name,\n };\n }\n const names = name.split('.');\n while (names.length) {\n const fieldName = names.join('.');\n const field = get(_fields, fieldName);\n const foundError = get(errors, fieldName);\n if (field && !Array.isArray(field) && name !== fieldName) {\n return { name };\n }\n if (foundError && foundError.type) {\n return {\n name: fieldName,\n error: foundError,\n };\n }\n names.pop();\n }\n return {\n name,\n };\n}\n\nvar skipValidation = (isBlurEvent, isTouched, isSubmitted, reValidateMode, mode) => {\n if (mode.isOnAll) {\n return false;\n }\n else if (!isSubmitted && mode.isOnTouch) {\n return !(isTouched || isBlurEvent);\n }\n else if (isSubmitted ? reValidateMode.isOnBlur : mode.isOnBlur) {\n return !isBlurEvent;\n }\n else if (isSubmitted ? reValidateMode.isOnChange : mode.isOnChange) {\n return isBlurEvent;\n }\n return true;\n};\n\nvar unsetEmptyArray = (ref, name) => !compact(get(ref, name)).length && unset(ref, name);\n\nconst defaultOptions = {\n mode: VALIDATION_MODE.onSubmit,\n reValidateMode: VALIDATION_MODE.onChange,\n shouldFocusError: true,\n};\nfunction createFormControl(props = {}) {\n let _options = {\n ...defaultOptions,\n ...props,\n };\n let _formState = {\n submitCount: 0,\n isDirty: false,\n isLoading: isFunction(_options.defaultValues),\n isValidating: false,\n isSubmitted: false,\n isSubmitting: false,\n isSubmitSuccessful: false,\n isValid: false,\n touchedFields: {},\n dirtyFields: {},\n validatingFields: {},\n errors: _options.errors || {},\n disabled: _options.disabled || false,\n };\n let _fields = {};\n let _defaultValues = isObject(_options.defaultValues) || isObject(_options.values)\n ? cloneObject(_options.defaultValues || _options.values) || {}\n : {};\n let _formValues = _options.shouldUnregister\n ? {}\n : cloneObject(_defaultValues);\n let _state = {\n action: false,\n mount: false,\n watch: false,\n };\n let _names = {\n mount: new Set(),\n unMount: new Set(),\n array: new Set(),\n watch: new Set(),\n };\n let delayErrorCallback;\n let timer = 0;\n const _proxyFormState = {\n isDirty: false,\n dirtyFields: false,\n validatingFields: false,\n touchedFields: false,\n isValidating: false,\n isValid: false,\n errors: false,\n };\n const _subjects = {\n values: createSubject(),\n array: createSubject(),\n state: createSubject(),\n };\n const validationModeBeforeSubmit = getValidationModes(_options.mode);\n const validationModeAfterSubmit = getValidationModes(_options.reValidateMode);\n const shouldDisplayAllAssociatedErrors = _options.criteriaMode === VALIDATION_MODE.all;\n const debounce = (callback) => (wait) => {\n clearTimeout(timer);\n timer = setTimeout(callback, wait);\n };\n const _updateValid = async (shouldUpdateValid) => {\n if (_proxyFormState.isValid || shouldUpdateValid) {\n const isValid = _options.resolver\n ? isEmptyObject((await _executeSchema()).errors)\n : await executeBuiltInValidation(_fields, true);\n if (isValid !== _formState.isValid) {\n _subjects.state.next({\n isValid,\n });\n }\n }\n };\n const _updateIsValidating = (names, isValidating) => {\n if (_proxyFormState.isValidating || _proxyFormState.validatingFields) {\n (names || Array.from(_names.mount)).forEach((name) => {\n if (name) {\n isValidating\n ? set(_formState.validatingFields, name, isValidating)\n : unset(_formState.validatingFields, name);\n }\n });\n _subjects.state.next({\n validatingFields: _formState.validatingFields,\n isValidating: !isEmptyObject(_formState.validatingFields),\n });\n }\n };\n const _updateFieldArray = (name, values = [], method, args, shouldSetValues = true, shouldUpdateFieldsAndState = true) => {\n if (args && method) {\n _state.action = true;\n if (shouldUpdateFieldsAndState && Array.isArray(get(_fields, name))) {\n const fieldValues = method(get(_fields, name), args.argA, args.argB);\n shouldSetValues && set(_fields, name, fieldValues);\n }\n if (shouldUpdateFieldsAndState &&\n Array.isArray(get(_formState.errors, name))) {\n const errors = method(get(_formState.errors, name), args.argA, args.argB);\n shouldSetValues && set(_formState.errors, name, errors);\n unsetEmptyArray(_formState.errors, name);\n }\n if (_proxyFormState.touchedFields &&\n shouldUpdateFieldsAndState &&\n Array.isArray(get(_formState.touchedFields, name))) {\n const touchedFields = method(get(_formState.touchedFields, name), args.argA, args.argB);\n shouldSetValues && set(_formState.touchedFields, name, touchedFields);\n }\n if (_proxyFormState.dirtyFields) {\n _formState.dirtyFields = getDirtyFields(_defaultValues, _formValues);\n }\n _subjects.state.next({\n name,\n isDirty: _getDirty(name, values),\n dirtyFields: _formState.dirtyFields,\n errors: _formState.errors,\n isValid: _formState.isValid,\n });\n }\n else {\n set(_formValues, name, values);\n }\n };\n const updateErrors = (name, error) => {\n set(_formState.errors, name, error);\n _subjects.state.next({\n errors: _formState.errors,\n });\n };\n const _setErrors = (errors) => {\n _formState.errors = errors;\n _subjects.state.next({\n errors: _formState.errors,\n isValid: false,\n });\n };\n const updateValidAndValue = (name, shouldSkipSetValueAs, value, ref) => {\n const field = get(_fields, name);\n if (field) {\n const defaultValue = get(_formValues, name, isUndefined(value) ? get(_defaultValues, name) : value);\n isUndefined(defaultValue) ||\n (ref && ref.defaultChecked) ||\n shouldSkipSetValueAs\n ? set(_formValues, name, shouldSkipSetValueAs ? defaultValue : getFieldValue(field._f))\n : setFieldValue(name, defaultValue);\n _state.mount && _updateValid();\n }\n };\n const updateTouchAndDirty = (name, fieldValue, isBlurEvent, shouldDirty, shouldRender) => {\n let shouldUpdateField = false;\n let isPreviousDirty = false;\n const output = {\n name,\n };\n const disabledField = !!(get(_fields, name) &&\n get(_fields, name)._f &&\n get(_fields, name)._f.disabled);\n if (!isBlurEvent || shouldDirty) {\n if (_proxyFormState.isDirty) {\n isPreviousDirty = _formState.isDirty;\n _formState.isDirty = output.isDirty = _getDirty();\n shouldUpdateField = isPreviousDirty !== output.isDirty;\n }\n const isCurrentFieldPristine = disabledField || deepEqual(get(_defaultValues, name), fieldValue);\n isPreviousDirty = !!(!disabledField && get(_formState.dirtyFields, name));\n isCurrentFieldPristine || disabledField\n ? unset(_formState.dirtyFields, name)\n : set(_formState.dirtyFields, name, true);\n output.dirtyFields = _formState.dirtyFields;\n shouldUpdateField =\n shouldUpdateField ||\n (_proxyFormState.dirtyFields &&\n isPreviousDirty !== !isCurrentFieldPristine);\n }\n if (isBlurEvent) {\n const isPreviousFieldTouched = get(_formState.touchedFields, name);\n if (!isPreviousFieldTouched) {\n set(_formState.touchedFields, name, isBlurEvent);\n output.touchedFields = _formState.touchedFields;\n shouldUpdateField =\n shouldUpdateField ||\n (_proxyFormState.touchedFields &&\n isPreviousFieldTouched !== isBlurEvent);\n }\n }\n shouldUpdateField && shouldRender && _subjects.state.next(output);\n return shouldUpdateField ? output : {};\n };\n const shouldRenderByError = (name, isValid, error, fieldState) => {\n const previousFieldError = get(_formState.errors, name);\n const shouldUpdateValid = _proxyFormState.isValid &&\n isBoolean(isValid) &&\n _formState.isValid !== isValid;\n if (props.delayError && error) {\n delayErrorCallback = debounce(() => updateErrors(name, error));\n delayErrorCallback(props.delayError);\n }\n else {\n clearTimeout(timer);\n delayErrorCallback = null;\n error\n ? set(_formState.errors, name, error)\n : unset(_formState.errors, name);\n }\n if ((error ? !deepEqual(previousFieldError, error) : previousFieldError) ||\n !isEmptyObject(fieldState) ||\n shouldUpdateValid) {\n const updatedFormState = {\n ...fieldState,\n ...(shouldUpdateValid && isBoolean(isValid) ? { isValid } : {}),\n errors: _formState.errors,\n name,\n };\n _formState = {\n ..._formState,\n ...updatedFormState,\n };\n _subjects.state.next(updatedFormState);\n }\n };\n const _executeSchema = async (name) => {\n _updateIsValidating(name, true);\n const result = await _options.resolver(_formValues, _options.context, getResolverOptions(name || _names.mount, _fields, _options.criteriaMode, _options.shouldUseNativeValidation));\n _updateIsValidating(name);\n return result;\n };\n const executeSchemaAndUpdateState = async (names) => {\n const { errors } = await _executeSchema(names);\n if (names) {\n for (const name of names) {\n const error = get(errors, name);\n error\n ? set(_formState.errors, name, error)\n : unset(_formState.errors, name);\n }\n }\n else {\n _formState.errors = errors;\n }\n return errors;\n };\n const executeBuiltInValidation = async (fields, shouldOnlyCheckValid, context = {\n valid: true,\n }) => {\n for (const name in fields) {\n const field = fields[name];\n if (field) {\n const { _f, ...fieldValue } = field;\n if (_f) {\n const isFieldArrayRoot = _names.array.has(_f.name);\n _updateIsValidating([name], true);\n const fieldError = await validateField(field, _formValues, shouldDisplayAllAssociatedErrors, _options.shouldUseNativeValidation && !shouldOnlyCheckValid, isFieldArrayRoot);\n _updateIsValidating([name]);\n if (fieldError[_f.name]) {\n context.valid = false;\n if (shouldOnlyCheckValid) {\n break;\n }\n }\n !shouldOnlyCheckValid &&\n (get(fieldError, _f.name)\n ? isFieldArrayRoot\n ? updateFieldArrayRootError(_formState.errors, fieldError, _f.name)\n : set(_formState.errors, _f.name, fieldError[_f.name])\n : unset(_formState.errors, _f.name));\n }\n !isEmptyObject(fieldValue) &&\n (await executeBuiltInValidation(fieldValue, shouldOnlyCheckValid, context));\n }\n }\n return context.valid;\n };\n const _removeUnmounted = () => {\n for (const name of _names.unMount) {\n const field = get(_fields, name);\n field &&\n (field._f.refs\n ? field._f.refs.every((ref) => !live(ref))\n : !live(field._f.ref)) &&\n unregister(name);\n }\n _names.unMount = new Set();\n };\n const _getDirty = (name, data) => (name && data && set(_formValues, name, data),\n !deepEqual(getValues(), _defaultValues));\n const _getWatch = (names, defaultValue, isGlobal) => generateWatchOutput(names, _names, {\n ...(_state.mount\n ? _formValues\n : isUndefined(defaultValue)\n ? _defaultValues\n : isString(names)\n ? { [names]: defaultValue }\n : defaultValue),\n }, isGlobal, defaultValue);\n const _getFieldArray = (name) => compact(get(_state.mount ? _formValues : _defaultValues, name, props.shouldUnregister ? get(_defaultValues, name, []) : []));\n const setFieldValue = (name, value, options = {}) => {\n const field = get(_fields, name);\n let fieldValue = value;\n if (field) {\n const fieldReference = field._f;\n if (fieldReference) {\n !fieldReference.disabled &&\n set(_formValues, name, getFieldValueAs(value, fieldReference));\n fieldValue =\n isHTMLElement(fieldReference.ref) && isNullOrUndefined(value)\n ? ''\n : value;\n if (isMultipleSelect(fieldReference.ref)) {\n [...fieldReference.ref.options].forEach((optionRef) => (optionRef.selected = fieldValue.includes(optionRef.value)));\n }\n else if (fieldReference.refs) {\n if (isCheckBoxInput(fieldReference.ref)) {\n fieldReference.refs.length > 1\n ? fieldReference.refs.forEach((checkboxRef) => (!checkboxRef.defaultChecked || !checkboxRef.disabled) &&\n (checkboxRef.checked = Array.isArray(fieldValue)\n ? !!fieldValue.find((data) => data === checkboxRef.value)\n : fieldValue === checkboxRef.value))\n : fieldReference.refs[0] &&\n (fieldReference.refs[0].checked = !!fieldValue);\n }\n else {\n fieldReference.refs.forEach((radioRef) => (radioRef.checked = radioRef.value === fieldValue));\n }\n }\n else if (isFileInput(fieldReference.ref)) {\n fieldReference.ref.value = '';\n }\n else {\n fieldReference.ref.value = fieldValue;\n if (!fieldReference.ref.type) {\n _subjects.values.next({\n name,\n values: { ..._formValues },\n });\n }\n }\n }\n }\n (options.shouldDirty || options.shouldTouch) &&\n updateTouchAndDirty(name, fieldValue, options.shouldTouch, options.shouldDirty, true);\n options.shouldValidate && trigger(name);\n };\n const setValues = (name, value, options) => {\n for (const fieldKey in value) {\n const fieldValue = value[fieldKey];\n const fieldName = `${name}.${fieldKey}`;\n const field = get(_fields, fieldName);\n (_names.array.has(name) ||\n !isPrimitive(fieldValue) ||\n (field && !field._f)) &&\n !isDateObject(fieldValue)\n ? setValues(fieldName, fieldValue, options)\n : setFieldValue(fieldName, fieldValue, options);\n }\n };\n const setValue = (name, value, options = {}) => {\n const field = get(_fields, name);\n const isFieldArray = _names.array.has(name);\n const cloneValue = cloneObject(value);\n set(_formValues, name, cloneValue);\n if (isFieldArray) {\n _subjects.array.next({\n name,\n values: { ..._formValues },\n });\n if ((_proxyFormState.isDirty || _proxyFormState.dirtyFields) &&\n options.shouldDirty) {\n _subjects.state.next({\n name,\n dirtyFields: getDirtyFields(_defaultValues, _formValues),\n isDirty: _getDirty(name, cloneValue),\n });\n }\n }\n else {\n field && !field._f && !isNullOrUndefined(cloneValue)\n ? setValues(name, cloneValue, options)\n : setFieldValue(name, cloneValue, options);\n }\n isWatched(name, _names) && _subjects.state.next({ ..._formState });\n _subjects.values.next({\n name: _state.mount ? name : undefined,\n values: { ..._formValues },\n });\n };\n const onChange = async (event) => {\n _state.mount = true;\n const target = event.target;\n let name = target.name;\n let isFieldValueUpdated = true;\n const field = get(_fields, name);\n const getCurrentFieldValue = () => target.type ? getFieldValue(field._f) : getEventValue(event);\n const _updateIsFieldValueUpdated = (fieldValue) => {\n isFieldValueUpdated =\n Number.isNaN(fieldValue) ||\n fieldValue === get(_formValues, name, fieldValue);\n };\n if (field) {\n let error;\n let isValid;\n const fieldValue = getCurrentFieldValue();\n const isBlurEvent = event.type === EVENTS.BLUR || event.type === EVENTS.FOCUS_OUT;\n const shouldSkipValidation = (!hasValidation(field._f) &&\n !_options.resolver &&\n !get(_formState.errors, name) &&\n !field._f.deps) ||\n skipValidation(isBlurEvent, get(_formState.touchedFields, name), _formState.isSubmitted, validationModeAfterSubmit, validationModeBeforeSubmit);\n const watched = isWatched(name, _names, isBlurEvent);\n set(_formValues, name, fieldValue);\n if (isBlurEvent) {\n field._f.onBlur && field._f.onBlur(event);\n delayErrorCallback && delayErrorCallback(0);\n }\n else if (field._f.onChange) {\n field._f.onChange(event);\n }\n const fieldState = updateTouchAndDirty(name, fieldValue, isBlurEvent, false);\n const shouldRender = !isEmptyObject(fieldState) || watched;\n !isBlurEvent &&\n _subjects.values.next({\n name,\n type: event.type,\n values: { ..._formValues },\n });\n if (shouldSkipValidation) {\n _proxyFormState.isValid && _updateValid();\n return (shouldRender &&\n _subjects.state.next({ name, ...(watched ? {} : fieldState) }));\n }\n !isBlurEvent && watched && _subjects.state.next({ ..._formState });\n if (_options.resolver) {\n const { errors } = await _executeSchema([name]);\n _updateIsFieldValueUpdated(fieldValue);\n if (isFieldValueUpdated) {\n const previousErrorLookupResult = schemaErrorLookup(_formState.errors, _fields, name);\n const errorLookupResult = schemaErrorLookup(errors, _fields, previousErrorLookupResult.name || name);\n error = errorLookupResult.error;\n name = errorLookupResult.name;\n isValid = isEmptyObject(errors);\n }\n }\n else {\n _updateIsValidating([name], true);\n error = (await validateField(field, _formValues, shouldDisplayAllAssociatedErrors, _options.shouldUseNativeValidation))[name];\n _updateIsValidating([name]);\n _updateIsFieldValueUpdated(fieldValue);\n if (isFieldValueUpdated) {\n if (error) {\n isValid = false;\n }\n else if (_proxyFormState.isValid) {\n isValid = await executeBuiltInValidation(_fields, true);\n }\n }\n }\n if (isFieldValueUpdated) {\n field._f.deps &&\n trigger(field._f.deps);\n shouldRenderByError(name, isValid, error, fieldState);\n }\n }\n };\n const _focusInput = (ref, key) => {\n if (get(_formState.errors, key) && ref.focus) {\n ref.focus();\n return 1;\n }\n return;\n };\n const trigger = async (name, options = {}) => {\n let isValid;\n let validationResult;\n const fieldNames = convertToArrayPayload(name);\n if (_options.resolver) {\n const errors = await executeSchemaAndUpdateState(isUndefined(name) ? name : fieldNames);\n isValid = isEmptyObject(errors);\n validationResult = name\n ? !fieldNames.some((name) => get(errors, name))\n : isValid;\n }\n else if (name) {\n validationResult = (await Promise.all(fieldNames.map(async (fieldName) => {\n const field = get(_fields, fieldName);\n return await executeBuiltInValidation(field && field._f ? { [fieldName]: field } : field);\n }))).every(Boolean);\n !(!validationResult && !_formState.isValid) && _updateValid();\n }\n else {\n validationResult = isValid = await executeBuiltInValidation(_fields);\n }\n _subjects.state.next({\n ...(!isString(name) ||\n (_proxyFormState.isValid && isValid !== _formState.isValid)\n ? {}\n : { name }),\n ...(_options.resolver || !name ? { isValid } : {}),\n errors: _formState.errors,\n });\n options.shouldFocus &&\n !validationResult &&\n iterateFieldsByAction(_fields, _focusInput, name ? fieldNames : _names.mount);\n return validationResult;\n };\n const getValues = (fieldNames) => {\n const values = {\n ...(_state.mount ? _formValues : _defaultValues),\n };\n return isUndefined(fieldNames)\n ? values\n : isString(fieldNames)\n ? get(values, fieldNames)\n : fieldNames.map((name) => get(values, name));\n };\n const getFieldState = (name, formState) => ({\n invalid: !!get((formState || _formState).errors, name),\n isDirty: !!get((formState || _formState).dirtyFields, name),\n error: get((formState || _formState).errors, name),\n isValidating: !!get(_formState.validatingFields, name),\n isTouched: !!get((formState || _formState).touchedFields, name),\n });\n const clearErrors = (name) => {\n name &&\n convertToArrayPayload(name).forEach((inputName) => unset(_formState.errors, inputName));\n _subjects.state.next({\n errors: name ? _formState.errors : {},\n });\n };\n const setError = (name, error, options) => {\n const ref = (get(_fields, name, { _f: {} })._f || {}).ref;\n const currentError = get(_formState.errors, name) || {};\n // Don't override existing error messages elsewhere in the object tree.\n const { ref: currentRef, message, type, ...restOfErrorTree } = currentError;\n set(_formState.errors, name, {\n ...restOfErrorTree,\n ...error,\n ref,\n });\n _subjects.state.next({\n name,\n errors: _formState.errors,\n isValid: false,\n });\n options && options.shouldFocus && ref && ref.focus && ref.focus();\n };\n const watch = (name, defaultValue) => isFunction(name)\n ? _subjects.values.subscribe({\n next: (payload) => name(_getWatch(undefined, defaultValue), payload),\n })\n : _getWatch(name, defaultValue, true);\n const unregister = (name, options = {}) => {\n for (const fieldName of name ? convertToArrayPayload(name) : _names.mount) {\n _names.mount.delete(fieldName);\n _names.array.delete(fieldName);\n if (!options.keepValue) {\n unset(_fields, fieldName);\n unset(_formValues, fieldName);\n }\n !options.keepError && unset(_formState.errors, fieldName);\n !options.keepDirty && unset(_formState.dirtyFields, fieldName);\n !options.keepTouched && unset(_formState.touchedFields, fieldName);\n !options.keepIsValidating &&\n unset(_formState.validatingFields, fieldName);\n !_options.shouldUnregister &&\n !options.keepDefaultValue &&\n unset(_defaultValues, fieldName);\n }\n _subjects.values.next({\n values: { ..._formValues },\n });\n _subjects.state.next({\n ..._formState,\n ...(!options.keepDirty ? {} : { isDirty: _getDirty() }),\n });\n !options.keepIsValid && _updateValid();\n };\n const _updateDisabledField = ({ disabled, name, field, fields, value, }) => {\n if ((isBoolean(disabled) && _state.mount) || !!disabled) {\n const inputValue = disabled\n ? undefined\n : isUndefined(value)\n ? getFieldValue(field ? field._f : get(fields, name)._f)\n : value;\n set(_formValues, name, inputValue);\n updateTouchAndDirty(name, inputValue, false, false, true);\n }\n };\n const register = (name, options = {}) => {\n let field = get(_fields, name);\n const disabledIsDefined = isBoolean(options.disabled);\n set(_fields, name, {\n ...(field || {}),\n _f: {\n ...(field && field._f ? field._f : { ref: { name } }),\n name,\n mount: true,\n ...options,\n },\n });\n _names.mount.add(name);\n if (field) {\n _updateDisabledField({\n field,\n disabled: options.disabled,\n name,\n value: options.value,\n });\n }\n else {\n updateValidAndValue(name, true, options.value);\n }\n return {\n ...(disabledIsDefined ? { disabled: options.disabled } : {}),\n ...(_options.progressive\n ? {\n required: !!options.required,\n min: getRuleValue(options.min),\n max: getRuleValue(options.max),\n minLength: getRuleValue(options.minLength),\n maxLength: getRuleValue(options.maxLength),\n pattern: getRuleValue(options.pattern),\n }\n : {}),\n name,\n onChange,\n onBlur: onChange,\n ref: (ref) => {\n if (ref) {\n register(name, options);\n field = get(_fields, name);\n const fieldRef = isUndefined(ref.value)\n ? ref.querySelectorAll\n ? ref.querySelectorAll('input,select,textarea')[0] || ref\n : ref\n : ref;\n const radioOrCheckbox = isRadioOrCheckbox(fieldRef);\n const refs = field._f.refs || [];\n if (radioOrCheckbox\n ? refs.find((option) => option === fieldRef)\n : fieldRef === field._f.ref) {\n return;\n }\n set(_fields, name, {\n _f: {\n ...field._f,\n ...(radioOrCheckbox\n ? {\n refs: [\n ...refs.filter(live),\n fieldRef,\n ...(Array.isArray(get(_defaultValues, name)) ? [{}] : []),\n ],\n ref: { type: fieldRef.type, name },\n }\n : { ref: fieldRef }),\n },\n });\n updateValidAndValue(name, false, undefined, fieldRef);\n }\n else {\n field = get(_fields, name, {});\n if (field._f) {\n field._f.mount = false;\n }\n (_options.shouldUnregister || options.shouldUnregister) &&\n !(isNameInFieldArray(_names.array, name) && _state.action) &&\n _names.unMount.add(name);\n }\n },\n };\n };\n const _focusError = () => _options.shouldFocusError &&\n iterateFieldsByAction(_fields, _focusInput, _names.mount);\n const _disableForm = (disabled) => {\n if (isBoolean(disabled)) {\n _subjects.state.next({ disabled });\n iterateFieldsByAction(_fields, (ref, name) => {\n const currentField = get(_fields, name);\n if (currentField) {\n ref.disabled = currentField._f.disabled || disabled;\n if (Array.isArray(currentField._f.refs)) {\n currentField._f.refs.forEach((inputRef) => {\n inputRef.disabled = currentField._f.disabled || disabled;\n });\n }\n }\n }, 0, false);\n }\n };\n const handleSubmit = (onValid, onInvalid) => async (e) => {\n let onValidError = undefined;\n if (e) {\n e.preventDefault && e.preventDefault();\n e.persist && e.persist();\n }\n let fieldValues = cloneObject(_formValues);\n _subjects.state.next({\n isSubmitting: true,\n });\n if (_options.resolver) {\n const { errors, values } = await _executeSchema();\n _formState.errors = errors;\n fieldValues = values;\n }\n else {\n await executeBuiltInValidation(_fields);\n }\n unset(_formState.errors, 'root');\n if (isEmptyObject(_formState.errors)) {\n _subjects.state.next({\n errors: {},\n });\n try {\n await onValid(fieldValues, e);\n }\n catch (error) {\n onValidError = error;\n }\n }\n else {\n if (onInvalid) {\n await onInvalid({ ..._formState.errors }, e);\n }\n _focusError();\n setTimeout(_focusError);\n }\n _subjects.state.next({\n isSubmitted: true,\n isSubmitting: false,\n isSubmitSuccessful: isEmptyObject(_formState.errors) && !onValidError,\n submitCount: _formState.submitCount + 1,\n errors: _formState.errors,\n });\n if (onValidError) {\n throw onValidError;\n }\n };\n const resetField = (name, options = {}) => {\n if (get(_fields, name)) {\n if (isUndefined(options.defaultValue)) {\n setValue(name, cloneObject(get(_defaultValues, name)));\n }\n else {\n setValue(name, options.defaultValue);\n set(_defaultValues, name, cloneObject(options.defaultValue));\n }\n if (!options.keepTouched) {\n unset(_formState.touchedFields, name);\n }\n if (!options.keepDirty) {\n unset(_formState.dirtyFields, name);\n _formState.isDirty = options.defaultValue\n ? _getDirty(name, cloneObject(get(_defaultValues, name)))\n : _getDirty();\n }\n if (!options.keepError) {\n unset(_formState.errors, name);\n _proxyFormState.isValid && _updateValid();\n }\n _subjects.state.next({ ..._formState });\n }\n };\n const _reset = (formValues, keepStateOptions = {}) => {\n const updatedValues = formValues ? cloneObject(formValues) : _defaultValues;\n const cloneUpdatedValues = cloneObject(updatedValues);\n const isEmptyResetValues = isEmptyObject(formValues);\n const values = isEmptyResetValues ? _defaultValues : cloneUpdatedValues;\n if (!keepStateOptions.keepDefaultValues) {\n _defaultValues = updatedValues;\n }\n if (!keepStateOptions.keepValues) {\n if (keepStateOptions.keepDirtyValues) {\n for (const fieldName of _names.mount) {\n get(_formState.dirtyFields, fieldName)\n ? set(values, fieldName, get(_formValues, fieldName))\n : setValue(fieldName, get(values, fieldName));\n }\n }\n else {\n if (isWeb && isUndefined(formValues)) {\n for (const name of _names.mount) {\n const field = get(_fields, name);\n if (field && field._f) {\n const fieldReference = Array.isArray(field._f.refs)\n ? field._f.refs[0]\n : field._f.ref;\n if (isHTMLElement(fieldReference)) {\n const form = fieldReference.closest('form');\n if (form) {\n form.reset();\n break;\n }\n }\n }\n }\n }\n _fields = {};\n }\n _formValues = props.shouldUnregister\n ? keepStateOptions.keepDefaultValues\n ? cloneObject(_defaultValues)\n : {}\n : cloneObject(values);\n _subjects.array.next({\n values: { ...values },\n });\n _subjects.values.next({\n values: { ...values },\n });\n }\n _names = {\n mount: keepStateOptions.keepDirtyValues ? _names.mount : new Set(),\n unMount: new Set(),\n array: new Set(),\n watch: new Set(),\n watchAll: false,\n focus: '',\n };\n _state.mount =\n !_proxyFormState.isValid ||\n !!keepStateOptions.keepIsValid ||\n !!keepStateOptions.keepDirtyValues;\n _state.watch = !!props.shouldUnregister;\n _subjects.state.next({\n submitCount: keepStateOptions.keepSubmitCount\n ? _formState.submitCount\n : 0,\n isDirty: isEmptyResetValues\n ? false\n : keepStateOptions.keepDirty\n ? _formState.isDirty\n : !!(keepStateOptions.keepDefaultValues &&\n !deepEqual(formValues, _defaultValues)),\n isSubmitted: keepStateOptions.keepIsSubmitted\n ? _formState.isSubmitted\n : false,\n dirtyFields: isEmptyResetValues\n ? {}\n : keepStateOptions.keepDirtyValues\n ? keepStateOptions.keepDefaultValues && _formValues\n ? getDirtyFields(_defaultValues, _formValues)\n : _formState.dirtyFields\n : keepStateOptions.keepDefaultValues && formValues\n ? getDirtyFields(_defaultValues, formValues)\n : keepStateOptions.keepDirty\n ? _formState.dirtyFields\n : {},\n touchedFields: keepStateOptions.keepTouched\n ? _formState.touchedFields\n : {},\n errors: keepStateOptions.keepErrors ? _formState.errors : {},\n isSubmitSuccessful: keepStateOptions.keepIsSubmitSuccessful\n ? _formState.isSubmitSuccessful\n : false,\n isSubmitting: false,\n });\n };\n const reset = (formValues, keepStateOptions) => _reset(isFunction(formValues)\n ? formValues(_formValues)\n : formValues, keepStateOptions);\n const setFocus = (name, options = {}) => {\n const field = get(_fields, name);\n const fieldReference = field && field._f;\n if (fieldReference) {\n const fieldRef = fieldReference.refs\n ? fieldReference.refs[0]\n : fieldReference.ref;\n if (fieldRef.focus) {\n fieldRef.focus();\n options.shouldSelect && fieldRef.select();\n }\n }\n };\n const _updateFormState = (updatedFormState) => {\n _formState = {\n ..._formState,\n ...updatedFormState,\n };\n };\n const _resetDefaultValues = () => isFunction(_options.defaultValues) &&\n _options.defaultValues().then((values) => {\n reset(values, _options.resetOptions);\n _subjects.state.next({\n isLoading: false,\n });\n });\n return {\n control: {\n register,\n unregister,\n getFieldState,\n handleSubmit,\n setError,\n _executeSchema,\n _getWatch,\n _getDirty,\n _updateValid,\n _removeUnmounted,\n _updateFieldArray,\n _updateDisabledField,\n _getFieldArray,\n _reset,\n _resetDefaultValues,\n _updateFormState,\n _disableForm,\n _subjects,\n _proxyFormState,\n _setErrors,\n get _fields() {\n return _fields;\n },\n get _formValues() {\n return _formValues;\n },\n get _state() {\n return _state;\n },\n set _state(value) {\n _state = value;\n },\n get _defaultValues() {\n return _defaultValues;\n },\n get _names() {\n return _names;\n },\n set _names(value) {\n _names = value;\n },\n get _formState() {\n return _formState;\n },\n set _formState(value) {\n _formState = value;\n },\n get _options() {\n return _options;\n },\n set _options(value) {\n _options = {\n ..._options,\n ...value,\n };\n },\n },\n trigger,\n register,\n handleSubmit,\n watch,\n setValue,\n getValues,\n reset,\n resetField,\n clearErrors,\n unregister,\n setError,\n setFocus,\n getFieldState,\n };\n}\n\n/**\n * Custom hook to manage the entire form.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useform) • [Demo](https://codesandbox.io/s/react-hook-form-get-started-ts-5ksmm) • [Video](https://www.youtube.com/watch?v=RkXv4AXXC_4)\n *\n * @param props - form configuration and validation parameters.\n *\n * @returns methods - individual functions to manage the form state. {@link UseFormReturn}\n *\n * @example\n * ```tsx\n * function App() {\n * const { register, handleSubmit, watch, formState: { errors } } = useForm();\n * const onSubmit = data => console.log(data);\n *\n * console.log(watch(\"example\"));\n *\n * return (\n * <form onSubmit={handleSubmit(onSubmit)}>\n * <input defaultValue=\"test\" {...register(\"example\")} />\n * <input {...register(\"exampleRequired\", { required: true })} />\n * {errors.exampleRequired && <span>This field is required</span>}\n * <button>Submit</button>\n * </form>\n * );\n * }\n * ```\n */\nfunction useForm(props = {}) {\n const _formControl = React.useRef();\n const _values = React.useRef();\n const [formState, updateFormState] = React.useState({\n isDirty: false,\n isValidating: false,\n isLoading: isFunction(props.defaultValues),\n isSubmitted: false,\n isSubmitting: false,\n isSubmitSuccessful: false,\n isValid: false,\n submitCount: 0,\n dirtyFields: {},\n touchedFields: {},\n validatingFields: {},\n errors: props.errors || {},\n disabled: props.disabled || false,\n defaultValues: isFunction(props.defaultValues)\n ? undefined\n : props.defaultValues,\n });\n if (!_formControl.current) {\n _formControl.current = {\n ...createFormControl(props),\n formState,\n };\n }\n const control = _formControl.current.control;\n control._options = props;\n useSubscribe({\n subject: control._subjects.state,\n next: (value) => {\n if (shouldRenderFormState(value, control._proxyFormState, control._updateFormState, true)) {\n updateFormState({ ...control._formState });\n }\n },\n });\n React.useEffect(() => control._disableForm(props.disabled), [control, props.disabled]);\n React.useEffect(() => {\n if (control._proxyFormState.isDirty) {\n const isDirty = control._getDirty();\n if (isDirty !== formState.isDirty) {\n control._subjects.state.next({\n isDirty,\n });\n }\n }\n }, [control, formState.isDirty]);\n React.useEffect(() => {\n if (props.values && !deepEqual(props.values, _values.current)) {\n control._reset(props.values, control._options.resetOptions);\n _values.current = props.values;\n updateFormState((state) => ({ ...state }));\n }\n else {\n control._resetDefaultValues();\n }\n }, [props.values, control]);\n React.useEffect(() => {\n if (props.errors) {\n control._setErrors(props.errors);\n }\n }, [props.errors, control]);\n React.useEffect(() => {\n if (!control._state.mount) {\n control._updateValid();\n control._state.mount = true;\n }\n if (control._state.watch) {\n control._state.watch = false;\n control._subjects.state.next({ ...control._formState });\n }\n control._removeUnmounted();\n });\n React.useEffect(() => {\n props.shouldUnregister &&\n control._subjects.values.next({\n values: control._getWatch(),\n });\n }, [props.shouldUnregister, control]);\n _formControl.current.formState = getProxyFormState(formState, control);\n return _formControl.current;\n}\n\nexport { Controller, Form, FormProvider, appendErrors, get, set, useController, useFieldArray, useForm, useFormContext, useFormState, useWatch };\n//# sourceMappingURL=index.esm.mjs.map\n","import { DatePicker, SearchField, Button } from \"@egovernments/digit-ui-components\";\nimport React from \"react\";\nimport { Controller } from \"react-hook-form\";\nconst SearchFields = ({ register, control, reset, tenantId, t, previousPage, formState, isLoading }) => {\n const isMobile = window.Digit.Utils.browser.isMobile();\n\n return (\n <>\n <SearchField className=\"pt-form-field\">\n <label>{t(\"AUDIT_FROM_DATE_LABEL\")}</label>\n <Controller render={(props) => <DatePicker date={props.value} onChange={props.onChange} />} name=\"fromDate\" control={control} />\n </SearchField>\n <SearchField className=\"pt-form-field\">\n <label>{t(\"AUDIT_TO_DATE_LABEL\")}</label>\n <Controller render={(props) => <DatePicker date={props.value} onChange={props.onChange} />} name=\"toDate\" control={control} />\n </SearchField>\n <SearchField className=\"pt-search-action-submit\">\n <Button\n style={{ marginTop: isMobile ? \"510px\" : \"25px\", marginLeft: isMobile ? \"0\" : \"-30px\", maxWidth: isMobile ? \"100%\" : \"240px\" }}\n label={t(\"ES_COMMON_APPLY\")}\n submit\n />\n </SearchField>\n </>\n );\n};\nexport default SearchFields;\n","import {\n BackButton,\n DetailsCard,\n HeaderComponent,\n Loader,\n PopUp,\n SearchAction,\n SearchForm,\n CloseSvg,\n DownloadBtnCommon,\n} from \"@egovernments/digit-ui-components\";\nimport React, {\n useCallback,\n useEffect,\n useMemo,\n useReducer,\n useState,\n} from \"react\";\nimport SearchFormFields from \"./SearchFields\";\n// import { convertEpochToDateDMY } from \"../../utils\";\n\nconst MobileSearchApplication = ({\n Controller,\n register,\n control,\n t,\n reset,\n previousPage,\n handleSubmit,\n tenantId,\n data,\n onSubmit,\n isLoading,\n}) => {\n function activateModal(state, action) {\n switch (action.type) {\n case \"set\":\n return action.payload;\n case \"remove\":\n return false;\n default:\n break;\n }\n }\n const [tabledata, settabledata] = useState([]);\n const DownloadBtn = (props) => {\n return (\n <div onClick={props.onClick}>\n <DownloadBtnCommon />\n </div>\n );\n };\n const handleExcelDownload = (tabData) => {\n if (tabData?.[0] !== undefined) {\n return Digit.Download.Excel(tabData?.[0], \"AuditReport\");\n }\n };\n useEffect(() => {\n if (data?.length > 0) {\n settabledata([\n data?.map((obj) => {\n let returnObject = {};\n returnObject[t(\"AUDIT_DATE_LABEL\")] = convertEpochToDate(\n obj?.timestamp\n );\n returnObject[t(\"AUDIT_TIME_LABEL\")] = convertEpochToTimeInHours(\n obj?.timestamp\n );\n returnObject[t(\"AUDIT_DATAVIEWED_LABEL\")] =\n obj?.dataView[0] + \",\" + obj?.dataView[1];\n returnObject[t(\"AUDIT_DATAVIEWED_BY_LABEL\")] = obj?.dataViewedBy;\n returnObject[t(\"AUDIT_ROLE_LABEL\")] = obj?.roles\n .map((obj) => obj.name)\n .join(\",\");\n return {\n ...returnObject,\n };\n }),\n ]);\n }\n }, [data]);\n const convertEpochToDate = (dateEpoch) => {\n if (dateEpoch == null || dateEpoch == undefined || dateEpoch == \"\") {\n return \"NA\";\n }\n const dateFromApi = new Date(dateEpoch);\n let month = dateFromApi.getMonth() + 1;\n let day = dateFromApi.getDate();\n let year = dateFromApi.getFullYear();\n month = (month > 9 ? \"\" : \"0\") + month;\n day = (day > 9 ? \"\" : \"0\") + day;\n return `${day}/${month}/${year}`;\n };\n const convertEpochToTimeInHours = (dateEpoch) => {\n if (dateEpoch == null || dateEpoch == undefined || dateEpoch == \"\") {\n return \"NA\";\n }\n const dateFromApi = new Date(dateEpoch);\n let hour = dateFromApi.getHours();\n let min = dateFromApi.getMinutes();\n let period = hour > 12 ? \"PM\" : \"AM\";\n hour = hour > 12 ? hour - 12 : hour;\n hour = (hour > 9 ? \"\" : \"0\") + hour;\n min = (min > 9 ? \"\" : \"0\") + min;\n return `${hour}:${min} ${period}`;\n };\n const [currentlyActiveMobileModal, setActiveMobileModal] = useReducer(\n activateModal,\n false\n );\n\n const closeMobilePopupModal = () => {\n setActiveMobileModal({ type: \"remove\" });\n };\n\n const MobilePopUpCloseButton = () => (\n <div\n className=\"InboxMobilePopupCloseButtonWrapper\"\n onClick={closeMobilePopupModal}\n >\n <CloseSvg />\n </div>\n );\n const searchFormFieldsComponentProps = {\n Controller,\n register,\n control,\n t,\n reset,\n previousPage,\n };\n\n const MobileComponentDirectory = ({\n currentlyActiveMobileModal,\n searchFormFieldsComponentProps,\n tenantId,\n ...props\n }) => {\n const { closeMobilePopupModal } = props;\n switch (currentlyActiveMobileModal) {\n case \"SearchFormComponent\":\n return (\n <SearchForm {...props}>\n <MobilePopUpCloseButton />\n <div className=\"MobilePopupHeadingWrapper\">\n <h2>{t(\"PRIVACY_AUDIT_REPORT\")}:</h2>\n </div>\n <SearchFormFields\n {...searchFormFieldsComponentProps}\n {...{ closeMobilePopupModal, tenantId, t }}\n />\n {/* <SearchField className=\"submit\">\n <SubmitBar label={t(\"ES_COMMON_SEARCH\")} submit form=\"search-form\"/>\n <p onClick={onResetSearchForm}>{t(`ES_COMMON_CLEAR_ALL`)}</p>\n </SearchField> */}\n </SearchForm>\n );\n default:\n return <span></span>;\n }\n };\n const CurrentMobileModalComponent = useCallback(\n ({\n currentlyActiveMobileModal,\n searchFormFieldsComponentProps,\n tenantId,\n ...props\n }) =>\n MobileComponentDirectory({\n currentlyActiveMobileModal,\n searchFormFieldsComponentProps,\n tenantId,\n ...props,\n }),\n [currentlyActiveMobileModal]\n );\n let roles = [];\n data?.roles?.forEach((item) => {\n roles.push(item?.name);\n });\n const propsMobileInboxCards = useMemo(() => {\n if (data?.display) {\n return [];\n }\n if (data === \"\") {\n return [];\n }\n return data?.map((data) => ({\n [t(\"AUDIT_DATE_LABEL\")]: convertEpochToDate(data.timestamp),\n [t(\"AUDIT_TIME_LABEL\")]: convertEpochToTimeInHours(data.timestamp),\n [t(\"AUDIT_DATAVIEWED_LABEL\")]: data.dataView[0] + \",\" + data.dataView[1],\n [t(\"AUDIT_DATAVIEWED_BY_LABEL\")]: data.dataViewedBy,\n [t(\"AUDIT_ROLE_LABEL\")]: data.roles\n .slice(0, 3)\n ?.map((e) => e.name)\n .join(\",\"),\n }));\n }, [data]);\n\n return (\n <React.Fragment>\n <BackButton />\n <div\n className=\"sideContent\"\n style={{ marginLeft: \"70%\", marginTop: \"-12%\" }}\n >\n <DownloadBtn\n className=\"mrlg cursorPointer\"\n onClick={() => handleExcelDownload(tabledata)}\n />\n </div>\n <HeaderComponent>{t(\"PRIVACY_AUDIT_REPORT\")}:</HeaderComponent>\n <div className=\"digit-search-box\">\n <SearchAction\n text={t(\"ES_COMMON_SEARCH\")}\n handleActionClick={() =>\n setActiveMobileModal({\n type: \"set\",\n payload: \"SearchFormComponent\",\n })\n }\n {...{ tenantId, t }}\n />\n </div>\n {currentlyActiveMobileModal ? (\n <PopUp>\n <CurrentMobileModalComponent\n onSubmit={(data) => {\n setActiveMobileModal({ type: \"remove\" });\n onSubmit(data);\n }}\n handleSubmit={handleSubmit}\n id=\"search-form\"\n className=\"rm-mb form-field-flex-one inboxPopupMobileWrapper\"\n {...{\n searchFormFieldsComponentProps,\n currentlyActiveMobileModal,\n closeMobilePopupModal,\n tenantId,\n }}\n />\n </PopUp>\n ) : null}\n {isLoading && <Loader />}\n <DetailsCard\n {...{\n data: propsMobileInboxCards,\n }}\n />\n </React.Fragment>\n );\n};\n\nexport default MobileSearchApplication;\n","import {\n DownloadBtnCommon,\n Table,\n} from \"@egovernments/digit-ui-react-components\";\nimport {\n BackButton,\n Loader,\n SearchForm,\n HeaderComponent\n} from \"@egovernments/digit-ui-components\";\nimport React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { Controller, useForm } from \"react-hook-form\";\nimport MobileSearchApplication from \"./MobileSearchApplication\";\nimport SearchFields from \"./SearchFields\";\n\nconst SearchApplication = ({ tenantId, t, onSubmit, data, count }) => {\n const initialValues = Digit.SessionStorage.get(\n \"AUDIT_APPLICATION_DETAIL\"\n ) || {\n offset: 0,\n limit: 5,\n sortOrder: \"DESC\",\n };\n const {\n register,\n control,\n handleSubmit,\n setValue,\n getValues,\n reset,\n } = useForm({\n defaultValues: initialValues,\n });\n const convertEpochToDate = (dateEpoch) => {\n if (dateEpoch == null || dateEpoch == undefined || dateEpoch == \"\") {\n return \"NA\";\n }\n const dateFromApi = new Date(dateEpoch);\n let month = dateFromApi.getMonth() + 1;\n let day = dateFromApi.getDate();\n let year = dateFromApi.getFullYear();\n month = (month > 9 ? \"\" : \"0\") + month;\n day = (day > 9 ? \"\" : \"0\") + day;\n return `${day}/${month}/${year}`;\n };\n const convertEpochToTimeInHours = (dateEpoch) => {\n if (dateEpoch == null || dateEpoch == undefined || dateEpoch == \"\") {\n return \"NA\";\n }\n const dateFromApi = new Date(dateEpoch);\n let hour = dateFromApi.getHours();\n let min = dateFromApi.getMinutes();\n let period = hour > 12 ? \"PM\" : \"AM\";\n hour = hour > 12 ? hour - 12 : hour;\n hour = (hour > 9 ? \"\" : \"0\") + hour;\n min = (min > 9 ? \"\" : \"0\") + min;\n return `${hour}:${min} ${period}`;\n };\n const [tabledata, settabledata] = useState([]);\n const DownloadBtn = (props) => {\n return (\n <div onClick={props.onClick}>\n <DownloadBtnCommon />\n </div>\n );\n };\n const handleExcelDownload = (tabData) => {\n if (tabData?.[0] !== undefined) {\n return Digit.Download.Excel(tabData?.[0], \"AuditReport\");\n }\n };\n useEffect(() => {\n register(\"offset\", 0);\n register(\"limit\", 5);\n register(\"sortOrder\", \"DESC\");\n }, [register]);\n useEffect(() => {\n if (data?.length > 0) {\n settabledata([\n data?.map((obj) => {\n let returnObject = {};\n returnObject[t(\"AUDIT_DATE_LABEL\")] = convertEpochToDate(\n obj?.timestamp\n );\n returnObject[t(\"AUDIT_TIME_LABEL\")] = convertEpochToTimeInHours(\n obj?.timestamp\n );\n returnObject[t(\"AUDIT_DATAVIEWED_LABEL\")] =\n obj?.dataView[0] + \",\" + obj?.dataView[1];\n returnObject[t(\"AUDIT_DATAVIEWED_BY_LABEL\")] = obj?.dataViewedBy;\n returnObject[t(\"AUDIT_ROLE_LABEL\")] = obj?.roles\n .map((obj) => obj.name)\n .join(\",\");\n return {\n ...returnObject,\n };\n }),\n ]);\n }\n }, [data]);\n const onSort = useCallback((args) => {\n if (args.length === 0) return;\n setValue(\"sortBy\", args.id);\n setValue(\"sortOrder\", args.desc ? \"DESC\" : \"ASC\");\n }, []);\n\n function onPageSizeChange(e) {\n setValue(\"limit\", Number(e.target.value));\n handleSubmit(onSubmit)();\n }\n\n function nextPage() {\n setValue(\"offset\", getValues(\"offset\") + getValues(\"limit\"));\n handleSubmit(onSubmit)();\n }\n function previousPage() {\n setValue(\"offset\", getValues(\"offset\") - getValues(\"limit\"));\n handleSubmit(onSubmit)();\n }\n const isMobile = window.Digit.Utils.browser.isMobile();\n\n if (isMobile) {\n return (\n <MobileSearchApplication\n {...{\n Controller,\n register,\n control,\n t,\n reset,\n previousPage,\n handleSubmit,\n tenantId,\n data,\n onSubmit,\n }}\n />\n );\n }\n\n //need to get from workflow\n const GetCell = (value) => <span className=\"cell-text\">{value}</span>;\n const columns = useMemo(\n () => [\n {\n Header: t(\"AUDIT_DATE_LABEL\"),\n disableSortBy: true,\n accessor: (row) => {\n const timestamp =\n row.timestamp === \"NA\"\n ? t(\"WS_NA\")\n : convertEpochToDate(row.timestamp);\n return GetCell(`${timestamp}`);\n },\n },\n {\n Header: t(\"AUDIT_TIME_LABEL\"),\n disableSortBy: true,\n accessor: (row) => {\n const timestamp =\n row.timestamp === \"NA\"\n ? t(\"WS_NA\")\n : convertEpochToTimeInHours(row.timestamp);\n return GetCell(`${timestamp}`);\n },\n },\n {\n Header: isMobile\n ? t(\"AUDIT_DATAVIEWED_LABEL\")\n : t(\"AUDIT_DATAVIEWED_PRIVACY\"),\n disableSortBy: true,\n accessor: (row) => {\n return GetCell(`${row?.dataView}`);\n },\n },\n {\n Header: isMobile\n ? t(\"AUDIT_DATAVIEWED_BY_LABEL\")\n : t(\"AUDIT_DATAVIEWED_BY_PRIVACY\"),\n disableSortBy: true,\n accessor: (row) => {\n return GetCell(`${row?.dataViewedBy}`);\n },\n },\n {\n Header: t(\"AUDIT_ROLE_LABEL\"),\n disableSortBy: true,\n accessor: (row) => {\n return GetCell(`${row?.roles.slice(0, 3)?.map((e) => e.name)}`);\n },\n },\n ],\n []\n );\n\n return (\n <React.Fragment>\n <div style={{ marginRight: \"-70px\" }}>\n {\" \"}\n <BackButton />{\" \"}\n </div>\n <div style={{ marginTop: \"30px\", marginLeft: \"30px\" }}>\n {\" \"}\n <HeaderComponent>{t(\"PRIVACY_AUDIT_REPORT\")}</HeaderComponent>{\" \"}\n </div>\n <SearchForm\n className=\"audit-card\"\n onSubmit={onSubmit}\n handleSubmit={handleSubmit}\n >\n <SearchFields\n {...{ register, control, reset, tenantId, t, previousPage }}\n />\n </SearchForm>\n <div\n style={{\n marginTop: \"240px\",\n marginLeft: \"-55%\",\n maxWidth: \"80%\",\n marginRight: \"52px\",\n }}\n >\n {data?.display ? (\n <div\n style={{\n marginTop: \"20x\",\n width: \"1025px\",\n marginLeft: \"25px\",\n backgroundColor: \"white\",\n height: \"60px\",\n }}\n >\n {t(data.display)\n .split(\"\\\\n\")\n .map((text, index) => (\n <p key={index} style={{ textAlign: \"center\" }}>\n {text}\n </p>\n ))}\n </div>\n ) : data !== \"\" ? (\n <div\n style={{\n backgroundColor: \"white\",\n marginRight: \"-30px\",\n marginLeft: \"30px\",\n }}\n >\n <div\n className=\"sideContent\"\n style={{ float: \"right\", padding: \"10px 30px\" }}\n >\n <DownloadBtn\n className=\"mrlg cursorPointer\"\n onClick={() => handleExcelDownload(tabledata)}\n />\n </div>\n <Table\n t={t}\n data={data}\n totalRecords={count}\n columns={columns}\n getCellProps={(cellInfo) => {\n return {\n style: {\n minWidth:\n cellInfo.column.Header === t(\"ES_INBOX_APPLICATION_NO\")\n ? \"240px\"\n : \"\",\n padding: \"20px 18px\",\n fontSize: \"16px\",\n },\n };\n }}\n onPageSizeChange={onPageSizeChange}\n currentPage={getValues(\"offset\") / getValues(\"limit\")}\n onNextPage={nextPage}\n onPrevPage={previousPage}\n manualPagination={false}\n pageSizeLimit={getValues(\"limit\")}\n onSort={onSort}\n disableSort={false}\n sortParams={[\n {\n id: getValues(\"sortBy\"),\n desc: getValues(\"sortOrder\") === \"DESC\" ? true : false,\n },\n ]}\n />\n </div>\n ) : (\n <Loader />\n )}\n </div>\n </React.Fragment>\n );\n};\n\nexport default SearchApplication;\n","import React, { useEffect, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport AuditSearchApplication from \"../../components/Search\";\nconst Search = ({ path }) => {\n const { t } = useTranslation();\n const tenantId = Digit.ULBService.getCitizenCurrentTenant()\n const [payload, setPayload] = useState({});\n const convertDateToEpoch = (dateString, dayStartOrEnd = \"dayend\") => {\n //example input format : \"2018-10-02\"\n try {\n const parts = dateString.match(/(\\d{4})-(\\d{1,2})-(\\d{1,2})/);\n const DateObj = new Date(Date.UTC(parts[1], parts[2] - 1, parts[3]));\n DateObj.setMinutes(DateObj.getMinutes() + DateObj.getTimezoneOffset());\n if (dayStartOrEnd === \"dayend\") {\n DateObj.setHours(DateObj.getHours() + 24);\n DateObj.setSeconds(DateObj.getSeconds() - 1);\n }\n return DateObj.getTime();\n } catch (e) {\n return dateString;\n }\n };\n function onSubmit(_data) {\n Digit.SessionStorage.set(\"AUDIT_APPLICATION_DETAIL\", {\n offset: 0,\n limit: 5,\n sortBy: \"commencementDate\",\n sortOrder: \"DESC\",\n });\n const data = {\n ..._data,\n fromDate: convertDateToEpoch(_data?.fromDate),\n toDate: convertDateToEpoch(_data?.toDate),\n };\n \n setPayload(\n Object.keys(data)\n .filter((k) => data[k])\n .reduce((acc, key) => ({ ...acc, [key]: typeof data[key] === \"object\" ? data[key] : data[key] }), {})\n );\n }\n useEffect(() => {\n const storedPayload = Digit.SessionStorage.get(\"AUDIT_APPLICATION_DETAIL\") || {};\n if (storedPayload) {\n const data = {\n ...storedPayload,\n };\n \n setPayload(\n Object.keys(data)\n .filter((k) => data[k])\n .reduce((acc, key) => ({ ...acc, [key]: typeof data[key] === \"object\" ? data[key].code : data[key] }), {})\n );\n }\n }, []);\n const config = {\n enabled: !!(payload && Object.keys(payload).length > 0),\n };\n const newObj = { ...payload };\n \n const {\n isLoading,\n data,\n} = Digit.Hooks.useAudit({\n tenantId,\n filters: {\n ...newObj,\n },\n config,\n });\n\n return (\n <AuditSearchApplication\n t={t}\n tenantId={tenantId}\n onSubmit={onSubmit}\n data={\n !isLoading\n ? data?.ElasticSearchData?.length > 0\n ? data?.ElasticSearchData\n : { display: \"ES_COMMON_NO_DATA\" }\n : \"\"\n }\n count={data?.ElasticSearchData?.length}\n />\n );\n };\n export default Search;","import {\n Card,\n Loader,\n CaseIcon,\n ComplaintIcon,\n HelpLineIcon,\n MCollectIcon,\n PTIcon,\n RupeeSymbol,\n ServiceCenterIcon,\n TimerIcon,\n ValidityTimeIcon,\n WhatsappIconGreen,\n} from \"@egovernments/digit-ui-components\";\nimport React from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nconst StaticDynamicCard = ({ moduleCode }) => {\n const { t } = useTranslation();\n const tenantId = Digit.ULBService.getCitizenCurrentTenant();\n const {\n isLoading: isMdmsLoading,\n data: mdmsData,\n } = Digit.Hooks.useStaticData(Digit.ULBService.getStateId());\n const {\n isLoading: isSearchLoading,\n error,\n data: dynamicData,\n isSuccess,\n } = Digit.Hooks.useDynamicData({\n moduleCode,\n tenantId: tenantId,\n filters: {},\n t,\n });\n const handleClickOnWhatsApp = (obj) => {\n window.open(obj);\n };\n\n const IconComponent = ({ module, styles }) => {\n switch (module) {\n case \"TL\":\n return <CaseIcon className=\"fill-path-primary-main\" styles={styles} />;\n case \"PT\":\n return <PTIcon className=\"fill-path-primary-main\" styles={styles} />;\n case \"MCOLLECT\":\n return (\n <MCollectIcon className=\"fill-path-primary-main\" styles={styles} />\n );\n case \"PGR\":\n return (\n <ComplaintIcon className=\"fill-path-primary-main\" styles={styles} />\n );\n default:\n return <CaseIcon className=\"fill-path-primary-main\" styles={styles} />;\n }\n };\n const mdmsConfigResult =\n mdmsData?.MdmsRes[\"common-masters\"]?.StaticData[0]?.[`${moduleCode}`];\n\n const StaticDataIconComponentOne = ({ module }) => {\n switch (module) {\n case \"PT\":\n case \"WS\":\n return (\n <span className=\"timerIcon\">\n <TimerIcon />\n </span>\n );\n default:\n return null;\n }\n };\n const StaticDataIconComponentTwo = ({ module }) => {\n switch (module) {\n case \"PT\":\n return (\n <span className=\"rupeeSymbol\">\n <RupeeSymbol />\n </span>\n );\n case \"WS\":\n return (\n <span className=\"timerIcon\">\n <TimerIcon />\n </span>\n );\n default:\n return null;\n }\n };\n const staticContent = (module) => {\n switch (module) {\n case \"TL\":\n case \"PT\":\n case \"MCOLLECT\":\n return {\n staticCommonContent: t(\"COMMON_VALIDITY\"),\n validity:\n mdmsConfigResult?.validity +\n (mdmsConfigResult?.validity === \"1\"\n ? t(\"COMMON_DAY\")\n : t(\"COMMON_DAYS\")),\n };\n case \"PGR\":\n return {\n staticCommonContent: t(\"ACTION_TEST_COMPLAINT_TYPES\"),\n };\n case \"OBPS\":\n return {\n staticCommonContent: t(\"BUILDING_PLAN_PERMIT_VALIDITY\"),\n validity:\n mdmsConfigResult?.validity +\n \" \" +\n (mdmsConfigResult?.validity === \"1\"\n ? t(\"COMMON_DAY\")\n : t(\"COMMON_DAYS\")),\n };\n default:\n return {\n staticCommonContent: \"\",\n };\n }\n };\n\n const staticData = (module) => {\n switch (module) {\n case \"PT\":\n return {\n staticDataOne:\n mdmsConfigResult?.staticDataOne + \" \" + t(\"COMMON_DAYS\"),\n staticDataOneHeader: t(\"APPLICATION_PROCESSING_TIME\"),\n staticDataTwo: mdmsConfigResult?.staticDataTwo,\n staticDataTwoHeader: t(\"APPLICATION_PROCESSING_FEE\"),\n };\n case \"WS\":\n return {\n staticDataOne: \"\",\n staticDataOneHeader:\n t(\"PAY_WATER_CHARGES_BY\") +\n \" \" +\n mdmsConfigResult?.staticDataOne +\n \" \" +\n t(\"COMMON_DAYS\") +\n \" \" +\n t(\"OF_BILL_GEN_TO_AVOID_LATE_FEE\"),\n staticDataTwo:\n mdmsConfigResult?.staticDataTwo + \" \" + t(\"COMMON_DAYS\"),\n staticDataTwoHeader: t(\"APPLICATION_PROCESSING_TIME\"),\n };\n default:\n return {};\n }\n };\n\n if (isMdmsLoading || isSearchLoading) {\n return <Loader />;\n }\n return mdmsConfigResult ? (\n <React.Fragment>\n {mdmsConfigResult && mdmsConfigResult?.payViaWhatsApp ? (\n <Card style={{ margin: \"16px\", padding: \"16px\", maxWidth: \"unset\" }}>\n <div\n className=\"pay-whatsapp-card\"\n onClick={() =>\n handleClickOnWhatsApp(mdmsConfigResult?.payViaWhatsApp)\n }\n >\n <div className=\"pay-whatsapp-text\">{t(\"PAY_VIA_WHATSAPP\")}</div>\n <div className=\"whatsAppIconG\">\n <WhatsappIconGreen />\n </div>\n </div>\n </Card>\n ) : null}\n {mdmsConfigResult && mdmsConfigResult?.helpline ? (\n <Card style={{ margin: \"16px\", padding: \"16px\", maxWidth: \"unset\" }}>\n <div className=\"static-home-Card\">\n <div className=\"static-home-Card-header\">\n {t(\"CALL_CENTER_HELPLINE\")}\n </div>\n <div className=\"helplineIcon\">\n <HelpLineIcon />\n </div>\n </div>\n <div className=\"call-center-card-text\">\n {mdmsConfigResult?.helpline?.contactOne ? (\n <div className=\"call-center-card-content\">\n <a href={`tel:${mdmsConfigResult?.helpline?.contactOne}`}>\n {mdmsConfigResult?.helpline?.contactOne}\n </a>\n </div>\n ) : null}\n {mdmsConfigResult?.helpline?.contactTwo ? (\n <div className=\"call-center-card-content\">\n <a href={`tel:${mdmsConfigResult?.helpline?.contactTwo}`}>\n {mdmsConfigResult?.helpline?.contactTwo}\n </a>\n </div>\n ) : null}\n </div>\n </Card>\n ) : null}\n {mdmsConfigResult && mdmsConfigResult?.serviceCenter ? (\n <Card style={{ margin: \"16px\", padding: \"16px\", maxWidth: \"unset\" }}>\n <div className=\"static-home-Card\">\n <div className=\"static-home-Card-header\">\n {t(\"CITIZEN_SERVICE_CENTER\")}\n </div>\n <div className=\"serviceCentrIcon\">\n <ServiceCenterIcon />\n </div>\n </div>\n <div className=\"service-center-details-card\">\n <div className=\"service-center-details-text\">\n {mdmsConfigResult?.serviceCenter}\n </div>\n </div>\n {mdmsConfigResult?.viewMapLocation ? (\n <div className=\"link\">\n <a href={mdmsConfigResult?.viewMapLocation}>{t(\"VIEW_ON_MAP\")}</a>\n </div>\n ) : null}\n </Card>\n ) : (\n <div />\n )}\n <Card style={{ margin: \"16px\", padding: \"16px\", maxWidth: \"unset\" }}>\n {error ||\n dynamicData == null ||\n dynamicData?.dynamicDataOne === null ? (\n <div />\n ) : (\n <div className=\"dynamicDataCard\">\n <div className=\"dynamicData\">\n <IconComponent\n module={moduleCode}\n styles={{ width: \"24px\", height: \"24px\" }}\n />\n <span className=\"dynamicData-content\">\n {dynamicData?.dynamicDataOne}\n </span>\n </div>\n </div>\n )}\n {error ||\n dynamicData == null ||\n dynamicData?.dynamicDataTwo === null ? (\n <div />\n ) : (\n <div className=\"dynamicDataCard\">\n <div className=\"dynamicData\">\n <IconComponent\n module={moduleCode}\n styles={{ width: \"24px\", height: \"24px\" }}\n />\n <span className=\"dynamicData-content\">\n {dynamicData?.dynamicDataTwo}\n </span>\n </div>\n </div>\n )}\n {mdmsConfigResult && mdmsConfigResult?.staticDataOne ? (\n <div className=\"staticDataCard\">\n <div className=\"staticData\">\n <StaticDataIconComponentOne module={moduleCode} />\n <span className=\"static-data-content\">\n <span\n className=\"static-data-content-first\"\n style={{\n marginTop:\n staticData(moduleCode)?.staticDataOne === \"\"\n ? \"8px\"\n : \"unset\",\n }}\n >\n {staticData(moduleCode)?.staticDataOneHeader}\n </span>\n <span className=\"static-data-content-second\">{`${\n staticData(moduleCode)?.staticDataOne\n }`}</span>\n </span>\n </div>\n </div>\n ) : (\n <div />\n )}\n {mdmsConfigResult && mdmsConfigResult?.staticDataTwo ? (\n <div className=\"staticDataCard\">\n <div className=\"staticData\">\n <StaticDataIconComponentTwo module={moduleCode} />\n <span className=\"static-data-content\">\n <span className=\"static-data-content-first\">\n {staticData(moduleCode)?.staticDataTwoHeader}\n </span>\n <span className=\"static-data-content-second\">\n {staticData(moduleCode)?.staticDataTwo}\n </span>\n </span>\n </div>\n </div>\n ) : (\n <div />\n )}\n {mdmsConfigResult && mdmsConfigResult?.validity ? (\n <div className=\"staticDataCard\">\n <div className=\"staticData\">\n <span className=\"validityIcon\">\n <ValidityTimeIcon />\n </span>\n <span className=\"static-data-content\">\n <span className=\"static-data-content-first\">\n {staticContent(moduleCode)?.staticCommonContent}\n </span>\n <span className=\"static-data-content-second\">\n {staticContent(moduleCode)?.validity}\n </span>\n </span>\n </div>\n </div>\n ) : (\n <div />\n )}\n {error ||\n dynamicData == null ||\n !dynamicData?.staticData ||\n dynamicData?.staticData === null ? (\n <div />\n ) : (\n <div className=\"staticDataCard\">\n <div className=\"staticData\">\n {moduleCode === \"PGR\" ? (\n <IconComponent\n module={moduleCode}\n styles={{\n width: \"24px\",\n height: \"24px\",\n marginLeft: \"13px\",\n marginTop: \"12px\",\n }}\n />\n ) : (\n <span className=\"validityIcon\">\n <ValidityTimeIcon />\n </span>\n )}\n <span className=\"static-data-content\">\n <span className=\"static-data-content-first\">\n {staticContent(moduleCode)?.staticCommonContent}\n </span>\n <span className=\"static-data-content-second\">\n {dynamicData?.staticData}\n </span>\n </span>\n </div>\n </div>\n )}\n </Card>\n </React.Fragment>\n ) : (\n <React.Fragment />\n );\n};\n\nexport default StaticDynamicCard;\n","import React, { useState } from \"react\";\nimport { SideNav, Loader } from \"@egovernments/digit-ui-components\";\nimport { useTranslation } from \"react-i18next\";\nimport { useNavigate } from \"react-router-dom\";\nimport MediaQuery from \"react-responsive\";\nimport LogoutDialog from \"../../Dialog/LogoutDialog\";\n\nconst CitizenSideNav = ({ linkData, islinkDataLoading }) => {\n const { t } = useTranslation();\n const navigate = useNavigate();\n const isMultiRootTenant = Digit.Utils.getMultiRootTenant();\n const tenantId = Digit?.ULBService?.getStateId();\n const user = Digit.UserService.getUser();\n const isLoggedIn = user && user.access_token && user?.info?.type === \"CITIZEN\";\n\n const [showDialog, setShowDialog] = useState(false);\n\n const handleLogoutSubmit = () => {\n Digit.UserService.logout();\n setShowDialog(false);\n window.location.href = `/${window?.contextPath}/citizen/login`;\n };\n\n const handleLogoutCancel = () => {\n setShowDialog(false);\n };\n\n const navigateToUrl = (url) => {\n if (!url || url === \"/\") return;\n\n const isExternal = /^https?:\\/\\//i.test(url);\n if (isExternal) {\n window.open(url, \"_blank\", \"noopener,noreferrer\");\n return;\n }\n\n if (!url.includes(`/${window?.contextPath}`)) {\n const hostUrl = window.location.origin;\n if (isMultiRootTenant) {\n const contextPath = window?.contextPath || \"sandbox-ui\";\n url = url.replace(`/${contextPath}/citizen`, `/${contextPath}/${tenantId}/citizen`);\n navigate(url);\n } else {\n const updatedUrl = hostUrl + url;\n try {\n window.location.href = updatedUrl;\n } catch (error) {\n console.warn(\"Navigation failed, attempting fallback:\", error);\n window.location.replace(updatedUrl);\n }\n }\n } else {\n navigate(url);\n }\n };\n\n const onItemSelect = ({ item }) => {\n if (item?.navigationUrl) {\n navigateToUrl(item.navigationUrl);\n }\n };\n\n const onBottomItemClick = (item) => {\n if (item === \"Logout\") {\n setShowDialog(true);\n }\n };\n\n const buildItems = () => {\n const isDigitStudio = window.location.href.includes(\"digit-studio\");\n const items = [];\n let orderCounter = 1;\n\n if (isLoggedIn) {\n items.push({\n label: t(\"COMMON_BOTTOM_NAVIGATION_HOME\"),\n icon: { icon: \"Home\", width: \"1.5rem\", height: \"1.5rem\" },\n navigationUrl: `/${window?.contextPath}/citizen`,\n orderNumber: orderCounter++,\n });\n\n items.push({\n label: t(\"EDIT_PROFILE\"),\n icon: { icon: \"Edit\", width: \"1.5rem\", height: \"1.5rem\" },\n navigationUrl: `/${window?.contextPath}/citizen/user/profile`,\n orderNumber: orderCounter++,\n });\n }\n\n Object.keys(linkData || {})\n ?.sort((x, y) => x.localeCompare(y))\n ?.forEach((key) => {\n const moduleEntries = linkData[key];\n if (!moduleEntries || moduleEntries.length === 0) return;\n\n // Check if any entry in this module has a sidebar value ending with \"-links\"\n const hasSidebarLink = moduleEntries.some((entry) => entry.sidebar?.endsWith(\"-links\"));\n if (!hasSidebarLink) return;\n\n const rawIcon = moduleEntries[0]?.leftIcon;\n const leftIcon = isDigitStudio && (!rawIcon || rawIcon === \"TLIcon\") ? \"Devices\" : (rawIcon || \"ViewModule\");\n\n // Deduplicate entries by name to avoid duplicate children\n const seen = new Set();\n const uniqueEntries = moduleEntries.filter((entry) => {\n if (seen.has(entry.name)) return false;\n seen.add(entry.name);\n return true;\n });\n\n // Build children from all entries (Apply, My Applications, etc.)\n const children = uniqueEntries.map((entry) => ({\n label: t(entry.displayName || entry.i18nKey),\n icon: { icon: isDigitStudio && (!entry.leftIcon || entry.leftIcon === \"TLIcon\") ? \"Devices\" : (entry.leftIcon || \"ViewModule\"), width: \"1.5rem\", height: \"1.5rem\" },\n navigationUrl: entry.navigationURL || entry.link,\n orderNumber: entry.orderNumber,\n }));\n\n // Sort children by orderNumber\n children.sort((a, b) => {\n const aOrder = a.orderNumber !== undefined ? a.orderNumber : Infinity;\n const bOrder = b.orderNumber !== undefined ? b.orderNumber : Infinity;\n return aOrder - bOrder;\n });\n\n if (children.length === 1) {\n // Single entry — render as flat item (no parent/child nesting)\n items.push({\n label: t(`ACTION_TEST_${Digit.Utils.locale.getTransformedLocale(key)}`),\n icon: { icon: leftIcon, width: \"1.5rem\", height: \"1.5rem\" },\n navigationUrl: children[0].navigationUrl,\n orderNumber: orderCounter++,\n });\n } else {\n // Multiple entries — render as parent with children\n items.push({\n label: t(`ACTION_TEST_${Digit.Utils.locale.getTransformedLocale(key)}`),\n icon: { icon: leftIcon, width: \"1.5rem\", height: \"1.5rem\" },\n children: children,\n orderNumber: orderCounter++,\n });\n }\n });\n\n items.sort((a, b) => {\n const aOrder = a.orderNumber !== undefined ? a.orderNumber : Infinity;\n const bOrder = b.orderNumber !== undefined ? b.orderNumber : Infinity;\n return aOrder - bOrder;\n });\n\n return items;\n };\n\n if (islinkDataLoading) {\n return <Loader />;\n }\n\n const items = buildItems();\n\n return (\n <React.Fragment>\n <MediaQuery minWidth={768}>\n <SideNav\n items={items}\n hideAccessbilityTools={!isLoggedIn}\n onSelect={onItemSelect}\n theme={window?.globalConfigs?.getConfig(\"SIDENAV_THEME\") || \"light\"}\n enableSearch={true}\n variant={window?.globalConfigs?.getConfig(\"SIDENAV_VARIANT\") || \"primary\"}\n transitionDuration={\"\"}\n className=\"\"\n styles={{ position : \"unset\"}}\n expandedWidth=\"\"\n collapsedWidth=\"\"\n onBottomItemClick={onBottomItemClick}\n />\n </MediaQuery>\n {showDialog && (\n <LogoutDialog\n onSelect={handleLogoutSubmit}\n onCancel={handleLogoutCancel}\n onDismiss={handleLogoutCancel}\n />\n )}\n </React.Fragment>\n );\n};\n\nexport default CitizenSideNav;\n","import { BackLink, CitizenHomeCard, CitizenInfoLabel } from \"@egovernments/digit-ui-components\";\nimport React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Routes, Route, useNavigate, useLocation } from \"react-router-dom\";\nimport ErrorBoundary from \"../../components/ErrorBoundaries\";\nimport { AppHome, processLinkData } from \"../../components/Home\";\nimport TopBarSideBar from \"../../components/TopBarSideBar\";\nimport CitizenSideNav from \"../../components/TopBarSideBar/SideBar/CitizenSideNav\";\nimport ImageComponent from \"../../components/ImageComponent\";\nimport { lazyWithFallback } from \"@egovernments/digit-ui-components\";\nimport DynamicModuleLoader from \"../../components/DynamicModuleLoader\";\n\n// Create lazy components with fallbacks using the utility\nconst ErrorComponent = lazyWithFallback(\n () => import(/* webpackChunkName: \"citizen-error-component\" */ \"../../components/ErrorComponent\"),\n () => require(\"../../components/ErrorComponent\").default,\n { loaderText: \"CORE_LOADING_ERROR_COMPONENT\" }\n);\n\nconst FAQsSection = lazyWithFallback(\n () => import(/* webpackChunkName: \"citizen-faqs\" */ \"./FAQs/FAQs\"),\n () => require(\"./FAQs/FAQs\").default,\n { loaderText: \"CORE_LOADING_FAQS\" }\n);\n\nconst CitizenHome = lazyWithFallback(\n () => import(/* webpackChunkName: \"citizen-home\" */ \"./Home\"),\n () => require(\"./Home\").default,\n { loaderText: \"CORE_LOADING_HOME\" }\n);\n\nconst LanguageSelection = lazyWithFallback(\n () => import(/* webpackChunkName: \"citizen-language-selection\" */ \"./Home/LanguageSelection\"),\n () => require(\"./Home/LanguageSelection\").default,\n { loaderText: \"CORE_LOADING_LANGUAGE_SELECTION\" }\n);\n\nconst LocationSelection = lazyWithFallback(\n () => import(/* webpackChunkName: \"citizen-location-selection\" */ \"./Home/LocationSelection\"),\n () => require(\"./Home/LocationSelection\").default,\n { loaderText: \"CORE_LOADING_LOCATION_SELECTION\" }\n);\n\nconst UserProfile = lazyWithFallback(\n () => import(/* webpackChunkName: \"citizen-user-profile\" */ \"./Home/UserProfile\"),\n () => require(\"./Home/UserProfile\").default,\n { loaderText: \"CORE_LOADING_USER_PROFILE\" }\n);\n\nconst HowItWorks = lazyWithFallback(\n () => import(/* webpackChunkName: \"citizen-how-it-works\" */ \"./HowItWorks/howItWorks\"),\n () => require(\"./HowItWorks/howItWorks\").default,\n { loaderText: \"CORE_LOADING_HOW_IT_WORKS\" }\n);\n\nconst Login = lazyWithFallback(\n () => import(/* webpackChunkName: \"citizen-login\" */ \"./Login\"),\n () => require(\"./Login\").default,\n { loaderText: \"CORE_LOADING_LOGIN\" }\n);\n\nconst Search = lazyWithFallback(\n () => import(/* webpackChunkName: \"citizen-search\" */ \"./SearchApp\"),\n () => require(\"./SearchApp\").default,\n { loaderText: \"CORE_LOADING_SEARCH\" }\n);\n\nconst StaticDynamicCard = lazyWithFallback(\n () => import(/* webpackChunkName: \"citizen-static-dynamic-card\" */ \"./StaticDynamicComponent/StaticDynamicCard\"),\n () => require(\"./StaticDynamicComponent/StaticDynamicCard\").default,\n { loaderText: \"CORE_LOADING_DYNAMIC_CONTENT\" }\n);\n\nconst sidebarHiddenFor = [\n `${window?.contextPath}/citizen/register/name`,\n `/${window?.contextPath}/citizen/select-language`,\n `/${window?.contextPath}/citizen/select-location`,\n `/${window?.contextPath}/citizen/login`,\n `/${window?.contextPath}/citizen/register/otp`,\n];\n\nconst getTenants = (codes, tenants) => {\n return tenants.filter((tenant) => codes.map((item) => item.code).includes(tenant.code));\n};\n\nconst Home = ({\n stateInfo,\n userDetails,\n CITIZEN,\n cityDetails,\n mobileView,\n handleUserDropdownSelection,\n logoUrl,\n DSO,\n stateCode,\n modules,\n appTenants,\n sourceUrl, // This prop seems unused, consider removing\n pathname, // This prop seems unused, `useLocation().pathname` is used directly\n initData,\n}) => {\n const { isLoading: islinkDataLoading, data: linkData, isFetched: isLinkDataFetched } = Digit.Hooks.useCustomMDMS(\n Digit.ULBService.getStateId(),\n \"ACCESSCONTROL-ACTIONS-TEST\",\n [\n {\n name: \"actions-test\",\n filter: `[?(@.url == '${Digit.Utils.getMultiRootTenant() ? window.globalPath : window.contextPath}-card')]`,\n },\n ],\n {\n select: (data) => {\n const formattedData = data?.[\"ACCESSCONTROL-ACTIONS-TEST\"]?.[\"actions-test\"]\n ?.filter((el) => el.enabled === true)\n .reduce((a, b) => {\n a[b.parentModule] = a[b.parentModule]?.length > 0 ? [b, ...a[b.parentModule]] : [b];\n return a;\n }, {});\n return formattedData;\n },\n }\n );\n const classname = Digit.Hooks.useRouteSubscription(pathname);\n const { t } = useTranslation();\n const navigate = useNavigate();\n const location = useLocation();\n\n const handleClickOnWhatsApp = (obj) => {\n window.open(obj);\n };\n\n const hideSidebar = sidebarHiddenFor.some((e) => window.location.href.includes(e));\n\n // Create app routes with dynamic module loading and loading states for citizen modules\n const appRoutes = modules.map(({ code, tenants }, index) => {\n return (\n <Route\n key={index}\n path={`${code.toLowerCase()}/*`}\n element={\n <DynamicModuleLoader\n moduleCode={code}\n stateCode={stateCode}\n userType=\"citizen\"\n tenants={getTenants(tenants, appTenants)}\n maxRetries={3}\n retryDelay={1000}\n initialDelay={800}\n />\n }\n />\n );\n });\n\n const ModuleLevelLinkHomePages = modules.map(({ code, bannerImage }, index) => {\n let Links = Digit.ComponentRegistryService.getComponent(`${code}Links`) || (() => <React.Fragment />);\n let mdmsDataObj = isLinkDataFetched ? processLinkData(linkData, code, t) : undefined;\n\n if (mdmsDataObj?.header === \"ACTION_TEST_WS\") {\n mdmsDataObj?.links.sort((a, b) => {\n return b.orderNumber - a.orderNumber;\n });\n }\n return (\n <React.Fragment key={code + \"-routes\"}>\n <Route path={`${code.toLowerCase()}-home`} element={\n <div className=\"moduleLinkHomePage\">\n <ImageComponent src={bannerImage || stateInfo?.bannerUrl} alt=\"noimagefound\" />\n <BackLink className=\"moduleLinkHomePageBackButton\" onClick={() => navigate(-1)} />\n <h1>{t(\"MODULE_\" + code.toUpperCase())}</h1>\n <div className=\"moduleLinkHomePageModuleLinks\">\n {mdmsDataObj && (\n <CitizenHomeCard\n header={t(mdmsDataObj?.header)}\n links={mdmsDataObj?.links}\n Icon={() => <span />}\n Info={\n code === \"OBPS\"\n ? () => (\n <CitizenInfoLabel\n style={{ margin: \"0px\", padding: \"10px\" }}\n info={t(\"CS_FILE_APPLICATION_INFO_LABEL\")}\n text={t(`BPA_CITIZEN_HOME_STAKEHOLDER_INCLUDES_INFO_LABEL`)}\n />\n )\n : null\n }\n isInfo={code === \"OBPS\" ? true : false}\n />\n )}\n </div>\n <StaticDynamicCard moduleCode={code?.toUpperCase()} />\n </div>\n } />\n <Route path={`${code.toLowerCase()}-faq`} element={<FAQsSection module={code?.toUpperCase()} />} />\n <Route path={`${code.toLowerCase()}-how-it-works`} element={<HowItWorks module={code?.toUpperCase()} />} />\n </React.Fragment>\n );\n });\n\n return (\n <div className={classname}>\n <TopBarSideBar\n t={t}\n stateInfo={stateInfo}\n userDetails={userDetails}\n CITIZEN={CITIZEN}\n cityDetails={cityDetails}\n mobileView={mobileView}\n handleUserDropdownSelection={handleUserDropdownSelection}\n logoUrl={logoUrl}\n showSidebar={CITIZEN ? true : false}\n linkData={linkData}\n islinkDataLoading={islinkDataLoading}\n />\n\n <div className={`main center-container citizen-home-container mb-25`}>\n {hideSidebar ? null : (\n <div>\n <CitizenSideNav linkData={linkData} islinkDataLoading={islinkDataLoading} />\n </div>\n )}\n\n <Routes>\n <Route path=\"/\" element={<CitizenHome />} />\n\n <Route path=\"select-language\" element={<LanguageSelection />} />\n\n <Route path=\"select-location\" element={\n <div className=\"citizen-location-selection-wrapper\">\n <LocationSelection />\n </div>\n } />\n\n <Route path=\"error\" element={\n <ErrorComponent\n initData={initData}\n goToHome={() => {\n navigate(`/${window?.contextPath}/${Digit?.UserService?.getType?.()}`);\n }}\n />\n } />\n\n <Route path=\"all-services\" element={\n <AppHome\n userType=\"citizen\"\n modules={modules}\n getCitizenMenu={linkData}\n fetchedCitizen={isLinkDataFetched}\n isLoading={islinkDataLoading}\n />\n } />\n\n <Route path=\"login/*\" element={<Login stateCode={stateCode} />} />\n\n <Route path=\"register/*\" element={<Login stateCode={stateCode} isUserRegistered={false} />} />\n\n <Route path=\"user/profile\" element={\n <div className=\"citizen-user-profile-wrapper\">\n <UserProfile stateCode={stateCode} userType={\"citizen\"} cityDetails={cityDetails} />\n </div>\n } />\n\n <Route path=\"Audit\" element={<Search />} />\n\n {/* Dynamic App Routes and Module Level Link Home Pages */}\n {appRoutes}\n {ModuleLevelLinkHomePages}\n </Routes>\n </div>\n <div className=\"citizen-home-footer\" style={window.location.href.includes(\"citizen/obps\") ? { zIndex: \"-1\" } : {}}>\n <ImageComponent\n alt=\"Powered by DIGIT\"\n src={window?.globalConfigs?.getConfig?.(\"DIGIT_FOOTER\")}\n style={{ height: \"1.2em\", cursor: \"pointer\" }}\n onClick={() => {\n window.open(window?.globalConfigs?.getConfig?.(\"DIGIT_HOME_URL\"), \"_blank\").focus();\n }}\n />\n </div>\n </div>\n );\n};\n\nexport default Home;","import { CardSubHeader, FormComposer,CardText} from \"@egovernments/digit-ui-react-components\";\nimport { BackLink,Toast} from \"@egovernments/digit-ui-components\";\nimport PropTypes from \"prop-types\";\nimport React, { useEffect, useState } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport Background from \"../../../components/Background\";\nimport Header from \"../../../components/Header\";\nimport SelectOtp from \"../../citizen/Login/SelectOtp\";\nimport ImageComponent from \"../../../components/ImageComponent\";\n\nconst ChangePasswordComponent = ({ config: propsConfig, t }) => {\n const [user, setUser] = useState(null);\n const { mobile_number: mobileNumber, tenantId } = Digit.Hooks.useQueryParams();\n const navigate = useNavigate();\n const [otp, setOtp] = useState(\"\");\n const [isOtpValid, setIsOtpValid] = useState(true);\n const [showToast, setShowToast] = useState(null);\n const getUserType = () => Digit.UserService.getType();\n useEffect(() => {\n if (!user) {\n Digit.UserService.setType(\"employee\");\n return;\n }\n Digit.UserService.setUser(user);\n const redirectPath = location.state?.from || `/${window?.contextPath}/employee`;\n navigate(redirectPath, {replace:true});\n }, [user]);\n\n const closeToast = () => {\n setShowToast(null);\n };\n\n const onResendOTP = async () => {\n const requestData = {\n otp: {\n mobileNumber,\n userType: getUserType().toUpperCase(),\n type: \"passwordreset\",\n tenantId,\n },\n };\n\n try {\n await Digit.UserService.sendOtp(requestData, tenantId);\n setShowToast(t(\"ES_OTP_RESEND\"));\n } catch (err) {\n setShowToast(err?.response?.data?.error_description || t(\"ES_INVALID_LOGIN_CREDENTIALS\"));\n }\n setTimeout(closeToast, 5000);\n };\n\n const onChangePassword = async (data) => {\n try {\n if (data.newPassword !== data.confirmPassword) {\n return setShowToast(t(\"ERR_PASSWORD_DO_NOT_MATCH\"));\n }\n const requestData = {\n ...data,\n otpReference: otp,\n tenantId,\n type: getUserType().toUpperCase(),\n };\n\n const response = await Digit.UserService.changePassword(requestData, tenantId);\n navigateToLogin();\n } catch (err) {\n setShowToast(err?.response?.data?.error?.fields?.[0]?.message || t(\"ES_SOMETHING_WRONG\"));\n setTimeout(closeToast, 5000);\n }\n };\n\n const navigateToLogin = () => {\n navigate(`/${window?.contextPath}/employee/user/login`, {replace:true});\n };\n\n const [username, password, confirmPassword] = propsConfig.inputs;\n const config = [\n {\n body: [\n {\n label: t(username.label),\n type: username.type,\n populators: {\n name: username.name,\n },\n isMandatory: true,\n },\n {\n label: t(password.label),\n type: password.type,\n populators: {\n name: password.name,\n },\n isMandatory: true,\n },\n {\n label: t(confirmPassword.label),\n type: confirmPassword.type,\n populators: {\n name: confirmPassword.name,\n },\n isMandatory: true,\n },\n ],\n },\n ];\n\n return (\n <Background>\n <div className=\"employeeBackbuttonAlign\">\n <BackLink variant=\"primary\" style={{ borderBottom: \"none\" }} />\n </div>\n <FormComposer\n onSubmit={onChangePassword}\n noBoxShadow\n inline\n submitInForm\n config={config}\n label={propsConfig.texts.submitButtonLabel}\n cardStyle={{ maxWidth: \"408px\", margin: \"auto\" }}\n className=\"employeeChangePassword\"\n >\n <Header />\n <CardSubHeader style={{ textAlign: \"center\" }}> {propsConfig.texts.header} </CardSubHeader>\n <CardText>\n {`${t(`CS_LOGIN_OTP_TEXT`)} `}\n <b>\n {\" \"}\n {`${t(`+ 91 - `)}`} {mobileNumber}\n </b>\n </CardText>\n <SelectOtp t={t} userType=\"employee\" otp={otp} onOtpChange={setOtp} error={isOtpValid} onResend={onResendOTP} />\n {/* <div>\n <CardLabel style={{ marginBottom: \"8px\" }}>{t(\"CORE_OTP_SENT_MESSAGE\")}</CardLabel>\n <CardLabelDesc style={{ marginBottom: \"0px\" }}> {mobileNumber} </CardLabelDesc>\n <CardLabelDesc style={{ marginBottom: \"8px\" }}> {t(\"CORE_EMPLOYEE_OTP_CHECK_MESSAGE\")}</CardLabelDesc>\n </div>\n <CardLabel style={{ marginBottom: \"8px\" }}>{t(\"CORE_OTP_OTP\")} *</CardLabel>\n <TextInput className=\"field\" name={otpReference} isRequired={true} onChange={updateOtp} type={\"text\"} style={{ marginBottom: \"10px\" }} />\n <div className=\"flex-right\">\n <div className=\"primary-label-btn\" onClick={onResendOTP}>\n {t(\"CORE_OTP_RESEND\")}\n </div>\n </div> */}\n </FormComposer>\n {showToast && <Toast type={\"error\"} label={t(showToast)} onClose={closeToast} />}\n <div className=\"EmployeeLoginFooter\">\n <ImageComponent\n alt=\"Powered by DIGIT\"\n src={window?.globalConfigs?.getConfig?.(\"DIGIT_FOOTER_BW\")}\n style={{ cursor: \"pointer\" }}\n onClick={() => {\n window.open(window?.globalConfigs?.getConfig?.(\"DIGIT_HOME_URL\"), \"_blank\").focus();\n }}\n />{\" \"}\n </div>\n </Background>\n );\n};\n\nChangePasswordComponent.propTypes = {\n loginParams: PropTypes.any,\n};\n\nChangePasswordComponent.defaultProps = {\n loginParams: null,\n};\n\nexport default ChangePasswordComponent;\n","export const config = [\n {\n texts: {\n header: \"CORE_COMMON_RESET_PASSWORD_LABEL\",\n submitButtonLabel: \"CORE_COMMON_CHANGE_PASSWORD\",\n },\n inputs: [\n {\n label: \"CORE_LOGIN_USERNAME\",\n type: \"text\",\n name: \"userName\",\n error: \"ERR_HRMS_INVALID_USERNAME\",\n },\n {\n label: \"CORE_LOGIN_NEW_PASSWORD\",\n type: \"password\",\n name: \"newPassword\",\n error: \"CORE_COMMON_REQUIRED_ERRMSG\",\n },\n {\n label: \"CORE_LOGIN_CONFIRM_NEW_PASSWORD\",\n type: \"password\",\n name: \"confirmPassword\",\n error: \"CORE_COMMON_REQUIRED_ERRMSG\",\n },\n ],\n },\n];\n","import React, { useMemo } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Routes, Route } from \"react-router-dom\";\nimport ChangePasswordComponent from \"./changePassword\";\nimport { config } from \"./config\";\n\nconst EmployeeChangePassword = () => {\n const { t } = useTranslation();\n\n const params = useMemo(\n () =>\n config.map((step) => {\n const texts = {};\n for (const key in step.texts) {\n texts[key] = t(step.texts[key]);\n }\n return { ...step, texts };\n }),\n [config]\n );\n\n return (\n <Routes>\n <Route\n path=\"\"\n element={<ChangePasswordComponent config={params[0]} t={t} />}\n />\n </Routes>\n );\n};\n\nexport default EmployeeChangePassword;\n","export const loginConfig = [\n {\n texts: {\n header: \"CORE_COMMON_FORGOT_PASSWORD_LABEL\",\n description: \"ES_FORGOT_PASSWORD_DESC\",\n submitButtonLabel: \"CORE_COMMON_CONTINUE\",\n },\n inputs: [\n {\n label: \"CORE_COMMON_MOBILE_NUMBER\",\n type: \"mobileNumber\",\n name: \"mobileNumber\",\n error: \"ERR_HRMS_INVALID_MOBILE_NUMBER\",\n },\n {\n label: \"CORE_COMMON_CITY\",\n type: \"dropdown\",\n name: \"city\",\n error: \"ERR_HRMS_INVALID_CITY\",\n },\n ]\n },\n];\n","// import { FormComposer } from \"@egovernments/digit-ui-react-components\";\nimport { BackLink, Dropdown, Loader, Toast, FormComposerV2 } from \"@egovernments/digit-ui-components\";\nimport PropTypes from \"prop-types\";\nimport React, { useEffect, useState } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport Background from \"../../../components/Background\";\nimport Header from \"../../../components/Header\";\nimport ImageComponent from \"../../../components/ImageComponent\";\nimport Carousel from \"../Login/Carousel/Carousel\";\nimport { useLoginConfig } from \"../../../hooks/useLoginConfig\";\n\nconst ForgotPassword = ({ config: propsConfig, t, stateCode }) => {\n const { data: cities, isLoading } = Digit.Hooks.useTenants();\n const [user, setUser] = useState(null);\n const navigate = useNavigate();\n const [showToast, setShowToast] = useState(null);\n const getUserType = () => Digit.UserService.getType();\n \n const { data : mdmsData } = useLoginConfig(stateCode);\n \n if(mdmsData?.config){\n const bannerImages = mdmsData?.config[0]?.bannerImages;\n propsConfig.bannerImages = bannerImages;\n }\n\n useEffect(() => {\n if (!user) {\n Digit.UserService.setType(\"employee\");\n return;\n }\n Digit.UserService.setUser(user);\n const redirectPath = location.state?.from || `/${window?.contextPath}/employee`;\n navigate(redirectPath, {replace:true});\n }, [user]);\n\n const closeToast = () => {\n setShowToast(null);\n };\n\n const onForgotPassword = async (data) => {\n if (!data.city) {\n alert(\"Please Select City!\");\n return;\n }\n const requestData = {\n otp: {\n userName: data.username,\n userType: getUserType().toUpperCase(),\n type: \"passwordreset\",\n tenantId: data.city.code,\n },\n };\n try {\n await Digit.UserService.sendOtp(requestData, data.city.code);\n navigate(`/${window?.contextPath}/employee/user/change-password?USERNAME=${data.username}&tenantId=${data.city.code}`);\n } catch (err) {\n setShowToast(err?.response?.data?.error?.fields?.[0]?.message || \"Invalid login credentials!\");\n setTimeout(closeToast, 5000);\n }\n };\n\n const navigateToLogin = () => {\n navigate(`/${window?.contextPath}/employee/login`);\n };\n\n const [userId, city] = propsConfig.inputs;\n const config = [\n {\n body: [\n {\n label: t(\"USERNAME\"),\n type: \"text\",\n populators: {\n name: \"username\",\n },\n isMandatory: true,\n },\n {\n label: t(city.label),\n type: city.type,\n populators: {\n name: city.name,\n optionsKey: \"name\",\n required: true,\n options: cities,\n },\n isMandatory: true,\n },\n ],\n },\n ];\n\n if (isLoading) {\n return <Loader page={true} variant=\"PageLoader\" />\n }\n\n return (\n propsConfig?.bannerImages ? (\n <React.Fragment>\n <div className=\"login-container\">\n <Carousel bannerImages={propsConfig?.bannerImages} />\n <div className=\"login-form-container\">\n <FormComposerV2\n onSubmit={onForgotPassword}\n noBoxShadow\n inline\n submitInForm\n config={config}\n label={propsConfig.texts.submitButtonLabel}\n secondaryActionLabel={propsConfig.texts.secondaryButtonLabel}\n onSecondayActionClick={navigateToLogin}\n heading={propsConfig.texts.header}\n description={propsConfig.texts.description}\n headingStyle={{ textAlign: \"center\", fontWeight: \"bold\", color: \"#363636\" }}\n descriptionStyles={{ color: \"#787878\", textAlign: \"center\" }}\n cardStyle={{ maxWidth: \"408px\", margin: \"auto\" }}\n className=\"employeeForgotPassword\"\n secondaryActionId={\"employeeForgotPassword\"}\n >\n <Header />\n </FormComposerV2>\n {showToast && <Toast type={\"error\"} label={t(showToast)} onClose={closeToast} />}\n <div className=\"EmployeeLoginFooter\">\n <ImageComponent\n alt=\"Powered by DIGIT\"\n src={window?.globalConfigs?.getConfig?.(\"DIGIT_FOOTER_BW\")}\n style={{ cursor: \"pointer\" }}\n onClick={() => {\n window.open(window?.globalConfigs?.getConfig?.(\"DIGIT_HOME_URL\"), \"_blank\").focus();\n }}\n />{\" \"}\n </div>\n </div>\n </div>\n </React.Fragment>\n ) :\n <Background>\n <div className=\"employeeBackbuttonAlign\">\n <BackLink onClick={() => window.history.back()} />\n </div>\n <FormComposerV2\n onSubmit={onForgotPassword}\n noBoxShadow\n inline\n submitInForm\n config={config}\n label={propsConfig.texts.submitButtonLabel}\n secondaryActionLabel={propsConfig.texts.secondaryButtonLabel}\n onSecondayActionClick={navigateToLogin}\n heading={propsConfig.texts.header}\n description={propsConfig.texts.description}\n headingStyle={{ textAlign: \"center\", fontWeight: \"bold\", color: \"#363636\" }}\n descriptionStyles={{ color: \"#787878\", textAlign: \"center\" }}\n cardStyle={{ maxWidth: \"408px\", margin: \"auto\" }}\n className=\"employeeForgotPassword\"\n secondaryActionId={\"employeeForgotPassword\"}\n >\n <Header />\n </FormComposerV2>\n {showToast && <Toast type={\"error\"} label={t(showToast)} onClose={closeToast} />}\n <div className=\"EmployeeLoginFooter\">\n <ImageComponent\n alt=\"Powered by DIGIT\"\n src={window?.globalConfigs?.getConfig?.(\"DIGIT_FOOTER_BW\")}\n style={{ cursor: \"pointer\" }}\n onClick={() => {\n window.open(window?.globalConfigs?.getConfig?.(\"DIGIT_HOME_URL\"), \"_blank\").focus();\n }}\n />{\" \"}\n </div>\n </Background>\n );\n};\n\nForgotPassword.propTypes = {\n loginParams: PropTypes.any,\n};\n\nForgotPassword.defaultProps = {\n loginParams: null,\n};\n\nexport default ForgotPassword;","import React, { useMemo } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Routes, Route } from \"react-router-dom\";\nimport { loginConfig } from \"./config\";\nimport ForgotPasswordComponent from \"./forgotPassword\";\n\nconst EmployeeForgotPassword = ({ stateCode }) => {\n const { t } = useTranslation();\n\n const params = useMemo(\n () =>\n loginConfig.map((step) => {\n const texts = {};\n for (const key in step.texts) {\n texts[key] = t(step.texts[key]);\n }\n return { ...step, texts };\n }),\n [loginConfig]\n );\n\n return (\n <Routes>\n <Route\n path=\"\"\n element={<ForgotPasswordComponent config={params[0]} t={t} stateCode={stateCode} />}\n />\n </Routes>\n );\n};\n\nexport default EmployeeForgotPassword;\n","import { Button, Card, SubmitBar, Loader } from \"@egovernments/digit-ui-components\";\nimport { CustomButton } from \"@egovernments/digit-ui-react-components\";\nimport React, { useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Navigate, useNavigate } from \"react-router-dom\";\nimport Background from \"../../../components/Background\";\nimport ImageComponent from \"../../../components/ImageComponent\";\n\nconst DEFAULT_LOCALE=Digit?.Utils?.getDefaultLanguage?.();\n\nconst defaultLanguage = { label: \"English\", value: DEFAULT_LOCALE};\n\nconst LanguageSelection = () => {\n const { data: storeData, isLoading } = Digit.Hooks.useStore.getInitData();\n const { t } = useTranslation();\n const navigate = useNavigate();\n const { languages, stateInfo } = storeData || {};\n let defaultLanguages = languages;\n if (!defaultLanguages || defaultLanguages?.length == 0) {\n defaultLanguages = [defaultLanguage];\n }\n const selectedLanguage = Digit.StoreData.getCurrentLanguage();\n const [selected, setselected] = useState(selectedLanguage);\n const handleChangeLanguage = (language) => {\n setselected(language.value);\n Digit.LocalizationService.changeLanguage(language.value, stateInfo.code);\n };\n function getContextPath(contextPath) {\n if (!contextPath || typeof contextPath !== \"string\") return \"\";\n return contextPath.split(\"/\")[0];\n }\n \n const hasMultipleLanguages = languages?.length > 1;\n\n const handleSubmit = (event) => {\n navigate(`/${getContextPath(window.contextPath)}/user/login?ts=${Date.now()}`);\n };\n\n if (isLoading) return <Loader />;\n\n if (!hasMultipleLanguages) {\n return <Navigate to={`/${window?.contextPath}/employee/user/login`} replace />;\n }\n\n return (\n <Background>\n <Card className={\"bannerCard removeBottomMargin languageSelection\"}>\n <div className=\"bannerHeader\">\n <ImageComponent className=\"bannerLogo\" src={stateInfo?.logoUrl} alt=\"Digit Banner Image\" />\n\n <p>{t(`TENANT_TENANTS_${stateInfo?.code?.toUpperCase()}`)}</p>\n </div>\n <div className=\"language-selector\" style={{ justifyContent: \"space-around\", marginBottom: \"24px\", padding: \"0 5%\" }}>\n {defaultLanguages.map((language, index) => (\n <div className=\"language-button-container\" key={index}>\n <CustomButton\n selected={language.value === selected}\n text={t(language.label)}\n onClick={() => handleChangeLanguage(language)}\n ></CustomButton>\n </div>\n ))}\n </div>\n <SubmitBar style={{ width: \"100%\" }} label={t(`CORE_COMMON_CONTINUE`)} onSubmit={handleSubmit} />\n </Card>\n <div className=\"EmployeeLoginFooter\">\n <ImageComponent\n alt=\"Powered by DIGIT\"\n src={window?.globalConfigs?.getConfig?.(\"DIGIT_FOOTER_BW\")}\n style={{ cursor: \"pointer\" }}\n onClick={() => {\n window.open(window?.globalConfigs?.getConfig?.(\"DIGIT_HOME_URL\"), \"_blank\").focus();\n }}\n />{\" \"}\n </div>\n </Background>\n );\n};\n\nexport default LanguageSelection;\n","import React, { useState, useEffect, Fragment } from 'react';\nimport { loginConfig } from '../config';\nimport { useTranslation } from \"react-i18next\";\n\nconst Carousel = ({bannerImages=[]}) => {\n const [currentSlide, setCurrentSlide] = useState(0);\n const { t } = useTranslation();\n\n const carouselItems = bannerImages|| loginConfig[0]?.bannerImages || [];\n\n const nextSlide = () => {\n setCurrentSlide(prev => (prev === carouselItems.length - 1 ? 0 : prev + 1));\n };\n\n const prevSlide = () => {\n setCurrentSlide(prev => (prev === 0 ? carouselItems.length - 1 : prev - 1));\n };\n\n const goToSlide = (index) => {\n setCurrentSlide(index);\n };\n\n // Auto-rotate carousel every 5 seconds\n useEffect(() => {\n const interval = setInterval(() => {\n nextSlide();\n }, 5000);\n return () => clearInterval(interval);\n }, [carouselItems.length]);\n\n return (\n <Fragment>\n\n {/* Carousel Background (70% width) */}\n\n <div className=\"carousel-container\">\n {carouselItems.sort((x,y)=>x?.id-y?.id).map((item, index) => (\n <div\n key={item.id}\n className={`carousel-slide ${index === currentSlide ? 'active' : ''}`}\n style={{ backgroundImage: `url(${item.image})` }}\n >\n <div className=\"carousel-content\">\n <h2>{t(item.title)}</h2>\n <p>{t(item.description)}</p>\n </div>\n </div>\n ))}\n\n {/* Combined Navigation and Indicators (Bottom Center) */}\n <div className=\"carousel-controls\">\n <button className=\"carousel-nav\" onClick={prevSlide}>\n &lt;\n </button>\n\n <div className=\"carousel-indicators\">\n {carouselItems.map((_, index) => (\n <button\n key={index}\n className={`indicator ${index === currentSlide ? 'active' : ''}`}\n onClick={() => goToSlide(index)}\n />\n ))}\n </div>\n\n <button className=\"carousel-nav\" onClick={nextSlide}>\n &gt;\n </button>\n </div>\n </div>\n </Fragment>\n );\n};\n\nexport default Carousel;","export const loginConfig = [\n {\n texts: {\n header: \"CORE_COMMON_LOGIN\",\n submitButtonLabel: \"CORE_COMMON_LOGIN\",\n secondaryButtonLabel: \"CORE_COMMON_FORGOT_PASSWORD\",\n },\n inputs: [\n {\n label: \"CORE_LOGIN_USERNAME\",\n type: \"text\",\n key: \"username\",\n isMandatory: true,\n populators: {\n name: \"username\",\n validation: {\n required: true,\n },\n error: \"ERR_USERNAME_REQUIRED\",\n },\n },\n {\n label: \"CORE_LOGIN_PASSWORD\",\n type: \"password\",\n key: \"password\",\n isMandatory: true,\n populators: {\n name: \"password\",\n validation: {\n required: true,\n },\n error: \"ERR_PASSWORD_REQUIRED\",\n },\n },\n {\n isMandatory: true,\n type: \"dropdown\",\n key: \"city\",\n label: \"CORE_COMMON_CITY\",\n disable: false,\n populators: {\n name: \"city\",\n optionsKey: \"name\",\n error: \"ERR_HRMS_INVALID_CITY\",\n mdmsConfig: {\n masterName: \"tenants\",\n moduleName: \"tenant\",\n localePrefix: \"TENANT_TENANTS\",\n select:\n \"(data)=>{ return Array.isArray(data['tenant'].tenants) && Digit.Utils.getUnique(data['tenant'].tenants).map(ele=>({code:ele.code,name:Digit.Utils.locale.getTransformedLocale('TENANT_TENANTS_'+ele.code)}))}\",\n },\n },\n },\n {\n key: \"check\",\n type: \"component\",\n disable: false,\n component: \"PrivacyComponent\",\n populators: {\n name: \"check\"\n },\n customProps: {\n module: \"HCM\"\n },\n isMandatory: false,\n withoutLabel: true\n },\n ],\n },\n];\n","export const LoginOtpConfig = [\n {\n texts: {\n header: \"CORE_COMMON_LOGIN\",\n submitButtonLabel: \"CORE_COMMON_CONTINUE\",\n },\n inputs: [\n {\n label: \"CORE_SIGNUP_EMAILID\",\n type: \"text\",\n key: \"email\",\n isMandatory: true,\n populators: {\n name: \"email\",\n validation: {\n required: true,\n pattern: /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/,\n },\n error: \"ERR_EMAIL_REQUIRED\",\n },\n },\n {\n isMandatory: true,\n key: \"check\",\n type: \"component\",\n component: \"PrivacyComponent\",\n withoutLabel: true,\n disable: false,\n customProps: {\n module: \"Sandbox\",\n },\n populators: {\n name: \"check\",\n },\n },\n ],\n },\n];\n","import { BackLink, Loader, FormComposerV2, Toast } from \"@egovernments/digit-ui-components\";\nimport PropTypes from \"prop-types\";\nimport React, { useEffect, useMemo, useState } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport Background from \"../../../components/Background\";\nimport Header from \"../../../components/Header\";\nimport Carousel from \"./Carousel/Carousel\";\nimport ImageComponent from \"../../../components/ImageComponent\";\n// import SkipToMainContent from \"../SkipToMainContent/SkipToMainContent\";\nimport withAutoFocusMain from \"../../../hoc/withAutoFocusMain\";\n\nconst setEmployeeDetail = (userObject, token) => {\n if (Digit.Utils.getMultiRootTenant() && process.env.NODE_ENV !== \"development\") {\n return;\n }\n let locale = JSON.parse(sessionStorage.getItem(\"Digit.locale\"))?.value || Digit.Utils.getDefaultLanguage();\n localStorage.setItem(\"Employee.tenant-id\", userObject?.tenantId);\n localStorage.setItem(\"tenant-id\", userObject?.tenantId);\n localStorage.setItem(\"citizen.userRequestObject\", JSON.stringify(userObject));\n localStorage.setItem(\"locale\", locale);\n localStorage.setItem(\"Employee.locale\", locale);\n localStorage.setItem(\"token\", token);\n localStorage.setItem(\"Employee.token\", token);\n localStorage.setItem(\"user-info\", JSON.stringify(userObject));\n localStorage.setItem(\"Employee.user-info\", JSON.stringify(userObject));\n};\n\nconst Login = ({ config: propsConfig, t, isDisabled, loginOTPBased }) => {\n const { data: cities, isLoading } = Digit.Hooks.useTenants();\n const { data: storeData, isLoading: isStoreLoading } = Digit.Hooks.useStore.getInitData();\n const { stateInfo } = storeData || {};\n const [user, setUser] = useState(null);\n const [showToast, setShowToast] = useState(null);\n const [disable, setDisable] = useState(false);\n const navigate = useNavigate(); \n const DynamicLoginComponent = Digit.ComponentRegistryService?.getComponent(\"DynamicLoginComponent\");\n\n\n useEffect(() => {\n if (!user) {\n return;\n }\n Digit.SessionStorage.set(\"citizen.userRequestObject\", user);\n const filteredRoles = user?.info?.roles?.filter((role) => role.tenantId === Digit.SessionStorage.get(\"Employee.tenantId\"));\n if (user?.info?.roles?.length > 0) user.info.roles = filteredRoles;\n Digit.UserService.setUser(user);\n setEmployeeDetail(user?.info, user?.access_token);\n let redirectPath = `/${window?.contextPath}/employee`;\n\n /* logic to redirect back to same screen where we left off */\n if (window?.location?.href?.includes(\"from=\")) {\n redirectPath = decodeURIComponent(window?.location?.href?.split(\"from=\")?.[1]) || `/${window?.contextPath}/employee`;\n }\n\n /* RAIN-6489 Logic to navigate to National DSS home in case user has only one role [NATADMIN]*/\n if (user?.info?.roles && user?.info?.roles?.length > 0 && user?.info?.roles?.every((e) => e.code === \"NATADMIN\")) {\n redirectPath = `/${window?.contextPath}/employee/dss/landing/NURT_DASHBOARD`;\n }\n /* RAIN-6489 Logic to navigate to National DSS home in case user has only one role [NATADMIN]*/\n if (user?.info?.roles && user?.info?.roles?.length > 0 && user?.info?.roles?.every((e) => e.code === \"STADMIN\")) {\n redirectPath = `/${window?.contextPath}/employee/dss/landing/home`;\n }\n\n navigate(redirectPath, { replace: true }); // Replaced history.replace with navigate\n }, [user]);\n\n const onLogin = async (data) => {\n // if (!data.city) {\n // alert(\"Please Select City!\");\n // return;\n // }\n if (data?.username) {\n data.username = data.username.trim();\n }\n if (data?.password) {\n data.password = data.password.trim();\n }\n\n setDisable(true);\n\n const requestData = {\n ...data,\n ...defaultValues,\n userType: \"EMPLOYEE\",\n };\n requestData.tenantId = requestData?.city?.code || Digit?.ULBService?.getStateId();\n delete requestData.city;\n try {\n const { UserRequest: info, ...tokens } = await Digit.UserService.authenticate(requestData);\n Digit.SessionStorage.set(\"Employee.tenantId\", info?.tenantId);\n setUser({ info, ...tokens });\n } catch (err) {\n setShowToast(\n err?.response?.data?.error_description ||\n (err?.message == \"ES_ERROR_USER_NOT_PERMITTED\" && t(\"ES_ERROR_USER_NOT_PERMITTED\")) ||\n t(\"INVALID_LOGIN_CREDENTIALS\")\n );\n setTimeout(closeToast, 5000);\n }\n setDisable(false);\n };\n\n const reqCreate = {\n url: `/user-otp/v1/_send`,\n params: { tenantId: Digit?.ULBService?.getStateId() },\n body: {},\n config: {\n enable: false,\n },\n };\n const mutation = Digit.Hooks.useCustomAPIMutationHook(reqCreate);\n\n const onOtpLogin = async (data) => {\n const inputEmail = data.email;\n await mutation.mutate(\n {\n body: {\n otp: {\n userName: data.email,\n type: \"login\",\n tenantId: Digit?.ULBService?.getStateId(),\n userType: \"EMPLOYEE\",\n },\n },\n config: {\n enable: true,\n },\n },\n {\n onError: (error, variables) => {\n setShowToast(\n error?.response?.data?.Errors?.[0].code ? `SANDBOX_RESEND_OTP${error?.response?.data?.Errors?.[0]?.code}` : `SANDBOX_RESEND_OTP_ERROR`\n );\n setTimeout(closeToast, 5000);\n },\n onSuccess: async (data) => {\n navigate(`/${window?.contextPath}/employee/user/login/otp`, {\n state: { email: inputEmail, tenant: Digit?.ULBService?.getStateId() },\n });\n },\n }\n );\n };\n\n const closeToast = () => {\n setShowToast(null);\n };\n\n const onForgotPassword = () => {\n navigate(`/${window?.contextPath}/employee/user/forgot-password`);\n };\n const defaultTenant = Digit.ULBService.getStateId();\n\n const defaultValue = {\n code: defaultTenant,\n name: Digit.Utils.locale.getTransformedLocale(`TENANT_TENANTS_${defaultTenant}`),\n };\n\n let config = [{ body: propsConfig?.inputs }];\n\n const { mode } = Digit.Hooks.useQueryParams();\n if (mode === \"admin\" && config?.[0]?.body?.[2]?.disable == false && config?.[0]?.body?.[2]?.populators?.defaultValue == undefined) {\n config[0].body[2].disable = true;\n config[0].body[2].isMandatory = false;\n config[0].body[2].populators.defaultValue = defaultValue;\n }\n\n const defaultValues = useMemo(()=>Object.fromEntries(\n config[0].body\n .filter(field => field?.populators?.defaultValue && field?.populators?.name)\n .map(field => [field.populators.name, field.populators.defaultValue])\n ),[])\n\n const onFormValueChange = (setValue, formData, formState) => {\n\n // Extract keys from the config \n const keys = config[0].body.filter(field => field?.isMandatory).map((field) => field?.key);\n\n const hasEmptyFields = keys.some((key) => {\n const value = formData[key];\n return value == null || value === \"\" || value === false;\n });\n\n setDisable(hasEmptyFields);\n };\n\n const renderLoginForm = (extraClasses = \"\", cardClassName = \"\", wrapperClass = \"\") => (\n <FormComposerV2\n onSubmit={loginOTPBased ? onOtpLogin : onLogin}\n isDisabled={isDisabled || disable}\n noBoxShadow\n inline\n submitInForm\n config={config}\n label={propsConfig?.texts?.submitButtonLabel}\n secondaryActionLabel={\n propsConfig?.texts?.secondaryButtonLabel +\n (extraClasses.includes(\"login-form-container\") ? \"?\" : \"\")\n }\n onSecondayActionClick={onForgotPassword}\n onFormValueChange={onFormValueChange}\n heading={propsConfig?.texts?.header}\n className={`${wrapperClass}`}\n cardSubHeaderClassName=\"loginCardSubHeaderClassName\"\n cardClassName={cardClassName}\n buttonClassName=\"buttonClassName\"\n defaultValues={defaultValues}\n >\n {stateInfo?.code ? <Header /> : <Header showTenant={false} />}\n </FormComposerV2>\n );\n \n const renderFooter = (footerClassName) => (\n <div className={footerClassName} style={{ backgroundColor: \"unset\" }}>\n <ImageComponent\n alt=\"Powered by DIGIT\"\n src={window?.globalConfigs?.getConfig?.(\"DIGIT_FOOTER_BW\")}\n style={{ cursor: \"pointer\" }}\n onClick={() => {\n window.open(window?.globalConfigs?.getConfig?.(\"DIGIT_HOME_URL\"), \"_blank\").focus();\n }}\n />\n </div>\n );\n \n\n if(isLoading || isStoreLoading ){\n return <Loader page={true} variant=\"PageLoader\" />\n }\n return propsConfig?.bannerImages ? (\n <div className=\"login-container\">\n {/* <SkipToMainContent class_name={\".login-form-container\"}/> */}\n <Carousel bannerImages={propsConfig?.bannerImages} />\n <div className=\"login-form-container\">\n {renderLoginForm(\"login-form-container\", \"\", loginOTPBased ? \"sandbox-onboarding-wrapper\" : \"\")}\n {DynamicLoginComponent && <DynamicLoginComponent />} \n {showToast && <Toast type=\"error\" label={t(showToast)} onClose={closeToast} />}\n {renderFooter(\"EmployeeLoginFooter\")}\n </div>\n </div>\n ) : (\n <Background>\n <div className=\"employeeBackbuttonAlign\">\n <BackLink onClick={() => window.history.back()} />\n </div>\n {renderLoginForm(\n \"loginFormStyleEmployee\",\n \"loginCardClassName\",\n loginOTPBased ? \"sandbox-onboarding-wrapper\" : \"\"\n )}\n {DynamicLoginComponent && <DynamicLoginComponent />}\n {showToast && <Toast type=\"error\" label={t(showToast)} onClose={closeToast} />}\n {renderFooter(\"employee-login-home-footer\")}\n </Background>\n );\n \n};\n\nLogin.propTypes = {\n loginParams: PropTypes.any,\n};\n\nLogin.defaultProps = {\n loginParams: null,\n};\n\nexport default withAutoFocusMain(Login, \".login-form-container\");\n","import React, { useEffect, useMemo, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Routes, Route } from \"react-router-dom\"; // Updated imports for v6\nimport { loginConfig as defaultLoginConfig } from \"./config\";\nimport { LoginOtpConfig as defaultLoginOtpConfig } from \"./ConfigOtp\";\nimport LoginComponent from \"./login\";\nimport { useLoginConfig } from \"../../../hooks/useLoginConfig\";\nimport { Loader } from \"@egovernments/digit-ui-components\";\n\nconst EmployeeLogin = ({ stateCode }) => {\n const { t } = useTranslation();\n const [loginConfig, setloginConfig] = useState(defaultLoginConfig);\n const [loginOtpConfig, setloginOtpConfig] = useState(defaultLoginOtpConfig);\n const moduleCode = [\"privacy-policy\"];\n const language = Digit.StoreData.getCurrentLanguage();\n const modulePrefix = \"digit\";\n const loginType = window?.globalConfigs?.getConfig(\"OTP_BASED_LOGIN\") || false;\n const { data: mdmsData, isLoading } = useLoginConfig(stateCode);\n const { data: store } = Digit.Services.useStore({\n stateCode,\n moduleCode,\n language,\n modulePrefix,\n });\n\n useEffect(() => {\n if (!isLoading && mdmsData?.config) { \n setloginConfig(mdmsData?.config);\n } else {\n setloginConfig(defaultLoginConfig);\n }\n }, [mdmsData, isLoading]); \n\n const loginParams = useMemo(\n () =>\n loginConfig.map((step) => {\n const texts = {};\n for (const key in step.texts) {\n texts[key] = t(step.texts[key]);\n }\n return { ...step, texts };\n },\n [loginConfig]\n )\n );\n\n const loginOtpParams = useMemo(\n () =>\n loginOtpConfig.map((step) => {\n const texts = {};\n for (const key in step.texts) {\n texts[key] = t(step.texts[key]);\n }\n return { ...step, texts };\n },\n [loginOtpConfig]\n )\n );\n\n if (isLoading) {\n return <Loader page={false} variant={\"PageLoader\"} />;\n }\n\n return (\n <Routes> {/* Replaced Switch with Routes */}\n <Route\n path=\"/\" \n element={ \n loginType ? (\n <LoginComponent config={loginOtpParams[0]} t={t} loginOTPBased={loginType} />\n ) : (\n <LoginComponent config={loginParams[0]} t={t} />\n )\n }\n />\n </Routes>\n );\n};\n\nexport default EmployeeLogin;","import React, { useState, useEffect } from \"react\";\nimport { BackLink, CardLabel, Loader, Toast } from \"@egovernments/digit-ui-components\";\nimport { FormComposerV2 } from \"@egovernments/digit-ui-react-components\";\nimport { useTranslation } from \"react-i18next\";\nimport { useNavigate, useLocation } from \"react-router-dom\"; // Updated imports for v6\nimport Background from \"../../../components/Background\";\nimport Header from \"../../../components/Header\";\nimport ImageComponent from \"../../../components/ImageComponent\";\n\n/* set employee details to enable backward compatible */\nconst setEmployeeDetail = (userObject, token) => {\n if (Digit.Utils.getMultiRootTenant()) {\n return;\n }\n let locale = JSON.parse(sessionStorage.getItem(\"Digit.locale\"))?.value || Digit.Utils.getDefaultLanguage();\n localStorage.setItem(\"Employee.tenant-id\", userObject?.tenantId);\n localStorage.setItem(\"tenant-id\", userObject?.tenantId);\n localStorage.setItem(\"citizen.userRequestObject\", JSON.stringify(userObject));\n localStorage.setItem(\"locale\", locale);\n localStorage.setItem(\"Employee.locale\", locale);\n localStorage.setItem(\"token\", token);\n localStorage.setItem(\"Employee.token\", token);\n localStorage.setItem(\"user-info\", JSON.stringify(userObject));\n localStorage.setItem(\"Employee.user-info\", JSON.stringify(userObject));\n};\n\nconst Otp = ({ isLogin = false }) => {\n const { t } = useTranslation();\n const navigate = useNavigate(); // Replaced useHistory with useNavigate\n const location = useLocation();\n const [showToast, setShowToast] = useState(null);\n const [isOtpValid, setIsOtpValid] = useState(false);\n const [user, setUser] = useState(null);\n const [params, setParams] = useState(location?.state?.data || {});\n const [ifSuperUserExists, setIfSuperUserExist] = useState(false);\n // In v6, location.state is directly available, no need for destructuring within another object\n const { email, tenant } = location.state || {}; \n\n const { data: MdmsRes } = Digit.Hooks.useCustomMDMS(\n tenant,\n \"SandBoxLanding\",\n [\n {\n name: \"LandingPageRoles\",\n },\n ],\n {\n enabled: true,\n staleTime: 0,\n cacheTime: 0,\n select: (data) => {\n return data?.[\"SandBoxLanding\"]?.[\"LandingPageRoles\"];\n },\n }\n );\n\n const RoleLandingUrl = MdmsRes?.[0].url;\n\n const config = [\n {\n body: [\n {\n type: \"component\",\n component: \"OtpComponent\",\n key: \"OtpComponent\",\n withoutLabel: true,\n isMandatory: false,\n customProps: {\n email: email,\n tenant: tenant,\n },\n populators: {\n required: true,\n },\n },\n ],\n },\n ];\n\n const OtpConfig = [\n {\n texts: {\n // header: t(\"CORE_COMMON_OTP_LABEL\"),\n header: t(\"SANDBOX_OTP_VERIFICATION\"),\n submitButtonLabel: \"CORE_COMMON_SUBMIT\",\n },\n },\n ];\n\n const closeToast = () => {\n setShowToast(null);\n };\n\n useEffect(() => {\n if (!user) {\n return;\n }\n Digit.SessionStorage.set(\"citizen.userRequestObject\", user);\n const filteredRoles = user?.info?.roles?.filter((role) => role.tenantId === Digit.SessionStorage.get(\"Employee.tenantId\"));\n if (user?.info?.roles?.length > 0) user.info.roles = filteredRoles;\n Digit.UserService.setUser(user);\n setEmployeeDetail(user?.info, user?.access_token);\n let redirectPath = `/${window?.globalPath}/user/setup`;\n\n const getRedirectPathOtpLogin = (locationPathname, user, MdmsRes, RoleLandingUrl) => {\n const userRole = user?.info?.roles?.[0]?.code;\n const isSuperUser = userRole === \"SUPERUSER\";\n const contextPath = window?.contextPath;\n\n switch (true) {\n case locationPathname === \"/sandbox-ui/user/otp\" && isSuperUser:\n return `/${contextPath}/employee/sandbox/landing`;\n\n case isSuperUser && MdmsRes?.[0]?.rolesForLandingPage?.includes(\"SUPERUSER\"):\n return `/${contextPath}${RoleLandingUrl}`;\n\n default:\n return `/${contextPath}/employee`;\n }\n };\n\n // Usage\n const redirectPathOtpLogin = getRedirectPathOtpLogin(location.pathname, user, MdmsRes, RoleLandingUrl);\n\n if (isLogin) {\n navigate(redirectPathOtpLogin); // Replaced history.push with navigate\n return;\n } else {\n navigate(\n {\n pathname: redirectPath,\n },\n { state: { tenant: tenant } } // Pass state as a separate options object\n );\n return;\n }\n }, [user]);\n\n const onSubmit = async (formData) => {\n const requestData = {\n username: email,\n password: formData?.OtpComponent?.otp,\n tenantId: tenant,\n userType: \"EMPLOYEE\",\n };\n try {\n const { UserRequest: info, ...tokens } = await Digit.UserService.authenticate(requestData);\n Digit.SessionStorage.set(\"Employee.tenantId\", info?.tenantId);\n setUser({ info, ...tokens });\n } catch (err) {\n setShowToast(\n err?.response?.data?.error_description ||\n (err?.message == \"ES_ERROR_USER_NOT_PERMITTED\" && t(\"ES_ERROR_USER_NOT_PERMITTED\")) ||\n t(\"INVALID_LOGIN_CREDENTIALS\")\n );\n setTimeout(closeToast, 5000);\n }\n };\n\n return (\n <Background>\n <div className=\"employeeBackbuttonAlign\">\n <BackLink onClick={() => navigate(-1)} /> {/* navigate(-1) for going back */}\n </div>\n <FormComposerV2\n onSubmit={onSubmit}\n noBoxShadow\n inline\n submitInForm\n onFormValueChange={(setValue, formValue) => {\n const otpValue = formValue[\"OtpComponent\"];\n if (otpValue?.otp?.length === 6) {\n setIsOtpValid(true);\n } else {\n setIsOtpValid(false);\n }\n }}\n isDisabled={!isOtpValid}\n config={config}\n label={OtpConfig[0].texts.submitButtonLabel}\n heading={OtpConfig[0].texts.header}\n headingStyle={{ textAlign: \"center\" }}\n cardStyle={{ maxWidth: \"408px\", margin: \"auto\" }}\n className=\"sandbox-onboarding-wrapper\"\n >\n <Header showTenant={false} />\n </FormComposerV2>\n {showToast && <Toast type={\"error\"} label={t(showToast)} onClose={closeToast} />}\n <div className=\"EmployeeLoginFooter\">\n <ImageComponent\n alt=\"Powered by DIGIT\"\n src={window?.globalConfigs?.getConfig?.(\"DIGIT_FOOTER_BW\")}\n style={{ cursor: \"pointer\" }}\n onClick={() => {\n window.open(window?.globalConfigs?.getConfig?.(\"DIGIT_HOME_URL\"), \"_blank\").focus();\n }}\n />{\" \"}\n </div>\n </Background>\n );\n};\n\nexport default Otp;","export const SignUpConfig = [\n {\n texts: {\n header: \"CORE_COMMON_SIGN_UP\",\n submitButtonLabel: \"CORE_COMMON_SIGN_UP_BUTTON\",\n },\n inputs: [\n {\n label: \"CORE_SIGNUP_EMAILID\",\n type: \"text\",\n key: \"email\",\n isMandatory: true,\n populators: {\n name: \"email\",\n validation: {\n required: true,\n pattern: /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/,\n maxLength: 64,\n },\n error: \"ERR_EMAIL_REQUIRED\",\n },\n },\n {\n label: \"CORE_SIGNUP_ACCOUNT_NAME\",\n type: \"text\",\n key: \"accountName\",\n isMandatory: true,\n populators: {\n name: \"accountName\",\n validation: {\n required: true,\n pattern: /^[A-Za-z]+( [A-Za-z]+)*$/,\n maxLength: 50,\n },\n error: \"ERR_ACCOUNT_NAME_REQUIRED\",\n },\n infoMessage:\"SANDBOX_SIGNUP_ACCOUNT_NAME_TOOLTIP\"\n },\n {\n isMandatory: false,\n key: \"check\",\n type: \"component\",\n component: \"PrivacyComponent\",\n withoutLabel: true,\n disable: false,\n customProps: {\n module: \"SandboxSignUp\",\n },\n populators: {\n name: \"check\",\n },\n },\n ],\n bannerImages: [{\n id: 1,\n image: 'https://images.unsplash.com/photo-1746277121508-f44615ff09bb',\n title: 'A digital partner for frontline workers',\n description: \"Lorem ipsum dolor sit amet consectetur adipisicing elit. Distinctio nobis temporibus provident expedita consequuntur, repudiandae pariatur! Deleniti molestias vero, cumque vel error labore ipsam totam?\"\n },\n {\n id: 2,\n image: 'https://images.unsplash.com/photo-1581094271901-8022df4466f9',\n title: 'Feature 2 Title',\n description: \"Lorem, ipsum dolor sit amet consectetur adipisicing elit. Exercitationem esse doloribus molestiae fugiat eos adipisci sequi cumque sit, laboriosam dolores blanditiis nobis assumenda quasi nemo consectetur. Officia nesciunt quibusdam molestiae.\"\n },\n {\n id: 3,\n image: 'https://images.unsplash.com/photo-1624555130581-1d9cca783bc0',\n title: 'Feature 3 Title',\n description: \"Lorem ipsum dolor sit amet consectetur adipisicing elit. Cupiditate aut autem aperiam et modi saepe obcaecati doloremque voluptatem iusto quidem!\"\n },\n {\n id: 4,\n image: 'https://images.unsplash.com/photo-1547481887-a26e2cacb5b2',\n title: 'Feature 4 Title',\n description: \"Lorem, ipsum dolor sit amet consectetur adipisicing elit. Exercitationem esse doloribus molestiae fugiat eos adipisci sequi cumque sit, laboriosam dolores blanditiis nobis assumenda quasi nemo consectetur. Officia nesciunt quibusdam molestiae.\"\n },\n {\n id: 5,\n image: 'https://images.unsplash.com/photo-1536782376847-5c9d14d97cc0',\n title: 'Feature 5 Title',\n description: \"Lorem, ipsum dolor sit amet consectetur adipisicing elit. Exercitationem esse doloribus molestiae fugiat eos adipisci sequi cumque sit, laboriosam dolores blanditiis nobis assumenda quasi nemo consectetur. Officia nesciunt quibusdam molestiae.\"\n },\n {\n id: 6,\n image: 'https://images.unsplash.com/photo-1490730141103-6cac27aaab94',\n title: 'Feature 6 Title',\n description: \"Lorem, ipsum dolor sit amet consectetur adipisicing elit. Exercitationem esse doloribus molestiae fugiat eos adipisci sequi cumque sit, laboriosam dolores blanditiis nobis assumenda quasi nemo consectetur. Officia nesciunt quibusdam molestiae.\"\n },\n ],\n },\n];\n","import { BackLink, Loader, FormComposerV2, Toast, useCustomAPIMutationHook } from \"@egovernments/digit-ui-components\";\nimport PropTypes from \"prop-types\";\nimport React, { useEffect, useState } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport Background from \"../../../components/Background\";\nimport Header from \"../../../components/Header\";\nimport ImageComponent from \"../../../components/ImageComponent\";\n\nconst Login = ({ config: propsConfig, t, isDisabled }) => {\n const { data: cities, isLoading } = Digit.Hooks.useTenants();\n const { data: storeData, isLoading: isStoreLoading } = Digit.Hooks.useStore.getInitData();\n const { stateInfo } = storeData || {};\n const [showToast, setShowToast] = useState(null);\n const [disable, setDisable] = useState(false);\n\n const navigate = useNavigate();\n\n const reqCreate = {\n url: `/tenant-management/tenant/_create`,\n params: {},\n body: {},\n config: {\n enable: false,\n },\n };\n const mutation = Digit.Hooks.useCustomAPIMutationHook(reqCreate);\n\n const onLogin = async (data) => {\n await mutation.mutate(\n {\n body: {\n tenant: {\n name: data.accountName,\n email: data.email,\n },\n },\n config: {\n enable: true,\n },\n },\n {\n onError: (error, variables) => {\n setShowToast({\n key: \"error\",\n label: error?.response?.data?.Errors?.[0]?.code ? `SANDBOX_SIGNUP_${error?.response?.data?.Errors?.[0]?.code}` : `SANDBOX_SIGNUP_ERROR`,\n });\n },\n onSuccess: async (data) => {\n navigate({\n pathname: `/${window?.globalPath}/user/otp`,\n state: { email: data?.Tenants[0]?.email, tenant: data?.Tenants[0]?.code },\n });\n },\n }\n );\n };\n\n const closeToast = () => {\n setShowToast(null);\n };\n\n let config = [{ body: propsConfig?.inputs }];\n\n const { mode } = Digit.Hooks.useQueryParams();\n if (mode === \"admin\" && config?.[0]?.body?.[2]?.disable == false && config?.[0]?.body?.[2]?.populators?.defaultValue == undefined) {\n config[0].body[2].disable = true;\n config[0].body[2].isMandatory = false;\n config[0].body[2].populators.defaultValue = defaultValue;\n }\n\n const onFormValueChange = (setValue, formData, formState) => {\n // Extract keys from the config\n const keys = config[0].body.map((field) => field.key);\n\n const hasEmptyFields = keys.some((key) => {\n const value = formData[key];\n return value == null || value === \"\" || (key === \"check\" && value === false) || (key === \"captcha\" && value === false);\n });\n\n // Set disable based on the check\n setDisable(hasEmptyFields);\n };\n\n return isLoading || isStoreLoading ? (\n <Loader />\n ) : (\n <Background>\n <div className=\"employeeBackbuttonAlign\">\n <BackLink onClick={() => window.history.back()} />\n </div>\n <FormComposerV2\n onSubmit={onLogin}\n isDisabled={isDisabled || disable}\n noBoxShadow\n inline\n submitInForm\n config={config}\n label={propsConfig?.texts?.submitButtonLabel}\n secondaryActionLabel={propsConfig?.texts?.secondaryButtonLabel}\n onFormValueChange={onFormValueChange}\n heading={propsConfig?.texts?.header}\n className=\"sandbox-signup-form\"\n cardSubHeaderClassName=\"signupCardSubHeaderClassName\"\n cardClassName=\"signupCardClassName sandbox-onboarding-wrapper\"\n buttonClassName=\"buttonClassName\"\n >\n <Header showTenant={false} />\n </FormComposerV2>\n {showToast && <Toast type={\"error\"} label={t(showToast?.label)} onClose={closeToast} />}\n <div className=\"employee-login-home-footer\" style={{ backgroundColor: \"unset\" }}>\n <img\n alt=\"Powered by DIGIT\"\n src={window?.globalConfigs?.getConfig?.(\"DIGIT_FOOTER_BW\")}\n style={{ cursor: \"pointer\" }}\n onClick={() => {\n window.open(window?.globalConfigs?.getConfig?.(\"DIGIT_HOME_URL\"), \"_blank\").focus();\n }}\n />\n </div>\n </Background>\n );\n};\n\nLogin.propTypes = {\n loginParams: PropTypes.any,\n};\n\nLogin.defaultProps = {\n loginParams: null,\n};\n\nexport default Login;\n","import React, { useEffect, useMemo, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Routes, Route, useLocation } from \"react-router-dom\";\nimport { SignUpConfig as defaultSignUpConfig } from \"./config\";\nimport Login from \"./signUp\";\n\nconst SignUp = ({ stateCode }) => {\n const { t } = useTranslation();\n const [SignUpConfig, setSignUpConfig] = useState(defaultSignUpConfig);\n\n const moduleCode = [\"privacy-policy\"];\n const language = Digit.StoreData.getCurrentLanguage();\n const modulePrefix = \"digit\";\n\n const { data: store } = Digit.Services.useStore({\n stateCode,\n moduleCode,\n language,\n modulePrefix\n });\n\n const { data: mdmsData, isLoading } = Digit.Hooks.useCommonMDMS(\n stateCode,\n \"commonUiConfig\",\n [\"SignUpConfig\"],\n {\n select: (data) => ({\n config: data?.commonUiConfig?.SignUpConfig\n }),\n retry: false\n }\n );\n\n useEffect(() => {\n if (!isLoading && mdmsData?.config) {\n setSignUpConfig(mdmsData.config);\n } else {\n setSignUpConfig(defaultSignUpConfig);\n }\n }, [mdmsData, isLoading]);\n\n const SignUpParams = useMemo(\n () =>\n SignUpConfig.map((step) => {\n const texts = {};\n for (const key in step.texts) {\n texts[key] = t(step.texts[key]);\n }\n return { ...step, texts };\n }),\n [SignUpConfig]\n );\n\n return (\n <Routes>\n <Route\n path=\"\"\n element={<Login config={SignUpParams[0]} t={t} />}\n />\n </Routes>\n );\n};\n\nexport default SignUp;\n","import React, { useRef, useState, useEffect } from \"react\";\nimport { BackLink, Button, Card, CardHeader, CardLabel, CardText, FieldV1, SVG, TextInput } from \"@egovernments/digit-ui-components\";\nimport { useTranslation } from \"react-i18next\";\nimport { useLocation } from \"react-router-dom\";\nimport Background from \"../../../components/Background\";\nimport Header from \"../../../components/Header\";\nimport ImageComponent from \"../../../components/ImageComponent\";\n\nconst ViewUrl = () => {\n const { t } = useTranslation();\n const location = useLocation();\n const { tenant } = location.state || {};\n const ref = useRef(null);\n const getUserRoles = Digit.SessionStorage.get(\"User\")?.info?.roles;\n const [buttonDisabled, setButtonDisabled] = useState(true);\n const { data: MdmsRes } = Digit.Hooks.useCustomMDMS(\n tenant,\n \"SandBoxLanding\",\n [\n {\n name: \"LandingPageRoles\",\n },\n ],\n {\n enabled: true,\n staleTime:0,\n gcTime:0,\n select: (data) => {\n return data?.[\"SandBoxLanding\"]?.[\"LandingPageRoles\"];\n },\n }\n );\n\n useEffect(() => {\n if (MdmsRes?.[0].url) {\n setButtonDisabled(false);\n }\n }, [MdmsRes]);\n\n const RoleLandingUrl = MdmsRes?.[0].url;\n\n const roleForLandingPage = (getUserRoles, MdmsRes) => {\n const userRole = getUserRoles?.[0]?.code;\n return userRole === \"SUPERUSER\" && MdmsRes.some((page) => page.rolesForLandingPage.includes(\"SUPERUSER\"));\n };\n\n const onButtonClick = () => {\n if (roleForLandingPage(getUserRoles, MdmsRes)) {\n window.location.href = `/${window?.globalPath}/${tenant}${RoleLandingUrl}`;\n } else {\n window.location.href = `/${window?.globalPath}/${tenant}/employee`;\n }\n };\n\n const handleCopyUrl = () => {\n navigator.clipboard.writeText(ref.current.value);\n };\n\n return (\n <Background>\n <div className=\"employeeBackbuttonAlign\">\n <BackLink onClick={() => window.history.back()} />\n </div>\n <Card className=\"card-sandbox\">\n <Header showTenant={false} />\n <div className=\"sandbox-success-signup\">\n <SVG.TickMark fill={\"#fff\"} height={30} width={70} />\n </div>\n <CardHeader className=\"cardHeader-sandbox\" styles={{ color: \"#00703c\" }}>\n {t(\"SANDBOX_HEADER\")}\n </CardHeader>\n <CardText className=\"cardText-sandbox\">{t(\"SAMDBOX_URL_SUB\")}</CardText>\n <CardLabel> {t(\"SANDBOX_URL\")} </CardLabel>\n <div className=\"sandbox-url-wrapper\">\n <TextInput\n inputRef={ref}\n className={\"urlInputText\"}\n onChange={() => {}}\n nonEditable={true}\n value={`${window.location.host}/${window?.globalPath}/${tenant}/employee`}\n />\n <Button className=\"copyButton\" variation={\"secondary\"} onClick={() => handleCopyUrl()} label={t(\"COPY_URL\")}></Button>\n </div>\n <div className=\"sandbox-url-footer\">{t(\"SANDBOX_URL_FOOT\")}</div>\n <Button isDisabled={buttonDisabled} onClick={onButtonClick} label={t(\"SIGN_IN\")}></Button>\n </Card>\n <div className=\"EmployeeLoginFooter\">\n <ImageComponent\n alt=\"Powered by DIGIT\"\n src={window?.globalConfigs?.getConfig?.(\"DIGIT_FOOTER_BW\")}\n style={{ cursor: \"pointer\" }}\n onClick={() => {\n window.open(window?.globalConfigs?.getConfig?.(\"DIGIT_HOME_URL\"), \"_blank\").focus();\n }}\n />\n </div>\n </Background>\n );\n};\n\nexport default ViewUrl;\n","import React from \"react\";\nimport { Routes, Route, Navigate, useLocation } from \"react-router-dom\";\nimport { lazyWithFallback } from \"@egovernments/digit-ui-components\";\nimport DynamicModuleLoader from \"./DynamicModuleLoader\";\n\n// Create lazy components with fallbacks using the utility\nconst ChangePassword = lazyWithFallback(\n () => import(/* webpackChunkName: \"app-change-password\" */ \"../pages/employee/ChangePassword/index\"),\n () => require(\"../pages/employee/ChangePassword/index\").default,\n { loaderText: \"CORE_LOADING_CHANGE_PASSWORD\" }\n);\n\nconst ForgotPassword = lazyWithFallback(\n () => import(/* webpackChunkName: \"app-forgot-password\" */ \"../pages/employee/ForgotPassword/index\"),\n () => require(\"../pages/employee/ForgotPassword/index\").default,\n { loaderText: \"CORE_LOADING_FORGOT_PASSWORD\" }\n);\n\nconst AppHome = lazyWithFallback(\n () => import(/* webpackChunkName: \"app-home\" */ \"./Home\").then(module => ({ default: module.AppHome })),\n () => require(\"./Home\").AppHome,\n { loaderText: \"CORE_LOADING_HOME\" }\n);\n\nconst getTenants = (codes, tenants) => {\n return tenants.filter((tenant) => codes?.map?.((item) => item.code).includes(tenant.code));\n};\n\nexport const AppModules = ({ stateCode, userType, modules, appTenants, additionalComponent }) => {\n const location = useLocation();\n const user = Digit.UserService.getUser();\n\n if (!user || !user?.access_token || !user?.info) {\n return <Navigate to={{ pathname: `/${window?.contextPath}/${userType}/user/login`, state: { from: location.pathname + location.search } }} replace />;\n }\n\n // Create app routes with dynamic module loading and loading states\n const appRoutes = modules?.map(({ code, tenants }, index) => {\n return (\n <Route\n key={index}\n path={`${code.toLowerCase()}/*`}\n element={\n <DynamicModuleLoader\n moduleCode={code}\n stateCode={stateCode}\n userType={userType}\n tenants={getTenants(tenants, appTenants)}\n maxRetries={3}\n retryDelay={1000}\n initialDelay={800}\n />\n }\n />\n );\n });\n\n return (\n <div className=\"ground-container digit-home-ground\">\n <Routes>\n {appRoutes}\n <Route\n path=\"login\"\n element={\n <Navigate\n to={{ pathname: `/${window?.contextPath}/${userType}/user/login`, state: { from: location.pathname + location.search } }}\n replace\n />\n }\n />\n <Route path=\"forgot-password\" element={<ForgotPassword />} />\n <Route path=\"change-password\" element={<ChangePassword />} />\n <Route\n path=\"*\"\n element={\n <AppHome\n userType={userType}\n modules={modules}\n additionalComponent={additionalComponent}\n />\n }\n />\n </Routes>\n </div>\n );\n};","import React, { useEffect, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Routes, Route, useLocation, useNavigate, Navigate } from \"react-router-dom\";\nimport { AppModules } from \"../../components/AppModules\";\nimport ErrorBoundary from \"../../components/ErrorBoundaries\";\nimport TopBarSideBar from \"../../components/TopBarSideBar\";\nimport { PrivateRoute } from \"@egovernments/digit-ui-components\";\nimport ImageComponent from \"../../components/ImageComponent\";\nimport withAutoFocusMain from \"../../hoc/withAutoFocusMain\";\nimport { lazyWithFallback } from \"@egovernments/digit-ui-components\";\n\n// Create lazy components with fallbacks using the utility\nconst ChangePassword = lazyWithFallback(\n () => import(/* webpackChunkName: \"employee-change-password\" */ \"./ChangePassword\"),\n () => require(\"./ChangePassword\").default,\n { loaderText: \"CORE_LOADING_CHANGE_PASSWORD\" }\n);\n\nconst ForgotPassword = lazyWithFallback(\n () => import(/* webpackChunkName: \"employee-forgot-password\" */ \"./ForgotPassword\"),\n () => require(\"./ForgotPassword\").default,\n { loaderText: \"CORE_LOADING_FORGOT_PASSWORD\" }\n);\n\nconst LanguageSelection = lazyWithFallback(\n () => import(/* webpackChunkName: \"employee-language-selection\" */ \"./LanguageSelection\"),\n () => require(\"./LanguageSelection\").default,\n { loaderText: \"CORE_LOADING_LANGUAGE_SELECTION\" }\n);\n\nconst EmployeeLogin = lazyWithFallback(\n () => import(/* webpackChunkName: \"employee-login\" */ \"./Login\"),\n () => require(\"./Login\").default,\n { loaderText: \"CORE_LOADING_LOGIN\" }\n);\n\nconst Otp = lazyWithFallback(\n () => import(/* webpackChunkName: \"employee-otp\" */ \"./Otp\"),\n () => require(\"./Otp\").default,\n { loaderText: \"CORE_LOADING_OTP\" }\n);\n\nconst UserProfile = lazyWithFallback(\n () => import(/* webpackChunkName: \"user-profile\" */ \"../citizen/Home/UserProfile\"),\n () => require(\"../citizen/Home/UserProfile\").default,\n { loaderText: \"CORE_LOADING_USER_PROFILE\" }\n);\n\nconst ErrorComponent = lazyWithFallback(\n () => import(/* webpackChunkName: \"error-component\" */ \"../../components/ErrorComponent\"),\n () => require(\"../../components/ErrorComponent\").default,\n { loaderText: \"CORE_LOADING_ERROR_COMPONENT\" }\n);\n\nconst userScreensExempted = [\"user/landing\", \"user/profile\", \"user/error\", \"user/productPage\"];\n\nconst EmployeeApp = ({\n stateInfo,\n userDetails,\n CITIZEN,\n cityDetails,\n mobileView,\n handleUserDropdownSelection,\n logoUrl,\n logoUrlWhite,\n stateCode,\n modules,\n appTenants,\n sourceUrl,\n pathname, // This prop seems unused, consider removing\n initData,\n noTopBar = false,\n}) => {\n const navigate = useNavigate();\n const { t } = useTranslation();\n const location = useLocation();\n const showLanguageChange = location?.pathname?.includes(\"language-selection\");\n const isUserProfile = userScreensExempted.some((url) => location?.pathname?.includes(url));\n\n useEffect(() => {\n Digit.UserService.setType(\"employee\");\n }, []);\n\n const additionalComponent = initData?.modules?.filter((i) => i?.additionalComponent)?.map((i) => i?.additionalComponent);\n\n return (\n <div className=\"employee\">\n <Routes>\n <Route path=\"user/*\" element={\n <>\n {isUserProfile && (\n <TopBarSideBar\n t={t}\n stateInfo={stateInfo}\n userDetails={userDetails}\n CITIZEN={CITIZEN}\n cityDetails={cityDetails}\n mobileView={mobileView}\n handleUserDropdownSelection={handleUserDropdownSelection}\n logoUrl={logoUrl}\n logoUrlWhite={logoUrlWhite}\n showSidebar={isUserProfile ? true : false}\n showLanguageChange={!showLanguageChange}\n />\n )}\n <div\n className={isUserProfile ? \"grounded-container\" : \"loginContainer\"}\n style={\n isUserProfile\n ? { padding: 0, paddingTop: \"0\", marginLeft: mobileView ? \"0\" : \"0\" }\n : { \"--banner-url\": `url(${stateInfo?.bannerUrl})`, padding: \"0px\" }\n }\n >\n <Routes>\n <Route path=\"login\" element={<EmployeeLogin stateCode={stateCode} />} />\n <Route path=\"login/otp\" element={<Otp isLogin={true} />} />\n <Route path=\"forgot-password\" element={<ForgotPassword stateCode={stateCode} />} />\n <Route path=\"change-password\" element={<ChangePassword />} />\n <Route\n path=\"profile\"\n element={ <UserProfile stateCode={stateCode} userType={\"employee\"} cityDetails={cityDetails} />}\n />\n <Route\n path=\"error\"\n element={\n <ErrorComponent\n initData={initData}\n goToHome={() => {\n navigate(`/${window?.contextPath}/${Digit?.UserService?.getType?.()}`);\n }}\n />\n }\n />\n <Route path=\"language-selection\" element={<LanguageSelection />} />\n <Route path=\"*\" element={<Navigate to=\"language-selection\" replace />} />\n </Routes>\n </div>\n </>}\n />\n\n <Route path=\"*\" element={\n <>\n {!noTopBar && (\n <TopBarSideBar\n t={t}\n stateInfo={stateInfo}\n userDetails={userDetails}\n CITIZEN={CITIZEN}\n cityDetails={cityDetails}\n mobileView={mobileView}\n handleUserDropdownSelection={handleUserDropdownSelection}\n logoUrl={logoUrl}\n logoUrlWhite={logoUrlWhite}\n modules={modules}\n />\n )}\n <div className={!noTopBar ? `main digit-home-main` : \"\"}>\n <div className=\"employee-app-wrapper digit-home-app-wrapper\">\n <ErrorBoundary initData={initData}>\n <AppModules\n stateCode={stateCode}\n userType=\"employee\"\n modules={modules}\n appTenants={appTenants}\n additionalComponent={additionalComponent}\n />\n </ErrorBoundary>\n </div>\n <div className=\"employee-home-footer\">\n <ImageComponent\n alt=\"Powered by DIGIT\"\n src={window?.globalConfigs?.getConfig?.(\"DIGIT_FOOTER\")}\n style={{ height: \"1.1em\", cursor: \"pointer\" }}\n onClick={() => {\n window.open(window?.globalConfigs?.getConfig?.(\"DIGIT_HOME_URL\"), \"_blank\").focus();\n }}\n />\n </div>\n </div>\n </>\n }/>\n\n <Route path=\"*\" element={<Navigate to={`user/language-selection`} replace />} />\n </Routes>\n </div>\n );\n};\n\nexport default withAutoFocusMain(EmployeeApp, \".digit-home-main\");","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n'use strict';\n\nexports.match = matchQuery;\nexports.parse = parseQuery;\n\n// -----------------------------------------------------------------------------\n\nvar RE_MEDIA_QUERY = /(?:(only|not)?\\s*([^\\s\\(\\)]+)(?:\\s*and)?\\s*)?(.+)?/i,\n RE_MQ_EXPRESSION = /\\(\\s*([^\\s\\:\\)]+)\\s*(?:\\:\\s*([^\\s\\)]+))?\\s*\\)/,\n RE_MQ_FEATURE = /^(?:(min|max)-)?(.+)/,\n RE_LENGTH_UNIT = /(em|rem|px|cm|mm|in|pt|pc)?$/,\n RE_RESOLUTION_UNIT = /(dpi|dpcm|dppx)?$/;\n\nfunction matchQuery(mediaQuery, values) {\n return parseQuery(mediaQuery).some(function (query) {\n var inverse = query.inverse;\n\n // Either the parsed or specified `type` is \"all\", or the types must be\n // equal for a match.\n var typeMatch = query.type === 'all' || values.type === query.type;\n\n // Quit early when `type` doesn't match, but take \"not\" into account.\n if ((typeMatch && inverse) || !(typeMatch || inverse)) {\n return false;\n }\n\n var expressionsMatch = query.expressions.every(function (expression) {\n var feature = expression.feature,\n modifier = expression.modifier,\n expValue = expression.value,\n value = values[feature];\n\n // Missing or falsy values don't match.\n if (!value) { return false; }\n\n switch (feature) {\n case 'orientation':\n case 'scan':\n return value.toLowerCase() === expValue.toLowerCase();\n\n case 'width':\n case 'height':\n case 'device-width':\n case 'device-height':\n expValue = toPx(expValue);\n value = toPx(value);\n break;\n\n case 'resolution':\n expValue = toDpi(expValue);\n value = toDpi(value);\n break;\n\n case 'aspect-ratio':\n case 'device-aspect-ratio':\n case /* Deprecated */ 'device-pixel-ratio':\n expValue = toDecimal(expValue);\n value = toDecimal(value);\n break;\n\n case 'grid':\n case 'color':\n case 'color-index':\n case 'monochrome':\n expValue = parseInt(expValue, 10) || 1;\n value = parseInt(value, 10) || 0;\n break;\n }\n\n switch (modifier) {\n case 'min': return value >= expValue;\n case 'max': return value <= expValue;\n default : return value === expValue;\n }\n });\n\n return (expressionsMatch && !inverse) || (!expressionsMatch && inverse);\n });\n}\n\nfunction parseQuery(mediaQuery) {\n return mediaQuery.split(',').map(function (query) {\n query = query.trim();\n\n var captures = query.match(RE_MEDIA_QUERY),\n modifier = captures[1],\n type = captures[2],\n expressions = captures[3] || '',\n parsed = {};\n\n parsed.inverse = !!modifier && modifier.toLowerCase() === 'not';\n parsed.type = type ? type.toLowerCase() : 'all';\n\n // Split expressions into a list.\n expressions = expressions.match(/\\([^\\)]+\\)/g) || [];\n\n parsed.expressions = expressions.map(function (expression) {\n var captures = expression.match(RE_MQ_EXPRESSION),\n feature = captures[1].toLowerCase().match(RE_MQ_FEATURE);\n\n return {\n modifier: feature[1],\n feature : feature[2],\n value : captures[2]\n };\n });\n\n return parsed;\n });\n}\n\n// -- Utilities ----------------------------------------------------------------\n\nfunction toDecimal(ratio) {\n var decimal = Number(ratio),\n numbers;\n\n if (!decimal) {\n numbers = ratio.match(/^(\\d+)\\s*\\/\\s*(\\d+)$/);\n decimal = numbers[1] / numbers[2];\n }\n\n return decimal;\n}\n\nfunction toDpi(resolution) {\n var value = parseFloat(resolution),\n units = String(resolution).match(RE_RESOLUTION_UNIT)[1];\n\n switch (units) {\n case 'dpcm': return value / 2.54;\n case 'dppx': return value * 96;\n default : return value;\n }\n}\n\nfunction toPx(length) {\n var value = parseFloat(length),\n units = String(length).match(RE_LENGTH_UNIT)[1];\n\n switch (units) {\n case 'em' : return value * 16;\n case 'rem': return value * 16;\n case 'cm' : return value * 96 / 2.54;\n case 'mm' : return value * 96 / 2.54 / 10;\n case 'in' : return value * 96;\n case 'pt' : return value * 72;\n case 'pc' : return value * 72 / 12;\n default : return value;\n }\n}\n","'use strict';\n\nvar staticMatch = require('css-mediaquery').match;\nvar dynamicMatch = typeof window !== 'undefined' ? window.matchMedia : null;\n\n// our fake MediaQueryList\nfunction Mql(query, values, forceStatic){\n var self = this;\n var mql;\n\n // matchMedia will return null in FF when it's called in a hidden iframe\n // ref: https://stackoverflow.com/a/12330568\n if(dynamicMatch && !forceStatic) mql = dynamicMatch.call(window, query);\n\n if (mql) {\n this.matches = mql.matches;\n this.media = mql.media;\n // TODO: is there a time it makes sense to remove this listener?\n mql.addListener(update);\n } else {\n this.matches = staticMatch(query, values);\n this.media = query;\n }\n\n this.addListener = addListener;\n this.removeListener = removeListener;\n this.dispose = dispose;\n\n function addListener(listener){\n if(mql){\n mql.addListener(listener);\n }\n }\n\n function removeListener(listener){\n if(mql){\n mql.removeListener(listener);\n }\n }\n\n // update ourselves!\n function update(evt){\n self.matches = evt.matches;\n self.media = evt.media;\n }\n\n function dispose(){\n if(mql){\n mql.removeListener(update);\n }\n }\n}\n\nfunction matchMedia(query, values, forceStatic){\n return new Mql(query, values, forceStatic);\n}\n\nmodule.exports = matchMedia;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/* eslint-disable no-var, prefer-template */\nvar uppercasePattern = /[A-Z]/g\nvar msPattern = /^ms-/\nvar cache = {}\n\nfunction toHyphenLower(match) {\n return '-' + match.toLowerCase()\n}\n\nfunction hyphenateStyleName(name) {\n if (cache.hasOwnProperty(name)) {\n return cache[name]\n }\n\n var hName = name.replace(uppercasePattern, toHyphenLower)\n return (cache[name] = msPattern.test(hName) ? '-' + hName : hName)\n}\n\nexport default hyphenateStyleName\n","import { createContext, useRef, useEffect, useContext, useState } from 'react';\nimport matchMedia from 'matchmediaquery';\nimport hyphenate from 'hyphenate-style-name';\nimport { shallowEqualObjects } from 'shallow-equal';\nimport PropTypes from 'prop-types';\n\nconst stringOrNumber = PropTypes.oneOfType([PropTypes.string, PropTypes.number]);\n// media types\nconst types = {\n all: PropTypes.bool,\n grid: PropTypes.bool,\n aural: PropTypes.bool,\n braille: PropTypes.bool,\n handheld: PropTypes.bool,\n print: PropTypes.bool,\n projection: PropTypes.bool,\n screen: PropTypes.bool,\n tty: PropTypes.bool,\n tv: PropTypes.bool,\n embossed: PropTypes.bool\n};\n// properties that match media queries\nconst matchers = {\n orientation: PropTypes.oneOf(['portrait', 'landscape']),\n scan: PropTypes.oneOf(['progressive', 'interlace']),\n aspectRatio: PropTypes.string,\n deviceAspectRatio: PropTypes.string,\n height: stringOrNumber,\n deviceHeight: stringOrNumber,\n width: stringOrNumber,\n deviceWidth: stringOrNumber,\n color: PropTypes.bool,\n colorIndex: PropTypes.bool,\n monochrome: PropTypes.bool,\n resolution: stringOrNumber,\n type: Object.keys(types)\n};\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst { type, ...featureMatchers } = matchers;\n// media features\nconst features = {\n minAspectRatio: PropTypes.string,\n maxAspectRatio: PropTypes.string,\n minDeviceAspectRatio: PropTypes.string,\n maxDeviceAspectRatio: PropTypes.string,\n minHeight: stringOrNumber,\n maxHeight: stringOrNumber,\n minDeviceHeight: stringOrNumber,\n maxDeviceHeight: stringOrNumber,\n minWidth: stringOrNumber,\n maxWidth: stringOrNumber,\n minDeviceWidth: stringOrNumber,\n maxDeviceWidth: stringOrNumber,\n minColor: PropTypes.number,\n maxColor: PropTypes.number,\n minColorIndex: PropTypes.number,\n maxColorIndex: PropTypes.number,\n minMonochrome: PropTypes.number,\n maxMonochrome: PropTypes.number,\n minResolution: stringOrNumber,\n maxResolution: stringOrNumber,\n ...featureMatchers\n};\nconst all = { ...types, ...features };\nvar mq = {\n all: all,\n types: types,\n matchers: matchers,\n features: features\n};\n\nconst negate = (cond) => `not ${cond}`;\nconst keyVal = (k, v) => {\n const realKey = hyphenate(k);\n // px shorthand\n if (typeof v === 'number') {\n v = `${v}px`;\n }\n if (v === true) {\n return realKey;\n }\n if (v === false) {\n return negate(realKey);\n }\n return `(${realKey}: ${v})`;\n};\nconst join = (conds) => conds.join(' and ');\nconst toQuery = (obj) => {\n const rules = [];\n Object.keys(mq.all).forEach((k) => {\n const v = obj[k];\n if (v != null) {\n rules.push(keyVal(k, v));\n }\n });\n return join(rules);\n};\n\nconst Context = createContext(undefined);\n\nconst makeQuery = (settings) => settings.query || toQuery(settings);\nconst hyphenateKeys = (obj) => {\n if (!obj)\n return undefined;\n const keys = Object.keys(obj);\n return keys.reduce((result, key) => {\n result[hyphenate(key)] = obj[key];\n return result;\n }, {});\n};\nconst useIsUpdate = () => {\n const ref = useRef(false);\n useEffect(() => {\n ref.current = true;\n }, []);\n return ref.current;\n};\nconst useDevice = (deviceFromProps) => {\n const deviceFromContext = useContext(Context);\n const getDevice = () => hyphenateKeys(deviceFromProps) || hyphenateKeys(deviceFromContext);\n const [device, setDevice] = useState(getDevice);\n useEffect(() => {\n const newDevice = getDevice();\n if (!shallowEqualObjects(device, newDevice)) {\n setDevice(newDevice);\n }\n }, [deviceFromProps, deviceFromContext]);\n return device;\n};\nconst useQuery = (settings) => {\n const getQuery = () => makeQuery(settings);\n const [query, setQuery] = useState(getQuery);\n useEffect(() => {\n const newQuery = getQuery();\n if (query !== newQuery) {\n setQuery(newQuery);\n }\n }, [settings]);\n return query;\n};\nconst useMatchMedia = (query, device) => {\n const getMatchMedia = () => matchMedia(query, device || {}, !!device);\n const [mq, setMq] = useState(getMatchMedia);\n const isUpdate = useIsUpdate();\n useEffect(() => {\n if (isUpdate) {\n // skip on mounting, it has already been set\n const newMq = getMatchMedia();\n setMq(newMq);\n return () => {\n if (newMq) {\n newMq.dispose();\n }\n };\n }\n }, [query, device]);\n return mq;\n};\nconst useMatches = (mediaQuery) => {\n const [matches, setMatches] = useState(mediaQuery.matches);\n useEffect(() => {\n const updateMatches = (ev) => {\n setMatches(ev.matches);\n };\n mediaQuery.addListener(updateMatches);\n setMatches(mediaQuery.matches);\n return () => {\n mediaQuery.removeListener(updateMatches);\n };\n }, [mediaQuery]);\n return matches;\n};\nconst useMediaQuery = (settings, device, onChange) => {\n const deviceSettings = useDevice(device);\n const query = useQuery(settings);\n if (!query)\n throw new Error('Invalid or missing MediaQuery!');\n const mq = useMatchMedia(query, deviceSettings);\n const matches = useMatches(mq);\n const isUpdate = useIsUpdate();\n useEffect(() => {\n if (isUpdate && onChange) {\n onChange(matches);\n }\n }, [matches]);\n useEffect(() => () => {\n if (mq) {\n mq.dispose();\n }\n }, []);\n return matches;\n};\n\n// ReactNode and ReactElement typings are a little funky for functional components, so the ReactElement cast is needed on the return\nconst MediaQuery = ({ children, device, onChange, ...settings }) => {\n const matches = useMediaQuery(settings, device, onChange);\n if (typeof children === 'function') {\n return children(matches);\n }\n return matches ? children : null;\n};\n\nexport { Context, MediaQuery, MediaQuery as default, toQuery, useMediaQuery };\n//# sourceMappingURL=index.js.map\n","function shallowEqualArrays(arrA, arrB) {\n if (arrA === arrB) {\n return true;\n }\n if (!arrA || !arrB) {\n return false;\n }\n const len = arrA.length;\n if (arrB.length !== len) {\n return false;\n }\n for (let i = 0; i < len; i++) {\n if (arrA[i] !== arrB[i]) {\n return false;\n }\n }\n return true;\n}\n\nfunction shallowEqualObjects(objA, objB) {\n if (objA === objB) {\n return true;\n }\n if (!objA || !objB) {\n return false;\n }\n const aKeys = Object.keys(objA);\n const bKeys = Object.keys(objB);\n const len = aKeys.length;\n if (bKeys.length !== len) {\n return false;\n }\n for (let i = 0; i < len; i++) {\n const key = aKeys[i];\n if (objA[key] !== objB[key] || !Object.prototype.hasOwnProperty.call(objB, key)) {\n return false;\n }\n }\n return true;\n}\n\nfunction shallowEqual(a, b) {\n const aIsArr = Array.isArray(a);\n const bIsArr = Array.isArray(b);\n if (aIsArr !== bIsArr) {\n return false;\n }\n if (aIsArr && bIsArr) {\n return shallowEqualArrays(a, b);\n }\n return shallowEqualObjects(a, b);\n}\n\nexport { shallowEqual, shallowEqualArrays, shallowEqualObjects };\n//# sourceMappingURL=index.modern.mjs.map\n","/**\n * @license React\n * react-jsx-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\nfunction jsxProd(type, config, maybeKey) {\n var key = null;\n void 0 !== maybeKey && (key = \"\" + maybeKey);\n void 0 !== config.key && (key = \"\" + config.key);\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n config = maybeKey.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== config ? config : null,\n props: maybeKey\n };\n}\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsxProd;\nexports.jsxs = jsxProd;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","module.exports = __WEBPACK_EXTERNAL_MODULE__6243__;","module.exports = __WEBPACK_EXTERNAL_MODULE__5053__;","module.exports = __WEBPACK_EXTERNAL_MODULE__338__;","module.exports = __WEBPACK_EXTERNAL_MODULE__4456__;","module.exports = __WEBPACK_EXTERNAL_MODULE__4883__;","module.exports = __WEBPACK_EXTERNAL_MODULE__5953__;","module.exports = __WEBPACK_EXTERNAL_MODULE__2148__;","module.exports = __WEBPACK_EXTERNAL_MODULE__4442__;","module.exports = __WEBPACK_EXTERNAL_MODULE__1954__;","module.exports = __WEBPACK_EXTERNAL_MODULE__2247__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import React from \"react\";\nimport { Routes, Route, useLocation, useNavigate } from \"react-router-dom\";\nimport { Navigate } from \"react-router-dom\";\nimport { lazyWithFallback } from \"@egovernments/digit-ui-components\";\n\n// Create lazy components with fallbacks using the utility\nconst CitizenApp = lazyWithFallback(\n () => import(/* webpackChunkName: \"citizen-app\" */ \"./pages/citizen\"),\n () => require(\"./pages/citizen\").default,\n { loaderText: \"CORE_LOADING_CITIZEN_APP\" }\n);\n\nconst EmployeeApp = lazyWithFallback(\n () => import(/* webpackChunkName: \"employee-app\" */ \"./pages/employee\"),\n () => require(\"./pages/employee\").default,\n { loaderText: \"CORE_LOADING_EMPLOYEE_APP\" }\n);\n\nconst SignUp = lazyWithFallback(\n () => import(/* webpackChunkName: \"sign-up\" */ \"./pages/employee/SignUp\"),\n () => require(\"./pages/employee/SignUp\").default,\n { loaderText: \"CORE_LOADING_SIGN_UP\" }\n);\n\nconst Otp = lazyWithFallback(\n () => import(/* webpackChunkName: \"otp\" */ \"./pages/employee/Otp\"),\n () => require(\"./pages/employee/Otp\").default,\n { loaderText: \"CORE_LOADING_OTP\" }\n);\n\nconst ViewUrl = lazyWithFallback(\n () => import(/* webpackChunkName: \"view-url\" */ \"./pages/employee/ViewUrl\"),\n () => require(\"./pages/employee/ViewUrl\").default,\n { loaderText: \"CORE_LOADING_VIEW_URL\" }\n);\n\nconst CustomErrorComponent = lazyWithFallback(\n () => import(/* webpackChunkName: \"custom-error\" */ \"./components/CustomErrorComponent\"),\n () => require(\"./components/CustomErrorComponent\").default,\n { loaderText: \"CORE_LOADING_ERROR_COMPONENT\" }\n);\n\nconst DummyLoaderScreen = lazyWithFallback(\n () => import(/* webpackChunkName: \"dummy-loader\" */ \"./components/DummyLoader\"),\n () => require(\"./components/DummyLoader\").default,\n { loaderText: \"CORE_LOADING\" }\n);\n\nexport const DigitApp = ({ stateCode, modules, appTenants, logoUrl, logoUrlWhite, initData, defaultLanding = \"citizen\", allowedUserTypes = [\"citizen\", \"employee\"] }) => {\n const navigate = useNavigate();\n const { pathname } = useLocation();\n const innerWidth = window.innerWidth;\n const cityDetails = Digit.ULBService.getCurrentUlb();\n const userDetails = Digit.UserService.getUser();\n const { data: storeData } = Digit.Hooks.useStore.getInitData();\n const { stateInfo } = storeData || {};\n\n const DSO = Digit.UserService.hasAccess([\"FSM_DSO\"]);\n let CITIZEN = userDetails?.info?.type === \"CITIZEN\" || !window.location.pathname.split(\"/\").includes(\"employee\") ? true : false;\n\n if (window.location.pathname.split(\"/\").includes(\"employee\")) CITIZEN = false;\n\n const handleUserDropdownSelection = (option) => {\n option.func();\n };\n\n const mobileView = innerWidth <= 640;\n let sourceUrl = `${window.location.origin}/citizen`;\n const commonProps = {\n stateInfo,\n userDetails,\n CITIZEN,\n cityDetails,\n mobileView,\n handleUserDropdownSelection,\n logoUrl,\n logoUrlWhite,\n DSO,\n stateCode,\n modules,\n appTenants,\n sourceUrl,\n pathname,\n initData,\n };\n\n return (\n <Routes>\n {allowedUserTypes?.includes(\"employee\") && (\n <Route path={`/${window?.contextPath}/employee/*`} element={<EmployeeApp {...commonProps} />} />\n )}\n {allowedUserTypes?.includes(\"citizen\") && (\n <Route path={`/${window?.contextPath}/citizen/*`} element={<CitizenApp {...commonProps} />} />\n )}\n {allowedUserTypes?.includes(\"employee\") && (\n <Route path={`/${window?.contextPath}/no-top-bar/employee`} element={<EmployeeApp {...commonProps} noTopBar />} />\n )}\n <Route path=\"*\" element={<Navigate to={`/${window?.contextPath}/${defaultLanding}`} />} />\n </Routes>\n );\n};\n\nexport const DigitAppWrapper = ({ stateCode, modules, appTenants, logoUrl, logoUrlWhite, initData, defaultLanding = \"citizen\" ,allowedUserTypes}) => {\n // const globalPath = window?.globalConfigs?.getConfig(\"CONTEXT_PATH\") || \"digit-ui\";\n const { data: storeData } = Digit.Hooks.useStore.getInitData();\n const { stateInfo } = storeData || {};\n const userScreensExempted = [\"user/error\"];\n const isUserProfile = userScreensExempted.some((url) => location?.pathname?.includes(url));\n const userDetails = Digit.UserService.getUser();\n let CITIZEN = userDetails?.info?.type === \"CITIZEN\" || !window.location.pathname.split(\"/\").includes(\"employee\") ? true : false;\n const innerWidth = window.innerWidth;\n const mobileView = innerWidth <= 640;\n\n return (\n <div\n className={isUserProfile ? \"grounded-container\" : \"loginContainer\"}\n style={\n isUserProfile ? { padding: 0, paddingTop: CITIZEN ? \"0\" : mobileView && !CITIZEN ? \"3rem\" : \"80px\", marginLeft: CITIZEN || mobileView ? \"0\" : \"40px\" } : { \"--banner-url\": `url(${stateInfo?.bannerUrl})`, padding: \"0px\" }\n }\n >\n <Routes>\n <Route path={`/${window?.globalPath}/user/invalid-url`} element={<CustomErrorComponent />} />\n <Route path={`/${window?.globalPath}/user/sign-up`} element={<SignUp stateCode={stateCode} />} />\n <Route path={`/${window?.globalPath}/user/otp`} element={<Otp />} />\n <Route path={`/${window?.globalPath}/user/setup`} element={<DummyLoaderScreen />} />\n <Route path={`/${window?.globalPath}/user/url`} element={<ViewUrl />} />\n {window?.globalPath !== window?.contextPath && (\n <Route\n path={`/${window?.contextPath}/*`}\n element={\n <DigitApp\n stateCode={stateCode}\n modules={modules}\n appTenants={appTenants}\n logoUrl={logoUrl}\n logoUrlWhite={logoUrlWhite}\n initData={initData}\n defaultLanding={defaultLanding}\n allowedUserTypes={allowedUserTypes}\n />\n }\n />\n )}\n <Route path=\"*\" element={<Navigate to={`/${window?.globalPath}/user/sign-up`} />} />\n </Routes>\n </div>\n );\n};","import { applyMiddleware, combineReducers, compose, createStore } from \"redux\";\nimport thunk from \"redux-thunk\";\nimport { commonReducer } from \"./reducers\";\n\nconst getRootReducer = (defaultStore, moduleReducers) =>\n combineReducers({\n common: commonReducer(defaultStore),\n ...moduleReducers,\n });\n\nconst middleware = [thunk];\n\nconst composeEnhancers =\n process.env.NODE_ENV === 'development' && typeof window === \"object\" && window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ \n ? window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__({}) \n : compose;\n\nconst enhancer = composeEnhancers(\n applyMiddleware(...middleware)\n // other store enhancers if any\n);\n\nconst getStore = (defaultStore, moduleReducers = {}) => {\n return createStore(getRootReducer(defaultStore, moduleReducers), enhancer);\n};\nexport default getStore;\n","export const commonReducer = (defaultData) => (state = defaultData, action) => {\n switch (action.type) {\n case \"LANGUAGE_SELECT\":\n return { ...state, selectedLanguage: action.payload };\n default:\n return state;\n }\n};\n","import React, { useState, useEffect, Fragment } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { CheckBox, PopUp, Button, HeaderComponent } from \"@egovernments/digit-ui-components\";\nimport { LinkButton } from \"@egovernments/digit-ui-react-components\";\n\nconst PrivacyComponent = ({ onSelect, formData, control, formState, ...props }) => {\n const { t } = useTranslation();\n const tenantId = Digit.ULBService.getCurrentTenantId();\n const [isChecked, setIsChecked] = useState(false);\n const [showPopUp, setShowPopUp] = useState(false);\n const moduleName=Digit.Utils.getConfigModuleName();\n \n const { data: privacy } = Digit.Hooks.useCustomMDMS(tenantId, moduleName, [{ name: \"PrivacyPolicy\" }], {\n select: (data) => {\n const filteredPrivacyPolicy = data?.[moduleName]?.PrivacyPolicy?.find(policy => policy.module === props?.props?.module);\n return filteredPrivacyPolicy;\n },\n });\n const handleCheckboxChange = (event) => {\n setIsChecked(event.target.checked);\n };\n useEffect(() => {\n onSelect(\"check\", isChecked);\n }, [isChecked]);\n const onButtonClick = () => {\n setShowPopUp(true);\n };\n\n const handleScrollToElement = (id) => {\n const element = document.getElementById(id);\n if (element) {\n element.scrollIntoView({ behavior: \"smooth\" });\n }\n };\n\n return (\n <React.Fragment>\n <div className=\"digit-privacy-checkbox digit-privacy-checkbox-align\">\n <CheckBox label={t(\"ES_BY_CLICKING\")} checked={isChecked} onChange={handleCheckboxChange} id={\"privacy-component-check\"}></CheckBox>\n <Button\n label={t(`ES_PRIVACY_POLICY`)}\n variation={\"link\"}\n size={\"small\"}\n onClick={onButtonClick}\n // isSuffix={true}\n style={{ marginBottom: \"1rem\", paddingLeft: \"0.2rem\" }}\n ></Button>\n </div>\n {showPopUp && (\n <PopUp\n type={\"default\"}\n className={\"privacy-popUpClass\"}\n footerclassName={\"popUpFooter\"}\n heading={t(privacy?.header)}\n onOverlayClick={() => {\n setShowPopUp(false);\n }}\n footerChildren={[\n <Button\n type={\"button\"}\n size={\"large\"}\n variation={\"secondary\"}\n label={t(\"DIGIT_I_DO_NOT_ACCEPT\")}\n onClick={() => {\n setIsChecked(false), setShowPopUp(false);\n }}\n />,\n <Button\n type={\"button\"}\n size={\"large\"}\n variation={\"primary\"}\n label={t(\"DIGIT_I_ACCEPT\")}\n className={\"accept-class\"}\n onClick={() => {\n setIsChecked(true), setShowPopUp(false);\n }}\n />,\n ]}\n sortFooterChildren={true}\n onClose={() => {\n setShowPopUp(false);\n }}\n >\n <div>\n <div className=\"privacy-table\">{t(\"DIGIT_TABLE_OF_CONTENTS\")}</div>\n <ul>\n {privacy?.contents.map((content, index) => (\n <li key={index} style={{ display: \"flex\", alignItems: \"center\" }}>\n <span style={{ marginRight: \"0.5rem\" }}>{index + 1}. </span>\n <Button\n label={t(content.header)}\n variation={\"link\"}\n size={\"medium\"}\n onClick={(e) => {\n e.preventDefault();\n handleScrollToElement(content?.header);\n }}\n style={{justifyContent: \"flex-start\"}}\n ></Button>\n </li>\n ))}\n </ul>\n </div>\n {privacy?.contents.map((content, index) => (\n <div key={index} id={content?.header}>\n <div\n style={{\n fontWeight: 'bold',\n paddingLeft: content?.isSpaceRequired ? \"1rem\" : \"0\",\n }}\n >\n {t(content.header)}\n </div>\n {content.descriptions.map((description, subIndex) => (\n <div key={subIndex} style={{ paddingLeft: description.isSpaceRequired ? \"1rem\" : \"0\" , marginBottom: '0.5rem'}}>\n <div\n style={{\n fontWeight: description?.isBold ? 700 : 400,\n display: \"flex\",\n alignItems: \"center\",\n }}\n >\n {description.type === 'points' && (\n <span style={{ marginRight: '0.5rem', listStyleType: 'disc' }}>&#8226;</span>\n )}\n {description.type === 'step' && (\n <span style={{ marginRight: '0.5rem', listStyleType: 'decimal' }}>{subIndex + 1}. </span>\n )}\n {t(description.text)}\n </div>\n {description?.subDescriptions && description?.subDescriptions.length > 0 && (\n <div className=\"policy-subdescription\">\n {description.subDescriptions.map((subDesc, subSubIndex) => (\n <div key={subSubIndex} className=\"policy-subdescription-points\">\n {subDesc.type === 'points' && (\n <span style={{ marginRight: '0.5rem', listStyleType: 'disc' , paddingLeft: '1rem'}}>&#8226;</span>\n )}\n {subDesc.type === 'step' && (\n <span style={{ marginRight: '0.5rem', listStyleType: 'decimal' , paddingLeft: '1rem'}}>{subSubIndex + 1}. </span>\n )}\n {subDesc.type === null && (\n <span style={{ marginRight: '0.5rem', paddingLeft: '1rem'}}> </span>\n )}\n {t(subDesc.text)}\n </div>\n ))}\n </div>\n )}\n </div>\n ))}\n </div>\n ))}\n </PopUp>\n )}\n </React.Fragment>\n );\n};\n\nexport default PrivacyComponent;\n","import { BodyContainer } from \"@egovernments/digit-ui-components\";\nimport { Loader } from \"@egovernments/digit-ui-components\";\nimport React from \"react\";\nimport { getI18n } from \"react-i18next\";\nimport { QueryClient, QueryClientProvider } from \"@tanstack/react-query\";\nimport { Provider } from \"react-redux\";\nimport { BrowserRouter as Router } from \"react-router-dom\";\nimport { DigitApp, DigitAppWrapper } from \"./App\";\nimport SelectOtp from \"./pages/citizen/Login/SelectOtp\";\nimport ChangeCity from \"./components/ChangeCity\";\nimport ChangeLanguage from \"./components/ChangeLanguage\";\nimport { useState, useMemo, useCallback } from \"react\";\nimport ErrorBoundary from \"./components/ErrorBoundaries\";\nimport getStore from \"./redux/store\";\nimport PrivacyComponent from \"./components/PrivacyComponent\";\nimport OtpComponent from \"./pages/employee/Otp/OtpCustomComponent\";\nimport LoginSignupSelector from \"./components/LoginSignupSelector\";\nimport ForgotOrganizationTooltip from \"./components/ForgotOrganizationTooltip\";\n\n// Create QueryClient instance outside component to prevent recreation\nconst createQueryClient = () => new QueryClient({\n defaultOptions: {\n queries: {\n staleTime: 15 * 60 * 1000,\n gcTime: 50 * 60 * 1000,\n retry: false,\n retryDelay: (attemptIndex) => Infinity,\n /*\n enable this to have auto retry incase of failure\n retryDelay: attemptIndex => Math.min(1000 * 3 ** attemptIndex, 60000)\n */\n },\n },\n});\n\nconst DigitUIWrapper = ({ stateCode, enabledModules, defaultLanding,allowedUserTypes }) => {\n const { isLoading, data: initData={} } = Digit.Hooks.useInitStore(stateCode, enabledModules);\n if (isLoading) {\n return <Loader page={true} variant={\"PageLoader\"} />;\n }\n const data=getStore(initData) || {};\n const i18n = getI18n();\n if(!Digit.ComponentRegistryService.getComponent(\"PrivacyComponent\")){\n Digit.ComponentRegistryService.setComponent(\"PrivacyComponent\", PrivacyComponent);\n }\n return (\n <Provider store={data}>\n <Router>\n <BodyContainer>\n {Digit.Utils.getMultiRootTenant() ? (\n <DigitAppWrapper\n initData={initData}\n stateCode={stateCode}\n modules={initData?.modules}\n appTenants={initData.tenants}\n logoUrl={initData?.stateInfo?.logoUrl}\n logoUrlWhite={initData?.stateInfo?.logoUrlWhite}\n defaultLanding={defaultLanding}\n allowedUserTypes={allowedUserTypes}\n />\n ) : (\n <DigitApp\n initData={initData}\n stateCode={stateCode}\n modules={initData?.modules}\n appTenants={initData.tenants}\n logoUrl={initData?.stateInfo?.logoUrl}\n defaultLanding={defaultLanding}\n allowedUserTypes={allowedUserTypes}\n />\n )}\n </BodyContainer>\n </Router>\n </Provider>\n );\n};\n\n/**\n * DigitUI Component - The main entry point for the UI.\n *\n * @param {Object} props - The properties passed to the component.\n * @param {string} props.stateCode - The state code for the application.\n * @param {Object} props.registry - The registry object containing components registrations.\n * @param {Array<string>} props.enabledModules - A list of enabled modules, if any modules to be disabled due to some condition.\n * @param {Object} props.moduleReducers - Reducers associated with enabled modules.\n * @param {string} props.defaultLanding - The default landing page (e.g., \"employee\", \"citizen\"), default is citizen.\n * @param {Array<string>} props.allowedUserTypes - A list of allowed user types (e.g., [\"employee\", \"citizen\"]) if any restriction to be applied, and default is both employee & citizen.\n * \n * @author jagankumar-egov\n *\n * @example\n * <DigitUI\n * stateCode=\"pg\"\n * registry={registry}\n * enabledModules={[\"Workbench\", \"PGR\"]}\n * defaultLanding=\"employee\"\n * allowedUserTypes={[\"employee\", \"citizen\"]}\n * moduleReducers={moduleReducers}\n * />\n */\nexport const DigitUI = ({ stateCode, registry, enabledModules, defaultLanding,allowedUserTypes }) => {\n // Memoize initial privacy state to prevent unnecessary re-renders\n const initialPrivacy = useMemo(() => Digit.Utils.getPrivacyObject() || {}, []);\n const [privacy, setPrivacy] = useState(initialPrivacy);\n \n const userType = Digit.UserService.getType();\n \n // Use memoized QueryClient to prevent recreation on every render\n const queryClient = useMemo(() => createQueryClient(), []);\n\n const ComponentProvider = Digit.Contexts.ComponentProvider;\n const PrivacyProvider = Digit.Contexts.PrivacyProvider;\n\n const DSO = Digit.UserService.hasAccess([\"FSM_DSO\"]);\n\n // Memoize privacy context methods to prevent unnecessary re-renders\n const resetPrivacy = useCallback((_data) => {\n Digit.Utils.setPrivacyObject({});\n setPrivacy({});\n }, []);\n\n const getPrivacy = useCallback(() => {\n const privacyObj = Digit.Utils.getPrivacyObject();\n setPrivacy(privacyObj);\n return privacyObj;\n }, []);\n\n const updatePrivacyDescoped = useCallback((_data) => {\n const privacyObj = Digit.Utils.getAllPrivacyObject();\n // Safely access pathname with fallback\n const pathname = typeof window !== 'undefined' ? window.location.pathname : '';\n const newObj = { ...privacyObj, [pathname]: _data };\n Digit.Utils.setPrivacyObject({ ...newObj });\n setPrivacy(privacyObj?.[pathname] || {});\n }, []);\n\n const updatePrivacy = useCallback((uuid, fieldName) => {\n setPrivacy(Digit.Utils.updatePrivacy(uuid, fieldName) || {});\n }, []);\n\n // Memoize privacy context value to prevent unnecessary re-renders\n const privacyContextValue = useMemo(() => ({\n privacy: typeof window !== 'undefined' ? privacy?.[window.location.pathname] : privacy,\n resetPrivacy,\n getPrivacy,\n updatePrivacyDescoped,\n updatePrivacy,\n }), [privacy, resetPrivacy, getPrivacy, updatePrivacyDescoped, updatePrivacy]);\n\n return (\n <div>\n <ErrorBoundary>\n <QueryClientProvider client={queryClient}>\n <ComponentProvider.Provider value={registry}>\n <PrivacyProvider.Provider value={privacyContextValue}>\n <DigitUIWrapper stateCode={stateCode} enabledModules={enabledModules} defaultLanding={defaultLanding} allowedUserTypes={allowedUserTypes} />\n </PrivacyProvider.Provider>\n </ComponentProvider.Provider>\n </QueryClientProvider>\n </ErrorBoundary>\n </div>\n );\n};\n\nconst componentsToRegister = {\n SelectOtp,\n ChangeCity,\n ChangeLanguage,\n PrivacyComponent,\n OtpComponent,\n ForgotOrganizationTooltip,\n LoginSignupSelector\n};\n\nexport const initCoreComponents = () => {\n Object.entries(componentsToRegister).forEach(([key, value]) => {\n Digit.ComponentRegistryService.setComponent(key, value);\n });\n};\n","import React, { Fragment, useState } from \"react\";\nimport { CardText, CardLabelError, Toast, CardLabel } from \"@egovernments/digit-ui-components\";\nimport { OTPInput } from \"@egovernments/digit-ui-react-components\";\nimport { useTranslation } from \"react-i18next\";\nimport { useLocation } from \"react-router-dom\";\nimport useInterval from \"../../../hooks/useInterval\";\nimport Background from \"../../../components/Background\";\nimport { useEffect } from \"react\";\n\nconst OtpComponent = ({ onSelect, formData, control, formState, ...props }) => {\n const { t } = useTranslation();\n const location = useLocation();\n const [showToast, setShowToast] = useState(null);\n const [params, setParams] = useState({});\n const [isOtpValid, setIsOtpValid] = useState(true);\n const [timeLeft, setTimeLeft] = useState(30);\n\n const closeToast = () => {\n setShowToast(null);\n };\n\n useInterval(\n () => {\n setTimeLeft(timeLeft - 1);\n },\n timeLeft > 0 ? 1000 : null\n );\n\n const handleOtpChange = (otp) => {\n setParams({ ...params, otp });\n };\n\n useEffect(() => {\n onSelect(\"OtpComponent\", params);\n }, [params]);\n\n const reqCreate = {\n url: `/user-otp/v1/_send`,\n params: { tenantId: props?.props?.code },\n body: {},\n config: {\n enable: false,\n },\n };\n const mutation = Digit.Hooks.useCustomAPIMutationHook(reqCreate);\n\n const resendOtp = async () => {\n setTimeLeft(30);\n await mutation.mutate(\n {\n body: {\n \"otp\": {\n \"userName\": props?.props?.email,\n \"type\": \"login\",\n \"tenantId\": props?.props?.tenant,\n \"userType\": \"EMPLOYEE\"\n }\n },\n config: {\n enable: true,\n },\n },\n {\n onError: (error, variables) => {\n setShowToast({\n key: \"error\",\n label: error?.response?.data?.Errors?.[0].code\n ? `SANDBOX_RESEND_OTP${error?.response?.data?.Errors?.[0]?.code}`\n : `SANDBOX_RESEND_OTP_ERROR`,\n });\n setTimeout(closeToast, 5000);\n },\n onSuccess: async (data) => {\n setShowToast({ key: \"info\", label: t(\"OTP_RESNED_SUCCESFULL\") });\n setTimeout(closeToast, 5000);\n },\n }\n );\n };\n\n return (\n <>\n <CardLabel className={\"sandbox-custom-otp-subheader\"}>{t(\"SANDBOX_ENTER_OTP\")}</CardLabel>\n <CardLabel className={\"sandbox-custom-otp-header\"} >{t(\"CS_OTP_EMAIL\")}</CardLabel>\n <CardLabel className={\"sandbox-custom-otp-email\"} style={{fontWeight: 'bold'}}>{props?.props?.email}</CardLabel>\n <OTPInput className={\"sandbox-otp-input\"} length={6} onChange={handleOtpChange} value={params?.otp} />\n {timeLeft > 0 ? (\n <CardText className={\"sandbox-resend-otp\"}>{`${t(\"CS_RESEND_ANOTHER_OTP\")} ${timeLeft} ${t(\"CS_RESEND_SECONDS\")}`}</CardText>\n ) : (\n <p className=\"card-text-button sandbox-otp-input\" onClick={resendOtp}>\n {t(\"CS_RESEND_OTP\")}\n </p>\n )}\n {!isOtpValid && <CardLabelError>{t(\"CS_INVALID_OTP\")}</CardLabelError>}\n {showToast && <Toast type={showToast?.key} label={t(showToast?.label)} onClose={closeToast} />}\n </>\n );\n};\n\nexport default OtpComponent;\n","import React, { useState, useEffect, useRef } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Button } from \"@egovernments/digit-ui-components\";\n\nconst ForgotOrganizationTooltip = ({ onSelect }) => {\n const { t } = useTranslation();\n const [showTip, setShowTip] = useState(false);\n const wrapperRef = useRef(null);\n\n useEffect(() => {\n const handleClickOutside = (event) => {\n if (wrapperRef.current && !wrapperRef.current.contains(event.target)) {\n setShowTip(false);\n }\n };\n document.addEventListener(\"mousedown\", handleClickOutside);\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside);\n };\n }, []);\n return (\n <div ref={wrapperRef} className=\"loginSignUpSelector\" style={{ position: \"relative\", marginTop: \"-2rem\" }}>\n <Button\n label={t(`SB_FORGOTORGANIZATION_TOOLTIP`)}\n variation={\"link\"}\n size={\"small\"}\n onClick={() => setShowTip((prev) => !prev)}\n // isSuffix={true}\n style={{ marginBottom: \"0.5rem\", paddingLeft: \"0.2rem\" }}\n ></Button>\n {showTip && (\n <div\n style={{\n position: \"absolute\",\n bottom: \"100%\",\n left: \"50%\",\n transform: \"translateY(-4px)\",\n backgroundColor: \"#0b4b66\",\n color: \"white\",\n padding: \"6px 10px\",\n borderRadius: \"4px\",\n whiteSpace: \"normal\",\n wordBreak: \"break-word\",\n maxWidth: \"20rem\",\n zIndex: 1000,\n fontSize: \"0.875rem\"\n }}\n >\n {t(\"SB_FORGOTORGANIZATION_TOOLTIP_TEXT\")}\n </div>\n )}\n </div>\n );\n};\n\nexport default ForgotOrganizationTooltip;\n","import React, { useState, useEffect, Fragment } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { CheckBox, PopUp, Button, HeaderComponent } from \"@egovernments/digit-ui-components\";\nconst LoginSignupSelector = ({ onSelect, formData, control, formState, ...props }) => {\n const { t } = useTranslation();\n const [isChecked, setIsChecked] = useState(true);\n\n\n useEffect(() => {\n onSelect(\"check\", isChecked);\n }, [isChecked]);\n const onButtonClickLogin = () => {\n window.location.replace(`/${window?.contextPath}/user/login`);\n };\n\n const onButtonClickSignUP = () => {\n window.location.replace(`/${window?.contextPath}/user/sign-up`);\n };\n\n const isSignupPage = window.location.href.includes(\"sandbox-ui/user/sign-up\");\n return (\n <React.Fragment>\n <div className=\"loginSignUpSelector\" style={{ marginTop: '-2rem' }}>\n {\n isSignupPage ?\n <Button\n label={t(`SB_ALREADY_HAVE_ACCOUNT`)}\n variation={\"link\"}\n size={\"small\"}\n onClick={onButtonClickLogin}\n // isSuffix={true}\n style={{ marginBottom: \"0.5rem\", paddingLeft: \"0.2rem\" }}\n ></Button> :\n <Button\n label={t(`SB_DONT_HAVE_ACCOUNT`)}\n variation={\"link\"}\n size={\"small\"}\n onClick={onButtonClickSignUP}\n // isSuffix={true}\n style={{ marginBottom: \"0.5rem\", paddingLeft: \"0.2rem\" }}\n ></Button>\n\n }\n\n </div>\n </React.Fragment>\n );\n};\n\nexport default LoginSignupSelector;\n"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE__6243__","__WEBPACK_EXTERNAL_MODULE__4883__","__WEBPACK_EXTERNAL_MODULE__5953__","__WEBPACK_EXTERNAL_MODULE__4456__","__WEBPACK_EXTERNAL_MODULE__2148__","__WEBPACK_EXTERNAL_MODULE__4442__","__WEBPACK_EXTERNAL_MODULE__338__","__WEBPACK_EXTERNAL_MODULE__5053__","__WEBPACK_EXTERNAL_MODULE__1954__","__WEBPACK_EXTERNAL_MODULE__2247__","_ref","children","_jsx","className","stringReplaceAll","str","arguments","length","undefined","searcher","replaceWith","_str","includes","_str2","replace","prop","_selectCityData$","_stringReplaceAll2","dropDownData","setDropDownData","useState","selectCityData","setSelectCityData","selectedCity","setSelectedCity","navigate","useNavigate","isMultiRootTenant","dropdown","Digit","Utils","getMultiRootTenant","useEffect","_userloggedValues$inf","userloggedValues","SessionStorage","get","teantsArray","filteredArray","info","roles","forEach","role","push","tenantId","unique","filter","item","i","ar","indexOf","uniCode","_stringReplaceAll","label","concat","toUpperCase","value","select","style","mobileView","color","CardText","Dropdown","t","option","selected","find","cityValue","optionKey","city","_Digit$SessionStorage","_window$location","_window","loggedInData","filteredRoles","set","UserService","setUser","window","location","href","contextPath","_location$state","_window2","redirectPath","state","from","reload","error","console","warn","freeze","customSelector","_languages$find","isDropdown","data","storeData","isLoading","Hooks","useStore","getInitData","languages","stateInfo","useTranslation","selectedLanguage","StoreData","getCurrentLanguage","setselected","handleChangeLanguage","language","LocalizationService","changeLanguage","code","_jsxs","React","marginBottom","map","index","Button","onClick","variation","props","useLocation","config","imgUrl","infoHeader","infoMessage","buttonInfo","action","globalPath","Background","Card","Header","showTenant","CardHeader","isSuffix","e","preventDefault","onSelect","onCancel","onDismiss","PopupStyles","isDisabled","hideSubmit","footer","type","size","formId","footerWithoutSubmit","PopUp","heading","footerChildren","sortFooterButtons","onClose","onOverlayClick","equalWidthButtons","DummyLoaderScreen","currentStep","setCurrentStep","tenant","steps","stepInterval","setInterval","prev","clearInterval","navigateTimeout","setTimeout","_window3","roleForLandingPage","getUserRoles","MdmsRes","pathname","RoleLandingUrl","clearTimeout","useRef","buttonDisabled","setButtonDisabled","useCustomMDMS","name","enabled","staleTime","cacheTime","_data$SandBoxLanding","url","_getUserRoles$","some","page","rolesForLandingPage","step","CheckCircle","fill","moduleCode","stateCode","userType","tenants","maxRetries","retryDelay","initialDelay","moduleState","setModuleState","loading","retryCount","initialDelayComplete","retryTimeout","initialTimeout","loadModule","_ref2","Module","ComponentRegistryService","getComponent","_objectSpread","delay","Math","pow","message","apply","loadingText","defaultValue","Loader","variant","loaderText","textAlign","marginTop","Navigate","to","encodeURIComponent","Redircter","getType","path","currentHref","navigationError","replaceError","ErrorBoundary","constructor","super","errorStack","hasError","getDerivedStateFromError","stack","componentDidCatch","errorInfo","setState","render","ErrorComponent","initData","errorData","goToHome","_Digit","_Digit$getType","call","ErrorConfig","maintenance","notfound","ModuleBasedErrorConfig","sandbox","_props$errorData","useQueryParams","ImageComponent","src","alt","_props$errorData2","_props$goToHome","_stateInfo$code","headerSvgSecondaryUrl","globalConfigs","getConfig","logoUrl","borderRight","fontSize","Components","RoleBasedEmployeeHome","_Object$keys","sortedConfigEmployeesSidebar","modules","additionalComponent","useAccessControl","ULBService","getStateId","mdmsOrderData","setMdmsOrderData","_data$HomeScreenOrder","moduleConfigData","isModuleConfigLoading","getLinkByType","moduleData","moduleConfig","moduleName","linkKey","links","displayName","getFilteredLinks","_moduleData$links","isNotConfigureMaster","isNotHowItWorks","howItWorksLink","isNotUserManual","userManualLink","configEmployeeSideBar","actions","parentModule","reduce","acc","kpis","icon","leftIcon","iconRender","iconName","iconFill","CustomSVG","locale","getTransformedLocale","linkUrl","_url","transformURL","navigationURL","queryParamIndex","link","queryParams","substring","Object","keys","sort","a","b","_mdmsOrderData$find","_mdmsOrderData$find2","moduleType","order","_configEmployeeSideBa","sortedLinks","linkA","linkB","_mdmsOrderData$find3","_mdmsOrderData$find4","labelA","labelB","sortCardAndLink","current","_sortedConfigEmployee","_moduleData$links2","configureData","howItWorks","userManual","propsForModuleCard","metrics","centreChildren","open","padding","endChildren","LandingPageCard","buttonSize","_Fragment","LandingPageWrapper","child","FaqComponent","question","isLabelLink","answer","content","lastIndex","isOpen","toggleOpen","ListTag","justifyContent","display","float","ArrowForward","CardSectionSubText","listStyleType","margin","fulllink","baseURL","hostname","description","CardC","title","CardSectionHeader","FAQ","key","faqs","width","faq","_ref3","cardConfig","height","overflowY","flexWrap","id","BreakLine","border","formData","control","formState","_objectWithoutProperties","_excluded","QuickSetup","processLinkData","newData","obj","i18nKey","newObj","reverse","header","dashoardLink","loginLink","_newObj$links","_newObj$links2","hasAccess","iconSelector","PTIcon","WSICon","FSMIcon","MCollectIcon","PGRIcon","TLIcon","OBPSIcon","BillsIcon","CitizenHome","getCitizenMenu","fetchedCitizen","isMobile","browser","parentModules","isApplyLink","toLowerCase","_mdmsDataObj$links","_mdmsDataObj$links2","mdmsDataObj","seenLinks","Set","dedupedLinks","ele","x","y","orderNumber","has","add","borderRadius","Devices","Divider","LinkIcon","handleNavigate","SVG","AddExpense","ListAlt","Boolean","BackLink","history","back","_mdmsDataObj$links3","_mdmsDataObj$links4","handleLinkClick","EmployeeHome","_ref4","Component","AppHome","_ref5","isSuperUserWithMultipleRootTenant","getRoleBasedHomeCard","QuickSetupConfigComponent","decorative","ariaLabel","ariaLabelledby","accessibilityProps","tabIndex","onKeyDown","_window$getConfig","focus","propTypes","PropTypes","isRequired","_userDetails$info2","_Digit$ComponentRegis","_userDetails$info3","_userDetails$info4","_window4","_cityDetails$city","_cityDetails$city2","toggleSidebar","isSidebarOpen","handleLogout","userDetails","CITIZEN","cityDetails","userOptions","handleUserDropdownSelection","logoUrlWhite","showLanguageChange","profilePic","setProfilePic","app","_userDetails$info","getCurrentTenantId","uuid","usersResponse","userSearch","user","_userDetails$photo","thumbs","photo","split","at","_Digit$UserService","_Digit$UserService2","CitizenHomePageTenantId","getCitizenCurrentTenant","unreadCount","unreadNotificationCount","isSuccess","notificationCountLoaded","useNotificationCount","getUser","TopBarComponent","img","updateSidebar","clikOusideFired","onLogout","notificationCount","cityOfCitizenShownBesideLogo","onNotificationIconClick","hideNotificationIconOnSomeUrlsWhenNotLoggedIn","_Digit$UserService3","access_token","urlsToDisableNotificationIcon","ChangeLanguage","loggedin","CustomEmployeeTopBar","TopBarComponentMain","actionFields","ChangeCity","userInfo","showArrow","menuStyles","theme","onHamburgerClick","logoWidth","logoHeight","logo","logoId","statelogo","onImageClick","onLogoClick","showDeafultImg","ulb","ulbGrade","defaultImage","SideBarMenu","closeSidebar","redirectToLoginPage","isEmployee","element","text","LogoutIcon","populators","Profile","stateName","mobileNumber","emailId","IconsObject","CommonPTIcon","propertyIcon","PropertyHouse","CaseIcon","WSIcon","CollectionIcon","BirthIcon","DeathIcon","FirenocIcon","HomeIcon","EditPencilIcon","Phone","_user$info","_menuItems","linkData","islinkDataLoading","isFetched","setisEmployee","showDialog","setShowDialog","handleOnCancel","showProfilePage","menuItems","profileItem","_window5","_window6","_storeData$tenants","_storeData$tenants$fi","_storeData$tenants$","_storeData$tenants$fi2","_storeData$tenants$2","MenuItem","_item$icon","itemComponent","leftIconArray","Item","Link","contactNumber","localeCompare","_linkData$key$","_linkData$key$2","_window7","_linkData$key$3","_linkData$key$4","sidebar","splice","sidebarURL","top","backgroundColor","pointerzevents","flexDirection","zIndex","LogoutDialog","handleOnSubmit","logout","CitizenSideBar","_menuItems2","_menuItems3","_user$info2","_user$info3","_user$info4","userProfile","search","setSearch","fetchUserProfile","_asyncToGenerator","_usersResponse$user2","_usersResponse$user3","userData","currentUser","_userDetails$photo2","handleModuleClick","updatedUrl","_item$displayName","_loop","_keys$i","_configEmployeeSideBa2","_configEmployeeSideBa3","_configEmployeeSideBa5","_configEmployeeSideBa6","getSingleDisplayName","getParentDisplayName","_configEmployeeSideBa4","ob","_ob$displayName","indx","findIndex","home","comp","part","c1","c2","transformedMenuItems","_item$links","transformedSelectedCityData","transformedLanguageData","hamburgerItems","Hamburger","items","profileName","profileNumber","transitionDuration","styles","hideUserManuals","profile","isSearchable","_ref6","parentIndex","_window8","_window9","handleChangeCity","onItemSelect","StaticCitizenSideBar","EmployeeSideBar","extractLeftIcon","Array","isArray","subResult","mergeObjects","obj1","obj2","hasOwnProperty","_item$path","_item$path2","hierarchicalMap","sortDataByOrderNumber","Infinity","transformedData","transformItem","navigationUrl","childKey","iconKey","transformData","objectArray","entries","fromEntries","splitKeyValue","sortedTransformedData","MediaQuery","minWidth","SideNav","hideAccessbilityTools","test","hostUrl","origin","fallbackError","navigateToRespectiveURL","expandedWidth","collapsedWidth","onBottomItemClick","showSidebar","handleSidebar","func","TopBar","SideBar","WrappedComponent","mainSelector","handleFirstTab","main","document","querySelector","setAttribute","outline","removeEventListener","addEventListener","callback","savedCallback","timer","useLoginConfig","getConfigModuleName","useCommonMDMS","_data$moduleName","LoginConfig","retry","_data$MdmsRes$common","useGetFAQsJSON","moduleFaqs","Fragment","BackButton","marginLeft","HeaderComponent","paddingTop","LanguageSelection","texts","useMemo","submitBarLabel","RadioButtonProps","options","optionsKey","additionalWrapperClass","selectedOption","PageBasedInput","onSubmit","RadioButtons","LocationSelection","uiHomePage","initisLoading","redirectURL","cities","useTenants","showError","setShowError","selectCity","redirectBackTo","SearchOnRadioButtons","placeholder","CardLabelError","closeDrawer","removeProfilePic","showToast","uploadedFile","setUploadedFile","file","setFile","setError","_response$data","response","UploadServices","Filestorage","files","_response$data2","fileStoreId","err","position","left","right","bottom","onOverlayBodyClick","alignItems","flex","gap","for","cursor","GalleryIcon","accept","onChange","target","removeimg","RemoveIcon","DEFAULT_TENANT","_Digit$getStateId","defaultValidationConfig","UserProfileValidationConfig","password","_Digit$UserService$ge","_mdmsValidationData$U2","_defaultValidationCon","_errors$userName","_errors$emailAddress","_mdmsValidationData$U3","_defaultValidationCon2","_errors$userName2","_mdmsValidationData$U4","_defaultValidationCon3","_errors$mobileNumber","_errors$emailAddress2","_mdmsValidationData$U5","_defaultValidationCon4","_errors$currentPasswo","_mdmsValidationData$U6","_defaultValidationCon5","_errors$newPassword","_mdmsValidationData$U7","_defaultValidationCon6","_errors$confirmPasswo","stateId","setUserDetails","setName","email","setEmail","gender","setGender","setCity","permanentCity","setMobileNo","profileImg","setProfileImg","openUploadSlide","setOpenUploadSide","changepassword","setChangepassword","currentPassword","setCurrentPassword","newPassword","setNewPassword","confirmPassword","setConfirmPassword","toast","setToast","setLoading","windowWidth","setWindowWidth","innerWidth","errors","setErrors","individualServicePath","mapConfigToRegExp","_config$UserProfileVa","startsWith","lastIndexOf","lastSlashIndex","pattern","slice","flags","RegExp","validationConfig","setValidationConfig","mdmsValidationData","isValidationConfigLoading","commonUiConfig","_mdmsValidationData$U","updatedValidationConfig","getUserInfo","_response$Individual","CustomService","getResponse","useCache","method","userService","params","limit","offset","body","Individual","userUuid","editScreen","setGenderName","closeFileUploadDrawer","setUserName","_validationConfig$nam","userName","setUserEmailAddress","emailAddress","duration","updateProfile","_userDetails$name","_userDetails$name2","_responseInfo","trim","JSON","stringify","responseInfo","trimmedCurrentPassword","trimmedNewPassword","trimmedConfirmPassword","individualPayload","givenName","familyName","otherNames","isDeleted","isSystemUser","isSystemUserActive","status","requestData","existingPassword","username","res","changePassword","changePasswordResponseInfo","_error$Errors","Errors","errorObj","parse","_error$response","menu","Menu","useGenderMDMS","genderDetails","setFileStoreId","thumbnails","getThumbnails","_x","ids","Filefetch","fileStoreIds","o","images","getFileUrl","_x2","_x3","BreadCrumb","crumbs","internalLink","show","boxShadow","background","maxWidth","transform","onClickAddPic","CameraIcon","paddingBottom","LabelFieldPair","CardLabel","TextInput","isMandatory","disable","ErrorMessage","truncateMessage","maxLength","wrapperClassName","showIcon","disabled","borderBottom","MobileNumber","_validationConfig$mob","setUserMobileNumber","required","getOTPBasedLogin","TogleforPassword","paddingLeft","_e$target","_e$target2","_e$target3","fontWeight","Footer","SubmitBar","setactionFieldsToRight","Toast","UploadDrawer","useAnIndividual","IndividualUserProfile","handleResize","updateUser","Home","_window3$includes","_window4$includes","_citizenServicesObj$s","_citizenServicesObj$p","_citizenServicesObj$p3","_citizenServicesObj$p5","_citizenServicesObj$p7","_infoAndUpdatesObj$si","_infoAndUpdatesObj$pr","_infoAndUpdatesObj$pr3","_infoAndUpdatesObj$pr5","_infoAndUpdatesObj$pr7","_whatsNewSectionObj$s2","conditionsToDisableNotificationCountTrigger","EventsData","EventsDataLoading","useEvents","appBannerWebObj","appBannerDesktop","appBannerMobObj","appBannerMobile","citizenServicesObj","citizenServicesCard","infoAndUpdatesObj","informationAndUpdatesCard","whatsAppBannerWebObj","whatsAppBannerDesktop","whatsAppBannerMobObj","whatsAppBannerMobile","whatsNewSectionObj","whatsNewSection","handleClickOnWhatsAppBanner","allCitizenServicesProps","headerLabel","sideOption","_citizenServicesObj$s2","Icon","ComplaintIcon","_citizenServicesObj$p2","_citizenServicesObj$p4","_citizenServicesObj$p6","_citizenServicesObj$p8","allInfoAndUpdatesProps","_infoAndUpdatesObj$si2","_infoAndUpdatesObj$pr2","Calender","_infoAndUpdatesObj$pr4","DocumentIcon","_infoAndUpdatesObj$pr6","_infoAndUpdatesObj$pr8","bannerUrl","CardBasedOptions","_whatsNewSectionObj$s","WhatsNewCard","videoPlay","setVideoPlay","vidSrc","setVidSrc","ViDSvg","viewBox","xmlns","d","useGetHowItWorksJSON","mdmsConfigResult","screenHeader","CustomButton","videosJson","videos","onClickVideo","vidObj","pdfHeader","pdfDesc","PDFSvg","DownloadImgIcon","CloseSvg","controls","autoPlay","otp","onOtpChange","onResend","canSubmit","timeLeft","setTimeLeft","useInterval","handleResendOtp","OTPInput","FormStep","loginSteps","cardText","nextText","inputs","validation","minlength","maxlength","onMobileChange","onEmailChange","isEmail","setIsEmail","core_mobile_config","EMAIL_REGEX","rawPattern","mobileNumberPattern","isEmailValid","isMobileValid","linkLabel","InputCard","submit","onNext","handleSubmit","isDisable","FieldV1","withoutLabel","charCount","prefix","mobilePrefix","mobileNumberLength","fieldStyle","LinkLabel","userSelect","textDecoration","switchMode","TYPE_LOGIN","DEFAULT_REDIRECT_URL","getFromLocation","searchParams","isUserRegistered","isOtpValid","setIsOtpValid","setParams","errorTO","setErrorTO","canSubmitName","setCanSubmitName","canSubmitOtp","setCanSubmitOtp","canSubmitNo","setCanSubmitNo","errorTimeout","_location$state2","setCitizenDetail","userObject","token","_JSON$parse","sessionStorage","getItem","localStorage","setItem","stepItems","selectMobileNumber","sendOtp","selectName","registerURL","IndividualRegister","requestType","auth","Error","selectOtp","_yield$Digit$UserServ","authenticate","ResponseInfo","UserRequest","tokens","resendOtp","AppContainer","Routes","Route","SelectMobileNumber","event","showRegisterLink","SelectOtp","SelectName","TYPE_REGISTER","_location$state7","IndividualLogin","_location$state4","_location$state3","_location$state5","_location$state6","roleInfo","userRole","otpReference","_yield$Digit$UserServ2","registerUser","_excluded2","isCitizenDesktop","isCheckBoxInput","isDateObject","Date","isNullOrUndefined","isObjectType","isObject","getEventValue","checked","isNameInFieldArray","names","getNodeParentName","isWeb","HTMLElement","cloneObject","copy","Blob","FileList","tempObject","prototypeCopy","prototype","isPlainObject","compact","isUndefined","val","object","result","isBoolean","isKey","stringToPath","input","tempPath","newValue","objValue","isNaN","EVENTS","VALIDATION_MODE","INPUT_VALIDATION_RULES","HookFormContext","useFormContext","getProxyFormState","localProxyFormState","isRoot","defaultValues","_defaultValues","defineProperty","_key","_proxyFormState","isEmptyObject","shouldRenderFormState","formStateData","updateFormState","convertToArrayPayload","shouldSubscribeByName","signalName","exact","currentName","useSubscribe","_props","subscription","subject","subscribe","next","unsubscribe","isString","generateWatchOutput","_names","formValues","isGlobal","watch","fieldName","watchAll","Controller","methods","shouldUnregister","isArrayField","array","_name","_subjects","values","updateValue","_formValues","_getWatch","_removeUnmounted","useWatch","_formState","_mounted","_localProxyFormState","isDirty","dirtyFields","touchedFields","validatingFields","isValidating","isValid","_updateFormState","_updateValid","useFormState","_registerProps","register","rules","_shouldUnregisterField","_options","updateMounted","field","_fields","_f","mount","_state","unregister","_updateDisabledField","fields","onBlur","ref","elm","setCustomValidity","reportValidity","fieldState","defineProperties","invalid","enumerable","isTouched","useController","appendErrors","validateAllFieldCriteria","types","getValidationModes","mode","isOnSubmit","isOnBlur","isOnChange","isOnAll","isOnTouch","isWatched","isBlurEvent","watchName","iterateFieldsByAction","fieldsNames","abortEarly","currentField","refs","updateFieldArrayRootError","fieldArrayErrors","isFileInput","isFunction","isHTMLElement","owner","ownerDocument","defaultView","isMessage","isRadioInput","isRegex","defaultResult","validResult","getCheckboxValue","attributes","defaultReturn","getRadioValue","previous","getValidateError","every","getValueAndMessage","validationData","validateField","async","shouldUseNativeValidation","isFieldArray","minLength","min","max","validate","valueAsNumber","inputValue","inputRef","isRadio","isCheckBox","isRadioOrCheckbox","isEmpty","appendErrorsCurry","bind","getMinMaxMessage","exceedMax","maxLengthMessage","minLengthMessage","maxType","minType","exceedMin","maxOutput","minOutput","valueDate","valueAsDate","convertTimeToDate","time","toDateString","isTime","isWeek","valueNumber","maxLengthOutput","minLengthOutput","patternValue","match","validateError","validationResult","unset","paths","childObject","updatePath","baseGet","isEmptyArray","createSubject","_observers","observers","observer","isPrimitive","deepEqual","object1","object2","getTime","keys1","keys2","val1","val2","isMultipleSelect","live","isConnected","objectHasFunction","markFieldsDirty","isParentNodeArray","getDirtyFieldsFromDefaultValues","dirtyFieldsFromValues","getDirtyFields","getFieldValueAs","setValueAs","NaN","getFieldValue","selectedOptions","getRuleValue","rule","source","schemaErrorLookup","join","foundError","pop","defaultOptions","reValidateMode","shouldFocusError","createFormControl","delayErrorCallback","submitCount","isSubmitted","isSubmitting","isSubmitSuccessful","unMount","validationModeBeforeSubmit","validationModeAfterSubmit","shouldDisplayAllAssociatedErrors","criteriaMode","shouldUpdateValid","resolver","_executeSchema","executeBuiltInValidation","_updateIsValidating","updateValidAndValue","shouldSkipSetValueAs","defaultChecked","setFieldValue","updateTouchAndDirty","fieldValue","shouldDirty","shouldRender","shouldUpdateField","isPreviousDirty","output","disabledField","_getDirty","isCurrentFieldPristine","isPreviousFieldTouched","context","getResolverOptions","shouldOnlyCheckValid","valid","isFieldArrayRoot","fieldError","getValues","fieldReference","optionRef","checkboxRef","radioRef","shouldTouch","shouldValidate","trigger","setValues","fieldKey","setValue","cloneValue","isFieldValueUpdated","_updateIsFieldValueUpdated","Number","shouldSkipValidation","deps","skipValidation","watched","previousErrorLookupResult","errorLookupResult","previousFieldError","delayError","updateErrors","wait","updatedFormState","shouldRenderByError","_focusInput","fieldNames","executeSchemaAndUpdateState","Promise","all","shouldFocus","getFieldState","currentError","currentRef","restOfErrorTree","delete","keepValue","keepError","keepDirty","keepTouched","keepIsValidating","keepDefaultValue","keepIsValid","disabledIsDefined","progressive","fieldRef","querySelectorAll","radioOrCheckbox","_focusError","onValid","onInvalid","onValidError","persist","fieldValues","_reset","keepStateOptions","updatedValues","cloneUpdatedValues","isEmptyResetValues","keepDefaultValues","keepValues","keepDirtyValues","form","closest","reset","keepSubmitCount","keepIsSubmitted","keepErrors","keepIsSubmitSuccessful","_updateFieldArray","args","shouldSetValues","shouldUpdateFieldsAndState","argA","argB","unsetEmptyArray","_getFieldArray","_resetDefaultValues","then","resetOptions","_disableForm","_setErrors","payload","resetField","clearErrors","inputName","setFocus","shouldSelect","previousPage","SearchField","DatePicker","date","_data$roles","tabledata","settabledata","DownloadBtn","DownloadBtnCommon","returnObject","convertEpochToDate","timestamp","convertEpochToTimeInHours","dataView","dataViewedBy","dateEpoch","dateFromApi","month","getMonth","day","getDate","year","getFullYear","hour","getHours","getMinutes","period","currentlyActiveMobileModal","setActiveMobileModal","useReducer","closeMobilePopupModal","MobilePopUpCloseButton","searchFormFieldsComponentProps","CurrentMobileModalComponent","useCallback","SearchForm","SearchFormFields","MobileComponentDirectory","propsMobileInboxCards","_data$roles$slice","tabData","Download","Excel","handleExcelDownload","SearchAction","handleActionClick","DetailsCard","count","initialValues","sortOrder","_formControl","_values","useForm","onSort","desc","MobileSearchApplication","GetCell","columns","disableSortBy","accessor","row","_row$roles$slice","marginRight","SearchFields","Table","totalRecords","getCellProps","cellInfo","column","onPageSizeChange","currentPage","onNextPage","onPrevPage","manualPagination","pageSizeLimit","disableSort","sortParams","_data$ElasticSearchDa","_data$ElasticSearchDa2","setPayload","convertDateToEpoch","dateString","dayStartOrEnd","parts","DateObj","UTC","setMinutes","getTimezoneOffset","setHours","setSeconds","getSeconds","storedPayload","k","useAudit","filters","AuditSearchApplication","_data","sortBy","fromDate","toDate","ElasticSearchData","_mdmsData$MdmsRes$com","_mdmsConfigResult$hel","_mdmsConfigResult$hel2","_mdmsConfigResult$hel3","_mdmsConfigResult$hel4","_mdmsConfigResult$hel5","_mdmsConfigResult$hel6","_staticData","_staticData2","_staticData3","_staticData4","_staticData5","_staticContent","_staticContent2","_staticContent3","isMdmsLoading","mdmsData","useStaticData","isSearchLoading","dynamicData","useDynamicData","IconComponent","StaticData","StaticDataIconComponentOne","TimerIcon","StaticDataIconComponentTwo","RupeeSymbol","staticContent","staticCommonContent","validity","staticData","staticDataOne","staticDataOneHeader","staticDataTwo","staticDataTwoHeader","payViaWhatsApp","handleClickOnWhatsApp","WhatsappIconGreen","helpline","HelpLineIcon","contactOne","contactTwo","serviceCenter","ServiceCenterIcon","viewMapLocation","dynamicDataOne","dynamicDataTwo","ValidityTimeIcon","isLoggedIn","handleLogoutCancel","buildItems","isDigitStudio","orderCounter","_moduleEntries$","moduleEntries","entry","_entry$sidebar","endsWith","rawIcon","seen","navigateToUrl","enableSearch","handleLogoutSubmit","lazyWithFallback","FAQsSection","UserProfile","HowItWorks","Login","Search","StaticDynamicCard","sidebarHiddenFor","getTenants","codes","_window7$getConfig","DSO","appTenants","sourceUrl","isLinkDataFetched","_data$ACCESSCONTROLA","el","_a$b$parentModule","classname","useRouteSubscription","hideSidebar","appRoutes","DynamicModuleLoader","ModuleLevelLinkHomePages","bannerImage","CitizenHomeCard","Info","CitizenInfoLabel","isInfo","TopBarSideBar","CitizenSideNav","_window8$getConfig","ChangePasswordComponent","_window3$getConfig","propsConfig","mobile_number","setOtp","setShowToast","getUserType","setType","closeToast","onResendOTP","_err$response","error_description","onChangePassword","navigateToLogin","_err$response2","FormComposer","noBoxShadow","inline","submitInForm","submitButtonLabel","cardStyle","CardSubHeader","_window4$getConfig","loginParams","defaultProps","EmployeeChangePassword","loginConfig","ForgotPassword","_window6$getConfig","_mdmsData$config$","bannerImages","onForgotPassword","alert","userId","Carousel","FormComposerV2","secondaryActionLabel","secondaryButtonLabel","onSecondayActionClick","headingStyle","descriptionStyles","secondaryActionId","_window5$getConfig","ForgotPasswordComponent","defaultLanguage","_Digit$getDefaultLang","getDefaultLanguage","_defaultLanguages","_window2$getConfig","defaultLanguages","hasMultipleLanguages","now","_loginConfig$","currentSlide","setCurrentSlide","carouselItems","nextSlide","interval","backgroundImage","image","prevSlide","_","goToSlide","mdmsConfig","masterName","localePrefix","component","customProps","LoginOtpConfig","_Digit2","_config$","_config$2","loginOTPBased","isStoreLoading","setDisable","DynamicLoginComponent","_user$info5","_user$info6","_user$info7","_user$info8","setEmployeeDetail","decodeURIComponent","onLogin","_requestData$city","reqCreate","enable","mutation","useCustomAPIMutationHook","onOtpLogin","_Digit3","_onSuccess","inputEmail","mutate","onError","variables","_error$response2","onSuccess","_Digit4","defaultTenant","_field$populators","_field$populators2","onFormValueChange","hasEmptyFields","renderLoginForm","_propsConfig$texts","_propsConfig$texts2","_propsConfig$texts3","extraClasses","cardClassName","wrapperClass","cardSubHeaderClassName","buttonClassName","renderFooter","footerClassName","_window9$getConfig","_window0","_window0$getConfig","withAutoFocusMain","setloginConfig","defaultLoginConfig","loginOtpConfig","setloginOtpConfig","defaultLoginOtpConfig","loginType","store","Services","modulePrefix","loginOtpParams","LoginComponent","isLogin","ifSuperUserExists","setIfSuperUserExist","OtpConfig","redirectPathOtpLogin","getRedirectPathOtpLogin","locationPathname","_MdmsRes$","isSuperUser","_formData$OtpComponen","OtpComponent","formValue","_otpValue$otp","otpValue","SignUpConfig","accountName","_data$Tenants$","_data$Tenants$2","Tenants","setSignUpConfig","defaultSignUpConfig","_data$commonUiConfig","SignUpParams","ViewUrl","gcTime","TickMark","nonEditable","host","navigator","clipboard","writeText","onButtonClick","ChangePassword","default","_codes$map","AppModules","EmployeeLogin","Otp","userScreensExempted","_location$pathname","_initData$modules","noTopBar","isUserProfile","_location$pathname2","mediaQuery","query","captures","RE_MEDIA_QUERY","modifier","expressions","parsed","inverse","expression","RE_MQ_EXPRESSION","feature","RE_MQ_FEATURE","parseQuery","typeMatch","expressionsMatch","expValue","toPx","toDpi","toDecimal","parseInt","RE_LENGTH_UNIT","RE_RESOLUTION_UNIT","ratio","numbers","decimal","resolution","parseFloat","String","staticMatch","dynamicMatch","matchMedia","Mql","forceStatic","mql","self","update","evt","matches","media","addListener","listener","removeListener","dispose","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","componentName","propFullName","secret","getShim","ReactPropTypes","bigint","bool","number","string","symbol","any","arrayOf","elementType","instanceOf","node","objectOf","oneOf","oneOfType","shape","checkPropTypes","uppercasePattern","msPattern","cache","toHyphenLower","hName","stringOrNumber","grid","aural","braille","handheld","print","projection","screen","tty","tv","embossed","matchers","orientation","scan","aspectRatio","deviceAspectRatio","deviceHeight","deviceWidth","colorIndex","monochrome","featureMatchers","features","minAspectRatio","maxAspectRatio","minDeviceAspectRatio","maxDeviceAspectRatio","minHeight","maxHeight","minDeviceHeight","maxDeviceHeight","minDeviceWidth","maxDeviceWidth","minColor","maxColor","minColorIndex","maxColorIndex","minMonochrome","maxMonochrome","minResolution","maxResolution","mq","Context","createContext","hyphenateKeys","useIsUpdate","useQuery","settings","getQuery","v","realKey","keyVal","toQuery","makeQuery","setQuery","newQuery","useMediaQuery","device","deviceSettings","deviceFromProps","deviceFromContext","useContext","getDevice","setDevice","newDevice","objA","objB","aKeys","bKeys","len","shallowEqualObjects","useDevice","getMatchMedia","setMq","isUpdate","newMq","useMatchMedia","setMatches","updateMatches","ev","useMatches","REACT_ELEMENT_TYPE","Symbol","REACT_FRAGMENT_TYPE","jsxProd","maybeKey","$$typeof","jsx","jsxs","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","n","getter","__esModule","definition","r","toStringTag","CitizenApp","EmployeeApp","SignUp","CustomErrorComponent","DigitApp","defaultLanding","allowedUserTypes","getCurrentUlb","commonProps","DigitAppWrapper","_window1","_window10","_window11","_location","middleware","thunk","enhancer","composeEnhancers","compose","applyMiddleware","defaultStore","moduleReducers","createStore","getRootReducer","combineReducers","common","defaultData","isChecked","setIsChecked","showPopUp","setShowPopUp","privacy","PrivacyPolicy","policy","_props$props","CheckBox","footerclassName","sortFooterChildren","contents","getElementById","scrollIntoView","behavior","isSpaceRequired","descriptions","subIndex","isBold","subDescriptions","subDesc","subSubIndex","DigitUIWrapper","_initData$stateInfo","_initData$stateInfo2","_initData$stateInfo3","enabledModules","useInitStore","getStore","getI18n","setComponent","PrivacyComponent","Provider","Router","BodyContainer","DigitUI","registry","initialPrivacy","getPrivacyObject","setPrivacy","queryClient","QueryClient","queries","attemptIndex","ComponentProvider","Contexts","PrivacyProvider","resetPrivacy","setPrivacyObject","getPrivacy","privacyObj","updatePrivacyDescoped","getAllPrivacyObject","updatePrivacy","privacyContextValue","QueryClientProvider","client","componentsToRegister","_props$props4","_props$props2","_props$props3","ForgotOrganizationTooltip","showTip","setShowTip","wrapperRef","handleClickOutside","contains","whiteSpace","wordBreak","LoginSignupSelector","isSignupPage","onButtonClickLogin","onButtonClickSignUP","initCoreComponents"],"sourceRoot":""}