{"version":3,"sources":["pages/LoginPage/index.module.scss","pages/FindMyWorkspacePage/index.module.scss","components/MainContent/MainContent.module.scss","components/Layout/index.module.scss","services/localStorage.ts","api/index.ts","api/password.ts","api/customer.ts","utils/actions.ts","store/auth/constants.ts","store/auth/actions.ts","components/Navbar/index.tsx","utils/useInitData.ts","pages/ResetPasswordEmailPage/index.tsx","components/PasswordField/index.tsx","models/Password.ts","pages/ResetPasswordPage/index.tsx","pages/InviteCustomerPage/index.tsx","pages/InviteExpiredPage/index.tsx","pages/LoginPage/index.tsx","pages/DefaultPage/index.tsx","pages/CreateWorkspacePage/index.tsx","pages/ErrorPage/index.tsx","pages/CreatePasswordPage/index.tsx","pages/EnterWorkspacePage/index.tsx","pages/FindMyWorkspacePage/index.tsx","pages/AccessPage/index.tsx","routes/index.tsx","pages/NoMatchPage/index.tsx","config.ts","components/MainContent/index.tsx","store/app/constants.ts","store/app/actions.ts","components/Layout/index.tsx","components/Layout/Scene.tsx","components/PrivateRoutes/index.tsx","components/App/index.tsx","store/auth/reducer.ts","store/app/reducer.ts","store/index.ts","serviceWorker.ts","utils/log.ts","index.tsx","pages/CreatePasswordPage/index.module.scss","pages/ResetPasswordPage/index.module.scss","pages/AccessPage/index.module.scss","components/PasswordField/index.module.scss","pages/CreateWorkspacePage/index.module.scss"],"names":["module","exports","BASE_INFO_NAME","authInstance","localStorageService","key","data","window","localStorage","getItem","JSON","parse","getBaseInfo","removeItem","sendResetPasswordEmail","email","a","getAuthInstance","post","response","verifyEmailLinkHash","inviteHash","resetFromEmail","password","createPassword","workspaceDomain","headers","verifyInviteLinkHash","createWorkspace","createData","verifyEmail","res","verifyWorkspaceDomain","findMyWorkspace","resendInvite","getIntercomId","get","API","Password","Customer","createAction","type","payload","reducerFromMap","initialState","map","middlewares","state","action","actionHandler","nextState","forEach","fn","authConstants","authActions","authorized","user","logout","Navbar","backButton","title","leftLogo","useInitData","ihb","nonIHB","useState","setData","sideURL","setSideURL","getData","useCallback","count","i","setInterval","newData","clearInterval","parsed","ihpOwner","pages","landingPages","useEffect","IHB_IMAGE_URL","SVG_HOST_URL","NON_IHB_IMAGE_URL","ResetPasswordEmailPage","location","useLocation","emailAddress","setEmailAddress","validationUtils","validateEmail","emailValidity","setEmailValidity","visibleCard","setVisibleCard","loading","setLoading","useAdblockCheck","adblockEnabled","errorMsg","setErrorMsg","successMsg","setSuccessMsg","handleSend","isResend","success","setTimeout","rightPartImage","docTitle","leftChildren","className","TwoPartScreenStyles","card","show","hide","subtitle","onSubmit","e","preventDefault","variant","name","value","onChange","label","placeholder","onValidate","inputAttributes","autoComplete","autoFocus","validationRules","func","error","errorMessage","iconName","button","iconPosition","disabled","onClick","successMessage","PasswordField","props","inputRef","helpText","passwordVisible","setPasswordVisible","styles","passwordField","helpActions","togglePasswordVisibilityIcon","val","disableLogging","defaultProps","hintsList","regex","match","ResetPasswordPage","passwrd","setPasswrd","hints","setHints","history","useHistory","mounted","useRef","verifyHash","hash","hash1","replace","isValid","resetEmail","invalidReason","current","URLSearchParams","search","length","hintsToSave","h","test","handleCreatePassword","credential","PasswordCredential","id","navigator","credentials","store","errorObjects","size","style","opacity","position","hint","find","push","INVALID_LINK","InviteCustomerPage","isExpired","pathname","isInviteCancelled","isInviteProcessed","isInviteDeleted","isNewUser","invitedToWorkspace","inviteEmail","href","btoa","isIHPCustomer","height","InviteExpiredPage","EMAIL_INVALID_MSG","LoginForm","onSuccess","onError","passwd","setPasswd","isAutoLogin","setAutoLogin","apiError","isSubmitting","submitData","setSubmitData","setAdblockEnabled","useCapslockCheck","isCapsLock","pwdRef","initData","getOrgName","organizationName","handleEmailVerification","emailParam","ORIGIN_URL","substring","indexOf","isWorkspaceAllowed","focus","userEmail","owId","Number","expiresAt","apiToken","refreshToken","atob","isNaN","currentIndex","savedOwIds","index","newList","setItem","stringify","String","AuthService","singleSignon","then","userData","catch","emailToSave","handleSubmitForm","authorize","message","display","readonlyEmail","ref","passwordNote","warningMessage","CAPSLOCK_MESSAGE","ADBLOCK_MESSAGE","link","to","DefaultPage","parseInt","CreateWorkspacePage","workspaceUrl","setWorkspaceUrl","workspaceURLSuffix","formatedWorkspaceUrl","endsWith","slice","domain","creatorEmail","suffix","workspaceURLField","trim","RIGHT_PART_IMAGE_URL","ErrorPage","for404Page","CreatePasswordPage","setOwId","includes","redirectionUrl","authorizedUser","userAuth","passwordHints","EnterWorkspacePage","verifyWorkspace","CHECK_CIRCLE_IMAGE_URL","FindMyWorkspacePage","urlsEmailSend","src","alt","AccessPage","buttonWrapper","ihpLoginBtn","nonIhpLoginBtn","routes","path","exact","component","MainContentComponent","children","container","MainContent","applicationConstants","applicationActions","toggleSidebarMenu","LayoutComponent","this","isSidebarOpened","toggleSidebar","sidebar","opened","PureComponent","mapActions","Layout","connect","app","sidebarOpened","Scene","mainTitle","PrivateRoutes","routePaths","route","mapAction","App","intercomId","setIntercomId","setIntercom","chatbotAppId","console","log","onstorage","bootIntercomFn","Intercom","app_id","documentTitle","successLoginRedirectPath","onSuccessLogin","config","instance","axios","create","baseURL","domainURL","interceptors","use","isCancel","status","reload","Promise","reject","createIqmInstance","onLogout","loginForm","publicRoutes","defaultAuthState","reducer","defaultApplicationState","isOpenExchangeMode","combineReducers","auth","composeEnhancers","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","compose","createStore","applyMiddleware","thunk","Boolean","hostname","initDataDog","allowedTracingOrigins","trackViewsManually","Authorization","BASIC_AUTH_HEADER_VALUE","language","split","messages","ru","messagesRu","en","messagesEn","ReactDOM","render","locale","document","getElementById","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.aa260ca7.chunk.js","sourcesContent":["// extracted by mini-css-extract-plugin\nmodule.exports = {\"passwordNote\":\"LoginPage_passwordNote__3wh5Z\",\"hover-ripples\":\"LoginPage_hover-ripples__hdhzK\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"urlsEmailSend\":\"FindMyWorkspacePage_urlsEmailSend__364O_\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"MainContent_container__HZJO7\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"mainTitle\":\"Layout_mainTitle__1q-OT\",\"hover-ripples\":\"Layout_hover-ripples__3S9Ug\"};","const BASE_INFO_NAME = 'authorizedUser';\n\nexport type LocalData = {\n _time: Date;\n data: T;\n};\n\nexport function saveLocal(key: string, data: T): void {\n window.localStorage.setItem(\n key,\n JSON.stringify({\n _time: Date.now(),\n data,\n }),\n );\n}\n\nexport function getLocal(key: string): LocalData {\n const data = window.localStorage.getItem(key) as string;\n return JSON.parse(data) || null;\n}\n\nfunction getBaseInfo(key: string): T {\n const data = window.localStorage.getItem(key) as string;\n return JSON.parse(data) || null;\n}\n\nexport function removeLocal(key: string): void {\n window.localStorage.removeItem(key);\n}\n\nexport const localStorageService = {\n saveBaseInfo(data: T) {\n saveLocal(BASE_INFO_NAME, data);\n },\n getBaseInfo() {\n return getBaseInfo(BASE_INFO_NAME);\n },\n removeBaseInfo() {\n removeLocal(BASE_INFO_NAME);\n },\n saveLocal,\n getLocal,\n};\n","import axios, { AxiosInstance } from 'axios';\nimport { ORIGIN_URL, BASIC_AUTH_HEADER_VALUE } from 'iqm-framework';\n\nimport { localStorageService } from 'services/localStorage';\nimport { HEADER_TOKEN_NAME } from 'config';\n\nimport * as Password from './password';\nimport * as Customer from './customer';\n\nexport type IQMInstanceConfigParams = {\n apiToken: string;\n domainURL: string;\n};\n\nexport type Params = { [key: string]: string | number };\n\nlet IQMInstance: AxiosInstance;\nlet authInstance: AxiosInstance;\n\nexport function createIqmInstance(config: IQMInstanceConfigParams) {\n const instance = axios.create({\n ...config,\n baseURL: `https://${config.domainURL}/api`,\n headers: {\n [HEADER_TOKEN_NAME]: config.apiToken,\n },\n });\n\n instance.interceptors.response.use(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (response: any) => {\n return response;\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (response: any) => {\n if (axios.isCancel(response)) {\n const res = {\n response: {\n data: response,\n },\n };\n\n throw res;\n }\n if (response.response.status === 401) {\n localStorageService.removeBaseInfo();\n window.location.reload();\n }\n return Promise.reject(response);\n },\n );\n\n IQMInstance = instance;\n}\n\nexport function createAuthInstance() {\n authInstance = axios.create({\n baseURL: `${ORIGIN_URL}/api`,\n headers: {\n Authorization: BASIC_AUTH_HEADER_VALUE,\n },\n });\n}\n\nexport function getInstance(): AxiosInstance {\n return IQMInstance || axios;\n}\n\nexport function getAuthInstance(): AxiosInstance {\n return authInstance;\n}\n\nexport const API = {\n Password,\n Customer,\n};\n","import { AxiosResponse } from 'axios';\n\nimport { getAuthInstance } from 'api';\nimport { WithResponse } from 'models/API';\n\nexport const sendResetPasswordEmail = async (email: string): Promise> => {\n try {\n const response: AxiosResponse> = await getAuthInstance().post(\n '/v3/ua/user/reset-password',\n { email },\n );\n return response.data;\n } catch (e) {\n return e.response.data;\n }\n};\n\ninterface VerifyLinkResponse {\n isValid: boolean;\n resetEmail?: string;\n invalidReason?: string;\n}\n\nexport const verifyEmailLinkHash = async (\n inviteHash: string,\n): Promise> => {\n try {\n const response: AxiosResponse> = await getAuthInstance().post(\n '/v3/ua/user/reset-password/validate',\n { inviteHash },\n );\n return response.data;\n } catch (e) {\n return e.response?.data;\n }\n};\n\nexport const resetFromEmail = async (\n email: string,\n password: string,\n inviteHash: string,\n): Promise> => {\n try {\n const response: AxiosResponse> = await getAuthInstance().post(\n '/v3/ua/user/update-password',\n { email, password, inviteHash },\n );\n return response.data;\n } catch (e) {\n return e.response?.data;\n }\n};\n\ninterface CreatePasswordRequestData {\n email: string;\n password: string;\n inviteHash: string;\n}\n\ninterface CreatePasswordResponse {\n /* eslint-disable camelcase */\n access_token: string;\n refresh_token: string;\n token_type: string;\n expires_in: number;\n /* eslint-enable camelcase */\n scope: string;\n owId: number;\n redirectionUrl?: string;\n}\n\nexport const createPassword = async (\n data: CreatePasswordRequestData,\n workspaceDomain: string,\n): Promise> => {\n try {\n const response: AxiosResponse> =\n await getAuthInstance().post('/v3/ua/sign-up', data, {\n headers: {\n 'x-iaa-host': workspaceDomain,\n },\n });\n\n return response.data;\n } catch (e) {\n return e.response.data;\n }\n};\n","import { getAuthInstance } from 'api';\nimport { AxiosResponse } from 'axios';\nimport { WithResponse } from 'models/API';\n\nexport interface VerifyLinkResponse {\n isIHPCustomer: boolean;\n isExpired?: boolean;\n inviteEmail?: string;\n invitedToWorkspace?: string;\n organizationName?: string;\n workspaceDomain?: string; // if a workspace was already created with this invite\n isInviteProcessed?: boolean; // if user has already created (workspace AND) password with this invite, this flag will be true\n isInviteCancelled?: boolean; // if invite is cancelled before invitee tries to use the link\n isNewUser?: boolean;\n isInviteDeleted?: boolean;\n}\n\nexport const verifyInviteLinkHash = async (\n inviteHash: string,\n): Promise> => {\n try {\n const response: AxiosResponse> = await getAuthInstance().post(\n '/v3/ua/invite/validate',\n { inviteHash },\n );\n return response.data;\n } catch (e) {\n return e.response?.data;\n }\n};\n\ninterface CreateRequestData {\n creatorEmail: string;\n domain: string;\n inviteHash: string;\n}\n\nexport const createWorkspace = async (\n createData: CreateRequestData,\n): Promise> => {\n try {\n const response: AxiosResponse> = await getAuthInstance().post(\n '/v3/ua/workspace',\n createData,\n );\n\n return response.data;\n } catch (e) {\n return e.response.data;\n }\n};\n\ninterface VerifyEmailRequestData {\n workspaceDomain: string;\n email: string;\n}\n\ninterface VerifyEmailResponse {\n isValid: boolean;\n isWorkspaceAllowed: boolean;\n}\n\nexport const verifyEmail = async (\n data: VerifyEmailRequestData,\n): Promise> => {\n try {\n const res: AxiosResponse> = await getAuthInstance().post(\n '/v3/ua/user/email/validate',\n data,\n );\n\n return res.data;\n } catch (e) {\n return e.response.data;\n }\n};\n\nexport const verifyWorkspaceDomain = async (\n data: VerifyEmailRequestData,\n): Promise => {\n try {\n const res: AxiosResponse = await getAuthInstance().post(\n '/v3/ua/user/workspace/validate',\n data,\n );\n\n return res.data;\n } catch (e) {\n return e.response.data;\n }\n};\n\nexport const findMyWorkspace = async (email: string): Promise> => {\n try {\n const res: AxiosResponse> = await getAuthInstance().post(\n '/v3/ua/find-my-workspace',\n { email },\n );\n\n return res.data;\n } catch (e) {\n return e.response.data;\n }\n};\n\nexport const resendInvite = async (inviteHash: string): Promise> => {\n try {\n const res: AxiosResponse> = await getAuthInstance().post(\n '/v3/ua/customer/invite/re-send',\n { inviteHash },\n );\n\n return res.data;\n } catch (e) {\n return e.response.data;\n }\n};\n\nexport const getIntercomId = async (): Promise> => {\n try {\n const res: AxiosResponse> = await getAuthInstance().get(\n `/v3/ua/st/chatbot`,\n );\n return res.data;\n } catch (e) {\n return e.response.data;\n }\n};\n","import { Action } from 'models/Action';\n\nexport function createAction(type: string, payload?: T): Action {\n return {\n type,\n payload,\n };\n}\n\ntype TFunction = (state: T) => void;\n\nexport function reducerFromMap(\n initialState: T,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n map: { [key: string]: (state: T, action: Action) => T } = {},\n middlewares?: TFunction[],\n) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (state: T = initialState, action: Action): T => {\n const { type } = action;\n if (map[type]) {\n const actionHandler = map[type];\n const nextState = actionHandler(state, action);\n if (middlewares) {\n middlewares.forEach((fn) => fn(nextState));\n }\n return nextState;\n }\n return state;\n };\n}\n","export const authConstants = {\n LOGIN_SUCCESS: 'LOGIN_SUCCESS',\n LOGOUT: 'LOGOUT',\n};\n","import { User } from 'models/User';\nimport { createAction } from 'utils/actions';\nimport { authConstants } from './constants';\n\nexport const authActions = {\n authorized(user: User) {\n return createAction(authConstants.LOGIN_SUCCESS, user);\n },\n\n logout() {\n return createAction(authConstants.LOGOUT);\n },\n};\n\nexport interface Authorized {\n authorized: (user: User) => void;\n}\n\nexport interface Logout {\n logout: () => void;\n}\n","import React from 'react';\nimport { Header } from 'iqm-framework';\n\nconst NavbarComponent = () => {\n return
;\n};\n\nexport const Navbar = NavbarComponent;\n","import { useCallback, useEffect, useState } from 'react';\n\nimport { InitData } from 'models/User';\n\nexport const useInitData = ({ ihb = '', nonIHB = '' }) => {\n const [data, setData] = useState(null);\n const [sideURL, setSideURL] = useState('');\n\n const getData = useCallback(() => {\n let count = 0;\n\n const i = setInterval(() => {\n const newData = localStorage.getItem('initData');\n if (newData) {\n clearInterval(i);\n const parsed = JSON.parse(newData) as InitData;\n setData(parsed);\n setSideURL(\n parsed.ihpOwner\n ? parsed.pages.landingPages[0] || ihb\n : parsed.pages.landingPages[0] || nonIHB,\n );\n } else {\n count += 1;\n if (count > 50) {\n clearInterval(i);\n }\n }\n }, 200);\n }, [ihb, nonIHB]);\n\n useEffect(() => {\n getData();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return {\n data,\n sideURL,\n };\n};\n","import React, { useState } from 'react';\nimport { useLocation } from 'react-router-dom';\nimport get from 'lodash/get';\nimport {\n TwoPartScreen,\n TwoPartScreenStyles,\n validationUtils,\n useAdblockCheck,\n} from 'iqm-framework';\nimport { SVG_HOST_URL, TextField, Button } from 'factor';\n\nimport { API } from 'api';\nimport { useInitData } from 'utils/useInitData';\n\ninterface StateType {\n emailAddress: string;\n}\n\nconst IHB_IMAGE_URL = `${SVG_HOST_URL}/misc/email-message.svg`;\nconst NON_IHB_IMAGE_URL = `${SVG_HOST_URL}/brand/onboarding1Asset2.svg`;\n\nexport const ResetPasswordEmailPage = () => {\n const location = useLocation();\n const [emailAddress, setEmailAddress] = useState(location.state?.emailAddress || '');\n const [emailValidity, setEmailValidity] = useState(\n location.state?.emailAddress\n ? validationUtils.validateEmail(location.state.emailAddress)\n : false,\n );\n const [visibleCard, setVisibleCard] = useState<1 | 2>(1);\n const [loading, setLoading] = useState(false);\n const [adblockEnabled] = useAdblockCheck();\n const [errorMsg, setErrorMsg] = useState('');\n const [successMsg, setSuccessMsg] = useState('');\n\n const { sideURL } = useInitData({\n ihb: IHB_IMAGE_URL,\n nonIHB: NON_IHB_IMAGE_URL,\n });\n\n const handleSend = async (isResend = false) => {\n setErrorMsg('');\n setLoading(true);\n const res = await API.Password.sendResetPasswordEmail(emailAddress);\n if (res.success) {\n setVisibleCard(2);\n if (isResend) {\n setSuccessMsg(res.data || '');\n setTimeout(() => {\n setSuccessMsg('');\n }, 8000);\n }\n } else {\n setErrorMsg(get(res, 'errorObjects[0].error', ''));\n }\n setLoading(false);\n };\n\n return (\n \n \n
Reset your password
\n
Enter your registered email
\n {\n e.preventDefault();\n handleSend();\n }}\n >\n {\n return 'Please enter a valid email address';\n },\n },\n ]}\n />\n {errorMsg ?
{errorMsg}
: null}\n \n Next\n \n \n \n \n
Reset your password
\n

\n We’ve sent a password reset email, please check your inbox\n

\n

\n Haven’t received an email? Please check your spam folder, or\n

\n handleSend(true)}\n >\n Resend\n \n {errorMsg ?
{errorMsg}
: null}\n {successMsg ? (\n
{successMsg}
\n ) : null}\n \n \n }\n />\n );\n};\n","import React, { useState } from 'react';\nimport { TextField, Icon } from 'factor';\n\nimport styles from './index.module.scss';\n\ninterface Props {\n className: string;\n name: string;\n placeholder: string;\n label?: string;\n helpText?: string;\n value: string;\n onChange: (val: string) => void;\n inputAttributes: { [key: string]: string | boolean };\n inputRef?: (ref: HTMLInputElement) => void;\n}\n\nexport const PasswordField = (props: Props) => {\n const {\n className,\n inputAttributes,\n inputRef,\n label,\n name,\n helpText,\n onChange,\n placeholder,\n value,\n } = props;\n\n const [passwordVisible, setPasswordVisible] = useState(false);\n\n return (\n {\n setPasswordVisible((val) => !val);\n }}\n >\n \n \n }\n inputAttributes={inputAttributes}\n inputRef={inputRef}\n disableLogging\n />\n );\n};\n\nPasswordField.defaultProps = {\n label: null,\n helpText: null,\n inputRef: null,\n};\n","export interface THint {\n regex: RegExp;\n label: string;\n match: boolean;\n}\n\nexport const hintsList: THint[] = [\n {\n regex: /(?=.{8,})/g,\n label: 'contains at least 8 characters',\n match: false,\n },\n {\n regex: /(?=.*[A-Z])/g,\n label: 'contains at least one uppercase',\n match: false,\n },\n {\n regex: /(?=.*[0-9])/g,\n label: 'contains at least one number',\n match: false,\n },\n {\n regex: /(?=.*[!@#$%^&*])/g,\n label: 'contains at least one special character (like !@#$%^&*)',\n match: false,\n },\n];\n","import React, { useEffect, useRef, useState } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { TwoPartScreen, TwoPartScreenStyles, useAdblockCheck } from 'iqm-framework';\nimport { SVG_HOST_URL, Button, ProgressCircle } from 'factor';\n\nimport { PasswordField } from 'components/PasswordField';\nimport { API } from 'api';\nimport { hintsList, THint } from 'models/Password';\nimport { useInitData } from 'utils/useInitData';\n\nimport styles from './index.module.scss';\n\nconst IHB_IMAGE_URL = `${SVG_HOST_URL}/misc/office-people.svg`;\nconst NON_IHB_IMAGE_URL = `${SVG_HOST_URL}/brand/onboarding1Asset2.svg`;\n\n// eslint-disable-next-line\ndeclare let PasswordCredential: any;\n\nexport const ResetPasswordPage = () => {\n const [visibleCard, setVisibleCard] = useState<1 | 2>(1);\n const [errorMsg, setErrorMsg] = useState('');\n const [emailAddress, setEmailAddress] = useState('');\n const [loading, setLoading] = useState(false);\n const [passwrd, setPasswrd] = useState('');\n const [hints, setHints] = useState(hintsList);\n const [adblockEnabled] = useAdblockCheck();\n const history = useHistory();\n const mounted = useRef(false);\n\n const { sideURL } = useInitData({\n ihb: IHB_IMAGE_URL,\n nonIHB: NON_IHB_IMAGE_URL,\n });\n\n useEffect(() => {\n const verifyHash = async (hash: string) => {\n const hash1 = hash.replace(/\\s/g, '+');\n const res = await API.Password.verifyEmailLinkHash(hash1);\n if (res?.success && res?.data?.isValid) {\n setEmailAddress(res.data.resetEmail || '');\n } else if (res?.data?.invalidReason) {\n setErrorMsg(res.data.invalidReason);\n } else {\n setErrorMsg('Invalid link. Please contact your admin.');\n }\n setLoading(false);\n };\n\n if (history.location && mounted.current === false) {\n mounted.current = true;\n const hash = new URLSearchParams(history.location.search).get('hash');\n if (hash) {\n verifyHash(hash);\n }\n }\n }, [history.location]);\n\n useEffect(() => {\n if (passwrd.length) {\n const hintsToSave = hintsList.map((h) => ({ ...h, match: h.regex.test(passwrd) }));\n setHints(hintsToSave);\n } else {\n setHints(hintsList);\n }\n }, [passwrd]);\n\n const handleCreatePassword = async () => {\n if (history.location) {\n // logic to prompt save password popup in chrome and edge while resetting password\n if ('PasswordCredential' in window) {\n const credential = new PasswordCredential({\n id: emailAddress,\n name: emailAddress,\n password: passwrd,\n });\n navigator.credentials.store(credential);\n }\n\n const inviteHash = new URLSearchParams(history.location.search)\n .get('hash')\n ?.replace(/\\s/g, '+');\n if (inviteHash) {\n const res = await API.Password.resetFromEmail(emailAddress, passwrd, inviteHash);\n if (res.success) {\n setVisibleCard(2);\n } else if (res.errorObjects?.length) {\n setErrorMsg(res.errorObjects[0].error || '');\n }\n }\n }\n };\n\n const navigateToLogin = () => {\n history.push('/login', { emailAddress });\n };\n\n return (\n \n \n
\n {!loading && emailAddress ? 'Create new password' : 'Link Expired'}\n
\n\n {\n e.preventDefault();\n handleCreatePassword();\n }}\n >\n {loading ? (\n \n ) : (\n
\n {emailAddress ? (\n <>\n \n \n
    \n {hints.map((h) => (\n \n {h.label}\n \n ))}\n
\n \n ) : (\n
{errorMsg}
\n )}\n
\n )}\n\n !hint.match)\n }\n type=\"submit\"\n >\n Next\n \n \n \n \n
Password reset successful
\n
\n Awesome, you've successfully updated your password\n
\n \n Continue Login\n \n \n \n }\n />\n );\n};\n","import React, { useEffect, useState } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { TwoPartScreen, TwoPartScreenStyles } from 'iqm-framework';\nimport { SVG_HOST_URL, ProgressCircle } from 'factor';\n\nimport { API } from 'api';\nimport { useInitData } from 'utils/useInitData';\n\nconst IHB_IMAGE_URL = `${SVG_HOST_URL}/misc/office-people.svg`;\nconst NON_IHB_IMAGE_URL = `${SVG_HOST_URL}/brand/onboarding1Asset2.svg`;\nconst INVALID_LINK = 'The invitation link is invalid.';\n\nexport const InviteCustomerPage = () => {\n const history = useHistory();\n const [errorMsg, setErrorMsg] = useState('');\n\n const { sideURL } = useInitData({\n ihb: IHB_IMAGE_URL,\n nonIHB: NON_IHB_IMAGE_URL,\n });\n\n useEffect(() => {\n const verifyHash = async (hash: string) => {\n const hash1 = hash.replace(/\\s/g, '+');\n const res = await API.Customer.verifyInviteLinkHash(hash1);\n\n // invite expired\n if (res.data?.isExpired) {\n history.push({\n pathname: '/invite-expired',\n search: history.location.search,\n });\n\n // invite cancelled\n } else if (res.data?.isInviteCancelled) {\n history.push('/404');\n } else if (res.success && (res.data?.isInviteProcessed || res.data?.isInviteDeleted)) {\n setErrorMsg(INVALID_LINK);\n\n // if a user with the invited email already exists in the system\n } else if (\n res.success &&\n !res.data?.isNewUser &&\n res.data?.invitedToWorkspace &&\n res.data.inviteEmail\n ) {\n window.location.href = `https://${res.data.invitedToWorkspace}/#/login?email=${btoa(\n res.data.inviteEmail,\n )}`;\n\n // invite from IHB\n } else if (res.success && res.data?.isIHPCustomer) {\n // if a workspace was already created with this invite\n if (res.data.workspaceDomain) {\n history.push({\n pathname: '/create-password',\n state: { ...res.data, hash: hash1, invitedToWorkspace: res.data.workspaceDomain },\n });\n\n // if no workspace already created\n } else {\n history.push({\n pathname: '/create-workspace',\n state: { hash: hash1, ...res.data },\n });\n }\n\n // invite from non-IHB\n } else if (res.success && !res.data?.isIHPCustomer) {\n history.push({\n pathname: '/create-password',\n state: { hash: hash1, ...res.data },\n });\n } else {\n setErrorMsg(INVALID_LINK);\n }\n };\n\n if (history.location) {\n const hash = new URLSearchParams(history.location.search).get('hash');\n if (hash) {\n verifyHash(hash);\n }\n }\n }, [history]);\n\n return (\n \n
Validating invite URL
\n {errorMsg ? (\n
{errorMsg}
\n ) : (\n \n \n \n )}\n \n }\n />\n );\n};\n","import React, { useEffect } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { TwoPartScreen, TwoPartScreenStyles } from 'iqm-framework';\nimport { SVG_HOST_URL } from 'factor';\n\nimport { useInitData } from 'utils/useInitData';\n\nconst IHB_IMAGE_URL = `${SVG_HOST_URL}/misc/calendar-blue.svg`;\nconst NON_IHB_IMAGE_URL = `${SVG_HOST_URL}/misc/calendar-teal.svg`;\n\nexport const InviteExpiredPage = () => {\n const history = useHistory();\n const { sideURL } = useInitData({\n ihb: IHB_IMAGE_URL,\n nonIHB: NON_IHB_IMAGE_URL,\n });\n\n const renderLeftChildren = () => {\n return (\n
\n
Invitation Expired
\n
Uh Oh! Invitation link is expired
\n
\n But don't worry, happens to the best of us.\n
\n
\n );\n };\n\n useEffect(() => {\n if (!history.location.search) {\n history.push('/404');\n }\n }, [history]);\n\n return (\n \n );\n};\n","import React, { FormEvent, useCallback, useEffect, useRef, useState } from 'react';\nimport { Link, useHistory } from 'react-router-dom';\n// import Postmate from 'postmate';\nimport { TextField, Button, SVG_HOST_URL, Pill, ProgressCircle } from 'factor';\nimport {\n AuthService,\n validationUtils,\n TwoPartScreen,\n TwoPartScreenStyles,\n useAdblockCheck,\n ADBLOCK_MESSAGE,\n useCapslockCheck,\n CAPSLOCK_MESSAGE,\n ORIGIN_URL,\n} from 'iqm-framework';\n\nimport { PasswordField } from 'components/PasswordField';\nimport { API } from 'api';\nimport { useInitData } from 'utils/useInitData';\nimport { localStorageService } from 'services/localStorage';\nimport { User } from 'models/User';\n\nimport styles from './index.module.scss';\n\nconst IHB_IMAGE_URL = `${SVG_HOST_URL}/misc/office-people.svg`;\nconst NON_IHB_IMAGE_URL = `${SVG_HOST_URL}/brand/intelligence2Asset2.svg`;\nconst EMAIL_INVALID_MSG = \"Sorry, we couldn't recognize this email address\";\n\ninterface Props {\n onSuccess: (userData: unknown) => void;\n onError: (error: unknown) => void;\n}\n\nexport const LoginForm = (props: Props) => {\n const { onSuccess, onError } = props;\n const [visibleCard, setVisibleCard] = useState<1 | 2>(1);\n const [passwd, setPasswd] = useState('');\n const [emailAddress, setEmailAddress] = useState('');\n const [emailValidity, setEmailValidity] = useState(false);\n const [errorMsg, setErrorMsg] = useState('');\n const [isAutoLogin, setAutoLogin] = useState(false);\n const [submitData, setSubmitData] = useState({ apiError: '', isSubmitting: false });\n const [adblockEnabled, setAdblockEnabled] = useAdblockCheck();\n const [isCapsLock] = useCapslockCheck();\n const history = useHistory();\n const pwdRef = useRef(null);\n const mounted = useRef(false);\n\n const { data: initData, sideURL } = useInitData({\n ihb: IHB_IMAGE_URL,\n nonIHB: NON_IHB_IMAGE_URL,\n });\n\n const getOrgName = useCallback(() => {\n return initData?.organizationName || 'IHP';\n }, [initData?.organizationName]);\n\n const handleEmailVerification = useCallback(\n async (emailParam = '') => {\n if (emailValidity) {\n const workspaceDomain = ORIGIN_URL.substring(ORIGIN_URL.indexOf('//') + 2);\n\n const res = await API.Customer.verifyEmail({\n workspaceDomain,\n email: emailParam || emailAddress,\n });\n\n if (res.success && res.data?.isWorkspaceAllowed) {\n setVisibleCard(2);\n setTimeout(() => pwdRef.current?.focus(), 0);\n } else if (res.data?.isValid && initData?.ihpOwner) {\n history.push({\n pathname: '/enter-workspace',\n state: {\n userEmail: emailParam || emailAddress,\n },\n });\n } else if (!res.success && res.errorObjects?.length) {\n setErrorMsg(res.errorObjects[0].error ?? EMAIL_INVALID_MSG);\n } else {\n setErrorMsg(EMAIL_INVALID_MSG);\n }\n }\n },\n [emailAddress, emailValidity, history, initData?.ihpOwner],\n );\n\n useEffect(() => {\n if (history.location.search && !mounted.current) {\n mounted.current = true;\n\n const owId = Number(new URLSearchParams(history.location.search).get('ow'));\n // const ihpParam = new URLSearchParams(history.location.search).get('owner');\n const emailParam = new URLSearchParams(history.location.search).get('email');\n const expiresAt = new URLSearchParams(history.location.search).get('expiresAt');\n\n let apiToken = '';\n let refreshToken = '';\n try {\n apiToken = atob(new URLSearchParams(history.location.search).get('apiToken') ?? '');\n refreshToken = atob(new URLSearchParams(history.location.search).get('refreshToken') ?? '');\n } catch (e) {\n apiToken = '';\n refreshToken = '';\n }\n if (apiToken && refreshToken && expiresAt && !Number.isNaN(owId)) {\n let currentIndex = 0;\n const savedOwIds = JSON.parse(localStorage.getItem('owIds') || '[]') || [];\n const index = savedOwIds.indexOf(owId);\n if (index !== -1) {\n currentIndex = index;\n } else {\n const newList = [...savedOwIds, owId];\n localStorage.setItem('owIds', JSON.stringify(newList));\n currentIndex = newList.length - 1;\n }\n localStorage.setItem('transitionOWIdIndex', String(currentIndex));\n\n setAutoLogin(true);\n AuthService.singleSignon(apiToken, [owId], expiresAt, refreshToken)\n .then((userData: unknown) => {\n onSuccess(userData);\n })\n .catch((e: unknown) => {\n if (onError) {\n onError(e);\n localStorage.removeItem('transitionOWIdIndex');\n }\n });\n } else if (emailParam) {\n const emailToSave = atob(emailParam);\n setEmailAddress(emailToSave);\n setVisibleCard(2);\n setTimeout(() => pwdRef.current?.focus(), 0);\n }\n } else if (\n localStorageService.getBaseInfo()?.apiToken &&\n localStorageService.getBaseInfo()?.refreshToken\n ) {\n setTimeout(() => {\n window.location.href = '/dashboard/u/0/';\n }, 0);\n }\n }, [history.location.search, onError, onSuccess]);\n\n // clear the error if user modifies the email\n useEffect(() => {\n setErrorMsg('');\n }, [emailAddress]);\n\n const handleSubmitForm = async (e: FormEvent) => {\n e.preventDefault();\n setSubmitData({ apiError: '', isSubmitting: true });\n\n try {\n const userData = await AuthService.authorize({ email: emailAddress, password: passwd }, true);\n if (onSuccess) {\n onSuccess(userData);\n }\n } catch (error) {\n if (onError) {\n onError(error);\n }\n setSubmitData({\n apiError: error.errorMessage,\n isSubmitting: false,\n });\n if (!error.errorMessage) {\n setAdblockEnabled(error.message === 'Endpoint is not available');\n }\n }\n };\n\n return (\n <>\n
\n \n \n {isAutoLogin ? (\n <>\n
Logging you in...
\n \n \n
\n \n ) : (\n <>\n
Let's get you started!
\n
Enter your email to sign in
\n {\n e.preventDefault();\n handleEmailVerification();\n }}\n >\n true,\n error: () => {\n return 'Please enter a valid email address';\n },\n },\n ]}\n />\n {errorMsg ? (\n
{errorMsg}
\n ) : null}\n \n Next\n \n \n \n )}\n \n \n
Login to {getOrgName()}
\n
Enter your login password
\n {\n setVisibleCard(1);\n setSubmitData({\n apiError: '',\n isSubmitting: false,\n });\n }}\n >\n \n \n
\n \n {\n pwdRef.current = ref;\n }}\n />\n
\n {initData?.passwordNote ? `Note: ${initData.passwordNote}` : ''}\n
\n {isCapsLock ? (\n
{CAPSLOCK_MESSAGE}
\n ) : null}\n {adblockEnabled ? (\n
{ADBLOCK_MESSAGE}
\n ) : null}\n {submitData.apiError && !submitData.isSubmitting ? (\n
{submitData.apiError}
\n ) : null}\n\n \n Login\n \n \n \n Forgot Password?\n \n \n \n }\n />\n \n );\n};\n","import React, { useEffect } from 'react';\n\nconst DefaultPage = () => {\n useEffect(() => {\n const savedOwIds = JSON.parse(localStorage.getItem('owIds') || '[]') || [];\n const currentIndex = Number.parseInt(localStorage.getItem('transitionOWIdIndex') ?? '', 10);\n // redirect to dashboard from here\n if (!Number.isNaN(currentIndex) && currentIndex < savedOwIds.length) {\n localStorage.removeItem('transitionOWIdIndex');\n setTimeout(() => {\n window.location.href = `/dashboard/u/${currentIndex}/`;\n }, 0);\n } else {\n window.location.href = '/dashboard/u/0/';\n }\n }, []);\n\n return
Redirecting...
;\n};\n\nexport { DefaultPage };\n","import React, { useState } from 'react';\nimport { useHistory, useLocation } from 'react-router-dom';\nimport { TwoPartScreen, TwoPartScreenStyles, useAdblockCheck } from 'iqm-framework';\nimport { SVG_HOST_URL, TextField, Button } from 'factor';\n\nimport { API } from 'api';\nimport { VerifyLinkResponse } from 'api/customer';\nimport { useInitData } from 'utils/useInitData';\n\nimport styles from './index.module.scss';\n\ninterface LocationData extends VerifyLinkResponse {\n hash: string;\n}\n\nconst IHB_IMAGE_URL = `${SVG_HOST_URL}/misc/office-people.svg`;\nconst NON_IHB_IMAGE_URL = `${SVG_HOST_URL}/brand/onboarding1Asset2.svg`;\n\nexport const CreateWorkspacePage = () => {\n const [errorMsg, setErrorMsg] = useState('');\n const [workspaceUrl, setWorkspaceUrl] = useState('');\n const [adblockEnabled] = useAdblockCheck();\n const history = useHistory();\n const location = useLocation();\n const [loading, setLoading] = useState(false);\n\n const { sideURL, data: initData } = useInitData({\n ihb: IHB_IMAGE_URL,\n nonIHB: NON_IHB_IMAGE_URL,\n });\n const workspaceURLSuffix = initData?.workspaceURLSuffix || '';\n\n const createWorkspace = async () => {\n const formatedWorkspaceUrl = workspaceUrl.endsWith('-')\n ? workspaceUrl.slice(0, -1)\n : workspaceUrl;\n setWorkspaceUrl(formatedWorkspaceUrl);\n\n if (!location.state?.inviteEmail) {\n setErrorMsg('Wrong invite link');\n return;\n }\n\n setLoading(true);\n const res = await API.Customer.createWorkspace({\n domain: formatedWorkspaceUrl,\n creatorEmail: location.state.inviteEmail,\n inviteHash: location.state.hash,\n });\n setLoading(false);\n\n const domain = `${formatedWorkspaceUrl}${workspaceURLSuffix}`;\n\n if (res.success) {\n history.push({\n pathname: '/create-password',\n state: { ...location.state, invitedToWorkspace: domain },\n });\n } else if (res.errorObjects?.length) {\n setErrorMsg(res.errorObjects[0].error);\n }\n };\n\n const onChangeWorkspaceUrl = (value: string) => {\n setWorkspaceUrl(value.replace(/[^A-Z\\-0-9]+/gi, '').replace(/-+/gi, '-'));\n };\n\n return (\n \n
\n
Claim workspace URL
\n
Create workspace URL
\n
\n {location.state?.organizationName || 'IHP'}\n
\n\n {\n e.preventDefault();\n createWorkspace();\n }}\n >\n
\n {workspaceURLSuffix}
}\n className={styles.workspaceURLField}\n value={workspaceUrl}\n onChange={onChangeWorkspaceUrl}\n inputAttributes={{\n autoFocus: true,\n }}\n />\n
\n
{errorMsg}
\n\n \n Next\n \n \n \n \n }\n />\n );\n};\n","import React from 'react';\nimport { TwoPartScreen, TwoPartScreenStyles } from 'iqm-framework';\nimport { SVG_HOST_URL } from 'factor';\n\nconst RIGHT_PART_IMAGE_URL = `${SVG_HOST_URL}/misc/404-error.svg`;\n\nexport const ErrorPage = () => (\n \n
Oops! Page not found
\n
\n Something went wrong. We can't seem to find the page you are looking for.\n
\n
Please check your URL.
\n {/* {\n history.push('/login');\n }}\n >\n Take me to Login\n s */}\n \n }\n />\n);\n","import React, { useEffect, useState } from 'react';\nimport { useHistory, useLocation } from 'react-router-dom';\nimport {\n TwoPartScreen,\n TwoPartScreenStyles,\n userAuth,\n AuthService,\n ORIGIN_URL,\n} from 'iqm-framework';\nimport { SVG_HOST_URL, Button, Pill } from 'factor';\nimport get from 'lodash/get';\n\nimport { PasswordField } from 'components/PasswordField';\nimport { API } from 'api';\nimport { VerifyLinkResponse } from 'api/customer';\nimport { hintsList, THint } from 'models/Password';\nimport { User } from 'models/User';\nimport { useInitData } from 'utils/useInitData';\n\nimport styles from './index.module.scss';\n\nconst IHB_IMAGE_URL = `${SVG_HOST_URL}/misc/office-people.svg`;\nconst NON_IHB_IMAGE_URL = `${SVG_HOST_URL}/brand/group12.svg`;\n\ninterface LocationData extends VerifyLinkResponse {\n hash: string;\n}\n\nexport const CreatePasswordPage = () => {\n const [visibleCard, setVisibleCard] = useState<1 | 2>(1);\n const [errorMsg, setErrorMsg] = useState('');\n const [passwrd, setPasswrd] = useState('');\n const [hints, setHints] = useState(hintsList);\n const [emailAddress, setEmailAddress] = useState('');\n const [workspaceUrl, setWorkspaceUrl] = useState('');\n const [owId, setOwId] = useState();\n const history = useHistory();\n const location = useLocation();\n\n const { sideURL, data: initData } = useInitData({\n ihb: IHB_IMAGE_URL,\n nonIHB: NON_IHB_IMAGE_URL,\n });\n\n useEffect(() => {\n if (!location.state?.inviteEmail) {\n history.push('/404');\n } else if (location.state.invitedToWorkspace) {\n setEmailAddress(location.state.inviteEmail);\n setWorkspaceUrl(location.state.invitedToWorkspace);\n }\n }, [history, location]);\n\n useEffect(() => {\n if (passwrd.length) {\n const hintsToSave = hintsList.map((h) => ({ ...h, match: h.regex.test(passwrd) }));\n setHints(hintsToSave);\n } else {\n setHints(hintsList);\n }\n }, [passwrd]);\n\n useEffect(() => {\n if (visibleCard === 2 && owId != null) {\n setTimeout(() => {\n if (ORIGIN_URL.includes(workspaceUrl)) {\n // we're in the correct workspace URL already\n window.location.href = '/marketplace/u/0';\n } else {\n window.location.href = `https://${workspaceUrl}/#/login?owner=${btoa(\n ORIGIN_URL,\n )}&ow=${owId}`;\n }\n }, 4000);\n }\n }, [emailAddress, owId, visibleCard, workspaceUrl]);\n\n const handleCreatePassword = async () => {\n if (location.state.inviteEmail) {\n const res = await API.Password.createPassword(\n {\n email: location.state.inviteEmail,\n password: passwrd,\n inviteHash: location.state.hash,\n },\n workspaceUrl,\n );\n\n if (res.success && res.data) {\n if (res?.data?.redirectionUrl) {\n window.location.href = res.data.redirectionUrl;\n return;\n }\n const authorizedUser: Partial = userAuth(res.data);\n localStorage.setItem('authorizedUser', JSON.stringify(authorizedUser));\n setOwId(res.data.owId);\n if (ORIGIN_URL.includes(workspaceUrl)) {\n localStorage.setItem('owIds', JSON.stringify([res.data.owId]));\n AuthService.authorize(authorizedUser, true);\n }\n\n setVisibleCard(2);\n } else {\n setErrorMsg(get(res, 'errorObjects[0].error', ''));\n }\n }\n };\n\n return (\n \n \n
Create new password
\n
\n \n
\n \n\n {\n e.preventDefault();\n handleCreatePassword();\n }}\n >\n
\n \n \n
\n {initData?.passwordNote ? `Note: ${initData.passwordNote}` : ''}\n
\n\n
\n {initData?.passwordNote ? 'Hints for a stronger password' : ''}\n
\n
    \n {hints.map((h) => (\n \n {h.label}\n \n ))}\n
\n
{errorMsg}
\n
\n\n !hint.match)}\n type=\"submit\"\n >\n Next\n \n \n \n \n
Password created successfully
\n
\n Welcome to {location.state?.organizationName || 'IHP'}!\n
\n \n \n }\n />\n );\n};\n","import React, { useEffect, useState } from 'react';\nimport { Link, useHistory, useLocation } from 'react-router-dom';\nimport { TwoPartScreen, TwoPartScreenStyles, useAdblockCheck } from 'iqm-framework';\nimport { SVG_HOST_URL, TextField, Button, Pill } from 'factor';\n\nimport { API } from 'api';\nimport { useInitData } from 'utils/useInitData';\n\ninterface LocationData {\n userEmail: string;\n}\n\nconst IHB_IMAGE_URL = `${SVG_HOST_URL}/misc/office-people.svg`;\nconst NON_IHB_IMAGE_URL = `${SVG_HOST_URL}/brand/onboarding1Asset2.svg`;\n\nexport const EnterWorkspacePage = () => {\n const [errorMsg, setErrorMsg] = useState('');\n const [workspaceUrl, setWorkspaceUrl] = useState('');\n const [emailAddress, setEmailAddress] = useState('');\n const [adblockEnabled] = useAdblockCheck();\n const history = useHistory();\n const location = useLocation();\n\n const { sideURL } = useInitData({\n ihb: IHB_IMAGE_URL,\n nonIHB: NON_IHB_IMAGE_URL,\n });\n\n useEffect(() => {\n if (!location.state?.userEmail) {\n history.push('/login');\n } else {\n setEmailAddress(location.state.userEmail);\n }\n }, [history, location]);\n\n // reset error if user changes workspace domain field\n useEffect(() => {\n setErrorMsg('');\n }, [workspaceUrl]);\n\n const verifyWorkspace = async () => {\n if (!location.state?.userEmail) {\n return;\n }\n\n const workspaceDomain = workspaceUrl.replace(/^https?:\\/\\//, '');\n\n const res = await API.Customer.verifyWorkspaceDomain({\n workspaceDomain,\n email: emailAddress,\n });\n\n if (res.success) {\n window.location.href = `https://${workspaceDomain}/#/login?email=${btoa(emailAddress)}`;\n } else if (res.errorObjects?.length) {\n setErrorMsg(res.errorObjects[0].error);\n } else {\n setErrorMsg(\"You don't seem to have access to this workspace\");\n }\n };\n\n return (\n \n
\n
Enter workspace URL
\n
\n Let us redirect you to your destination!\n
\n {\n history.push('/login');\n }}\n >\n \n
\n {\n e.preventDefault();\n verifyWorkspace();\n }}\n >\n
\n \n
\n
{errorMsg}
\n\n \n Next\n \n \n \n Forgot your URL?\n \n \n \n }\n />\n );\n};\n","import React, { useEffect, useState } from 'react';\nimport { useHistory, useLocation } from 'react-router-dom';\nimport {\n TwoPartScreen,\n TwoPartScreenStyles,\n useAdblockCheck,\n validationUtils,\n} from 'iqm-framework';\nimport { SVG_HOST_URL, TextField, Button } from 'factor';\n\nimport { API } from 'api';\nimport { useInitData } from 'utils/useInitData';\nimport styles from './index.module.scss';\n\ninterface LocationData {\n userEmail: string;\n}\n\nconst IHB_IMAGE_URL = `${SVG_HOST_URL}/misc/office-people.svg`;\nconst NON_IHB_IMAGE_URL = `${SVG_HOST_URL}/brand/onboarding1Asset2.svg`;\nconst CHECK_CIRCLE_IMAGE_URL = `${SVG_HOST_URL}/check_circle.svg`;\n\nexport const FindMyWorkspacePage = () => {\n const [visibleCard, setVisibleCard] = useState<1 | 2>(1);\n const [errorMsg, setErrorMsg] = useState('');\n const [emailAddress, setEmailAddress] = useState('');\n const [emailValidity, setEmailValidity] = useState(false);\n const [adblockEnabled] = useAdblockCheck();\n const history = useHistory();\n const location = useLocation();\n\n const { sideURL } = useInitData({\n ihb: IHB_IMAGE_URL,\n nonIHB: NON_IHB_IMAGE_URL,\n });\n\n useEffect(() => {\n if (location.state?.userEmail) {\n setEmailAddress(location.state.userEmail);\n }\n }, [history, location]);\n\n // reset error if email changes\n useEffect(() => {\n setErrorMsg('');\n }, [emailAddress]);\n\n const findMyWorkspace = async () => {\n const res = await API.Customer.findMyWorkspace(emailAddress);\n\n if (res.success) {\n setVisibleCard(2);\n } else {\n setErrorMsg('Email ID does not exist. Please enter a valid email ID.');\n }\n };\n\n return (\n \n \n
Find your workspace
\n
\n We will help you find existing workspaces associated with your email address\n
\n {\n e.preventDefault();\n findMyWorkspace();\n }}\n >\n
\n {\n return 'Please enter a valid email address';\n },\n },\n ]}\n />\n
\n
{errorMsg}
\n\n \n Next\n \n \n \n \n \"CHECK_CIRCLE\"\n
URLs Email sent
\n
\n We have sent you URLs on the associated email.\n
\n Check your email for logging in your workspaces.\n
\n \n \n }\n />\n );\n};\n","import React from 'react';\nimport { Link } from 'react-router-dom';\nimport { Button } from 'factor';\nimport { SimpleHeader } from 'iqm-framework';\n\nimport { useInitData } from 'utils/useInitData';\n\nimport styles from './index.module.scss';\n\nexport const AccessPage = () => {\n const { data: initData } = useInitData({});\n const ihpOwner = initData?.ihpOwner;\n return (\n <>\n \n {initData && (\n
\n \n \n Login\n \n \n
\n )}\n \n );\n};\n","import { NoMatchPage } from 'pages/NoMatchPage';\n\nexport type Route = {\n path: string;\n component: React.ComponentType;\n exact?: boolean;\n private?: boolean;\n};\n\nexport const fallbackRoute: Route = {\n path: '*',\n exact: true,\n component: NoMatchPage,\n};\n\nexport const routes: Route[] = [fallbackRoute];\n","import React from 'react';\nimport { Redirect } from 'react-router-dom';\n\nimport { BASE_URL } from 'config';\n\nexport const NoMatchPage = () => ;\n","export const isProd = process.env.REACT_APP_ENVIRONMENT === 'production';\nexport const HEADER_TOKEN_NAME = 'x-iaa-api-token';\nexport const BASE_URL = '/';\n","import React from 'react';\n\nimport styles from './MainContent.module.scss';\n\ntype Props = {\n className?: string;\n children: React.ReactNode;\n};\n\nconst MainContentComponent = (props: Props) => {\n const { className, children } = props;\n\n return
{children}
;\n};\n\nMainContentComponent.defaultProps = {\n className: '',\n};\n\nexport const MainContent = MainContentComponent;\n","export const applicationConstants = {\n TOGGLE__SIDEBAR_MENU: 'TOGGLE__SIDEBAR_MENU',\n};\n","import { createAction } from 'utils/actions';\nimport { applicationConstants } from './constants';\n\nexport const applicationActions = {\n toggleSidebarMenu() {\n return createAction(applicationConstants.TOGGLE__SIDEBAR_MENU);\n },\n};\n\nexport interface ToggleSidebarMenu {\n toggleSidebarMenu: () => void;\n}\n","import React, { PureComponent } from 'react';\nimport { connect } from 'react-redux';\nimport { Layout as FactorLayout } from 'factor';\n\nimport { applicationActions } from '../../store/app/actions';\nimport { AppState } from '../../store';\n\ninterface Props {\n children: React.ReactNode;\n isSidebarOpened: boolean;\n toggleSidebar: () => void;\n sidebar: React.ReactNode;\n}\n\nclass LayoutComponent extends PureComponent {\n render() {\n const { children, isSidebarOpened, toggleSidebar, sidebar } = this.props;\n\n return (\n \n {children}\n \n );\n }\n}\n\nconst mapState = (state: AppState) => ({\n isSidebarOpened: state.app.sidebarOpened,\n});\n\nconst mapActions = {\n toggleSidebar: applicationActions.toggleSidebarMenu,\n};\n\nexport const Layout = connect(mapState, mapActions)(LayoutComponent);\n","import React from 'react';\n\nimport { MainContent } from '../MainContent';\nimport { Layout } from '.';\n\nimport styles from './index.module.scss';\n\ninterface Props {\n children: React.ReactNode;\n}\n\nexport const Scene = (props: Props) => {\n const { children } = props;\n\n return (\n {children}}>\n \n
All Conversions (45)
\n
\n
\n );\n};\n","import React from 'react';\nimport { Switch } from 'react-router-dom';\nimport { DataDogRumRoute } from 'iqm-framework';\n\nimport { routes, Route as RouteType } from '../../routes';\nimport { Scene } from '../Layout/Scene';\n\nexport const PrivateRoutes = () => {\n const routePaths = routes.map((route: RouteType) => route.path);\n return (\n \n \n \n \n {routes.map((route) => (\n \n ))}\n \n \n \n \n );\n};\n","import React, { useEffect, useState } from 'react';\nimport { connect } from 'react-redux';\nimport { Redirect } from 'react-router-dom';\nimport { IQMRouter, DataDogRumRoute, bootIntercomFn } from 'iqm-framework';\n\nimport { authActions, Authorized, Logout } from 'store/auth/actions';\nimport { User } from 'models/User';\nimport { createIqmInstance, API } from 'api';\nimport { Navbar } from 'components/Navbar';\nimport { ResetPasswordEmailPage } from 'pages/ResetPasswordEmailPage';\nimport { ResetPasswordPage } from 'pages/ResetPasswordPage';\nimport { InviteCustomerPage } from 'pages/InviteCustomerPage';\nimport { InviteExpiredPage } from 'pages/InviteExpiredPage';\nimport { LoginForm } from 'pages/LoginPage';\nimport { DefaultPage } from 'pages/DefaultPage';\nimport { CreateWorkspacePage } from 'pages/CreateWorkspacePage';\nimport { ErrorPage } from 'pages/ErrorPage';\nimport { CreatePasswordPage } from 'pages/CreatePasswordPage';\nimport { EnterWorkspacePage } from 'pages/EnterWorkspacePage';\nimport { FindMyWorkspacePage } from 'pages/FindMyWorkspacePage';\nimport { AccessPage } from 'pages/AccessPage';\nimport { PrivateRoutes } from '../PrivateRoutes';\n\nimport './App.scss';\n\n/* eslint-disable */\ndeclare global {\n interface Window {\n Intercom: any;\n intercomSettings: any;\n }\n}\n/* eslint-enable */\n\ntype Props = Authorized & Logout;\n\nconst AppComponent = (props: Props) => {\n const { authorized, logout } = props;\n const [intercomId, setIntercomId] = useState('');\n\n const onSuccessLogin = (data: User) => {\n authorized(data);\n createIqmInstance({\n apiToken: data.apiToken,\n domainURL: data.domainURL,\n });\n };\n\n const setIntercom = async () => {\n try {\n const data = await API.Customer.getIntercomId();\n setIntercomId(data.data?.chatbotAppId);\n } catch (e) {\n // eslint-disable-next-line\n console.log('intercom:', e);\n }\n };\n\n useEffect(() => {\n setIntercom();\n window.onstorage = null;\n }, []);\n\n useEffect(() => {\n if (intercomId) {\n bootIntercomFn(intercomId);\n }\n }, [intercomId]);\n\n useEffect(() => {\n if (intercomId) {\n try {\n // eslint-disable-next-line\n window?.Intercom?.('boot', {\n app_id: intercomId,\n });\n } catch (e) {\n // eslint-disable-next-line\n console.log('error initalizing intercom', e);\n }\n }\n return () => {\n // eslint-disable-next-line\n window.Intercom?.('shutdown');\n };\n }, [intercomId]);\n\n const onLogout = () => logout();\n\n return (\n (\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )}\n >\n \n \n \n );\n};\n\nconst mapAction = {\n authorized: authActions.authorized,\n logout: authActions.logout,\n};\n\nexport const App = connect(null, mapAction)(AppComponent);\n","import { reducerFromMap } from 'utils/actions';\nimport { Action } from 'models/Action';\nimport { User } from 'models/User';\nimport { authConstants } from './constants';\n\nexport interface AuthState {\n user: User | null;\n authorized: boolean;\n}\n\nexport const defaultAuthState: AuthState = {\n user: null,\n authorized: false,\n};\n\nfunction loginSuccess(state: AuthState, action: Action): AuthState {\n return {\n ...state,\n user: action.payload,\n authorized: true,\n };\n}\n\nfunction logout(): AuthState {\n return {\n ...defaultAuthState,\n };\n}\n\nconst reducer = reducerFromMap(defaultAuthState, {\n [authConstants.LOGIN_SUCCESS]: loginSuccess,\n [authConstants.LOGOUT]: logout,\n});\n\nexport const auth = (state: AuthState = defaultAuthState, action: Action) =>\n reducer(state, action);\n","import { reducerFromMap } from 'utils/actions';\nimport { Action } from 'models/Action';\nimport { applicationConstants } from './constants';\n\nexport interface ApplicationState {\n sidebarOpened: boolean;\n isOpenExchangeMode: boolean;\n}\n\nconst defaultApplicationState: ApplicationState = {\n sidebarOpened: true,\n isOpenExchangeMode: true,\n};\n\nfunction toggleSidebar(state: ApplicationState): ApplicationState {\n return {\n ...state,\n sidebarOpened: !state.sidebarOpened,\n };\n}\n\nconst reducer = reducerFromMap(defaultApplicationState, {\n [applicationConstants.TOGGLE__SIDEBAR_MENU]: toggleSidebar,\n});\n\nexport const app = (state: ApplicationState = defaultApplicationState, action: Action) =>\n reducer(state, action);\n","import { applyMiddleware, combineReducers, createStore, compose } from 'redux';\nimport thunk from 'redux-thunk';\n\nimport { auth, AuthState } from './auth/reducer';\nimport { app, ApplicationState } from './app/reducer';\n\nexport interface AppState {\n auth: AuthState;\n app: ApplicationState;\n}\n\nconst reducer = combineReducers({\n auth,\n app,\n});\n\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nconst composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const store = createStore(\n reducer,\n composeEnhancers(applyMiddleware(thunk)),\n);\n","/* eslint-disable */\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://bit.ly/CRA-PWA\n\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(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/,\n ),\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(process.env.PUBLIC_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 = `${process.env.PUBLIC_URL}/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://bit.ly/CRA-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.onupdatefound = () => {\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://bit.ly/CRA-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 (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\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(\n 'No internet connection found. App is running in offline mode.',\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then((registration) => {\n registration.unregister();\n });\n }\n}\n","export const logWarningXSS = () => {\n const styleHeading = 'font-size: 38px; color: red; text-shadow: 1px 1px 1px black;';\n const styleText =\n 'font-size: 30px; color: red; text-shadow: 1px 1px 1px black; background: yellow;';\n /* eslint-disable-next-line */\n console.log(\n `%c⚠️ WARNING ⚠️\\n` +\n `%cPlease do not copy and paste anything here; ` +\n `you might become a victim of a hacker attack. ` +\n `Learn more about Self-XSS: https://en.wikipedia.org/wiki/Self-XSS`,\n styleHeading,\n styleText,\n );\n};\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { Provider } from 'react-redux';\nimport { IntlProvider } from 'react-intl';\nimport { initDataDog, ORIGIN_URL } from 'iqm-framework';\n\nimport { logWarningXSS } from 'utils/log';\nimport { createAuthInstance } from 'api';\n\nimport messagesRu from 'translations/ru.json';\nimport messagesEn from 'translations/en.json';\n\nimport { App } from './components/App';\nimport { store } from './store';\nimport * as serviceWorker from './serviceWorker';\nimport { isProd } from './config';\n\nif (process.env.NODE_ENV === 'production') {\n logWarningXSS();\n}\n\nif (isProd) {\n initDataDog('auth-pages', 'prod', {\n allowedTracingOrigins: [ORIGIN_URL],\n trackViewsManually: true,\n });\n} else {\n initDataDog('auth-pages', 'stage', {\n allowedTracingOrigins: [ORIGIN_URL],\n trackViewsManually: true,\n });\n}\n\ncreateAuthInstance();\n\nconst language: string = navigator.language.split(/[-_]/)[0];\n\ninterface IMessages {\n [key: string]: {\n [key: string]: string;\n };\n}\n\nconst messages: IMessages = {\n ru: messagesRu,\n en: messagesEn,\n};\n\nReactDOM.render(\n \n \n \n \n ,\n document.getElementById('root'),\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://bit.ly/CRA-PWA\nserviceWorker.unregister();\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"passwordField\":\"CreatePasswordPage_passwordField__1ew5c\",\"passwordNote\":\"CreatePasswordPage_passwordNote__cW3-h\",\"passwordHints\":\"CreatePasswordPage_passwordHints__3GoE-\",\"hints\":\"CreatePasswordPage_hints__2mUZI\",\"hint\":\"CreatePasswordPage_hint__3Jc-z\",\"green\":\"CreatePasswordPage_green__3cCEv\",\"red\":\"CreatePasswordPage_red__SIP63\",\"hover-ripples\":\"CreatePasswordPage_hover-ripples__37O8s\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"passwordField\":\"ResetPasswordPage_passwordField__2pWDP\",\"hints\":\"ResetPasswordPage_hints__73Wqs\",\"hint\":\"ResetPasswordPage_hint__3322J\",\"green\":\"ResetPasswordPage_green__1S5Jq\",\"red\":\"ResetPasswordPage_red__27MxI\",\"hover-ripples\":\"ResetPasswordPage_hover-ripples__1WC1h\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"buttonWrapper\":\"AccessPage_buttonWrapper__2yn0B\",\"ihpLoginBtn\":\"AccessPage_ihpLoginBtn__1Bpkl\",\"nonIhpLoginBtn\":\"AccessPage_nonIhpLoginBtn__13fR4\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"passwordField\":\"PasswordField_passwordField__25-98\",\"togglePasswordVisibilityIcon\":\"PasswordField_togglePasswordVisibilityIcon__B8THL\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"workspaceURLField\":\"CreateWorkspacePage_workspaceURLField__2JYRt\",\"suffix\":\"CreateWorkspacePage_suffix__3JDNA\",\"hover-ripples\":\"CreateWorkspacePage_hover-ripples__3h59z\"};"],"sourceRoot":""}