{"version":3,"sources":["serviceWorker.ts","helpers/GlobalConfig.ts","helpers/Translations.ts","services/TranslationService.tsx","App.tsx","AppContext.ts","services/ApiProviderService.ts","api/TranslationsApiClient.ts","AppLoader.tsx","index.tsx"],"names":["Boolean","window","location","hostname","match","globalConfig","val","globalConfigJson","sessionStorage","getItem","JSON","parse","locale","GlobalConfig","key","translations","global","modules","this","hasOwnProperty","text","App","useState","userFirstName","userLastName","userPhone","userEmail","userSsn","creditorOrgNumber","creditorEmail","agreement","feedbackUrl","refId","formValues","setFormValues","validationSchema","yup","shape","required","TranslationService","translate","typeError","transform","value","originalValue","test","NaN","toString","length","email","matches","useEffect","query","URLSearchParams","search","get","decrypted","atob","dq","replaceAll","className","src","height","alt","Translations","initialValues","enableReinitialize","onSubmit","values","globalConfigValues","Axios","post","IdentityApiUrl","ClientId","ClientSecret","headers","Accept","then","token","GatewayApiUrl","user","firstName","lastName","phone","ssn","creditor","organizationNumber","feedback","Authorization","data","access_token","resp","status","redirectUrl","catch","alert","errors","touched","handleChange","htmlFor","id","name","onChange","type","AppContext","React","createContext","ApiProviderService","request","a","isJsonRequest","AuthHeader","baseURL","Pragma","transformRequest","undefined","stringify","url","config","response","Promise","resolve","reject","isCancel","cancelToken","customHeaders","customConfigs","TranslationsApi","fetchTranslations","RestApiClientService","AppLoader","isLoading","setIsLoading","setToken","translationResponse","setTranslations","setItem","fetchToken","Provider","ReactDOM","render","StrictMode","document","getElementById","navigator","serviceWorker","ready","registration","unregister","error","console","message"],"mappings":"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","file":"static/js/main.f51b8853.chunk.js","sourcesContent":["// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read https://bit.ly/CRA-PWA\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.0/8 are considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\ntype Config = {\r\n onSuccess?: (registration: ServiceWorkerRegistration) => void;\r\n onUpdate?: (registration: ServiceWorkerRegistration) => void;\r\n};\r\n\r\nexport function register(config?: Config) {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(\r\n process.env.PUBLIC_URL,\r\n window.location.href\r\n );\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n 'This web app is being served cache-first by a service ' +\r\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\r\n );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl: string, config?: Config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker == null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n 'New content is available and will be used when all ' +\r\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\r\n );\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl: string, config?: Config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl, {\r\n headers: { 'Service-Worker': 'script' }\r\n })\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type');\r\n if (\r\n response.status === 404 ||\r\n (contentType != null && contentType.indexOf('javascript') === -1)\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready\r\n .then(registration => {\r\n registration.unregister();\r\n })\r\n .catch(error => {\r\n console.error(error.message);\r\n });\r\n }\r\n}\r\n","class GlobalConfig {\r\n private globalConfig: any;\r\n\r\n public val = () => {\r\n if (window['globalConfig' as any]) {\r\n return window['globalConfig' as any];\r\n }\r\n\r\n const globalConfigJson = sessionStorage.getItem('globalConfig');\r\n this.globalConfig = JSON.parse(globalConfigJson ? globalConfigJson : \"\");\r\n return this.globalConfig;\r\n }\r\n}\r\n\r\nexport default new GlobalConfig();\r\n","import GlobalConfig from './GlobalConfig';\r\nimport translations from './translations.json';\r\n\r\nconst globalConfigValues = GlobalConfig.val();\r\nconst locale = globalConfigValues.locale;\r\n\r\nexport default {\r\n translate: (key: string) => { \r\n return (translations as any)[locale][key] || key;\r\n }\r\n}","import { DictionaryType } from \"../types/DictionaryType\";\r\nimport { ITranslationCollection } from \"../types/ITranslationCollection\";\r\nimport GlobalConfig from \"../helpers/GlobalConfig\";\r\n\r\nclass TranslationService {\r\n translations: ITranslationCollection = {\r\n global: {},\r\n modules: {},\r\n };\r\n\r\n constructor() {\r\n this.translations = {\r\n global: {},\r\n modules: {},\r\n };\r\n }\r\n\r\n setTranslations(translations: DictionaryType) {\r\n const { locale } = GlobalConfig.val();\r\n\r\n this.translations = translations.hasOwnProperty(locale) ? translations[locale] : {\r\n global: {},\r\n modules: {},\r\n };\r\n }\r\n\r\n translate(text: string) {\r\n return this.translations.global.hasOwnProperty(text)\r\n ? this.translations.global[text]\r\n : text;\r\n }\r\n\r\n translateModule(text: string) {\r\n return this.translations.modules.hasOwnProperty(text)\r\n ? this.translations.modules[text]\r\n : text;\r\n }\r\n}\r\n\r\nexport default new TranslationService();\r\n","import React, { useEffect, useState } from \"react\";\r\nimport * as yup from \"yup\";\r\nimport { Form, Field, Formik } from \"formik\";\r\nimport Axios, { AxiosResponse } from \"axios\";\r\nimport GlobalConfig from \"./helpers/GlobalConfig\";\r\nimport Translations from \"./helpers/Translations\";\r\nimport TranslationService from \"./services/TranslationService\";\r\n\r\ninterface FormValuesType {\r\n userFirstName: string;\r\n userLastName: string;\r\n userPhone: string;\r\n userEmail: string;\r\n userSsn: string;\r\n creditorOrgNumber: string;\r\n creditorEmail: string;\r\n agreement: string;\r\n feedbackUrl: string;\r\n refId: string;\r\n}\r\n\r\nfunction App() {\r\n const [formValues, setFormValues] = useState({\r\n userFirstName: \"\",\r\n userLastName: \"\",\r\n userPhone: \"\",\r\n userEmail: \"\",\r\n userSsn: \"\",\r\n creditorOrgNumber: \"\",\r\n creditorEmail: \"\",\r\n agreement: \"\",\r\n feedbackUrl: \"\",\r\n refId: \"\"\r\n });\r\n\r\n const validationSchema = yup.object().shape({\r\n userFirstName: yup.string().required(TranslationService.translate(\"ValidationMessageRequiredField\")),\r\n userLastName: yup.string().required(TranslationService.translate(\"ValidationMessageRequiredField\")),\r\n userSsn: yup.string()\r\n .typeError(TranslationService.translate(\"ValidationMessageIncorrectNumberFormat\"))\r\n .transform((value, originalValue) => {\r\n return /^\\d+$/.test(originalValue) ? value : NaN;\r\n })\r\n .test(\"userSsnLength\", TranslationService.translate(\"ValidationMessageIncorrectValue\"), (value: string) => {\r\n return value ? !(value.toString().length < 10 || value.toString().length > 10) : false;\r\n })\r\n .required(TranslationService.translate(\"ValidationMessageRequiredField\")),\r\n userEmail: yup.string().email(TranslationService.translate(\"ValidationMessageIncorrentEmailFormat\")).required(TranslationService.translate(\"ValidationMessageRequiredField\")),\r\n creditorEmail: yup.string().email(TranslationService.translate(\"ValidationMessageIncorrentEmailFormat\")).required(TranslationService.translate(\"ValidationMessageRequiredField\")),\r\n creditorOrgNumber: yup.string()\r\n .typeError(TranslationService.translate(\"ValidationMessageIncorrectNumberFormat\"))\r\n .transform((value, originalValue) => {\r\n return /^\\d+$/.test(originalValue) ? value : NaN;\r\n })\r\n .test(\"creditorOrgNumberLength\", TranslationService.translate(\"ValidationMessageIncorrectValue\"), (value: string) => {\r\n return value ? !(value.toString().length < 10 || value.toString().length > 10) : false;\r\n })\r\n .required(TranslationService.translate(\"ValidationMessageRequiredField\")),\r\n userPhone: yup\r\n .string()\r\n .matches(/^\\+{1}\\d{8,14}/, TranslationService.translate(\"ValidationMessageIncorrectPhoneNoFormat\"))\r\n .required(TranslationService.translate(\"ValidationMessageRequiredField\")),\r\n });\r\n\r\n const handleOnFormSubmit = (values: FormValuesType) => {\r\n const globalConfigValues = GlobalConfig.val();\r\n\r\n Axios.post(\r\n globalConfigValues.IdentityApiUrl + \"connect/token\",\r\n \"grant_type=client_credentials&scope=waypoint_api&client_id=\" + globalConfigValues.ClientId + \"&client_secret=\" + globalConfigValues.ClientSecret,\r\n {\r\n headers: {\r\n \"Content-Type\": \"application/x-www-form-urlencoded\",\r\n Accept: \"*/*\",\r\n },\r\n },\r\n )\r\n .then((token) => {\r\n Axios.post(\r\n globalConfigValues.GatewayApiUrl + \"modules/AutoOnboardingModule\",\r\n {\r\n user: {\r\n firstName: values.userFirstName,\r\n lastName: values.userLastName,\r\n phone: values.userPhone,\r\n ssn: values.userSsn,\r\n email: values.userEmail,\r\n },\r\n creditor: {\r\n organizationNumber: values.creditorOrgNumber,\r\n email: values.creditorEmail,\r\n },\r\n feedback: {\r\n agreement: values.agreement,\r\n feedbackUrl: values.feedbackUrl,\r\n refId: values.refId\r\n }\r\n },\r\n {\r\n headers: {\r\n Authorization: \"Bearer \" + token.data.access_token,\r\n \"Content-Type\": \"application/json\",\r\n },\r\n },\r\n ).then((resp: AxiosResponse) => {\r\n if (resp.status === 200) {\r\n window.location = resp.data.redirectUrl;\r\n }\r\n });\r\n })\r\n .catch(() => {\r\n alert(TranslationService.translate(\"GeneralErrorOccured\"));\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n const query = new URLSearchParams(window.location.search);\r\n if(query.get('q') !== null)\r\n {\r\n const decrypted = atob(query.get('q')!);\r\n const dq = new URLSearchParams(decrypted.replaceAll('+','%2B'));\r\n \r\n setFormValues({...formValues, \r\n userFirstName: dq.get('userFirstName') !== null ? dq.get('userFirstName')!.toString() : formValues.userFirstName,\r\n userLastName: dq.get('userLastName') !== null ? dq.get('userLastName')!.toString() : formValues.userFirstName,\r\n userPhone: dq.get('userPhone') !== null ? dq.get('userPhone')!.toString() : formValues.userFirstName,\r\n userEmail: dq.get('userEmail') !== null ? dq.get('userEmail')!.toString() : formValues.userFirstName,\r\n userSsn: dq.get('userSsn') !== null ? dq.get('userSsn')!.toString() : formValues.userFirstName,\r\n creditorOrgNumber: dq.get('creditorOrgNumber') !== null ? dq.get('creditorOrgNumber')!.toString() : formValues.userFirstName,\r\n creditorEmail: dq.get('creditorEmail') !== null ? dq.get('creditorEmail')!.toString() : formValues.userFirstName,\r\n agreement: dq.get('Agreement') !== null ? dq.get('Agreement')!.toString() : formValues.userFirstName,\r\n feedbackUrl: dq.get('FeedbackURL') !== null ? dq.get('FeedbackURL')!.toString() : formValues.userFirstName,\r\n refId: dq.get('RefID') !== null ? dq.get('RefID')!.toString() : formValues.userFirstName\r\n });\r\n }\r\n }, []);\r\n\r\n return (\r\n <>\r\n
\r\n \"\"\r\n
\r\n
\r\n

{Translations.translate(\"CompanyName\")}

\r\n
\r\n
\r\n
\r\n \r\n {({ errors, touched, handleChange }) => {\r\n return (\r\n
\r\n
\r\n {Translations.translate(\"UserData\")}\r\n\r\n
\r\n \r\n {Translations.translate(\"FirstName\")} \r\n \r\n\r\n
\r\n \r\n {errors.userFirstName && touched.userFirstName ? (\r\n
{errors.userFirstName}
\r\n ) : null}\r\n
\r\n
\r\n\r\n
\r\n \r\n {Translations.translate(\"LastName\")} \r\n \r\n\r\n
\r\n \r\n {errors.userLastName && touched.userLastName ? (\r\n
{errors.userLastName}
\r\n ) : null}\r\n
\r\n
\r\n\r\n
\r\n \r\n {Translations.translate(\"Phone\")} \r\n \r\n\r\n
\r\n \r\n {errors.userPhone && touched.userPhone ? (\r\n
{errors.userPhone}
\r\n ) : null}\r\n
\r\n
\r\n\r\n
\r\n \r\n {Translations.translate(\"Email\")} \r\n \r\n\r\n
\r\n \r\n\r\n {errors.userEmail && touched.userEmail ? (\r\n
{errors.userEmail}
\r\n ) : null}\r\n
\r\n
\r\n\r\n
\r\n \r\n\r\n
\r\n \r\n {errors.userSsn && touched.userSsn ? (\r\n
{errors.userSsn}
\r\n ) : null}\r\n
\r\n
\r\n
\r\n\r\n
\r\n {Translations.translate(\"CreditorData\")}\r\n\r\n
\r\n \r\n {Translations.translate(\"CreditorOrgNo\")} \r\n \r\n\r\n
\r\n \r\n {errors.creditorOrgNumber && touched.creditorOrgNumber ? (\r\n
{errors.creditorOrgNumber}
\r\n ) : null}\r\n
\r\n
\r\n\r\n
\r\n \r\n {Translations.translate(\"CreditorEmail\")} \r\n \r\n
\r\n \r\n {errors.creditorEmail && touched.creditorEmail ? (\r\n
{errors.creditorEmail}
\r\n ) : null}\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n );\r\n }}\r\n \r\n
\r\n
\r\n \r\n );\r\n}\r\n\r\nexport default App;\r\n","import React from 'react';\r\nimport { TokenType } from './types/TokenType';\r\n\r\ntype AppContextType = {\r\n token: TokenType | undefined,\r\n};\r\n\r\nconst AppContext = React.createContext({} as AppContextType);\r\n\r\nconst useAppContext = () => {\r\n const context = React.useContext(AppContext);\r\n\r\n if (!context) {\r\n throw new Error(`There is no context`);\r\n }\r\n\r\n return context;\r\n};\r\n\r\nexport { AppContext, useAppContext };\r\n","import Axios, { AxiosRequestConfig } from \"axios\";\r\nimport GlobalConfig from \"../helpers/GlobalConfig\";\r\n\r\nconst ApiProviderService = {\r\n request: async (\r\n isJsonRequest: boolean = true,\r\n ): Promise => {\r\n const AuthHeader = \"Authorization\";\r\n\r\n return {\r\n baseURL: GlobalConfig.val().GatewayApiUrl,\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Cache-Control\": \"no-cache\",\r\n Pragma: \"no-cache\",\r\n },\r\n transformRequest: (data: any, headers: any) => {\r\n if (sessionStorage.getItem(\"token\") !== undefined && sessionStorage.getItem(\"token\") !== null && sessionStorage.getItem(\"token\") !== \"\") {\r\n headers[AuthHeader] = \"Bearer \" + sessionStorage.getItem(\"token\");\r\n }\r\n\r\n if (isJsonRequest) {\r\n return JSON.stringify(data);\r\n }\r\n return data;\r\n },\r\n };\r\n },\r\n\r\n get: async (url: string): Promise => {\r\n let config = await ApiProviderService.request(true);\r\n\r\n try {\r\n const response = await Axios.get(url, config);\r\n\r\n if (response.status >= 200 && response.status <= 300) {\r\n return Promise.resolve(response.data);\r\n }\r\n return Promise.reject(response);\r\n } catch (error) {\r\n if (Axios.isCancel(error)) {\r\n // handle error after canceling request\r\n } else {\r\n // ErrorResponseHandler.defaultHandler(error);\r\n }\r\n return Promise.reject(error);\r\n }\r\n },\r\n\r\n post: async (\r\n url: string,\r\n data?: any,\r\n cancelToken?: any,\r\n customHeaders?: any,\r\n isJsonRequest: boolean = true,\r\n customConfigs: any = null,\r\n ): Promise => {\r\n let config = await ApiProviderService.request(isJsonRequest);\r\n\r\n if (cancelToken) {\r\n config = { ...config, cancelToken };\r\n }\r\n\r\n if (customConfigs) {\r\n config = { ...config, ...customConfigs };\r\n }\r\n\r\n if (customHeaders !== undefined && customHeaders !== null) {\r\n config.headers = customHeaders;\r\n }\r\n\r\n try {\r\n const response = await Axios.post(url, data, config);\r\n\r\n if (response.status >= 200 && response.status <= 300) {\r\n return Promise.resolve(response.data as T);\r\n }\r\n return Promise.reject(response);\r\n } catch (error) {\r\n // ErrorResponseHandler.defaultHandler(error);\r\n\r\n return Promise.reject(error);\r\n }\r\n },\r\n};\r\n\r\nexport default ApiProviderService;\r\n\r\n","import RestApiClientService from '../services/ApiProviderService';\r\nimport { ITranslationCollection } from '../types/ITranslationCollection';\r\nimport { DictionaryType } from '../types/DictionaryType';\r\n\r\nconst TranslationsApi = {\r\n fetchTranslations: async (): Promise> => {\r\n return await RestApiClientService.get>(\r\n 'Translation/getTranslations'\r\n );\r\n }\r\n};\r\n\r\nexport default TranslationsApi;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport App from \"./App\";\r\nimport { AppContext } from \"./AppContext\";\r\nimport TranslationsApi from \"./api/TranslationsApiClient\";\r\nimport GlobalConfig from \"./helpers/GlobalConfig\";\r\nimport Axios from \"axios\";\r\nimport { TokenType } from \"./types/TokenType\";\r\nimport TranslationService from \"./services/TranslationService\";\r\n\r\nconst AppLoader = () => {\r\n const [isLoading, setIsLoading] = useState(true);\r\n const [token, setToken] = useState(undefined);\r\n\r\n useEffect(() => {\r\n async function fetchTranslations() {\r\n const translationResponse = await TranslationsApi.fetchTranslations();\r\n TranslationService.setTranslations(translationResponse);\r\n setIsLoading(false);\r\n }\r\n\r\n async function fetchToken() {\r\n const globalConfigValues = GlobalConfig.val();\r\n\r\n Axios.post(\r\n globalConfigValues.IdentityApiUrl + \"connect/token\",\r\n \"grant_type=client_credentials&scope=waypoint_api&client_id=\" + globalConfigValues.ClientId + \"&client_secret=\" + globalConfigValues.ClientSecret,\r\n {\r\n headers: {\r\n \"Content-Type\": \"application/x-www-form-urlencoded\",\r\n Accept: \"*/*\",\r\n },\r\n },\r\n ).then((token: any) => {\r\n sessionStorage.setItem(\"token\", token);\r\n setToken(token);\r\n });\r\n }\r\n\r\n fetchToken().then(fetchTranslations);\r\n }, []);\r\n\r\n return (\r\n \r\n {!isLoading && \r\n \r\n }\r\n \r\n );\r\n};\r\n\r\nexport default AppLoader;\r\n","import './assets/styles/main.scss';\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\n\r\nimport * as serviceWorker from './serviceWorker';\r\nimport AppLoader from \"./AppLoader\";\r\n\r\nReactDOM.render(\r\n \r\n \r\n ,\r\n document.getElementById('root')\r\n);\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: https://bit.ly/CRA-PWA\r\nserviceWorker.unregister();\r\n"],"sourceRoot":""}