@egovernments/digit-ui-module-core 2.0.0-dev-impl-06 → 2.0.0-dev-impl-07
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 +1 -1
- package/dist/main.js.br +0 -0
- package/dist/main.js.map +1 -1
- package/package.json +1 -1
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/javascript/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/components/Dialog/ForgotPasswordDialog.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/./src/utils/idpToken.js","webpack://@egovernments/digit-ui-module-core/./src/utils/ssoTenants.js","webpack://@egovernments/digit-ui-module-core/./src/utils/tenantLocale.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/css-mediaquery/index.js","webpack://@egovernments/digit-ui-module-core/../node_modules/matchmediaquery/index.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/javascript/node_modules/react-responsive/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/external umd {\"commonjs\":\"react/jsx-runtime\",\"commonjs2\":\"react/jsx-runtime\"}","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/concatenation wrap","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/components/EmployeeSSOLoginOptions.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(\"@egovernments/digit-ui-react-components\"), require(\"@egovernments/digit-ui-svg-components\"), require(\"@tanstack/react-query\"), require(\"React\"), require(\"react-i18next\"), require(\"react-redux\"), require(\"react-router-dom\"), require(\"redux\"), require(\"redux-thunk\"), require(\"react/jsx-runtime\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"@egovernments/digit-ui-components\", \"@egovernments/digit-ui-react-components\", \"@egovernments/digit-ui-svg-components\", \"@tanstack/react-query\", \"React\", \"react-i18next\", \"react-redux\", \"react-router-dom\", \"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(\"@egovernments/digit-ui-react-components\"), require(\"@egovernments/digit-ui-svg-components\"), require(\"@tanstack/react-query\"), require(\"React\"), require(\"react-i18next\"), require(\"react-redux\"), require(\"react-router-dom\"), require(\"redux\"), require(\"redux-thunk\"), require(\"react/jsx-runtime\"));\n\telse\n\t\troot[\"@egovernments/digit-ui-module-core\"] = factory(root[\"@egovernments/digit-ui-components\"], root[\"@egovernments/digit-ui-react-components\"], root[\"@egovernments/digit-ui-svg-components\"], root[\"@tanstack/react-query\"], root[\"React\"], root[\"react-i18next\"], root[\"react-redux\"], root[\"react-router-dom\"], root[\"redux\"], root[\"redux-thunk\"], root[undefined]);\n})(this, (__WEBPACK_EXTERNAL_MODULE__6243__, __WEBPACK_EXTERNAL_MODULE__5053__, __WEBPACK_EXTERNAL_MODULE__338__, __WEBPACK_EXTERNAL_MODULE__4456__, __WEBPACK_EXTERNAL_MODULE__4883__, __WEBPACK_EXTERNAL_MODULE__5953__, __WEBPACK_EXTERNAL_MODULE__2148__, __WEBPACK_EXTERNAL_MODULE__4442__, __WEBPACK_EXTERNAL_MODULE__1954__, __WEBPACK_EXTERNAL_MODULE__2247__, __WEBPACK_EXTERNAL_MODULE__7122__) => {\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, Toast } from \"@egovernments/digit-ui-components\";\nimport React, { useEffect, useState } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport { getIdpToken } from \"../utils/idpToken\";\nimport { getSwitchableTenantIds, switchTenant } from \"../utils/ssoTenants\";\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 const [switchError, setSwitchError] = useState(null);\n\n /* SSO tenant switching, when the session came from an IdP and the subject is mapped to more\n than one deployable tenant. Everything else - citizen sidebars, password logins, single\n tenant users - keeps the original role-filter-and-reload behaviour below.\n The tenant list comes from /user/oauth/tenants (stored at login) rather than from the\n user's roles, because that endpoint is authoritative about what the subject may log in to\n whereas roles only describe the tenant currently exchanged for. */\n const currentTenantId = Digit.SessionStorage.get(\"Employee.tenantId\");\n const ssoTenantIds = getSwitchableTenantIds(currentTenantId);\n const ssoMode = Digit?.UserService?.getType?.() === \"employee\" && Boolean(getIdpToken()) && ssoTenantIds.length > 1;\n\n const handleSwitchTenant = async (city) => {\n if (!city?.value || city.value === currentTenantId) return;\n try {\n /* Navigates on success, so nothing after this runs. */\n await switchTenant(city.value);\n } catch (error) {\n console.error(\"[sso] tenant switch failed\", error);\n setSwitchError(error?.code || \"SSO_TENANT_SWITCH_FAILED\");\n if (error?.code === \"SSO_SESSION_EXPIRED\") {\n /* The ID token is gone or rejected, so there is no way to re-exchange. Let the toast\n be read, then send the user back through login. */\n setTimeout(() => Digit.UserService.logout(), 4000);\n }\n }\n };\n\n const handleChangeCity = (city) => {\n if (ssoMode) return handleSwitchTenant(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 if (ssoMode) {\n setSelectCityData(\n ssoTenantIds.map((tenantId) => ({\n label: `TENANT_TENANTS_${stringReplaceAll(tenantId, \".\", \"_\")?.toUpperCase()}`,\n value: tenantId,\n }))\n );\n return;\n }\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 showArrow={true}\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 {switchError && <Toast type=\"error\" label={prop?.t(switchError)} onClose={() => setSwitchError(null)} />}\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\";\nimport { rememberChosenLanguage } from \"../utils/tenantLocale\";\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 /* A deliberate choice: remember it for this deployment, and leave a pending marker so\n it carries into whichever tenant the user opens next. */\n rememberChosenLanguage(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 showArrow={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=\"loginScreen 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\n// Visually hidden but exposed to assistive technology (same recipe as the common .sr-only utility)\nconst srOnlyStyle = {\n position: \"absolute\",\n width: \"1px\",\n height: \"1px\",\n padding: 0,\n margin: \"-1px\",\n overflow: \"hidden\",\n clip: \"rect(0, 0, 0, 0)\",\n whiteSpace: \"nowrap\",\n border: 0,\n};\n\nconst EmployeeHome = ({ modules, additionalComponent }) => {\n const { t } = useTranslation();\n return (\n <>\n <div className=\"employee-app-container digit-home-employee-app\">\n {/* Every page needs one h1 (axe page-has-heading-one); the landing page has no visible title,\n so expose one to screen readers only */}\n <h1 style={srOnlyStyle}>{t(\"CORE_COMMON_HOME\")}</h1>\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 isDigitStudio = window.location.href.includes(\"digit-studio\");\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 // DIGIT Studio: citizen services are reached from the home/landing tiles —\n // module links are dropped from the sidebar (web parity: CitizenSideNav).\n if (!isDigitStudio) {\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 }\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 // DIGIT Studio: no \"Modules\" group — remaining entries (e.g. Login) surface\n // as top-level items instead.\n ...(isDigitStudio\n ? transformedMenuItems || []\n : [\n {\n label: t(\"Modules\"),\n icon: \"DriveFileMove\",\n children: transformedMenuItems,\n },\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\";\nimport { clearIdpToken } from \"../../utils/idpToken\";\nimport { restoreLanguagePreferences, snapshotLanguagePreferences } from \"../../utils/tenantLocale\";\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\n const clearSSOLogoutMarkers = () => {\n localStorage.removeItem(\"sso-provider\");\n localStorage.removeItem(\"sso-client-id\");\n localStorage.removeItem(\"sso-tenant-id\");\n localStorage.removeItem(\"sso-authority\");\n localStorage.removeItem(\"sso-logout-url\");\n localStorage.removeItem(\"sso-logout-redirect-param\");\n };\n\n /* Deployment the user logged in through, recorded at login. Must be read before\n UserService.logout(), which clears all of localStorage. */\n const getLoginSource = () => localStorage.getItem(\"login.source\") || window?.contextPath || \"\";\n\n /* Straight to login, not the language picker: the remembered language is preserved across\n logout, so there is nothing to ask. Same target as the password path below. */\n const getSSOPostLogoutRedirectUri = (source) => `${window.location.origin}/${source}/employee/user/login`;\n\n const handleSSOLogout = async (source, preservedLanguages) => {\n const provider = localStorage.getItem(\"sso-provider\");\n const normalizedProvider = provider?.toUpperCase();\n const logoutUrlFromConfig = localStorage.getItem(\"sso-logout-url\");\n const redirectParamName = localStorage.getItem(\"sso-logout-redirect-param\") || \"post_logout_redirect_uri\";\n\n // Perform provider-specific cleanup before logout\n if (normalizedProvider === \"GOOGLE\") {\n const token = localStorage.getItem(\"google_access_token\");\n\n try {\n if (window.google?.accounts?.id) {\n window.google.accounts.id.disableAutoSelect();\n }\n\n if (token) {\n await fetch(`https://oauth2.googleapis.com/revoke?token=${encodeURIComponent(token)}`, {\n method: \"POST\",\n headers: {\n \"Content-type\": \"application/x-www-form-urlencoded\",\n },\n });\n localStorage.removeItem(\"google_access_token\");\n }\n } catch (error) {\n console.error(\"Provider cleanup error\", error);\n }\n }\n\n // Generic SSO logout handler\n if (logoutUrlFromConfig) {\n const postLogoutRedirectUri = getSSOPostLogoutRedirectUri(source);\n clearSSOLogoutMarkers();\n\n try {\n await Digit.UserService.logout();\n } finally {\n restoreLanguagePreferences(preservedLanguages);\n /* Only now that /user/_logout has been sent. The browser attaches this cookie\n automatically, so dropping it any earlier makes logout the one request in the\n session without it - which the gateway rejects with a 401. And it has to happen\n before the IdP redirect below, because that navigation abandons the page. */\n clearIdpToken();\n try {\n const url = new URL(logoutUrlFromConfig);\n url.searchParams.set(redirectParamName, postLogoutRedirectUri);\n window.location.href = url.toString();\n } catch (error) {\n window.location.href = `${logoutUrlFromConfig}?${redirectParamName}=${encodeURIComponent(postLogoutRedirectUri)}`;\n }\n }\n\n return true;\n }\n\n return false;\n };\n\n const handleOnSubmit = async () => {\n const source = getLoginSource();\n /* logout() wipes all of localStorage, which would take the remembered languages with it.\n Snapshot now, put them back once the wipe has happened. */\n const preservedLanguages = snapshotLanguagePreferences();\n /* Note: the IdP cookie is deliberately NOT cleared here. logout() does not touch\n cookies, so it has to be dropped explicitly - but only once /user/_logout has gone\n out, since the browser sends it on every request and its absence is a 401. Both\n branches below do that at the right moment. */\n const handledBySSO = await handleSSOLogout(source, preservedLanguages);\n if (!handledBySSO) {\n await Digit.UserService.logout();\n restoreLanguagePreferences(preservedLanguages);\n clearIdpToken();\n /* UserService.logout() redirects to the CURRENT contextPath. Send the user back to\n the deployment they logged in through instead - same override the SSO branch above\n already relies on. */\n window.location.replace(`/${source}/employee/user/login`);\n }\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 = (eventOrValue) => {\n // The TextInput eye-toggle calls onChange with the raw value prop instead of an event\n const value = typeof eventOrValue === \"string\" ? eventOrValue : eventOrValue?.target?.value ?? \"\";\n setCurrentPassword(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 = (eventOrValue) => {\n const value = typeof eventOrValue === \"string\" ? eventOrValue : eventOrValue?.target?.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 = (eventOrValue) => {\n const value = typeof eventOrValue === \"string\" ? eventOrValue : eventOrValue?.target?.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 if (responseInfo && responseInfo.status === \"successful\") {\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 console.error(\"Change password failed:\", error);\n throw JSON.stringify({\n type: \"error\",\n message:\n error?.Errors?.[0]?.description ||\n error?.response?.data?.Errors?.[0]?.description ||\n \"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 === \"successful\") {\n showToast(\"success\", t(\"CORE_COMMON_PROFILE_UPDATE_SUCCESS\"), 5000);\n }\n } catch (error) {\n console.error(\"Profile update failed:\", error);\n let errorObj;\n try {\n errorObj = JSON.parse(error);\n } catch (e) {\n errorObj = {\n type: \"error\",\n message:\n error?.response?.data?.Errors?.[0]?.description ||\n error?.Errors?.[0]?.description ||\n \"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: \"var(--digitv2-lightTheme-primary, #008080)\",\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 value={currentPassword}\n onChange={setUserCurrentPassword}\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 value={newPassword}\n onChange={setUserNewPassword}\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 value={confirmPassword}\n onChange={setUserConfirmPassword}\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: \"var(--digitv2-lightTheme-primary, #008080)\",\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 = (eventOrValue) => {\n // The TextInput eye-toggle calls onChange with the raw value prop instead of an event\n const value = typeof eventOrValue === \"string\" ? eventOrValue : eventOrValue?.target?.value ?? \"\";\n setCurrentPassword(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 = (eventOrValue) => {\n const value = typeof eventOrValue === \"string\" ? eventOrValue : eventOrValue?.target?.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 = (eventOrValue) => {\n const value = typeof eventOrValue === \"string\" ? eventOrValue : eventOrValue?.target?.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 console.error(\"Change password failed:\", error);\n throw JSON.stringify({\n type: \"error\",\n message:\n error?.Errors?.[0]?.description ||\n error?.response?.data?.Errors?.[0]?.description ||\n \"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 console.error(\"Profile update failed:\", error);\n let errorObj;\n try {\n errorObj = JSON.parse(error);\n } catch (e) {\n errorObj = {\n type: \"error\",\n message:\n error?.response?.data?.Errors?.[0]?.description ||\n error?.Errors?.[0]?.description ||\n \"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 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: \"var(--digitv2-lightTheme-primary, #008484)\",\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 value={currentPassword}\n onChange={setUserCurrentPassword}\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 value={newPassword}\n onChange={setUserNewPassword}\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 value={confirmPassword}\n onChange={setUserConfirmPassword}\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: \"var(--digitv2-lightTheme-primary, #008080)\",\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\n className=\"card-text-button resend-otp\"\n role=\"button\"\n tabIndex={0}\n onClick={handleResendOtp}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n handleResendOtp();\n }\n }}\n >\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\n className=\"card-text-button\"\n role=\"button\"\n tabIndex={0}\n onClick={handleResendOtp}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n handleResendOtp();\n }\n }}\n >\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 // Tenant + language switchers — parity with the mobile hamburger (CitizenSideBar).\n const { data: storeData } = Digit.Hooks.useStore.getInitData();\n const { languages, stateInfo } = storeData || {};\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 // Same behaviour as the mobile hamburger's city switch: narrow the logged-in\n // user's roles/tenant to the picked city and reload.\n const handleChangeCity = (city) => {\n const loggedInData = Digit.SessionStorage.get(\"citizen.userRequestObject\");\n const filteredRoles = loggedInData?.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 try {\n window.location.reload();\n } catch (error) {\n console.warn(\"Failed to reload page:\", error);\n }\n };\n\n const handleChangeLanguage = (language) => {\n Digit.LocalizationService.changeLanguage(language.value, stateInfo?.code);\n };\n\n const onItemSelect = ({ item }) => {\n if (item?.type === \"custom\") {\n if (item.key === \"city\") handleChangeCity(item);\n else if (item.key === \"language\") handleChangeLanguage(item);\n return;\n }\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 // DIGIT Studio only: city + language switchers (parity with the mobile\n // hamburger), since Studio drops the module-links section below. Stock\n // DIGIT keeps its original sidebar contents unchanged.\n if (isDigitStudio) {\n // Options come from the logged-in user's role tenants; without options\n // (logged out) the item still shows the current city, like mobile.\n const cityCodes = [\n ...new Set(\n (Digit.SessionStorage.get(\"citizen.userRequestObject\")?.info?.roles || [])\n .map((role) => role.tenantId)\n .filter(Boolean)\n ),\n ];\n const cityChildren = cityCodes.map((code) => ({\n label: t(`TENANT_TENANTS_${code.replace(/\\./g, \"_\").toUpperCase()}`),\n value: code,\n type: \"custom\",\n key: \"city\",\n icon: { icon: \"LocationCity\", width: \"1.5rem\", height: \"1.5rem\" },\n }));\n const currentCityLabel = isMultiRootTenant\n ? t(`TENANT_TENANTS_${tenantId}`)\n : t(`TENANT_TENANTS_${(Digit.ULBService.getCurrentTenantId() || \"\").replace(/\\./g, \"_\").toUpperCase()}`);\n items.push({\n label: currentCityLabel,\n icon: { icon: \"LocationCity\", width: \"1.5rem\", height: \"1.5rem\" },\n children: cityChildren.length > 0 ? cityChildren : undefined,\n orderNumber: orderCounter++,\n });\n\n items.push({\n label: t(\"Language\"),\n icon: { icon: \"Language\", width: \"1.5rem\", height: \"1.5rem\" },\n children:\n languages?.length > 0\n ? languages.map((language) => ({\n ...language,\n type: \"custom\",\n key: \"language\",\n icon: { icon: \"Language\", width: \"1.5rem\", height: \"1.5rem\" },\n }))\n : undefined,\n orderNumber: orderCounter++,\n });\n }\n\n // DIGIT Studio: citizen services are reached from the home/landing tiles —\n // the module links section is dropped from the sidebar entirely (mobile\n // parity: CitizenSideBar's hamburger drops its \"Modules\" group).\n if (!isDigitStudio) {\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 = 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: 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\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 // DIGIT Studio configurable citizen pages — rendered inside the citizen Home\n // shell so they inherit the real DIGIT top bar + footer (routes added below).\n const CitizenLandingPage = Digit.ComponentRegistryService?.getComponent(\"CitizenLandingPage\");\n const ServiceLandingPage = Digit.ComponentRegistryService?.getComponent(\"ServiceLandingPage\");\n const ServiceActionsPage = Digit.ComponentRegistryService?.getComponent(\"ServiceActionsPage\");\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 {/* DIGIT Studio configurable citizen pages */}\n {CitizenLandingPage && <Route path=\"user/citizen-landing\" element={<CitizenLandingPage />} />}\n {ServiceLandingPage && <Route path=\"user/service-landing\" element={<ServiceLandingPage />} />}\n {ServiceActionsPage && <Route path=\"user/service-actions\" element={<ServiceActionsPage />} />}\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 // Forgot-password navigates here with ?USERNAME=...; mobile_number is kept\n // as a fallback for any older links that still use it.\n const { mobile_number: mobileNumber, USERNAME: userName, tenantId } = Digit.Hooks.useQueryParams();\n const userIdentifier = userName || mobileNumber;\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 userName: userIdentifier,\n mobileNumber: userIdentifier,\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 mobileNumber: 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: \"var(--digitv2-lightTheme-primary, #363636)\" }}\n descriptionStyles={{ color: \"#787878\", textAlign: \"center\", fontWeight: \"normal\", fontSize: \"18px\" }}\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: \"var(--digitv2-lightTheme-primary, #363636)\" }}\n descriptionStyles={{ color: \"#787878\", textAlign: \"center\", fontWeight: \"normal\", fontSize: \"18px\" }}\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\";\nimport { loginConfig as defaultLoginConfig } from \"../Login/config\";\nimport { useLoginConfig } from \"../../../hooks/useLoginConfig\";\nimport { rememberChosenLanguage } from \"../../../utils/tenantLocale\";\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 // Same LoginConfig (MDMS override, else local default) the Login screen uses for showTenant.\n const { data: loginMdmsData } = useLoginConfig(Digit.ULBService.getStateId());\n const loginScreenConfig = loginMdmsData?.config?.[0] || defaultLoginConfig?.[0];\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 [isChangingLanguage, setIsChangingLanguage] = useState(false);\n const handleChangeLanguage = async (language) => {\n setselected(language.value);\n /* A deliberate choice - see ChangeLanguage. Written before the fetch so the preference\n survives even if the user navigates away mid-load. */\n rememberChosenLanguage(language.value);\n setIsChangingLanguage(true);\n await Promise.all([\n Digit.LocalizationService.getLocale({ modules: [\"digit-ui\", \"digit-privacy-policy\"], locale: language.value, tenantId: stateInfo.code }),\n Digit.LocalizationService.changeLanguage(language.value, stateInfo.code),\n ]);\n setIsChangingLanguage(false);\n };\n const hasMultipleLanguages = languages?.length > 1;\n\n const handleSubmit = (event) => {\n if (isChangingLanguage) return;\n navigate(`/${window?.contextPath}/employee/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 language-selector\">\n <ImageComponent className=\"bannerLogo\" src={stateInfo?.logoUrl} alt=\"Digit Banner Image\" />\n\n {loginScreenConfig?.showTenant !== false && <p>{t(`TENANT_TENANTS_${stateInfo?.code?.toUpperCase()}`)}</p>}\n </div>\n <div className=\"language-selector-header\">{t(\"CS_COMMON_CHOOSE_LANGUAGE_HEADER\")}</div>\n <div className=\"language-selector\" style={{ justifyContent: \"space-around\", 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} disabled={isChangingLanguage} />\n {isChangingLanguage && <Loader variant={\"OverlayLoader\"} loaderText={\"CORE_LOADING\"} />}\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 <\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 >\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 key: \"employeeSsoLoginOptions\",\n type: \"component\",\n disable: false,\n component: \"EmployeeSSOLoginOptions\",\n populators: {\n name: \"employeeSsoLoginOptions\"\n },\n isMandatory: false,\n withoutLabel: true,\n renderAfterSubmit:true\n },\n ],\n\n // If you just want to show a popup when clicked on forgot password\n // forgotPasswordScreen: {\n // mode: \"popup\",\n // popupFields: {\n // heading: \"CORE_COMMON_FORGOT_PASSWORD_LABEL\",\n // description: \"CORE_FORGOT_PASSWORD_POPUP_DESCRIPTION\",\n // buttonLabel: \"CORE_FORGOT_PASSWORD_POPUP_OK\",\n // },\n // },\n // If you dont want to show tenant infromation before the logo icon in login page\n // showTenant : false\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 { CardText, PopUp, Button } from \"@egovernments/digit-ui-components\";\nimport React from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nconst ForgotPasswordDialog = ({ onDismiss, heading, description, buttonLabel, PopupStyles }) => {\n const { t } = useTranslation();\n\n const children = [\n <div>\n <CardText>{t(description)}</CardText>\n </div>,\n ];\n\n const footer = [\n <Button\n type={\"button\"}\n size={\"large\"}\n variation={\"primary\"}\n label={t(buttonLabel)}\n onClick={onDismiss}\n />,\n ];\n\n return (\n <PopUp\n type=\"default\"\n children={children}\n heading={t(heading)}\n footerChildren={footer}\n sortFooterButtons={true}\n onClose={onDismiss}\n className={\"digit-forgot-password-popup-wrapper\"}\n onOverlayClick={onDismiss}\n equalWidthButtons={true}\n style={PopupStyles}\n ></PopUp>\n );\n};\nexport default ForgotPasswordDialog;\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\";\nimport ForgotPasswordDialog from \"../../../components/Dialog/ForgotPasswordDialog\";\n// import SkipToMainContent from \"../SkipToMainContent/SkipToMainContent\";\nimport withAutoFocusMain from \"../../../hoc/withAutoFocusMain\";\nimport { clearIdpToken, setIdpToken } from \"../../../utils/idpToken\";\nimport { filterDeployable, isSharedLoginDeployment, lookupTenants, sortByTenantId, storeSSOTenants } from \"../../../utils/ssoTenants\";\n\n// Used only if forgotPasswordScreen.mode is \"popup\" but popupFields isn't fully specified.\nconst DEFAULT_FORGOT_PASSWORD_POPUP = {\n heading: \"CORE_COMMON_FORGOT_PASSWORD_LABEL\",\n description: \"CORE_FORGOT_PASSWORD_POPUP_DESCRIPTION\",\n buttonLabel: \"CORE_FORGOT_PASSWORD_POPUP_OK\",\n};\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 {\n data: storeData,\n isLoading: isStoreLoading,\n } = Digit.Hooks.useStore.getInitData();\n const {\n data: ssoMDMSData,\n isLoading: isSSOMDMSLoading,\n } = Digit.Hooks.useSSOConfig(Digit.ULBService.getStateId(), {\n select: (data) => {\n const config =\n data?.MdmsRes?.[\"SSO\"]?.IdentityProviders ||\n data?.[\"SSO\"]?.IdentityProviders ||\n data?.[\"IdentityProviders\"] ||\n [];\n return Array.isArray(config) ? config : [];\n },\n });\n const { stateInfo } = storeData || {};\n const [user, setUser] = useState(null);\n const [showToast, setShowToast] = useState(null);\n const [disable, setDisable] = useState(false);\n const [loginLoader, setLoginLoader] = useState(false);\n const [showForgotPasswordPopup, setShowForgotPasswordPopup] = useState(false);\n const forgotScreenConfig = propsConfig?.forgotPasswordScreen;\n const navigate = useNavigate();\n const DynamicLoginComponent = Digit.ComponentRegistryService?.getComponent(\n \"DynamicLoginComponent\",\n );\n\n /* Generic SSO Callback Handler - runs on mount / when disable/user/stateInfo change */\n useEffect(() => {\n const hashParams = new URLSearchParams(window.location.hash.slice(1));\n const searchParams = new URLSearchParams(window.location.search);\n const idToken = hashParams.get(\"id_token\") || searchParams.get(\"id_token\");\n const accessToken =\n hashParams.get(\"access_token\") || searchParams.get(\"access_token\");\n const code = searchParams.get(\"code\");\n\n const error = searchParams.get(\"error\") || hashParams.get(\"error\");\n const errorDescription =\n searchParams.get(\"error_description\") ||\n hashParams.get(\"error_description\") ||\n searchParams.get(\"errorDescription\") ||\n hashParams.get(\"errorDescription\");\n\n // If we are not on an SSO callback URL, never keep the SSO overlay loader.\n // Important: we intentionally don't set the loader before redirecting to the provider,\n // so browser back (including bfcache restores) won't get stuck with a stale loader.\n // Note: do NOT reset `disable` here — it is also used for form-validation gating and\n // resetting it would fight FormComposerV2's onFormValueChange, causing an infinite loop.\n if (!idToken && !code && !error) {\n if (loginLoader) setLoginLoader(false);\n return;\n }\n\n if (error && !showToast) {\n setShowToast(errorDescription || \"SSO Login Failed!\");\n setTimeout(closeToast, 5000);\n setLoginLoader(false);\n setDisable(false);\n return;\n }\n\n if (!stateInfo?.code) {\n // Tenant/state not ready yet; wait and retry when stateInfo arrives.\n return;\n }\n\n if ((idToken || code) && !user && !disable) {\n if (idToken) {\n /* Keep the IdP token past this exchange: the tenant lookup\n (/user/oauth/tenants) and later tenant switching both re-use it. */\n setIdpToken(idToken);\n handleSSOCallback(idToken, accessToken);\n } else if (code) {\n setDisable(true);\n setLoginLoader(true);\n Digit.UserService.microsoftAuthenticate({ code })\n .then(({ UserRequest: info, ...tokens }) => {\n Digit.SessionStorage.set(\"Employee.tenantId\", info?.tenantId);\n setUser({ info, ...tokens });\n setDisable(false);\n setLoginLoader(false);\n })\n .catch((err) => {\n setShowToast(\n err?.response?.data?.error_description || \"Login Failed!\",\n );\n setTimeout(closeToast, 5000);\n setDisable(false);\n setLoginLoader(false);\n });\n }\n }\n\n }, [user, disable, stateInfo, loginLoader, showToast]);\n\n /* Post-login redirect and user setup */\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 /* Remember which deployment the user logged in through (the shared/common login, or a\n tenant-specific one) so logout can return them there. This has to be captured here:\n after the cross-deployment redirect window.contextPath is the TARGET tenant, not the\n deployment the login actually happened on. */\n localStorage.setItem(\"login.source\", window?.contextPath || \"\");\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 (\n user?.info?.roles &&\n user?.info?.roles?.every((e) => e.code === \"NATADMIN\")\n ) {\n redirectPath = `/${window?.contextPath}/employee/dss/landing/NURT_DASHBOARD`;\n }\n\n /* RAIN-6489 Logic to navigate to National DSS home incase user has only one role [NATADMIN]*/\n if (\n user?.info?.roles &&\n user?.info?.roles?.every((e) => e.code === \"STADMIN\")\n ) {\n redirectPath = `/${window?.contextPath}/employee/dss/landing/home`;\n }\n\n navigate(redirectPath, { replace: true });\n }, [user]);\n\n /* Surface a terminal SSO failure. Clearing the token out of the URL stops the callback\n effect re-firing with the same id_token, and the stored token is dropped because it is\n valid but unusable here. */\n const failSSOLogin = (messageCode) => {\n clearIdpToken();\n setShowToast(messageCode);\n setTimeout(closeToast, 5000);\n try {\n window.history.replaceState({}, document.title, window.location.pathname);\n } catch (e) {\n // no-op\n }\n };\n\n /* Decide which tenantId to exchange against.\n - shared login : auto-select the first mapped tenant\n - tenant deploy : confirm the subject is mapped to THIS tenant\n Returns null when login cannot continue (a toast has already been shown). */\n const resolveTenantForLogin = async (idToken) => {\n const deploymentTenant = Digit.ULBService.getStateId();\n\n let tenants;\n try {\n tenants = await lookupTenants(idToken);\n storeSSOTenants(tenants);\n } catch (error) {\n /* The endpoint is only registered when auth.oidc.enabled=true, so a failure here must\n not block login - fall back to the pre-lookup behaviour of exchanging against this\n deployment's own tenant. */\n console.warn(\"[sso] tenant lookup unavailable, falling back to\", deploymentTenant, error);\n return deploymentTenant;\n }\n\n /* Sort explicitly: response order is not guaranteed, and \"the first tenant\" has to be the\n same one on every login. */\n const sorted = sortByTenantId(tenants);\n\n if (isSharedLoginDeployment()) {\n if (!sorted.length) {\n failSSOLogin(\"SSO_NO_TENANTS_MAPPED\");\n return null;\n }\n /* No keepTenantId: the shared-login tenant is not somewhere we can leave the user. */\n const deployable = filterDeployable(sorted);\n if (!deployable.length) {\n failSSOLogin(\"SSO_NO_DEPLOYABLE_TENANT\");\n return null;\n }\n return deployable[0]?.tenantId;\n }\n\n if (!sorted.some((tenant) => tenant?.tenantId === deploymentTenant)) {\n failSSOLogin(\"SSO_NO_ACCESS_TO_THIS_TENANT\");\n return null;\n }\n return deploymentTenant;\n };\n\n /* Resolve the tenant, then exchange. disable/loader are set here rather than only in\n handleDigitLogin so the callback effect cannot re-enter while the lookup is in flight. */\n const handleSSOCallback = async (idToken, accessToken = null) => {\n setDisable(true);\n setLoginLoader(true);\n\n const tenantId = await resolveTenantForLogin(idToken);\n if (!tenantId) {\n setDisable(false);\n setLoginLoader(false);\n return;\n }\n\n await handleDigitLogin(idToken, accessToken, tenantId);\n };\n\n /* Generic Token Exchange with DIGIT Backend */\n const handleDigitLogin = async (idToken, accessToken = null, tenantId = stateInfo?.code) => {\n setDisable(true);\n setLoginLoader(true);\n try {\n const response = await fetch(\"/user/oauth/token\", {\n method: \"POST\",\n headers: {\n Authorization: `Basic ${\n window?.globalConfigs?.getConfig(\"JWT_TOKEN\") ||\n \"ZWdvdi11c2VyLWNsaWVudDo=\"\n }`,\n \"Content-Type\": \"application/x-www-form-urlencoded\",\n },\n body: new URLSearchParams({\n grant_type: \"jwt_exchange\",\n scope: \"read\",\n userType: \"EMPLOYEE\",\n assertion: idToken,\n ...(accessToken && { access_token: accessToken }),\n tenantId,\n }),\n });\n\n if (!response.ok) {\n const raw = await response.text();\n let parsed;\n try {\n parsed = raw ? JSON.parse(raw) : null;\n } catch (e) {\n parsed = null;\n }\n const message =\n parsed?.error_description ||\n parsed?.errorDescription ||\n parsed?.message ||\n parsed?.error ||\n raw ||\n \"DIGIT Login Failed\";\n throw new Error(message);\n }\n\n const data = await response.json();\n const { UserRequest: info, ...tokens } = data;\n\n Digit.SessionStorage.set(\"Employee.tenantId\", info?.tenantId);\n setUser({ info, ...tokens });\n } catch (error) {\n console.error(\"DIGIT Login Error:\", error);\n setShowToast(error?.message || \"DIGIT Login Failed\");\n setTimeout(closeToast, 5000);\n\n\n // If token exchange fails, force Microsoft to prompt credentials on next SSO click.\n try {\n window.sessionStorage.setItem(\"sso.force.prompt.login\", \"true\");\n } catch (e) {\n // no-op\n }\n\n // Prevent retry loop: clear `id_token`/`code` from URL (stay on same page).\n try {\n window.history.replaceState({}, document.title, window.location.pathname);\n } catch (e) {\n // no-op\n }\n }\n setDisable(false);\n setLoginLoader(false);\n };\n\n const buildOIDCAuthorizeUrl = (uiConfig) => {\n const {\n authorizeUrl,\n clientId,\n scopes = [\"openid\", \"profile\", \"email\"],\n responseType = \"id_token\",\n responseMode = \"fragment\",\n nonceRequired = true,\n redirectPath = \"employee/user/login\",\n resource,\n provider,\n prompt,\n } = uiConfig || {};\n\n if (!authorizeUrl || !clientId) {\n throw new Error(\"Missing authorizeUrl or clientId for OIDC login\");\n }\n\n const nonce = nonceRequired\n ? Math.random().toString(36).substring(2)\n : undefined;\n const redirectUri = `${window.location.origin}/${window?.contextPath}/${redirectPath}`;\n\n const params = new URLSearchParams();\n params.set(\"client_id\", clientId);\n params.set(\"response_type\", responseType);\n params.set(\"redirect_uri\", redirectUri);\n if (nonce) params.set(\"nonce\", nonce);\n if (responseMode) params.set(\"response_mode\", responseMode);\n if (scopes && scopes.length) params.set(\"scope\", scopes.join(\" \"));\n if (resource) params.set(\"resource\", resource);\n\n // Handle prompt parameter with priority:\n // 1. Use configured prompt from SSO config (respects admin configuration)\n // 2. Fall back to forced login only if no prompt is configured AND a previous login failed\n try {\n const forcePromptLogin = window.sessionStorage.getItem(\"sso.force.prompt.login\") === \"true\";\n\n if (prompt) {\n // Respect configured prompt (e.g., \"select_account\", \"consent\")\n params.set(\"prompt\", prompt);\n // Clear the force flag since we're using configured prompt\n if (forcePromptLogin) {\n window.sessionStorage.removeItem(\"sso.force.prompt.login\");\n }\n } else if (forcePromptLogin) {\n // Only force login if no prompt is configured\n params.set(\"prompt\", \"login\");\n window.sessionStorage.removeItem(\"sso.force.prompt.login\");\n }\n } catch (e) {\n // If prompt is configured, still set it even if sessionStorage fails\n if (prompt) {\n params.set(\"prompt\", prompt);\n }\n }\n\n return `${authorizeUrl}?${params.toString()}`;\n };\n\n const onSSOLogin = async (ssoConfig) => {\n // For OIDC-like providers (MICROSOFT, GOOGLE, etc.), use generic OIDC login\n const ui = ssoConfig?.ui || {};\n const hasOidcConfig = Boolean((ui.authorizeUrl || ssoConfig?.authorizeUrl) && ui.clientId);\n\n if (ui.authStrategy === \"OIDC_POPUP\" || ui.provider === \"MICROSOFT\" || hasOidcConfig) {\n return onOIDCLogin(ssoConfig);\n }\n\n // If the config doesn't match any known SSO strategy, don't leave the overlay loader stuck.\n setShowToast(\"SSO configuration is invalid or unsupported\");\n setTimeout(closeToast, 5000);\n };\n\n const onOIDCLogin = async (ssoConfig) => {\n try {\n const ui = { ...(ssoConfig?.ui || {}) };\n // Backward-compatibility for older configs where authorizeUrl/resource\n // might be on the top level instead of inside ui.\n ui.authorizeUrl = ui.authorizeUrl || ssoConfig?.authorizeUrl;\n ui.resource = ui.resource || ssoConfig?.resource;\n // For Microsoft, if resource is not explicitly provided, default it to clientId (v1 behavior).\n if (ui.provider === \"MICROSOFT\" && !ui.resource) {\n ui.resource = ui.clientId;\n }\n // Persist provider + logout-relevant info for later use during logout\n if (ui.provider) {\n localStorage.setItem(\"sso-provider\", ui.provider);\n }\n if (ui.logoutUrl) {\n localStorage.setItem(\"sso-logout-url\", ui.logoutUrl);\n }\n if (ui.logoutRedirectParam) {\n localStorage.setItem(\"sso-logout-redirect-param\", ui.logoutRedirectParam);\n }\n if (ui.tenantId) {\n localStorage.setItem(\"sso-tenant-id\", ui.tenantId);\n }\n if (ui.authority) {\n localStorage.setItem(\"sso-authority\", ui.authority);\n }\n const url = buildOIDCAuthorizeUrl(ui);\n // Simple implementation: redirect for OIDC if no library is present\n // For a better experience, a popup and message bridge should be used\n window.location.href = url;\n } catch (error) {\n console.error(\"OIDC Login Error:\", error);\n setShowToast(error.message || \"OIDC Login Failed\");\n setTimeout(closeToast, 5000);\n setLoginLoader(false);\n }\n };\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 setLoginLoader(true);\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 setLoginLoader(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\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 navigate(`/${window?.contextPath}/employee/user/login/otp`, {\n state: {\n email: inputEmail,\n tenant: Digit?.ULBService?.getStateId(),\n },\n });\n },\n },\n );\n };\n\n const closeToast = () => {\n setShowToast(null);\n };\n\n const onForgotPassword = () => {\n if (forgotScreenConfig?.mode === \"popup\") {\n setShowForgotPasswordPopup(true);\n return;\n }\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(\n `TENANT_TENANTS_${defaultTenant}`,\n ),\n };\n\n /* \"oidc-google\" -> \"Google\", \"MICROSOFT\" -> \"Microsoft\". Used only when the provider has\n no localisation entry, so the button shows a readable name instead of a raw key. */\n const prettifyProviderName = (value = \"\") =>\n String(value)\n .replace(/^(oidc|sso)[-_]/i, \"\")\n .replace(/[-_]+/g, \" \")\n .trim()\n .toLowerCase()\n .replace(/\\b\\w/g, (char) => char.toUpperCase());\n\n /* t() returns the key unchanged when there is no message for it, which would put\n \"SSO_PROVIDER_OIDC-GOOGLE\" on the button. Detect that and use the provider name. */\n const resolveProviderLabel = (sso) => {\n const key = `SSO_PROVIDER_${sso.ui?.name || sso.id}`;\n const translated = t(key);\n if (translated && translated !== key) return translated;\n return prettifyProviderName(sso.ui?.provider || sso.ui?.name || sso.provider || sso.id);\n };\n\n const ssoConfigs = ssoMDMSData?.map((sso) => ({\n ...sso,\n provider: sso.ui?.provider || sso.provider || \"sso\",\n /* Already localised - EmployeeSSOLoginOptions must not translate it again. */\n label: resolveProviderLabel(sso),\n /* The logo URL, deliberately NOT a React element. Button-style `icon` props are\n resolved by NAME against digit-ui-svg-components, so passing an <img> here rendered\n as null and left the button blank. EmployeeSSOLoginOptions renders this itself and\n falls back to `label` when the URL is missing or fails to load. */\n logo: sso.ui?.logo || null,\n onLogin: (ssoConfig) => {\n onSSOLogin(ssoConfig);\n },\n }));\n\n let config = [\n {\n body: propsConfig?.inputs?.map((field) =>\n field?.component === \"EmployeeSSOLoginOptions\"\n ? {\n ...field,\n customProps: {\n ...field.customProps,\n ssoConfigs,\n },\n }\n : field,\n ),\n },\n ];\n\n const { mode } = Digit.Hooks.useQueryParams();\n if (\n mode === \"admin\" &&\n config?.[0]?.body?.[2]?.disable == false &&\n config?.[0]?.body?.[2]?.populators?.defaultValue == undefined\n ) {\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(\n () =>\n Object.fromEntries(\n config[0].body\n .filter(\n (field) =>\n field?.populators?.defaultValue && field?.populators?.name,\n )\n .map((field) => [\n field.populators.name,\n field.populators.defaultValue,\n ]),\n ),\n [],\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 description={propsConfig?.texts?.description}\n className={`${wrapperClass}`}\n cardSubHeaderClassName=\"loginCardSubHeaderClassName\"\n cardClassName={cardClassName}\n buttonClassName=\"buttonClassName\"\n defaultValues={defaultValues}\n className=\"digit-login-screen-form\"\n >\n {stateInfo?.code && propsConfig?.showTenant !== false ? <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 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 {showForgotPasswordPopup && (\n <ForgotPasswordDialog\n heading={forgotScreenConfig?.popupFields?.heading || DEFAULT_FORGOT_PASSWORD_POPUP.heading}\n description={forgotScreenConfig?.popupFields?.description || DEFAULT_FORGOT_PASSWORD_POPUP.description}\n buttonLabel={forgotScreenConfig?.popupFields?.buttonLabel || DEFAULT_FORGOT_PASSWORD_POPUP.buttonLabel}\n onDismiss={() => setShowForgotPasswordPopup(false)}\n />\n )}\n {renderFooter(\"EmployeeLoginFooter\")}\n </div>\n </div>\n ) : (\n <Background>\n {loginLoader && (\n <div\n style={{\n position: \"fixed\",\n top: 0,\n left: 0,\n width: \"100vw\",\n height: \"100vh\",\n background: \"rgba(0,0,0,0.35)\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n zIndex: 9999,\n }}\n >\n <Loader />\n </div>\n )}\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 {showForgotPasswordPopup && (\n <ForgotPasswordDialog\n heading={forgotScreenConfig?.popupFields?.heading || DEFAULT_FORGOT_PASSWORD_POPUP.heading}\n description={forgotScreenConfig?.popupFields?.description || DEFAULT_FORGOT_PASSWORD_POPUP.description}\n buttonLabel={forgotScreenConfig?.popupFields?.buttonLabel || DEFAULT_FORGOT_PASSWORD_POPUP.buttonLabel}\n onDismiss={() => setShowForgotPasswordPopup(false)}\n />\n )}\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 /* See Login/login.js: remember the deployment the login happened on, for logout. */\n localStorage.setItem(\"login.source\", window?.contextPath || \"\");\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 {/* <footer> = contentinfo landmark, so the \"Powered by DIGIT\" strip no longer sits\n outside every landmark (axe region) */}\n <footer 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 </footer>\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\");","/**\n * Storage for the IdP (SSO) ID token.\n *\n * The token arrives in the SSO callback URL fragment and is currently used once, as the\n * `assertion` on /user/oauth/token, then discarded. It has to outlive that exchange so it\n * can be reused for the tenant lookup (/user/oauth/tenants) and, later, to re-exchange a\n * DIGIT token when the user switches tenant.\n *\n * Kept in a cookie at `path=/` deliberately. Every tenant is a separate deployment under\n * its own base path on one shared origin, and the token is written on whichever deployment\n * handled the callback (often the shared login) but read on the tenant deployment the user\n * is redirected into - so it must be readable across all of them.\n *\n * Note this cookie is sent on every same-origin request, including all DIGIT API calls.\n * ID tokens frequently approach the ~4KB per-cookie browser limit, so oversized tokens\n * fall back to sessionStorage rather than being silently dropped.\n *\n * Not HttpOnly - it cannot be, since it is set from JS. Treat it as no more protected than\n * localStorage; if that matters, the backend has to set the cookie instead.\n */\n\nconst COOKIE_NAME = \"x-id-token\"; //sso-id-token\nconst FALLBACK_KEY = \"x-id-token\"; //sso-id-token\n/* Browsers drop cookies above ~4096 bytes, counting name, value and attributes. */\nconst MAX_COOKIE_BYTES = 4000;\n\n/* Read `exp` out of the JWT payload so the cookie can expire with the token itself, and a\n missing cookie can be treated as \"needs re-authentication\". No verification here - that\n is the backend's job on /user/oauth/token. */\nconst readExpiry = (token) => {\n try {\n const payload = token.split(\".\")[1];\n if (!payload) return null;\n const b64 = payload.replace(/-/g, \"+\").replace(/_/g, \"/\");\n const padded = b64 + \"=\".repeat(b64.length % 4 ? 4 - (b64.length % 4) : 0);\n const exp = JSON.parse(atob(padded))?.exp;\n return typeof exp === \"number\" ? exp : null;\n } catch (e) {\n return null;\n }\n};\n\nexport const getIdpToken = () => {\n try {\n const match = document.cookie.match(new RegExp(`(?:^|;\\\\s*)${COOKIE_NAME}=([^;]*)`));\n if (match) return decodeURIComponent(match[1]);\n } catch (e) {\n /* fall through to sessionStorage */\n }\n try {\n return window.sessionStorage.getItem(FALLBACK_KEY);\n } catch (e) {\n return null;\n }\n};\n\nconst storeFallback = (token) => {\n try {\n window.sessionStorage.setItem(FALLBACK_KEY, token);\n } catch (e) {\n console.warn(\"[idp] could not store the ID token anywhere\");\n }\n};\n\nexport const setIdpToken = (token) => {\n if (!token) return;\n\n const exp = readExpiry(token);\n const maxAge = exp ? Math.max(0, exp - Math.floor(Date.now() / 1000)) : null;\n\n const attributes = [\n \"path=/\",\n \"SameSite=Strict\",\n ...(window.location.protocol === \"https:\" ? [\"Secure\"] : []),\n /* No Max-Age when the token carries no exp: a session cookie is the safer default. */\n ...(maxAge ? [`Max-Age=${maxAge}`] : []),\n ];\n const cookie = `${COOKIE_NAME}=${encodeURIComponent(token)}; ${attributes.join(\"; \")}`;\n\n if (cookie.length > MAX_COOKIE_BYTES) {\n console.warn(`[idp] ID token too large for a cookie (${cookie.length}B), using sessionStorage`);\n storeFallback(token);\n return;\n }\n\n try {\n document.cookie = cookie;\n } catch (e) {\n /* handled by the read-back below */\n }\n /* The browser can reject the cookie without throwing, so confirm it landed. */\n if (getIdpToken() !== token) {\n console.warn(\"[idp] cookie was rejected, using sessionStorage\");\n storeFallback(token);\n }\n};\n\nexport const clearIdpToken = () => {\n try {\n /* Path must match the one it was set with, or the delete is a no-op. */\n document.cookie = `${COOKIE_NAME}=; path=/; Max-Age=0; SameSite=Strict`;\n } catch (e) {\n /* ignore */\n }\n try {\n window.sessionStorage.removeItem(FALLBACK_KEY);\n } catch (e) {\n /* ignore */\n }\n};\n","/**\n * SSO tenant discovery and switching.\n *\n * `/user/oauth/tenants` answers \"which tenants is this IdP subject mapped to\", and is posted\n * with the raw ID token BEFORE the token exchange so a tenantId can be chosen for\n * grant_type=jwt_exchange. The resulting list is kept for the session so the tenant switcher\n * does not have to ask again.\n */\n\nimport { getIdpToken } from \"./idpToken\";\n\n/* Digit.SessionStorage prefixes keys with \"Digit.\" */\nconst TENANTS_KEY = \"sso.tenants\";\n\nconst basicAuthHeader = () => `Basic ${window?.globalConfigs?.getConfig(\"JWT_TOKEN\") || \"ZWdvdi11c2VyLWNsaWVudDo=\"}`;\n\n/* Tenant the shared-login mapping is keyed on. The backend falls back to its own\n auth.oidc.shared-login.tenant-id when omitted; we send it explicitly so the value is\n visible and configurable per deployment. */\nexport const getSSOLookupTenantId = () => window?.globalConfigs?.getConfig(\"SSO_LOOKUP_TENANT_ID\") || \"public\";\n\n/* True on the shared/common login deployment, false on a tenant-specific one. Derived rather\n than configured, so there is no extra flag to keep in sync. */\nexport const isSharedLoginDeployment = () => Digit.ULBService.getStateId() === getSSOLookupTenantId();\n\nconst parseError = async (response, fallbackMessage) => {\n const raw = await response.text();\n let parsed;\n try {\n parsed = raw ? JSON.parse(raw) : null;\n } catch (e) {\n parsed = null;\n }\n const error = new Error(parsed?.error_description || parsed?.error || raw || fallbackMessage);\n error.code = parsed?.error;\n error.status = response.status;\n return error;\n};\n\nexport const lookupTenants = async (idToken) => {\n const response = await fetch(\"/user/oauth/tenants\", {\n method: \"POST\",\n headers: {\n Authorization: basicAuthHeader(),\n \"Content-Type\": \"application/x-www-form-urlencoded\",\n },\n body: new URLSearchParams({\n assertion: idToken,\n tenantId: getSSOLookupTenantId(),\n }),\n });\n\n if (!response.ok) throw await parseError(response, \"Tenant lookup failed\");\n\n const data = await response.json();\n return Array.isArray(data?.tenants) ? data.tenants : [];\n};\n\nexport const storeSSOTenants = (tenants) => Digit.SessionStorage.set(TENANTS_KEY, tenants || []);\nexport const getStoredSSOTenants = () => Digit.SessionStorage.get(TENANTS_KEY) || [];\nexport const clearSSOTenants = () => Digit.SessionStorage.del(TENANTS_KEY);\n\nexport const sortByTenantId = (tenants = []) =>\n [...tenants].sort((a, b) => String(a?.tenantId || \"\").localeCompare(String(b?.tenantId || \"\")));\n\nconst deploymentMap = () => window?.globalConfigs?.getConfig(\"TENANT_DEPLOYMENT_MAP\") || {};\n\n/**\n * Drop tenants we cannot actually put the user on.\n *\n * Landing on a tenant with no TENANT_DEPLOYMENT_MAP entry means no redirect happens, so the\n * user ends up authenticated as tenant X while the page still runs tenant Y's globalConfigs\n * (wrong hierarchy, wrong locale, wrong service paths) with nothing shown to explain it.\n *\n * `keepTenantId` is the currently-active tenant, which the switcher needs to keep in the list\n * so it stays visible as the selected option even if it has no mapping. Omit it when choosing\n * a tenant to log in to, where there is nothing to preserve.\n *\n * An empty map means single-deployment mode, so no filtering applies.\n */\nexport const filterDeployable = (tenants = [], keepTenantId = null) => {\n const keys = Object.keys(deploymentMap());\n if (!keys.length) return tenants;\n return tenants.filter((tenant) => {\n const id = tenant?.tenantId;\n if (!id) return false;\n return keys.includes(String(id).toLowerCase()) || id === keepTenantId;\n });\n};\n\n/* Tenant ids the switcher should offer: mapped to a deployment, plus the current one, sorted,\n deduped. Fewer than two means there is nothing to switch between. */\nexport const getSwitchableTenantIds = (currentTenantId) => {\n const ids = filterDeployable(sortByTenantId(getStoredSSOTenants()), currentTenantId)\n .map((tenant) => tenant?.tenantId)\n .filter(Boolean);\n return [...new Set(ids)];\n};\n\n/* Where a given tenant is served from, e.g. chaduat -> /chaduat/hcm-digit-ui */\nexport const getTenantBasePath = (tenantId) => {\n const target = deploymentMap()[String(tenantId || \"\").toLowerCase()];\n return target ? target.replace(/^\\/|\\/$/g, \"\") : null;\n};\n\n/**\n * Persist a freshly exchanged employee session.\n *\n * Deliberately a separate copy of the writes in Login/login.js rather than a shared\n * extraction: that file and pages/employee/Otp/index.js already carry two copies which differ\n * (login.js additionally exempts development builds from the multi-root guard), so unifying\n * them would quietly change the OTP path. Worth consolidating, but not as a side effect of\n * tenant switching.\n */\nconst persistEmployeeSession = (userObject, token) => {\n if (Digit.Utils.getMultiRootTenant() && process.env.NODE_ENV !== \"development\") return;\n\n const 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\n/**\n * Switch the logged-in tenant: end the DIGIT session for the current one, re-exchange the\n * stored ID token for the target, persist it, and send the browser to that tenant's\n * deployment.\n *\n * Throws with `code` set to a localisation key so the caller can surface it:\n * SSO_SESSION_EXPIRED - no usable ID token, the user has to log in again\n * SSO_TENANT_SWITCH_FAILED - the exchange failed for some other reason\n */\nexport const switchTenant = async (tenantId) => {\n const idToken = getIdpToken();\n if (!idToken) {\n const error = new Error(\"No IdP token available\");\n error.code = \"SSO_SESSION_EXPIRED\";\n throw error;\n }\n\n /* Revoke the DIGIT token for the tenant being left. Best effort: a failure here should not\n block the switch, and we deliberately do NOT call UserService.logout(), which would\n navigate away and wipe the storage the switch still needs. */\n try {\n await Digit.UserService.logoutUser();\n } catch (e) {\n console.warn(\"[sso] could not revoke the previous DIGIT session\", e);\n }\n\n const response = await fetch(\"/user/oauth/token\", {\n method: \"POST\",\n headers: {\n Authorization: basicAuthHeader(),\n \"Content-Type\": \"application/x-www-form-urlencoded\",\n },\n body: new URLSearchParams({\n grant_type: \"jwt_exchange\",\n scope: \"read\",\n userType: \"EMPLOYEE\",\n assertion: idToken,\n tenantId,\n }),\n });\n\n if (!response.ok) {\n const error = await parseError(response, \"Tenant switch failed\");\n /* 400/401 here means the assertion was rejected - almost always an expired ID token. */\n error.code = response.status === 400 || response.status === 401 ? \"SSO_SESSION_EXPIRED\" : \"SSO_TENANT_SWITCH_FAILED\";\n throw error;\n }\n\n const { UserRequest: info, ...tokens } = await response.json();\n\n Digit.SessionStorage.set(\"Employee.tenantId\", info?.tenantId);\n Digit.SessionStorage.set(\"citizen.userRequestObject\", { info, ...tokens });\n Digit.UserService.setUser({ info, ...tokens });\n persistEmployeeSession(info, tokens?.access_token);\n\n /* Full page load so initData, localisation and the module configs are rebuilt for the new\n tenant. Going straight to the target deployment avoids bouncing through this one and\n relying on the entry file's redirect interceptor. */\n const basePath = getTenantBasePath(info?.tenantId) || window?.contextPath;\n window.location.replace(`/${basePath}/employee`);\n};\n","/**\n * Per-deployment language preference.\n *\n * Every tenant is a separate deployment under its own base path on one shared origin, and\n * the locale string encodes the deployment (fr_AFRO on the shared login, fr_CHADUAT on\n * chaduat). So a single unscoped locale cannot be shared between them - hence two keys:\n *\n * Digit.locale.<tenant> the locale last used ON that deployment, e.g. fr_CHADUAT\n * Digit.language.pending a language the user JUST picked, e.g. \"fr\", region-free\n *\n * Both live in localStorage (Digit.PersistantStorage) so they survive a new tab. The locale\n * that is actually *active* stays in sessionStorage under the unscoped `Digit.locale`, which\n * is what i18next, RequestInfo.msgId, the per-module useStore calls and the pdf utils read.\n *\n * The pending marker exists so a language chosen on the shared login carries into whichever\n * tenant the user then logs in to, even though the locale strings differ. It is written only\n * on a deliberate choice - never on the boot-time auto-select - and is consumed and cleared\n * the first time a deployment applies it, so a stale one can never override a newer\n * per-tenant preference.\n *\n * Resolution order, applied at boot (see applyTenantLocale in the app's entry file):\n * 1. pending, mapped onto this deployment's region and validated -> use, then clear\n * 2. Digit.locale.<tenant>, if still one of the configured languages\n * 3. the tenant's first configured language\n */\n\n/* A remembered language should outlive the Digit.PersistantStorage default of one day. */\nconst ONE_YEAR_IN_SECONDS = 60 * 60 * 24 * 365;\n\n/* localStorage keys are prefixed with \"Digit.\" by PersistantStorage. */\nconst SCOPED_KEY_PREFIX = \"Digit.locale.\";\nconst PENDING_KEY = \"language.pending\";\n\nconst currentDeployment = () => window?.globalConfigs?.getConfig(\"STATE_LEVEL_TENANT_ID\") || \"default\";\n\nexport const tenantLocaleKey = () => `locale.${currentDeployment()}`;\n\n/* \"fr_CHADUAT\" -> \"fr\". Locales are <language>_<REGION>, region varying per deployment. */\nexport const toLanguageSubtag = (locale) => String(locale || \"\").split(\"_\")[0] || null;\n\nexport const getStoredTenantLocale = () => {\n try {\n return Digit?.PersistantStorage?.get(tenantLocaleKey()) || null;\n } catch (e) {\n return null;\n }\n};\n\nexport const getPendingLanguage = () => {\n try {\n return Digit?.PersistantStorage?.get(PENDING_KEY) || null;\n } catch (e) {\n return null;\n }\n};\n\nexport const clearPendingLanguage = () => {\n try {\n Digit?.PersistantStorage?.del(PENDING_KEY);\n } catch (e) {\n /* ignore */\n }\n};\n\n/**\n * Record a language the user deliberately chose.\n *\n * Call this ONLY from a real user action - the language picker or the top bar dropdown.\n * Calling it on the boot-time auto-select would leave a pending marker on every page load,\n * which would then override every per-tenant preference forever.\n */\nexport const rememberChosenLanguage = (locale) => {\n if (!locale) return;\n try {\n Digit?.PersistantStorage?.set(tenantLocaleKey(), locale, ONE_YEAR_IN_SECONDS);\n Digit?.PersistantStorage?.set(PENDING_KEY, toLanguageSubtag(locale), ONE_YEAR_IN_SECONDS);\n } catch (e) {\n /* a lost preference just means the default is used next time */\n }\n};\n\n/**\n * UserService.logout() clears the whole of localStorage, which would take these with it.\n * Snapshot before logging out, restore immediately after.\n *\n * Prefix-based, so it covers every tenant this browser has seen and core does not need to\n * know which deployments exist.\n */\nexport const snapshotLanguagePreferences = () => {\n const saved = {};\n try {\n for (let i = 0; i < localStorage.length; i++) {\n const key = localStorage.key(i);\n /* Scoped preferences only. The pending marker is a within-journey handoff (shared\n login -> chosen tenant); carrying it past a logout would let a choice made in a\n previous session override the next one. */\n if (key && key.startsWith(SCOPED_KEY_PREFIX)) saved[key] = localStorage.getItem(key);\n }\n } catch (e) {\n /* ignore */\n }\n return saved;\n};\n\nexport const restoreLanguagePreferences = (saved) => {\n try {\n Object.entries(saved || {}).forEach(([key, value]) => {\n if (value != null) localStorage.setItem(key, value);\n });\n } catch (e) {\n /* ignore */\n }\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 = 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","/*\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","/* 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 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__;","module.exports = __WEBPACK_EXTERNAL_MODULE__7122__;","// The module cache\nconst __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tconst 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\tconst 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\tconst 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};","// wrap a concatenated module body as a lazy, memoized accessor; mod is\n// set before the body runs so re-entrant calls (require cycles) observe\n// the partial exports like Node.js\n__webpack_require__.cw = (body) => {\n\tvar mod;\n\treturn () => {\n\t\tif (body) {\n\t\t\tvar fn = body;\n\t\t\tbody = 0;\n\t\t\tmod = { exports: {} };\n\t\t\tfn.call(mod.exports, mod, mod.exports);\n\t\t}\n\t\treturn mod.exports;\n\t};\n};","// define getter/value functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tif(Array.isArray(definition)) {\n\t\tvar i = 0;\n\t\twhile(i < definition.length) {\n\t\t\tvar key = definition[i++];\n\t\t\tvar binding = definition[i++];\n\t\t\tvar descriptor = binding === 0 ? { enumerable: true, value: definition[i++] } : { enumerable: true, get: binding };\n\t\t\tif(!__webpack_require__.o(exports, key)) Object.defineProperty(exports, key, descriptor);\n\t\t}\n\t} else {\n\t\tfor(var key in definition) {\n\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t\t}\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\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\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' }}>•</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'}}>•</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 React, { useState } from \"react\";\n\n/**\n * One SSO provider button.\n *\n * Deliberately a plain <button> rather than digit-ui-components' <Button>: that component\n * resolves its `icon` prop by NAME against digit-ui-svg-components and accepts no children,\n * so there is no way to put a provider logo <img> inside one. Passing an element rendered as\n * null and produced blank buttons. The markup below mirrors Button's own DOM, so the existing\n * digit-button-* styles still apply and nothing new is needed in digit-ui-css - which matters,\n * because that package is published separately and pinned by version in index.html.\n *\n * `label` arrives already localised from login.js.\n */\nconst SSOLoginButton = ({ sso, variation, className }) => {\n const [logoFailed, setLogoFailed] = useState(false);\n const showLogo = Boolean(sso?.logo) && !logoFailed;\n\n /* Note the absence of .employee-login-sso-icon: that class is a 48px square which hides the\n label via CSS, so applying it would show the logo alone. Both the single- and\n multiple-provider cases render logo + name, so it is deliberately not used. Spacing\n between the two comes from .icon-label-container (flex, gap 0.5rem). */\n return (\n <button\n type=\"button\"\n className={`digit-button-${variation} large ${className || \"\"}`}\n onClick={() => sso?.onLogin?.(sso)}\n title={sso?.label}\n aria-label={sso?.label}\n style={{ width: \"100%\" }}\n >\n <div className={`icon-label-container ${variation} large`}>\n {showLogo && (\n <img\n src={sso.logo}\n alt=\"\"\n className=\"employee-login-sso-logo\"\n onError={() => setLogoFailed(true)}\n />\n )}\n <h2 className=\"digit-button-label\">{sso?.label}</h2>\n </div>\n </button>\n );\n};\n\nconst EmployeeSSOLoginOptions = ({ t, props }) => {\n const { ssoConfigs = [] } = props || {};\n\n if (!ssoConfigs?.length) {\n return null;\n }\n\n const hasMultipleOptions = ssoConfigs.length > 1;\n\n /* Both cases render logo + provider name; they differ only in emphasis - a single provider\n is the primary action, several are secondary so no one of them looks preferred.\n The wrapper is kept for the multiple case (it supplies the grouping and gap) while a lone\n button stays a direct child of the .employee-login-sso flex column, as before. */\n const buttons = ssoConfigs.map((sso, index) => (\n <SSOLoginButton\n key={sso.id || sso.provider || index}\n sso={sso}\n variation={hasMultipleOptions ? \"secondary\" : \"primary\"}\n className={\n hasMultipleOptions\n ? `${sso.provider?.toLowerCase() || \"provider\"}-login-icon`\n : `employee-login-sso-button ${sso.provider?.toLowerCase() || \"provider\"}-login-btn`\n }\n />\n ));\n\n return (\n <div className=\"employee-login-sso\">\n <div className=\"employee-login-sso-divider\">\n <span>{hasMultipleOptions ? t(\"CORE_COMMON_OR_SIGN_IN_WITH\") : t(\"CORE_COMMON_OR\")}</span>\n </div>\n {hasMultipleOptions ? <div className=\"employee-login-sso-icons\">{buttons}</div> : buttons}\n </div>\n );\n};\n\nexport default EmployeeSSOLoginOptions;\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\";\nimport EmployeeSSOLoginOptions from \"./components/EmployeeSSOLoginOptions\";\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 modulePrefix = window?.globalConfigs?.getConfig(\"CORE_UI_MODULE_LOCALE_PREFIX\") || \"rainmaker\";\n const { isLoading, data: initData={} } = Digit.Hooks.useInitStore(stateCode, enabledModules, modulePrefix);\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 if(!Digit.ComponentRegistryService.getComponent(\"EmployeeSSOLoginOptions\")){\n Digit.ComponentRegistryService.setComponent(\"EmployeeSSOLoginOptions\", EmployeeSSOLoginOptions);\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 EmployeeSSOLoginOptions\n};\n\nexport const initCoreComponents = () => {\n // Ensure hooks introduced in newer libraries versions are always available.\n // Old deployments (e.g. digit-ui-libraries@1.8.8) won't have useSSOConfig,\n // so we register a no-op fallback so login.js never crashes with \"not a function\".\n if (!Digit.Hooks.useSSOConfig) {\n Digit.Hooks.useSSOConfig = () => ({ data: [], isLoading: false });\n }\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","undefined","this","__WEBPACK_EXTERNAL_MODULE__6243__","__WEBPACK_EXTERNAL_MODULE__5053__","__WEBPACK_EXTERNAL_MODULE__338__","__WEBPACK_EXTERNAL_MODULE__4456__","__WEBPACK_EXTERNAL_MODULE__4883__","__WEBPACK_EXTERNAL_MODULE__5953__","__WEBPACK_EXTERNAL_MODULE__2148__","__WEBPACK_EXTERNAL_MODULE__4442__","__WEBPACK_EXTERNAL_MODULE__1954__","__WEBPACK_EXTERNAL_MODULE__2247__","__WEBPACK_EXTERNAL_MODULE__7122__","_ref","children","_jsx","className","stringReplaceAll","str","arguments","length","searcher","replaceWith","_str","includes","_str2","replace","prop","_Digit","_Digit$getType","_selectCityData$","_stringReplaceAll3","_useState2","_slicedToArray","useState","dropDownData","setDropDownData","_useState4","selectCityData","setSelectCityData","_useState6","navigate","useNavigate","isMultiRootTenant","dropdown","Digit","Utils","getMultiRootTenant","_useState8","switchError","setSwitchError","currentTenantId","SessionStorage","get","ssoTenantIds","getSwitchableTenantIds","ssoMode","UserService","getType","call","Boolean","getIdpToken","handleSwitchTenant","city","value","switchTenant","error","console","code","setTimeout","logout","_x","apply","useEffect","_userloggedValues$inf","map","tenantId","_stringReplaceAll","label","concat","toUpperCase","userloggedValues","teantsArray","filteredArray","info","roles","forEach","role","push","unique","filter","item","i","ar","indexOf","uniCode","_stringReplaceAll2","select","_jsxs","style","mobileView","color","CardText","Dropdown","t","option","selected","find","cityValue","optionKey","showArrow","_Digit$SessionStorage","_window$location","_window","loggedInData","filteredRoles","set","setUser","window","location","href","contextPath","_location$state","_window2","redirectPath","state","from","reload","warn","freeze","customSelector","Toast","type","onClose","_languages$find","isDropdown","_Digit$Hooks$useStore","Hooks","useStore","getInitData","storeData","data","isLoading","languages","stateInfo","useTranslation","selectedLanguage","StoreData","getCurrentLanguage","setselected","handleChangeLanguage","language","rememberChosenLanguage","LocalizationService","changeLanguage","React","marginBottom","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","size","formId","footerWithoutSubmit","PopUp","heading","footerChildren","sortFooterButtons","onOverlayClick","equalWidthButtons","DummyLoaderScreen","currentStep","setCurrentStep","tenant","steps","stepInterval","setInterval","prev","clearInterval","navigateTimeout","_window3","roleForLandingPage","getUserRoles","MdmsRes","pathname","RoleLandingUrl","clearTimeout","useRef","setButtonDisabled","useCustomMDMS","name","enabled","staleTime","cacheTime","_data$SandBoxLanding","url","_getUserRoles$","some","page","rolesForLandingPage","step","CheckCircle","fill","moduleCode","stateCode","userType","tenants","_ref$maxRetries","maxRetries","_ref$retryDelay","retryDelay","_ref$initialDelay","initialDelay","loading","retryCount","initialDelayComplete","moduleState","setModuleState","retryTimeout","initialTimeout","loadModule","_ref2","Module","ComponentRegistryService","getComponent","_objectSpread","delay","Math","pow","message","loadingText","defaultValue","Loader","variant","loaderText","textAlign","marginTop","Navigate","to","encodeURIComponent","Redircter","path","currentHref","navigationError","replaceError","ErrorBoundary","constructor","super","errorStack","hasError","getDerivedStateFromError","stack","componentDidCatch","errorInfo","setState","render","ErrorComponent","initData","errorData","goToHome","__WEBPACK_DEFAULT_EXPORT__","ErrorConfig","maintenance","notfound","ModuleBasedErrorConfig","sandbox","_props$errorData","_Digit$Hooks$useQuery2","useQueryParams","ImageComponent","src","alt","_props$errorData2","_props$goToHome","_stateInfo$code","_ref$showTenant","headerSvgSecondaryUrl","globalConfigs","getConfig","logoUrl","borderRight","fontSize","Components","RoleBasedEmployeeHome","modules","additionalComponent","_Object$keys","sortedConfigEmployeesSidebar","_Digit$Hooks$useAcces","useAccessControl","ULBService","getStateId","mdmsOrderData","setMdmsOrderData","_Digit$Hooks$useCusto","_data$HomeScreenOrder","_Digit$Hooks$useCusto2","moduleConfigData","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","digit_ui_components_","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","QuickStart_QuickSetup","_ref3","cardConfig","height","overflowY","flexWrap","id","BreakLine","border","Config","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","BackLink","history","back","_mdmsDataObj$links3","_mdmsDataObj$links4","handleLinkClick","srOnlyStyle","position","overflow","clip","whiteSpace","EmployeeHome","_ref4","Component","AppHome","_ref5","isSuperUserWithMultipleRootTenant","getRoleBasedHomeCard","QuickSetupConfigComponent","_ref$alt","_ref$decorative","decorative","_ref$ariaLabel","ariaLabel","_ref$ariaLabelledby","ariaLabelledby","accessibilityProps","tabIndex","onKeyDown","_window$getConfig","focus","propTypes","PropTypes","isRequired","TopBarSideBar_TopBar","_userDetails$info2","_Digit$ComponentRegis","_userDetails$info3","_userDetails$info4","_window4","_cityDetails$city","_cityDetails$city2","toggleSidebar","isSidebarOpen","handleLogout","userDetails","CITIZEN","cityDetails","userOptions","handleUserDropdownSelection","logoUrlWhite","_ref$showLanguageChan","showLanguageChange","_React$useState2","profilePic","setProfilePic","app","_userDetails$info","getCurrentTenantId","uuid","usersResponse","userSearch","user","_userDetails$photo","thumbs","photo","split","at","_Digit$UserService","_Digit$UserService2","CitizenHomePageTenantId","getCitizenCurrentTenant","_Digit$Hooks$useNotif","useNotificationCount","getUser","_Digit$Hooks$useNotif2","unreadNotificationCount","unreadCount","notificationCountLoaded","isSuccess","TopBarComponent","img","updateSidebar","clikOusideFired","onLogout","notificationCount","cityOfCitizenShownBesideLogo","onNotificationIconClick","hideNotificationIconOnSomeUrlsWhenNotLoggedIn","_Digit$UserService3","access_token","urlsToDisableNotificationIcon","ChangeLanguage","loggedin","CustomEmployeeTopBar","TopBarComponentMain","actionFields","ChangeCity","userInfo","menuStyles","theme","onHamburgerClick","logoWidth","logoHeight","logo","logoId","statelogo","onImageClick","onLogoClick","showDeafultImg","ulb","ulbGrade","defaultImage","sidebar_menu","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","SideBar_StaticCitizenSideBar","_user$info","_menuItems","linkData","islinkDataLoading","isFetched","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","CitizenSideBar","_menuItems2","_menuItems3","_user$info2","_user$info3","_user$info4","_ref3$isMobile","_ref3$isEmployee","userProfile","isDigitStudio","search","_useState0","_useState10","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","_ref7","_ref6","_window8","_window9","parentIndex","handleChangeCity","onItemSelect","StaticCitizenSideBar","SideBar_EmployeeSideBar","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","TopBarSideBar_SideBar","components_TopBarSideBar","_ref$showSidebar","showSidebar","handleSSOLogout","source","preservedLanguages","provider","localStorage","getItem","normalizedProvider","logoutUrlFromConfig","redirectParamName","token","_window$google","google","accounts","disableAutoSelect","fetch","method","headers","removeItem","postLogoutRedirectUri","getSSOPostLogoutRedirectUri","restoreLanguagePreferences","clearIdpToken","URL","searchParams","toString","_x2","snapshotLanguagePreferences","handleSidebar","func","TopBar","SideBar","WrappedComponent","mainSelector","handleFirstTab","main","document","querySelector","setAttribute","outline","removeEventListener","addEventListener","callback","savedCallback","timer","useLoginConfig","getConfigModuleName","useCommonMDMS","_data$moduleName","LoginConfig","retry","FAQs_FaqComponent","FAQs","_data$MdmsRes$common","_Digit$Hooks$useGetFA","useGetFAQsJSON","moduleFaqs","Fragment","BackButton","marginLeft","HeaderComponent","paddingTop","LanguageSelection","_Digit$Hooks$useStore2","_Digit$Hooks$useStore3","texts","useMemo","submitBarLabel","RadioButtonProps","options","optionsKey","additionalWrapperClass","selectedOption","PageBasedInput","onSubmit","RadioButtons","LocationSelection","uiHomePage","redirectURL","_Digit$Hooks$useTenan","useTenants","cities","selectedCity","setSelectedCity","showError","setShowError","selectCity","redirectBackTo","SearchOnRadioButtons","placeholder","CardLabelError","ImageUpload_UploadDrawer","closeDrawer","removeProfilePic","showToast","setUploadedFile","file","setFile","setError","_response$data","response","UploadServices","Filestorage","files","_response$data2","fileStoreId","err","left","right","bottom","onOverlayBodyClick","alignItems","flex","gap","for","cursor","GalleryIcon","accept","onChange","target","removeimg","RemoveIcon","DEFAULT_TENANT","_Digit$getStateId","defaultValidationConfig","UserProfileValidationConfig","password","Home_IndividualUserProfile","_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","permanentCity","setCity","setMobileNo","_useState12","_useState14","profileImg","setProfileImg","_useState16","openUploadSlide","setOpenUploadSide","_useState18","changepassword","setChangepassword","_useState20","currentPassword","setCurrentPassword","_useState22","newPassword","setNewPassword","_useState24","confirmPassword","setConfirmPassword","_useState26","toast","setToast","_useState28","setLoading","innerWidth","windowWidth","setWindowWidth","_React$useState4","errors","setErrors","individualServicePath","mapConfigToRegExp","_config$UserProfileVa","startsWith","lastIndexOf","lastSlashIndex","pattern","slice","flags","RegExp","_useState30","validationConfig","setValidationConfig","commonUiConfig","mdmsValidationData","isValidationConfigLoading","_mdmsValidationData$U","updatedValidationConfig","getUserInfo","_response$Individual","CustomService","getResponse","useCache","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","ResponseInfo","status","requestData","existingPassword","username","changePasswordResponseInfo","changePassword","_error$Errors","_error$response","Errors","errorObj","parse","_error$response2","_error$Errors2","menu","Menu","useGenderMDMS","genderDetails","setFileStoreId","thumbnails","getThumbnails","ids","res","Filefetch","fileStoreIds","o","images","getFileUrl","_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","eventOrValue","_eventOrValue$target$","_eventOrValue$target","_eventOrValue$target$2","_eventOrValue$target2","_eventOrValue$target$3","_eventOrValue$target3","fontWeight","Footer","SubmitBar","setactionFieldsToRight","UploadDrawer","Home_UserProfile","useAnIndividual","IndividualUserProfile","handleResize","_yield$Digit$UserServ","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","_Digit$Hooks$useEvent","useEvents","EventsData","EventsDataLoading","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","_Digit$Hooks$useGetHo","useGetHowItWorksJSON","mdmsConfigResult","screenHeader","CustomButton","videosJson","videos","onClickVideo","vidObj","pdfHeader","pdfDesc","PDFSvg","DownloadImgIcon","CloseSvg","controls","autoPlay","otp","onOtpChange","onResend","_ref$userType","canSubmit","timeLeft","setTimeLeft","useInterval","handleResendOtp","OTPInput","FormStep","loginSteps","cardText","nextText","inputs","validation","minlength","maxlength","Login_SelectMobileNumber","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","Login_SelectName","TYPE_LOGIN","DEFAULT_REDIRECT_URL","getFromLocation","Login_IndividualLogin","_ref$isUserRegistered","isUserRegistered","isOtpValid","setIsOtpValid","setParams","errorTO","setErrorTO","canSubmitName","setCanSubmitName","canSubmitOtp","setCanSubmitOtp","canSubmitNo","setCanSubmitNo","errorTimeout","_location$state2","setCitizenDetail","userObject","_JSON$parse","sessionStorage","setItem","stepItems","selectMobileNumber","_yield$sendOtp2","sendOtp","selectName","registerURL","IndividualRegister","requestType","auth","Error","selectOtp","authenticate","UserRequest","tokens","resendOtp","_yield$sendOtp4","AppContainer","Routes","Route","SelectMobileNumber","event","showRegisterLink","SelectOtp","SelectName","TYPE_REGISTER","citizen_Login","_location$state7","IndividualLogin","_location$state4","_location$state3","_location$state5","_yield$sendOtp6","_location$state6","roleInfo","userRole","otpReference","_yield$Digit$UserServ2","registerUser","_excluded2","_yield$sendOtp0","_yield$sendOtp8","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","external_React_","createContext","useFormContext","useContext","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","useCallback","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","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","Search_SearchFields","previousPage","SearchField","DatePicker","date","Search_MobileSearchApplication","_data$roles","tabledata","settabledata","DownloadBtn","DownloadBtnCommon","returnObject","convertEpochToDate","timestamp","convertEpochToTimeInHours","dataView","dataViewedBy","dateEpoch","dateFromApi","month","getMonth","day","getDate","year","getFullYear","hour","getHours","getMinutes","period","_useReducer2","useReducer","currentlyActiveMobileModal","setActiveMobileModal","closeMobilePopupModal","MobilePopUpCloseButton","searchFormFieldsComponentProps","CurrentMobileModalComponent","SearchForm","SearchFormFields","MobileComponentDirectory","propsMobileInboxCards","_data$roles$slice","tabData","Download","Excel","handleExcelDownload","SearchAction","handleActionClick","DetailsCard","Search","count","_useForm","_formControl","_values","useForm","sortOrder","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","SearchApp","_data$ElasticSearchDa","_data$ElasticSearchDa2","setPayload","convertDateToEpoch","dateString","dayStartOrEnd","parts","DateObj","UTC","setMinutes","getTimezoneOffset","setHours","setSeconds","getSeconds","storedPayload","k","_Digit$Hooks$useAudit","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","_Digit$Hooks$useStati","useStaticData","isMdmsLoading","mdmsData","_Digit$Hooks$useDynam","useDynamicData","isSearchLoading","dynamicData","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","SideBar_CitizenSideNav","isLoggedIn","handleLogoutCancel","buildItems","orderCounter","cityChildren","currentCityLabel","_moduleEntries$","moduleEntries","entry","_entry$sidebar","endsWith","seen","navigateToUrl","_loggedInData$info","enableSearch","handleLogoutSubmit","lazyWithFallback","resolve","__webpack_require__","FAQsSection","UserProfile","HowItWorks","Login","StaticDynamicCard","sidebarHiddenFor","getTenants","codes","citizen","_Digit$ComponentRegis2","_Digit$ComponentRegis3","_window7$getConfig","DSO","appTenants","sourceUrl","_data$ACCESSCONTROLA","el","_a$b$parentModule","isLinkDataFetched","classname","useRouteSubscription","hideSidebar","CitizenLandingPage","ServiceLandingPage","ServiceActionsPage","appRoutes","DynamicModuleLoader","ModuleLevelLinkHomePages","bannerImage","CitizenHomeCard","Info","CitizenInfoLabel","isInfo","TopBarSideBar","CitizenSideNav","_window8$getConfig","ChangePasswordComponent","_window3$getConfig","propsConfig","_Digit$Hooks$useQuery","mobile_number","USERNAME","userIdentifier","setOtp","setShowToast","getUserType","setType","closeToast","onResendOTP","_err$response","error_description","onChangePassword","navigateToLogin","_err$response2","_propsConfig$inputs","FormComposer","noBoxShadow","inline","submitInForm","submitButtonLabel","cardStyle","CardSubHeader","_window4$getConfig","loginParams","defaultProps","ChangePassword","EmployeeChangePassword","loginConfig","ForgotPassword","_window6$getConfig","_mdmsData$config$","bannerImages","onForgotPassword","alert","Carousel","FormComposerV2","secondaryActionLabel","secondaryButtonLabel","onSecondayActionClick","headingStyle","descriptionStyles","secondaryActionId","_window5$getConfig","forgotPassword","employee_ForgotPassword","ForgotPasswordComponent","defaultLanguage","_Digit$getDefaultLang","getDefaultLanguage","_loginMdmsData$config","_defaultLanguages","loginMdmsData","loginScreenConfig","defaultLoginConfig","defaultLanguages","isChangingLanguage","setIsChangingLanguage","getLocale","hasMultipleLanguages","now","_loginConfig$","_ref$bannerImages","currentSlide","setCurrentSlide","carouselItems","nextSlide","interval","backgroundImage","image","prevSlide","_","goToSlide","mdmsConfig","masterName","localePrefix","component","customProps","renderAfterSubmit","LoginOtpConfig","Dialog_ForgotPasswordDialog","buttonLabel","DEFAULT_FORGOT_PASSWORD_POPUP","_Digit2","_config$","_config$2","_forgotScreenConfig$p","_forgotScreenConfig$p2","_forgotScreenConfig$p3","_forgotScreenConfig$p4","_forgotScreenConfig$p5","_forgotScreenConfig$p6","loginOTPBased","isStoreLoading","_Digit$Hooks$useSSOCo","useSSOConfig","_data$MdmsRes","_data$SSO","IdentityProviders","ssoMDMSData","setDisable","loginLoader","setLoginLoader","showForgotPasswordPopup","setShowForgotPasswordPopup","forgotScreenConfig","forgotPasswordScreen","DynamicLoginComponent","hashParams","URLSearchParams","hash","idToken","accessToken","errorDescription","setIdpToken","handleSSOCallback","microsoftAuthenticate","catch","_user$info5","_user$info6","setEmployeeDetail","decodeURIComponent","failSSOLogin","messageCode","replaceState","resolveTenantForLogin","deploymentTenant","lookupTenants","storeSSOTenants","sorted","sortByTenantId","isSharedLoginDeployment","_deployable$","deployable","filterDeployable","handleDigitLogin","Authorization","grant_type","scope","assertion","ok","_parsed","_parsed2","_parsed3","_parsed4","parsed","raw","json","onSSOLogin","_ref8","ssoConfig","ui","hasOidcConfig","authorizeUrl","clientId","authStrategy","onOIDCLogin","_x4","_ref9","resource","logoutUrl","logoutRedirectParam","authority","uiConfig","_ref7$scopes","scopes","_ref7$responseType","responseType","_ref7$responseMode","responseMode","_ref7$nonceRequired","nonceRequired","_ref7$redirectPath","prompt","nonce","random","redirectUri","forcePromptLogin","buildOIDCAuthorizeUrl","_x5","onLogin","_ref0","_requestData$city","_excluded3","_x6","reqCreate","enable","mutation","useCustomAPIMutationHook","onOtpLogin","_ref1","_Digit3","_onSuccess","inputEmail","mutate","onError","variables","onSuccess","_window0","_Digit4","_x8","_x7","_window1","defaultTenant","resolveProviderLabel","sso","_sso$ui","_sso$ui2","_sso$ui3","translated","String","char","prettifyProviderName","ssoConfigs","_sso$ui4","_sso$ui5","_field$populators","_field$populators2","onFormValueChange","hasEmptyFields","renderLoginForm","_propsConfig$texts","_propsConfig$texts2","_propsConfig$texts3","_propsConfig$texts4","extraClasses","cardClassName","wrapperClass","cardSubHeaderClassName","buttonClassName","renderFooter","footerClassName","_window10","_window10$getConfig","_window11","_window11$getConfig","ForgotPasswordDialog","popupFields","login","withAutoFocusMain","employee_Login","setloginConfig","defaultLoginOtpConfig","loginOtpConfig","loginType","_useLoginConfig","Services","modulePrefix","loginOtpParams","LoginComponent","_ref$isLogin","isLogin","OtpConfig","redirectPathOtpLogin","getRedirectPathOtpLogin","locationPathname","_MdmsRes$","isSuperUser","_formData$OtpComponen","OtpComponent","formValue","_otpValue$otp","otpValue","SignUpConfig","_window2$getConfig","accountName","_data$Tenants$","_data$Tenants$2","Tenants","signUp","employee_SignUp","defaultSignUpConfig","setSignUpConfig","_Digit$Hooks$useCommo","_data$commonUiConfig","SignUpParams","ViewUrl","buttonDisabled","gcTime","TickMark","nonEditable","host","navigator","clipboard","writeText","onButtonClick","default","_codes$map","AppModules","EmployeeLogin","Otp","userScreensExempted","employee","_location$pathname","_initData$modules","_ref$noTopBar","noTopBar","isUserProfile","_location$pathname2","COOKIE_NAME","FALLBACK_KEY","cookie","storeFallback","exp","b64","padded","repeat","atob","readExpiry","maxAge","floor","protocol","TENANTS_KEY","basicAuthHeader","getSSOLookupTenantId","parseError","fallbackMessage","deploymentMap","keepTenantId","logoutUser","_yield$response$json","persistEmployeeSession","basePath","getTenantBasePath","ONE_YEAR_IN_SECONDS","_Digit5","PersistantStorage","toLanguageSubtag","tenantLocaleKey","saved","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","Y","mediaQuery","query","captures","RE_MEDIA_QUERY","modifier","expressions","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","staticMatch","css_mediaquery_namespaceFn","dynamicMatch","matchMedia","Mql","forceStatic","mql","self","update","evt","matches","media","addListener","listener","removeListener","dispose","uppercasePattern","msPattern","cache","toHyphenLower","hyphenate_style_name","hName","stringOrNumber","prop_types_default","esm_types","grid","aural","braille","handheld","print","projection","screen","tty","tv","embossed","matchers","orientation","scan","aspectRatio","deviceAspectRatio","deviceHeight","deviceWidth","colorIndex","monochrome","esm_type","featureMatchers","features","minAspectRatio","maxAspectRatio","minDeviceAspectRatio","maxDeviceAspectRatio","minHeight","maxHeight","minDeviceHeight","maxDeviceHeight","minDeviceWidth","maxDeviceWidth","minColor","maxColor","minColorIndex","maxColorIndex","minMonochrome","maxMonochrome","minResolution","maxResolution","mq","Context","hyphenateKeys","useIsUpdate","useQuery","settings","getQuery","v","realKey","keyVal","toQuery","makeQuery","setQuery","newQuery","useMediaQuery","device","deviceSettings","deviceFromProps","deviceFromContext","getDevice","setDevice","newDevice","objA","objB","aKeys","bKeys","len","shallowEqualObjects","useDevice","getMatchMedia","matchmediaquery_default","setMq","isUpdate","newMq","useMatchMedia","setMatches","updateMatches","ev","useMatches","__webpack_module_cache__","moduleId","cachedModule","__webpack_modules__","n","getter","__esModule","cw","mod","fn","definition","binding","descriptor","r","Symbol","toStringTag","CitizenApp","EmployeeApp","SignUp","CustomErrorComponent","DigitApp","_ref$defaultLanding","defaultLanding","_ref$allowedUserTypes","allowedUserTypes","getCurrentUlb","commonProps","DigitAppWrapper","_ref3$defaultLanding","_location","middleware","thunk","enhancer","composeEnhancers","compose","applyMiddleware","store","defaultStore","moduleReducers","createStore","getRootReducer","combineReducers","common","defaultData","components_PrivacyComponent","isChecked","setIsChecked","showPopUp","setShowPopUp","privacy","PrivacyPolicy","policy","_props$props","CheckBox","footerclassName","sortFooterChildren","contents","getElementById","scrollIntoView","behavior","isSpaceRequired","descriptions","subIndex","isBold","subDescriptions","subDesc","subSubIndex","SSOLoginButton","logoFailed","setLogoFailed","showLogo","_sso$onLogin","components_EmployeeSSOLoginOptions","_ref3$ssoConfigs","hasMultipleOptions","buttons","_sso$provider","_sso$provider2","DigitUIWrapper","_initData$stateInfo","_initData$stateInfo2","_initData$stateInfo3","enabledModules","_Digit$Hooks$useInitS","useInitStore","_Digit$Hooks$useInitS2","getStore","getI18n","setComponent","PrivacyComponent","EmployeeSSOLoginOptions","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","A","_props$props4","_props$props2","_props$props3","ForgotOrganizationTooltip","showTip","setShowTip","wrapperRef","handleClickOutside","contains","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/javascript/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/components/Dialog/ForgotPasswordDialog.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/./src/utils/idpToken.js","webpack://@egovernments/digit-ui-module-core/./src/utils/ssoTenants.js","webpack://@egovernments/digit-ui-module-core/./src/utils/tenantLocale.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/css-mediaquery/index.js","webpack://@egovernments/digit-ui-module-core/../node_modules/matchmediaquery/index.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/javascript/node_modules/react-responsive/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/external umd {\"commonjs\":\"react/jsx-runtime\",\"commonjs2\":\"react/jsx-runtime\"}","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/concatenation wrap","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/components/EmployeeSSOLoginOptions.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(\"@egovernments/digit-ui-react-components\"), require(\"@egovernments/digit-ui-svg-components\"), require(\"@tanstack/react-query\"), require(\"React\"), require(\"react-i18next\"), require(\"react-redux\"), require(\"react-router-dom\"), require(\"redux\"), require(\"redux-thunk\"), require(\"react/jsx-runtime\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"@egovernments/digit-ui-components\", \"@egovernments/digit-ui-react-components\", \"@egovernments/digit-ui-svg-components\", \"@tanstack/react-query\", \"React\", \"react-i18next\", \"react-redux\", \"react-router-dom\", \"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(\"@egovernments/digit-ui-react-components\"), require(\"@egovernments/digit-ui-svg-components\"), require(\"@tanstack/react-query\"), require(\"React\"), require(\"react-i18next\"), require(\"react-redux\"), require(\"react-router-dom\"), require(\"redux\"), require(\"redux-thunk\"), require(\"react/jsx-runtime\"));\n\telse\n\t\troot[\"@egovernments/digit-ui-module-core\"] = factory(root[\"@egovernments/digit-ui-components\"], root[\"@egovernments/digit-ui-react-components\"], root[\"@egovernments/digit-ui-svg-components\"], root[\"@tanstack/react-query\"], root[\"React\"], root[\"react-i18next\"], root[\"react-redux\"], root[\"react-router-dom\"], root[\"redux\"], root[\"redux-thunk\"], root[undefined]);\n})(this, (__WEBPACK_EXTERNAL_MODULE__6243__, __WEBPACK_EXTERNAL_MODULE__5053__, __WEBPACK_EXTERNAL_MODULE__338__, __WEBPACK_EXTERNAL_MODULE__4456__, __WEBPACK_EXTERNAL_MODULE__4883__, __WEBPACK_EXTERNAL_MODULE__5953__, __WEBPACK_EXTERNAL_MODULE__2148__, __WEBPACK_EXTERNAL_MODULE__4442__, __WEBPACK_EXTERNAL_MODULE__1954__, __WEBPACK_EXTERNAL_MODULE__2247__, __WEBPACK_EXTERNAL_MODULE__7122__) => {\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, Toast } from \"@egovernments/digit-ui-components\";\nimport React, { useEffect, useState } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport { getIdpToken } from \"../utils/idpToken\";\nimport { getStoredSSOTenants, getSwitchableTenantIds, lookupTenants, storeSSOTenants, switchTenant } from \"../utils/ssoTenants\";\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 const [switchError, setSwitchError] = useState(null);\n\n /* SSO tenant switching, when the session came from an IdP. Everything else - citizen\n sidebars, password logins - keeps the original role-filter-and-reload behaviour below.\n The tenant list comes from /user/oauth/tenants rather than from the user's roles, because\n that endpoint is authoritative about what the subject may log in to whereas roles only\n describe the tenant currently exchanged for.\n\n Decided in the effect below rather than during render, and keyed on the session rather\n than on how many tenants came back. Previously a short list flipped the whole component\n to the role-derived data source, which silently showed a DIFFERENT and smaller set of\n tenants with nothing to indicate the switcher had been disabled. */\n const currentTenantId = Digit.SessionStorage.get(\"Employee.tenantId\");\n const [ssoMode, setSsoMode] = useState(false);\n\n const handleSwitchTenant = async (city) => {\n if (!city?.value || city.value === currentTenantId) return;\n try {\n /* Navigates on success, so nothing after this runs. */\n await switchTenant(city.value);\n } catch (error) {\n console.error(\"[sso] tenant switch failed\", error);\n setSwitchError(error?.code || \"SSO_TENANT_SWITCH_FAILED\");\n if (error?.code === \"SSO_SESSION_EXPIRED\") {\n /* The ID token is gone or rejected, so there is no way to re-exchange. Let the toast\n be read, then send the user back through login. */\n setTimeout(() => Digit.UserService.logout(), 4000);\n }\n }\n };\n\n const handleChangeCity = (city) => {\n if (ssoMode) return handleSwitchTenant(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 const toOptions = (tenantIds) =>\n tenantIds.map((tenantId) => ({\n label: `TENANT_TENANTS_${stringReplaceAll(tenantId, \".\", \"_\")?.toUpperCase()}`,\n value: tenantId,\n }));\n\n useEffect(() => {\n let cancelled = false;\n\n const applySSOTenants = async () => {\n const isSSOSession = Digit?.UserService?.getType?.() === \"employee\" && Boolean(getIdpToken());\n if (!isSSOSession) return false;\n\n let tenantIds = getSwitchableTenantIds(currentTenantId);\n\n /* The list is written to sessionStorage at login, on whichever deployment handled the\n SSO callback. Switching tenant lands the user on a DIFFERENT deployment, and if that\n list did not come across the switcher would quietly collapse to the single tenant the\n new session has roles for. Re-fetch instead - the ID token is still valid, which is\n what makes the switch possible in the first place. Only when the list is genuinely\n absent, so the normal path costs no extra request. */\n if (!getStoredSSOTenants().length) {\n try {\n const tenants = await lookupTenants(getIdpToken());\n if (cancelled) return true;\n storeSSOTenants(tenants);\n tenantIds = getSwitchableTenantIds(currentTenantId);\n } catch (error) {\n console.warn(\"[sso] could not re-fetch the tenant list\", error);\n }\n }\n\n if (cancelled) return true;\n\n if (tenantIds.length) {\n setSsoMode(true);\n setSelectCityData(toOptions(tenantIds));\n return true;\n }\n\n /* An SSO session with no usable tenant list at all. Falling through to roles is still\n better than an empty dropdown, but it is never expected - log the inputs so this does\n not have to be diagnosed from the symptom again. */\n console.warn(\"[sso] tenant switcher falling back to roles\", {\n storedTenants: getStoredSSOTenants(),\n deploymentMapKeys: Object.keys(window?.globalConfigs?.getConfig(\"TENANT_DEPLOYMENT_MAP\") || {}),\n currentTenantId,\n });\n return false;\n };\n\n applySSOTenants().then((handled) => {\n if (cancelled || handled) return;\n setSsoMode(false);\n buildRoleBasedOptions();\n });\n\n return () => {\n cancelled = true;\n };\n }, [dropDownData]);\n\n function buildRoleBasedOptions() {\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 }\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 showArrow={true}\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 {switchError && <Toast type=\"error\" label={prop?.t(switchError)} onClose={() => setSwitchError(null)} />}\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\";\nimport { rememberChosenLanguage } from \"../utils/tenantLocale\";\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 /* A deliberate choice: remember it for this deployment, and leave a pending marker so\n it carries into whichever tenant the user opens next. */\n rememberChosenLanguage(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 showArrow={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=\"loginScreen 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\n// Visually hidden but exposed to assistive technology (same recipe as the common .sr-only utility)\nconst srOnlyStyle = {\n position: \"absolute\",\n width: \"1px\",\n height: \"1px\",\n padding: 0,\n margin: \"-1px\",\n overflow: \"hidden\",\n clip: \"rect(0, 0, 0, 0)\",\n whiteSpace: \"nowrap\",\n border: 0,\n};\n\nconst EmployeeHome = ({ modules, additionalComponent }) => {\n const { t } = useTranslation();\n return (\n <>\n <div className=\"employee-app-container digit-home-employee-app\">\n {/* Every page needs one h1 (axe page-has-heading-one); the landing page has no visible title,\n so expose one to screen readers only */}\n <h1 style={srOnlyStyle}>{t(\"CORE_COMMON_HOME\")}</h1>\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 isDigitStudio = window.location.href.includes(\"digit-studio\");\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 // DIGIT Studio: citizen services are reached from the home/landing tiles —\n // module links are dropped from the sidebar (web parity: CitizenSideNav).\n if (!isDigitStudio) {\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 }\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 // DIGIT Studio: no \"Modules\" group — remaining entries (e.g. Login) surface\n // as top-level items instead.\n ...(isDigitStudio\n ? transformedMenuItems || []\n : [\n {\n label: t(\"Modules\"),\n icon: \"DriveFileMove\",\n children: transformedMenuItems,\n },\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\";\nimport { clearIdpToken } from \"../../utils/idpToken\";\nimport { restoreLanguagePreferences, snapshotLanguagePreferences } from \"../../utils/tenantLocale\";\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\n const clearSSOLogoutMarkers = () => {\n localStorage.removeItem(\"sso-provider\");\n localStorage.removeItem(\"sso-client-id\");\n localStorage.removeItem(\"sso-tenant-id\");\n localStorage.removeItem(\"sso-authority\");\n localStorage.removeItem(\"sso-logout-url\");\n localStorage.removeItem(\"sso-logout-redirect-param\");\n };\n\n /* Deployment the user logged in through, recorded at login. Must be read before\n UserService.logout(), which clears all of localStorage. */\n const getLoginSource = () => localStorage.getItem(\"login.source\") || window?.contextPath || \"\";\n\n /* Straight to login, not the language picker: the remembered language is preserved across\n logout, so there is nothing to ask. Same target as the password path below. */\n const getSSOPostLogoutRedirectUri = (source) => `${window.location.origin}/${source}/employee/user/login`;\n\n const handleSSOLogout = async (source, preservedLanguages) => {\n const provider = localStorage.getItem(\"sso-provider\");\n const normalizedProvider = provider?.toUpperCase();\n const logoutUrlFromConfig = localStorage.getItem(\"sso-logout-url\");\n const redirectParamName = localStorage.getItem(\"sso-logout-redirect-param\") || \"post_logout_redirect_uri\";\n\n // Perform provider-specific cleanup before logout\n if (normalizedProvider === \"GOOGLE\") {\n const token = localStorage.getItem(\"google_access_token\");\n\n try {\n if (window.google?.accounts?.id) {\n window.google.accounts.id.disableAutoSelect();\n }\n\n if (token) {\n await fetch(`https://oauth2.googleapis.com/revoke?token=${encodeURIComponent(token)}`, {\n method: \"POST\",\n headers: {\n \"Content-type\": \"application/x-www-form-urlencoded\",\n },\n });\n localStorage.removeItem(\"google_access_token\");\n }\n } catch (error) {\n console.error(\"Provider cleanup error\", error);\n }\n }\n\n // Generic SSO logout handler\n if (logoutUrlFromConfig) {\n const postLogoutRedirectUri = getSSOPostLogoutRedirectUri(source);\n clearSSOLogoutMarkers();\n\n try {\n await Digit.UserService.logout();\n } finally {\n restoreLanguagePreferences(preservedLanguages);\n /* Only now that /user/_logout has been sent. The browser attaches this cookie\n automatically, so dropping it any earlier makes logout the one request in the\n session without it - which the gateway rejects with a 401. And it has to happen\n before the IdP redirect below, because that navigation abandons the page. */\n clearIdpToken();\n try {\n const url = new URL(logoutUrlFromConfig);\n url.searchParams.set(redirectParamName, postLogoutRedirectUri);\n window.location.href = url.toString();\n } catch (error) {\n window.location.href = `${logoutUrlFromConfig}?${redirectParamName}=${encodeURIComponent(postLogoutRedirectUri)}`;\n }\n }\n\n return true;\n }\n\n return false;\n };\n\n const handleOnSubmit = async () => {\n const source = getLoginSource();\n /* logout() wipes all of localStorage, which would take the remembered languages with it.\n Snapshot now, put them back once the wipe has happened. */\n const preservedLanguages = snapshotLanguagePreferences();\n /* Note: the IdP cookie is deliberately NOT cleared here. logout() does not touch\n cookies, so it has to be dropped explicitly - but only once /user/_logout has gone\n out, since the browser sends it on every request and its absence is a 401. Both\n branches below do that at the right moment. */\n const handledBySSO = await handleSSOLogout(source, preservedLanguages);\n if (!handledBySSO) {\n await Digit.UserService.logout();\n restoreLanguagePreferences(preservedLanguages);\n clearIdpToken();\n /* UserService.logout() redirects to the CURRENT contextPath. Send the user back to\n the deployment they logged in through instead - same override the SSO branch above\n already relies on. */\n window.location.replace(`/${source}/employee/user/login`);\n }\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 = (eventOrValue) => {\n // The TextInput eye-toggle calls onChange with the raw value prop instead of an event\n const value = typeof eventOrValue === \"string\" ? eventOrValue : eventOrValue?.target?.value ?? \"\";\n setCurrentPassword(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 = (eventOrValue) => {\n const value = typeof eventOrValue === \"string\" ? eventOrValue : eventOrValue?.target?.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 = (eventOrValue) => {\n const value = typeof eventOrValue === \"string\" ? eventOrValue : eventOrValue?.target?.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 if (responseInfo && responseInfo.status === \"successful\") {\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 console.error(\"Change password failed:\", error);\n throw JSON.stringify({\n type: \"error\",\n message:\n error?.Errors?.[0]?.description ||\n error?.response?.data?.Errors?.[0]?.description ||\n \"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 === \"successful\") {\n showToast(\"success\", t(\"CORE_COMMON_PROFILE_UPDATE_SUCCESS\"), 5000);\n }\n } catch (error) {\n console.error(\"Profile update failed:\", error);\n let errorObj;\n try {\n errorObj = JSON.parse(error);\n } catch (e) {\n errorObj = {\n type: \"error\",\n message:\n error?.response?.data?.Errors?.[0]?.description ||\n error?.Errors?.[0]?.description ||\n \"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: \"var(--digitv2-lightTheme-primary, #008080)\",\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 value={currentPassword}\n onChange={setUserCurrentPassword}\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 value={newPassword}\n onChange={setUserNewPassword}\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 value={confirmPassword}\n onChange={setUserConfirmPassword}\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: \"var(--digitv2-lightTheme-primary, #008080)\",\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 = (eventOrValue) => {\n // The TextInput eye-toggle calls onChange with the raw value prop instead of an event\n const value = typeof eventOrValue === \"string\" ? eventOrValue : eventOrValue?.target?.value ?? \"\";\n setCurrentPassword(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 = (eventOrValue) => {\n const value = typeof eventOrValue === \"string\" ? eventOrValue : eventOrValue?.target?.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 = (eventOrValue) => {\n const value = typeof eventOrValue === \"string\" ? eventOrValue : eventOrValue?.target?.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 console.error(\"Change password failed:\", error);\n throw JSON.stringify({\n type: \"error\",\n message:\n error?.Errors?.[0]?.description ||\n error?.response?.data?.Errors?.[0]?.description ||\n \"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 console.error(\"Profile update failed:\", error);\n let errorObj;\n try {\n errorObj = JSON.parse(error);\n } catch (e) {\n errorObj = {\n type: \"error\",\n message:\n error?.response?.data?.Errors?.[0]?.description ||\n error?.Errors?.[0]?.description ||\n \"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 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: \"var(--digitv2-lightTheme-primary, #008484)\",\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 value={currentPassword}\n onChange={setUserCurrentPassword}\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 value={newPassword}\n onChange={setUserNewPassword}\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 value={confirmPassword}\n onChange={setUserConfirmPassword}\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: \"var(--digitv2-lightTheme-primary, #008080)\",\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\n className=\"card-text-button resend-otp\"\n role=\"button\"\n tabIndex={0}\n onClick={handleResendOtp}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n handleResendOtp();\n }\n }}\n >\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\n className=\"card-text-button\"\n role=\"button\"\n tabIndex={0}\n onClick={handleResendOtp}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n handleResendOtp();\n }\n }}\n >\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 // Tenant + language switchers — parity with the mobile hamburger (CitizenSideBar).\n const { data: storeData } = Digit.Hooks.useStore.getInitData();\n const { languages, stateInfo } = storeData || {};\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 // Same behaviour as the mobile hamburger's city switch: narrow the logged-in\n // user's roles/tenant to the picked city and reload.\n const handleChangeCity = (city) => {\n const loggedInData = Digit.SessionStorage.get(\"citizen.userRequestObject\");\n const filteredRoles = loggedInData?.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 try {\n window.location.reload();\n } catch (error) {\n console.warn(\"Failed to reload page:\", error);\n }\n };\n\n const handleChangeLanguage = (language) => {\n Digit.LocalizationService.changeLanguage(language.value, stateInfo?.code);\n };\n\n const onItemSelect = ({ item }) => {\n if (item?.type === \"custom\") {\n if (item.key === \"city\") handleChangeCity(item);\n else if (item.key === \"language\") handleChangeLanguage(item);\n return;\n }\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 // DIGIT Studio only: city + language switchers (parity with the mobile\n // hamburger), since Studio drops the module-links section below. Stock\n // DIGIT keeps its original sidebar contents unchanged.\n if (isDigitStudio) {\n // Options come from the logged-in user's role tenants; without options\n // (logged out) the item still shows the current city, like mobile.\n const cityCodes = [\n ...new Set(\n (Digit.SessionStorage.get(\"citizen.userRequestObject\")?.info?.roles || [])\n .map((role) => role.tenantId)\n .filter(Boolean)\n ),\n ];\n const cityChildren = cityCodes.map((code) => ({\n label: t(`TENANT_TENANTS_${code.replace(/\\./g, \"_\").toUpperCase()}`),\n value: code,\n type: \"custom\",\n key: \"city\",\n icon: { icon: \"LocationCity\", width: \"1.5rem\", height: \"1.5rem\" },\n }));\n const currentCityLabel = isMultiRootTenant\n ? t(`TENANT_TENANTS_${tenantId}`)\n : t(`TENANT_TENANTS_${(Digit.ULBService.getCurrentTenantId() || \"\").replace(/\\./g, \"_\").toUpperCase()}`);\n items.push({\n label: currentCityLabel,\n icon: { icon: \"LocationCity\", width: \"1.5rem\", height: \"1.5rem\" },\n children: cityChildren.length > 0 ? cityChildren : undefined,\n orderNumber: orderCounter++,\n });\n\n items.push({\n label: t(\"Language\"),\n icon: { icon: \"Language\", width: \"1.5rem\", height: \"1.5rem\" },\n children:\n languages?.length > 0\n ? languages.map((language) => ({\n ...language,\n type: \"custom\",\n key: \"language\",\n icon: { icon: \"Language\", width: \"1.5rem\", height: \"1.5rem\" },\n }))\n : undefined,\n orderNumber: orderCounter++,\n });\n }\n\n // DIGIT Studio: citizen services are reached from the home/landing tiles —\n // the module links section is dropped from the sidebar entirely (mobile\n // parity: CitizenSideBar's hamburger drops its \"Modules\" group).\n if (!isDigitStudio) {\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 = 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: 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\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 // DIGIT Studio configurable citizen pages — rendered inside the citizen Home\n // shell so they inherit the real DIGIT top bar + footer (routes added below).\n const CitizenLandingPage = Digit.ComponentRegistryService?.getComponent(\"CitizenLandingPage\");\n const ServiceLandingPage = Digit.ComponentRegistryService?.getComponent(\"ServiceLandingPage\");\n const ServiceActionsPage = Digit.ComponentRegistryService?.getComponent(\"ServiceActionsPage\");\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 {/* DIGIT Studio configurable citizen pages */}\n {CitizenLandingPage && <Route path=\"user/citizen-landing\" element={<CitizenLandingPage />} />}\n {ServiceLandingPage && <Route path=\"user/service-landing\" element={<ServiceLandingPage />} />}\n {ServiceActionsPage && <Route path=\"user/service-actions\" element={<ServiceActionsPage />} />}\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 // Forgot-password navigates here with ?USERNAME=...; mobile_number is kept\n // as a fallback for any older links that still use it.\n const { mobile_number: mobileNumber, USERNAME: userName, tenantId } = Digit.Hooks.useQueryParams();\n const userIdentifier = userName || mobileNumber;\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 userName: userIdentifier,\n mobileNumber: userIdentifier,\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 mobileNumber: 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: \"var(--digitv2-lightTheme-primary, #363636)\" }}\n descriptionStyles={{ color: \"#787878\", textAlign: \"center\", fontWeight: \"normal\", fontSize: \"18px\" }}\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: \"var(--digitv2-lightTheme-primary, #363636)\" }}\n descriptionStyles={{ color: \"#787878\", textAlign: \"center\", fontWeight: \"normal\", fontSize: \"18px\" }}\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\";\nimport { loginConfig as defaultLoginConfig } from \"../Login/config\";\nimport { useLoginConfig } from \"../../../hooks/useLoginConfig\";\nimport { rememberChosenLanguage } from \"../../../utils/tenantLocale\";\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 // Same LoginConfig (MDMS override, else local default) the Login screen uses for showTenant.\n const { data: loginMdmsData } = useLoginConfig(Digit.ULBService.getStateId());\n const loginScreenConfig = loginMdmsData?.config?.[0] || defaultLoginConfig?.[0];\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 [isChangingLanguage, setIsChangingLanguage] = useState(false);\n const handleChangeLanguage = async (language) => {\n setselected(language.value);\n /* A deliberate choice - see ChangeLanguage. Written before the fetch so the preference\n survives even if the user navigates away mid-load. */\n rememberChosenLanguage(language.value);\n setIsChangingLanguage(true);\n await Promise.all([\n Digit.LocalizationService.getLocale({ modules: [\"digit-ui\", \"digit-privacy-policy\"], locale: language.value, tenantId: stateInfo.code }),\n Digit.LocalizationService.changeLanguage(language.value, stateInfo.code),\n ]);\n setIsChangingLanguage(false);\n };\n const hasMultipleLanguages = languages?.length > 1;\n\n const handleSubmit = (event) => {\n if (isChangingLanguage) return;\n navigate(`/${window?.contextPath}/employee/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 language-selector\">\n <ImageComponent className=\"bannerLogo\" src={stateInfo?.logoUrl} alt=\"Digit Banner Image\" />\n\n {loginScreenConfig?.showTenant !== false && <p>{t(`TENANT_TENANTS_${stateInfo?.code?.toUpperCase()}`)}</p>}\n </div>\n <div className=\"language-selector-header\">{t(\"CS_COMMON_CHOOSE_LANGUAGE_HEADER\")}</div>\n <div className=\"language-selector\" style={{ justifyContent: \"space-around\", 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} disabled={isChangingLanguage} />\n {isChangingLanguage && <Loader variant={\"OverlayLoader\"} loaderText={\"CORE_LOADING\"} />}\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 <\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 >\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 key: \"employeeSsoLoginOptions\",\n type: \"component\",\n disable: false,\n component: \"EmployeeSSOLoginOptions\",\n populators: {\n name: \"employeeSsoLoginOptions\"\n },\n isMandatory: false,\n withoutLabel: true,\n renderAfterSubmit:true\n },\n ],\n\n // If you just want to show a popup when clicked on forgot password\n // forgotPasswordScreen: {\n // mode: \"popup\",\n // popupFields: {\n // heading: \"CORE_COMMON_FORGOT_PASSWORD_LABEL\",\n // description: \"CORE_FORGOT_PASSWORD_POPUP_DESCRIPTION\",\n // buttonLabel: \"CORE_FORGOT_PASSWORD_POPUP_OK\",\n // },\n // },\n // If you dont want to show tenant infromation before the logo icon in login page\n // showTenant : false\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 { CardText, PopUp, Button } from \"@egovernments/digit-ui-components\";\nimport React from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nconst ForgotPasswordDialog = ({ onDismiss, heading, description, buttonLabel, PopupStyles }) => {\n const { t } = useTranslation();\n\n const children = [\n <div>\n <CardText>{t(description)}</CardText>\n </div>,\n ];\n\n const footer = [\n <Button\n type={\"button\"}\n size={\"large\"}\n variation={\"primary\"}\n label={t(buttonLabel)}\n onClick={onDismiss}\n />,\n ];\n\n return (\n <PopUp\n type=\"default\"\n children={children}\n heading={t(heading)}\n footerChildren={footer}\n sortFooterButtons={true}\n onClose={onDismiss}\n className={\"digit-forgot-password-popup-wrapper\"}\n onOverlayClick={onDismiss}\n equalWidthButtons={true}\n style={PopupStyles}\n ></PopUp>\n );\n};\nexport default ForgotPasswordDialog;\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\";\nimport ForgotPasswordDialog from \"../../../components/Dialog/ForgotPasswordDialog\";\n// import SkipToMainContent from \"../SkipToMainContent/SkipToMainContent\";\nimport withAutoFocusMain from \"../../../hoc/withAutoFocusMain\";\nimport { clearIdpToken, setIdpToken } from \"../../../utils/idpToken\";\nimport { filterDeployable, isSharedLoginDeployment, lookupTenants, sortByTenantId, storeSSOTenants } from \"../../../utils/ssoTenants\";\n\n// Used only if forgotPasswordScreen.mode is \"popup\" but popupFields isn't fully specified.\nconst DEFAULT_FORGOT_PASSWORD_POPUP = {\n heading: \"CORE_COMMON_FORGOT_PASSWORD_LABEL\",\n description: \"CORE_FORGOT_PASSWORD_POPUP_DESCRIPTION\",\n buttonLabel: \"CORE_FORGOT_PASSWORD_POPUP_OK\",\n};\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\n/**\n * Is this page load the IdP redirecting back to us?\n *\n * Knowable synchronously from the URL, which matters: the callback effect cannot run until\n * `stateInfo` has arrived from MDMS, and the moment the page-level `isStoreLoading` gate\n * clears, the login form paints. The user has already authenticated with the IdP by then, so\n * being shown the login form again mid-sign-in reads as the login having failed.\n *\n * An `error` in the callback is excluded deliberately - that path shows a toast on the form,\n * so the form is what should be visible.\n */\nconst isSSOCallbackUrl = () => {\n try {\n const hashParams = new URLSearchParams(window.location.hash.slice(1));\n const searchParams = new URLSearchParams(window.location.search);\n if (searchParams.get(\"error\") || hashParams.get(\"error\")) return false;\n return Boolean(\n hashParams.get(\"id_token\") || searchParams.get(\"id_token\") || searchParams.get(\"code\") || hashParams.get(\"code\"),\n );\n } catch (e) {\n return false;\n }\n};\n\nconst Login = ({ config: propsConfig, t, isDisabled, loginOTPBased }) => {\n const { data: cities, isLoading } = Digit.Hooks.useTenants();\n const {\n data: storeData,\n isLoading: isStoreLoading,\n } = Digit.Hooks.useStore.getInitData();\n const {\n data: ssoMDMSData,\n isLoading: isSSOMDMSLoading,\n } = Digit.Hooks.useSSOConfig(Digit.ULBService.getStateId(), {\n select: (data) => {\n const config =\n data?.MdmsRes?.[\"SSO\"]?.IdentityProviders ||\n data?.[\"SSO\"]?.IdentityProviders ||\n data?.[\"IdentityProviders\"] ||\n [];\n return Array.isArray(config) ? config : [];\n },\n });\n const { stateInfo } = storeData || {};\n const [user, setUser] = useState(null);\n const [showToast, setShowToast] = useState(null);\n const [disable, setDisable] = useState(false);\n /* Lazy initialiser, so the overlay is already up on the FIRST render of a callback rather\n than only once the effect below gets to run. The effect clears it when the URL carries no\n callback, so a plain visit to /user/login is unaffected and a bfcache restore of the\n pre-redirect page cannot inherit a stale loader. */\n const [loginLoader, setLoginLoader] = useState(isSSOCallbackUrl);\n const [showForgotPasswordPopup, setShowForgotPasswordPopup] = useState(false);\n const forgotScreenConfig = propsConfig?.forgotPasswordScreen;\n const navigate = useNavigate();\n const DynamicLoginComponent = Digit.ComponentRegistryService?.getComponent(\n \"DynamicLoginComponent\",\n );\n\n /* Generic SSO Callback Handler - runs on mount / when disable/user/stateInfo change */\n useEffect(() => {\n const hashParams = new URLSearchParams(window.location.hash.slice(1));\n const searchParams = new URLSearchParams(window.location.search);\n const idToken = hashParams.get(\"id_token\") || searchParams.get(\"id_token\");\n const accessToken =\n hashParams.get(\"access_token\") || searchParams.get(\"access_token\");\n const code = searchParams.get(\"code\");\n\n const error = searchParams.get(\"error\") || hashParams.get(\"error\");\n const errorDescription =\n searchParams.get(\"error_description\") ||\n hashParams.get(\"error_description\") ||\n searchParams.get(\"errorDescription\") ||\n hashParams.get(\"errorDescription\");\n\n // If we are not on an SSO callback URL, never keep the SSO overlay loader.\n // Important: we intentionally don't set the loader before redirecting to the provider,\n // so browser back (including bfcache restores) won't get stuck with a stale loader.\n // Note: do NOT reset `disable` here — it is also used for form-validation gating and\n // resetting it would fight FormComposerV2's onFormValueChange, causing an infinite loop.\n if (!idToken && !code && !error) {\n if (loginLoader) setLoginLoader(false);\n return;\n }\n\n if (error && !showToast) {\n setShowToast(errorDescription || \"SSO Login Failed!\");\n setTimeout(closeToast, 5000);\n setLoginLoader(false);\n setDisable(false);\n return;\n }\n\n if (!stateInfo?.code) {\n // Tenant/state not ready yet; wait and retry when stateInfo arrives.\n return;\n }\n\n if ((idToken || code) && !user && !disable) {\n if (idToken) {\n /* Keep the IdP token past this exchange: the tenant lookup\n (/user/oauth/tenants) and later tenant switching both re-use it. */\n setIdpToken(idToken);\n handleSSOCallback(idToken, accessToken);\n } else if (code) {\n setDisable(true);\n setLoginLoader(true);\n Digit.UserService.microsoftAuthenticate({ code })\n .then(({ UserRequest: info, ...tokens }) => {\n Digit.SessionStorage.set(\"Employee.tenantId\", info?.tenantId);\n setUser({ info, ...tokens });\n setDisable(false);\n setLoginLoader(false);\n })\n .catch((err) => {\n setShowToast(\n err?.response?.data?.error_description || \"Login Failed!\",\n );\n setTimeout(closeToast, 5000);\n setDisable(false);\n setLoginLoader(false);\n });\n }\n }\n\n }, [user, disable, stateInfo, loginLoader, showToast]);\n\n /* Post-login redirect and user setup */\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 /* Remember which deployment the user logged in through (the shared/common login, or a\n tenant-specific one) so logout can return them there. This has to be captured here:\n after the cross-deployment redirect window.contextPath is the TARGET tenant, not the\n deployment the login actually happened on. */\n localStorage.setItem(\"login.source\", window?.contextPath || \"\");\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 (\n user?.info?.roles &&\n user?.info?.roles?.every((e) => e.code === \"NATADMIN\")\n ) {\n redirectPath = `/${window?.contextPath}/employee/dss/landing/NURT_DASHBOARD`;\n }\n\n /* RAIN-6489 Logic to navigate to National DSS home incase user has only one role [NATADMIN]*/\n if (\n user?.info?.roles &&\n user?.info?.roles?.every((e) => e.code === \"STADMIN\")\n ) {\n redirectPath = `/${window?.contextPath}/employee/dss/landing/home`;\n }\n\n navigate(redirectPath, { replace: true });\n }, [user]);\n\n /* Surface a terminal SSO failure. Clearing the token out of the URL stops the callback\n effect re-firing with the same id_token, and the stored token is dropped because it is\n valid but unusable here. */\n const failSSOLogin = (messageCode) => {\n clearIdpToken();\n setShowToast(messageCode);\n setTimeout(closeToast, 5000);\n try {\n window.history.replaceState({}, document.title, window.location.pathname);\n } catch (e) {\n // no-op\n }\n };\n\n /* Decide which tenantId to exchange against.\n - shared login : auto-select the first mapped tenant\n - tenant deploy : confirm the subject is mapped to THIS tenant\n Returns null when login cannot continue (a toast has already been shown). */\n const resolveTenantForLogin = async (idToken) => {\n const deploymentTenant = Digit.ULBService.getStateId();\n\n let tenants;\n try {\n tenants = await lookupTenants(idToken);\n storeSSOTenants(tenants);\n } catch (error) {\n /* The endpoint is only registered when auth.oidc.enabled=true, so a failure here must\n not block login - fall back to the pre-lookup behaviour of exchanging against this\n deployment's own tenant. */\n console.warn(\"[sso] tenant lookup unavailable, falling back to\", deploymentTenant, error);\n return deploymentTenant;\n }\n\n /* Sort explicitly: response order is not guaranteed, and \"the first tenant\" has to be the\n same one on every login. */\n const sorted = sortByTenantId(tenants);\n\n if (isSharedLoginDeployment()) {\n if (!sorted.length) {\n failSSOLogin(\"SSO_NO_TENANTS_MAPPED\");\n return null;\n }\n /* No keepTenantId: the shared-login tenant is not somewhere we can leave the user. */\n const deployable = filterDeployable(sorted);\n if (!deployable.length) {\n failSSOLogin(\"SSO_NO_DEPLOYABLE_TENANT\");\n return null;\n }\n return deployable[0]?.tenantId;\n }\n\n if (!sorted.some((tenant) => tenant?.tenantId === deploymentTenant)) {\n failSSOLogin(\"SSO_NO_ACCESS_TO_THIS_TENANT\");\n return null;\n }\n return deploymentTenant;\n };\n\n /* Resolve the tenant, then exchange. disable/loader are set here rather than only in\n handleDigitLogin so the callback effect cannot re-enter while the lookup is in flight. */\n const handleSSOCallback = async (idToken, accessToken = null) => {\n setDisable(true);\n setLoginLoader(true);\n\n const tenantId = await resolveTenantForLogin(idToken);\n if (!tenantId) {\n setDisable(false);\n setLoginLoader(false);\n return;\n }\n\n await handleDigitLogin(idToken, accessToken, tenantId);\n };\n\n /* Generic Token Exchange with DIGIT Backend */\n const handleDigitLogin = async (idToken, accessToken = null, tenantId = stateInfo?.code) => {\n setDisable(true);\n setLoginLoader(true);\n try {\n const response = await fetch(\"/user/oauth/token\", {\n method: \"POST\",\n headers: {\n Authorization: `Basic ${\n window?.globalConfigs?.getConfig(\"JWT_TOKEN\") ||\n \"ZWdvdi11c2VyLWNsaWVudDo=\"\n }`,\n \"Content-Type\": \"application/x-www-form-urlencoded\",\n },\n body: new URLSearchParams({\n grant_type: \"jwt_exchange\",\n scope: \"read\",\n userType: \"EMPLOYEE\",\n assertion: idToken,\n ...(accessToken && { access_token: accessToken }),\n tenantId,\n }),\n });\n\n if (!response.ok) {\n const raw = await response.text();\n let parsed;\n try {\n parsed = raw ? JSON.parse(raw) : null;\n } catch (e) {\n parsed = null;\n }\n const message =\n parsed?.error_description ||\n parsed?.errorDescription ||\n parsed?.message ||\n parsed?.error ||\n raw ||\n \"DIGIT Login Failed\";\n throw new Error(message);\n }\n\n const data = await response.json();\n const { UserRequest: info, ...tokens } = data;\n\n Digit.SessionStorage.set(\"Employee.tenantId\", info?.tenantId);\n setUser({ info, ...tokens });\n } catch (error) {\n console.error(\"DIGIT Login Error:\", error);\n setShowToast(error?.message || \"DIGIT Login Failed\");\n setTimeout(closeToast, 5000);\n\n\n // If token exchange fails, force Microsoft to prompt credentials on next SSO click.\n try {\n window.sessionStorage.setItem(\"sso.force.prompt.login\", \"true\");\n } catch (e) {\n // no-op\n }\n\n // Prevent retry loop: clear `id_token`/`code` from URL (stay on same page).\n try {\n window.history.replaceState({}, document.title, window.location.pathname);\n } catch (e) {\n // no-op\n }\n }\n setDisable(false);\n setLoginLoader(false);\n };\n\n const buildOIDCAuthorizeUrl = (uiConfig) => {\n const {\n authorizeUrl,\n clientId,\n scopes = [\"openid\", \"profile\", \"email\"],\n responseType = \"id_token\",\n responseMode = \"fragment\",\n nonceRequired = true,\n redirectPath = \"employee/user/login\",\n resource,\n provider,\n prompt,\n } = uiConfig || {};\n\n if (!authorizeUrl || !clientId) {\n throw new Error(\"Missing authorizeUrl or clientId for OIDC login\");\n }\n\n const nonce = nonceRequired\n ? Math.random().toString(36).substring(2)\n : undefined;\n const redirectUri = `${window.location.origin}/${window?.contextPath}/${redirectPath}`;\n\n const params = new URLSearchParams();\n params.set(\"client_id\", clientId);\n params.set(\"response_type\", responseType);\n params.set(\"redirect_uri\", redirectUri);\n if (nonce) params.set(\"nonce\", nonce);\n if (responseMode) params.set(\"response_mode\", responseMode);\n if (scopes && scopes.length) params.set(\"scope\", scopes.join(\" \"));\n if (resource) params.set(\"resource\", resource);\n\n // Handle prompt parameter with priority:\n // 1. Use configured prompt from SSO config (respects admin configuration)\n // 2. Fall back to forced login only if no prompt is configured AND a previous login failed\n try {\n const forcePromptLogin = window.sessionStorage.getItem(\"sso.force.prompt.login\") === \"true\";\n\n if (prompt) {\n // Respect configured prompt (e.g., \"select_account\", \"consent\")\n params.set(\"prompt\", prompt);\n // Clear the force flag since we're using configured prompt\n if (forcePromptLogin) {\n window.sessionStorage.removeItem(\"sso.force.prompt.login\");\n }\n } else if (forcePromptLogin) {\n // Only force login if no prompt is configured\n params.set(\"prompt\", \"login\");\n window.sessionStorage.removeItem(\"sso.force.prompt.login\");\n }\n } catch (e) {\n // If prompt is configured, still set it even if sessionStorage fails\n if (prompt) {\n params.set(\"prompt\", prompt);\n }\n }\n\n return `${authorizeUrl}?${params.toString()}`;\n };\n\n const onSSOLogin = async (ssoConfig) => {\n // For OIDC-like providers (MICROSOFT, GOOGLE, etc.), use generic OIDC login\n const ui = ssoConfig?.ui || {};\n const hasOidcConfig = Boolean((ui.authorizeUrl || ssoConfig?.authorizeUrl) && ui.clientId);\n\n if (ui.authStrategy === \"OIDC_POPUP\" || ui.provider === \"MICROSOFT\" || hasOidcConfig) {\n return onOIDCLogin(ssoConfig);\n }\n\n // If the config doesn't match any known SSO strategy, don't leave the overlay loader stuck.\n setShowToast(\"SSO configuration is invalid or unsupported\");\n setTimeout(closeToast, 5000);\n };\n\n const onOIDCLogin = async (ssoConfig) => {\n try {\n const ui = { ...(ssoConfig?.ui || {}) };\n // Backward-compatibility for older configs where authorizeUrl/resource\n // might be on the top level instead of inside ui.\n ui.authorizeUrl = ui.authorizeUrl || ssoConfig?.authorizeUrl;\n ui.resource = ui.resource || ssoConfig?.resource;\n // For Microsoft, if resource is not explicitly provided, default it to clientId (v1 behavior).\n if (ui.provider === \"MICROSOFT\" && !ui.resource) {\n ui.resource = ui.clientId;\n }\n // Persist provider + logout-relevant info for later use during logout\n if (ui.provider) {\n localStorage.setItem(\"sso-provider\", ui.provider);\n }\n if (ui.logoutUrl) {\n localStorage.setItem(\"sso-logout-url\", ui.logoutUrl);\n }\n if (ui.logoutRedirectParam) {\n localStorage.setItem(\"sso-logout-redirect-param\", ui.logoutRedirectParam);\n }\n if (ui.tenantId) {\n localStorage.setItem(\"sso-tenant-id\", ui.tenantId);\n }\n if (ui.authority) {\n localStorage.setItem(\"sso-authority\", ui.authority);\n }\n const url = buildOIDCAuthorizeUrl(ui);\n // Simple implementation: redirect for OIDC if no library is present\n // For a better experience, a popup and message bridge should be used\n window.location.href = url;\n } catch (error) {\n console.error(\"OIDC Login Error:\", error);\n setShowToast(error.message || \"OIDC Login Failed\");\n setTimeout(closeToast, 5000);\n setLoginLoader(false);\n }\n };\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 setLoginLoader(true);\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 setLoginLoader(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\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 navigate(`/${window?.contextPath}/employee/user/login/otp`, {\n state: {\n email: inputEmail,\n tenant: Digit?.ULBService?.getStateId(),\n },\n });\n },\n },\n );\n };\n\n const closeToast = () => {\n setShowToast(null);\n };\n\n const onForgotPassword = () => {\n if (forgotScreenConfig?.mode === \"popup\") {\n setShowForgotPasswordPopup(true);\n return;\n }\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(\n `TENANT_TENANTS_${defaultTenant}`,\n ),\n };\n\n /* \"oidc-google\" -> \"Google\", \"MICROSOFT\" -> \"Microsoft\". Used only when the provider has\n no localisation entry, so the button shows a readable name instead of a raw key. */\n const prettifyProviderName = (value = \"\") =>\n String(value)\n .replace(/^(oidc|sso)[-_]/i, \"\")\n .replace(/[-_]+/g, \" \")\n .trim()\n .toLowerCase()\n .replace(/\\b\\w/g, (char) => char.toUpperCase());\n\n /* t() returns the key unchanged when there is no message for it, which would put\n \"SSO_PROVIDER_OIDC-GOOGLE\" on the button. Detect that and use the provider name. */\n const resolveProviderLabel = (sso) => {\n const key = `SSO_PROVIDER_${sso.ui?.name || sso.id}`;\n const translated = t(key);\n if (translated && translated !== key) return translated;\n return prettifyProviderName(sso.ui?.provider || sso.ui?.name || sso.provider || sso.id);\n };\n\n const ssoConfigs = ssoMDMSData?.map((sso) => ({\n ...sso,\n provider: sso.ui?.provider || sso.provider || \"sso\",\n /* Already localised - EmployeeSSOLoginOptions must not translate it again. */\n label: resolveProviderLabel(sso),\n /* The logo URL, deliberately NOT a React element. Button-style `icon` props are\n resolved by NAME against digit-ui-svg-components, so passing an <img> here rendered\n as null and left the button blank. EmployeeSSOLoginOptions renders this itself and\n falls back to `label` when the URL is missing or fails to load. */\n logo: sso.ui?.logo || null,\n onLogin: (ssoConfig) => {\n onSSOLogin(ssoConfig);\n },\n }));\n\n let config = [\n {\n body: propsConfig?.inputs?.map((field) =>\n field?.component === \"EmployeeSSOLoginOptions\"\n ? {\n ...field,\n customProps: {\n ...field.customProps,\n ssoConfigs,\n },\n }\n : field,\n ),\n },\n ];\n\n const { mode } = Digit.Hooks.useQueryParams();\n if (\n mode === \"admin\" &&\n config?.[0]?.body?.[2]?.disable == false &&\n config?.[0]?.body?.[2]?.populators?.defaultValue == undefined\n ) {\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(\n () =>\n Object.fromEntries(\n config[0].body\n .filter(\n (field) =>\n field?.populators?.defaultValue && field?.populators?.name,\n )\n .map((field) => [\n field.populators.name,\n field.populators.defaultValue,\n ]),\n ),\n [],\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 description={propsConfig?.texts?.description}\n className={`${wrapperClass}`}\n cardSubHeaderClassName=\"loginCardSubHeaderClassName\"\n cardClassName={cardClassName}\n buttonClassName=\"buttonClassName\"\n defaultValues={defaultValues}\n className=\"digit-login-screen-form\"\n >\n {stateInfo?.code && propsConfig?.showTenant !== false ? <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 if (isLoading || isStoreLoading) {\n return <Loader page={true} variant=\"PageLoader\" />;\n }\n\n /* Shared by both layouts below. It used to live only in the non-banner branch, so a\n deployment configured with bannerImages showed no loader at all while the SSO callback\n was being exchanged. */\n const ssoOverlay = loginLoader && (\n <div\n style={{\n position: \"fixed\",\n top: 0,\n left: 0,\n width: \"100vw\",\n height: \"100vh\",\n background: \"rgba(0,0,0,0.35)\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n zIndex: 9999,\n }}\n >\n <Loader />\n </div>\n );\n\n return propsConfig?.bannerImages ? (\n <div className=\"login-container\">\n {/* <SkipToMainContent class_name={\".login-form-container\"}/> */}\n {ssoOverlay}\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 {showForgotPasswordPopup && (\n <ForgotPasswordDialog\n heading={forgotScreenConfig?.popupFields?.heading || DEFAULT_FORGOT_PASSWORD_POPUP.heading}\n description={forgotScreenConfig?.popupFields?.description || DEFAULT_FORGOT_PASSWORD_POPUP.description}\n buttonLabel={forgotScreenConfig?.popupFields?.buttonLabel || DEFAULT_FORGOT_PASSWORD_POPUP.buttonLabel}\n onDismiss={() => setShowForgotPasswordPopup(false)}\n />\n )}\n {renderFooter(\"EmployeeLoginFooter\")}\n </div>\n </div>\n ) : (\n <Background>\n {ssoOverlay}\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 {showForgotPasswordPopup && (\n <ForgotPasswordDialog\n heading={forgotScreenConfig?.popupFields?.heading || DEFAULT_FORGOT_PASSWORD_POPUP.heading}\n description={forgotScreenConfig?.popupFields?.description || DEFAULT_FORGOT_PASSWORD_POPUP.description}\n buttonLabel={forgotScreenConfig?.popupFields?.buttonLabel || DEFAULT_FORGOT_PASSWORD_POPUP.buttonLabel}\n onDismiss={() => setShowForgotPasswordPopup(false)}\n />\n )}\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 /* See Login/login.js: remember the deployment the login happened on, for logout. */\n localStorage.setItem(\"login.source\", window?.contextPath || \"\");\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 {/* <footer> = contentinfo landmark, so the \"Powered by DIGIT\" strip no longer sits\n outside every landmark (axe region) */}\n <footer 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 </footer>\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\");","/**\n * Storage for the IdP (SSO) ID token.\n *\n * The token arrives in the SSO callback URL fragment and is currently used once, as the\n * `assertion` on /user/oauth/token, then discarded. It has to outlive that exchange so it\n * can be reused for the tenant lookup (/user/oauth/tenants) and, later, to re-exchange a\n * DIGIT token when the user switches tenant.\n *\n * Kept in a cookie at `path=/` deliberately. Every tenant is a separate deployment under\n * its own base path on one shared origin, and the token is written on whichever deployment\n * handled the callback (often the shared login) but read on the tenant deployment the user\n * is redirected into - so it must be readable across all of them.\n *\n * Note this cookie is sent on every same-origin request, including all DIGIT API calls.\n * ID tokens frequently approach the ~4KB per-cookie browser limit, so oversized tokens\n * fall back to sessionStorage rather than being silently dropped.\n *\n * Not HttpOnly - it cannot be, since it is set from JS. Treat it as no more protected than\n * localStorage; if that matters, the backend has to set the cookie instead.\n */\n\nconst COOKIE_NAME = \"x-id-token\"; //sso-id-token\nconst FALLBACK_KEY = \"x-id-token\"; //sso-id-token\n/* Browsers drop cookies above ~4096 bytes, counting name, value and attributes. */\nconst MAX_COOKIE_BYTES = 4000;\n\n/* Read `exp` out of the JWT payload so the cookie can expire with the token itself, and a\n missing cookie can be treated as \"needs re-authentication\". No verification here - that\n is the backend's job on /user/oauth/token. */\nconst readExpiry = (token) => {\n try {\n const payload = token.split(\".\")[1];\n if (!payload) return null;\n const b64 = payload.replace(/-/g, \"+\").replace(/_/g, \"/\");\n const padded = b64 + \"=\".repeat(b64.length % 4 ? 4 - (b64.length % 4) : 0);\n const exp = JSON.parse(atob(padded))?.exp;\n return typeof exp === \"number\" ? exp : null;\n } catch (e) {\n return null;\n }\n};\n\nexport const getIdpToken = () => {\n try {\n const match = document.cookie.match(new RegExp(`(?:^|;\\\\s*)${COOKIE_NAME}=([^;]*)`));\n if (match) return decodeURIComponent(match[1]);\n } catch (e) {\n /* fall through to sessionStorage */\n }\n try {\n return window.sessionStorage.getItem(FALLBACK_KEY);\n } catch (e) {\n return null;\n }\n};\n\nconst storeFallback = (token) => {\n try {\n window.sessionStorage.setItem(FALLBACK_KEY, token);\n } catch (e) {\n console.warn(\"[idp] could not store the ID token anywhere\");\n }\n};\n\nexport const setIdpToken = (token) => {\n if (!token) return;\n\n const exp = readExpiry(token);\n const maxAge = exp ? Math.max(0, exp - Math.floor(Date.now() / 1000)) : null;\n\n const attributes = [\n \"path=/\",\n \"SameSite=Strict\",\n ...(window.location.protocol === \"https:\" ? [\"Secure\"] : []),\n /* No Max-Age when the token carries no exp: a session cookie is the safer default. */\n ...(maxAge ? [`Max-Age=${maxAge}`] : []),\n ];\n const cookie = `${COOKIE_NAME}=${encodeURIComponent(token)}; ${attributes.join(\"; \")}`;\n\n if (cookie.length > MAX_COOKIE_BYTES) {\n console.warn(`[idp] ID token too large for a cookie (${cookie.length}B), using sessionStorage`);\n storeFallback(token);\n return;\n }\n\n try {\n document.cookie = cookie;\n } catch (e) {\n /* handled by the read-back below */\n }\n /* The browser can reject the cookie without throwing, so confirm it landed. */\n if (getIdpToken() !== token) {\n console.warn(\"[idp] cookie was rejected, using sessionStorage\");\n storeFallback(token);\n }\n};\n\nexport const clearIdpToken = () => {\n try {\n /* Path must match the one it was set with, or the delete is a no-op. */\n document.cookie = `${COOKIE_NAME}=; path=/; Max-Age=0; SameSite=Strict`;\n } catch (e) {\n /* ignore */\n }\n try {\n window.sessionStorage.removeItem(FALLBACK_KEY);\n } catch (e) {\n /* ignore */\n }\n};\n","/**\n * SSO tenant discovery and switching.\n *\n * `/user/oauth/tenants` answers \"which tenants is this IdP subject mapped to\", and is posted\n * with the raw ID token BEFORE the token exchange so a tenantId can be chosen for\n * grant_type=jwt_exchange. The resulting list is kept for the session so the tenant switcher\n * does not have to ask again.\n */\n\nimport { getIdpToken } from \"./idpToken\";\n\n/* Digit.SessionStorage prefixes keys with \"Digit.\" */\nconst TENANTS_KEY = \"sso.tenants\";\n\nconst basicAuthHeader = () => `Basic ${window?.globalConfigs?.getConfig(\"JWT_TOKEN\") || \"ZWdvdi11c2VyLWNsaWVudDo=\"}`;\n\n/* Tenant the shared-login mapping is keyed on. The backend falls back to its own\n auth.oidc.shared-login.tenant-id when omitted; we send it explicitly so the value is\n visible and configurable per deployment. */\nexport const getSSOLookupTenantId = () => window?.globalConfigs?.getConfig(\"SSO_LOOKUP_TENANT_ID\") || \"public\";\n\n/* True on the shared/common login deployment, false on a tenant-specific one. Derived rather\n than configured, so there is no extra flag to keep in sync. */\nexport const isSharedLoginDeployment = () => Digit.ULBService.getStateId() === getSSOLookupTenantId();\n\nconst parseError = async (response, fallbackMessage) => {\n const raw = await response.text();\n let parsed;\n try {\n parsed = raw ? JSON.parse(raw) : null;\n } catch (e) {\n parsed = null;\n }\n const error = new Error(parsed?.error_description || parsed?.error || raw || fallbackMessage);\n error.code = parsed?.error;\n error.status = response.status;\n return error;\n};\n\nexport const lookupTenants = async (idToken) => {\n const response = await fetch(\"/user/oauth/tenants\", {\n method: \"POST\",\n headers: {\n Authorization: basicAuthHeader(),\n \"Content-Type\": \"application/x-www-form-urlencoded\",\n },\n body: new URLSearchParams({\n assertion: idToken,\n tenantId: getSSOLookupTenantId(),\n }),\n });\n\n if (!response.ok) throw await parseError(response, \"Tenant lookup failed\");\n\n const data = await response.json();\n return Array.isArray(data?.tenants) ? data.tenants : [];\n};\n\nexport const storeSSOTenants = (tenants) => Digit.SessionStorage.set(TENANTS_KEY, tenants || []);\nexport const getStoredSSOTenants = () => Digit.SessionStorage.get(TENANTS_KEY) || [];\nexport const clearSSOTenants = () => Digit.SessionStorage.del(TENANTS_KEY);\n\nexport const sortByTenantId = (tenants = []) =>\n [...tenants].sort((a, b) => String(a?.tenantId || \"\").localeCompare(String(b?.tenantId || \"\")));\n\nconst deploymentMap = () => window?.globalConfigs?.getConfig(\"TENANT_DEPLOYMENT_MAP\") || {};\n\n/**\n * Drop tenants we cannot actually put the user on.\n *\n * Landing on a tenant with no TENANT_DEPLOYMENT_MAP entry means no redirect happens, so the\n * user ends up authenticated as tenant X while the page still runs tenant Y's globalConfigs\n * (wrong hierarchy, wrong locale, wrong service paths) with nothing shown to explain it.\n *\n * `keepTenantId` is the currently-active tenant, which the switcher needs to keep in the list\n * so it stays visible as the selected option even if it has no mapping. Omit it when choosing\n * a tenant to log in to, where there is nothing to preserve.\n *\n * An empty map means single-deployment mode, so no filtering applies.\n */\nexport const filterDeployable = (tenants = [], keepTenantId = null) => {\n const keys = Object.keys(deploymentMap());\n if (!keys.length) return tenants;\n return tenants.filter((tenant) => {\n const id = tenant?.tenantId;\n if (!id) return false;\n return keys.includes(String(id).toLowerCase()) || id === keepTenantId;\n });\n};\n\n/* Tenant ids the switcher should offer: mapped to a deployment, plus the current one, sorted,\n deduped. Fewer than two means there is nothing to switch between. */\nexport const getSwitchableTenantIds = (currentTenantId) => {\n const ids = filterDeployable(sortByTenantId(getStoredSSOTenants()), currentTenantId)\n .map((tenant) => tenant?.tenantId)\n .filter(Boolean);\n return [...new Set(ids)];\n};\n\n/* Where a given tenant is served from, e.g. chaduat -> /chaduat/hcm-digit-ui */\nexport const getTenantBasePath = (tenantId) => {\n const target = deploymentMap()[String(tenantId || \"\").toLowerCase()];\n return target ? target.replace(/^\\/|\\/$/g, \"\") : null;\n};\n\n/**\n * Persist a freshly exchanged employee session.\n *\n * Deliberately a separate copy of the writes in Login/login.js rather than a shared\n * extraction: that file and pages/employee/Otp/index.js already carry two copies which differ\n * (login.js additionally exempts development builds from the multi-root guard), so unifying\n * them would quietly change the OTP path. Worth consolidating, but not as a side effect of\n * tenant switching.\n */\nconst persistEmployeeSession = (userObject, token) => {\n if (Digit.Utils.getMultiRootTenant() && process.env.NODE_ENV !== \"development\") return;\n\n const 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\n/**\n * Switch the logged-in tenant: end the DIGIT session for the current one, re-exchange the\n * stored ID token for the target, persist it, and send the browser to that tenant's\n * deployment.\n *\n * Throws with `code` set to a localisation key so the caller can surface it:\n * SSO_SESSION_EXPIRED - no usable ID token, the user has to log in again\n * SSO_TENANT_SWITCH_FAILED - the exchange failed for some other reason\n */\nexport const switchTenant = async (tenantId) => {\n const idToken = getIdpToken();\n if (!idToken) {\n const error = new Error(\"No IdP token available\");\n error.code = \"SSO_SESSION_EXPIRED\";\n throw error;\n }\n\n /* Revoke the DIGIT token for the tenant being left. Best effort: a failure here should not\n block the switch, and we deliberately do NOT call UserService.logout(), which would\n navigate away and wipe the storage the switch still needs. */\n try {\n await Digit.UserService.logoutUser();\n } catch (e) {\n console.warn(\"[sso] could not revoke the previous DIGIT session\", e);\n }\n\n const response = await fetch(\"/user/oauth/token\", {\n method: \"POST\",\n headers: {\n Authorization: basicAuthHeader(),\n \"Content-Type\": \"application/x-www-form-urlencoded\",\n },\n body: new URLSearchParams({\n grant_type: \"jwt_exchange\",\n scope: \"read\",\n userType: \"EMPLOYEE\",\n assertion: idToken,\n tenantId,\n }),\n });\n\n if (!response.ok) {\n const error = await parseError(response, \"Tenant switch failed\");\n /* 400/401 here means the assertion was rejected - almost always an expired ID token. */\n error.code = response.status === 400 || response.status === 401 ? \"SSO_SESSION_EXPIRED\" : \"SSO_TENANT_SWITCH_FAILED\";\n throw error;\n }\n\n const { UserRequest: info, ...tokens } = await response.json();\n\n Digit.SessionStorage.set(\"Employee.tenantId\", info?.tenantId);\n Digit.SessionStorage.set(\"citizen.userRequestObject\", { info, ...tokens });\n Digit.UserService.setUser({ info, ...tokens });\n persistEmployeeSession(info, tokens?.access_token);\n\n /* Full page load so initData, localisation and the module configs are rebuilt for the new\n tenant. Going straight to the target deployment avoids bouncing through this one and\n relying on the entry file's redirect interceptor. */\n const basePath = getTenantBasePath(info?.tenantId) || window?.contextPath;\n window.location.replace(`/${basePath}/employee`);\n};\n","/**\n * Per-deployment language preference.\n *\n * Every tenant is a separate deployment under its own base path on one shared origin, and\n * the locale string encodes the deployment (fr_AFRO on the shared login, fr_CHADUAT on\n * chaduat). So a single unscoped locale cannot be shared between them - hence two keys:\n *\n * Digit.locale.<tenant> the locale last used ON that deployment, e.g. fr_CHADUAT\n * Digit.language.pending a language the user JUST picked, e.g. \"fr\", region-free\n *\n * Both live in localStorage (Digit.PersistantStorage) so they survive a new tab. The locale\n * that is actually *active* stays in sessionStorage under the unscoped `Digit.locale`, which\n * is what i18next, RequestInfo.msgId, the per-module useStore calls and the pdf utils read.\n *\n * The pending marker exists so a language chosen on the shared login carries into whichever\n * tenant the user then logs in to, even though the locale strings differ. It is written only\n * on a deliberate choice - never on the boot-time auto-select - and is consumed and cleared\n * the first time a deployment applies it, so a stale one can never override a newer\n * per-tenant preference.\n *\n * Resolution order, applied at boot (see applyTenantLocale in the app's entry file):\n * 1. pending, mapped onto this deployment's region and validated -> use, then clear\n * 2. Digit.locale.<tenant>, if still one of the configured languages\n * 3. the tenant's first configured language\n */\n\n/* A remembered language should outlive the Digit.PersistantStorage default of one day. */\nconst ONE_YEAR_IN_SECONDS = 60 * 60 * 24 * 365;\n\n/* localStorage keys are prefixed with \"Digit.\" by PersistantStorage. */\nconst SCOPED_KEY_PREFIX = \"Digit.locale.\";\nconst PENDING_KEY = \"language.pending\";\n\nconst currentDeployment = () => window?.globalConfigs?.getConfig(\"STATE_LEVEL_TENANT_ID\") || \"default\";\n\nexport const tenantLocaleKey = () => `locale.${currentDeployment()}`;\n\n/* \"fr_CHADUAT\" -> \"fr\". Locales are <language>_<REGION>, region varying per deployment. */\nexport const toLanguageSubtag = (locale) => String(locale || \"\").split(\"_\")[0] || null;\n\nexport const getStoredTenantLocale = () => {\n try {\n return Digit?.PersistantStorage?.get(tenantLocaleKey()) || null;\n } catch (e) {\n return null;\n }\n};\n\nexport const getPendingLanguage = () => {\n try {\n return Digit?.PersistantStorage?.get(PENDING_KEY) || null;\n } catch (e) {\n return null;\n }\n};\n\nexport const clearPendingLanguage = () => {\n try {\n Digit?.PersistantStorage?.del(PENDING_KEY);\n } catch (e) {\n /* ignore */\n }\n};\n\n/**\n * Record a language the user deliberately chose.\n *\n * Call this ONLY from a real user action - the language picker or the top bar dropdown.\n * Calling it on the boot-time auto-select would leave a pending marker on every page load,\n * which would then override every per-tenant preference forever.\n */\nexport const rememberChosenLanguage = (locale) => {\n if (!locale) return;\n try {\n Digit?.PersistantStorage?.set(tenantLocaleKey(), locale, ONE_YEAR_IN_SECONDS);\n Digit?.PersistantStorage?.set(PENDING_KEY, toLanguageSubtag(locale), ONE_YEAR_IN_SECONDS);\n } catch (e) {\n /* a lost preference just means the default is used next time */\n }\n};\n\n/**\n * UserService.logout() clears the whole of localStorage, which would take these with it.\n * Snapshot before logging out, restore immediately after.\n *\n * Prefix-based, so it covers every tenant this browser has seen and core does not need to\n * know which deployments exist.\n */\nexport const snapshotLanguagePreferences = () => {\n const saved = {};\n try {\n for (let i = 0; i < localStorage.length; i++) {\n const key = localStorage.key(i);\n /* Scoped preferences only. The pending marker is a within-journey handoff (shared\n login -> chosen tenant); carrying it past a logout would let a choice made in a\n previous session override the next one. */\n if (key && key.startsWith(SCOPED_KEY_PREFIX)) saved[key] = localStorage.getItem(key);\n }\n } catch (e) {\n /* ignore */\n }\n return saved;\n};\n\nexport const restoreLanguagePreferences = (saved) => {\n try {\n Object.entries(saved || {}).forEach(([key, value]) => {\n if (value != null) localStorage.setItem(key, value);\n });\n } catch (e) {\n /* ignore */\n }\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 = 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","/*\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","/* 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 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__;","module.exports = __WEBPACK_EXTERNAL_MODULE__7122__;","// The module cache\nconst __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tconst 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\tconst 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\tconst 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};","// wrap a concatenated module body as a lazy, memoized accessor; mod is\n// set before the body runs so re-entrant calls (require cycles) observe\n// the partial exports like Node.js\n__webpack_require__.cw = (body) => {\n\tvar mod;\n\treturn () => {\n\t\tif (body) {\n\t\t\tvar fn = body;\n\t\t\tbody = 0;\n\t\t\tmod = { exports: {} };\n\t\t\tfn.call(mod.exports, mod, mod.exports);\n\t\t}\n\t\treturn mod.exports;\n\t};\n};","// define getter/value functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tif(Array.isArray(definition)) {\n\t\tvar i = 0;\n\t\twhile(i < definition.length) {\n\t\t\tvar key = definition[i++];\n\t\t\tvar binding = definition[i++];\n\t\t\tvar descriptor = binding === 0 ? { enumerable: true, value: definition[i++] } : { enumerable: true, get: binding };\n\t\t\tif(!__webpack_require__.o(exports, key)) Object.defineProperty(exports, key, descriptor);\n\t\t}\n\t} else {\n\t\tfor(var key in definition) {\n\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t\t}\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\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\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' }}>•</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'}}>•</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 React, { useState } from \"react\";\n\n/**\n * One SSO provider button.\n *\n * Deliberately a plain <button> rather than digit-ui-components' <Button>: that component\n * resolves its `icon` prop by NAME against digit-ui-svg-components and accepts no children,\n * so there is no way to put a provider logo <img> inside one. Passing an element rendered as\n * null and produced blank buttons. The markup below mirrors Button's own DOM, so the existing\n * digit-button-* styles still apply and nothing new is needed in digit-ui-css - which matters,\n * because that package is published separately and pinned by version in index.html.\n *\n * `label` arrives already localised from login.js.\n */\nconst SSOLoginButton = ({ sso, variation, className }) => {\n const [logoFailed, setLogoFailed] = useState(false);\n const showLogo = Boolean(sso?.logo) && !logoFailed;\n\n /* Note the absence of .employee-login-sso-icon: that class is a 48px square which hides the\n label via CSS, so applying it would show the logo alone. Both the single- and\n multiple-provider cases render logo + name, so it is deliberately not used. Spacing\n between the two comes from .icon-label-container (flex, gap 0.5rem). */\n return (\n <button\n type=\"button\"\n className={`digit-button-${variation} large ${className || \"\"}`}\n onClick={() => sso?.onLogin?.(sso)}\n title={sso?.label}\n aria-label={sso?.label}\n style={{ width: \"100%\" }}\n >\n <div className={`icon-label-container ${variation} large`}>\n {showLogo && (\n <img\n src={sso.logo}\n alt=\"\"\n className=\"employee-login-sso-logo\"\n onError={() => setLogoFailed(true)}\n />\n )}\n <h2 className=\"digit-button-label\">{sso?.label}</h2>\n </div>\n </button>\n );\n};\n\nconst EmployeeSSOLoginOptions = ({ t, props }) => {\n const { ssoConfigs = [] } = props || {};\n\n if (!ssoConfigs?.length) {\n return null;\n }\n\n const hasMultipleOptions = ssoConfigs.length > 1;\n\n /* Both cases render logo + provider name; they differ only in emphasis - a single provider\n is the primary action, several are secondary so no one of them looks preferred.\n The wrapper is kept for the multiple case (it supplies the grouping and gap) while a lone\n button stays a direct child of the .employee-login-sso flex column, as before. */\n const buttons = ssoConfigs.map((sso, index) => (\n <SSOLoginButton\n key={sso.id || sso.provider || index}\n sso={sso}\n variation={hasMultipleOptions ? \"secondary\" : \"primary\"}\n className={\n hasMultipleOptions\n ? `${sso.provider?.toLowerCase() || \"provider\"}-login-icon`\n : `employee-login-sso-button ${sso.provider?.toLowerCase() || \"provider\"}-login-btn`\n }\n />\n ));\n\n return (\n <div className=\"employee-login-sso\">\n <div className=\"employee-login-sso-divider\">\n <span>{hasMultipleOptions ? t(\"CORE_COMMON_OR_SIGN_IN_WITH\") : t(\"CORE_COMMON_OR\")}</span>\n </div>\n {hasMultipleOptions ? <div className=\"employee-login-sso-icons\">{buttons}</div> : buttons}\n </div>\n );\n};\n\nexport default EmployeeSSOLoginOptions;\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\";\nimport EmployeeSSOLoginOptions from \"./components/EmployeeSSOLoginOptions\";\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 modulePrefix = window?.globalConfigs?.getConfig(\"CORE_UI_MODULE_LOCALE_PREFIX\") || \"rainmaker\";\n const { isLoading, data: initData={} } = Digit.Hooks.useInitStore(stateCode, enabledModules, modulePrefix);\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 if(!Digit.ComponentRegistryService.getComponent(\"EmployeeSSOLoginOptions\")){\n Digit.ComponentRegistryService.setComponent(\"EmployeeSSOLoginOptions\", EmployeeSSOLoginOptions);\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 EmployeeSSOLoginOptions\n};\n\nexport const initCoreComponents = () => {\n // Ensure hooks introduced in newer libraries versions are always available.\n // Old deployments (e.g. digit-ui-libraries@1.8.8) won't have useSSOConfig,\n // so we register a no-op fallback so login.js never crashes with \"not a function\".\n if (!Digit.Hooks.useSSOConfig) {\n Digit.Hooks.useSSOConfig = () => ({ data: [], isLoading: false });\n }\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","undefined","this","__WEBPACK_EXTERNAL_MODULE__6243__","__WEBPACK_EXTERNAL_MODULE__5053__","__WEBPACK_EXTERNAL_MODULE__338__","__WEBPACK_EXTERNAL_MODULE__4456__","__WEBPACK_EXTERNAL_MODULE__4883__","__WEBPACK_EXTERNAL_MODULE__5953__","__WEBPACK_EXTERNAL_MODULE__2148__","__WEBPACK_EXTERNAL_MODULE__4442__","__WEBPACK_EXTERNAL_MODULE__1954__","__WEBPACK_EXTERNAL_MODULE__2247__","__WEBPACK_EXTERNAL_MODULE__7122__","_ref","children","_jsx","className","stringReplaceAll","str","arguments","length","searcher","replaceWith","_str","includes","_str2","replace","prop","_selectCityData$","_stringReplaceAll3","_useState2","_slicedToArray","useState","dropDownData","setDropDownData","_useState4","selectCityData","setSelectCityData","_useState6","navigate","useNavigate","isMultiRootTenant","dropdown","Digit","Utils","getMultiRootTenant","_useState8","switchError","setSwitchError","currentTenantId","SessionStorage","get","_useState0","ssoMode","setSsoMode","handleSwitchTenant","_asyncToGenerator","city","value","switchTenant","error","console","code","setTimeout","UserService","logout","_x","apply","useEffect","cancelled","applySSOTenants","_ref2","_Digit","_Digit$getType","_window3","getType","call","Boolean","getIdpToken","tenantIds","getSwitchableTenantIds","getStoredSSOTenants","tenants","lookupTenants","storeSSOTenants","warn","map","tenantId","_stringReplaceAll","label","concat","toUpperCase","toOptions","storedTenants","deploymentMapKeys","Object","keys","window","globalConfigs","getConfig","then","handled","_userloggedValues$inf","userloggedValues","teantsArray","filteredArray","info","roles","forEach","role","push","unique","filter","item","i","ar","indexOf","uniCode","_stringReplaceAll2","select","buildRoleBasedOptions","_jsxs","style","mobileView","color","CardText","Dropdown","t","option","selected","find","cityValue","optionKey","showArrow","_Digit$SessionStorage","_window$location","_window","loggedInData","filteredRoles","set","setUser","location","href","contextPath","_location$state","_window2","redirectPath","state","from","reload","freeze","customSelector","Toast","type","onClose","_languages$find","isDropdown","_Digit$Hooks$useStore","Hooks","useStore","getInitData","storeData","data","isLoading","languages","stateInfo","useTranslation","selectedLanguage","StoreData","getCurrentLanguage","setselected","handleChangeLanguage","language","rememberChosenLanguage","LocalizationService","changeLanguage","React","marginBottom","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","size","formId","footerWithoutSubmit","PopUp","heading","footerChildren","sortFooterButtons","onOverlayClick","equalWidthButtons","DummyLoaderScreen","currentStep","setCurrentStep","tenant","steps","stepInterval","setInterval","prev","clearInterval","navigateTimeout","roleForLandingPage","getUserRoles","MdmsRes","pathname","RoleLandingUrl","clearTimeout","useRef","setButtonDisabled","useCustomMDMS","name","enabled","staleTime","cacheTime","_data$SandBoxLanding","url","_getUserRoles$","some","page","rolesForLandingPage","step","CheckCircle","fill","moduleCode","stateCode","userType","_ref$maxRetries","maxRetries","_ref$retryDelay","retryDelay","_ref$initialDelay","initialDelay","loading","retryCount","initialDelayComplete","moduleState","setModuleState","retryTimeout","initialTimeout","loadModule","Module","ComponentRegistryService","getComponent","_objectSpread","delay","Math","pow","message","loadingText","defaultValue","Loader","variant","loaderText","textAlign","marginTop","Navigate","to","encodeURIComponent","Redircter","path","currentHref","navigationError","replaceError","ErrorBoundary","constructor","super","errorStack","hasError","getDerivedStateFromError","stack","componentDidCatch","errorInfo","setState","render","ErrorComponent","initData","errorData","goToHome","__WEBPACK_DEFAULT_EXPORT__","ErrorConfig","maintenance","notfound","ModuleBasedErrorConfig","sandbox","_props$errorData","_Digit$Hooks$useQuery2","useQueryParams","ImageComponent","src","alt","_props$errorData2","_props$goToHome","_stateInfo$code","_ref$showTenant","headerSvgSecondaryUrl","logoUrl","borderRight","fontSize","Components","RoleBasedEmployeeHome","modules","additionalComponent","_Object$keys","sortedConfigEmployeesSidebar","_Digit$Hooks$useAcces","useAccessControl","ULBService","getStateId","mdmsOrderData","setMdmsOrderData","_Digit$Hooks$useCusto","_data$HomeScreenOrder","_Digit$Hooks$useCusto2","moduleConfigData","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","digit_ui_components_","locale","getTransformedLocale","linkUrl","_url","transformURL","navigationURL","queryParamIndex","link","queryParams","substring","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","QuickStart_QuickSetup","_ref3","cardConfig","height","overflowY","flexWrap","id","BreakLine","border","Config","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","BackLink","history","back","_mdmsDataObj$links3","_mdmsDataObj$links4","handleLinkClick","srOnlyStyle","position","overflow","clip","whiteSpace","EmployeeHome","_ref4","Component","AppHome","_ref5","isSuperUserWithMultipleRootTenant","getRoleBasedHomeCard","QuickSetupConfigComponent","_ref$alt","_ref$decorative","decorative","_ref$ariaLabel","ariaLabel","_ref$ariaLabelledby","ariaLabelledby","accessibilityProps","tabIndex","onKeyDown","_window$getConfig","focus","propTypes","PropTypes","isRequired","TopBarSideBar_TopBar","_userDetails$info2","_Digit$ComponentRegis","_userDetails$info3","_userDetails$info4","_window4","_cityDetails$city","_cityDetails$city2","toggleSidebar","isSidebarOpen","handleLogout","userDetails","CITIZEN","cityDetails","userOptions","handleUserDropdownSelection","logoUrlWhite","_ref$showLanguageChan","showLanguageChange","_React$useState2","profilePic","setProfilePic","app","_userDetails$info","getCurrentTenantId","uuid","usersResponse","userSearch","user","_userDetails$photo","thumbs","photo","split","at","_Digit$UserService","_Digit$UserService2","CitizenHomePageTenantId","getCitizenCurrentTenant","_Digit$Hooks$useNotif","useNotificationCount","getUser","_Digit$Hooks$useNotif2","unreadNotificationCount","unreadCount","notificationCountLoaded","isSuccess","TopBarComponent","img","updateSidebar","clikOusideFired","onLogout","notificationCount","cityOfCitizenShownBesideLogo","onNotificationIconClick","hideNotificationIconOnSomeUrlsWhenNotLoggedIn","_Digit$UserService3","access_token","urlsToDisableNotificationIcon","ChangeLanguage","loggedin","CustomEmployeeTopBar","TopBarComponentMain","actionFields","ChangeCity","userInfo","menuStyles","theme","onHamburgerClick","logoWidth","logoHeight","logo","logoId","statelogo","onImageClick","onLogoClick","showDeafultImg","ulb","ulbGrade","defaultImage","sidebar_menu","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","SideBar_StaticCitizenSideBar","_user$info","_menuItems","linkData","islinkDataLoading","isFetched","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","CitizenSideBar","_menuItems2","_menuItems3","_user$info2","_user$info3","_user$info4","_ref3$isMobile","_ref3$isEmployee","userProfile","isDigitStudio","search","_useState10","fetchUserProfile","_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","_ref7","_ref6","_window8","_window9","parentIndex","handleChangeCity","onItemSelect","StaticCitizenSideBar","SideBar_EmployeeSideBar","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","TopBarSideBar_SideBar","components_TopBarSideBar","_ref$showSidebar","showSidebar","handleSSOLogout","source","preservedLanguages","provider","localStorage","getItem","normalizedProvider","logoutUrlFromConfig","redirectParamName","token","_window$google","google","accounts","disableAutoSelect","fetch","method","headers","removeItem","postLogoutRedirectUri","getSSOPostLogoutRedirectUri","restoreLanguagePreferences","clearIdpToken","URL","searchParams","toString","_x2","snapshotLanguagePreferences","handleSidebar","func","TopBar","SideBar","WrappedComponent","mainSelector","handleFirstTab","main","document","querySelector","setAttribute","outline","removeEventListener","addEventListener","callback","savedCallback","timer","useLoginConfig","getConfigModuleName","useCommonMDMS","_data$moduleName","LoginConfig","retry","FAQs_FaqComponent","FAQs","_data$MdmsRes$common","_Digit$Hooks$useGetFA","useGetFAQsJSON","moduleFaqs","Fragment","BackButton","marginLeft","HeaderComponent","paddingTop","LanguageSelection","_Digit$Hooks$useStore2","_Digit$Hooks$useStore3","texts","useMemo","submitBarLabel","RadioButtonProps","options","optionsKey","additionalWrapperClass","selectedOption","PageBasedInput","onSubmit","RadioButtons","LocationSelection","uiHomePage","redirectURL","_Digit$Hooks$useTenan","useTenants","cities","selectedCity","setSelectedCity","showError","setShowError","selectCity","redirectBackTo","SearchOnRadioButtons","placeholder","CardLabelError","ImageUpload_UploadDrawer","closeDrawer","removeProfilePic","showToast","setUploadedFile","file","setFile","setError","_response$data","response","UploadServices","Filestorage","files","_response$data2","fileStoreId","err","left","right","bottom","onOverlayBodyClick","alignItems","flex","gap","for","cursor","GalleryIcon","accept","onChange","target","removeimg","RemoveIcon","DEFAULT_TENANT","_Digit$getStateId","defaultValidationConfig","UserProfileValidationConfig","password","Home_IndividualUserProfile","_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","permanentCity","setCity","setMobileNo","_useState12","_useState14","profileImg","setProfileImg","_useState16","openUploadSlide","setOpenUploadSide","_useState18","changepassword","setChangepassword","_useState20","currentPassword","setCurrentPassword","_useState22","newPassword","setNewPassword","_useState24","confirmPassword","setConfirmPassword","_useState26","toast","setToast","_useState28","setLoading","innerWidth","windowWidth","setWindowWidth","_React$useState4","errors","setErrors","individualServicePath","mapConfigToRegExp","_config$UserProfileVa","startsWith","lastIndexOf","lastSlashIndex","pattern","slice","flags","RegExp","_useState30","validationConfig","setValidationConfig","commonUiConfig","mdmsValidationData","isValidationConfigLoading","_mdmsValidationData$U","updatedValidationConfig","getUserInfo","_response$Individual","CustomService","getResponse","useCache","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","ResponseInfo","status","requestData","existingPassword","username","changePasswordResponseInfo","changePassword","_error$Errors","_error$response","Errors","errorObj","parse","_error$response2","_error$Errors2","menu","Menu","useGenderMDMS","genderDetails","setFileStoreId","thumbnails","getThumbnails","ids","res","Filefetch","fileStoreIds","o","images","getFileUrl","_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","eventOrValue","_eventOrValue$target$","_eventOrValue$target","_eventOrValue$target$2","_eventOrValue$target2","_eventOrValue$target$3","_eventOrValue$target3","fontWeight","Footer","SubmitBar","setactionFieldsToRight","UploadDrawer","Home_UserProfile","useAnIndividual","IndividualUserProfile","handleResize","_yield$Digit$UserServ","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","_Digit$Hooks$useEvent","useEvents","EventsData","EventsDataLoading","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","_Digit$Hooks$useGetHo","useGetHowItWorksJSON","mdmsConfigResult","screenHeader","CustomButton","videosJson","videos","onClickVideo","vidObj","pdfHeader","pdfDesc","PDFSvg","DownloadImgIcon","CloseSvg","controls","autoPlay","otp","onOtpChange","onResend","_ref$userType","canSubmit","timeLeft","setTimeLeft","useInterval","handleResendOtp","OTPInput","FormStep","loginSteps","cardText","nextText","inputs","validation","minlength","maxlength","Login_SelectMobileNumber","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","Login_SelectName","TYPE_LOGIN","DEFAULT_REDIRECT_URL","getFromLocation","Login_IndividualLogin","_ref$isUserRegistered","isUserRegistered","isOtpValid","setIsOtpValid","setParams","errorTO","setErrorTO","canSubmitName","setCanSubmitName","canSubmitOtp","setCanSubmitOtp","canSubmitNo","setCanSubmitNo","errorTimeout","_location$state2","setCitizenDetail","userObject","_JSON$parse","sessionStorage","setItem","stepItems","selectMobileNumber","_yield$sendOtp2","sendOtp","selectName","registerURL","IndividualRegister","requestType","auth","Error","selectOtp","authenticate","UserRequest","tokens","resendOtp","_yield$sendOtp4","AppContainer","Routes","Route","SelectMobileNumber","event","showRegisterLink","SelectOtp","SelectName","TYPE_REGISTER","citizen_Login","_location$state7","IndividualLogin","_location$state4","_location$state3","_location$state5","_yield$sendOtp6","_location$state6","roleInfo","userRole","otpReference","_yield$Digit$UserServ2","registerUser","_excluded2","_yield$sendOtp0","_yield$sendOtp8","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","external_React_","createContext","useFormContext","useContext","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","useCallback","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","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","resetOptions","_disableForm","_setErrors","payload","resetField","clearErrors","inputName","setFocus","shouldSelect","Search_SearchFields","previousPage","SearchField","DatePicker","date","Search_MobileSearchApplication","_data$roles","tabledata","settabledata","DownloadBtn","DownloadBtnCommon","returnObject","convertEpochToDate","timestamp","convertEpochToTimeInHours","dataView","dataViewedBy","dateEpoch","dateFromApi","month","getMonth","day","getDate","year","getFullYear","hour","getHours","getMinutes","period","_useReducer2","useReducer","currentlyActiveMobileModal","setActiveMobileModal","closeMobilePopupModal","MobilePopUpCloseButton","searchFormFieldsComponentProps","CurrentMobileModalComponent","SearchForm","SearchFormFields","MobileComponentDirectory","propsMobileInboxCards","_data$roles$slice","tabData","Download","Excel","handleExcelDownload","SearchAction","handleActionClick","DetailsCard","Search","count","_useForm","_formControl","_values","useForm","sortOrder","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","SearchApp","_data$ElasticSearchDa","_data$ElasticSearchDa2","setPayload","convertDateToEpoch","dateString","dayStartOrEnd","parts","DateObj","UTC","setMinutes","getTimezoneOffset","setHours","setSeconds","getSeconds","storedPayload","k","_Digit$Hooks$useAudit","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","_Digit$Hooks$useStati","useStaticData","isMdmsLoading","mdmsData","_Digit$Hooks$useDynam","useDynamicData","isSearchLoading","dynamicData","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","SideBar_CitizenSideNav","isLoggedIn","handleLogoutCancel","buildItems","orderCounter","cityChildren","currentCityLabel","_moduleEntries$","moduleEntries","entry","_entry$sidebar","endsWith","seen","navigateToUrl","_loggedInData$info","enableSearch","handleLogoutSubmit","lazyWithFallback","resolve","__webpack_require__","FAQsSection","UserProfile","HowItWorks","Login","StaticDynamicCard","sidebarHiddenFor","getTenants","codes","citizen","_Digit$ComponentRegis2","_Digit$ComponentRegis3","_window7$getConfig","DSO","appTenants","sourceUrl","_data$ACCESSCONTROLA","el","_a$b$parentModule","isLinkDataFetched","classname","useRouteSubscription","hideSidebar","CitizenLandingPage","ServiceLandingPage","ServiceActionsPage","appRoutes","DynamicModuleLoader","ModuleLevelLinkHomePages","bannerImage","CitizenHomeCard","Info","CitizenInfoLabel","isInfo","TopBarSideBar","CitizenSideNav","_window8$getConfig","ChangePasswordComponent","_window3$getConfig","propsConfig","_Digit$Hooks$useQuery","mobile_number","USERNAME","userIdentifier","setOtp","setShowToast","getUserType","setType","closeToast","onResendOTP","_err$response","error_description","onChangePassword","navigateToLogin","_err$response2","_propsConfig$inputs","FormComposer","noBoxShadow","inline","submitInForm","submitButtonLabel","cardStyle","CardSubHeader","_window4$getConfig","loginParams","defaultProps","ChangePassword","EmployeeChangePassword","loginConfig","ForgotPassword","_window6$getConfig","_mdmsData$config$","bannerImages","onForgotPassword","alert","Carousel","FormComposerV2","secondaryActionLabel","secondaryButtonLabel","onSecondayActionClick","headingStyle","descriptionStyles","secondaryActionId","_window5$getConfig","forgotPassword","employee_ForgotPassword","ForgotPasswordComponent","defaultLanguage","_Digit$getDefaultLang","getDefaultLanguage","_loginMdmsData$config","_defaultLanguages","loginMdmsData","loginScreenConfig","defaultLoginConfig","defaultLanguages","isChangingLanguage","setIsChangingLanguage","getLocale","hasMultipleLanguages","now","_loginConfig$","_ref$bannerImages","currentSlide","setCurrentSlide","carouselItems","nextSlide","interval","backgroundImage","image","prevSlide","_","goToSlide","mdmsConfig","masterName","localePrefix","component","customProps","renderAfterSubmit","LoginOtpConfig","Dialog_ForgotPasswordDialog","buttonLabel","DEFAULT_FORGOT_PASSWORD_POPUP","isSSOCallbackUrl","hashParams","URLSearchParams","hash","_Digit2","_config$","_config$2","_forgotScreenConfig$p","_forgotScreenConfig$p2","_forgotScreenConfig$p3","_forgotScreenConfig$p4","_forgotScreenConfig$p5","_forgotScreenConfig$p6","loginOTPBased","isStoreLoading","_Digit$Hooks$useSSOCo","useSSOConfig","_data$MdmsRes","_data$SSO","IdentityProviders","ssoMDMSData","setDisable","loginLoader","setLoginLoader","showForgotPasswordPopup","setShowForgotPasswordPopup","forgotScreenConfig","forgotPasswordScreen","DynamicLoginComponent","idToken","accessToken","errorDescription","setIdpToken","handleSSOCallback","microsoftAuthenticate","catch","_user$info5","_user$info6","setEmployeeDetail","decodeURIComponent","failSSOLogin","messageCode","replaceState","resolveTenantForLogin","deploymentTenant","sorted","sortByTenantId","isSharedLoginDeployment","_deployable$","deployable","filterDeployable","handleDigitLogin","Authorization","grant_type","scope","assertion","ok","_parsed","_parsed2","_parsed3","_parsed4","parsed","raw","json","onSSOLogin","_ref8","ssoConfig","ui","hasOidcConfig","authorizeUrl","clientId","authStrategy","onOIDCLogin","_x4","_ref9","resource","logoutUrl","logoutRedirectParam","authority","uiConfig","_ref7$scopes","scopes","_ref7$responseType","responseType","_ref7$responseMode","responseMode","_ref7$nonceRequired","nonceRequired","_ref7$redirectPath","prompt","nonce","random","redirectUri","forcePromptLogin","buildOIDCAuthorizeUrl","_x5","onLogin","_ref0","_requestData$city","_excluded3","_x6","reqCreate","enable","mutation","useCustomAPIMutationHook","onOtpLogin","_ref1","_Digit3","_onSuccess","inputEmail","mutate","onError","variables","onSuccess","_window0","_Digit4","_x8","_x7","_window1","defaultTenant","resolveProviderLabel","sso","_sso$ui","_sso$ui2","_sso$ui3","translated","String","char","prettifyProviderName","ssoConfigs","_sso$ui4","_sso$ui5","_field$populators","_field$populators2","onFormValueChange","hasEmptyFields","renderLoginForm","_propsConfig$texts","_propsConfig$texts2","_propsConfig$texts3","_propsConfig$texts4","extraClasses","cardClassName","wrapperClass","cardSubHeaderClassName","buttonClassName","renderFooter","footerClassName","_window10","_window10$getConfig","_window11","_window11$getConfig","ssoOverlay","ForgotPasswordDialog","popupFields","login","withAutoFocusMain","employee_Login","setloginConfig","defaultLoginOtpConfig","loginOtpConfig","loginType","_useLoginConfig","Services","modulePrefix","loginOtpParams","LoginComponent","_ref$isLogin","isLogin","OtpConfig","redirectPathOtpLogin","getRedirectPathOtpLogin","locationPathname","_MdmsRes$","isSuperUser","_formData$OtpComponen","OtpComponent","formValue","_otpValue$otp","otpValue","SignUpConfig","_window2$getConfig","accountName","_data$Tenants$","_data$Tenants$2","Tenants","signUp","employee_SignUp","defaultSignUpConfig","setSignUpConfig","_Digit$Hooks$useCommo","_data$commonUiConfig","SignUpParams","ViewUrl","buttonDisabled","gcTime","TickMark","nonEditable","host","navigator","clipboard","writeText","onButtonClick","default","_codes$map","AppModules","EmployeeLogin","Otp","userScreensExempted","employee","_location$pathname","_initData$modules","_ref$noTopBar","noTopBar","isUserProfile","_location$pathname2","COOKIE_NAME","FALLBACK_KEY","cookie","storeFallback","exp","b64","padded","repeat","atob","readExpiry","maxAge","floor","protocol","TENANTS_KEY","basicAuthHeader","getSSOLookupTenantId","parseError","fallbackMessage","deploymentMap","keepTenantId","logoutUser","_yield$response$json","persistEmployeeSession","basePath","getTenantBasePath","ONE_YEAR_IN_SECONDS","_Digit5","PersistantStorage","toLanguageSubtag","tenantLocaleKey","saved","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","Y","mediaQuery","query","captures","RE_MEDIA_QUERY","modifier","expressions","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","staticMatch","css_mediaquery_namespaceFn","dynamicMatch","matchMedia","Mql","forceStatic","mql","self","update","evt","matches","media","addListener","listener","removeListener","dispose","uppercasePattern","msPattern","cache","toHyphenLower","hyphenate_style_name","hName","stringOrNumber","prop_types_default","esm_types","grid","aural","braille","handheld","print","projection","screen","tty","tv","embossed","matchers","orientation","scan","aspectRatio","deviceAspectRatio","deviceHeight","deviceWidth","colorIndex","monochrome","esm_type","featureMatchers","features","minAspectRatio","maxAspectRatio","minDeviceAspectRatio","maxDeviceAspectRatio","minHeight","maxHeight","minDeviceHeight","maxDeviceHeight","minDeviceWidth","maxDeviceWidth","minColor","maxColor","minColorIndex","maxColorIndex","minMonochrome","maxMonochrome","minResolution","maxResolution","mq","Context","hyphenateKeys","useIsUpdate","useQuery","settings","getQuery","v","realKey","keyVal","toQuery","makeQuery","setQuery","newQuery","useMediaQuery","device","deviceSettings","deviceFromProps","deviceFromContext","getDevice","setDevice","newDevice","objA","objB","aKeys","bKeys","len","shallowEqualObjects","useDevice","getMatchMedia","matchmediaquery_default","setMq","isUpdate","newMq","useMatchMedia","setMatches","updateMatches","ev","useMatches","__webpack_module_cache__","moduleId","cachedModule","__webpack_modules__","n","getter","__esModule","cw","mod","fn","definition","binding","descriptor","r","Symbol","toStringTag","CitizenApp","EmployeeApp","SignUp","CustomErrorComponent","DigitApp","_ref$defaultLanding","defaultLanding","_ref$allowedUserTypes","allowedUserTypes","getCurrentUlb","commonProps","DigitAppWrapper","_ref3$defaultLanding","_location","middleware","thunk","enhancer","composeEnhancers","compose","applyMiddleware","store","defaultStore","moduleReducers","createStore","getRootReducer","combineReducers","common","defaultData","components_PrivacyComponent","isChecked","setIsChecked","showPopUp","setShowPopUp","privacy","PrivacyPolicy","policy","_props$props","CheckBox","footerclassName","sortFooterChildren","contents","getElementById","scrollIntoView","behavior","isSpaceRequired","descriptions","subIndex","isBold","subDescriptions","subDesc","subSubIndex","SSOLoginButton","logoFailed","setLogoFailed","showLogo","_sso$onLogin","components_EmployeeSSOLoginOptions","_ref3$ssoConfigs","hasMultipleOptions","buttons","_sso$provider","_sso$provider2","DigitUIWrapper","_initData$stateInfo","_initData$stateInfo2","_initData$stateInfo3","enabledModules","_Digit$Hooks$useInitS","useInitStore","_Digit$Hooks$useInitS2","getStore","getI18n","setComponent","PrivacyComponent","EmployeeSSOLoginOptions","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","A","_props$props4","_props$props2","_props$props3","ForgotOrganizationTooltip","showTip","setShowTip","wrapperRef","handleClickOutside","contains","wordBreak","LoginSignupSelector","isSignupPage","onButtonClickLogin","onButtonClickSignUP","initCoreComponents"],"sourceRoot":""}
|