{"version":3,"sources":["common/components/Form/TextError.tsx","common/style/components/input.tsx","common/components/Form/validators.ts","common/images/cleever-logo.svg","common/style/components/checked.svg","common/images/checkok.svg","common/components/Form/MoonaPassword/MoonaPassword.tsx","common/components/Form/MoonaInput.tsx","common/components/Form/CheckIcon.tsx","pages/Login/components/LoginForm.tsx","common/components/Form/MoonaPassword/hide.svg","common/components/Form/MoonaPassword/show.svg","common/components/Form/MoonaPassword/lock.svg","common/images/check.svg","common/images/checkko.svg","pages/Login/Login.tsx"],"names":["ErrorContainer","styled","Container","ErrorNewTabLink","NewTabLink","ErrorBody","label","links","name","map","link","i","newtab","to","target","key","TextError","children","IsJsonString","JSON","parse","defaultInputBorder","css","activeInputBorder","baseFontCss","baseErrorInputCss","baseInputCss","focusInputCss","activeInputCss","Input","Field","Label","baseTitleCss","Radio","input","attrs","type","checked","Form","ValidateEmail","mail","endsWith","RegExp","test","validateWebSiteUrl","value","bundle","adress","stringify","str","e","validateText","msg","error","text","ValidateText","validateEmail","invalidformat","inuse","isRegisteredEmail","then","existing","validateExistingEmail","validatePhone","yupPasswordValidationRule","password","Yup","required","matches","module","exports","PwdInput","InputContainer","div","ShowPasswordContainer","LockContainer","Lock","Image","ShowPassword","BaseButton","props","icon","Helper","MdBody","hovered","MoonaPassword","placeholder","errors","touched","validate","autofocus","disabled","useState","hidden","setHidden","useTranslation","t","setHovered","errorClass","inputRef","useRef","useEffect","current","ref","focus","htmlFor","content","src","lock","onMouseEnter","onMouseLeave","className","innerRef","id","autoComplete","onClick","hide","show","component","MoonaInput","isValid","onKeyUp","validationIcon","isError","meta","Icon","CheckIcon","checkIcon","checkko","check","checkok","LoginFormContainer","Section","tablet","FormWrapper","LoginButton","SubmittablePrimaryButton","LoginFormSection","validationSchema","email","min","initialValues","initialErrors","LoginForm","button","validation","loginfailure","isProcessing","setProcessing","isSubmitted","dispatch","useDispatch","onSubmit","values","a","loginRequest","toLowerCase","isSubmitting","width","LoginCenteredMain","CenteredMain","extraSmall","LoginInlineLink","InlineLink","LoginNewTabLink","LoginImage","LoginTitle","MdH1","LoginWrapper","Login","returnObjects","title","form","cta","cta2","useSelector","state","auth","isMobile","session","titleLabel","mobile","desktop","setSubmitted","logo"],"mappings":"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","file":"static/js/14.351c9410.chunk.js","sourcesContent":["import React from 'react'\nimport styled from 'styled-components'\nimport { Container, NameableSpan } from 'common/style/components/Section'\nimport { IsJsonString } from './validators'\nimport { InlineLink, NewTabLink } from '../../style/components/links'\n\nexport const ErrorContainer = styled(Container)`\n  margin-top: 0.4rem;\n  font-weight: 500;\n  font-size: 14px;\n  line-height: 24px;\n  color: var(--color-red-danger);\n`\n\nconst ErrorNewTabLink = styled(NewTabLink)`\n  font-size: 1.4rem;\n`\n\nconst TextError: React.FC = ({ children }) => {\n  const isJson = IsJsonString(children as string)\n  if (!isJson) {\n    return <ErrorContainer>{children}</ErrorContainer>\n  }\n\n  const { label, links, name }: ErrorBodyProps = JSON.parse(children as string)\n  return (\n    <ErrorContainer>\n      <ErrorBody label={label} links={links} name={name} />\n    </ErrorContainer>\n  )\n}\n\ninterface ErrorBodyProps {\n  label: string\n  links?: { label: string; target: string; newtab: boolean }[]\n  name: string\n}\nconst ErrorBody: React.FC<ErrorBodyProps> = ({ label, links, name }) => {\n  return (\n    <NameableSpan name={name}>\n      {label + ' '}{' '}\n      {links?.map((link, i) => {\n        if (link.newtab) {\n          return (\n            <ErrorNewTabLink to={link.target} key={i} name={`texterror-${i}`}>\n              {link.label}\n            </ErrorNewTabLink>\n          )\n        }\n        return (\n          <InlineLink to={link.target} key={i} name={`texterror-${i}`}>\n            {link.label}\n          </InlineLink>\n        )\n      })}\n    </NameableSpan>\n  )\n}\nexport default TextError\n","import { Field, Form } from 'formik'\nimport styled, { css } from 'styled-components'\nimport { baseTitleCss } from './Typography'\nimport checked from './checked.svg'\n\nconst defaultInputBorder = css`\n  border: 1px solid #dee0e7;\n`\nconst activeInputBorder = css`\n  border: 1px solid var(--color-grey-main);\n`\n\nexport const baseFontCss = css`\n  font-family: 'Aeonik';\n  font-style: normal;\n  font-weight: normal;\n  font-size: 1.4rem;\n  line-height: 2.4rem;\n  color: var(--color-blackmain-moona);\n`\n\nconst baseErrorInputCss = css`\n  border: 1px solid var(--color-red-danger);\n  box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.04);\n`\nexport const baseInputCss = css`\n  text-align: left;\n  width: 100%;\n  height: 4rem;\n  padding-left: 1.4rem;\n  background: #ffffff;\n  outline: none;\n  ${defaultInputBorder}\n  box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.04);\n  border-radius: 8px;\n  &:focus,\n  &:active {\n    ${activeInputBorder}\n  }\n  &.error:active {\n    ${baseErrorInputCss}\n  }\n\n  &::placeholder {\n    font-family: 'Aeonik';\n    font-size: 1.4rem;\n\n    line-height: 2.4rem;\n    @-moz-document url-prefix() {\n      line-height: 3.7rem;\n    }\n    color: var(--color-blackmain-moona);\n    opacity: 0.3;\n  }\n\n  &.error {\n    ${baseErrorInputCss}\n  }\n  &:disabled {\n    background: #f2f3f3;\n    color: #bdbec0;\n    opacity: 1;\n  }\n`\n\nexport const focusInputCss = css`\n  border: 1px solid var(--color-purple-moona);\n  box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.04);\n`\n\nexport const activeInputCss = css`\n  position: absolute;\n  display: block;\n  z-index: -1;\n  top: -2px;\n  left: -2px;\n  right: -2px;\n  bottom: -2px;\n\n  border: 4px solid #ecddff;\n  border-radius: 8px;\n\n  box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.04);\n`\nexport const Input = styled(Field)`\n  ${baseInputCss}\n  font-family: 'Aeonik';\n  font-style: normal;\n  font-weight: normal;\n  font-size: 1.4rem;\n  line-height: 2.4rem;\n  color: var(--color-blackmain-moona);\n  position: relative;\n  &:hover {\n    cursor: pointer;\n  }\n  &:focus {\n    ${focusInputCss}\n  }\n\n  &:active + span:after {\n    content: '';\n    ${activeInputCss}\n  }\n`\n\nexport const Label = styled.label`\n  ${baseTitleCss}\n  font-weight: 500;\n  font-size: 1.4rem;\n  line-height: 2.4rem;\n  margin-bottom: 0.4rem;\n  color: var(--color-grey-main);\n`\n\nexport const InlineLabel = styled(Label)`\n  display: inline;\n  outline: none;\n  font-size: 1.2rem;\n  line-height: 2.1rem;\n  font-weight: normal;\n  padding-left: 3rem;\n  position: relative;\n  &:hover {\n    cursor: pointer;\n  }\n  &::before {\n    content: '';\n    display: block;\n    height: 0;\n    width: 0;\n    margin-top: -0.5rem;\n  }\n`\n\nexport const Radio = styled.input.attrs({\n  type: 'radio'\n})`\n  &:checked,\n  &:not(:checked) {\n    position: absolute;\n    left: -9999px;\n  }\n  &:checked + label,\n  &:not(:checked) + label {\n    width: 100%;\n    position: relative;\n    padding-left: 0px;\n    cursor: pointer;\n    line-height: 20px;\n    display: inline-block;\n    color: #666;\n  }\n  &:checked + label:before,\n  &:not(:checked) + label:before {\n    content: '';\n    position: absolute;\n    left: 2.5rem;\n    top: 50%;\n    transform: translateY(-50%);\n    width: 17px;\n    height: 17px;\n    border: 1px solid #9540ff;\n    border-radius: 100%;\n    background: #9540ff;\n  }\n  &:not(:checked) + label:before {\n    content: '';\n    position: absolute;\n    left: 2.5rem;\n    top: 50%;\n    transform: translateY(-50%);\n    width: 17px;\n    height: 17px;\n    border: 1px solid #9540ff;\n    border-radius: 100%;\n    background: #fff;\n  }\n\n  &:checked + label:after,\n  &:not(:checked) + label:after {\n    content: '';\n    width: 7px;\n    height: 7px;\n    background: #fff;\n    position: absolute;\n    top: 50%;\n    left: 3rem;\n    border-radius: 100%;\n    -webkit-transition: all 0.2s ease;\n    transition: all 0.2s ease;\n  }\n  &:not(:checked) + label:after {\n    opacity: 0;\n    -webkit-transform: scale(0);\n    transform: scale(0);\n  }\n  &:checked + label:after {\n    top: 50%;\n    opacity: 1;\n    -webkit-transform: scale(1) translateY(-50%);\n    transform: scale(1) translateY(-50%);\n  }\n`\n\nexport const Checkbox = styled(Field).attrs({\n  type: 'checkbox'\n})`\n  position: absolute;\n  left: 0;\n  opacity: 0.01;\n  &:not(:checked) + label::before,\n  &:checked + label::before {\n    content: '';\n    position: absolute;\n    left: 0;\n    top: 1.1rem;\n    width: 1.6rem;\n    height: 1.6rem;\n    background: #fff;\n    border-radius: 0.2em;\n    box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1),\n      0 0 0 rgba(203, 34, 237, 0.2);\n    transition: all 0.275s;\n  }\n\n  &:not(:checked) + label::before {\n    ${defaultInputBorder}\n  }\n  &:not(:checked) + label:hover:before,\n  &:not(:checked) + label:focus:before,\n  &:focus + label:before {\n    background: #ffffff;\n    border: 1px solid var(--color-purple-moona);\n    box-sizing: border-box;\n\n    box-shadow: 0px 2px 8px rgba(0, 0, 0, 0.08);\n    border-radius: 4px;\n  }\n\n  position: relative;\n\n  &:focus ~ span:after {\n    content: '';\n    position: absolute;\n    display: block;\n    z-index: -1;\n\n    border: 3px solid #ecddff;\n    border-radius: 8px;\n\n    box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.04);\n    top: 3px;\n    left: 10px;\n    width: 21px;\n    height: 21px;\n  }\n\n  &:checked + label:before {\n    ${activeInputBorder}\n  }\n\n  /* Aspect de la coche */\n  &:not(:checked) + label::after,\n  &:checked + label::after {\n    content: '';\n\n    position: absolute;\n    left: 0;\n    top: 6px;\n    width: 16px;\n    height: 16px;\n\n    background-image: url(${checked});\n    background-repeat: no-repeat;\n  }\n\n  /* Aspect non cochée */\n  &:not(:checked) + label::after {\n    opacity: 0;\n  }\n\n  /* Aspect cochée */\n  &:checked + label::after {\n    opacity: 1;\n  }\n  display: inline-block;\n`\n\nexport const StyledForm = styled(Form)`\n  height: 100%;\n  width: 100%;\n`\n","import * as Yup from 'yup'\nimport { isRegisteredEmail } from 'state/features/users/api'\nexport type ValidationMessage = { label: string; name: string }\nexport interface BaseBundleMessage {\n  label: string\n  name: string\n  links?: { label: string; target: string }[]\n}\n\nfunction ValidateEmail(mail: string): boolean {\n  const pattern = mail.endsWith('moona.com')\n    ? new RegExp(\n        /^[_a-zA-Z0-9-]+(\\.[_a-zA-Z0-9-]+)*(\\+[a-zA-Z0-9-]+)?@[a-zA-Z0-9-]+[\\\\.][a-zA-Z0-9-.]+$/\n      )\n    : new RegExp(\n        /^[_a-zA-Z0-9-]+(\\.[_a-zA-Z0-9-]+)*?@[a-zA-Z0-9-]+[\\\\.][a-zA-Z0-9-.]+$/\n      )\n\n  // : new RegExp(/^\\w+([.-]?\\w+)*@\\w+([.-]?\\w+)*(\\.\\w{2,3})+$/)\n\n  if (pattern.test(mail)) {\n    return true\n  }\n\n  return false\n}\n\nfunction ValidateWebSiteAdress(adress: string): boolean {\n  const pattern = new RegExp(\n    /^(http:\\/\\/|https:\\/\\/)?(www.)?[~._a-zA-Z0-9-]+[\\\\.][a-zA-Z0-9-]+$/\n  )\n  if (pattern.test(adress)) {\n    return true\n  }\n\n  return false\n}\n\nexport const validateWebSiteUrl = (\n  value: string,\n  bundle: BaseBundleMessage\n) => {\n  // const { label, name } = bundle\n  if (!ValidateWebSiteAdress(value)) {\n    return JSON.stringify(bundle)\n  }\n\n  return ''\n}\nfunction isEmpty(text: string): boolean {\n  if (text === '') {\n    return true\n  }\n  return false\n}\n\nexport function validateUKpostcode(postcode: string) {\n  postcode = postcode.replace(/\\s/g, '')\n  var regex = /^[A-Z]{1,2}[0-9]{1,2} ?[0-9][A-Z]{2}$/i\n  return regex.test(postcode)\n}\n\nexport function validatePostalCode(postcode: string, msg: BaseBundleMessage) {\n  let error = ''\n  if (!postcode) {\n    error = JSON.stringify(msg)\n  }\n  return error\n}\n\nfunction ValidateText(text: string): boolean {\n  if (text === '') {\n    return false\n  }\n  const re = /^[ \\-'a-zA-ZÀ-ÿ\\u00f1\\u00d1]*$/g\n  if (re.test(text)) {\n    return true\n  }\n  return false\n}\n\nexport function IsJsonString(str: string): boolean {\n  try {\n    JSON.parse(str)\n  } catch (e) {\n    return false\n  }\n  return true\n}\n\nexport function validateText(value: string, msg: BaseBundleMessage): string {\n  let error = ''\n  if (isEmpty(value)) {\n    error = JSON.stringify(msg)\n  } else if (!ValidateText(value)) {\n    error = JSON.stringify(msg)\n  }\n  return error\n}\n\nexport interface BundleMail {\n  label?: string\n  placeholder?: string\n  invalidformat: BaseBundleMessage\n  inuse: BaseBundleMessage\n}\nexport const validateEmail = (value: string, bundle: BundleMail) => {\n  const { invalidformat, inuse } = bundle\n\n  if (!value || value === '') {\n    return JSON.stringify(invalidformat)\n  }\n\n  if (!ValidateEmail(value)) {\n    return JSON.stringify(invalidformat)\n  }\n\n  return isRegisteredEmail(value).then(existing => {\n    if (existing) {\n      return JSON.stringify(inuse)\n    } else {\n      return ''\n    }\n  })\n}\nexport const validateExistingEmail = (value: string, bundle: BundleMail) => {\n  const { invalidformat, inuse } = bundle\n  if (!ValidateEmail(value)) {\n    return JSON.stringify(invalidformat)\n  }\n  return isRegisteredEmail(value).then(existing => {\n    if (!existing) {\n      return JSON.stringify(inuse)\n    } else {\n      return ''\n    }\n  })\n}\n\nexport function validatePhone(value: string, msg: BaseBundleMessage) {\n  let error = ''\n  if (value === 'invalid_phone_number') {\n    error = JSON.stringify(msg)\n  }\n  return error\n}\n\nexport const yupPasswordValidationRule = (msg: BaseBundleMessage) => ({\n  password: Yup.string()\n    .required(JSON.stringify(msg))\n    .matches(\n      /^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!\"'()*+,/:;<>?[\\] `{|}~@\\-#$%^&+=])(?=.{8,})/,\n      JSON.stringify(msg)\n    )\n})\n","module.exports = __webpack_public_path__ + \"static/media/cleever-logo.0b728524.svg\";","module.exports = __webpack_public_path__ + \"static/media/checked.24af96c2.svg\";","module.exports = __webpack_public_path__ + \"static/media/checkok.e4242c67.svg\";","import React, { useState, useRef, useEffect } from 'react'\n\nimport { ErrorMessage, FormikErrors, FormikTouched } from 'formik'\nimport TextError from '../TextError'\nimport { Label, Input } from '../../../style/components/input'\nimport { Image } from '../../../style/components/image'\nimport { InputWrapper } from '../../../style/components/Section'\nimport styled from 'styled-components'\nimport { BaseButton } from '../../../style/components/buttons'\nimport hide from './hide.svg'\nimport show from './show.svg'\nimport lock from './lock.svg'\nimport { useTranslation } from 'react-i18next'\nimport { MdBody } from 'common/style/components/Typography'\n\ninterface InputProps {\n  label: string\n  name: string\n  placeholder?: string\n  errors: FormikErrors<{\n    [field: string]: any\n  }>\n  touched: FormikTouched<{\n    [field: string]: any\n  }>\n  validate?: (value: string) => string\n  autofocus?: boolean\n  disabled?: boolean\n}\n\nconst PwdInput = styled(Input)`\n  padding-left: 3.2rem;\n`\n\nconst InputContainer = styled.div`\n  position: relative;\n`\nconst ShowPasswordContainer = styled.div`\n  position: absolute;\n  top: 0;\n  right: 1.5rem;\n  height: 100%;\n\n  display: flex;\n  align-items: center;\n`\nconst LockContainer = styled.div`\n  z-index: 2;\n  position: absolute;\n  top: 0;\n  left: 1.2rem;\n  height: 100%;\n  width: 1.5rem;\n  display: flex;\n  align-items: center;\n`\n\nconst Lock = styled(Image)<{\n  onMouseEnter: () => void\n  onMouseLeave: () => void\n}>``\nconst ShowPassword = styled(BaseButton)<{ icon: string }>`\n  background: 100% no-repeat url(${props => props.icon});\n  width: 2rem;\n  height: 2rem;\n`\nconst Helper = styled(MdBody)<{\n  hovered: boolean\n}>`\n  display: ${({ hovered }) => (hovered ? 'flex' : 'none')};\n  background: rgba(41, 43, 54, 0.4);\n  backdrop-filter: blur(20px);\n  border-radius: 8px;\n  flex-direction: column;\n  font-weight: 500;\n  font-size: 1.4rem;\n  line-height: 2.4rem;\n  color: #ffffff;\n  padding: 0.8rem 1.2rem;\n  white-space: nowrap;\n  align-items: flex-start;\n  position: absolute;\n  top: 3.5rem;\n`\n\nexport const MoonaPassword: React.FC<InputProps> = ({\n  name,\n  label,\n  placeholder,\n  errors,\n  touched,\n  validate,\n  autofocus = false,\n  disabled\n}) => {\n  const [hidden, setHidden] = useState(true)\n  const [t] = useTranslation('app')\n  const [hovered, setHovered] = useState(false)\n  const isError = errors[name] && touched[name]\n  const toggleShow = () => setHidden(!hidden)\n  const errorClass = isError ? 'error' : ''\n  const inputRef = useRef<HTMLInputElement>(null)\n\n  useEffect(() => {\n    if (inputRef.current) {\n      const ref = inputRef.current\n\n      if (autofocus) {\n        ref.focus()\n      }\n    }\n  }, [inputRef, autofocus])\n  return (\n    <InputWrapper>\n      <Label htmlFor={name}>{label}</Label>\n      <InputContainer>\n        <LockContainer>\n          <Helper content={t('general.helper.password')} hovered={hovered} />\n\n          <Lock\n            src={lock}\n            onMouseEnter={() => setHovered(true)}\n            onMouseLeave={() => setHovered(false)}\n          />\n        </LockContainer>\n        <PwdInput\n          className={errorClass}\n          type={hidden ? 'password' : 'text'}\n          innerRef={inputRef}\n          id={name}\n          name={name}\n          placeholder={placeholder || ''}\n          validate={validate}\n          autoComplete=\"off\"\n          disabled={disabled}\n        />\n        <span></span>\n        <ShowPasswordContainer>\n          <ShowPassword\n            onClick={toggleShow}\n            icon={hidden ? hide : show}\n            name=\"showpassword\"\n          />\n        </ShowPasswordContainer>\n      </InputContainer>\n      <ErrorMessage component={TextError} name={name} />\n    </InputWrapper>\n  )\n}\n","import React, { useRef, useEffect } from 'react'\n\nimport {\n  Field,\n  FieldProps,\n  ErrorMessage,\n  FormikErrors,\n  FormikTouched\n} from 'formik'\nimport TextError from './TextError'\nimport { Label, Input } from '../../style/components/input'\nimport { InputWrapper } from '../../style/components/Section'\nimport styled from 'styled-components'\nimport CheckIcon from './CheckIcon'\n\ninterface InputProps {\n  label: string\n  name: string\n  placeholder?: string\n  errors: FormikErrors<{\n    [field: string]: any\n  }>\n  touched: FormikTouched<{\n    [field: string]: any\n  }>\n  validate?: (value: string) => Promise<string> | string\n  isValid?: React.Dispatch<React.SetStateAction<boolean>>\n  onKeyUp?: () => void\n  disabled?: boolean\n  autofocus?: boolean\n  validationIcon?: boolean\n}\n\nconst InputContainer = styled.div`\n  position: relative;\n`\n\nexport const MoonaInput: React.FC<InputProps> = ({\n  name,\n  label,\n  placeholder,\n  errors,\n  touched,\n  validate,\n  isValid,\n  onKeyUp,\n  autofocus = false,\n  disabled = false,\n\n  validationIcon = true\n}) => {\n  const isError = errors[name] && touched[name]\n  const errorClass = isError ? 'error' : ''\n  if (isValid) isValid(!isError)\n  const inputRef = useRef<HTMLInputElement>(null)\n\n  useEffect(() => {\n    if (inputRef.current) {\n      const ref = inputRef.current\n\n      if (autofocus) {\n        ref.focus()\n      }\n    }\n  }, [inputRef, autofocus])\n\n  return (\n    <InputWrapper>\n      <Label htmlFor={name}>{label}</Label>\n      <Field name={name} validate={validate}>\n        {({ meta }: FieldProps) => {\n          return (\n            <InputContainer>\n              <Input\n                innerRef={inputRef}\n                className={errorClass}\n                id={name}\n                name={name}\n                placeholder={placeholder || ''}\n                validate={validate}\n                autoComplete=\"off\"\n                onKeyUp={onKeyUp}\n                disabled={disabled}\n              />\n              <span></span>\n              {validationIcon && <CheckIcon meta={meta} />}\n            </InputContainer>\n          )\n        }}\n      </Field>\n      <ErrorMessage component={TextError} name={name} />\n    </InputWrapper>\n  )\n}\n","import React from 'react'\nimport { Image } from 'common/style/components/image'\nimport styled from 'styled-components'\nimport check from 'common/images/check.svg'\nimport checkok from 'common/images/checkok.svg'\nimport checkko from 'common/images/checkko.svg'\nimport { FieldMetaProps } from 'formik'\nexport const Icon = styled(Image)`\n  position: absolute;\n  right: 1.2rem;\n  top: 50%;\n  transform: translateY(-50%);\n`\nconst CheckIcon = ({ meta }: { meta: FieldMetaProps<any> }) => {\n  let checkIcon = ''\n  if (!meta.touched && meta.value === 'invalid_phone_number') {\n    checkIcon = check\n  } else {\n    checkIcon =\n      meta.touched && (meta.error || meta.value === 'invalid_phone_number')\n        ? checkko\n        : meta.value !== '' && !meta.error\n        ? checkok\n        : check\n  }\n  return <Icon src={checkIcon} />\n}\n\nexport default CheckIcon\n","import React from 'react'\nimport styled from 'styled-components'\nimport { Formik, Form } from 'formik'\nimport * as Yup from 'yup'\nimport { useDispatch } from 'react-redux'\nimport { Section } from 'common/style/components/Section'\n\nimport { MoonaPassword } from 'common/components/Form/MoonaPassword/MoonaPassword'\nimport { SubmittablePrimaryButton } from 'common/style/components/buttons'\nimport { MoonaInput } from 'common/components/Form/MoonaInput'\nimport { loginRequest } from 'state/features/auth/actions'\nimport TextError from 'common/components/Form/TextError'\nimport { FormBundle } from '../Login'\nimport { tablet } from 'common/style/queries/media-queries'\nimport { validateExistingEmail } from 'common/components/Form/validators'\ninterface LoginFormProps extends FormBundle {\n  loginfailure: boolean\n  isProcessing: boolean\n  setProcessing: React.Dispatch<React.SetStateAction<boolean>>\n  isSubmitted: boolean\n  setSubmitted: React.Dispatch<React.SetStateAction<boolean>>\n}\n\nexport const LoginFormContainer = styled(Section)`\n  margin-top: 3.2rem;\n  width: 100%;\n  @media ${tablet} {\n  }\n`\n\nexport const FormWrapper = styled(Form)`\n  width: 100%;\n`\n\nexport const LoginButton = styled(SubmittablePrimaryButton)`\n  margin-top: 0rem;\n  background: var(--color-purple-moona);\n  &:disabled {\n    background-color: #ca9fff;\n  }\n  &:focus:before {\n    z-index: 10;\n    background-color: transparent;\n  }\n`\n\nexport const LoginFormSection = styled(Section)`\n  margin: 0;\n  width: 100%;\n  align-items: center;\n\n  & > :not(:last-child) {\n    margin-bottom: 1.6rem;\n  }\n\n  @media ${tablet} {\n    width: 32.4rem;\n  }\n\n  & > div > label {\n    color: #ffffff;\n  }\n`\n\nconst validationSchema = Yup.object({\n  email: Yup.string().email('Invalid email format'),\n  password: Yup.string().min(8)\n})\n\nconst initialValues = {\n  password: '',\n  email: ''\n}\n\nconst initialErrors = {\n  email: '{\"label\":\"\",\"name\":\"\"}'\n}\n\nexport const LoginForm: React.FC<LoginFormProps> = ({\n  email,\n  password,\n  button,\n  validation,\n  loginfailure,\n  isProcessing,\n  setProcessing,\n  isSubmitted\n}) => {\n  const dispatch = useDispatch()\n  return (\n    <LoginFormContainer>\n      <Formik\n        initialErrors={initialErrors}\n        initialValues={initialValues}\n        validationSchema={validationSchema}\n        onSubmit={async values => {\n          setProcessing(true)\n          dispatch(loginRequest(values.email.toLowerCase(), values.password))\n        }}\n      >\n        {({ errors, touched, isValid }) => {\n          return (\n            <FormWrapper autoComplete=\"off\">\n              <LoginFormSection className={'login-form-section'}>\n                {loginfailure && (\n                  <TextError>{JSON.stringify(validation)}</TextError>\n                )}\n                <MoonaInput\n                  name=\"email\"\n                  label={email.label}\n                  placeholder={email.placeholder}\n                  errors={errors}\n                  touched={touched}\n                  autofocus={true}\n                  validate={value => {\n                    return value !== ''\n                      ? validateExistingEmail(value.toLowerCase(), email)\n                      : ''\n                  }}\n                  disabled={isProcessing}\n                />\n                <MoonaPassword\n                  name=\"password\"\n                  label={password.label}\n                  placeholder={password.placeholder}\n                  errors={errors}\n                  touched={touched}\n                  disabled={isProcessing}\n                />\n\n                <LoginButton\n                  isSubmitting={isProcessing}\n                  isSubmitted={isSubmitted && !loginfailure}\n                  label={button.label}\n                  type=\"submit\"\n                  disabled={!isValid || isProcessing}\n                  name=\"set-password-submit\"\n                  width=\"100%\"\n                />\n              </LoginFormSection>\n            </FormWrapper>\n          )\n        }}\n      </Formik>\n    </LoginFormContainer>\n  )\n}\n","module.exports = __webpack_public_path__ + \"static/media/hide.defee299.svg\";","module.exports = __webpack_public_path__ + \"static/media/show.048e85cf.svg\";","module.exports = __webpack_public_path__ + \"static/media/lock.b431ca5c.svg\";","module.exports = __webpack_public_path__ + \"static/media/check.c9deb4e7.svg\";","module.exports = __webpack_public_path__ + \"static/media/checkko.34c4dc02.svg\";","import React, { useEffect, useState } from 'react'\nimport styled from 'styled-components'\nimport { useSelector } from 'react-redux'\nimport {\n  LoginSection,\n  CenteredMain\n} from '../../common/style/components/Section'\nimport { Image } from '../../common/style/components/image'\nimport { MdH1 } from '../../common/style/components/Typography'\nimport logo from 'common/images/cleever-logo.svg'\nimport { LoginForm } from './components/LoginForm'\nimport { useTranslation } from 'react-i18next'\nimport { InlineLink, NewTabLink } from 'common/style/components/links'\nimport { AppState } from 'state/features/types'\nimport { extraSmall, tablet } from 'common/style/queries/media-queries'\nimport { BaseBundleMessage } from 'common/components/Form/validators'\n\nexport const LoginCenteredMain = styled(CenteredMain)`\n  width: 33.5rem;\n  padding: 3.6rem 2.4rem 2.6rem 2.4rem;\n\n  background-color: #27244b;\n  border: 1px solid #e8e9ed;\n  border-radius: 16px;\n  @media ${tablet} {\n    padding: 6.4rem 17.6rem 6.5rem 17.6rem;\n    width: 100%;\n  }\n  @media ${extraSmall} {\n    width: 100%;\n    padding: 3.6rem 2.4rem 2.6rem 2.4rem;\n  }\n`\n\nexport const LoginInlineLink = styled(InlineLink)`\n  margin-top: 0.8rem;\n  font-weight: 500;\n  font-size: 1.2rem;\n  line-height: 2.1rem;\n  color: #fff;\n  &:hover {\n    text-decoration: underline;\n  }\n`\n\nexport const LoginNewTabLink = styled(NewTabLink)`\n  margin-top: 0.8rem;\n  font-weight: 500;\n  font-size: 1.2rem;\n  line-height: 2.1rem;\n  color: #fff;\n  &:hover {\n    text-decoration: underline;\n  }\n`\n\nexport interface FormBundle {\n  email: {\n    label: string\n    placeholder: string\n    validation: string\n    invalidformat: BaseBundleMessage\n    inuse: BaseBundleMessage\n  }\n  password: { label: string; placeholder: string; validation: string }\n  button: { label: string }\n  validation: { label: string; links: { label: string; target: string }[] }\n}\ninterface PageBundle {\n  title: { mobile: string; desktop: string }\n  form: FormBundle\n  cta: { to: string; label: string }\n  cta2: { to: string; label: string }\n}\n\nexport const LoginImage = styled(Image)`\n  width: 167px;\n  margin-bottom: 3.6rem;\n  margin-top: 3.8rem;\n  @media ${tablet} {\n    margin-bottom: 0rem;\n    margin-top: 0rem;\n  }\n`\nexport const LoginTitle = styled(MdH1)`\n  width: 100%;\n  margin-top: 0rem;\n  font-weight: 500;\n  font-size: 2rem;\n  line-height: 2.7rem;\n  color: #ffffff;\n  display: flex;\n  justify-content: center;\n  @media ${tablet} {\n    margin-top: 3rem;\n  }\n`\n\nexport const LoginWrapper = styled.div`\n  display: flex;\n  flex-direction: column;\n\n  @media ${tablet} {\n  }\n`\nconst Login: React.FC = () => {\n  const [t] = useTranslation('app')\n  const {\n    title,\n    form: { email, password, button, validation },\n    cta,\n    cta2\n  }: PageBundle = t('login', { returnObjects: true })\n\n  const { loginfailure } = useSelector((state: AppState) => {\n    return state.auth\n  })\n\n  const { isMobile } = useSelector((state: AppState) => state.session)\n  const titleLabel = isMobile ? title.mobile : title.desktop\n  const [isProcessing, setProcessing] = useState(false)\n  const [isSubmitted, setSubmitted] = useState(false)\n\n  useEffect(() => {\n    if (loginfailure) {\n      setProcessing(false)\n    }\n  }, [loginfailure])\n\n  return (\n    <LoginSection>\n      <LoginWrapper>\n        {isMobile && <LoginImage src={logo} />}\n        <LoginCenteredMain>\n          {!isMobile && <LoginImage src={logo} />}\n          <LoginTitle content={titleLabel} />\n          <LoginForm\n            email={email}\n            password={password}\n            button={button}\n            loginfailure={loginfailure}\n            validation={validation}\n            isProcessing={isProcessing}\n            setProcessing={setProcessing}\n            isSubmitted={isSubmitted}\n            setSubmitted={setSubmitted}\n          />\n          <LoginNewTabLink to={cta.to} name=\"forgotten-password\">\n            {cta.label}\n          </LoginNewTabLink>\n          <LoginInlineLink to={cta2.to} name=\"forgotten-password\">\n            {cta2.label}\n          </LoginInlineLink>\n        </LoginCenteredMain>\n      </LoginWrapper>\n    </LoginSection>\n  )\n}\n\nexport default Login\n"],"sourceRoot":""}