{"version":3,"mappings":"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","names":["useAppTranslation","useIsolatedTranslation","localeNameSpaces","initSentry","Sentry.init","Sentry.reactRouterV6BrowserTracingIntegration","useEffect","useLocation","useNavigationType","createRoutesFromChildren","matchRoutes","forApi","token","apiConfigs","forAll","dispatch","ssoUserInfo","loggedIn","setToken","userManagerConfig","urlGenerator","userManager","UserManager","removeLottieLoading","_a","_b","CustomErrorBoundary","props","jsx","ErrorBoundary","AppErrorBoundary","children","t","Sentry.ErrorBoundary","p","localeResources","enWrapperLocaleFile","enUtilsLocaleFile","enComponentsLocaleFile","enApisLocaleFile","faWrapperLocaleFile","faUtilsLocaleFile","faComponentsLocaleFile","faApisLocaleFile","SET_DASHBOARD_PREFERENCE","initialState","dashboardPreference","state","action","SET_REDIRECT_URL","loginRedirect","SET_UPDATE_AVAILABLE","serviceWorker","DASHBOARD_REDUX_REDUCER_ACTIONS_TYPE","DashboardReduxReducer","storeVersion","whitelist","persistConfig","localForage","persistConfig$1","sentryReduxEnhancer","Sentry.createReduxEnhancer","appReducers","dashboard","reduxConfig","reportWebVitals","onPerfEntry","__vitePreload","getCLS","getFID","getFCP","getLCP","getTTFB","getSelector","node","maxLen","sel","part","getLargestLayoutShiftEntry","entries","a","b","getLargestLayoutShiftSource","sources","wasFIDBeforeDCL","fidEntry","navEntry","getDebugInfo","name","lastEntry","firstEntry","largestEntry","largestSource","sendToAnalytics","delta","value","id","debugInfo","isLocalhost","register","config","swUrl","checkValidServiceWorker","registerValidSW","registration","installingWorker","error","response","contentType","setDashboardPreference","preference","useAppDispatch","useDispatch","useAppSelector","useSelector","componentLoader","lazyComponent","attemptsLeft","resolve","reject","LottieLoading","lazy","Loading","Suspense","SignContractContract","personalInfo","businessInfo","localInfo","shebaId","date","useRef","moment","md","Grid","jsxs","Flex","Typography","dateFormats","Space","Divider","SignContractDraw","canvasRef","signaturePadRef","theme","signaturePad","canvas","ratio","SignaturePad","clearDraw","confirmDraw","data","blob","Button","SignContractPage","showDraw","setShowDraw","useState","image","setImage","loading","useMessagedAsync","getPersonalInfo","getUserBusinessinfo","getUserLocalInformation","getUserBank","sendRequestState","handleSendRequest","useMessagedAsyncFn","formData","text","portableFetch","webConstants","sendContract","contractContent","res","html2canvas","Layout","styles","Result","_","Fragment","Main","n","InitApp","element","setElement","isValidToken","setIsValidToken","store","useAsync","userInfo","getUserInfo","updateUserClaims","e","Login","Logout","navigate","useNavigate","tmpToken","setTmpToken","setLoading","AUTH_URL","handleLogout","useAsyncFn","Sentry.configureScope","scope","loggedOut","safeJoinPath","Modal","OAuthCallbackPage","location","settled","setSettled","redirectUrl","Navigate","INIT_ROUTES","OAuthCallback","enUS","faIR","locales","App","tokenAuth","lastDashboardPreference","newValueOfDashboardPreference","locale","direction","i18n","defaultPath","configLocale","currentVersion","supportedVersion","latestVersion","setVersions","semver","ConfigProvider","Routes","Component","componentPath","index","Route","setRedirectUrl","url","generalHandler","Message","statusHandlers","currentRoute","setShowTOTPModal","domain","networkChecker","ResizeObserver","initToken","envToken","auth","organization","reduxToken","renderAppOnRehydrate","initI18next","ProfiledApp","Sentry.withProfiler","Provider","PersistGate","persistor","BrowserRouter","createRoot","configureStore","serviceWorkerRegistration.register"],"sources":["../../src/utils/useAppTranslation.ts","../../src/utils/initSentry.ts","../../src/utils/setToken.ts","../../src/utils/userManager.ts","../../src/utils/loading.ts","../../src/AppErrorBoundary.tsx","../../src/assets/locales/resources.ts","../../src/redux/reducers/dashboardPreference.ts","../../src/redux/reducers/loginRedirect.ts","../../src/redux/reducers/serviceWorker.ts","../../src/redux/reducers/dashboard.ts","../../src/redux/configs/persistConfig.ts","../../src/redux/configs/index.ts","../../src/reportWebVitals.ts","../../src/web-vitals.js","../../src/serviceWorkerRegistration.ts","../../src/redux/actions/dashboardPreference.ts","../../src/utils/redux.ts","../../src/utils/componentLoader.ts","../../src/pages/loading.tsx","../../src/pages/sign-contract/Contract.tsx","../../src/pages/sign-contract/Draw.tsx","../../src/pages/sign-contract/index.tsx","../../src/pages/initApp.tsx","../../src/pages/Login.tsx","../../src/pages/Logout.tsx","../../src/pages/OAuthCallbackPage.tsx","../../src/router/constant.ts","../../src/App.tsx","../../src/redux/actions/loginRedirect.ts","../../src/apiConfigs.ts","../../src/index.tsx"],"sourcesContent":["import { localeNameSpaces, useIsolatedTranslation } from \"@payping/utils/localeUtils\";\n\nexport function useAppTranslation(): any {\n return useIsolatedTranslation(localeNameSpaces.Wrapper);\n}\n","import * as Sentry from \"@sentry/react\";\nimport { useEffect } from \"react\";\nimport { createRoutesFromChildren, matchRoutes, useLocation, useNavigationType } from \"react-router-dom\";\n\nexport function initSentry(): void {\n if (process.env.NODE_ENV === \"production\") {\n Sentry.init({\n dsn: process.env.REACT_APP_SENTRY_DSN,\n environment: process.env.REACT_APP_ENV,\n integrations: [\n Sentry.reactRouterV6BrowserTracingIntegration({\n useEffect,\n useLocation,\n useNavigationType,\n createRoutesFromChildren,\n matchRoutes,\n }),\n // TODO: check new sentry beta feature (replay)\n // new Sentry.Replay(),\n ],\n // Or however deep you want your state context to be. useful for redux integration.\n normalizeDepth: 10,\n // Releases are global per organization; prefix them with something project-specific for easy differentiation.\n release: `${process.env.REACT_APP_NAME}@${process.env.REACT_APP_VERSION}`,\n // // If the entire session is not sampled, use the below sample rate to sample\n // // sessions when an error occurs.\n // replaysOnErrorSampleRate: 1.0,\n // // This sets the sample rate to be 10%. You may want this to be 100% while\n // // in development and sample at a lower rate in production\n // replaysSessionSampleRate: 1.0,\n // We recommend adjusting this value in production, or using tracesSampler\n // for finer control\n tracesSampleRate: 0.1,\n });\n }\n}\n","import { apiConfigs } from \"@payping/api\";\nimport { SdkThunkDispatch } from \"@payping/redux/reducers\";\nimport { loggedIn } from \"@payping/redux/actions\";\n\nfunction forApi(token: string): void {\n apiConfigs.updateConfig({ accessToken: token });\n}\n\nfunction forAll(dispatch: SdkThunkDispatch, token: string, ssoUserInfo?: Record): void {\n forApi(token);\n dispatch(loggedIn(token, ssoUserInfo));\n}\n\nexport const setToken = {\n forAll,\n forApi,\n};\n","import { urlGenerator } from \"@payping/utils/platformConstants\";\nimport { UserManager, UserManagerSettings } from \"oidc-client\";\n\nexport interface UserManagerType {\n // eslint-disable-next-line camelcase\n client_id: string;\n // eslint-disable-next-line camelcase\n redirect_uri: string;\n // eslint-disable-next-line camelcase\n response_type: string;\n scope: string;\n authority: string;\n}\n\nexport const userManagerConfig: UserManagerSettings = {\n authority: urlGenerator(process.env.REACT_APP_DOMAIN || \"\").AUTH_URL,\n client_id: \"PayPingWebApp\",\n redirect_uri: `${window.location.protocol}//${window.location.hostname}${\n window.location.port ? `:${window.location.port}` : \"\"\n }/oauth_callback`,\n response_type: \"token id_token\",\n scope: [\n \"offline_access\",\n \"openid\",\n \"profile\",\n \"client:read\",\n \"client:write\",\n \"coupon:read\",\n \"coupon:write\",\n \"customer:read\",\n \"customer:write\",\n \"integration:read\",\n \"integration:write\",\n \"invoice:read\",\n \"invoice:write\",\n \"settlement:read\",\n \"settlement:write\",\n \"pay:read\",\n \"pay:write\",\n \"product:read\",\n \"product:write\",\n \"signalr:read\",\n \"timeline:read\",\n \"upload:write\",\n \"user:read\",\n \"user:write\",\n \"account:read\",\n \"account:write\",\n ].join(\" \"),\n};\n\nexport const userManager = new UserManager(userManagerConfig);\n","export function removeLottieLoading() {\n document.getElementById(\"lottieContainer\")?.remove();\n document.getElementById(\"lottie_styles\")?.remove();\n}\n","import { ErrorBoundary } from \"@payping/web-components\";\nimport { FallbackRender } from \"@sentry/react\";\nimport * as Sentry from \"@sentry/react\";\nimport { FC, PropsWithChildren, useEffect } from \"react\";\nimport { useAppTranslation } from \"./utils/useAppTranslation\";\nimport { removeLottieLoading } from \"./utils\";\n\n// If Error happens on the first page of the app, it should remove the loading so the error is seen\nconst CustomErrorBoundary: FallbackRender = (props) => {\n useEffect(() => {\n removeLottieLoading();\n }, []);\n\n return ;\n};\n\nexport const AppErrorBoundary: FC = ({ children }) => {\n const { t } = useAppTranslation();\n\n return (\n }\n showDialog\n dialogOptions={{\n errorFormEntry: t(\"errorBoundary.feedBack.errorFormEntry\"),\n errorGeneric: t(\"errorBoundary.feedBack.errorGeneric\"),\n labelClose: t(\"errorBoundary.feedBack.labelClose\"),\n labelComments: t(\"errorBoundary.feedBack.labelComments\"),\n labelEmail: t(\"errorBoundary.feedBack.labelEmail\"),\n labelName: t(\"errorBoundary.feedBack.labelName\"),\n labelSubmit: t(\"errorBoundary.feedBack.labelSubmit\"),\n lang: \"en\",\n subtitle: t(\"errorBoundary.feedBack.subtitle\"),\n subtitle2: t(\"errorBoundary.feedBack.subtitle2\"),\n successMessage: t(\"errorBoundary.feedBack.successMessage\"),\n title: t(\"errorBoundary.feedBack.title\"),\n }}\n >\n {children}\n \n );\n};\n","import enUtilsLocaleFile from \"@payping/utils/locales/en.json\";\nimport faUtilsLocaleFile from \"@payping/utils/locales/fa.json\";\nimport { localeNameSpaces } from \"@payping/utils/localeUtils\";\nimport enComponentsLocaleFile from \"@payping/web-components/locales/i18next_en.json\";\nimport faComponentsLocaleFile from \"@payping/web-components/locales/i18next_fa.json\";\nimport enApisLocaleFile from \"@payping/api/locales/en.json\";\nimport faApisLocaleFile from \"@payping/api/locales/fa.json\";\n\nimport enWrapperLocaleFile from \"./en/translation.json\";\nimport faWrapperLocaleFile from \"./fa/translation.json\";\n\ntype Locales = \"en\" | \"fa\";\ntype Namespaces = string;\ntype LocaleFile = Record;\ntype NamespaceDefinition = Record;\ntype LocaleResources = Record;\n\nexport const localeResources: LocaleResources = {\n en: {\n [localeNameSpaces[localeNameSpaces.Wrapper]]: enWrapperLocaleFile,\n [localeNameSpaces[localeNameSpaces.Utils]]: enUtilsLocaleFile,\n [localeNameSpaces[localeNameSpaces.Components]]: enComponentsLocaleFile,\n [localeNameSpaces[localeNameSpaces.Apis]]: enApisLocaleFile,\n },\n fa: {\n [localeNameSpaces[localeNameSpaces.Wrapper]]: faWrapperLocaleFile,\n [localeNameSpaces[localeNameSpaces.Utils]]: faUtilsLocaleFile,\n [localeNameSpaces[localeNameSpaces.Components]]: faComponentsLocaleFile,\n [localeNameSpaces[localeNameSpaces.Apis]]: faApisLocaleFile,\n },\n};\n","export const SET_DASHBOARD_PREFERENCE = \"SET_DASHBOARD_PREFERENCE\";\n\nexport interface DashboardPreferenceState {\n dashboardPreference: \"old\" | \"new\" | \"\";\n}\n\nexport interface SetDashboardPreferenceAction {\n type: typeof SET_DASHBOARD_PREFERENCE;\n payload: \"old\" | \"new\";\n}\nexport type DashboardPreferenceActionTypes = SetDashboardPreferenceAction;\n\nexport const initialState: DashboardPreferenceState = {\n dashboardPreference: \"\",\n};\n\nexport default function dashboardPreference(\n // eslint-disable-next-line default-param-last\n state = initialState,\n action: DashboardPreferenceActionTypes,\n): DashboardPreferenceState {\n if (action.type === SET_DASHBOARD_PREFERENCE) {\n return {\n ...state,\n dashboardPreference: action.payload,\n };\n }\n\n return state;\n}\n","export const SET_REDIRECT_URL = \"SET_REDIRECT_URL\";\n\nexport interface LoginRedirectState {\n redirectUrl: string;\n}\n\nexport interface SetRedirectUrlAction {\n type: typeof SET_REDIRECT_URL;\n payload: string;\n}\n\nexport type LoginRedirectActionTypes = SetRedirectUrlAction;\n\nexport const initialState: LoginRedirectState = {\n redirectUrl: \"\",\n};\n\n// eslint-disable-next-line default-param-last\nexport default function loginRedirect(state = initialState, action: LoginRedirectActionTypes): LoginRedirectState {\n if (action.type === SET_REDIRECT_URL) {\n return {\n ...state,\n redirectUrl: action.payload,\n };\n }\n\n return state;\n}\n","export const SET_UPDATE_AVAILABLE = \"SET_UPDATE_AVAILABLE\";\n\nexport interface ServiceWorkerState {\n hasUpdate: boolean;\n}\n\nexport interface SetUpdateAvailable {\n type: typeof SET_UPDATE_AVAILABLE;\n payload: boolean;\n}\n\nexport type ServiceWorkerActionTypes = SetUpdateAvailable;\n\nexport const initialState: ServiceWorkerState = {\n hasUpdate: false,\n};\n\n// eslint-disable-next-line default-param-last\nexport default function serviceWorker(state = initialState, action: ServiceWorkerActionTypes): ServiceWorkerState {\n if (action.type === SET_UPDATE_AVAILABLE) {\n return {\n ...state,\n hasUpdate: action.payload,\n };\n }\n\n return state;\n}\n","import {} from \"redux\";\nimport {\n DashboardReduxReducerActionsReturn,\n DashboardReduxReducerUpgradeUserPlanToProServices,\n DashboardReduxReducerUpgradeUserPlanToStandardServices,\n} from \"../actions/dashboard\";\n\nexport const DASHBOARD_REDUX_REDUCER_ACTIONS_TYPE = {\n SHOW_UPGRADE_USER_PLAN_TO_PRO_MODAL: \"SHOW_UPGRADE_USER_PLAN_TO_PRO_MODAL\",\n HIDE_UPGRADE_USER_PLAN_TO_PRO_MODAL: \"HIDE_UPGRADE_USER_PLAN_TO_PRO_MODAL\",\n SHOW_UPGRADE_USER_PLAN_TO_STANDARD_MODAL: \"SHOW_UPGRADE_USER_PLAN_TO_STANDARD_MODAL\",\n HIDE_UPGRADE_USER_PLAN_TO_STANDARD_MODAL: \"HIDE_UPGRADE_USER_PLAN_TO_STANDARD_MODAL\",\n} as const;\n\nexport interface DashboardReduxReducerState {\n upgradeUserPlanToPro: {\n service?: DashboardReduxReducerUpgradeUserPlanToProServices;\n showModal: boolean;\n };\n upgradeUserPlanToStandard: {\n service?: DashboardReduxReducerUpgradeUserPlanToStandardServices;\n showModal: boolean;\n };\n}\n\nexport const initialState: DashboardReduxReducerState = {\n upgradeUserPlanToPro: {\n service: undefined,\n showModal: false,\n },\n upgradeUserPlanToStandard: {\n service: undefined,\n showModal: false,\n },\n};\n\nfunction DashboardReduxReducer(\n // eslint-disable-next-line default-param-last\n state: DashboardReduxReducerState = initialState,\n action: DashboardReduxReducerActionsReturn\n): DashboardReduxReducerState {\n switch (action.type) {\n case DASHBOARD_REDUX_REDUCER_ACTIONS_TYPE.SHOW_UPGRADE_USER_PLAN_TO_PRO_MODAL:\n return {\n ...state,\n upgradeUserPlanToPro: {\n service: action.payload,\n showModal: true,\n },\n };\n case DASHBOARD_REDUX_REDUCER_ACTIONS_TYPE.HIDE_UPGRADE_USER_PLAN_TO_PRO_MODAL:\n return {\n ...state,\n upgradeUserPlanToPro: {\n service: undefined,\n showModal: false,\n },\n };\n case DASHBOARD_REDUX_REDUCER_ACTIONS_TYPE.SHOW_UPGRADE_USER_PLAN_TO_STANDARD_MODAL:\n return {\n ...state,\n upgradeUserPlanToStandard: {\n service: action.payload,\n showModal: true,\n },\n };\n case DASHBOARD_REDUX_REDUCER_ACTIONS_TYPE.HIDE_UPGRADE_USER_PLAN_TO_STANDARD_MODAL:\n return {\n ...state,\n upgradeUserPlanToStandard: {\n service: undefined,\n showModal: false,\n },\n };\n\n default:\n return state || initialState;\n }\n}\n\nexport default DashboardReduxReducer;\n","import { SdkPersistConfig } from \"@payping/redux\";\nimport localForage from \"localforage\";\n\nconst storeVersion = 3;\n\nconst whitelist = [\"auth\", \"user\", \"settings\", \"loginRedirect\", \"dashboardPreference\"];\n\nconst persistConfig: SdkPersistConfig = {\n storage: localForage,\n version: storeVersion,\n whitelist,\n};\n\nexport default { ...persistConfig };\n","import { SdkConfigureStore } from \"@payping/redux\";\nimport { SdkStoreStates } from \"@payping/redux/reducers\";\nimport * as Sentry from \"@sentry/react\";\n\nimport dashboardPreference, { DashboardPreferenceState } from \"@/redux/reducers/dashboardPreference\";\nimport loginRedirect, { LoginRedirectState } from \"../reducers/loginRedirect\";\nimport serviceWorker, { ServiceWorkerState } from \"../reducers/serviceWorker\";\nimport dashboard, { DashboardReduxReducerState } from \"../reducers/dashboard\";\n\nimport persistConfig from \"./persistConfig\";\n\nexport interface AppStoreStates extends SdkStoreStates {\n loginRedirect: LoginRedirectState;\n serviceWorker: ServiceWorkerState;\n dashboard: DashboardReduxReducerState;\n dashboardPreference: DashboardPreferenceState;\n}\n\nconst sentryReduxEnhancer = Sentry.createReduxEnhancer();\n\nconst appReducers = {\n loginRedirect,\n serviceWorker,\n dashboard,\n dashboardPreference,\n};\n\nexport const reduxConfig: SdkConfigureStore = {\n appEnhancers: [sentryReduxEnhancer],\n appPersistConfig: persistConfig,\n // @ts-ignore wrong type\n appReducers,\n};\n","import { ReportHandler } from \"web-vitals\";\n\nconst reportWebVitals = (onPerfEntry?: ReportHandler): void => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import(\"web-vitals\").then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","function getSelector(node, maxLen = 100) {\n let sel = \"\";\n try {\n while (node && node.nodeType !== 9) {\n const part = node.id\n ? `#${node.id}`\n : node.nodeName.toLowerCase() +\n (node.className && node.className.length ? `.${Array.from(node.classList.values()).join(\".\")}` : \"\");\n if (sel.length + part.length > maxLen - 1) return sel || part;\n sel = sel ? `${part}>${sel}` : part;\n if (node.id) break;\n // eslint-disable-next-line no-param-reassign\n node = node.parentNode;\n }\n } catch (err) {\n // Do nothing...\n }\n return sel;\n}\n\nfunction getLargestLayoutShiftEntry(entries) {\n return entries.reduce((a, b) => (a && a.value > b.value ? a : b));\n}\n\nfunction getLargestLayoutShiftSource(sources) {\n return sources.reduce((a, b) =>\n a.node && a.previousRect.width * a.previousRect.height > b.previousRect.width * b.previousRect.height ? a : b\n );\n}\nfunction wasFIDBeforeDCL(fidEntry) {\n const navEntry = performance.getEntriesByType(\"navigation\")[0];\n return navEntry && fidEntry.startTime < navEntry.domContentLoadedEventStart;\n}\n// function getFIDDebugTarget(entries) {\n// return entries[0].target;\n// }\n// function getFIDEventType(entries) {\n// return entries[0].name;\n// }\n\nfunction getDebugInfo(name, entries = []) {\n // In some cases there won't be any entries (e.g. if CLS is 0,\n // or for LCP after a bfcache restore), so we have to check first.\n if (entries.length) {\n if (name === \"LCP\") {\n const lastEntry = entries[entries.length - 1];\n return {\n debug_target: getSelector(lastEntry.element),\n event_time: lastEntry.startTime,\n };\n }\n if (name === \"FID\") {\n const firstEntry = entries[0];\n return {\n debug_event: firstEntry.name,\n debug_target: getSelector(firstEntry.target),\n debug_timing: wasFIDBeforeDCL(firstEntry) ? \"pre_dcl\" : \"post_dcl\",\n event_time: firstEntry.startTime,\n };\n }\n if (name === \"CLS\") {\n const largestEntry = getLargestLayoutShiftEntry(entries);\n if (largestEntry && largestEntry.sources && largestEntry.sources.length) {\n const largestSource = getLargestLayoutShiftSource(largestEntry.sources);\n if (largestSource) {\n return {\n debug_target: getSelector(largestSource.node),\n event_time: largestEntry.startTime,\n };\n }\n }\n }\n }\n // Return default/empty params in case there are no entries.\n return {\n debug_target: \"(not set)\",\n };\n}\n\nexport function sendToAnalytics({ name, delta, value, id, entries }) {\n const debugInfo = getDebugInfo(name, entries);\n if (window.gtag) {\n window.gtag(\"event\", name, {\n // Custom params:\n metric_delta: delta, // Delta for querying in BQ\n metric_id: id, // Needed to aggregate events.\n metric_value: value, // Value for querying in BQ\n // Built-in params:\n value: delta, // Use `delta` so the value can be summed.\n // Send the returned values from getDebugInfo() as custom parameters\n ...debugInfo,\n });\n }\n}\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://cra.link/PWA\n\n/* eslint-disable */\nconst isLocalhost = Boolean(\n window.location.hostname === \"localhost\" ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === \"[::1]\" ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(/^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/)\n);\n\ntype Config = {\n onSuccess?: (registration: ServiceWorkerRegistration) => void;\n onUpdate?: (registration: ServiceWorkerRegistration) => void;\n};\n\nexport function register(config?: Config) {\n if (process.env.NODE_ENV === \"production\" && \"serviceWorker\" in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener(\"load\", () => {\n const swUrl = \"/service-worker.js\";\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n \"This web app is being served cache-first by a service \" +\n \"worker. To learn more, visit https://cra.link/PWA\"\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl: string, config?: Config) {\n navigator.serviceWorker\n .register(swUrl)\n .then((registration) => {\n registration.update();\n console.log(\"src/serviceWorkerRegistration.ts -> initial update check, date:\", Date());\n setInterval(() => {\n console.log(\"src/serviceWorkerRegistration.ts -> interval update check, date:\", Date());\n registration.update();\n }, 30 * 60 * 1000);\n\n registration.onupdatefound = () => {\n console.log(\"src/serviceWorkerRegistration.ts -> updateFound registration:\", registration);\n\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === \"installed\") {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n \"New content is available and will be used when all \" +\n \"tabs for this page are closed. See https://cra.link/PWA.\"\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log(\"Content is cached for offline use.\");\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch((error) => {\n console.error(\"Error during service worker registration:\", error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl: string, config?: Config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { \"Service-Worker\": \"script\" },\n })\n .then((response) => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get(\"content-type\");\n if (response.status === 404 || (contentType != null && contentType.indexOf(\"javascript\") === -1)) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then((registration) => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\"No internet connection found. App is running in offline mode.\");\n });\n}\n\nexport function unregister() {\n if (\"serviceWorker\" in navigator) {\n navigator.serviceWorker.ready\n .then((registration) => {\n registration.unregister();\n })\n .catch((error) => {\n console.error(error.message);\n });\n }\n}\n","import { SdkThunkActionResult } from \"@payping/redux/reducers\";\n\nimport { SET_DASHBOARD_PREFERENCE, SetDashboardPreferenceAction } from \"../reducers/dashboardPreference\";\n\nexport function setDashboardPreference(\n preference: SetDashboardPreferenceAction[\"payload\"],\n): SdkThunkActionResult> {\n return async (dispatch): Promise => {\n dispatch({ payload: preference, type: SET_DASHBOARD_PREFERENCE });\n };\n}\n","import { SdkThunkDispatch } from \"@payping/redux/reducers\";\nimport { TypedUseSelectorHook, useDispatch, useSelector } from \"react-redux\";\nimport { AppStoreStates } from \"../redux/configs\";\n\nexport function useAppDispatch(): SdkThunkDispatch {\n return useDispatch>();\n}\n\nexport const useAppSelector: TypedUseSelectorHook = useSelector;\n","import { FC } from \"react\";\n\nexport default function componentLoader(\n lazyComponent: any,\n attemptsLeft: number\n): Promise<{ default: FC }> {\n return new Promise((resolve, reject) => {\n lazyComponent()\n .then((value: any) => {\n resolve(value);\n })\n .catch((error: unknown) => {\n // let us retry after 2000 ms\n setTimeout(() => {\n // eslint-disable-next-line no-console\n console.log(\"Trying to download\");\n if (attemptsLeft === 1) {\n // eslint-disable-next-line no-console\n console.log(\"Last attempt failed\");\n reject(error);\n return;\n }\n componentLoader(lazyComponent, attemptsLeft - 1).then(resolve, reject);\n }, 2000);\n });\n });\n}\n","import { Suspense, lazy } from \"react\";\nimport componentLoader from \"../utils/componentLoader\";\n\nconst LottieLoading = lazy(() => componentLoader(() => import(/* webpackPreload: true */ \"./lottieLoading\"), 3));\n\nconst Loading = () => (\n \n \n \n);\n\nexport default Loading;\n","import { useAppSelector } from \"@/utils/redux\";\nimport { useAppTranslation } from \"@/utils/useAppTranslation\";\nimport { dateFormats, moment } from \"@payping/utils/dateUtils\";\nimport { Divider, Flex, Grid, Space, Typography } from \"@payping/web-components\";\nimport { useRef } from \"react\";\n\ninterface Contract {\n issue?: string;\n}\nexport default function SignContractContract(props: Contract) {\n const { t } = useAppTranslation();\n const personalInfo = useAppSelector((state) => state.user.personalInfo);\n const businessInfo = useAppSelector((state) => state.user.businessInfo);\n const localInfo = useAppSelector((state) => state.user.localInfo);\n const shebaId = useAppSelector((state) => state.user.bankInfo?.sheba);\nconst date = useRef(moment(new Date()));\n const { md } = Grid.useBreakpoint();\n\n return (\n
\n \n {`${t(\"signContract.number\")} : ${personalInfo?.id}${date.current.unix()}`}\n {`${t(\"signContract.date\")} : ${(date.current).format(dateFormats.ui.jalaliDate)}`}\n \n {t(\"signContract.articleOne.title\")}\n {t(\"signContract.articleOne.one\")}\n \n {t(\"signContract.articleOne.two\", {\n fullName: `${personalInfo?.firstName || \"\"} ${personalInfo?.lastName || \"\"}`,\n fatherName: personalInfo?.fatherName || \"\",\n nationalCode: personalInfo?.nationalCode || \"\",\n economicCode: businessInfo?.economicCode || \"\",\n address: localInfo?.address,\n businessDescription: businessInfo?.businessDescription || \"\",\n })}\n \n {t(\"signContract.articleTwo.title\")}\n \n {t(\"signContract.articleTwo.one\", { websiteAddress: businessInfo?.site })}\n \n {t(\"signContract.articleTwo.two\")}\n {t(\"signContract.articleTwo.three\")}\n {t(\"signContract.articleTwo.four\")}\n\n {t(\"signContract.articleThree.title\")}\n {t(\"signContract.articleThree.one\")}\n {t(\"signContract.articleThree.two\")}\n {t(\"signContract.articleThree.three\")}\n {t(\"signContract.articleThree.four\")}\n {t(\"signContract.articleThree.five\")}\n\n {t(\"signContract.articleFour.title\")}\n {t(\"signContract.articleFour.one\")}\n {t(\"signContract.articleFour.two\")}\n {t(\"signContract.articleFour.three\")}\n {t(\"signContract.articleFour.four\", { sheba: shebaId })}\n {t(\"signContract.articleFour.five\")}\n {t(\"signContract.articleFour.six\")}\n {t(\"signContract.articleFour.seven\")}\n {t(\"signContract.articleFour.eight\")}\n {t(\"signContract.articleFour.nine\")}\n {t(\"signContract.articleFour.ten\")}\n {t(\"signContract.articleFour.evelen\")}\n {t(\"signContract.articleFour.twelve\")}\n {t(\"signContract.articleFour.thirteen\")}\n {t(\"signContract.articleFour.fourteen\")}\n {t(\"signContract.articleFour.fifteen\")}\n {t(\"signContract.articleFour.sixteen\")}\n \n
\n {t(\"signContract.ctoName\")}\n {t(\"signContract.ctoTitle\")}\n \n {t(\"signContract.cbdName\")}\n {t(\"signContract.cbdTitle\")}\n
\n
\n \n {t(\"signContract.acceptor\", { acceptorName: businessInfo?.businessName || \"\" })}\n \n\n \n
\n {props.issue ? : t(\"signContract.issuePlaceholder\")}\n
\n
\n \n
\n );\n}\n","import { useAppTranslation } from \"@/utils/useAppTranslation\";\nimport { Button, Space, theme } from \"@payping/web-components\";\nimport { useEffect, useRef } from \"react\";\nimport SignaturePad from \"signature_pad\";\n\ninterface DrawProps {\n onFinish: (blob: Blob, data: string) => void;\n loading?: boolean;\n}\n\nconst SignContractDraw = (props: DrawProps) => {\n const { t } = useAppTranslation();\n\n const canvasRef = useRef(null);\n const signaturePadRef = useRef(null);\n\n const { token } = theme.useToken();\n\n useEffect(() => {\n const signaturePad = signaturePadRef.current;\n const canvas = canvasRef.current;\n if (canvas) {\n const ratio = Math.max(window.devicePixelRatio || 1, 1);\n canvas.width = canvas.offsetWidth * ratio;\n canvas.height = canvas.offsetHeight * ratio;\n canvas.getContext(\"2d\")?.scale(ratio, ratio);\n (signaturePadRef as any).current = new SignaturePad(canvas, { backgroundColor: \"#ffffff\", penColor: \"#000000\" });\n }\n return () => {\n if (signaturePad) {\n signaturePad.clear();\n signaturePad.off();\n }\n };\n }, [canvasRef]);\n\n const clearDraw = () => {\n const signaturePad = signaturePadRef.current;\n if (signaturePad) {\n signaturePad.clear();\n }\n };\n\n async function confirmDraw() {\n if (props.loading) {\n return;\n }\n const signaturePad = signaturePadRef.current;\n\n if (signaturePad) {\n if (signaturePad.isEmpty()) {\n // notification.error({\n // message: String(t(\"pay.getOrder.steps.uploadSignature.form.errorForDraw\")),\n // closable: true,\n // });\n }\n\n const data = signaturePad.toDataURL(\"image/jpeg\");\n\n const blob = await (await fetch(data)).blob();\n\n props.onFinish(blob, data);\n }\n }\n\n return (\n \n \n \n {\n clearDraw();\n }}\n >\n {t(\"signContract.redraw\")}\n \n {\n confirmDraw();\n }}\n >\n {t(\"signContract.sign\")}\n \n \n \n );\n};\n\nexport default SignContractDraw;\n","import { removeLottieLoading } from \"@/utils\";\nimport { useAppDispatch, useAppSelector } from \"@/utils/redux\";\nimport { useAppTranslation } from \"@/utils/useAppTranslation\";\nimport { Button, Layout, Result, useMessagedAsync, useMessagedAsyncFn } from \"@payping/web-components\";\nimport { useEffect, useState } from \"react\";\nimport { getPersonalInfo, getUserBank, getUserBusinessinfo, getUserLocalInformation } from \"@payping/redux/actions\";\nimport html2canvas from \"html2canvas\";\nimport { portableFetch } from \"@payping/api/portableFetch\";\nimport { webConstants } from \"@payping/utils/platformConstants\";\nimport styles from \"./index.module.scss\";\nimport Loading from \"../loading\";\nimport SignContractContract from \"./Contract\";\nimport SignContractDraw from \"./Draw\";\n\nexport default function SignContractPage() {\n const dispatch = useAppDispatch();\n const [showDraw, setShowDraw] = useState(false);\n const token = useAppSelector((state) => state.auth.token);\n\n const [image, setImage] = useState(\"\");\n\n const { loading } = useMessagedAsync(async () => {\n await dispatch(getPersonalInfo());\n await dispatch(getUserBusinessinfo());\n await dispatch(getUserLocalInformation());\n await dispatch(getUserBank());\n }, [dispatch]);\n\n const { t } = useAppTranslation();\n\n useEffect(() => {\n removeLottieLoading();\n }, []);\n\n useEffect(() => {\n if (image) window.scrollTo(0, document.body.scrollHeight);\n }, [image]);\n\n const [sendRequestState, handleSendRequest] = useMessagedAsyncFn(async (formData: FormData) => {\n const fileSrc = await portableFetch(`${webConstants.BASE_URL}/filemanager/v1/Upload/Contract`, {\n body: formData,\n method: \"POST\",\n headers: {\n Authorization: `Bearer ${token}`,\n },\n });\n const text = await fileSrc.text();\n await portableFetch(`${webConstants.BASE_URL}/v1/user/SubmitContract`, {\n body: JSON.stringify({\n contractPath: text,\n }),\n method: \"POST\",\n headers: {\n Authorization: `Bearer ${token}`,\n contentType: \"application/json\",\n },\n });\n return true;\n });\n\n const sendContract = async () => {\n const contractContent = document.getElementById(\"contract_content\");\n if (!contractContent) return;\n try {\n const res = await html2canvas(contractContent);\n const formData = new FormData();\n res.toBlob(\n async (blob) => {\n if (!blob) return;\n formData.set(\"file\", blob, \"contract.jpg\");\n\n try {\n await handleSendRequest(formData);\n } catch (e) {\n /* empty */\n }\n },\n \"image/jpeg\",\n 100\n );\n } catch (e) {\n /* empty */\n }\n };\n\n if (loading) {\n return ;\n }\n\n if (sendRequestState.value === true) {\n return (\n \n \n \n \n \n );\n }\n\n return (\n \n \n {showDraw ? (\n {\n setImage(data);\n setShowDraw(false);\n }}\n />\n ) : (\n <>\n \n
\n {image ? (\n {\n await sendContract();\n }}\n >\n {t(\"signContract.done\")}\n \n ) : (\n {\n setShowDraw(true);\n }}\n >\n {t(\"signContract.sign\")}\n \n )}\n
\n \n )}\n
\n
\n );\n}\n","import { getUserInfo, updateUserClaims } from \"@payping/redux/actions\";\nimport { Button, Typography } from \"@payping/web-components\";\nimport React, { lazy, useEffect, useState } from \"react\";\nimport { useAsync } from \"react-use\";\n\nimport { removeLottieLoading, userManager } from \"@/utils\";\nimport { useAppDispatch, useAppSelector } from \"@/utils/redux\";\nimport componentLoader from \"@/utils/componentLoader\";\nimport { useAppTranslation } from \"@/utils/useAppTranslation\";\nimport Loading from \"./loading\";\n\nconst Main = lazy(() => componentLoader(() => import(/* webpackPreload: true */ \"./index\"), 3));\n\nconst InitApp: React.FC = () => {\n const [element, setElement] = useState();\n const [isValidToken, setIsValidToken] = useState(false);\n const token = useAppSelector((store) => store.auth.token);\n const dispatch = useAppDispatch();\n const { t } = useAppTranslation();\n\n const { loading } = useAsync(async () => {\n try {\n const userInfo = await dispatch(getUserInfo());\n\n if (typeof userInfo?.paidFeature === \"string\") dispatch(updateUserClaims([userInfo?.paidFeature]));\n else dispatch(updateUserClaims(userInfo?.paidFeature));\n\n if (userInfo.sub) {\n removeLottieLoading();\n setIsValidToken(true);\n } else {\n setIsValidToken(false);\n }\n } catch (e: any) {\n // If any error except Auth (401, 403) happens we should remove the loading to let the user reload the app\n if (!e.toString().includes(\"AuthError\")) {\n removeLottieLoading();\n }\n }\n }, [token]);\n\n // this is for situations when dashboard is opened without token\n useEffect(() => {\n if (!loading && (!token || !isValidToken)) {\n userManager.signinRedirect();\n }\n // `token & isValidToken` should not be in deps section, because when we log out, we need app NOT TO redirect to signIn\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [loading]);\n\n if (!token || !isValidToken) {\n setTimeout(() => {\n setElement(\n \n <>\n {t(\"initApp.description\")}\n \n \n \n );\n }, 4000);\n return element;\n }\n\n return loading ? :
;\n};\n\nexport default InitApp;\n","import React, { useEffect } from \"react\";\n\nimport { userManager } from \"@/utils\";\n\nconst Login: React.FC = () => {\n useEffect(() => {\n userManager.signinRedirect();\n }, []);\n\n return (\n
\n

در حال بارگذاری لطفا کمی صبر کنید...

\n
\n );\n};\n\n// Inject the Params provided by React Router into connected components\nexport default Login;\n","import { Button, Modal } from \"@payping/web-components\";\nimport { loggedOut } from \"@payping/redux/actions\";\nimport { webConstants } from \"@payping/utils/platformConstants\";\nimport { safeJoinPath } from \"@payping/utils/string\";\nimport * as Sentry from \"@sentry/react\";\nimport React, { useEffect, useState } from \"react\";\nimport { useAsyncFn } from \"react-use\";\nimport { useNavigate } from \"react-router-dom\";\n\nimport { useAppDispatch, useAppSelector } from \"@/utils/redux\";\nimport { useAppTranslation } from \"@/utils/useAppTranslation\";\nimport { removeLottieLoading } from \"@/utils\";\n\nconst Logout: React.FC = () => {\n const navigate = useNavigate();\n const dispatch = useAppDispatch();\n const token = useAppSelector((state) => state.auth.token);\n const [tmpToken, setTmpToken] = useState(token);\n const [loading, setLoading] = useState(false);\n const { t } = useAppTranslation();\n const { AUTH_URL } = webConstants;\n\n useEffect(() => {\n removeLottieLoading();\n if (token) setTmpToken(token);\n }, [token]);\n\n const [, handleLogout] = useAsyncFn(async () => {\n setLoading(true);\n // to erase and oidc from browser storage\n localStorage.clear();\n sessionStorage.clear();\n\n // remove sentry data\n Sentry.configureScope((scope) => scope.setUser(null));\n\n // remove token from redux\n dispatch(loggedOut());\n\n // redirect to logout page\n // TODO: this method should be changed in backend to be a POST method, then, it should be moved to api package\n window.location.assign(\n safeJoinPath(AUTH_URL.replace(\".ir\", \".io\"), `/Account/FrontLogout?clientid=PayPingWebApp&token=${tmpToken}`)\n );\n });\n\n return (\n
\n \n \n \n \n }\n >\n {t(\"profileMenu.logoutModal.text\")}\n \n
\n );\n};\n\n// Inject the Params provided by React Router into connected components\nexport default Logout;\n","import React, { useEffect, useState } from \"react\";\nimport { Navigate, useLocation } from \"react-router-dom\";\nimport { setToken } from \"@/utils\";\nimport { useAppDispatch, useAppSelector } from \"@/utils/redux\";\nimport { INIT_ROUTES } from \"@/router\";\n\nconst OAuthCallbackPage: React.FC = () => {\n const location = useLocation();\n const dispatch = useAppDispatch();\n const [settled, setSettled] = useState(false);\n const redirectUrl = useAppSelector((state) => state.loginRedirect.redirectUrl);\n\n useEffect(() => {\n const token = location.hash.split(\"access_token=\")[1]?.split(\"&\")[0];\n\n if (token) {\n setToken.forAll(dispatch, token);\n }\n setSettled(true);\n }, [dispatch, location.hash]);\n\n if (settled) {\n return ;\n }\n return null;\n};\n\nexport default OAuthCallbackPage;\n","import React from \"react\";\n\nimport SignContractPage from \"@/pages/sign-contract\";\nimport InitApp from \"../pages/initApp\";\nimport Login from \"../pages/Login\";\nimport Logout from \"../pages/Logout\";\nimport OAuthCallback from \"../pages/OAuthCallbackPage\";\n\ninterface RouteDef {\n component: React.ComponentType;\n path: string;\n protected: boolean;\n exact: boolean;\n}\n\ntype ROUTESType = Record;\n\ntype InitRoutesNames = \"login\" | \"logout\" | \"initApp\" | \"oAuthCallback\" | \"signContract\";\n\n/* eslint-disable sort-keys */\nexport const INIT_ROUTES: ROUTESType = {\n signContract: { component: SignContractPage, exact: true, path: \"/sign-contract\", protected: false },\n login: { component: Login, exact: true, path: \"/login\", protected: false },\n logout: { component: Logout, exact: true, path: \"/logout\", protected: false },\n // this path should be placed before initApp to send user to oAuthCallback, because initApp path is not exact\n oAuthCallback: { component: OAuthCallback, exact: true, path: \"/oauth_callback\", protected: false },\n // this path should not be EXACT, because if it is, then sub Switch is never reached\n initApp: { component: InitApp, exact: false, path: \"/*\", protected: false },\n};\n","import { setVersions } from \"@payping/redux/actions\";\nimport { ConfigProvider, locales } from \"@payping/web-components\";\nimport React, { useEffect } from \"react\";\nimport { Navigate, Route, Routes } from \"react-router-dom\";\nimport semver from \"semver\";\n\nimport { useAsync } from \"react-use\";\nimport { webConstants } from \"@payping/utils/platformConstants\";\nimport { setDashboardPreference } from \"@/redux/actions/dashboardPreference\";\nimport { INIT_ROUTES } from \"./router\";\nimport { initSentry } from \"./utils\";\nimport { useAppDispatch, useAppSelector } from \"./utils/redux\";\nimport { useAppTranslation } from \"./utils/useAppTranslation\";\n\ninitSentry();\n\nconst { enUS, faIR } = locales;\n\nconst App: React.FC = () => {\n // =================== ===================\n //\n const dispatch = useAppDispatch();\n const tokenAuth = useAppSelector((state) => state.auth.token);\n // value is => (\"\" | \"new\" | \"old\")\n const lastDashboardPreference = useAppSelector((state) => state.dashboardPreference.dashboardPreference);\n\n const urlParams = new URLSearchParams(window.location.search);\n // this value should only be = 'old' because user chose old Dashboard and now he/she is here\n const newValueOfDashboardPreference = urlParams.get(\"dashboardPreference\");\n\n useAsync(async () => {\n if (newValueOfDashboardPreference === \"old\") await dispatch(setDashboardPreference(newValueOfDashboardPreference));\n else if (newValueOfDashboardPreference == null && lastDashboardPreference === \"new\")\n window.location.href = `https://newapp.${webConstants.MAIN_HOST}/oauth_callback?dashboardPreference=new#access_token=${tokenAuth}`;\n }, []);\n\n // =================== ===================\n\n const locale = useAppSelector((state) => state.settings.locale);\n const direction = useAppSelector((state) => state.settings.direction);\n const { i18n } = useAppTranslation();\n const defaultPath = INIT_ROUTES.initApp.path;\n\n const configLocale = {\n en: enUS,\n fa: faIR,\n };\n\n useEffect(() => {\n i18n.changeLanguage(locale);\n // Get the new service worker from swUrl\n const swUrl = `/service-worker.js?v=${Math.random()}`;\n fetch(swUrl, {\n cache: \"no-store\",\n headers: { \"Service-Worker\": \"script\" },\n })\n .then((response) => {\n const contentType = response.headers.get(\"content-type\");\n if (response.status === 404 || (contentType != null && contentType.indexOf(\"javascript\") === -1)) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then((registration) => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n response.text().then((res) => {\n // This is the old version of the dashboard which belongs to the old service worker (current one)\n const currentVersion = process.env.REACT_APP_VERSION;\n // Extract the lastSupportedVersion from the new service-worker\n const supportedVersion = res.match(/console\\.log\\(['\"]lastSupportedVersion[:'\", ]*(.*?)['\" ]\\)/)?.[1];\n // Extract the latestVersion from the new service-worker\n const latestVersion = res.match(/console\\.log\\(['\"]latestVersion[:'\", ]*(.*?)['\" ]\\)/)?.[1];\n dispatch(\n setVersions({\n current: currentVersion,\n latest: latestVersion,\n supported: supportedVersion,\n })\n );\n if (\n currentVersion &&\n supportedVersion &&\n latestVersion &&\n semver.lt(currentVersion, latestVersion) &&\n semver.lt(currentVersion, supportedVersion)\n ) {\n navigator.serviceWorker.ready.then((registration) => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n }\n });\n }\n })\n .catch(() => {\n // eslint-disable-next-line no-console\n console.log(\"No internet connection found. App is running in offline mode.\");\n });\n }, [dispatch, i18n, locale]);\n\n return (\n \n \n {Object.values(INIT_ROUTES).map(({ component: Component, path: componentPath }, index) => (\n } />\n ))}\n } />\n \n \n );\n};\n\nexport default App;\n","import { SdkThunkActionResult } from \"@payping/redux/reducers\";\n\nimport { SET_REDIRECT_URL } from \"../reducers/loginRedirect\";\n\nexport function setRedirectUrl(url: string): SdkThunkActionResult> {\n return async (dispatch): Promise => {\n dispatch({ payload: url, type: SET_REDIRECT_URL });\n };\n}\n","import { HandlerType, StatusHandlersTypes, apiConfigs } from \"@payping/api\";\nimport { setShowTOTPModal } from \"@payping/redux/actions\";\nimport { Message } from \"@payping/web-components\";\nimport * as Sentry from \"@sentry/react\";\n\nimport { userManager } from \"@/utils/userManager\";\nimport { store } from \"./index\";\nimport { setRedirectUrl } from \"./redux/actions/loginRedirect\";\n\nconst generalHandler: HandlerType = (error) => {\n // key is a constant because there should be at most one message error from api\n Message.error({ content: error.message, duration: 3, key: \"api error\" });\n};\n\nconst statusHandlers: StatusHandlersTypes = {\n \"401\": async () => {\n const currentRoute = `${window.location.pathname}${window.location.search}`;\n await store.dispatch(setRedirectUrl(currentRoute));\n userManager.signinRedirect();\n Sentry.configureScope((scope) => scope.setUser(null));\n },\n \"412\": async () => {\n await store.dispatch(setShowTOTPModal(true));\n },\n default: generalHandler,\n};\n\nconst domain = process.env.REACT_APP_DOMAIN || \"\";\n\nconst networkChecker = new Promise((resolve) => {\n resolve();\n});\n\napiConfigs.updateConfig({\n // set 30 second timeout for non-production environments due to low quality of servers\n ...(domain !== \"payping.ir\" ? { timeout: 30 * 1000 } : {}),\n domain,\n networkChecker,\n statusHandlers,\n});\n","/* eslint-disable @typescript-eslint/no-use-before-define */\nimport { configureStore } from \"@payping/redux\";\nimport { initI18next, localeNameSpaces } from \"@payping/utils/localeUtils\";\n// import { Modal } from \"@payping/web-components\";\nimport * as Sentry from \"@sentry/react\";\nimport { createRoot } from \"react-dom/client\";\n// import ReactDOM from \"react-dom\";\nimport { Provider } from \"react-redux\";\nimport { BrowserRouter } from \"react-router-dom\";\nimport { Persistor } from \"redux-persist\";\nimport { PersistGate } from \"redux-persist/integration/react\";\n// Fix app crash in old safari browsers (sentry issue: DASHWRAPPER-GT)\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport ResizeObserver from \"resize-observer-polyfill\";\n\nimport { AppErrorBoundary } from \"./AppErrorBoundary\";\nimport { localeResources } from \"./assets/locales/resources\";\nimport { AppStoreStates, reduxConfig } from \"./redux/configs\";\nimport reportWebVitals from \"./reportWebVitals\";\nimport { sendToAnalytics } from \"./web-vitals\";\nimport * as serviceWorkerRegistration from \"./serviceWorkerRegistration\";\nimport { setToken } from \"./utils\";\nimport App from \"./App\";\n\nimport \"./apiConfigs\";\nimport \"./index.scss\";\n\nwindow.ResizeObserver = ResizeObserver;\n\nconst initToken = () => {\n const envToken = process.env.REACT_APP_TOKEN;\n const { auth, organization } = store.getState();\n const reduxToken = organization.token || auth.token;\n if (envToken) {\n setToken.forAll(store.dispatch, envToken);\n } else if (reduxToken) {\n setToken.forApi(reduxToken);\n }\n};\n\nconst renderAppOnRehydrate = async (): Promise => {\n initToken();\n await initI18next(localeNameSpaces.Wrapper, localeResources);\n const ProfiledApp = Sentry.withProfiler(() => (\n \n \n \n \n \n \n \n ));\n const root = createRoot(document.getElementById(\"root\") as HTMLDivElement);\n root.render(\n \n \n \n );\n // ReactDOM.render(\n // \n // \n // ,\n // document.getElementById(\"root\")\n // );\n};\nexport const { store, persistor } = configureStore({\n ...reduxConfig,\n onRehydrated: renderAppOnRehydrate,\n});\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://cra.link/PWA\n// serviceWorkerRegistration.unregister();\nserviceWorkerRegistration.register();\n// serviceWorkerRegistration.register({\n// onUpdate: ({ update }) => {\n// Modal.confirm({\n// cancelText: \"الان نه\",\n// // eslint-disable-next-line no-useless-concat\n// content: \"نسخه جدیدتری در دسترس است\" + \"\\n\" + \"مایلید بروزرسانی انجام شود؟\",\n// okText: \"بله\",\n// onOk: () => {\n// update();\n// setTimeout(() => {\n// window.location.reload();\n// }, 500);\n// },\n// title: \"بروزرسانی\",\n// });\n// },\n// });\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\n// eslint-disable-next-line no-console\n\nreportWebVitals(sendToAnalytics);\n"],"file":"assets/index-316c0b75.js"}