{"version":3,"sources":["webpack:///./Avensia.Common/Features/Account/Login/Login.tsx","webpack:///./Avensia.Common/Features/Account/Login/LoginBlock.tsx"],"names":["LOGIN_AJAXURL","ADD_USERLOG_SUCCESS","ADD_USERLOG_FAILED","GTM_LOGIN","props","resetForm","inputName","setState","isFormValid","errorMessage","toggleRememberMe","rememberMe","state","setInputValues","e","currentTarget","name","value","validateInput","data","username","password","onSubmit","this","trim","query","success","message","loginRedirectPage","includeAppShellData","Promise","reject","render","MainContainer","AccountForm","heading","loginTitle","buttonCaption","loginButtonCaption","redirectLink","forgotPasswordRedirectPage","redirectLabel","forgotPasswordLabel","buttonAction","InputContainer","InputLabel","usernameLabel","InputField","onChange","required","type","placeholder","usernamePlaceholder","invalid","passwordLabel","passwordPlaceholder","Error","css","marginBottom","checked","RememberMeLabel","rememberMeLabel","AccountPanel","registrationTitle","registrationButtonCaption","registerRedirectPage","Component","label","marginLeft","paddingLeft","borderRadius","div","minHeight","marginTop","span","Login","url"],"mappings":"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","file":"assets/37.chunk.c510dd0a02b911358cec.js","sourcesContent":["import React from 'react';\r\nimport { styled } from '@glitz/react';\r\nimport { addUserLog, translate, replaceState, postJson } from '@avensia/scope';\r\nimport LoginModelType from './LoginModel.type';\r\nimport MainContainer from 'Shared/MainContainer';\r\nimport Input from 'Shared/Fields/Text';\r\nimport { connectWithFeedback, ConnectPropType } from 'Shared/Button/Feedback';\r\nimport { pixelsToUnit } from 'Shared/Style';\r\nimport AccountPanel from './../Panel/AccountPanel';\r\nimport AccountForm from './../Form/AccountForm';\r\nimport { login as gtmLogin } from '../../TrackingInformation';\r\nimport { ErrorMessage } from '../../Shared/FeedbackMessage';\r\nimport { Checkbox } from 'Shared/Fields/Toggle';\r\n\r\ntype RequiredProps = {\r\n loginTitle: string;\r\n usernameLabel: string;\r\n usernamePlaceholder: string;\r\n passwordLabel: string;\r\n passwordPlaceholder: string;\r\n forgotPasswordLabel: string;\r\n forgotPasswordRedirectPage: string;\r\n loginButtonCaption: string;\r\n loginRedirectPage: string;\r\n rememberMeLabel: string;\r\n registrationTitle: string;\r\n registerRedirectPage: string;\r\n registrationButtonCaption: string;\r\n};\r\n\r\ntype StateType = {\r\n username?: string;\r\n password?: string;\r\n rememberMe?: boolean;\r\n isFormValid: boolean;\r\n errorMessage: string;\r\n};\r\n\r\ntype ConnectedPropType = RequiredProps & ConnectPropType;\r\n\r\nconst LOGIN_AJAXURL = '/dologin';\r\nconst ADD_USERLOG_SUCCESS = 'Login successful';\r\nconst ADD_USERLOG_FAILED = 'Login failed';\r\nconst GTM_LOGIN = 'Username/Password';\r\n\r\nexport default connectWithFeedback()(\r\n class LoginPage extends React.Component {\r\n constructor(props: ConnectedPropType) {\r\n super(props);\r\n this.state = {\r\n username: '',\r\n password: '',\r\n rememberMe: false,\r\n isFormValid: true,\r\n errorMessage: '',\r\n };\r\n }\r\n\r\n resetForm = (inputName: string) => {\r\n return this.setState({\r\n isFormValid: true,\r\n errorMessage: '',\r\n });\r\n };\r\n\r\n toggleRememberMe = () => {\r\n return this.setState({ rememberMe: !this.state.rememberMe });\r\n };\r\n\r\n setInputValues = (e: React.ChangeEvent) => {\r\n if (e.currentTarget.name === 'rememberMe') {\r\n return this.setState({ rememberMe: !this.state.rememberMe });\r\n } else {\r\n this.resetForm(e.currentTarget.name);\r\n return this.setState({ ...this.state, [e.currentTarget.name]: e.currentTarget.value });\r\n }\r\n };\r\n\r\n validateInput = (data: LoginModelType) => {\r\n if (data.username === '' || data.password === '') {\r\n this.setState({ errorMessage: 'Invalid e-mail or password', isFormValid: false });\r\n return false;\r\n }\r\n\r\n return true;\r\n };\r\n\r\n onSubmit = async () => {\r\n const username = this.state.username.trim();\r\n const password = this.state.password.trim();\r\n const rememberMe = this.state.rememberMe;\r\n\r\n const query: LoginModelType = { username, password, rememberMe };\r\n const isValid = this.validateInput(query);\r\n\r\n if (isValid) {\r\n try {\r\n const { success, message } = await postJson(LOGIN_AJAXURL, query);\r\n if (success) {\r\n addUserLog(ADD_USERLOG_SUCCESS);\r\n gtmLogin(GTM_LOGIN);\r\n\r\n if (this.props.loginRedirectPage) {\r\n return replaceState(this.props.loginRedirectPage, {\r\n includeAppShellData: true,\r\n });\r\n } else {\r\n return replaceState(null, { includeAppShellData: true });\r\n }\r\n } else {\r\n addUserLog(ADD_USERLOG_FAILED);\r\n this.setState({\r\n isFormValid: false,\r\n errorMessage: message,\r\n });\r\n return Promise.reject(null);\r\n }\r\n } catch (error) {\r\n this.setState({ errorMessage: !!error ? error : translate('/Account/Login/ServerError') });\r\n return Promise.reject(null);\r\n }\r\n } else {\r\n return Promise.reject(null);\r\n }\r\n };\r\n\r\n render() {\r\n const { errorMessage, isFormValid } = this.state;\r\n\r\n return (\r\n \r\n \r\n \r\n {this.props.usernameLabel}\r\n \r\n \r\n \r\n {this.props.passwordLabel}\r\n \r\n {!!errorMessage && {translate('/Account/Login/InvalidCredentials')}}\r\n \r\n \r\n {this.props.rememberMeLabel}\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n },\r\n);\r\n\r\nconst InputLabel = styled.label({\r\n marginLeft: pixelsToUnit(16),\r\n});\r\n\r\nconst InputField = styled(Input, {\r\n paddingLeft: pixelsToUnit(16),\r\n borderRadius: '0.15rem'\r\n});\r\n\r\nconst InputContainer = styled.div({\r\n minHeight: pixelsToUnit(112),\r\n});\r\n\r\nconst Error = styled(ErrorMessage, {\r\n marginTop: pixelsToUnit(5),\r\n paddingLeft: pixelsToUnit(16),\r\n});\r\n\r\nconst RememberMeLabel = styled.span({\r\n marginLeft: pixelsToUnit(11),\r\n});\r\n","/**\r\n * @ComponentFor LoginBlock\r\n */\r\nimport React from 'react';\r\nimport { epiPropertyValue } from '@avensia/scope-episerver';\r\nimport Login from './Login';\r\nimport LoginPropType from './LoginBlock.type';\r\n\r\ntype PropType = LoginPropType;\r\n\r\nconst LoginBlock = (props: PropType) => (\r\n \r\n);\r\n\r\nexport default LoginBlock;\r\n"],"sourceRoot":""}