@egovernments/digit-ui-module-core 2.0.0-dev-impl-08 → 2.0.0-dev-impl-09

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","mappings":"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","sources":["webpack://@egovernments/digit-ui-module-core/webpack/universalModuleDefinition","webpack://@egovernments/digit-ui-module-core/./src/components/Background.js","webpack://@egovernments/digit-ui-module-core/./src/components/ChangeCity.js","webpack://@egovernments/digit-ui-module-core/./src/components/ChangeLanguage.js","webpack://@egovernments/digit-ui-module-core/./src/components/CustomErrorComponent.js","webpack://@egovernments/digit-ui-module-core/./src/components/Dialog/LogoutDialog.js","webpack://@egovernments/digit-ui-module-core/./src/components/DummyLoader.js","webpack://@egovernments/digit-ui-module-core/./src/components/DynamicModuleLoader.js","webpack://@egovernments/digit-ui-module-core/./src/components/ErrorBoundaries.js","webpack://@egovernments/digit-ui-module-core/./src/components/ErrorComponent.js","webpack://@egovernments/digit-ui-module-core/./src/components/Header.js","webpack://@egovernments/digit-ui-module-core/./src/components/RoleBasedEmployeeHome.js","webpack://@egovernments/digit-ui-module-core/./src/pages/employee/QuickStart/QuickSetup.js","webpack://@egovernments/digit-ui-module-core/./src/pages/employee/QuickStart/Config.js","webpack://@egovernments/digit-ui-module-core/./src/components/Home.js","webpack://@egovernments/digit-ui-module-core/./src/components/ImageComponent.js","webpack://@egovernments/digit-ui-module-core/./src/components/TopBarSideBar/TopBar.js","webpack://@egovernments/digit-ui-module-core/./src/components/utils.js","webpack://@egovernments/digit-ui-module-core/./src/config/sidebar-menu.js","webpack://@egovernments/digit-ui-module-core/./src/components/TopBarSideBar/SideBar/StaticCitizenSideBar.js","webpack://@egovernments/digit-ui-module-core/./src/components/TopBarSideBar/SideBar/CitizenSideBar.js","webpack://@egovernments/digit-ui-module-core/./src/components/TopBarSideBar/SideBar/EmployeeSideBar.js","webpack://@egovernments/digit-ui-module-core/./src/components/TopBarSideBar/SideBar/index.js","webpack://@egovernments/digit-ui-module-core/./src/components/TopBarSideBar/index.js","webpack://@egovernments/digit-ui-module-core/./src/hoc/withAutoFocusMain.js","webpack://@egovernments/digit-ui-module-core/./src/hooks/useInterval.js","webpack://@egovernments/digit-ui-module-core/./src/hooks/useLoginConfig.js","webpack://@egovernments/digit-ui-module-core/./src/pages/citizen/FAQs/FaqComponent.js","webpack://@egovernments/digit-ui-module-core/./src/pages/citizen/FAQs/FAQs.js","webpack://@egovernments/digit-ui-module-core/./src/pages/citizen/Home/LanguageSelection.js","webpack://@egovernments/digit-ui-module-core/./src/pages/citizen/Home/LocationSelection.js","webpack://@egovernments/digit-ui-module-core/./src/pages/citizen/Home/ImageUpload/UploadDrawer.js","webpack://@egovernments/digit-ui-module-core/./src/pages/citizen/Home/IndividualUserProfile.js","webpack://@egovernments/digit-ui-module-core/./src/pages/citizen/Home/UserProfile.js","webpack://@egovernments/digit-ui-module-core/./src/pages/citizen/Home/index.js","webpack://@egovernments/digit-ui-module-core/./src/pages/citizen/HowItWorks/howItWorks.js","webpack://@egovernments/digit-ui-module-core/./src/pages/citizen/Login/SelectOtp.js","webpack://@egovernments/digit-ui-module-core/./src/pages/citizen/Login/config.js","webpack://@egovernments/digit-ui-module-core/./src/pages/citizen/Login/SelectMobileNumber.js","webpack://@egovernments/digit-ui-module-core/./src/pages/citizen/Login/SelectName.js","webpack://@egovernments/digit-ui-module-core/./src/pages/citizen/Login/IndividualLogin.js","webpack://@egovernments/digit-ui-module-core/./src/pages/citizen/Login/index.js","webpack://@egovernments/digit-ui-module-core/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, useRef, useState } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport { getIdpToken } from \"../utils/idpToken\";\nimport { getStoredSSOTenants, getSwitchableTenantIds, lookupTenants, storeSSOTenants, switchTenant } from \"../utils/ssoTenants\";\n\n/**\n * Diagnostics that survive a production build.\n *\n * The app's webpack.prod.js sets terser `drop_console: true`, so every console.* call - and\n * the string literals inside it - is removed from the deployed bundle. Anything written for\n * diagnosis therefore has to be state, not logging. Read it in the browser as\n * `window.__ssoDebug`.\n */\nconst ssoDebug = (event, data) => {\n try {\n if (typeof window === \"undefined\") return;\n window.__ssoDebug = window.__ssoDebug || [];\n window.__ssoDebug.push({ at: new Date().toISOString(), event, ...data });\n } catch (e) {\n /* diagnostics must never break the component */\n }\n};\n\nlet mountCounter = 0;\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 /* Mirrored in a ref because handleChangeCity is handed to <Dropdown> as a prop. If that\n component holds on to the callback it received on its first render, the closure it calls\n still sees the INITIAL ssoMode (false) however many times the state has updated since -\n which routes an SSO session down the legacy reload path. Reading the ref makes the\n handler independent of which render it was captured in. */\n const ssoModeRef = useRef(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 ssoDebug(\"click\", { selected: city?.value, ssoModeState: ssoMode, ssoModeRef: ssoModeRef.current, currentTenantId });\n if (ssoModeRef.current) 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 /* Identifies which mount each entry came from, so a remount (which resets ssoMode to its\n initial false) is distinguishable from a single mount that simply decided wrongly. */\n const mountId = ++mountCounter;\n ssoDebug(\"effect:mount\", { mount: mountId });\n\n const applySSOTenants = async () => {\n const userType = Digit?.UserService?.getType?.();\n const hasToken = Boolean(getIdpToken());\n const isSSOSession = userType === \"employee\" && hasToken;\n const stored = getStoredSSOTenants();\n\n /* Everything is computed BEFORE the gates so the snapshot shows why a gate rejected,\n not merely that it did. chaduat and chad run identical code against what looks like\n identical state, so the difference has to be in one of these values. */\n ssoDebug(\"effect:start\", {\n mount: mountId,\n deployment: { stateId: Digit?.ULBService?.getStateId?.(), contextPath: window?.contextPath },\n userType,\n hasToken,\n isSSOSession,\n currentTenantId,\n storedCount: stored?.length,\n storedTenants: stored?.map?.((tenant) => tenant?.tenantId),\n storedRaw: stored,\n deploymentMapKeys: Object.keys(window?.globalConfigs?.getConfig(\"TENANT_DEPLOYMENT_MAP\") || {}),\n switchableIds: getSwitchableTenantIds(currentTenantId),\n });\n\n if (!isSSOSession) {\n ssoDebug(\"effect:gate-failed\", { mount: mountId, reason: \"not an SSO session\", userType, hasToken });\n return false;\n }\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 ssoDebug(\"effect:refetch-failed\", { mount: mountId, status: error?.status, message: error?.message });\n }\n }\n\n if (cancelled) return true;\n\n if (tenantIds.length) {\n ssoModeRef.current = true;\n setSsoMode(true);\n setSelectCityData(toOptions(tenantIds));\n ssoDebug(\"effect:sso-mode\", { mount: mountId, 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 ssoDebug(\"effect:fallback-to-roles\", {\n mount: mountId,\n storedTenants: getStoredSSOTenants()?.map?.((tenant) => tenant?.tenantId),\n deploymentMapKeys: Object.keys(window?.globalConfigs?.getConfig(\"TENANT_DEPLOYMENT_MAP\") || {}),\n currentTenantId,\n });\n return false;\n };\n\n applySSOTenants()\n .then((handled) => {\n if (cancelled || handled) return;\n ssoModeRef.current = false;\n setSsoMode(false);\n buildRoleBasedOptions();\n })\n /* An exception here used to leave the component with neither list - silently, because\n an unhandled rejection in an effect shows nothing in production. */\n .catch((error) => {\n ssoDebug(\"effect:threw\", { mount: mountId, message: error?.message, stack: error?.stack });\n });\n\n return () => {\n cancelled = true;\n ssoDebug(\"effect:cleanup\", { mount: mountId });\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 /* data-sso-* are diagnostics: readable in the Elements panel on a production build,\n where console output is stripped. Harmless to leave, trivial to remove. */\n <div\n style={prop?.mobileView ? { color: \"#767676\" } : {}}\n data-sso-mode={String(ssoMode)}\n data-sso-options={selectCityData.map((option) => option?.value).join(\",\")}\n >\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 &lt;\n </button>\n\n <div className=\"carousel-indicators\">\n {carouselItems.map((_, index) => (\n <button\n key={index}\n className={`indicator ${index === currentSlide ? 'active' : ''}`}\n onClick={() => goToSlide(index)}\n />\n ))}\n </div>\n\n <button className=\"carousel-nav\" onClick={nextSlide}>\n &gt;\n </button>\n </div>\n </div>\n </Fragment>\n );\n};\n\nexport default Carousel;","export const loginConfig = [\n {\n texts: {\n header: \"CORE_COMMON_LOGIN\",\n submitButtonLabel: \"CORE_COMMON_LOGIN\",\n secondaryButtonLabel: \"CORE_COMMON_FORGOT_PASSWORD\",\n },\n inputs: [\n {\n label: \"CORE_LOGIN_USERNAME\",\n type: \"text\",\n key: \"username\",\n isMandatory: true,\n populators: {\n name: \"username\",\n validation: {\n required: true,\n },\n error: \"ERR_USERNAME_REQUIRED\",\n },\n },\n {\n label: \"CORE_LOGIN_PASSWORD\",\n type: \"password\",\n key: \"password\",\n isMandatory: true,\n populators: {\n name: \"password\",\n validation: {\n required: true,\n },\n error: \"ERR_PASSWORD_REQUIRED\",\n },\n },\n {\n isMandatory: true,\n type: \"dropdown\",\n key: \"city\",\n label: \"CORE_COMMON_CITY\",\n disable: false,\n populators: {\n name: \"city\",\n optionsKey: \"name\",\n error: \"ERR_HRMS_INVALID_CITY\",\n mdmsConfig: {\n masterName: \"tenants\",\n moduleName: \"tenant\",\n localePrefix: \"TENANT_TENANTS\",\n select:\n \"(data)=>{ return Array.isArray(data['tenant'].tenants) && Digit.Utils.getUnique(data['tenant'].tenants).map(ele=>({code:ele.code,name:Digit.Utils.locale.getTransformedLocale('TENANT_TENANTS_'+ele.code)}))}\",\n },\n },\n },\n {\n key: \"check\",\n type: \"component\",\n disable: false,\n component: \"PrivacyComponent\",\n populators: {\n name: \"check\"\n },\n customProps: {\n module: \"HCM\"\n },\n isMandatory: false,\n withoutLabel: true\n },\n {\n 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' }}>&#8226;</span>\n )}\n {description.type === 'step' && (\n <span style={{ marginRight: '0.5rem', listStyleType: 'decimal' }}>{subIndex + 1}. </span>\n )}\n {t(description.text)}\n </div>\n {description?.subDescriptions && description?.subDescriptions.length > 0 && (\n <div className=\"policy-subdescription\">\n {description.subDescriptions.map((subDesc, subSubIndex) => (\n <div key={subSubIndex} className=\"policy-subdescription-points\">\n {subDesc.type === 'points' && (\n <span style={{ marginRight: '0.5rem', listStyleType: 'disc' , paddingLeft: '1rem'}}>&#8226;</span>\n )}\n {subDesc.type === 'step' && (\n <span style={{ marginRight: '0.5rem', listStyleType: 'decimal' , paddingLeft: '1rem'}}>{subSubIndex + 1}. </span>\n )}\n {subDesc.type === null && (\n <span style={{ marginRight: '0.5rem', paddingLeft: '1rem'}}> </span>\n )}\n {t(subDesc.text)}\n </div>\n ))}\n </div>\n )}\n </div>\n ))}\n </div>\n ))}\n </PopUp>\n )}\n </React.Fragment>\n );\n};\n\nexport default PrivacyComponent;\n","import 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","ssoDebug","event","data","window","__ssoDebug","push","_objectSpread","at","Date","toISOString","e","mountCounter","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","ssoModeRef","useRef","handleSwitchTenant","_asyncToGenerator","city","value","switchTenant","error","console","code","setTimeout","UserService","logout","_x","apply","useEffect","cancelled","mountId","mount","applySSOTenants","_ref2","_Digit","_Digit$getType","_Digit2","_Digit2$getStateId","_window3","_stored$map","_window4","_getStoredSSOTenants","_getStoredSSOTenants$","_window5","userType","getType","call","hasToken","Boolean","getIdpToken","isSSOSession","stored","getStoredSSOTenants","deployment","stateId","ULBService","getStateId","contextPath","storedCount","storedTenants","map","tenant","tenantId","storedRaw","deploymentMapKeys","Object","keys","globalConfigs","getConfig","switchableIds","getSwitchableTenantIds","reason","tenantIds","tenants","lookupTenants","storeSSOTenants","status","message","current","_stringReplaceAll","label","concat","toUpperCase","toOptions","then","handled","_userloggedValues$inf","userloggedValues","teantsArray","filteredArray","info","roles","forEach","role","unique","filter","item","i","ar","indexOf","uniCode","_stringReplaceAll2","select","buildRoleBasedOptions","catch","stack","_jsxs","style","mobileView","color","String","option","join","CardText","Dropdown","t","selected","find","cityValue","optionKey","showArrow","_Digit$SessionStorage","_window$location","_window","ssoModeState","loggedInData","filteredRoles","set","setUser","location","href","_location$state","_window2","redirectPath","state","from","reload","warn","freeze","customSelector","Toast","type","onClose","_languages$find","isDropdown","_Digit$Hooks$useStore","Hooks","useStore","getInitData","storeData","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","preventDefault","onSelect","onCancel","onDismiss","PopupStyles","isDisabled","hideSubmit","footer","size","formId","footerWithoutSubmit","PopUp","heading","footerChildren","sortFooterButtons","onOverlayClick","equalWidthButtons","DummyLoaderScreen","currentStep","setCurrentStep","steps","stepInterval","setInterval","prev","clearInterval","navigateTimeout","roleForLandingPage","getUserRoles","MdmsRes","pathname","RoleLandingUrl","clearTimeout","setButtonDisabled","useCustomMDMS","name","enabled","staleTime","cacheTime","_data$SandBoxLanding","url","_getUserRoles$","some","page","rolesForLandingPage","step","CheckCircle","fill","moduleCode","stateCode","_ref$maxRetries","maxRetries","_ref$retryDelay","retryDelay","_ref$initialDelay","initialDelay","loading","retryCount","initialDelayComplete","moduleState","setModuleState","retryTimeout","initialTimeout","loadModule","Module","ComponentRegistryService","getComponent","delay","Math","pow","loadingText","defaultValue","Loader","variant","loaderText","textAlign","marginTop","Navigate","to","encodeURIComponent","Redircter","path","currentHref","navigationError","replaceError","ErrorBoundary","constructor","super","errorStack","hasError","getDerivedStateFromError","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","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","_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","_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","_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","_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","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","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","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","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","_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","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","_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","_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","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":""}
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, useRef, useState } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport { getIdpToken } from \"../utils/idpToken\";\nimport { getStoredSSOTenants, getSwitchableTenantIds, lookupTenants, storeSSOTenants, switchTenant } from \"../utils/ssoTenants\";\n\n/**\n * Diagnostics that survive a production build.\n *\n * The app's webpack.prod.js sets terser `drop_console: true`, so every console.* call - and\n * the string literals inside it - is removed from the deployed bundle. Anything written for\n * diagnosis therefore has to be state, not logging. Read it in the browser as\n * `window.__ssoDebug`.\n */\nconst ssoDebug = (event, data) => {\n try {\n if (typeof window === \"undefined\") return;\n window.__ssoDebug = window.__ssoDebug || [];\n window.__ssoDebug.push({ at: new Date().toISOString(), event, ...data });\n } catch (e) {\n /* diagnostics must never break the component */\n }\n};\n\nlet mountCounter = 0;\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 /* Mirrored in a ref because handleChangeCity is handed to <Dropdown> as a prop. If that\n component holds on to the callback it received on its first render, the closure it calls\n still sees the INITIAL ssoMode (false) however many times the state has updated since -\n which routes an SSO session down the legacy reload path. Reading the ref makes the\n handler independent of which render it was captured in. */\n const ssoModeRef = useRef(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 ssoDebug(\"click\", { selected: city?.value, ssoModeState: ssoMode, ssoModeRef: ssoModeRef.current, currentTenantId });\n if (ssoModeRef.current) 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 /* Identifies which mount each entry came from, so a remount (which resets ssoMode to its\n initial false) is distinguishable from a single mount that simply decided wrongly. */\n const mountId = ++mountCounter;\n ssoDebug(\"effect:mount\", { mount: mountId });\n\n const applySSOTenants = async () => {\n const userType = Digit?.UserService?.getType?.();\n const hasToken = Boolean(getIdpToken());\n const stored = getStoredSSOTenants();\n\n /**\n * Do NOT gate on getType() alone.\n *\n * It is `Storage.get(\"userType\") || \"citizen\"`, so \"citizen\" is equally its value for\n * \"an actual citizen\" and for \"nobody has set this yet\". On a cold boot of a tenant\n * deployment - which is exactly how switchTenant arrives, via location.replace - this\n * effect runs before the session type is established and gets the default, so an\n * employee was treated as a citizen and the switcher silently fell back to the\n * role-derived list. Arriving on the login deployment hid it, because there the app is\n * already booted (client-side navigate) or sessionStorage survived an F5.\n *\n * These keys are written only for an employee session, so their presence is positive\n * evidence rather than an absence-of-evidence default.\n */\n const employeeMarkers = {\n userTypeIsEmployee: userType === \"employee\",\n hasEmployeeTenantId: Boolean(currentTenantId),\n hasEmployeeToken: Boolean(window?.localStorage?.getItem?.(\"Employee.token\")),\n };\n const isEmployeeSession = Object.values(employeeMarkers).some(Boolean);\n const isSSOSession = isEmployeeSession && hasToken;\n\n /* Everything is computed BEFORE the gates so the snapshot shows why a gate rejected,\n not merely that it did. chaduat and chad run identical code against what looks like\n identical state, so the difference has to be in one of these values. */\n ssoDebug(\"effect:start\", {\n mount: mountId,\n deployment: { stateId: Digit?.ULBService?.getStateId?.(), contextPath: window?.contextPath },\n userType,\n hasToken,\n employeeMarkers,\n isEmployeeSession,\n isSSOSession,\n currentTenantId,\n storedCount: stored?.length,\n storedTenants: stored?.map?.((tenant) => tenant?.tenantId),\n storedRaw: stored,\n deploymentMapKeys: Object.keys(window?.globalConfigs?.getConfig(\"TENANT_DEPLOYMENT_MAP\") || {}),\n switchableIds: getSwitchableTenantIds(currentTenantId),\n });\n\n if (!isSSOSession) {\n ssoDebug(\"effect:gate-failed\", { mount: mountId, reason: \"not an SSO session\", userType, hasToken, employeeMarkers });\n return false;\n }\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 ssoDebug(\"effect:refetch-failed\", { mount: mountId, status: error?.status, message: error?.message });\n }\n }\n\n if (cancelled) return true;\n\n if (tenantIds.length) {\n ssoModeRef.current = true;\n setSsoMode(true);\n setSelectCityData(toOptions(tenantIds));\n ssoDebug(\"effect:sso-mode\", { mount: mountId, 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 ssoDebug(\"effect:fallback-to-roles\", {\n mount: mountId,\n storedTenants: getStoredSSOTenants()?.map?.((tenant) => tenant?.tenantId),\n deploymentMapKeys: Object.keys(window?.globalConfigs?.getConfig(\"TENANT_DEPLOYMENT_MAP\") || {}),\n currentTenantId,\n });\n return false;\n };\n\n applySSOTenants()\n .then((handled) => {\n if (cancelled || handled) return;\n ssoModeRef.current = false;\n setSsoMode(false);\n buildRoleBasedOptions();\n })\n /* An exception here used to leave the component with neither list - silently, because\n an unhandled rejection in an effect shows nothing in production. */\n .catch((error) => {\n ssoDebug(\"effect:threw\", { mount: mountId, message: error?.message, stack: error?.stack });\n });\n\n return () => {\n cancelled = true;\n ssoDebug(\"effect:cleanup\", { mount: mountId });\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 /* data-sso-* are diagnostics: readable in the Elements panel on a production build,\n where console output is stripped. Harmless to leave, trivial to remove. */\n <div\n style={prop?.mobileView ? { color: \"#767676\" } : {}}\n data-sso-mode={String(ssoMode)}\n data-sso-options={selectCityData.map((option) => option?.value).join(\",\")}\n >\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 &lt;\n </button>\n\n <div className=\"carousel-indicators\">\n {carouselItems.map((_, index) => (\n <button\n key={index}\n className={`indicator ${index === currentSlide ? 'active' : ''}`}\n onClick={() => goToSlide(index)}\n />\n ))}\n </div>\n\n <button className=\"carousel-nav\" onClick={nextSlide}>\n &gt;\n </button>\n </div>\n </div>\n </Fragment>\n );\n};\n\nexport default Carousel;","export const loginConfig = [\n {\n texts: {\n header: \"CORE_COMMON_LOGIN\",\n submitButtonLabel: \"CORE_COMMON_LOGIN\",\n secondaryButtonLabel: \"CORE_COMMON_FORGOT_PASSWORD\",\n },\n inputs: [\n {\n label: \"CORE_LOGIN_USERNAME\",\n type: \"text\",\n key: \"username\",\n isMandatory: true,\n populators: {\n name: \"username\",\n validation: {\n required: true,\n },\n error: \"ERR_USERNAME_REQUIRED\",\n },\n },\n {\n label: \"CORE_LOGIN_PASSWORD\",\n type: \"password\",\n key: \"password\",\n isMandatory: true,\n populators: {\n name: \"password\",\n validation: {\n required: true,\n },\n error: \"ERR_PASSWORD_REQUIRED\",\n },\n },\n {\n isMandatory: true,\n type: \"dropdown\",\n key: \"city\",\n label: \"CORE_COMMON_CITY\",\n disable: false,\n populators: {\n name: \"city\",\n optionsKey: \"name\",\n error: \"ERR_HRMS_INVALID_CITY\",\n mdmsConfig: {\n masterName: \"tenants\",\n moduleName: \"tenant\",\n localePrefix: \"TENANT_TENANTS\",\n select:\n \"(data)=>{ return Array.isArray(data['tenant'].tenants) && Digit.Utils.getUnique(data['tenant'].tenants).map(ele=>({code:ele.code,name:Digit.Utils.locale.getTransformedLocale('TENANT_TENANTS_'+ele.code)}))}\",\n },\n },\n },\n {\n key: \"check\",\n type: \"component\",\n disable: false,\n component: \"PrivacyComponent\",\n populators: {\n name: \"check\"\n },\n customProps: {\n module: \"HCM\"\n },\n isMandatory: false,\n withoutLabel: true\n },\n {\n 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' }}>&#8226;</span>\n )}\n {description.type === 'step' && (\n <span style={{ marginRight: '0.5rem', listStyleType: 'decimal' }}>{subIndex + 1}. </span>\n )}\n {t(description.text)}\n </div>\n {description?.subDescriptions && description?.subDescriptions.length > 0 && (\n <div className=\"policy-subdescription\">\n {description.subDescriptions.map((subDesc, subSubIndex) => (\n <div key={subSubIndex} className=\"policy-subdescription-points\">\n {subDesc.type === 'points' && (\n <span style={{ marginRight: '0.5rem', listStyleType: 'disc' , paddingLeft: '1rem'}}>&#8226;</span>\n )}\n {subDesc.type === 'step' && (\n <span style={{ marginRight: '0.5rem', listStyleType: 'decimal' , paddingLeft: '1rem'}}>{subSubIndex + 1}. </span>\n )}\n {subDesc.type === null && (\n <span style={{ marginRight: '0.5rem', paddingLeft: '1rem'}}> </span>\n )}\n {t(subDesc.text)}\n </div>\n ))}\n </div>\n )}\n </div>\n ))}\n </div>\n ))}\n </PopUp>\n )}\n </React.Fragment>\n );\n};\n\nexport default PrivacyComponent;\n","import 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","ssoDebug","event","data","window","__ssoDebug","push","_objectSpread","at","Date","toISOString","e","mountCounter","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","ssoModeRef","useRef","handleSwitchTenant","_asyncToGenerator","city","value","switchTenant","error","console","code","setTimeout","UserService","logout","_x","apply","useEffect","cancelled","mountId","mount","applySSOTenants","_ref2","_Digit","_Digit$getType","_window3","_window3$getItem","_Digit2","_Digit2$getStateId","_window4","_stored$map","_window5","_getStoredSSOTenants","_getStoredSSOTenants$","_window6","userType","getType","call","hasToken","Boolean","getIdpToken","stored","getStoredSSOTenants","employeeMarkers","userTypeIsEmployee","hasEmployeeTenantId","hasEmployeeToken","localStorage","getItem","isEmployeeSession","Object","values","some","isSSOSession","deployment","stateId","ULBService","getStateId","contextPath","storedCount","storedTenants","map","tenant","tenantId","storedRaw","deploymentMapKeys","keys","globalConfigs","getConfig","switchableIds","getSwitchableTenantIds","reason","tenantIds","tenants","lookupTenants","storeSSOTenants","status","message","current","_stringReplaceAll","label","concat","toUpperCase","toOptions","then","handled","_userloggedValues$inf","userloggedValues","teantsArray","filteredArray","info","roles","forEach","role","unique","filter","item","i","ar","indexOf","uniCode","_stringReplaceAll2","select","buildRoleBasedOptions","catch","stack","_jsxs","style","mobileView","color","String","option","join","CardText","Dropdown","t","selected","find","cityValue","optionKey","showArrow","_Digit$SessionStorage","_window$location","_window","ssoModeState","loggedInData","filteredRoles","set","setUser","location","href","_location$state","_window2","redirectPath","state","from","reload","warn","freeze","customSelector","Toast","type","onClose","_languages$find","isDropdown","_Digit$Hooks$useStore","Hooks","useStore","getInitData","storeData","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","preventDefault","onSelect","onCancel","onDismiss","PopupStyles","isDisabled","hideSubmit","footer","size","formId","footerWithoutSubmit","PopUp","heading","footerChildren","sortFooterButtons","onOverlayClick","equalWidthButtons","DummyLoaderScreen","currentStep","setCurrentStep","steps","stepInterval","setInterval","prev","clearInterval","navigateTimeout","roleForLandingPage","getUserRoles","MdmsRes","pathname","RoleLandingUrl","clearTimeout","setButtonDisabled","useCustomMDMS","name","enabled","staleTime","cacheTime","_data$SandBoxLanding","url","_getUserRoles$","page","rolesForLandingPage","step","CheckCircle","fill","moduleCode","stateCode","_ref$maxRetries","maxRetries","_ref$retryDelay","retryDelay","_ref$initialDelay","initialDelay","loading","retryCount","initialDelayComplete","moduleState","setModuleState","retryTimeout","initialTimeout","loadModule","Module","ComponentRegistryService","getComponent","delay","Math","pow","loadingText","defaultValue","Loader","variant","loaderText","textAlign","marginTop","Navigate","to","encodeURIComponent","Redircter","path","currentHref","navigationError","replaceError","ErrorBoundary","constructor","super","errorStack","hasError","getDerivedStateFromError","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","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","_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","_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","_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","_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","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","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","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","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","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","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","_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","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","_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","_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","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":""}