{"version":3,"file":"static/chunks/2798-6f4816e14fd79e01.js","mappings":"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","sources":["webpack://_N_E/./components/BookTopHero/index.tsx","webpack://_N_E/./components/PaymentButton/index.tsx","webpack://_N_E/./components/BookingStickyFooter/index.tsx","webpack://_N_E/./components/OpenGraphDescription/index.tsx","webpack://_N_E/./components/OpenGraphTitle/index.tsx","webpack://_N_E/./components/Section/index.tsx","webpack://_N_E/./components/ToastWrapper/index.tsx","webpack://_N_E/./components/head.js","webpack://_N_E/./context/Lead/leadReducer.ts","webpack://_N_E/./context/Lead/index.tsx","webpack://_N_E/./context/Lead/leadSession.ts","webpack://_N_E/./context/Payment/payment.machine.ts","webpack://_N_E/./context/Payment/index.tsx","webpack://_N_E/./data/cleaningPackages.ts"],"sourcesContent":["import Image from 'next/image';\nimport React from 'react';\nimport { Col, Row } from 'react-bootstrap';\nimport Section from '../Section';\nconst BookTopHero = ({ page, title, subheading }) => {\n return (\n
\n
\n
\n
\n \n \n

{title}

{subheading}

\n
\n \n
CONTACT INFORMATION
\n
\n 1\n
\n
\n
\n \n
SCHEDULE CLEANING
\n
\n 2\n
\n
\n
\n \n
REVIEW & PURCHASE
\n
\n 3\n
\n \n \n \n \n \n \n );\n};\n\nexport default BookTopHero;\n","import * as Sentry from '@sentry/node';\nimport axios from 'axios';\nimport { useRouter } from 'next/router';\nimport React, { useEffect, useState } from 'react';\nimport { Button } from 'react-bootstrap';\nimport { useSelector } from 'react-redux';\nimport PulseLoader from 'react-spinners/PulseLoader';\nimport { useLeadContext } from '../../context/Lead';\nimport { usePaymentContext } from '../../context/Payment';\n\n// import styles from './styles'\n\ninterface PaymentButtonProps {}\n\nconst PaymentButton: React.FC =\n ({}: PaymentButtonProps) => {\n const [disabled, setDisabled] = useState(false);\n const [loading, setLoading] = useState(false);\n const [customerExists, setCustomerExists] = useState(false);\n const { paymentState, sendToPaymentState } = usePaymentContext();\n const { lead } = useLeadContext();\n const router = useRouter();\n const [errorMessages, setErrorMessages] = useState([]);\n const [hover, setHover] = useState(false);\n\n useEffect(() => {\n switch (true) {\n case paymentState.matches('idle') &&\n paymentState.event.type === 'ACCEPTED':\n setDisabled(false);\n break;\n case paymentState.matches('idle'):\n setDisabled(true);\n break;\n case paymentState.matches('ready'):\n setDisabled(false);\n break;\n case paymentState.matches('transactionPending'):\n case paymentState.matches('schedulePending'):\n setDisabled(true);\n setLoading(true);\n break;\n case paymentState.matches('transactionFail'):\n case paymentState.matches('scheduleFail'):\n setDisabled(false);\n setLoading(false);\n break;\n case paymentState.matches('scheduleSuccess'):\n setLoading(false);\n break;\n default:\n break;\n }\n }, [paymentState]);\n\n useEffect(() => {\n const errors = [];\n setErrorMessages([]);\n if (\n !paymentState.context.cardValidated\n ) {\n errors.push('Please enter valid credit card info');\n }\n if (!paymentState.context.termsAccepted) {\n errors.push('Please check terms and conditions');\n }\n \n if (!paymentState.context.cardValidated) {\n setDisabled(true);\n }\n if (\n !lead.addressLineOne ||\n !lead.city ||\n !lead.state ||\n !lead.zipCode\n ) {\n errors.push('Please enter all address information');\n }\n if (\n !paymentState.context.cardValidated &&\n paymentState.context.termsAccepted\n ) {\n setDisabled(false);\n }\n \n if (errors.length > 0) {\n setErrorMessages(errors);\n }\n }, [paymentState]);\n\n const startRequest = () => {\n sendToPaymentState('START');\n };\n\n useEffect(() => {\n if (!lead?.email) return;\n axios\n .post('/api/check-if-customer-exists/', { email: lead.email })\n .then((res) => {\n if (res.status === 200) {\n setCustomerExists(res.data.data.has_completed_appointments)\n console.log('Anything')\n console.log('Does the customer exist?', customerExists)\n } else {\n setCustomerExists(false)\n }\n }).catch(err => {\n console.log('In the catch of check if customer exists')\n Sentry.captureException(err)\n });\n }, [lead.email]);\n\n return (\n <>\n setHover(false)}\n onMouseEnter={() => setHover(true)}\n onClick={() => {\n startRequest();\n }}\n className='payment-button'\n style={{ cursor: disabled ? 'not-allowed' : 'pointer' }}\n >\n
\n SCHEDULE NOW{' '}\n {loading && (\n \n \n \n )}\n
\n {errorMessages.length > 0 && !loading && (\n // \n // {!lead.zipCode\n // ? 'Please fill in all the information'\n // : !paymentState.context.cardValidated && !customerExists\n // ? 'Please enter valid credit card info'\n // : !paymentState.context.termsAccepted\n // ? 'Please check terms and conditions'\n // : !lead.city || !lead.state\n // ? 'Please enter city and state'\n // : 'Please enter valid credit card info'}\n\n // \n\n
    \n {errorMessages.map((error, index) => (\n
  1. {error}
  2. \n ))}\n
\n )}\n \n \n );\n };\n\nPaymentButton.defaultProps = {\n // add payment button default props here\n // className: null,\n};\n\nexport default PaymentButton;\n","import { faInfoCircle, faWindowClose } from '@fortawesome/free-solid-svg-icons';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { DateTime } from 'luxon';\nimport moment from 'moment';\nimport Link from 'next/link';\nimport { useRouter } from 'next/router';\nimport React, { useEffect, useState } from 'react';\nimport {\n Button,\n Col,\n Container,\n ListGroup,\n OverlayTrigger,\n Popover,\n Row,\n Toast,\n} from 'react-bootstrap';\n// import { useSelector } from 'react-redux';\nimport ScaleLoader from 'react-spinners/ScaleLoader';\nimport { useFranchiseeContext } from '../../context/Franchisee';\nimport { useLeadContext } from '../../context/Lead';\nimport { getPackageById } from '../../data/cleaningPackages';\nimport { pink500 } from '../../ui/colors';\nimport PaymentButton from '../PaymentButton';\nimport ToastWrapper from '../ToastWrapper';\n// import styles from './styles'\ninterface BookingStickyFooterProps {\n tip?: any;\n}\nconst BookingStickyFooter: React.FC = ({\n tip = 0,\n}: BookingStickyFooterProps) => {\n const pageName = useRouter().asPath;\n const { franchisee } = useFranchiseeContext();\n const { lead } = useLeadContext();\n const [price, setPrice] = useState(0);\n const [disabled, setDisabled] = useState(true);\n const [showToast, setShowToast] = useState(false);\n const [loading, setLoading] = useState(true);\n const [serviceFee, setServiceFee] = useState(0.0);\n const [tax, setTax] = useState('0.00');\n\n const convertPackageDurationToHours = (duration) => {\n const durationRegex = /^P(?:(\\d+)D)?T(?:(\\d+)H)?(?:(\\d+)M)?(?:(\\d+)S)?$/;\n\n if (!duration) {\n return 0;\n }\n if (durationRegex.test(duration)) {\n return moment.duration(duration).asHours();\n }\n const [hours, minutes, seconds] = duration.split(':').map(parseFloat);\n const decimalHours = hours + minutes / 60 + seconds / 3600;\n return decimalHours;\n };\n\n const options = {\n weekday: 'long',\n year: 'numeric',\n month: 'long',\n day: 'numeric',\n };\n const dwtPackageIDs = [6312, 5395, 5708, 7354, 8479, 5708, 7729, 6979, 8104];\n const addToCart = () => {\n // console.log(`The lead is: ${lead}`);\n const packageId =\n typeof lead.package === 'string'\n ? parseInt(lead.package, 10)\n : lead.package;\n const selectedPackage = getPackageById(packageId);\n };\n useEffect(() => {\n let leadTotalPrice = (\n Number(lead.price) +\n Number(lead.tax ?? 0) +\n Number(lead.serviceFee ?? 0)\n ).toFixed(2);\n if (lead.watchedVideo) {\n leadTotalPrice = (Number(leadTotalPrice) - 10.0).toFixed(2);\n }\n if (lead.tip > 0) {\n leadTotalPrice = (Number(leadTotalPrice) + Number(lead.tip)).toFixed(2);\n }\n if (typeof lead?.totalPrice === 'string') {\n setPrice(leadTotalPrice);\n setLoading(true);\n } else {\n setPrice(leadTotalPrice ?? 0);\n setLoading(true);\n }\n setTimeout(() => setLoading(false), 800);\n // setLoading(false);\n switch (pageName) {\n case '/confirm/':\n break;\n case '/schedule/':\n setDisabled(\n lead.dateTime === null ||\n DateTime.fromISO(lead?.dateTime) <=\n DateTime.local().plus({ hours: 8 })\n );\n break;\n case '/book/':\n default:\n setDisabled(lead?.package === undefined);\n break;\n }\n }, [lead]);\n\n function checkLead() {\n if (\n lead?.squareFootage === 0 ||\n lead?.bathrooms === 0 ||\n lead?.bedrooms === 0 ||\n lead?.people === 0 ||\n lead?.package === null\n ) {\n return true;\n }\n }\n const openDate: any = DateTime.fromISO(franchisee.openDate, {\n setZone: true,\n });\n const theDate = new Date();\n const currentDate: any = DateTime.fromJSDate(theDate);\n\n useEffect(() => {\n setServiceFee(Number(lead.serviceFee));\n setTax(lead.tax);\n }, [lead]);\n\n const popover = (\n \n \n {lead.totalPrice && (\n \n
\n {\n document.body.click();\n }}\n />\n
\n \n {typeof lead.price === 'string' ? (\n \n

Price:

\n

${Number(lead.price).toFixed(2)}

\n \n ) : (\n \n

Price:

\n

${Number(lead.price).toFixed(2)}

\n \n )}\n {lead.watchedVideo && (\n \n

Discount:

\n

-$10.00

\n \n )}\n {serviceFee > 0 && (\n <>\n {' '}\n \n

Service Fee:

\n

${serviceFee.toFixed(2)}

\n \n \n {' '}\n \n This service fee helps us operate Two Maids.\n \n \n \n )}{' '}\n {(tip > 0 || lead.tip > 0) && (\n \n

Tip:

\n

${tip > 0 ? tip : lead.tip}

\n \n )}\n {Number(tax) > 0 && (\n <>\n \n

Estimated Tax:

\n

$ {Number(tax).toFixed(2)}

\n \n \n {' '}\n \n Finalized tax will be shown on your oder receipt.\n \n \n \n )}\n \n

Total:

\n

\n $\n {lead.tip == 0 && tip > 0\n ? (Number(price) + Number(tip)).toFixed(2)\n : Number(price).toFixed(2)}\n

\n \n
\n \n )}\n \n \n );\n\n const popover_dwt = (\n \n \n

\n A team of 2 people and we will be there for\n {` ${convertPackageDurationToHours(lead.duration)} \n hours.`}\n

\n \n \n );\n\n return (\n <>\n \n \n \n \n \n \n \n \n
\n {(lead.totalPrice > 0) && (\n Estimated Price\n )}\n
\n \n {loading && (\n \n )}\n {tip <= 0 &&\n !loading &&\n `$${\n !isNaN(Number(lead.totalPrice))\n ? Number(lead.totalPrice).toFixed(2)\n : '--'\n }`}\n {tip > 0 &&\n !loading &&\n `$${\n !isNaN(Number(lead.totalPrice))\n ? Number(lead.totalPrice).toFixed(2)\n : '--'\n }`}\n \n {lead.package == 1 && lead.duration && (\n <>\n \n Duration:{' '}\n {convertPackageDurationToHours(\n lead.duration\n )}{' '}\n Hours\n \n \n \n \n \n
\n \n \n \n )}\n
\n\n {price > 0 && (\n \n
\n
\n \n \n
\n
\n \n \n )}\n \n \n \n \n \n {pageName === '/book/' && (\n <>\n {franchisee.teamCount > 0 ||\n franchisee.fauxfranchisee > 1 ||\n (franchisee.teamCount > 0 &&\n currentDate > openDate) ? (\n \n \n \n ) : (\n \n \n \n )}\n \n )}\n {pageName === '/schedule/' && (\n <>\n \n addToCart()}\n disabled={disabled}\n data-next-step\n >\n REVIEW & PURCHASE\n \n \n \n )}\n {pageName === '/confirm/' && }\n \n
\n \n
\n \n
\n
\n \n \n setShowToast(false)}\n delay={3000}\n autohide\n >\n \n \n \n In Development\n \n \n \n \n \n \n );\n};\nBookingStickyFooter.defaultProps = {\n // add booking sticky footer default props here\n // className: null,\n};\nexport default BookingStickyFooter;\n","import React from 'react';\nimport Head from 'next/head';\n\ninterface OpenGraphDescriptionProps {\n // add open graph description props here\n children: React.ReactNode;\n}\n\nconst OpenGraphDescription: React.FC = ({\n children,\n}: OpenGraphDescriptionProps) => {\n const description = children.toString();\n\n return (\n \n {/* Add open graph description Content Here */}\n \n \n \n \n );\n};\n\nexport default OpenGraphDescription;\n","import React from 'react';\nimport Head from 'next/head';\n\ninterface OpenGraphTitleProps{\n title: string;\n}\n\nconst OpenGraphTitle: React.FC = ({ title }: OpenGraphTitleProps) => (\n \n {title}\n \n \n\n \n);\n\nexport default OpenGraphTitle;\n","/**\n * Create a page section with different background colors, vertical padding and widths\n * Defaults to transparent, top and bottom, col-xs-12/col-md-11/col-lg-10\n */\nimport React from 'react';\nimport { Row, Col, Container } from 'react-bootstrap';\n// import style from './Section.module.scss';\n\ninterface SectionProps {\n children?: React.ReactNode;\n className?: string;\n color?: string;\n padding?: string;\n xs?: number;\n md?: number;\n lg?: number;\n}\n\nconst Section: React.FC = ({\n xs,\n md,\n lg,\n color,\n className,\n children,\n padding,\n}: SectionProps) => {\n const sectionColor: string = color || 'transparent';\n const sectionXs: number = xs || 12;\n const sectionMd: number = md || 11;\n const sectionLg: number = lg || 10;\n let sectionPadding: string | boolean = 'y';\n\n if (padding === 'top') {\n sectionPadding = 't';\n } else if (padding === 'bottom') {\n sectionPadding = 'b';\n } else if (padding === 'none' || padding === null) {\n sectionPadding = false;\n }\n\n return (\n \n {children && (\n \n \n \n {children || null}\n \n \n \n )}\n \n );\n};\n\nexport default Section;\n","import React from 'react';\n// import styles from './styles'\n\ninterface ToastWrapperProps{\n // add toast wrapper props here\n children : React.ReactNode;\n className?: string;\n\n}\n\nconst ToastWrapper: React.FC = ({\n className,\n children,\n}: ToastWrapperProps) => {\n React.useEffect(() => {\n // console.log('Toast Wrapper added');\n }, []);\n return (\n
\n { children }\n
\n );\n};\n\nToastWrapper.defaultProps = {\n // add toast wrapper default props here\n className: null,\n};\n\nexport default ToastWrapper;\n","/**\n * SEO component that sets up the and page metadata.\n *\n * @link https://github.com/nfl/react-helmet\n */\nimport { datadogRum } from '@datadog/browser-rum';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport Helmet from 'react-helmet';\nimport { pink500 } from '../ui/colors';\n\nconst colorTheme = pink500;\n\nfunction Head({ slug, description, lang, meta, title }) {\n const metaDescription = description || 'Meta';\n // const metaDescription = 'Meta';\n datadogRum.init({\n applicationId: '2b8a7178-88fd-4eae-b1fc-d466adbcda4c',\n clientToken: 'puba6170b123e376449351616f417bffbae',\n site: 'datadoghq.com',\n service: 'hubsite',\n\n sessionSampleRate: 100,\n sessionReplaySampleRate: 100, // if not included, the default is 100\n trackResources: true,\n trackLongTasks: true,\n trackUserInteractions: true,\n silentMultipleInit: true,\n });\n\n datadogRum.startSessionReplayRecording();\n return (\n \n {/* */}\n {/* */}\n \n );\n}\n\nHead.defaultProps = {\n lang: 'en',\n meta: [],\n description: '',\n};\n\nHead.propTypes = {\n description: PropTypes.string,\n lang: PropTypes.string,\n meta: PropTypes.arrayOf(PropTypes.object),\n title: PropTypes.string.isRequired,\n};\n\nexport default Head;\n","/* eslint-disable no-param-reassign */\nimport { Draft } from 'immer';\nimport * as Sentry from '@sentry/node';\nimport { LeadState } from './lead.types';\nimport leadSession from './leadSession';\n\nexport const REFRESH = 'REFRESH';\nexport const INIT = 'INIT';\nexport const BILLING_INFO = 'BILLING_INFO';\nexport const HOME_INFO = 'HOME_INFO';\nexport const SET_PACKAGE = 'SET_PACKAGE';\nexport const SET_DISCOUNT = 'SET_DISCOUNT';\nexport const SCHEDULE = 'SCHEDULE';\nexport const SET_RESIDENCE = 'SET_RESIDENCE';\nexport const SET_TIP = 'SET_TIP';\nexport const SET_APPOINTMENT = 'SET_APPOINTMENT';\nexport const CLEAR = 'CLEAR';\n\ntype ActionType = typeof REFRESH\n | typeof INIT\n | typeof BILLING_INFO\n | typeof HOME_INFO\n | typeof SET_PACKAGE\n | typeof SET_DISCOUNT\n | typeof SCHEDULE\n | typeof SET_RESIDENCE\n | typeof SET_TIP\n | typeof SET_APPOINTMENT\n | typeof CLEAR;\n\nexport type LeadAction = {\n type: ActionType;\n payload: Partial;\n // fieldName? : string;\n}\n\nconst integerFields = new Set(['price', '']);\n\nfunction leadReducer(draft : Draft, action : LeadAction) {\n\n if (action.payload == undefined) { return }\n\n switch (action.type) {\n case REFRESH:\n /* add lead id to session */\n leadSession.set(action.payload.id, action.payload.franchisee);\n Object.keys(action.payload)\n .forEach((key) => {\n if (integerFields.has(key)) {\n draft[key] = parseInt(action.payload[key], 10);\n } else {\n draft[key] = action.payload[key];\n }\n });\n\n return draft;\n\n case INIT:\n case BILLING_INFO:\n /* add lead id to session */\n leadSession.set(action.payload.id, action.payload.franchisee);\n\n draft.id = action.payload.id;\n draft.firstName = action.payload.firstName;\n draft.lastName = action.payload.lastName;\n draft.email = action.payload.email;\n draft.phonePrimary = action.payload.phonePrimary;\n draft.step = action.payload.step;\n draft.franchisee = action.payload.franchisee;\n draft.ipAddress = action.payload.ipAddress;\n draft.leadNotification = action.payload.leadNotification;\n draft.zipCode = action.payload.zipCode;\n draft.city = action.payload.city;\n draft.state = action.payload.state;\n draft.bedrooms = action.payload.bedrooms;\n draft.bathrooms = action.payload.bathrooms;\n draft.people = action.payload.people;\n draft.pets = action.payload.pets;\n draft.squareFootage = action.payload.squareFootage;\n\n Sentry.setExtra('lead', {\n id: action.payload.id,\n firstName: action.payload.firstName,\n lastName: action.payload.lastName,\n email: action.payload.email,\n ipaddress: action.payload.ipAddress,\n franchisee: action.payload.franchisee,\n zipcode: action.payload.zipCode\n });\n\n Sentry.setTag('email', action.payload.email);\n return draft;\n\n case HOME_INFO:\n draft.bedrooms = action.payload.bedrooms;\n draft.bathrooms = action.payload.bathrooms;\n draft.people = action.payload.people;\n draft.pets = action.payload.pets;\n draft.squareFootage = action.payload.squareFootage;\n draft.step = action.payload.step;\n\n Sentry.setExtra('homeInfo', {\n bedrooms: action.payload.bedrooms,\n bathrooms: action.payload.bathrooms,\n people: action.payload.people,\n pets: action.payload.pets,\n squareFootage: action.payload.squareFootage,\n });\n return draft;\n\n case SET_PACKAGE:\n draft.package = action.payload.package;\n draft.price = action.payload.price;\n draft.tax = action.payload.tax;\n draft.serviceFee = action.payload.serviceFee;\n draft.totalPrice = action.payload.totalPrice;\n // draft.useAltPackage = action.payload.useAltPackage;\n draft.step = action.payload.step;\n draft.duration = action.payload.duration;\n draft.watchedVideo = action.payload.watchedVideo;\n\n Sentry.setExtra('packageInfo', {\n package: action.payload.package,\n price: action.payload.price,\n tax: action.payload.tax,\n totalPrice: action.payload.totalPrice,\n // useAltPackage: action.payload.useAltPackage,\n duration: action.payload.duration,\n });\n\n return draft;\n\n case SET_DISCOUNT:\n draft.watchedVideo = true;\n draft.step = action.payload.step;\n\n Sentry.setTag('watchedVideo', 'true');\n return draft;\n\n case SCHEDULE:\n // console.log(\"The lead schedule payload is: \", action.payload);\n draft.dateTime = action.payload.dateTime;\n draft.team = action.payload.team;\n leadSession.set(\n action.payload.id, // leadId\n action.payload.franchisee, // franchiseeId\n action.payload.dateTime, // cleaningDate\n );\n\n Sentry.setExtra('schedule', {\n dateTime: action.payload.dateTime,\n team: action.payload.team,\n franchisee: action.payload.franchisee,\n });\n return draft;\n\n case SET_RESIDENCE:\n // console.log(\"The lead residence payload is: \", action.payload);\n draft.addressLineOne = action.payload?.addressLineOne ?? '';\n draft.addressLineTwo = action.payload?.addressLineTwo ?? '';\n draft.city = action.payload?.city ?? '';\n draft.state = action.payload?.state ?? '';\n draft.zipCode = action.payload?.zipCode ?? '';\n draft.step = action.payload?.step ?? 0;\n\n return draft;\n\n case SET_TIP:\n draft.tip = action.payload.tip;\n draft.totalPrice = action.payload.totalPrice;\n\n return draft;\n\n case SET_APPOINTMENT:\n draft.appointment = action.payload.appointment;\n\n leadSession.set(\n action.payload.id,\n action.payload.franchisee,\n action.payload.dateTime,\n action.payload.appointment,\n );\n\n return draft;\n\n case CLEAR:\n leadSession.clear();\n\n draft.id = -1;\n draft.firstName = '';\n draft.lastName = '';\n draft.email = '';\n draft.phonePrimary = '';\n draft.franchisee = -1;\n\n [\n 'step',\n 'source',\n 'referal',\n 'hasBeenContacted',\n 'lastContacted',\n 'hasBeenEmailed',\n 'ipAddress',\n 'people',\n 'pets',\n 'bedrooms',\n 'bathrooms',\n 'squareFootage',\n 'package',\n 'price',\n 'tax',\n 'tip',\n 'totalPrice',\n 'dateTime',\n 'duration',\n // 'useAltPackage',\n 'team',\n 'addressLineOne',\n 'addressLineTwo',\n 'city',\n 'state',\n 'zipCode',\n 'customer',\n 'watchedVideo',\n 'comments',\n 'watchedVideo',\n 'appointment',\n ].forEach((key) => {\n delete draft[key];\n });\n\n return draft;\n\n default:\n return draft;\n }\n}\n\nexport default leadReducer;\n","import React, {\n createContext, useContext, useEffect,\n} from 'react';\n\nimport * as Sentry from '@sentry/node';\n\nimport camelcaseKeys from 'camelcase-keys';\nimport { useImmerReducer } from 'use-immer';\nimport leadReducer, {\n LeadAction,\n REFRESH,\n INIT,\n BILLING_INFO,\n HOME_INFO,\n SET_PACKAGE,\n SET_DISCOUNT,\n SCHEDULE,\n SET_RESIDENCE,\n SET_TIP,\n SET_APPOINTMENT,\n CLEAR,\n} from './leadReducer';\nimport { LeadState } from './lead.types';\nimport leadSession from './leadSession';\nimport emptyLeadState from './emptyLeadState.json';\n\nconst LeadContext = createContext(null);\n\nexport type LeadContextHook = {\n lead: LeadState;\n dispatchLead: Function;\n}\n\ninterface LeadProviderProps {\n children: React.ReactNode;\n}\n\nconst LeadProvider : React.FC = ({ children } : LeadProviderProps) => {\n const [\n lead,\n dispatchLead,\n ] = useImmerReducer(leadReducer, emptyLeadState);\n\n useEffect(() => {\n // console.log('Getting Lead Session via Provider');\n leadSession.get()\n .then((data) => {\n // console.log('Lead Provider Use Effect');\n // console.log(data);\n if (data?.data?.lead) {\n const leadData = camelcaseKeys(data.data.lead);\n // console.log(leadData);\n dispatchLead({ type: REFRESH, payload: leadData });\n // setLead(leadData);\n }\n })\n .catch((error) => {\n // console.log('Catch Block');\n // console.log(error);\n Sentry.captureException(error);\n return error;\n });\n }, []);\n\n return (\n \n {children}\n \n );\n};\n\nconst useLeadContext = () : LeadContextHook => useContext(LeadContext);\n\nexport {\n LeadContext as default,\n LeadProvider,\n useLeadContext,\n REFRESH,\n INIT,\n BILLING_INFO,\n HOME_INFO,\n SET_PACKAGE,\n SET_DISCOUNT,\n SCHEDULE,\n SET_RESIDENCE,\n SET_TIP,\n SET_APPOINTMENT,\n CLEAR,\n};\n","import axios from 'axios';\n\nimport { LeadAppointment } from './lead.types';\n\nconst leadRequest = axios.create({\n validateStatus: (status) => status >= 200 && status < 500,\n});\n\ntype LeadRequestData = {\n leadId: number;\n franchiseeId?: number;\n cleaningDate?: string;\n appointment?: LeadAppointment\n}\n\nconst leadSession = ({\n get: async () => {\n const response = await leadRequest.get('/api/lead-session/')\n .then(({ data }) => data)\n .catch((error) => error);\n return response;\n },\n set: async (\n leadId : number,\n franchiseeId?: number,\n cleaningDate?: string,\n appointment?: LeadAppointment,\n ) => {\n let requestData : LeadRequestData = { leadId };\n if (franchiseeId) {\n requestData.franchiseeId = franchiseeId;\n }\n if (cleaningDate) {\n requestData.cleaningDate = cleaningDate;\n }\n if (appointment) {\n requestData.appointment = appointment;\n }\n // console.log(\"Setting lead with data: \", requestData)\n const response = await leadRequest.post('/api/lead-session/', requestData)\n .then(({ data }) => data)\n .catch((error) => error);\n return response;\n },\n clear: async () => {\n const response = await leadRequest.delete('/api/lead-session/', {})\n .then(({ data }) => data)\n .catch((error) => error);\n return response;\n },\n\n});\n\nexport default leadSession;\n","import { Machine, assign } from 'xstate';\n\ninterface PaymentMachineContext {\n cardValidated: boolean;\n termsAccepted: boolean;\n retryCount: number;\n}\n\nconst setCardToValid = assign((context: PaymentMachineContext) => ({\n ...context,\n cardValidated: true,\n}));\n\nconst setCardToInvalid = assign((context: PaymentMachineContext) => ({\n ...context,\n cardValidated: false,\n}));\n\nconst setTermsAccepted = assign((context : PaymentMachineContext) => ({\n ...context,\n termsAccepted: true,\n}));\n\nconst setTermsRefused = assign((context : PaymentMachineContext) => ({\n ...context,\n termsAccepted: false,\n}));\n\nfunction transactionReady(context : PaymentMachineContext) {\n return context.cardValidated && context.termsAccepted;\n}\n\nexport default Machine({\n id: 'payment',\n initial: 'idle',\n context: {\n cardValidated: false,\n termsAccepted: false,\n retryCount: 0,\n\n },\n states: {\n idle: {\n on: {\n READY: {\n target: 'ready',\n cond: 'transactionReady',\n },\n ACCEPTED: {\n actions: 'setTermsAccepted',\n },\n REFUSED: {\n actions: 'setTermsRefused',\n },\n CARD_VALID: {\n actions: 'setCardToValid',\n },\n CARD_INVALID: {\n actions: 'setCardToInvalid',\n },\n },\n },\n ready: {\n on: {\n START: {\n target: 'transactionPending',\n cond: 'transactionReady',\n },\n REFUSED: {\n target: 'idle',\n actions: 'setTermsRefused',\n },\n CARD_INVALID: {\n target: 'idle',\n actions: 'setCardInvalid',\n },\n },\n },\n transactionPending: {\n on: {\n RESOLVE: 'schedulePending',\n REJECT: 'transactionFail',\n },\n },\n transactionFail: {\n on: {\n DUPLICATE: 'schedulePending',\n DECLINED: {\n target: 'idle',\n actions: [\n 'setCardToInvalid',\n ],\n },\n ERROR: {\n target: 'idle',\n actions: 'setCardToInvalid',\n },\n\n },\n },\n\n schedulePending: {\n on: {\n SUCCESS: 'scheduleSuccess',\n REJECT: 'scheduleFail',\n ERROR: 'scheduleFail',\n },\n },\n scheduleFail: {\n on: {\n\n RETRY: 'schedulePending',\n ERROR: {\n target: 'idle',\n actions: setCardToInvalid,\n\n },\n },\n },\n scheduleSuccess: {\n type: 'final',\n },\n\n },\n}, {\n actions: {\n setCardToValid,\n setCardToInvalid,\n setTermsAccepted,\n setTermsRefused,\n },\n guards: {\n transactionReady,\n },\n});\n","import React, { createContext, useContext } from 'react';\nimport { useMachine } from '@xstate/react';\nimport paymentMachine from './payment.machine';\n\nconst PaymentContext = createContext(null);\n\nexport type PaymentContextHook = {\n paymentState: any;\n sendToPaymentState: Function;\n paymentService: any;\n};\n\ninterface PaymentProviderProps {\n children: React.ReactNode;\n}\n\nconst PaymentProvider: React.FC = ({\n children,\n} : PaymentProviderProps) => {\n const [paymentState, sendToPaymentState, paymentService] = useMachine(paymentMachine);\n return (\n \n { children }\n \n );\n};\n\nconst usePaymentContext = () : PaymentContextHook => useContext(PaymentContext);\n\nexport {\n PaymentContext as default,\n PaymentProvider,\n usePaymentContext,\n};\n","export type CleaningPackageData = {\n id: number;\n name: string;\n slug?: string;\n description: string;\n}\n\nexport const single : Array = [\n {\n id: 1,\n name: 'Design with Time',\n slug: 'one-time/design-with-time/',\n description: \"Our Design with Time Cleaning Package is perfect for homeowners looking for a one-time clean or occasional services. It's like creating your own custom cleaning plan! With sessions lasting from 2 to 5 hours, your cleaning team will tackle your tasks based on your priorities. We'll strive to finish everything on your list within the time frame you've chosen. Our teams are motivated to deliver top-notch results, so they'll work efficiently to complete your tasks within the allotted time. Keep in mind, you're paying for time that can vary based on the complexity of the job. If we need more time, we'll gladly work with you to schedule additional hours. Have a lengthy to-do list? Explore our Deep Clean Package for a more comprehensive cleaning experience.\",\n },\n {\n id: 9,\n name: 'Deep Clean',\n slug: 'one-time/deep-cleaning/',\n description: 'Our Deep Cleaning Package is the most thorough cleaning service. The most significant difference between the Deep Cleaning Package and our other cleaning packages is the amount of time and detail we spend cleaning what we refer to as your vertical surfaces. Vertical surfaces include baseboards, trim work, interior windows, blinds, exterior cabinets/drawers, light fixtures, and doors.',\n },\n {\n id: 17,\n name: 'Move In/Move Out',\n slug: 'one-time/move/',\n description: 'Our Empty Home Move In/Out Cleaning Package is perfect for the homeowner who needs a vacant home, apartment, or condo cleaned. This package will help ensure your home is move-in ready! To ensure the highest quality of service, personal belongings must be removed prior to your cleaning.',\n },\n];\n\nexport const weekly : Array = [\n {\n id: 6,\n name: 'Premium Weekly',\n slug: 'recurring/premium/',\n description: \"The Premium Maintenance Cleaning package offers thorough cleaning service for customers that desire a home cleaning on a regular basis. To maintain the standard on cleanliness, Two Maids will clean vertical surfaces such as windows, doors, and baseboards in a rotation each cleaning throughout the life of the recurrence. It's best to start services with a Deep Clean to tackle any build-up and ensure all vertical surfaces are thoroughly cleaning on the first visit.\",\n },\n {\n id: 10,\n name: 'Alternating Weekly',\n slug: 'recurring/alternating/',\n description: 'With the Alternating Cleaning Package we are able to alternate your cleaning services between our Premium and Touch-Up cleaning services.\\nThis specific cleaning package is best suited for the homeowner who does not require detailed cleaning on a regular basis, but still wishes to receive high quality house cleaning once a week, or every other week. With this package, our team of Personal House Cleaners will rotate between the Premium and Touch Up service packages, performing tasks related to each service during each visit. Please review the descriptions for the Premium and Touch Up packages to fully understand what is offered in each alternating service.',\n },\n];\n\nexport const biweekly : Array = [\n {\n id: 5,\n name: 'Premium Biweekly',\n slug: 'recurring/premium/',\n description: \"The Premium Maintenance Cleaning package offers thorough cleaning service for customers that desire a home cleaning on a regular basis. To maintain the standard on cleanliness, Two Maids will clean vertical surfaces such as windows, doors, and baseboards in a rotation each cleaning throughout the life of the recurrence. It's best to start services with a Deep Clean to tackle any build-up and ensure all vertical surfaces are thoroughly cleaning on the first visit.\",\n },\n {\n id: 2,\n name: 'Alternating Biweekly',\n slug: 'recurring/alternating/',\n description: 'With the Alternating Cleaning Package we are able to alternate your cleaning services between our Premium and Touch-Up cleaning services.\\nThis specific cleaning package is best suited for the homeowner who does not require detailed cleaning on a regular basis, but still wishes to receive high quality house cleaning once a week, or every other week. With this package, our team of Personal House Cleaners will rotate between the Premium and Touch Up service packages, performing tasks related to each service during each visit. Please review the descriptions for the Premium and Touch Up packages to fully understand what is offered in each alternating service.',\n },\n];\nexport const monthly: Array = [\n {\n id: 4,\n name: 'Premium Monthly',\n slug: 'recurring/premium/',\n description: \"The Premium Maintenance Cleaning package offers thorough cleaning service for customers that desire a home cleaning on a regular basis. To maintain the standard on cleanliness, Two Maids will clean vertical surfaces such as windows, doors, and baseboards in a rotation each cleaning throughout the life of the recurrence. It's best to start services with a Deep Clean to tackle any build-up and ensure all vertical surfaces are thoroughly cleaning on the first visit.\",\n },\n];\nexport const allPackages : Array = [\n ...single, ...weekly, ...biweekly, ...monthly,\n];\n\nexport const getPackageById = (packageId: number): CleaningPackageData => {\n const packages = allPackages.filter(({ id }) => id === packageId);\n if (packages.length === 1) return packages[0];\n return ({\n id: -1,\n name: 'No Package Selected',\n description: '',\n });\n};\n\nexport default ({\n single, weekly, biweekly, monthly,\n});\n"],"names":["page","title","subheading","className","xs","lg","xl","style","opacity","PaymentButton","useState","disabled","setDisabled","loading","setLoading","customerExists","setCustomerExists","usePaymentContext","paymentState","sendToPaymentState","lead","useLeadContext","useRouter","errorMessages","setErrorMessages","hover","setHover","useEffect","matches","event","type","errors","context","cardValidated","push","termsAccepted","addressLineOne","city","state","zipCode","length","email","axios","then","res","status","data","has_completed_appointments","console","log","err","Sentry","Button","id","onMouseLeave","onMouseEnter","onClick","cursor","size","color","map","error","index","defaultProps","BookingStickyFooter","tip","pageName","asPath","franchisee","useFranchiseeContext","price","setPrice","showToast","setShowToast","serviceFee","setServiceFee","tax","setTax","convertPackageDurationToHours","duration","test","moment","asHours","split","parseFloat","leadTotalPrice","Number","toFixed","watchedVideo","totalPrice","setTimeout","dateTime","DateTime","plus","hours","undefined","openDate","setZone","theDate","Date","currentDate","popover","Popover","background","zIndex","marginBottom","width","maxWidth","borderRadius","boxShadow","Col","padding","icon","faWindowClose","document","body","click","Row","marginRight","fontSize","paddingTop","popover_dwt","Container","md","position","height","pink500","isNaN","display","alignItems","justifyContent","paddingRight","OverlayTrigger","trigger","overlay","rootClose","faInfoCircle","teamCount","fauxfranchisee","href","packageId","parseInt","getPackageById","addToCart","ToastWrapper","Toast","show","onClose","delay","autohide","ListGroup","variant","description","children","toString","name","content","property","sectionColor","sectionXs","sectionMd","sectionLg","sectionPadding","React","colorTheme","Head","slug","lang","meta","metaDescription","datadogRum","applicationId","clientToken","site","service","sessionSampleRate","sessionReplaySampleRate","trackResources","trackLongTasks","trackUserInteractions","silentMultipleInit","htmlAttributes","bodyAttributes","class","titleTemplate","link","rel","sizes","concat","REFRESH","BILLING_INFO","HOME_INFO","SET_PACKAGE","SCHEDULE","SET_RESIDENCE","SET_TIP","SET_APPOINTMENT","CLEAR","integerFields","Set","draft","action","payload","leadSession","Object","keys","forEach","key","has","firstName","lastName","phonePrimary","step","ipAddress","leadNotification","bedrooms","bathrooms","people","pets","squareFootage","ipaddress","zipcode","package","team","addressLineTwo","appointment","LeadContext","createContext","LeadProvider","useImmerReducer","leadReducer","emptyLeadState","dispatchLead","leadData","camelcaseKeys","Provider","value","useContext","leadRequest","validateStatus","get","response","set","leadId","franchiseeId","cleaningDate","requestData","post","clear","setCardToValid","assign","setCardToInvalid","setTermsAccepted","setTermsRefused","Machine","initial","retryCount","states","idle","on","READY","target","cond","ACCEPTED","actions","REFUSED","CARD_VALID","CARD_INVALID","ready","START","transactionPending","RESOLVE","REJECT","transactionFail","DUPLICATE","DECLINED","ERROR","schedulePending","SUCCESS","scheduleFail","RETRY","scheduleSuccess","guards","transactionReady","PaymentContext","PaymentProvider","useMachine","paymentMachine","paymentService","single","weekly","biweekly","monthly","allPackages","packages","filter"],"sourceRoot":""}