{"version":3,"sources":["webpack:///./Avensia.Common/Features/Shared/email-pattern.ts","webpack:///./Avensia.Common/Features/ResetPassword/ForgotPasswordPage.tsx"],"names":["emailPattern","props","onSubmit","isMobile","this","currentBreakpoint","Medium","isValidEmail","validateEmail","email","state","trim","url","location","pathname","query","setFailMessage","success","message","window","scroll","top","left","behavior","setSuccessMessage","successMessage","Promise","reject","onEmailFieldInput","e","setState","target","value","failedMessage","test","onLoginClick","bottomLinkPage","successSendEmailComponent","heading","successTitle","buttonCaption","pageTitle","buttonAction","replace","render","submitButtonCaption","redirectLink","redirectLabel","bottomLinkLabel","PartDescription","for","mainBody","component","InputContainer","InputLabel","emailLabel","InputField","required","type","name","placeholder","emailPlaceholder","onChange","onBlur","invalid","Error","redirectButtonHeading","redirectButtonPage","redirectButtonCaption","Component","label","marginLeft","paddingLeft","div","marginBottom","marginTop","textAlign","ForgotPassword"],"mappings":"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","file":"assets/34.chunk.130d5f25034bb11739a6.js","sourcesContent":["export const emailPattern = /[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-‌​9-]+)*/;\r\n","/**\r\n * @ComponentFor ForgotPasswordPage\r\n */\r\n\r\nimport React from 'react';\r\nimport { styled } from '@glitz/react';\r\nimport ForgotPasswordPageType from './ForgotPasswordPage.type';\r\nimport { Part } from 'Shared/PageLayout/index';\r\nimport Input from 'Shared/Fields/Text';\r\nimport { connectWithFeedback, ConnectPropType } from 'Shared/Button/Feedback';\r\nimport { pathCombine, postJson, translate, pushState, Breakpoint } from '@avensia/scope';\r\nimport { EpiProperty, epiPropertyValue } from '@avensia/scope-episerver';\r\nimport { ErrorMessage } from 'Shared/FeedbackMessage';\r\nimport { pixelsToUnit } from 'Shared/Style';\r\nimport AccountPanel from 'Account/Panel/AccountPanel';\r\nimport AccountForm from 'Account/Form/AccountForm';\r\nimport { emailPattern } from 'Shared/email-pattern';\r\nimport { minMediumMediaQuery } from 'Shared/Style';\r\nimport MainContainer from 'Shared/MainContainer';\r\nimport connect from 'Shared/connect';\r\n\r\ntype StateType = {\r\n email?: string;\r\n failedMessage?: string;\r\n successMessage?: string;\r\n};\r\n\r\ntype ConnectStateType = {\r\n currentBreakpoint: number;\r\n};\r\n\r\ntype RequiredProps = ForgotPasswordPageType;\r\ntype PropType = RequiredProps & ConnectPropType & ConnectStateType;\r\n\r\nclass ForgotPassword extends React.Component {\r\n constructor(props: PropType) {\r\n super(props);\r\n this.state = {\r\n email: '',\r\n failedMessage: '',\r\n successMessage: '',\r\n };\r\n }\r\n\r\n onSubmit = async () => {\r\n const isMobile = this.props.currentBreakpoint < Breakpoint.Medium;\r\n const isValidEmail = this.validateEmail();\r\n const email = this.state.email.trim();\r\n const url = pathCombine(location.pathname, 'SendResetPasswordLink');\r\n const query = { email };\r\n\r\n if (!email) {\r\n this.setFailMessage(translate('/Account/ForgotPassword/EmailRequiredField'));\r\n }\r\n\r\n if (email && isValidEmail) {\r\n try {\r\n const { success, message } = await postJson(url, query);\r\n if (success) {\r\n if (isMobile) {\r\n window.scroll({ top: 0, left: 0, behavior: 'smooth' });\r\n }\r\n this.setSuccessMessage(epiPropertyValue(this.props.successMessage));\r\n } else {\r\n return Promise.reject(message);\r\n }\r\n } catch (error) {\r\n this.setFailMessage(error);\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 setFailMessage(failedMessage: string) {\r\n this.setState({ failedMessage, successMessage: '' });\r\n }\r\n\r\n setSuccessMessage(successMessage: string) {\r\n this.setState({ successMessage, failedMessage: '' });\r\n }\r\n\r\n onEmailFieldInput = (e: React.FormEvent) => {\r\n this.setState({\r\n email: (e.target as HTMLInputElement).value,\r\n failedMessage: '',\r\n successMessage: '',\r\n });\r\n };\r\n\r\n validateEmail = () => {\r\n if (!!this.state.email && !emailPattern.test(this.state.email)) {\r\n this.setFailMessage(translate('/Account/ForgotPassword/InvalidEmail'));\r\n return false;\r\n }\r\n return true;\r\n };\r\n\r\n onLoginClick = async () => {\r\n if (!!epiPropertyValue(this.props.bottomLinkPage)) {\r\n return pushState(epiPropertyValue(this.props.bottomLinkPage).url);\r\n }\r\n return Promise.reject(null);\r\n };\r\n\r\n successSendEmailComponent() {\r\n return (\r\n \r\n \r\n {this.state.successMessage.replace('{{email}}', this.state.email)}\r\n \r\n \r\n );\r\n }\r\n\r\n render() {\r\n if (!!this.state.successMessage) {\r\n return this.successSendEmailComponent();\r\n }\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {epiPropertyValue(this.props.emailLabel)}\r\n \r\n\r\n {!!this.state.failedMessage && {this.state.failedMessage}}\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});\r\n\r\nconst InputContainer = styled.div({\r\n marginBottom: pixelsToUnit(40),\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 PartDescription = styled(Part, {\r\n textAlign: 'center',\r\n [minMediumMediaQuery]: {\r\n textAlign: 'left',\r\n },\r\n});\r\n\r\nexport default connectWithFeedback()(\r\n connect(state => ({\r\n currentBreakpoint: state.currentBreakpoint,\r\n }))(ForgotPassword),\r\n);\r\n"],"sourceRoot":""}