{"version":3,"file":"AuthPage-jg3kSzNZ.js","sources":["../../src/images/auth-background.webp","../../src/components/pages/Auth/AuthPageHeader.tsx","../../src/components/pages/Auth/FormSection/FormContent/FormContentElements/Form.tsx","../../src/components/pages/Auth/FormSection/FormContent/FormContentElements/SubmitButton.tsx","../../src/components/pages/Auth/FormSection/FormContent/CreateAccountFormContent/CreateAccountForm.tsx","../../src/components/pages/Auth/FormSection/FormContent/FormContentElements/FormContentHeader.tsx","../../src/components/pages/Auth/FormSection/FormContent/FormContentElements/FormContentFooter.tsx","../../src/components/pages/Auth/FormSection/FormContent/CreateAccountFormContent/SignupsOpen/useSetSessionValues/useSetSessionValues.ts","../../src/components/pages/Auth/FormSection/FormContent/CreateAccountFormContent/SignupsOpen/SignupsOpen.tsx","../../src/components/pages/Auth/FormSection/FormContent/FormContentElements/Subtitle.tsx","../../src/components/pages/Auth/FormSection/FormContent/CreateAccountFormContent/SignupsClosed.tsx","../../src/components/pages/Auth/FormSection/FormContent/CreateAccountFormContent/CreateAccountFormContent.tsx","../../src/components/pages/Auth/FormSection/FormContent/ForgotPasswordFormContent/ForgotPasswordForm.tsx","../../src/components/pages/Auth/FormSection/FormContent/ForgotPasswordFormContent/ForgotPasswordFormContent.tsx","../../src/hooks/queries/useGetLoginQuery.ts","../../src/components/pages/Auth/FormSection/FormContent/LoginFormContent/LoginForm.tsx","../../src/components/pages/Auth/FormSection/FormContent/LoginFormContent/LoginFormContent.tsx","../../src/components/pages/Auth/FormSection/FormContent/ResetPasswordFormContent/ResetPasswordForm.tsx","../../src/components/pages/Auth/FormSection/FormContent/ResetPasswordFormContent/ResetPasswordFormContent.tsx","../../src/components/pages/Auth/FormSection/FormContent/VerifyEmailFormContent.tsx","../../src/components/pages/Auth/FormSection/FormSection.tsx","../../src/utils/getRandomIntegerInInterval.ts","../../src/components/pages/Auth/WelcomeSection/useWelcomeMessageGenerator.ts","../../src/components/pages/Auth/WelcomeSection/WelcomeSection.tsx","../../src/components/pages/Auth/AuthPage.tsx"],"sourcesContent":["export default \"__VITE_ASSET__D7vFde2t__\"","import styled from '@emotion/styled';\nimport { AppBar, Container, Toolbar } from '@mui/material';\nimport { FunctionComponent } from 'react';\n\nimport { isCurrentAppTheme } from 'appConfig';\nimport { ReactComponent as AppLogoSVG } from 'images/app-logo.svg';\nimport { ReactComponent as AppLogoAltSVG } from 'images/app-logo-alt.svg';\n\nconst isDefaultAppTheme = isCurrentAppTheme('default');\n\nconst StyledAppLogo = styled(isDefaultAppTheme ? AppLogoSVG : AppLogoAltSVG)`\n width: auto;\n display: flex;\n height: 3.25rem;\n\n ${({ theme }) => theme.breakpoints.down('md')} {\n height: 2.5rem;\n }\n`;\n\nexport const AuthPageHeader: FunctionComponent = () => {\n const backgroundColor = isDefaultAppTheme ? 'transparent' : 'background.paper';\n\n return (\n \n \n \n \n \n \n \n );\n};\n","import styled from '@emotion/styled';\nimport { Form } from 'formik';\n\nexport const StyledForm = styled(Form)`\n display: flex;\n flex-direction: column;\n align-items: center;\n margin-top: 0.5rem;\n`;\n","import styled from '@emotion/styled';\n\nimport { ProgressButton, ProgressButtonProps } from 'shared/ProgressButtons/ProgressButton';\n\nexport const SubmitButton = styled((props: ProgressButtonProps) => (\n \n))`\n margin-top: 1rem;\n margin-bottom: 0.5rem;\n min-width: 15rem;\n\n ${({ theme }) => theme.breakpoints.down('sm')} {\n width: 100%;\n }\n`;\n","import { useMutation } from '@apollo/client';\nimport { gql } from '__generated__/gql';\nimport { ChangeEvent, FunctionComponent, useState, ReactNode } from 'react';\nimport styled from '@emotion/styled';\nimport { Email as EmailIcon } from '@mui/icons-material';\n\nimport { Formik } from 'formik';\nimport { useSnackbar } from 'notistack';\nimport { useNavigate } from 'react-router-dom';\nimport { APIErrorCode } from 'utils/APIErrorCodes/APIErrorCode';\nimport { PasswordPolicy } from 'shared/PasswordPolicy/PasswordPolicy';\n\nimport { config } from 'appConfig';\nimport { logError } from 'utils/logging';\nimport { useUserTracking } from 'userTracking/useUserTracking';\nimport { FormValues } from 'hooks/useFormUtils';\nimport { PasswordField } from 'shared/PasswordField';\nimport { PasswordErrors } from 'shared/PasswordErrors';\nimport { useExtendedIntl } from 'hooks/useExtendedIntl';\nimport { validatePassword } from 'utils/passwordValidation';\nimport { useSearchParamsDictionary, sanitizeToSingleValue } from 'utils/searchParams';\nimport { useDefaultOnError } from 'hooks/useDefaultOnError';\nimport { isError } from 'typeDeclarations/typeGuards';\nimport { StyledForm } from '../FormContentElements/Form';\nimport { SubmitButton } from '../FormContentElements/SubmitButton';\n\nimport { Link, Checkbox, TextField, Typography, InputAdornment, FormControlLabel, Alert } from '@mui/material';\n\nconst REFERRAL_SEARCH_PARAM = 'referral';\nconst EMAIL_SEARCH_PARAM = 'email';\nconst NAME_SEARCH_PARAM = 'name';\n\nconst StyledFormControlLabel = styled(FormControlLabel)`\n display: flex;\n align-self: flex-start;\n`;\n\nconst StyledPasswordPolicy = styled(PasswordPolicy)`\n width: 100%;\n margin-top: 1rem;\n`;\n\nconst StyledPasswordErrors = styled(PasswordErrors)`\n width: 100%;\n margin-bottom: 0.5rem;\n`;\n\nconst SIGNUP_MUTATION = gql(/* GraphQL */ `\n mutation signupMutation($input: SignupInput!) {\n signup(input: $input) {\n clientMutationId\n }\n }\n`);\n\ninterface SignupMutationInput {\n email: string;\n password: string;\n name?: string | null;\n referredBy?: string | null;\n}\n\ninterface SignupMutationVariables {\n input: SignupMutationInput;\n}\n\ninterface CreateAccountFormValues extends FormValues {\n email: string;\n password: string;\n repeatPassword: string;\n acceptTermsOfUse: boolean;\n}\n\nexport const CreateAccountForm: FunctionComponent = () => {\n const navigate = useNavigate();\n const onError = useDefaultOnError();\n const { enqueueSnackbar } = useSnackbar();\n const { captureEvent, identifyUser } = useUserTracking();\n const { formatMessage, formatAPIErrorCode } = useExtendedIntl();\n\n const [emailMutationError, setEmailMutationError] = useState(null);\n const [passwordMutationError, setPasswordMutationError] = useState(null);\n\n const searchParams = useSearchParamsDictionary();\n const sanitizedName = sanitizeToSingleValue(searchParams[NAME_SEARCH_PARAM]);\n const sanitizedEmail = sanitizeToSingleValue(searchParams[EMAIL_SEARCH_PARAM]);\n const sanitizedReferralId = sanitizeToSingleValue(searchParams[REFERRAL_SEARCH_PARAM]);\n\n const [signup, { client, error: mutationError }] = useMutation(SIGNUP_MUTATION, {\n onCompleted: async () => {\n await identifyUser();\n captureEvent({ eventName: 'signUp' });\n\n client\n .resetStore()\n .then(() => navigate('/', { replace: true }))\n .catch((err) => {\n if (isError(err)) {\n logError(err);\n }\n\n window.location.href = '/';\n });\n },\n onError: (apolloError) =>\n onError(apolloError, {\n errorHandlers: {\n [APIErrorCode.PasswordTooShort]: () => {},\n [APIErrorCode.PasswordTooCommon]: () => {},\n [APIErrorCode.PasswordEntirelyNumeric]: () => {},\n [APIErrorCode.PasswordSimilarWithUserData]: () => {},\n [APIErrorCode.EmailAlreadyExists]: (data) => {\n const errorMessage = formatAPIErrorCode({\n data,\n errorCode: APIErrorCode.EmailAlreadyExists,\n });\n\n setEmailMutationError(errorMessage);\n },\n [APIErrorCode.AlreadyLoggedIn]: (data) => {\n enqueueSnackbar(formatAPIErrorCode({ errorCode: APIErrorCode.AlreadyLoggedIn, data }), { variant: 'info' });\n\n navigate('/', { replace: true });\n },\n },\n }),\n });\n\n return (\n \n validateOnBlur={false}\n validateOnChange={false}\n initialValues={{\n password: '',\n repeatPassword: '',\n acceptTermsOfUse: false,\n email: sanitizedEmail ?? '',\n }}\n onSubmit={({ email, password }) => {\n // clear the errors states\n setPasswordMutationError(null);\n setEmailMutationError(null);\n\n return signup({\n variables: {\n input: {\n email,\n password,\n referredBy: sanitizedReferralId ?? null,\n name: sanitizedName ?? null,\n },\n },\n });\n }}\n validate={({ password, repeatPassword }) => {\n const errors: PartialRecord = {};\n\n if (password && repeatPassword && password !== repeatPassword) {\n errors.password = formatMessage({ id: 'error.password.passwords-do-not-match' });\n errors.repeatPassword = formatMessage({ id: 'error.password.passwords-do-not-match' });\n } else if (!validatePassword(password)) {\n errors.password = formatMessage({ id: 'error.password.invalid-password' });\n errors.repeatPassword = formatMessage({ id: 'error.password.invalid-password' });\n }\n\n return errors;\n }}\n >\n {({ values, errors, setErrors, handleBlur, isSubmitting, handleChange: defaultHandleChange }) => {\n const handleChange = (e: ChangeEvent) => {\n defaultHandleChange(e);\n setErrors({ ...errors, [e.target.name]: undefined });\n };\n\n return (\n \n {errors.generic && {errors.generic}}\n \n \n \n ),\n }}\n />\n \n \n \n \n }\n label={\n \n {formatMessage(\n { id: 'auth-page.form-section.create-account.form.checkbox.label' },\n {\n a1: (parts: ReactNode[]) => (\n \n {parts}\n \n ),\n a2: (parts: ReactNode[]) => (\n \n {parts}\n \n ),\n },\n )}\n \n }\n />\n \n {formatMessage({ id: 'auth-page.form-section.create-account.signups-open.form.submit-button' })}\n \n \n );\n }}\n \n );\n};\n","import { Typography } from '@mui/material';\nimport { FunctionComponent, ReactNode } from 'react';\n\nexport const FormContentHeader: FunctionComponent<{ children: ReactNode }> = ({ children }) => (\n \n {children}\n \n);\n","import { Typography } from '@mui/material';\nimport styled from '@emotion/styled';\nimport { FunctionComponent, ReactNode } from 'react';\n\nconst StyledFooter = styled.footer`\n width: 100%;\n margin-top: 2rem;\n`;\n\nexport const FormContentFooter: FunctionComponent<{ children: ReactNode }> = ({ children }) => (\n \n \n {children}\n \n \n);\n","import { useMutation, gql } from '@apollo/client';\n\nimport { useEffect } from 'react';\nimport { getObjectKeys } from 'utils/getObjectKeys';\nimport { useSearchParamsDictionary, sanitizeToSingleValue } from 'utils/searchParams';\n\n// refer to https://ga-dev-tools.appspot.com/campaign-url-builder/\nconst CAMPAIGN_SOURCE_SEARCH_PARAM = 'utm_source';\nconst CAMPAIGN_MEDIUM_SEARCH_PARAM = 'utm_medium';\nconst CAMPAIGN_NAME_SEARCH_PARAM = 'utm_campaign';\nconst CAMPAIGN_TERM_SEARCH_PARAM = 'utm_term';\nconst CAMPAIGN_CONTENT_SEARCH_PARAM = 'utm_content';\n\n// google click identifier\nconst GCLID_SEARCH_PARAM = 'gclid';\n\ninterface UTMExtra {\n utmTerm?: string | null;\n utmContent?: string | null;\n}\n\ninterface UTMValues {\n utmSource?: string | null;\n utmMedium?: string | null;\n utmCampaign?: string | null;\n}\n\ntype TrackingTerm = keyof UTMExtra | keyof UTMValues | 'gclid';\n\ninterface SetSessionValuesInput extends UTMValues {\n /**\n * JSON.stringify'ed object from UTMExtra\n */\n utmExtra?: string | null;\n gclid?: string | null;\n}\n\nexport interface SetSessionValuesMutationVariables {\n input: SetSessionValuesInput;\n}\n\nexport const SET_SESSION_VALUES_MUTATION = gql(/* GraphQL */ `\n mutation setSessionValuesMutation($input: SetSessionValuesInput!) {\n setSessionValues(input: $input) {\n clientMutationId\n }\n }\n`);\n\nexport function useSetSessionValues(): void {\n const [setSessionValues] = useMutation(SET_SESSION_VALUES_MUTATION, {\n fetchPolicy: 'no-cache', // we don't care about this mutation's data\n });\n\n const searchParams = useSearchParamsDictionary();\n\n useEffect(() => {\n const termsToSearchParamsMap: Record = {\n gclid: GCLID_SEARCH_PARAM,\n utmSource: CAMPAIGN_SOURCE_SEARCH_PARAM,\n utmMedium: CAMPAIGN_MEDIUM_SEARCH_PARAM,\n utmCampaign: CAMPAIGN_NAME_SEARCH_PARAM,\n utmTerm: CAMPAIGN_TERM_SEARCH_PARAM,\n utmContent: CAMPAIGN_CONTENT_SEARCH_PARAM,\n };\n\n // gclid and UTMValues go here\n const input: SetSessionValuesInput = {};\n // any other terms go here\n const utmExtra: UTMExtra = {};\n\n getObjectKeys(termsToSearchParamsMap).forEach((term) => {\n const param = termsToSearchParamsMap[term];\n const value = sanitizeToSingleValue(searchParams[param]);\n\n if (!value) {\n return;\n }\n\n if (term === 'utmTerm' || term === 'utmContent') {\n utmExtra[term] = value;\n } else {\n input[term] = value;\n }\n });\n\n if (Object.keys(utmExtra).length > 0) {\n input.utmExtra = JSON.stringify(utmExtra);\n }\n\n // only mutate if we have anything to send\n if (Object.keys(input).length > 0) {\n setSessionValues({ variables: { input } });\n }\n }, [searchParams, setSessionValues]);\n}\n","import { FunctionComponent, ReactNode } from 'react';\nimport { useExtendedIntl } from 'hooks/useExtendedIntl';\nimport { Link as RouterLink } from 'react-router-dom';\nimport styled from '@emotion/styled';\nimport { CreateAccountForm } from '../CreateAccountForm';\n\nimport { TextDivider } from 'shared/TextDivider';\nimport { FormContentHeader } from '../../FormContentElements/FormContentHeader';\nimport { FormContentFooter } from '../../FormContentElements/FormContentFooter';\nimport { useSetSessionValues } from './useSetSessionValues/useSetSessionValues';\nimport { SocialProviders } from '../../SocialProviders';\nimport { PartnersThemeDecider } from 'shared/PartnersThemeDecider';\nimport { Link } from '@mui/material';\n\nconst StyledTextDivider = styled(TextDivider)`\n height: 4rem;\n`;\n\nexport const SignupsOpen: FunctionComponent = () => {\n const { formatMessage } = useExtendedIntl();\n\n useSetSessionValues();\n\n return (\n <>\n \n {formatMessage({ id: 'auth-page.form-section.create-account.signups-open.header' })}\n \n \n \n \n }\n />\n \n {formatMessage(\n { id: 'auth-page.form-section.create-account.signups-open.footer' },\n {\n a: (parts: ReactNode[]) => (\n \n {parts}\n \n ),\n },\n )}\n \n \n );\n};\n","import styled from '@emotion/styled';\nimport { Typography } from '@mui/material';\nimport { FunctionComponent, ReactNode } from 'react';\n\nimport { useIsMobileResolution } from 'hooks/useIsMobileResolution';\n\nconst StyledTypography = styled(Typography)`\n margin-top: 1rem;\n`;\n\nexport const Subtitle: FunctionComponent<{ children: ReactNode }> = ({ children }) => {\n const isMobile = useIsMobileResolution();\n\n return (\n \n {children}\n \n );\n};\n","import { FunctionComponent } from 'react';\nimport { useExtendedIntl } from 'hooks/useExtendedIntl';\nimport styled from '@emotion/styled';\nimport { ReactComponent as FacebookIcon } from 'images/facebook-circle.svg';\nimport { ReactComponent as LinkedInIcon } from 'images/linkedin-circle.svg';\nimport { ReactComponent as TwitterIcon } from 'images/twitter-circle.svg';\nimport { FormContentHeader } from '../FormContentElements/FormContentHeader';\nimport { Subtitle } from '../FormContentElements/Subtitle';\n\nimport { Link, SvgIcon } from '@mui/material';\n\nconst FACEBOOK_URL = 'https://www.facebook.com/leadzaifb';\nconst LINKEDIN_URL = 'https://www.linkedin.com/company/leadzai';\nconst TWITTER_URL = 'https://twitter.com/leadzai';\n\nconst SOCIAL_PROVIDER_ICONS_DICT = {\n twitter: TwitterIcon,\n facebook: FacebookIcon,\n linkedin: LinkedInIcon,\n};\n\nconst StyledLink = styled(Link)`\n height: 3rem;\n width: 3rem;\n\n svg {\n width: inherit;\n height: inherit;\n }\n`;\n\nconst SocialAccountsWrapper = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n width: 100%;\n padding: 0rem 3rem;\n margin-top: 1rem;\n\n ${({ theme }) => theme.breakpoints.down('lg')} {\n padding: 0rem 2rem;\n }\n\n ${({ theme }) => theme.breakpoints.down('md')} {\n justify-content: space-evenly;\n }\n\n ${({ theme }) => theme.breakpoints.down('sm')} {\n justify-content: space-between;\n }\n`;\n\nexport const SignupsClosed: FunctionComponent = () => {\n const { formatMessage } = useExtendedIntl();\n\n return (\n <>\n \n {formatMessage({ id: 'auth-page.form-section.create-account.signups-closed.header' })}\n \n {formatMessage({ id: 'auth-page.form-section.create-account.signups-closed.subtitle1' })}\n {formatMessage({ id: 'auth-page.form-section.create-account.signups-closed.subtitle2' })}\n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n","import { FunctionComponent } from 'react';\nimport { useQuery, gql } from '@apollo/client';\n\nimport { ErrorMessage } from 'shared/ErrorMessage';\nimport { SignupsOpen } from './SignupsOpen/SignupsOpen';\nimport { SignupsClosed } from './SignupsClosed';\n\nconst IS_SIGNUP_OPEN_QUERY = gql(/* GraphQL */ `\n query isSignupOpenQuery {\n isSignupOpen\n }\n`);\n\ninterface IsSignupOpenQueryData {\n isSignupOpen: boolean;\n}\n\nexport const CreateAccountFormContent: FunctionComponent = () => {\n const { data, loading, error } = useQuery(IS_SIGNUP_OPEN_QUERY);\n\n if (loading) {\n return null;\n }\n\n if (error || !data) {\n return ;\n }\n\n const { isSignupOpen } = data;\n\n if (!isSignupOpen) {\n return ;\n }\n\n return ;\n};\n","import { FunctionComponent, useState } from 'react';\nimport { useMutation } from '@apollo/client';\nimport { gql } from '__generated__/gql';\n\nimport { Formik } from 'formik';\nimport { useNavigate } from 'react-router-dom';\nimport { Email as EmailIcon } from '@mui/icons-material';\n\nimport { useExtendedIntl } from 'hooks/useExtendedIntl';\nimport { APIErrorCode } from 'utils/APIErrorCodes/APIErrorCode';\n\nimport { FormValues } from 'hooks/useFormUtils';\nimport { useDefaultOnError } from 'hooks/useDefaultOnError';\nimport { StyledForm } from '../FormContentElements/Form';\nimport { SubmitButton } from '../FormContentElements/SubmitButton';\n\nimport { TextField, InputAdornment, Alert } from '@mui/material';\n\nconst REQUEST_PASSWORD_RESET_MUTATION = gql(/* GraphQL */ `\n mutation requestPasswordResetMutation($input: RequestPasswordResetEmailInput!) {\n requestPasswordResetEmail(input: $input) {\n clientMutationId\n }\n }\n`);\n\ninterface RequestPasswordResetMutationInput {\n email: string;\n}\n\ninterface RequestPasswordResetMutationVariables {\n input: RequestPasswordResetMutationInput;\n}\n\ninterface ForgotPasswordFormValues extends FormValues {\n email: string;\n}\n\nexport const ForgotPasswordForm: FunctionComponent = () => {\n const onError = useDefaultOnError();\n const { formatMessage, formatAPIErrorCode } = useExtendedIntl();\n\n const [emailError, setEmailError] = useState(null);\n\n const navigate = useNavigate();\n\n const [requestPasswordReset] = useMutation(\n REQUEST_PASSWORD_RESET_MUTATION,\n {\n onCompleted: () => {\n navigate('/verify-email');\n },\n onError: (apolloError) =>\n onError(apolloError, {\n errorHandlers: {\n [APIErrorCode.EmailNotFound]: (data) => {\n setEmailError(\n formatAPIErrorCode({\n data,\n errorCode: APIErrorCode.EmailNotFound,\n }),\n );\n },\n [APIErrorCode.CantRequestPasswordForAnotherUser]: (data) => {\n setEmailError(\n formatAPIErrorCode({\n data,\n errorCode: APIErrorCode.CantRequestPasswordForAnotherUser,\n }),\n );\n },\n },\n }),\n },\n );\n\n return (\n \n initialValues={{\n email: '',\n }}\n onSubmit={(values) => {\n setEmailError(null);\n\n return requestPasswordReset({\n variables: {\n input: values,\n },\n });\n }}\n >\n {({ values, errors, handleChange, handleBlur, isSubmitting }) => (\n \n {errors.generic && {errors.generic}}\n \n \n \n ),\n }}\n />\n \n {formatMessage({ id: 'auth-page.form-section.forgot-password.form.submit-button' })}\n \n \n )}\n \n );\n};\n","import { FunctionComponent, ReactNode } from 'react';\nimport { Link as RouterLink } from 'react-router-dom';\nimport { useExtendedIntl } from 'hooks/useExtendedIntl';\nimport { FormContentHeader } from '../FormContentElements/FormContentHeader';\n\nimport { FormContentFooter } from '../FormContentElements/FormContentFooter';\nimport { Subtitle } from '../FormContentElements/Subtitle';\nimport { ForgotPasswordForm } from './ForgotPasswordForm';\n\nimport { Link } from '@mui/material';\n\nexport const ForgotPasswordFormContent: FunctionComponent = () => {\n const { formatMessage } = useExtendedIntl();\n\n return (\n <>\n {formatMessage({ id: 'auth-page.form-section.forgot-password.header' })}\n {formatMessage({ id: 'auth-page.form-section.forgot-password.subtitle' })}\n \n \n {formatMessage(\n { id: 'auth-page.form-section.forgot-password.footer' },\n {\n a: (parts: ReactNode[]) => (\n \n {parts}\n \n ),\n },\n )}\n \n \n );\n};\n","import { gql } from '__generated__/gql';\n\n/**\n * @author bra\n * if for some reason you decide to change the mutation's name: 'loginMutation'\n * don't forget to check/change the 'link.ts' file where this condition is being employed:\n * 'operation.operationName !== \"loginMutation\"'\n */\nexport const LOGIN_MUTATION = gql(/* GraphQL */ `\n mutation loginMutation($input: LoginInput!) {\n login(input: $input) {\n clientMutationId\n }\n }\n`);\n","import { useMutation } from '@apollo/client';\nimport styled from '@emotion/styled';\nimport { Email as EmailIcon } from '@mui/icons-material';\nimport { Alert, Checkbox, FormControlLabel, InputAdornment, TextField, Typography } from '@mui/material';\nimport { Formik } from 'formik';\nimport { useSnackbar } from 'notistack';\nimport { FunctionComponent, useCallback, useState } from 'react';\nimport { Link, useLocation, useNavigate } from 'react-router-dom';\nimport { useAuth } from 'components/App/AuthProvider';\n\nimport { useDefaultOnError } from 'hooks/useDefaultOnError';\nimport { useExtendedIntl } from 'hooks/useExtendedIntl';\nimport { FormValues } from 'hooks/useFormUtils';\nimport { DEFAULT_LOCALE } from 'i18n/constants';\nimport { PasswordField } from 'shared/PasswordField';\nimport { APIErrorCode } from 'utils/APIErrorCodes/APIErrorCode';\nimport { StyledForm } from '../FormContentElements/Form';\nimport { SubmitButton } from '../FormContentElements/SubmitButton';\nimport { LOGIN_MUTATION } from 'hooks/queries/useGetLoginQuery';\n\nconst StyledFormControlLabel = styled(FormControlLabel)`\n align-self: flex-start;\n margin-top: 0.5rem;\n`;\n\nconst StyledLinkTypography = styled(Typography)`\n margin-top: 0.5rem;\n outline: none;\n` as typeof Typography;\n\ninterface LoginFormValues extends FormValues {\n email: string;\n password: string;\n rememberMe: boolean;\n}\n\ntype RouteState = {\n from?: {\n pathname: string;\n };\n};\n\nexport const LoginForm: FunctionComponent = () => {\n const auth = useAuth();\n const onError = useDefaultOnError();\n\n const navigate = useNavigate();\n const location = useLocation();\n\n const { enqueueSnackbar } = useSnackbar();\n const { formatMessage, formatAPIErrorCode } = useExtendedIntl();\n\n // TODO: Clean this up\n const [emailError, setEmailError] = useState(null);\n const [passwordError, setPasswordError] = useState(null);\n const [attemptedEmail, setAttemptedEmail] = useState('');\n\n const from = (location.state as RouteState)?.from?.pathname;\n\n const fetchSessionData = useCallback(async () => {\n const sessionData = await auth.fetchSessionData();\n\n if (!sessionData) {\n throw new Error('Failed to fetch session data');\n }\n\n const { user, team } = sessionData;\n\n auth.login(\n {\n team: {\n id: team.id,\n owner: team.owner,\n },\n user: {\n id: user.id,\n ddtId: user.ddtId,\n isStaff: user.isStaff,\n locale: user.locale ?? DEFAULT_LOCALE,\n theme: user.theme,\n },\n },\n from,\n );\n }, [auth, from]);\n\n const [login] = useMutation(LOGIN_MUTATION, {\n onCompleted: fetchSessionData,\n onError: (apolloError) => {\n return onError(apolloError, {\n errorHandlers: {\n [APIErrorCode.TooManyLoginAttempts]: () => {\n enqueueSnackbar(\n formatAPIErrorCode({ errorCode: APIErrorCode.TooManyLoginAttempts, data: { email: attemptedEmail } }),\n { variant: 'error' },\n );\n },\n // TODO: This should probably be handled by our AuthProvider\n [APIErrorCode.AlreadyLoggedIn]: (data) => {\n enqueueSnackbar(formatAPIErrorCode({ errorCode: APIErrorCode.AlreadyLoggedIn, data }), { variant: 'info' });\n\n // TODO: We need to fetch data for the current logged-in user and set it using login()\n navigate(from ?? '/', { replace: true });\n },\n },\n });\n },\n });\n\n const handleSubmit = (values: LoginFormValues) => {\n // clear the errors states\n setEmailError(null);\n setPasswordError(null);\n\n // need this to save which email the user attempted to login with\n // to show it when the TooManyLoginAttempts error occurs\n setAttemptedEmail(values.email);\n\n return login({\n variables: {\n input: values,\n },\n });\n };\n\n const initialValues = {\n email: '',\n password: '',\n rememberMe: false,\n };\n\n return (\n initialValues={initialValues} onSubmit={handleSubmit}>\n {({ values, errors, handleBlur, handleChange, isSubmitting }) => (\n \n {errors.generic && {errors.generic}}\n \n \n \n ),\n }}\n />\n \n }\n label={\n \n {formatMessage({ id: 'auth-page.form-section.login.form.checkbox.label' })}\n \n }\n />\n \n {formatMessage({ id: 'auth-page.form-section.login.form.submit-button' })}\n \n \n {formatMessage({ id: 'auth-page.form-section.login.form.forgot-password-link' })}\n \n \n )}\n \n );\n};\n","import { FunctionComponent, ReactNode } from 'react';\nimport styled from '@emotion/styled';\nimport { Link as RouterLink } from 'react-router-dom';\nimport { useExtendedIntl } from 'hooks/useExtendedIntl';\nimport { PartnersThemeDecider } from 'shared/PartnersThemeDecider';\n\nimport { TextDivider } from 'shared/TextDivider';\nimport { FormContentHeader } from '../FormContentElements/FormContentHeader';\nimport { FormContentFooter } from '../FormContentElements/FormContentFooter';\nimport { LoginForm } from './LoginForm';\nimport { SocialProviders } from '../SocialProviders';\nimport { Link } from '@mui/material';\n\nconst StyledTextDivider = styled(TextDivider)`\n height: 4rem;\n`;\n\nexport const LoginFormContent: FunctionComponent = () => {\n const { formatMessage } = useExtendedIntl();\n\n return (\n <>\n {formatMessage({ id: 'auth.login-to-your-acc' })}\n \n \n \n }\n />\n \n {formatMessage(\n { id: 'auth-page.form-section.login.footer' },\n {\n a: (parts: ReactNode[]) => (\n \n {parts}\n \n }\n leadzai={\n \n {parts}\n \n }\n fallback={\n \n {parts}\n \n }\n />\n ),\n },\n )}\n \n \n );\n};\n","import { ChangeEvent, FunctionComponent } from 'react';\nimport { useMutation, gql } from '@apollo/client';\n\nimport { Formik } from 'formik';\nimport styled from '@emotion/styled';\nimport { useSnackbar } from 'notistack';\nimport { Navigate } from 'react-router-dom';\n\nimport { useNavigate } from 'react-router-dom';\n\nimport { useExtendedIntl } from 'hooks/useExtendedIntl';\nimport { APIErrorCode } from 'utils/APIErrorCodes/APIErrorCode';\n\nimport { FormValues } from 'hooks/useFormUtils';\nimport { PasswordField } from 'shared/PasswordField';\nimport { PasswordErrors } from 'shared/PasswordErrors';\nimport { validatePassword } from 'utils/passwordValidation';\nimport { useDefaultOnError } from 'hooks/useDefaultOnError';\nimport { PasswordPolicy } from 'shared/PasswordPolicy/PasswordPolicy';\nimport { useSearchParamsDictionary, sanitizeToSingleValue } from 'utils/searchParams';\nimport { StyledForm } from '../FormContentElements/Form';\nimport { SubmitButton } from '../FormContentElements/SubmitButton';\nimport { Alert } from '@mui/material';\n\nconst StyledPasswordPolicy = styled(PasswordPolicy)`\n width: 100%;\n margin-top: 1rem;\n`;\n\nconst StyledPasswordErrors = styled(PasswordErrors)`\n width: 100%;\n margin-top: 1rem;\n margin-bottom: 0.5rem;\n`;\n\nconst RESET_PASSWORD_MUTATION = gql(/* GraphQL */ `\n mutation resetPasswordMutation($input: ResetPasswordWithRecoveryTokenInput!) {\n resetPasswordWithRecoveryToken(input: $input) {\n clientMutationId\n }\n }\n`);\n\ninterface ResetPasswordMutationInput {\n token: string;\n newPassword: string;\n}\n\ninterface ResetPasswordMutationVariables {\n input: ResetPasswordMutationInput;\n}\n\ninterface ResetPasswordFormValues extends FormValues {\n password: string;\n repeatPassword: string;\n}\n\nexport const ResetPasswordForm: FunctionComponent = () => {\n const navigate = useNavigate();\n const { enqueueSnackbar } = useSnackbar();\n const onError = useDefaultOnError();\n const { formatMessage } = useExtendedIntl();\n\n const { token } = useSearchParamsDictionary();\n const sanitizedToken = sanitizeToSingleValue(token);\n\n const [resetPassword, { error: mutationError }] = useMutation(\n RESET_PASSWORD_MUTATION,\n {\n onCompleted: () => {\n enqueueSnackbar(formatMessage({ id: 'auth-page.form-section.reset-password.form.on-completed' }), {\n variant: 'success',\n });\n\n navigate('/auth/login', { replace: true });\n },\n onError: (apolloError) =>\n onError(apolloError, {\n errorHandlers: {\n [APIErrorCode.PasswordTooShort]: () => {},\n [APIErrorCode.PasswordTooCommon]: () => {},\n [APIErrorCode.PasswordEntirelyNumeric]: () => {},\n [APIErrorCode.PasswordSimilarWithUserData]: () => {},\n },\n }),\n },\n );\n\n if (!sanitizedToken) {\n return ;\n }\n\n return (\n \n validateOnChange={false}\n validateOnBlur={false}\n initialValues={{\n password: '',\n repeatPassword: '',\n }}\n onSubmit={({ password }) =>\n resetPassword({\n variables: {\n input: {\n token: sanitizedToken,\n newPassword: password,\n },\n },\n })\n }\n validate={({ password, repeatPassword }) => {\n const errors: PartialRecord = {};\n\n if (password && repeatPassword && password !== repeatPassword) {\n errors.password = formatMessage({ id: 'error.password.passwords-do-not-match' });\n errors.repeatPassword = formatMessage({ id: 'error.password.passwords-do-not-match' });\n } else if (!validatePassword(password)) {\n errors.password = formatMessage({ id: 'error.password.invalid-password' });\n errors.repeatPassword = formatMessage({ id: 'error.password.invalid-password' });\n }\n\n return errors;\n }}\n >\n {({ values, errors, setErrors, handleBlur, isSubmitting, handleChange: defaultHandleChange }) => {\n const handleChange = (e: ChangeEvent) => {\n defaultHandleChange(e);\n setErrors({ ...errors, [e.target.name]: undefined });\n };\n\n return (\n \n {errors.generic && {errors.generic}}\n \n \n \n \n \n {formatMessage({ id: 'auth-page.form-section.reset-password.form.submit-button' })}\n \n \n );\n }}\n \n );\n};\n","import { FunctionComponent } from 'react';\nimport { useExtendedIntl } from 'hooks/useExtendedIntl';\n\nimport { FormContentHeader } from '../FormContentElements/FormContentHeader';\nimport { ResetPasswordForm } from './ResetPasswordForm';\n\nexport const ResetPasswordFormContent: FunctionComponent = () => {\n const { formatMessage } = useExtendedIntl();\n\n return (\n <>\n {formatMessage({ id: 'auth-page.form-section.reset-password.header' })}\n \n \n );\n};\n","import { FunctionComponent } from 'react';\nimport { Link as RouterLink } from 'react-router-dom';\nimport { useExtendedIntl } from 'hooks/useExtendedIntl';\nimport { FormContentFooter } from './FormContentElements/FormContentFooter';\nimport { FormContentHeader } from './FormContentElements/FormContentHeader';\nimport { Subtitle } from './FormContentElements/Subtitle';\nimport { Link } from '@mui/material';\n\nexport const VerifyEmailFormContent: FunctionComponent = () => {\n const { formatMessage } = useExtendedIntl();\n\n return (\n <>\n {formatMessage({ id: 'auth-page.form-section.verify-email.header' })}\n {formatMessage({ id: 'auth-page.form-section.verify-email.subtitle' })}\n \n \n {formatMessage({ id: 'auth-page.form-section.verify-email.footer' })}\n \n \n \n );\n};\n","import { useQuery } from '@apollo/client';\nimport { gql } from '__generated__/gql';\nimport { Paper, PaperProps, Theme, useMediaQuery } from '@mui/material';\nimport { FunctionComponent } from 'react';\nimport { Navigate, Outlet, Route, Routes } from 'react-router-dom';\n\nimport { isCurrentAppTheme } from 'appConfig';\nimport { CreateAccountFormContent } from './FormContent/CreateAccountFormContent/CreateAccountFormContent';\nimport { ForgotPasswordFormContent } from './FormContent/ForgotPasswordFormContent/ForgotPasswordFormContent';\nimport { LoginFormContent } from './FormContent/LoginFormContent/LoginFormContent';\nimport { ResetPasswordFormContent } from './FormContent/ResetPasswordFormContent/ResetPasswordFormContent';\nimport { VerifyEmailFormContent } from './FormContent/VerifyEmailFormContent';\n\nconst IS_SIGNUP_OPEN_PRE_FETCH_QUERY = gql(/* GraphQL */ `\n query isSignupOpenPreFetchQuery {\n isSignupOpen\n }\n`);\n\nconst FormLayout = () => {\n const isScreenBreakpointXs = useMediaQuery((theme) => theme.breakpoints.only('xs'));\n\n let variant: PaperProps['variant'];\n\n if (!isCurrentAppTheme('default')) {\n variant = isScreenBreakpointXs ? 'elevation' : 'outlined';\n }\n\n return (\n \n \n \n );\n};\n\nexport const FormSection: FunctionComponent = () => {\n // Pre-fetch to avoid loading on create account form\n useQuery(IS_SIGNUP_OPEN_PRE_FETCH_QUERY);\n\n return (\n \n }>\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n \n \n );\n};\n","export function getRandomIntegerInInterval(min: number, max: number): number {\n if (min === max) {\n return min;\n }\n\n if (min > max) {\n throw new Error('Minimum is more than maximum');\n }\n\n return Math.floor(Math.random() * (max - min + 1) + min);\n}\n","import { useState, useEffect } from 'react';\n\nimport { isNull } from 'typeDeclarations/typeGuards';\nimport { useExtendedIntl } from 'hooks/useExtendedIntl';\nimport { getRandomIntegerInInterval } from 'utils/getRandomIntegerInInterval';\n\nconst TOTAL_VARIANTS = 9;\nconst INTL_ID_STRING = 'auth-page.welcome-section.welcome-message.variant'; // <-- needs variant number at the end\n\nexport function useWelcomeMessageGenerator(): string | null {\n const { formatMessage } = useExtendedIntl();\n\n const [variant, setVariant] = useState(null);\n\n useEffect(() => {\n setVariant(getRandomIntegerInInterval(1, TOTAL_VARIANTS));\n }, []);\n\n if (isNull(variant)) return null;\n\n return formatMessage({ id: `${INTL_ID_STRING}${variant}` });\n}\n","import { Stack, Typography } from '@mui/material';\nimport { FunctionComponent } from 'react';\nimport { useLocation } from 'react-router-dom';\n\nimport { useExtendedIntl } from 'hooks/useExtendedIntl';\nimport { useWelcomeMessageGenerator } from 'pages/Auth/WelcomeSection/useWelcomeMessageGenerator';\n\nexport const WelcomeSection: FunctionComponent = () => {\n const location = useLocation();\n const { formatMessage } = useExtendedIntl();\n\n const welcomeMessage = useWelcomeMessageGenerator();\n\n return (\n \n \n \n {location.pathname.endsWith('create-account')\n ? formatMessage({ id: 'auth-page.welcome-section.header.create-account' })\n : formatMessage({ id: 'auth-page.welcome-section.header.default' })}\n \n \n {welcomeMessage}\n \n \n \n );\n};\n","import { Box, Grid, Hidden } from '@mui/material';\nimport { FunctionComponent, ReactNode } from 'react';\n\nimport WavesImage from 'images/auth-background.webp';\nimport { AuthPageHeader } from 'pages/Auth/AuthPageHeader';\nimport { FormSection } from 'pages/Auth/FormSection/FormSection';\nimport { InviteAndEarnSection } from 'pages/Auth/InviteAndEarnSection/InviteAndEarnSection';\nimport { WelcomeSection } from 'pages/Auth/WelcomeSection/WelcomeSection';\nimport { MainContainer } from 'shared/MainContainer';\n\nconst PageWavesBackground: FunctionComponent<{ children: ReactNode }> = ({ children }) => (\n ({\n width: '100%',\n display: 'flex',\n minHeight: '100vh',\n flexDirection: 'column',\n background: `${theme.palette.background.paper} url(${WavesImage}) no-repeat center / 100% auto`,\n [theme.breakpoints.down('sm')]: {\n background: theme.palette.background.paper,\n },\n })}\n >\n {children}\n \n);\n\nconst PageGradientBackground: FunctionComponent<{ children: ReactNode }> = ({ children }) => (\n \n);\n\n// Changes the layout of the LoginPage accoring to theme\n// const isCurrentAppThemeDefault = isCurrentAppTheme('default');\n// Set to FALSE to show the Leadzai whitelabel\nconst isCurrentAppThemeDefault = false; // isCurrentAppTheme('default');\n\nconst PageBackground = isCurrentAppThemeDefault ? PageGradientBackground : PageWavesBackground;\n\nconst SpotlightSection = isCurrentAppThemeDefault ? InviteAndEarnSection : WelcomeSection;\n\nexport const AuthPage: FunctionComponent = () => (\n \n {!isCurrentAppThemeDefault && }\n \n {isCurrentAppThemeDefault && }\n \n \n \n \n \n \n \n \n \n \n \n \n);\n"],"names":["WavesImage","isDefaultAppTheme","isCurrentAppTheme","StyledAppLogo","styled","AppLogoSVG","AppLogoAltSVG","theme","AuthPageHeader","backgroundColor","jsx","AppBar","Toolbar","Container","StyledForm","Form","SubmitButton","props","ProgressButton","REFERRAL_SEARCH_PARAM","EMAIL_SEARCH_PARAM","NAME_SEARCH_PARAM","StyledFormControlLabel","FormControlLabel","StyledPasswordPolicy","PasswordPolicy","StyledPasswordErrors","PasswordErrors","SIGNUP_MUTATION","gql","CreateAccountForm","navigate","useNavigate","onError","useDefaultOnError","enqueueSnackbar","useSnackbar","captureEvent","identifyUser","useUserTracking","formatMessage","formatAPIErrorCode","useExtendedIntl","emailMutationError","setEmailMutationError","useState","passwordMutationError","setPasswordMutationError","searchParams","useSearchParamsDictionary","sanitizedName","sanitizeToSingleValue","sanitizedEmail","sanitizedReferralId","signup","client","mutationError","useMutation","err","isError","logError","apolloError","APIErrorCode","data","errorMessage","Formik","email","password","repeatPassword","errors","validatePassword","values","setErrors","handleBlur","isSubmitting","defaultHandleChange","handleChange","e","Alert","TextField","InputAdornment","EmailIcon","PasswordField","Checkbox","Typography","parts","Link","config","FormContentHeader","children","StyledFooter","FormContentFooter","CAMPAIGN_SOURCE_SEARCH_PARAM","CAMPAIGN_MEDIUM_SEARCH_PARAM","CAMPAIGN_NAME_SEARCH_PARAM","CAMPAIGN_TERM_SEARCH_PARAM","CAMPAIGN_CONTENT_SEARCH_PARAM","GCLID_SEARCH_PARAM","SET_SESSION_VALUES_MUTATION","useSetSessionValues","setSessionValues","useEffect","termsToSearchParamsMap","input","utmExtra","getObjectKeys","term","param","value","StyledTextDivider","TextDivider","SignupsOpen","jsxs","Fragment","PartnersThemeDecider","SocialProviders","RouterLink","StyledTypography","Subtitle","isMobile","useIsMobileResolution","FACEBOOK_URL","LINKEDIN_URL","TWITTER_URL","SOCIAL_PROVIDER_ICONS_DICT","TwitterIcon","FacebookIcon","LinkedInIcon","StyledLink","SocialAccountsWrapper","SignupsClosed","SvgIcon","IS_SIGNUP_OPEN_QUERY","CreateAccountFormContent","loading","error","useQuery","ErrorMessage","isSignupOpen","REQUEST_PASSWORD_RESET_MUTATION","ForgotPasswordForm","emailError","setEmailError","requestPasswordReset","ForgotPasswordFormContent","LOGIN_MUTATION","StyledLinkTypography","LoginForm","auth","useAuth","location","useLocation","passwordError","setPasswordError","attemptedEmail","setAttemptedEmail","from","_b","_a","fetchSessionData","useCallback","sessionData","user","team","DEFAULT_LOCALE","login","handleSubmit","initialValues","LoginFormContent","RESET_PASSWORD_MUTATION","ResetPasswordForm","token","sanitizedToken","resetPassword","Navigate","ResetPasswordFormContent","VerifyEmailFormContent","IS_SIGNUP_OPEN_PRE_FETCH_QUERY","FormLayout","isScreenBreakpointXs","useMediaQuery","variant","Paper","Outlet","FormSection","Routes","Route","getRandomIntegerInInterval","min","max","TOTAL_VARIANTS","INTL_ID_STRING","useWelcomeMessageGenerator","setVariant","isNull","WelcomeSection","welcomeMessage","Stack","PageWavesBackground","Box","isCurrentAppThemeDefault","PageBackground","SpotlightSection","AuthPage","MainContainer","Grid","Hidden"],"mappings":"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"}