{"mappings":"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","sources":["src/tsx/modules/BookAppointmentB/index.tsx","src/tsx/modules/BookAppointmentB/App.tsx","src/tsx/modules/BookAppointmentB/imgData.tsx"],"sourcesContent":["import ReactDOM from 'react-dom/client';\nimport App from './App';\n\nconst root = ReactDOM.createRoot(document.getElementById('jsx-book-apointment-b') as HTMLElement);\nroot.render();\n","import { useFormik } from 'formik';\nimport { useState } from 'react';\nimport styled, { css } from 'styled-components';\nimport { Select, TextFiled } from 'tsx/comps/form';\nimport { media, colors } from 'tsx/theme';\nimport { checkIcon } from './imgData';\nimport * as Yup from 'yup';\nimport { apiUrl } from 'tsx/util';\n\nconst Section = styled.section`\n display: grid;\n grid-template-columns: 1fr 1fr;\n grid-gap: 20px;\n\n .grid-item {\n padding: 50px 30px;\n border: 1px solid ${colors.primary};\n border-radius: 25px;\n display: flex;\n flex-direction: column;\n gap: 30px;\n grid-gap: 30px;\n\n &__graphic {\n height: 55px;\n background-color: ${colors.primary};\n padding: 0 25px;\n // max-width: 360px;\n padding-bottom: 4px;\n border-radius: 35px 0px 35px 35px;\n position: relative;\n display: flex;\n align-items: center;\n justify-content: space-between;\n\n h6,\n h3 {\n color: white;\n white-space: nowrap;\n }\n\n h6 {\n font-weight: 400;\n }\n\n // &:after {\n // content: '';\n // position: absolute;\n // right: -19px;\n // top: 8px;\n // width: 39px;\n // height: 39px;\n // background-color: ${colors.primary};\n // transform: rotateZ(45deg);\n // }\n\n &--two {\n padding-left: 40px;\n max-width: 430px;\n\n &:before {\n content: '';\n position: absolute;\n left: -19px;\n top: 8px;\n width: 39px;\n height: 39px;\n background-color: white;\n transform: rotateZ(45deg);\n }\n }\n }\n .lightHead {\n background-color: ${colors.lp3};\n &:after {\n background-color: ${colors.lp3};\n }\n }\n .lightText {\n opacity: 0.5;\n }\n\n &__doc-title {\n margin-bottom: 10px;\n }\n form {\n .inputs {\n display: grid;\n grid-template-columns: 1fr 1fr;\n grid-gap: 14px;\n margin: 0px 0 40px 0;\n }\n }\n }\n ${media.lg(css`\n grid-template-columns: 1fr;\n `)};\n\n ${media.md(css`\n grid-template-columns: 1fr;\n .grid-item {\n padding: 30px 20px;\n &__graphic {\n height: 40px;\n h6 {\n font-size: 12px;\n }\n h3 {\n font-size: 18px;\n }\n margin-right: 20px;\n\n &:after {\n right: -14px;\n top: 6px;\n width: 28px;\n height: 28px;\n }\n\n &--two {\n padding-left: 40px;\n &:after {\n background-color: ${colors.lp3};\n }\n &:before {\n left: -14px;\n top: 6px;\n width: 28px;\n height: 28px;\n }\n }\n }\n form {\n select,\n input {\n font-size: 12px;\n }\n }\n }\n `)};\n ${media.sm(css`\n .grid-item {\n form {\n .inputs {\n grid-template-columns: 1fr;\n }\n }\n }\n `)};\n`;\n\nconst appointmentTypeOptions = [\n { label: 'Phone', value: 0 },\n { label: 'In Person', value: 1 },\n];\n\nconst mortgageTypeOptions = [\n { label: 'Discounted mortgages', value: 0 },\n { label: 'Later Life Lending', value: 1 },\n { label: 'Remortgages', value: 2 },\n { label: 'Buy-to-Let', value: 3 },\n { label: 'Credit Renew', value: 4 },\n { label: 'Discount Mortgage Scheme (DMS)', value: 5 },\n { label: 'Shared Ownership', value: 6 },\n { label: 'Help to Buy', value: 7 },\n { label: 'First Homes', value: 8 },\n { label: 'Self Build', value: 9 },\n];\n\nconst appointmentTypeToValue: Record = {\n Phone: 0,\n 'In Person': 1,\n};\n\nconst mortgageTypeToValue: Record = {\n 'Discounted mortgages': 0,\n 'Later Life Lending': 1,\n Remortgages: 2,\n 'Buy-to-Let': 3,\n 'Credit Renew': 4,\n 'Discount Mortgage Scheme (DMS)': 5,\n 'Shared Ownership': 6,\n 'Help to Buy': 7,\n 'First Homes': 8,\n 'Self Build': 9,\n};\n\nconst validationSchema = Yup.object({\n appointmentType: Yup.string().required('Required'),\n mortgageType: Yup.string().required('Required'),\n firstName: Yup.string().min(2, 'Min 2 characters').max(255, 'Max 255 characters').required('Required'),\n lastName: Yup.string().min(2, 'Min 2 characters').max(255, 'Max 255 characters').required('Required'),\n emailAddress: Yup.string().email('Invalid email address').required('Required'),\n contactNumber: Yup.string().min(2, 'Min 2 characters').max(255, 'Max 255 characters').required('Required'),\n});\n\nconst parseProductCode = () => (document.querySelector('#product') as HTMLElement).dataset.code;\n\nconst App = () => {\n const [isFormSubmitted, setFormSubmitted] = useState(false);\n const { values, handleChange, handleBlur, errors, touched, isValid, handleSubmit, isSubmitting } = useFormik({\n validationSchema,\n initialValues: {\n firstName: '',\n lastName: '',\n emailAddress: '',\n contactNumber: '',\n appointmentType: '',\n mortgageType: '',\n },\n onSubmit: async (values) => {\n setFormSubmitted(true);\n values.contactNumber = values.contactNumber.toString();\n const appointmentTypeValue = appointmentTypeToValue[values.appointmentType];\n const mortgageTypeValue = mortgageTypeToValue[values.mortgageType];\n const valuesToSend = { ...values, appointmentType: appointmentTypeValue, mortgageType: mortgageTypeValue };\n // console.log(valuesToSend);\n try {\n const response = await fetch(`/api/forms/book-appointment-existing-customer`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(valuesToSend),\n });\n\n if (!response.ok) {\n console.error('Failed to submit form:', response.status, response.statusText);\n const responseData = await response.json();\n console.error('Response data:', responseData);\n // console.log(valuesToSend);\n return;\n }\n } catch (error) {\n console.error('An error occurred while submitting the form:', error);\n }\n },\n });\n\n return (\n
\n
\n
\n

Option 01

\n
Book an appointment
\n
\n {!isFormSubmitted ? (\n <>\n

Need Advice? Unsure what’s right for you? Please book an appointment by completing the below form.

\n
\n
\n \n \n \n {appointmentTypeOptions.map((option) => (\n \n ))}\n \n \n \n \n {mortgageTypeOptions.map((option) => (\n \n ))}\n \n \n \n \n {\n // if (!/[0-9]/.test(event.key)) {\n // event.preventDefault();\n // }\n // }}\n />\n
\n\n \n
\n \n ) : (\n
\n
\n \"\"\n
\n
\n\n
Thank you for booking your appointment with us!
\n
\n

\n One of our dedicated advisors will reach out to you to confirm your appointment and provide a\n comprehensive overview of everything you should bring with you.\n

\n
\n

\n In the meantime, we have many articles available on our knowledge hub that may be of interest, including\n guides to moving home, saving for your first deposit and much more.\n

\n
\n \n \n \n
\n )}\n
\n
\n
\n

Option 02

\n
Select your own mortgage
\n
\n
\n

\n Initiate your product switch seamlessly if you are confident, your deal is coming to an end and you’re\n staying in your home. Opt for this option if you are self-assured and not in need of guidance. Click the\n link below to proceed with your application.\n

\n\n
\n
\n
\n \n \n \n
\n
\n );\n};\n\nexport default App;\n","export const checkIcon =\n 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDIiIGhlaWdodD0iNDIiIHZpZXdCb3g9IjAgMCA0MiA0MiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEyLjYgMS4wNUgyOS40QzM1Ljc2OSAxLjA1IDQwLjk1IDYuMjMxIDQwLjk1IDEyLjZWMjkuNEM0MC45NSAzNS43NjkgMzUuNzY5IDQwLjk1IDI5LjQgNDAuOTVIMi4xQzEuODIxNTIgNDAuOTUgMS41NTQ0NSA0MC44Mzk0IDEuMzU3NTQgNDAuNjQyNUMxLjE2MDYyIDQwLjQ0NTUgMS4wNSA0MC4xNzg1IDEuMDUgMzkuOVYxMi42QzEuMDUgNi4yMzEgNi4yMzEgMS4wNSAxMi42IDEuMDVaIiBzdHJva2U9IiMyQTA0MkQiIHN0cm9rZS13aWR0aD0iMi4xIi8+CjxwYXRoIGQ9Ik0yOS45ODg5IDEzLjE4OTFMMTYuNzczNiAyNi40MDQ0TDExLjk1ODMgMjEuNTg5MUMxMS41NjIyIDIxLjIwNjYgMTEuMDMxOCAyMC45OTQ5IDEwLjQ4MTIgMjAuOTk5N0M5LjkzMDU1IDIxLjAwNDUgOS40MDM4NSAyMS4yMjUzIDkuMDE0NDkgMjEuNjE0N0M4LjYyNTEzIDIyLjAwNCA4LjQwNDI4IDIyLjUzMDcgOC4zOTk0OSAyMy4wODE0QzguMzk0NzEgMjMuNjMyIDguNjA2MzggMjQuMTYyNCA4Ljk4ODkxIDI0LjU1ODVMMTUuMjg4OSAzMC44NTg1QzE1LjY4MjcgMzEuMjUyMiAxNi4yMTY4IDMxLjQ3MzQgMTYuNzczNiAzMS40NzM0QzE3LjMzMDUgMzEuNDczNCAxNy44NjQ1IDMxLjI1MjIgMTguMjU4MyAzMC44NTg1TDMyLjk1ODMgMTYuMTU4NUMzMy4zNDA4IDE1Ljc2MjQgMzMuNTUyNSAxNS4yMzIgMzMuNTQ3NyAxNC42ODE0QzMzLjU0MjkgMTQuMTMwNyAzMy4zMjIxIDEzLjYwNCAzMi45MzI3IDEzLjIxNDdDMzIuNTQzNCAxMi44MjUzIDMyLjAxNjcgMTIuNjA0NSAzMS40NjYxIDEyLjU5OTdDMzAuOTE1NCAxMi41OTQ5IDMwLjM4NSAxMi44MDY2IDI5Ljk4ODkgMTMuMTg5MVoiIGZpbGw9IiMyQTA0MkQiLz4KPC9zdmc+Cg==';\n"],"names":[],"version":3,"file":"mortgage-product.4be554b3.js.map"}