{"version":3,"sources":["components/UI/Accordion.js","components/UI/TextInput.js","components/Steps/Location.js","components/UI/Progress.js","components/UI/RadioInput.js","components/Steps/Move.js","services/leadSubmissionApi.ts","services/leadSubmissionLMPApi.ts","components/WindowWarning.js","components/Steps/Quote.js","services/instaQuoteApi.ts","services/agentAppointmentDetailApi.ts","components/Steps/Contact.js","components/Steps/Loading.js","components/Steps/Confirm.js","components/OnlineBooking.js","components/svgs/svg.js","App.js","index.js"],"names":["Accordion","_ref","title","children","open","date","isOpen","setOpen","React","useState","createElement","className","concat","onClick","e","preventDefault","window","TextInput","Component","render","label","id","placeholder","svg","viewBox","value","onChange","required","isValid","validationMessage","isGoogleAutoFill","onPlaceSelected","this","props","renderInput","renderSvg","Autocomplete","apiKey","selected","a","c","options","types","componentRestrictions","country","type","aria-hidden","focusable","xlinkHref","htmlFor","Location","constructor","arguments","continue","values","initForm","handleValidationFields","step1FormValid","nextStep","ga","fields","hitType","event_category","eventAction","gtag","err","console","log","previous","prevStep","componentDidMount","scrollTo","handleChange","updateInputValue","document","getElementById","movingFromStreet","formErrors","movingFromStreetErrMsg","movingFromValid","movingFromUnit","movingToStreet","movingToStreetErrMsg","movingToValid","movingToUnit","Progress","jumpToStep","step","activeStep","isDataByLMPID","href","step2FormValid","movingDate","toLocaleDateString","houseSize","movingVehicle","step3FormValid","contactName","contactEmail","contactPhone","quote","RadioInput","name","subLabel","checked","handleDateChange","DatePicker","minDate","Date","dateFormat","inline","formatWeekDay","nameOfDay","substr","leadSubmissionApi","local","handleLeadSubmission","bookAppointment","length","undefined","requestModel","movingFromAddrComponent","MovingFromInput","MovingFromAddress","MovingFromCity","MovingFromState","MovingFromZip","MovingFromCountryCode","movingToAddrComponent","MovingToInput","MovingToAddress","MovingToCity","MovingToState","MovingToZip","MovingToCountryCode","movingDateString","getHomeSizeforAPI","referralCode","prevPageUrlReferral","vendorName","vendorId","verificationToken","agentCode","appointmentDateString","appointmentTimeString","split","agentAllocationId","requestOptions","method","headers","body","URLSearchParams","apiSuccess","fetch","then","response","ok","Error","json","data","error","catch","leadSubmissionLMPApi","getCookie","cookieValue","cookie","cookies","i","trim","substring","decodeURI","submissionModel","LeadId","JSON","stringify","WindowWarning","useEffect","unloadCallback","event","submitLead","leadSuccess","postLeadThruApi","returnValue","addEventListener","removeEventListener","Quote","submission","handleOnlineBookingFinalResponse","handleAptDateChange","handleTimeChange","isMoveWithin7Days","isLMPID","errorMessage","errorMsg","isWeekday","day","getDay","Fragment","enable","appointmentDate","agentAppointmentStartDate","maxDate","filterDate","appointmentTime","excludeTimes","agentAppointmentBusySlotsUpdated","includeTimes","agentOperatingHours","showTimeSelect","showTimeSelectOnly","timeFormat","timeIntervals","isOutOfAreaMove","class","excludeDates","agentAppointmentNextHoliday","minTime","setHours","setMinutes","maxTime","instaQuoteApi","moveToNextStep","handleInstaQuote","agentAppointmentDetailApi","handleAgentAppointmentDetailFromApi","isLocalMove","Success","Contact","initStep3From","getAppointmentDataFromApi","handleInstaQuotePriceRance","GetInstaquoteData","instaQuoteSuccess","GetAgentAppointmentDetail","agentAppDetailSuccess","contactNameValid","contactNameErrMsg","contactEmailValid","contactEmailErrMsg","contactPhoneValid","contactPhoneErrMsg","Loading","isFinalStep","setTimeout","loadingText","Confirm","style","backgroundImage","appointmentPhone","appointmentLocation","src","alt","dangerouslySetInnerHTML","__html","agentAddress","agentName","agentPhone","Wrapper","MapComponent","address","zoom","ref","useRef","Geocode","fromAddress","center","results","geometry","location","map","google","maps","Map","current","image","url","size","Size","origin","Point","anchor","Marker","position","icon","width","height","OnlineBooking","state","isGoogleApiSetup","isFilled","isLoading","appointmentType","setFirstDay","format","SetOperatingHoursByDay","agentPreferenceMondayHours","agentPreferenceTuesdayHours","agentPreferenceWednesdayHours","agentPreferenceThursdayHours","agentPreferenceFridayHours","isAppointmentstackingAllow","agentAppointmentBusySlotsOriginal","parseBusyAppointmentSlots","instaQuotePriceRange","isLoadingAgain","deviceType","getElementsByName","houseSizeValid","movingVehicleValid","appointmentTypeValid","step5FormValid","instaQuoteApiSuccess","validationFields","setState","input","target","validateField","phoneNumberFormatter","isExist","timeSlotsForSelectedDate","getDate","push","hourArray","toString","handleCheck","handleLoading","triggerStep1Validation","forEach","element","result","Average","LowPrice","HighPrice","handleLocalMove","handleInstaQuoteError","busyAppointmentSlots","aasCalendarDetails","busy","holidaysSlots","nextHolidays","allocationID","parse","startDate","aasStackAppointments","success","handleIsLoadingFlag","flag","handleMovingFromValidation","handleMovingToValidation","dayOfWeek","nextBusinessDay","setDate","fieldName","fieldValidationErrors","test","validateStep1Form","validateStep2Form","validateStep3Form","validateStep5Form","errorClass","dateValue","operatingHourArray","parseOperatingHours","agentAppointmentBusySlotsOriginalArray","busyTimeSlotsForSelectedDate","isStackingAllow","filter","s","every","Hourdata","finalDataArray","operatingHours","setSeconds","parsedSlotData","finalSlotData","b","uniqueChars","includes","updateInputVal","formatted_address","googleAutoCompleteReadableJsonFormat","convertGoogleApiComponentToReadableJson","addy","city","zip","cntryCode","determineMoveType","place","comp","township","county","sep","streetNumber","route","components","address_components","resultJson","indexOf","long_name","short_name","replace","lat","lng","setApiKey","fromLatLng","cmpts","breakOut","updateInputZipAfterGeoCode","oldVal","formatPhoneNumber","phoneNumber","phoneNumberLength","slice","formattedInputValue","container","ReactDOM","createPortal","triggerValidation","Move","handlePhoneFormat","Svgs","d","fill","transform","points","stroke","mask","x","y","rg4js","onlineBookingPage","App","Svg","StrictMode"],"mappings":"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","file":"static/js/main.a693b79c.chunk.js","sourcesContent":["import React from \"react\";\r\n\r\nconst Accordion = ({ title, children, open, date }) => {\r\n const [isOpen, setOpen] = React.useState(open);\r\n return (\r\n
\r\n \r\n

{title}

\r\n \r\n\r\n
\r\n \r\n {children}\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default Accordion;\r\n","import React, { Component } from \"react\";\r\nimport Autocomplete, { usePlacesWidget } from \"react-google-autocomplete\";\r\nwindow.React = React\r\n\r\nexport class TextInput extends Component {\r\n render() {\r\n const {\r\n label,\r\n id,\r\n className,\r\n placeholder,\r\n svg,\r\n viewBox,\r\n value,\r\n onChange,\r\n required,\r\n isValid,\r\n validationMessage,\r\n isGoogleAutoFill,\r\n onPlaceSelected,\r\n } = this.props;\r\n\r\n let renderInput;\r\n let renderSvg;\r\n\r\n if (isGoogleAutoFill) {\r\n renderInput = {\r\n onPlaceSelected(selected);\r\n }}\r\n options={{\r\n types: [\"geocode\"],\r\n componentRestrictions: { country: [\"us\", \"ca\"] },\r\n }}\r\n />;\r\n }\r\n else {\r\n renderInput = ;\r\n }\r\n\r\n if (svg) {\r\n renderSvg = \r\n \r\n \r\n }\r\n\r\n return (\r\n
\r\n
\r\n {label && (\r\n \r\n {label}\r\n \r\n )}\r\n
\r\n {renderInput}\r\n {renderSvg}\r\n
\r\n
\r\n {\r\n !isValid ? \r\n (\r\n {validationMessage}\r\n
) : \r\n (null)\r\n }\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default TextInput;\r\n","import React, { Component } from \"react\";\r\nimport Accordion from \"../UI/Accordion\";\r\nimport TextInput from \"../UI/TextInput\";\r\n\r\nexport class Location extends Component {\r\n continue = (e) => {\r\n e.preventDefault();\r\n\r\n if (this.props.values.initForm) {\r\n this.props.handleValidationFields(1);\r\n }\r\n\r\n\r\n if (this.props.values.step1FormValid) {\r\n this.props.nextStep();\r\n }\r\n\r\n try {\r\n if (typeof (ga) === \"function\") {\r\n var fields = {\r\n hitType: \"event\",\r\n event_category: \"InstaQuote\",\r\n eventAction: \"completed Moving From/To\",\r\n value: \"1\",\r\n };\r\n\r\n window.gtag('event', fields.eventAction, fields);\r\n }\r\n } catch (err) {\r\n console.log(\"Error Logging Google Analytics Event for Step 1 - Online booking\");\r\n }\r\n };\r\n\r\n previous = (e) => {\r\n e.preventDefault();\r\n this.props.prevStep();\r\n };\r\n\r\n componentDidMount() {\r\n window.scrollTo(0, 0)\r\n }\r\n\r\n render() {\r\n const { values, handleChange, updateInputValue } = this.props;\r\n\r\n return (\r\n
\r\n
\r\n

{document.getElementById(\"Step1Title\").value}

\r\n \r\n {\r\n updateInputValue(\"movingFromStreet\", selected);\r\n }}\r\n />\r\n {/*
\r\n \r\n
*/}\r\n \r\n
\r\n \r\n {\r\n updateInputValue(\"movingToStreet\", selected);\r\n }}\r\n />\r\n \r\n \r\n
\r\n {/* */}\r\n \r\n {document.getElementById(\"Step1NextButtonText\").value}\r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default Location;\r\n","import React, { Component } from \"react\";\r\n\r\nexport class Progress extends Component { \r\n\r\n jumpToStep = (e, step) => {\r\n e.preventDefault();\r\n this.props.jumpToStep(step);\r\n };\r\n\r\n render() {\r\n\r\n const { values, activeStep } = this.props;\r\n\r\n return (\r\n
    \r\n
  • \r\n

    \r\n Location Details \r\n {\r\n (values.step1FormValid && activeStep !== 1 && !values.isDataByLMPID) ?\r\n (\r\n this.jumpToStep(e, 1)}>Edit\r\n ) :\r\n (null)\r\n }\r\n

    \r\n
    \r\n
    \r\n

    Moving from:

    \r\n

    \r\n {values.movingFromStreet}\r\n

    \r\n

    \r\n {values.movingFromUnit}\r\n

    \r\n
    \r\n
    \r\n

    Moving to:

    \r\n

    \r\n {values.movingToStreet}\r\n

    \r\n

    \r\n {values.movingToUnit}\r\n

    \r\n
    \r\n
    \r\n
  • \r\n
  • \r\n

    \r\n Move Details \r\n {\r\n (values.step2FormValid && activeStep !== 2 && !values.isDataByLMPID) ?\r\n (\r\n this.jumpToStep(e, 2)}>Edit\r\n ) :\r\n (null)\r\n }\r\n

    \r\n
    \r\n
    \r\n

    Date:

    \r\n

    {values.movingDate.toLocaleDateString()}

    \r\n
    \r\n
    \r\n

    Size:

    \r\n

    {values.houseSize}

    \r\n
    \r\n
    \r\n

    Vehicle:

    \r\n

    \r\n {values.movingVehicle}\r\n

    \r\n
    \r\n
    \r\n
  • \r\n
  • \r\n

    \r\n Contact Detail \r\n {\r\n (values.step3FormValid && activeStep !== 3 && !values.isDataByLMPID) ?\r\n (\r\n this.jumpToStep(e, 3)}>Edit\r\n ) :\r\n (null)\r\n }\r\n

    \r\n
    \r\n
    \r\n

    \r\n {values.contactName}\r\n

    \r\n

    \r\n {values.contactEmail}\r\n

    \r\n

    \r\n {values.contactPhone}\r\n

    \r\n
    \r\n
    \r\n
  • \r\n
  • \r\n

    \r\n Instant Quote\r\n

    \r\n
    \r\n
    \r\n

    {values.quote}

    \r\n
    \r\n
    \r\n
  • \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default Progress;\r\n","import React, { Component } from \"react\";\r\n\r\nexport class RadioInput extends Component {\r\n render() {\r\n const {\r\n label,\r\n id,\r\n name,\r\n svg,\r\n viewBox,\r\n value,\r\n onChange,\r\n subLabel,\r\n checked,\r\n } = this.props;\r\n\r\n return (\r\n
\r\n
\r\n \r\n {label && (\r\n \r\n )}\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default RadioInput;\r\n","import React, { Component, useState } from \"react\";\r\nimport Accordion from \"../UI/Accordion\";\r\nimport RadioInput from \"../UI/RadioInput\";\r\nimport DatePicker from \"react-datepicker\";\r\nimport moment from \"moment/moment\";\r\n\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\n\r\nexport class Location extends Component {\r\n continue = (e) => {\r\n e.preventDefault();\r\n\r\n if (this.props.values.step2FormValid) {\r\n this.props.nextStep();\r\n }\r\n\r\n try {\r\n if (typeof (ga) === \"function\") {\r\n var fields = {\r\n hitType: \"event\",\r\n event_category: \"InstaQuote\",\r\n eventAction: \"completed Moving Date\",\r\n value: \"2\",\r\n };\r\n\r\n window.gtag('event', fields.eventAction, fields);\r\n }\r\n } catch (err) {\r\n console.log(\"Error Logging Google Analytics Event for Step 2 - Online booking\");\r\n }\r\n };\r\n previous = (e) => {\r\n e.preventDefault();\r\n this.props.prevStep();\r\n };\r\n\r\n componentDidMount() {\r\n window.scrollTo(0, 0)\r\n }\r\n\r\n render() {\r\n const { values, handleChange, handleDateChange } = this.props;\r\n return (\r\n
\r\n
\r\n

{document.getElementById(\"Step2Title\").value}

\r\n \r\n handleDateChange(date)}\r\n name=\"movingDate\"\r\n minDate={new Date(+new Date() + 86400000)}\r\n dateFormat=\"MM/dd/yyyy\"\r\n inline\r\n formatWeekDay={(nameOfDay) => nameOfDay.substr(0, 1)}\r\n />\r\n \r\n \r\n
\r\n \r\n Select your Dwelling type?\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n How big is your house?\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default Location;\r\n","export class leadSubmissionApi {\r\n\r\n private props: any;\r\n\r\n private handleLeadSubmission: any;\r\n\r\n constructor(local: any, handleLeadSubmission: (this: void) => any) {\r\n this.props = local;\r\n this.handleLeadSubmission = handleLeadSubmission;\r\n }\r\n\r\n async submitLead(bookAppointment = false) {\r\n var requestModel;\r\n //Create request at step 3 (Contact)\r\n requestModel = {\r\n \"MovingFromInput\": this.props.values.movingFromAddrComponent.MovingFromInput,\r\n \"MovingFromAddress\": this.props.values.movingFromAddrComponent.MovingFromAddress,\r\n \"MovingFromCity\": this.props.values.movingFromAddrComponent.MovingFromCity,\r\n \"MovingFromState\": this.props.values.movingFromAddrComponent.MovingFromState,\r\n \"MovingFromZip\": this.props.values.movingFromAddrComponent.MovingFromZip,\r\n \"MovingFromCountryCode\": this.props.values.movingFromAddrComponent.MovingFromCountryCode,\r\n \"MovingFromClientValidated\": \"true\",\r\n \"MovingToInput\": this.props.values.movingToAddrComponent.MovingToInput,\r\n \"MovingToAddress\": this.props.values.movingToAddrComponent.MovingToAddress,\r\n \"MovingToCity\": this.props.values.movingToAddrComponent.MovingToCity,\r\n \"MovingToState\": this.props.values.movingToAddrComponent.MovingToState,\r\n \"MovingToZip\": this.props.values.movingToAddrComponent.MovingToZip,\r\n \"MovingToCountryCode\": this.props.values.movingToAddrComponent.MovingToCountryCode,\r\n \"MovingToClientValidated\": \"true\",\r\n \"MoveDate\": this.props.values.movingDateString,\r\n \"home-type\": \"house\",\r\n \"home-size\": this.getHomeSizeforAPI(),\r\n \"DwellingType\": this.getHomeSizeforAPI(),\r\n \"Name\": this.props.values.contactName,\r\n \"Email\": this.props.values.contactEmail,\r\n \"Phone\": this.props.values.contactPhone,\r\n \"HasVehicle\": this.props.values.movingVehicle === \"yes\" ? \"true\" : \"false\",\r\n \"WidgetSpecificRefCode\": this.props.values.referralCode,\r\n \"RefferalCode\": this.props.values.referralCode,\r\n \"DeviceType\": (document.getElementById(\"DeviceType\")).value,\r\n \"PrevPageUrlReferrer\": this.props.values.prevPageUrlReferral,\r\n \"VendorName\": this.props.values.vendorName,\r\n \"VendorId\": this.props.values.vendorId,\r\n \"__RequestVerificationToken\": this.props.values.verificationToken,\r\n \"quote-range\": \"Medium\"\r\n };\r\n\r\n if (bookAppointment) {\r\n requestModel = {\r\n \"MovingFromInput\": this.props.values.movingFromAddrComponent.MovingFromInput,\r\n \"MovingFromAddress\": this.props.values.movingFromAddrComponent.MovingFromAddress,\r\n \"MovingFromCity\": this.props.values.movingFromAddrComponent.MovingFromCity,\r\n \"MovingFromState\": this.props.values.movingFromAddrComponent.MovingFromState,\r\n \"MovingFromZip\": this.props.values.movingFromAddrComponent.MovingFromZip,\r\n \"MovingFromCountryCode\": this.props.values.movingFromAddrComponent.MovingFromCountryCode,\r\n \"MovingFromClientValidated\": \"true\",\r\n \"MovingToInput\": this.props.values.movingToAddrComponent.MovingToInput,\r\n \"MovingToAddress\": this.props.values.movingToAddrComponent.MovingToAddress,\r\n \"MovingToCity\": this.props.values.movingToAddrComponent.MovingToCity,\r\n \"MovingToState\": this.props.values.movingToAddrComponent.MovingToState,\r\n \"MovingToZip\": this.props.values.movingToAddrComponent.MovingToZip,\r\n \"MovingToCountryCode\": this.props.values.movingToAddrComponent.MovingToCountryCode,\r\n \"MovingToClientValidated\": \"true\",\r\n \"MoveDate\": this.props.values.movingDateString,\r\n \"home-type\": \"house\",\r\n \"home-size\": this.getHomeSizeforAPI(),\r\n \"DwellingType\": this.getHomeSizeforAPI(),\r\n \"Name\": this.props.values.contactName,\r\n \"Email\": this.props.values.contactEmail,\r\n \"Phone\": this.props.values.contactPhone,\r\n \"HasVehicle\": this.props.values.movingVehicle === \"yes\" ? \"true\" : \"false\",\r\n \"AgentCode\": this.props.values.agentCode,\r\n \"CalendarAppointmentDate\": this.props.values.appointmentDateString,\r\n \"CalendarAppointmentTime\": this.props.values.appointmentTimeString.split(\" \")[0],\r\n \"CalendarAppointmentTimeOfDay\": this.props.values.appointmentTimeString.split(\" \")[1],\r\n \"CalendarDuration\": \"1 hour\",\r\n \"AllocationId\": this.props.values.agentAllocationId,\r\n \"WidgetSpecificRefCode\": this.props.values.referralCode,\r\n \"RefferalCode\": this.props.values.referralCode,\r\n \"DeviceType\": (document.getElementById(\"DeviceType\")).value,\r\n \"PrevPageUrlReferrer\": this.props.values.prevPageUrlReferral,\r\n \"VendorName\": this.props.values.vendorName,\r\n \"VendorId\": this.props.values.vendorId,\r\n \"__RequestVerificationToken\": this.props.values.verificationToken,\r\n \"quote-range\": \"Medium\"\r\n };\r\n }\r\n\r\n\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',\r\n 'X-Requested-With': 'XMLHttpRequest'\r\n },\r\n body: new URLSearchParams(requestModel)\r\n };\r\n\r\n //Call Instaquote API\r\n let apiSuccess = false;\r\n await fetch('/free-quote/request-estimate', requestOptions)\r\n .then(response => {\r\n if (!response.ok) {\r\n throw new Error('error => Error while Submitting Lead')\r\n }\r\n return response.json();\r\n })\r\n .then((data) => {\r\n if (bookAppointment) {\r\n this.handleLeadSubmission(data);\r\n }\r\n apiSuccess = true;\r\n },\r\n (error) => {\r\n console.log(error);\r\n if (bookAppointment) {\r\n this.handleLeadSubmission(error);\r\n }\r\n apiSuccess = false;\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n\r\n return apiSuccess;\r\n }\r\n\r\n\r\n\r\n getHomeSizeforAPI() {\r\n switch (this.props.values.houseSize) {\r\n case \"small\":\r\n return \"H1\";\r\n\r\n case \"medium\":\r\n return \"H2\";\r\n\r\n case \"large\":\r\n return \"H4\";\r\n\r\n default:\r\n return \"H2\"\r\n }\r\n }\r\n}","export class leadSubmissionLMPApi {\r\n\r\n private props: any;\r\n\r\n private handleLeadSubmission: any;\r\n\r\n constructor(local: any, handleLeadSubmission: (this: void) => any) {\r\n this.props = local;\r\n this.handleLeadSubmission = handleLeadSubmission;\r\n }\r\n getCookie(name: string | any[]) {\r\n let cookieValue = null;\r\n if (document.cookie && document.cookie !== '')\r\n {\r\n const cookies = document.cookie.split(';');\r\n for (let i = 0; i < cookies.length; i++)\r\n {\r\n const cookie = cookies[i].trim();\r\n if (cookie.substring(0, name.length + 1) === (name + '='))\r\n {\r\n cookieValue = decodeURI(cookie.substring(name.length + 1));\r\n break;\r\n }\r\n }\r\n }\r\n return cookieValue;\r\n }\r\n async submitLead(bookAppointment = false) {\r\n var submissionModel;\r\n submissionModel = {\r\n \"leadId\": this.props.values.LeadId,\r\n \"brand\": \"AVL\",\r\n \"agentCode\": this.props.values.agentCode,\r\n \"calendarTitle\": \"\",\r\n \"calendarLocation\": \"\",\r\n \"CalendarAppointmentDate\": this.props.values.appointmentDateString,\r\n \"CalendarAppointmentTime\": this.props.values.appointmentTimeString.split(\" \")[0],\r\n \"CalendarAppointmentTimeOfDay\": this.props.values.appointmentTimeString.split(\" \")[1],\r\n \"CalendarDuration\": \"1 hour\",\r\n \"calendarUserName\": \"\",\r\n \"calendarSalesPersonId\": \"\",\r\n \"calendarDetail\": \"\",\r\n \"calendarURL\": \"\",\r\n \"allocationId\": this.props.values.agentAllocationId,\r\n \"__RequestVerificationToken\": this.props.values.verificationToken\r\n };\r\n\r\n if (bookAppointment) {\r\n submissionModel = {\r\n \"leadId\": this.props.values.LeadId,\r\n \"brand\": \"AVL\",\r\n \"agentCode\": this.props.values.agentCode,\r\n \"calendarTitle\": \"\",\r\n \"calendarLocation\": \"\",\r\n \"CalendarAppointmentDate\": this.props.values.appointmentDateString,\r\n \"CalendarAppointmentTime\": this.props.values.appointmentTimeString.split(\" \")[0],\r\n \"CalendarAppointmentTimeOfDay\": this.props.values.appointmentTimeString.split(\" \")[1],\r\n \"CalendarDuration\": \"1 hour\",\r\n \"calendarUserName\": \"\",\r\n \"calendarSalesPersonId\": \"\",\r\n \"calendarDetail\": \"\",\r\n \"calendarURL\": \"\",\r\n \"allocationId\": this.props.values.agentAllocationId,\r\n \"__RequestVerificationToken\": this.props.values.verificationToken\r\n\r\n };\r\n }\r\n console.log(\"****************Submission Model\");\r\n console.log(JSON.stringify(submissionModel));\r\n\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'x-api-key': 'IbxeqEcmkQ52cE4burH3kqczlSCY9Wvr',\r\n 'X-Requested-With': 'XMLHttpRequest'\r\n },\r\n body: JSON.stringify(submissionModel)\r\n //body: new URLSearchParams(submissionModel)\r\n };\r\n console.log(\"Starting SubmitAppointment the API Call\");\r\n //Call Instaquote API\r\n let apiSuccess = false;\r\n await fetch('/CustomApi/OnlineAppointmentBooking/SubmitAppointment', requestOptions)\r\n .then(response => {\r\n console.log(\"**************After Fetch RESPONSE**********************\");\r\n console.log(JSON.stringify(response));\r\n if (!response.ok) {\r\n throw new Error('error => Error while Submitting Lead')\r\n }\r\n return response.json();\r\n })\r\n .then((data) => {\r\n if (bookAppointment) {\r\n console.log(\"******Return DATA*****\");\r\n console.log(JSON.stringify(data));\r\n this.handleLeadSubmission(data);\r\n }\r\n apiSuccess = true;\r\n },\r\n (error) => {\r\n if (bookAppointment) {\r\n this.handleLeadSubmission(error);\r\n }\r\n apiSuccess = false;\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n\r\n return apiSuccess;\r\n }\r\n}","import { useEffect } from \"react\";\r\nimport { leadSubmissionApi } from \"../services/leadSubmissionApi\";\r\n\r\nconst WindowWarning = (props) => {\r\n useEffect(() => {\r\n const unloadCallback = (event) => {\r\n event.preventDefault();\r\n \r\n //Submit Lead if user close out of page (back, refresh, close tab/window)\r\n if (props.submitLead) {\r\n try {\r\n postLeadThruApi(props);\r\n }\r\n catch (err){\r\n console.error(err);\r\n } \r\n }\r\n\r\n event.returnValue = \"\";\r\n return \"\";\r\n };\r\n\r\n window.addEventListener(\"beforeunload\", unloadCallback);\r\n return () => window.removeEventListener(\"beforeunload\", unloadCallback);\r\n }, []);\r\n return (null);\r\n}\r\n\r\nfunction postLeadThruApi(props) {\r\n //Submit Lead \r\n const leadSubmissionService = new leadSubmissionApi(props, props.handleLeadSubmission);\r\n\r\n leadSubmissionService.submitLead(false).then((leadSuccess) => {\r\n if (leadSuccess) {\r\n console.log(\"Lead Success\");\r\n }\r\n else {\r\n console.log(\"Lead Failed\");\r\n }\r\n });\r\n}\r\n\r\nexport default WindowWarning;","import React, { Component } from \"react\";\r\nimport Accordion from \"../UI/Accordion\";\r\nimport RadioInput from \"../UI/RadioInput\";\r\nimport DatePicker from \"react-datepicker\";\r\nimport setHours from \"date-fns/setHours\";\r\nimport setMinutes from \"date-fns/setMinutes\";\r\nimport moment from \"moment/moment\";\r\nimport { leadSubmissionApi } from \"../../services/leadSubmissionApi\";\r\nimport { leadSubmissionLMPApi } from \"../../services/leadSubmissionLMPApi\";\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\nimport WindowWarning from \"../WindowWarning\";\r\n\r\n\r\nexport class Quote extends Component {\r\n submission = (e) => {\r\n e.preventDefault();\r\n this.props.nextStep();\r\n\r\n const leadSubmissionService = new leadSubmissionLMPApi(this.props, this.props.handleLeadSubmission);\r\n leadSubmissionService.submitLead(true).then((leadSuccess) => {\r\n if (leadSuccess) {\r\n console.log(\"Lead Success\");\r\n }\r\n else {\r\n console.log(\"Lead Failed\");\r\n this.props.handleOnlineBookingFinalResponse(leadSuccess);\r\n }\r\n });\r\n };\r\n\r\n continue = (e) => {\r\n e.preventDefault();\r\n\r\n //Moving to Loading State\r\n this.props.nextStep();\r\n\r\n //Submit Lead \r\n const leadSubmissionService = new leadSubmissionApi(this.props, this.props.handleLeadSubmission);\r\n\r\n leadSubmissionService.submitLead(true).then((leadSuccess) => {\r\n if (leadSuccess) {\r\n console.log(\"Lead Success\");\r\n }\r\n else {\r\n console.log(\"Lead Failed\");\r\n }\r\n });\r\n\r\n try {\r\n if (typeof (ga) === \"function\") {\r\n var fields = {\r\n hitType: \"event\",\r\n event_category: \"Appointment\",\r\n eventAction: \"Booked Appointment\",\r\n value: \"5\",\r\n };\r\n\r\n window.gtag('event', fields.eventAction, fields);\r\n }\r\n } catch (err) {\r\n console.log(\"Error Logging Google Analytics Event for Step 5 - Online booking\");\r\n }\r\n };\r\n\r\n componentDidMount() {\r\n window.scrollTo(0, 0)\r\n }\r\n\r\n render() {\r\n\r\n\r\n \r\n const { values, handleAptDateChange, handleTimeChange, handleLeadSubmission } = this.props;\r\n \r\n let diff = this.props.values.movingDate - new Date();\r\n let isMoveWithin7Days = diff <= 604800000; //Diff in 7 Days in millisecond\r\n let isLMPID = this.props.values.isDataByLMPID;\r\n let errorMessage = this.props.values.errorMsg;\r\n\r\n const isWeekday = (date) => {\r\n const day = date.getDay();\r\n return day !== 0 && day !== 6;\r\n };\r\n //const defaultOperatingHours = (date) => {\r\n // const day = date.getDay();\r\n // console.log(\"not activate\");\r\n // console.log(this.props.values.agentPreferenceWednesdayHours);\r\n // if (day === 3)//Wednesday\r\n // {\r\n\r\n // console.log(\"activate\");\r\n // console.log(this.props.values.agentPreferenceWednesdayHours);\r\n // parseOperatingHours(this.props.values.agentPreferenceWednesdayHours);\r\n // return new Array(parseOperatingHours(this.props.values.agentPreferenceWednesdayHours));\r\n // }\r\n // console.log(\"return null\");\r\n // return null;\r\n\r\n //};\r\n\r\n return (\r\n
\r\n
\r\n
\r\n {\r\n (isLMPID) ? //Quote with lead ID\r\n (errorMessage === \"\") ?\r\n <>\r\n \r\n
\r\n

Schedule an Appointment

\r\n

\r\n {document.getElementById(\"Step4BookingDescription\").value}\r\n

\r\n \r\n handleAptDateChange(date)}\r\n name=\"appointmentDate\"\r\n dateFormat=\"MM/dd/yyyy\"\r\n minDate={values.agentAppointmentStartDate}\r\n maxDate={values.movingDate}\r\n filterDate={isWeekday}\r\n //excludeDates={values.agentAppointmentNextHoliday}\r\n inline\r\n //formatWeekDay={(nameOfDay) => nameOfDay.substr(0, 1)}\r\n />\r\n handleTimeChange(date)}\r\n excludeTimes={values.agentAppointmentBusySlotsUpdated}\r\n includeTimes={values.agentOperatingHours}\r\n inline\r\n name=\"appointmentTime\"\r\n showTimeSelect\r\n showTimeSelectOnly\r\n timeFormat=\"hh:mm aa\"\r\n timeIntervals={60}\r\n />\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n :\r\n <>\r\n

{this.props.values.errorMsg}

\r\n \r\n : //If IsDataByLMPID is false\r\n\r\n (isMoveWithin7Days || this.props.values.isOutOfAreaMove) ?\r\n <>\r\n
\r\n

To get a guaranteed rate with one of our in house estimators call {document.getElementById(\"PhoneNumToShow\").value}.

\r\n
\r\n :\r\n <>\r\n \r\n
\r\n

Schedule an Appointment

\r\n

\r\n {document.getElementById(\"Step4BookingDescription\").value}\r\n

\r\n \r\n handleAptDateChange(date)}\r\n name=\"appointmentDate\"\r\n dateFormat=\"MM/dd/yyyy\"\r\n minDate={values.agentAppointmentStartDate}\r\n maxDate={values.movingDate}\r\n filterDate={isWeekday}\r\n excludeDates={values.agentAppointmentNextHoliday}\r\n inline\r\n formatWeekDay={(nameOfDay) => nameOfDay.substr(0, 1)}\r\n />\r\n handleTimeChange(date)}\r\n excludeTimes={values.agentAppointmentBusySlotsUpdated}\r\n //excludeDates={values.agentAppointmentBusySlots}\r\n inline\r\n name=\"appointmentTime\"\r\n showTimeSelect\r\n showTimeSelectOnly\r\n timeFormat=\"hh:mm aa\"\r\n timeIntervals={60}\r\n minTime={setHours(setMinutes(new Date(), 0), 9)}\r\n maxTime={setHours(setMinutes(new Date(), 45), 16)}\r\n />\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n }\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default Quote;\r\n","export class instaQuoteApi {\r\n\r\n private props: any;\r\n\r\n private handleInstaQuote: any;\r\n\r\n private moveToNextStep: boolean;\r\n\r\n constructor(local: any, moveToNextStep: boolean, handleInstaQuote: (this: void) => any) {\r\n this.props = local;\r\n this.moveToNextStep = moveToNextStep\r\n this.handleInstaQuote = handleInstaQuote;\r\n }\r\n\r\n async GetInstaquoteData() {\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' },\r\n body: new URLSearchParams({\r\n \"MovingFromInput\": this.props.values.movingFromAddrComponent.MovingFromInput,\r\n \"MovingFromAddress\": this.props.values.movingFromAddrComponent.MovingFromAddress,\r\n \"MovingFromCity\": this.props.values.movingFromAddrComponent.MovingFromCity,\r\n \"MovingFromState\": this.props.values.movingFromAddrComponent.MovingFromState,\r\n \"MovingFromZip\": this.props.values.movingFromAddrComponent.MovingFromZip,\r\n \"MovingFromCountryCode\": this.props.values.movingFromAddrComponent.MovingFromCountryCode,\r\n \"MovingFromClientValidated\": \"true\",\r\n \"MovingToInput\": this.props.values.movingToAddrComponent.MovingToInput,\r\n \"MovingToAddress\": this.props.values.movingToAddrComponent.MovingToAddress,\r\n \"MovingToCity\": this.props.values.movingToAddrComponent.MovingToCity,\r\n \"MovingToState\": this.props.values.movingToAddrComponent.MovingToState,\r\n \"MovingToZip\": this.props.values.movingToAddrComponent.MovingToZip,\r\n \"MovingToCountryCode\": this.props.values.movingToAddrComponent.MovingToCountryCode,\r\n \"MovingToClientValidated\": \"true\",\r\n \"MoveDate\": this.props.values.movingDateString,\r\n \"home-type\": \"house\",\r\n \"home-size\": this.getHomeSizeforAPI(),\r\n \"DwellingType\": this.getHomeSizeforAPI(),\r\n \"Name\": this.props.values.contactName,\r\n \"Email\": this.props.values.contactEmail,\r\n \"Phone\": this.props.values.contactPhone,\r\n \"WidgetSpecificRefCode\": \"\",\r\n \"DeviceType\": \"Desktop\",\r\n \"quote-range\": \"Medium\"\r\n })\r\n };\r\n\r\n console.log(\"Starting instaquote the API Call\");\r\n\r\n let apiSuccess = false;\r\n //Call Instaquote API\r\n await fetch('/json/instaquote/GetSingleInstaquote/', requestOptions)\r\n .then(response => response.json())\r\n .then((data) => {\r\n console.log(\"Got Data instaquote the API Call\");\r\n this.handleInstaQuote(data, this.moveToNextStep);\r\n apiSuccess = true;\r\n },\r\n (error) => {\r\n console.error(error);\r\n this.handleInstaQuote(error, this.moveToNextStep);\r\n apiSuccess = false;\r\n });\r\n\r\n return apiSuccess;\r\n \r\n }\r\n\r\n getHomeSizeforAPI() {\r\n switch (this.props.values.houseSize) {\r\n case \"small\":\r\n return \"H1\";\r\n\r\n case \"medium\":\r\n return \"H2\";\r\n\r\n case \"large\":\r\n return \"H4\";\r\n\r\n default:\r\n return \"H2\"\r\n }\r\n }\r\n}","import { leadSubmissionApi } from \"./leadSubmissionApi\";\r\n\r\nexport class agentAppointmentDetailApi {\r\n private props: any;\r\n\r\n private handleAgentAppointmentDetailFromApi: any;\r\n\r\n private handleLeadSubmission: any;\r\n\r\n constructor(local: any, \r\n handleAgentAppointmentDetailFromApi: (this: void) => any,\r\n handleLeadSubmission: (this:void) => any) {\r\n this.props = local;\r\n this.handleAgentAppointmentDetailFromApi = handleAgentAppointmentDetailFromApi;\r\n this.handleLeadSubmission = handleLeadSubmission;\r\n }\r\n\r\n async GetAgentAppointmentDetail() {\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'x-api-key': 'IbxeqEcmkQ52cE4burH3kqczlSCY9Wvr',\r\n 'X-Requested-With': 'XMLHttpRequest',\r\n },\r\n body: JSON.stringify({\r\n \"zip\": this.props.values.movingFromAddrComponent.MovingFromZip,\r\n \"moveType\": this.props.values.isLocalMove ? \"L\" : \"I\",\r\n })\r\n };\r\n console.log(\"Starting AgentAppointment the API Call\");\r\n //Call Instaquote API\r\n let apiSuccess = false;\r\n\r\n await fetch('/CustomApi/OnlineAppointmentBooking/GetAgentAppointmentDetails', requestOptions)\r\n .then(response => {\r\n if (!response.ok) {\r\n throw new Error('error => Error while getting Appointment details for agent')\r\n }\r\n return response.json();\r\n })\r\n .then((data) => {\r\n console.log(\"Got Data AgentAppointemtn the API Call\");\r\n if(!data.Success)\r\n {\r\n this.postLeadThruApi();\r\n }\r\n this.handleAgentAppointmentDetailFromApi(data);\r\n apiSuccess = true;\r\n },\r\n (error) => {\r\n console.log(error);\r\n apiSuccess = false;\r\n }) \r\n .catch(error => {\r\n console.log(error)\r\n });\r\n\r\n return apiSuccess;\r\n }\r\n\r\n postLeadThruApi() {\r\n //Submit Lead \r\n const leadSubmissionService = new leadSubmissionApi(this.props, this.handleLeadSubmission);\r\n \r\n leadSubmissionService.submitLead(false).then((leadSuccess) => {\r\n if (leadSuccess) {\r\n console.log(\"Lead Success\");\r\n }\r\n else {\r\n console.log(\"Lead Failed\");\r\n }\r\n });\r\n }\r\n}","import React, { Component } from \"react\";\r\nimport TextInput from \"../UI/TextInput\";\r\nimport { instaQuoteApi } from \"../../services/instaQuoteApi\";\r\nimport { agentAppointmentDetailApi } from \"../../services/agentAppointmentDetailApi\";\r\nimport { leadSubmissionApi } from \"../../services/leadSubmissionApi\";\r\n\r\nexport class Contact extends Component {\r\n continue = (e) => {\r\n e.preventDefault();\r\n //console.log(e);\r\n\r\n if (this.props.values.initStep3From) {\r\n this.props.handleValidationFields(3);\r\n }\r\n\r\n if (this.props.values.step3FormValid) {\r\n let diff = this.props.values.movingDate - new Date();\r\n let isMoveWithin7Days = diff <= 604800000; //Diff in 7 Days in millisecond\r\n\r\n this.props.nextStep();\r\n\r\n //IF Local Move then no Need to Call InstaQuote API.\r\n if (this.props.values.isLocalMove) {\r\n if (!isMoveWithin7Days) { //No need to show appointment booking\r\n this.getAppointmentDataFromApi();\r\n }\r\n else { //If Move within 7 Days then post the lead.\r\n this.postLeadThruApi();\r\n }\r\n //return;\r\n }\r\n else {\r\n //Get InstaQuote From API\r\n const instaQuoteService = new instaQuoteApi(this.props, isMoveWithin7Days, this.props.handleInstaQuotePriceRance);\r\n instaQuoteService.GetInstaquoteData().then(\r\n (instaQuoteSuccess) => {\r\n if (instaQuoteSuccess) {\r\n if (!isMoveWithin7Days) { //No need to show appointment booking\r\n this.getAppointmentDataFromApi();\r\n }\r\n else { //If Move within 7 Days then post the lead.\r\n this.postLeadThruApi();\r\n }\r\n }\r\n else {\r\n console.log(\"Instaquote Api Data Get Failed !\");\r\n }\r\n }\r\n );\r\n }\r\n\r\n try {\r\n if (typeof (ga) === \"function\") {\r\n var fields = {\r\n hitType: \"event\",\r\n event_category: \"InstaQuote\",\r\n eventAction: \"completed Contact Info\",\r\n value: \"4\",\r\n };\r\n\r\n window.gtag('event', fields.eventAction, fields);\r\n }\r\n } catch (err) {\r\n console.log(\"Error Logging Google Analytics Event for Step 4 - Online booking\");\r\n }\r\n }\r\n };\r\n\r\n previous = (e) => {\r\n e.preventDefault();\r\n this.props.prevStep();\r\n };\r\n\r\n componentDidMount() {\r\n window.scrollTo(0, 0)\r\n }\r\n\r\n getAppointmentDataFromApi() {\r\n const agentAppointmentdetailapi = new agentAppointmentDetailApi(this.props, this.props.handleAgentAppointmentDetailFromApi, this.props.handleLeadSubmission);\r\n\r\n //Get Agent Details\r\n agentAppointmentdetailapi.GetAgentAppointmentDetail().then(\r\n (agentAppDetailSuccess) => {\r\n if (agentAppDetailSuccess) {\r\n console.log(\"this Worked !\");\r\n }\r\n }\r\n );\r\n }\r\n\r\n postLeadThruApi() {\r\n //Submit Lead \r\n const leadSubmissionService = new leadSubmissionApi(this.props, this.props.handleLeadSubmission);\r\n\r\n leadSubmissionService.submitLead(false).then((leadSuccess) => {\r\n if (leadSuccess) {\r\n console.log(\"Lead Success\");\r\n }\r\n else {\r\n console.log(\"Lead Failed\");\r\n }\r\n });\r\n }\r\n\r\n render() {\r\n const { values, handleChange } = this.props;\r\n\r\n return (\r\n
\r\n
\r\n

{document.getElementById(\"Step3Title\").value}

\r\n
\r\n

Contact Information

\r\n \r\n \r\n \r\n
\r\n
\r\n

\r\n By pressing this button, I give Allied Van Lines consent to use\r\n automated telephone dialing technology to call and/or use SMS text\r\n messages at the phone number provided including a wireless number\r\n for telemarketing purposes. I understand consent is not a\r\n condition of puchase of Allied's services. By pressing submit I\r\n also agree to the Allied Privacy Policy.\r\n

\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default Contact;\r\n","import React, { Component, useState, useEffect } from \"react\";\r\n\r\nexport class Loading extends Component {\r\n continue = (e) => {\r\n //window.alert(\"this\");\r\n //e.preventDefault();\r\n this.props.nextStep();\r\n };\r\n\r\n previous = (e) => {\r\n e.preventDefault();\r\n this.props.prevStep();\r\n };\r\n\r\n componentDidMount() {\r\n window.scrollTo(0, 0)\r\n }\r\n\r\n render() {\r\n\r\n if(!this.props.isFinalStep){\r\n const { values } = this.props;\r\n let diff = values.movingDate - new Date();\r\n let isMoveWithin7Days = diff <= 604800000; //Diff in 7 Days in millisecond\r\n if(isMoveWithin7Days && values.isLocalMove){\r\n setTimeout(() => {\r\n this.props.nextStep()\r\n }, 5000);\r\n } \r\n }\r\n \r\n return (\r\n
\r\n
\r\n

{this.props.loadingText}

\r\n

This may take a moment.

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default Loading;\r\n","import React, { Component, useEffect, useRef } from \"react\";\r\nimport { Wrapper } from \"@googlemaps/react-wrapper\";\r\nimport Geocode from \"react-geocode\";\r\n\r\nexport class Confirm extends Component {\r\n componentDidMount() {\r\n window.scrollTo(0, 0)\r\n }\r\n\r\n render() {\r\n const { values } = this.props;\r\n let errorMessage = values.errorMsg;\r\n return (\r\n <>\r\n
\r\n
\r\n

\r\n {document.getElementById(\"FinalPageTitle\").value}\r\n

\r\n {\r\n (errorMessage === \"\") ?\r\n

\r\n You will receive a confirmation email at \"{values.contactEmail}\"\r\n momentarily.\r\n

\r\n :\r\n

\r\n {errorMessage}, please contact us at{\" \"}\r\n \r\n +1 (833) 591-0365\r\n \r\n

\r\n }\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Appointment details

\r\n

\r\n A local agent will be in touch within 24 hours to confirm your\r\n requested appointment.\r\n

\r\n
    \r\n
  • \r\n Date: \r\n {values.appointmentDateString}\r\n
  • \r\n
  • \r\n Time: \r\n {values.appointmentTimeString}\r\n
  • \r\n
  • \r\n \r\n Phone : \r\n \r\n {values.contactPhone}\r\n \r\n \r\n
  • \r\n
  • \r\n \r\n Location : \r\n \r\n {values.movingFromStreet}\r\n \r\n \r\n
  • \r\n
\r\n

\r\n If you have any questions and would like to speak to a rep,\r\n please contact us at{\" \"}\r\n \r\n +1 (833) 591-0365\r\n \r\n

\r\n
\r\n
\r\n \"Truck\"\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \"Truck\"\r\n
\r\n
\r\n
\r\n {(values.agentAddress) ? \r\n
\r\n
\r\n
\r\n

Meet your local agent

\r\n {/*

\r\n {values.agentName}\r\n

*/}\r\n

\r\n \r\n Agent Name : {values.agentName}\r\n \r\n

\r\n {/*

\r\n Proin gravida dolor leo, et finibus mauris aliquam et. Interdum\r\n et malesuada fames ac ante ipsum primis in faucibus. Aliquam a\r\n varius neque. Dones in dictum turpis. Nunc ornare massa eget\r\n posuere commodo.\r\n

*/}\r\n

\r\n \r\n Agent Phone : \r\n \r\n {values.agentPhone}\r\n \r\n \r\n

\r\n

\r\n \r\n Agent Address : \r\n \r\n {values.agentAddress}\r\n \r\n \r\n

\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n :\r\n <>\r\n }\r\n \r\n );\r\n }\r\n}\r\n\r\nfunction MapComponent({ address, zoom }) {\r\n const ref = useRef();\r\n\r\n useEffect(() => {\r\n Geocode.fromAddress(address).then(\r\n (response) => {\r\n const center = response.results[0].geometry.location;\r\n const map = new window.google.maps.Map(ref.current, {\r\n center,\r\n zoom,\r\n });\r\n\r\n const image = {\r\n url: \"/ResourcePackages/Allied/assets/dist/img/template/map-marker.png\",\r\n size: new window.google.maps.Size(79, 79),\r\n origin: new window.google.maps.Point(0, 0),\r\n anchor: new window.google.maps.Point(39, 39)\r\n };\r\n\r\n new window.google.maps.Marker({\r\n position: center,\r\n map: map,\r\n icon: image\r\n });\r\n },\r\n (error) => {\r\n console.error(error);\r\n }\r\n );\r\n });\r\n\r\n return
;\r\n}\r\n\r\nexport default Confirm;\r\n","import React, { Component } from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport Location from \"./Steps/Location\";\r\nimport Progress from \"./UI/Progress\";\r\nimport Move from \"./Steps/Move\";\r\nimport Quote from \"./Steps/Quote\";\r\nimport Contact from \"./Steps/Contact\";\r\nimport Loading from \"./Steps/Loading\";\r\nimport Confirm from \"./Steps/Confirm\";\r\nimport { format } from 'date-fns';\r\nimport Geocode from \"react-geocode\";\r\nimport WindowWarning from \"./WindowWarning\";\r\nimport setHours from \"date-fns/setHours\";\r\nimport setMinutes from \"date-fns/setMinutes\";\r\nimport setSeconds from \"date-fns/setSeconds\";\r\n\r\n\r\nexport default class OnlineBooking extends Component {\r\n state = {\r\n LeadId: document.getElementById(\"LeadID\").value ? document.getElementById(\"LeadID\").value:\"\",\r\n isDataByLMPID: document.getElementById(\"IsDataByLMPID\").value === \"True\" || document.getElementById(\"errorMsg\").value ? true : false,\r\n errorMsg: document.getElementById(\"errorMsg\").value ? document.getElementById(\"errorMsg\").value :\"\",\r\n step: document.getElementById(\"IsDataByLMPID\").value === \"True\" ? 5\r\n : document.getElementById(\"errorMsg\").value ? 5\r\n : (document.getElementById(\"MovingFromInput\").value ? 2 : 1),\r\n isGoogleApiSetup: false,\r\n isFilled: false,\r\n checked: false,\r\n isLoading: true,\r\n movingFromStreet: document.getElementById(\"MovingFromInput\").value ? document.getElementById(\"MovingFromInput\").value : \"\",\r\n movingFromUnit: \"\",\r\n movingToStreet: document.getElementById(\"MovingToInput\").value ? document.getElementById(\"MovingToInput\").value : \"\",\r\n movingToUnit: \"\",\r\n movingDate: new Date(document.getElementById(\"MoveDate\").value ? document.getElementById(\"MoveDate\").value : +new Date() + 86400000),\r\n houseSize: document.getElementById(\"HouseSize\").value ? document.getElementById(\"HouseSize\").value : \"\",\r\n movingVehicle: \"\",\r\n contactName: document.getElementById(\"ContactName\").value ? document.getElementById(\"ContactName\").value : \"\",\r\n contactEmail: document.getElementById(\"ContactEmail\").value ? document.getElementById(\"ContactEmail\").value : \"\",\r\n contactPhone: document.getElementById(\"ContactPhone\").value ? document.getElementById(\"ContactPhone\").value : \"\",\r\n appointmentType: \"\",\r\n appointmentDate: this.setFirstDay(),\r\n appointmentDateString: format(this.setFirstDay(), 'MM/dd/yyyy'),\r\n appointmentTime: document.getElementById(\"AgentAppointmentStartDate\").value ? this.SetOperatingHoursByDay(document.getElementById(\"AgentAppointmentStartDate\").value)[0] : new Date(+new Date() + 86400000),\r\n appointmentTimeString: document.getElementById(\"AgentAppointmentStartDate\").value ? format(this.SetOperatingHoursByDay(document.getElementById(\"AgentAppointmentStartDate\").value)[0], 'hh:mm aa') : format(new Date(+new Date() + 86400000), 'MM/dd/yyyy'),\r\n agentAppointmentStartDate: new Date(document.getElementById(\"AgentAppointmentStartDate\").value ? document.getElementById(\"AgentAppointmentStartDate\").value : +new Date() + 86400000),\r\n agentAppointmentNextHoliday: new Date(+new Date() + 86400000),\r\n agentCode: document.getElementById(\"AgentCode\").value ? document.getElementById(\"AgentCode\").value : \"\",\r\n agentName: document.getElementById(\"AgentName\").value ? document.getElementById(\"AgentName\").value : \"\",\r\n agentPhone: \"\",\r\n agentAddress: \"\",\r\n agentAllocationId: document.getElementById(\"AllocationId\").value ? document.getElementById(\"AllocationId\").value : \"\",\r\n agentPreferenceMondayHours: document.getElementById(\"AgentPreferenceMondayHours\").value ? document.getElementById(\"AgentPreferenceMondayHours\").value : \"\",\r\n agentPreferenceTuesdayHours: document.getElementById(\"AgentPreferenceTuesdayHours\").value ? document.getElementById(\"AgentPreferenceTuesdayHours\").value : \"\",\r\n agentPreferenceWednesdayHours: document.getElementById(\"AgentPreferenceWednesdayHours\").value ? document.getElementById(\"AgentPreferenceWednesdayHours\").value : \"\",\r\n agentPreferenceThursdayHours: document.getElementById(\"AgentPreferenceThursdayHours\").value ? document.getElementById(\"AgentPreferenceThursdayHours\").value : \"\",\r\n agentPreferenceFridayHours: document.getElementById(\"AgentPreferenceFridayHours\").value ? document.getElementById(\"AgentPreferenceFridayHours\").value : \"\",\r\n agentOperatingHours: this.SetOperatingHoursByDay(document.getElementById(\"AgentAppointmentStartDate\").value),\r\n appointmentPhone: \"\",\r\n isAppointmentstackingAllow: document.getElementById(\"IsAppointmentstackingAllow\").value === \"True\" ? true : false,\r\n agentAppointmentBusySlotsOriginal: document.getElementById(\"AgentAppointmentBusy\").value ? this.parseBusyAppointmentSlots(document.getElementById(\"AgentAppointmentBusy\").value) : [],\r\n agentAppointmentBusySlotsUpdated: [],\r\n appointmentLocation: \"\",\r\n movingDateString: format(new Date(document.getElementById(\"MoveDate\").value ? document.getElementById(\"MoveDate\").value : +new Date() + 86400000), 'MM/dd/yyyy'),\r\n movingToAddrComponent: {\r\n MovingToInput: document.getElementById(\"MovingToInput\").value ? document.getElementById(\"MovingToInput\").value : \"\",\r\n MovingToAddress: document.getElementById(\"MovingToAddress\").value ? document.getElementById(\"MovingToAddress\").value : \"\",\r\n MovingToCity: document.getElementById(\"MovingToCity\").value ? document.getElementById(\"MovingToCity\").value : \"\",\r\n MovingToState: document.getElementById(\"MovingToState\").value ? document.getElementById(\"MovingToState\").value : \"\",\r\n MovingToZip: document.getElementById(\"MovingToZip\").value ? document.getElementById(\"MovingToZip\").value : \"\",\r\n MovingToCountryCode: document.getElementById(\"MovingToCountryCode\").value ? document.getElementById(\"MovingToCountryCode\").value : \"\"\r\n },\r\n movingFromAddrComponent: {\r\n MovingFromInput: document.getElementById(\"MovingFromInput\").value ? document.getElementById(\"MovingFromInput\").value : \"\",\r\n MovingFromAddress: document.getElementById(\"MovingFromAddress\").value ? document.getElementById(\"MovingFromAddress\").value : \"\",\r\n MovingFromCity: document.getElementById(\"MovingFromCity\").value ? document.getElementById(\"MovingFromCity\").value : \"\",\r\n MovingFromState: document.getElementById(\"MovingFromState\").value ? document.getElementById(\"MovingFromState\").value : \"\",\r\n MovingFromZip: document.getElementById(\"MovingFromZip\").value ? document.getElementById(\"MovingFromZip\").value : \"\",\r\n MovingFromCountryCode: document.getElementById(\"MovingFromCountryCode\").value ? document.getElementById(\"MovingFromCountryCode\").value : \"\"\r\n },\r\n instaQuotePriceRange: \"\",\r\n isLoadingAgain: false,\r\n formErrors: {\r\n movingFromStreetErrMsg: 'Please Enter Moving From Location.',\r\n movingToStreetErrMsg: 'Please Enter Moving To Location.',\r\n contactNameErrMsg: 'Please Enter Contact Name.',\r\n contactEmailErrMsg: 'Please Enter Email Address.',\r\n contactPhoneErrMsg: 'Please Enter Phone Number.'\r\n },\r\n referralCode: document.getElementById(\"RefferalCode\").value,\r\n vendorName: document.getElementById(\"VendorName\").value,\r\n vendorId: document.getElementById(\"VendorId\").value,\r\n deviceType: document.getElementById(\"DeviceType\").value,\r\n prevPageUrlReferral: document.getElementById(\"PrevPageUrlReferrer\").value,\r\n verificationToken: document.getElementsByName(\"__RequestVerificationToken\")[0].value,\r\n movingFromValid: true,\r\n movingToValid: true,\r\n houseSizeValid: false,\r\n movingVehicleValid: false,\r\n contactNameValid: true,\r\n contactEmailValid: true,\r\n contactPhoneValid: true,\r\n appointmentTypeValid: false,\r\n step1FormValid: document.getElementById(\"IsDataByLMPID\").value === \"True\" || document.getElementById(\"errorMsg\").value ? true : ((document.getElementById(\"MovingFromInput\").value ? true : false)),\r\n step2FormValid: document.getElementById(\"IsDataByLMPID\").value === \"True\" || document.getElementById(\"errorMsg\").value ? true : false,\r\n step3FormValid: document.getElementById(\"IsDataByLMPID\").value === \"True\" || document.getElementById(\"errorMsg\").value ? true : false,\r\n step5FormValid: false,\r\n initForm: true,\r\n initStep3From: true,\r\n isLocalMove: false,\r\n instaQuoteApiSuccess: false,\r\n validationFields: [\"movingFromStreet\", \"movingToStreet\", \"houseSize\", \"contactName\", \"contactEmail\", \"contactPhone\"],\r\n isOutOfAreaMove: false,\r\n\r\n };\r\n\r\n // proceed to next step\r\n nextStep = () => {\r\n const { step } = this.state;\r\n this.setState({\r\n step: step + 1,\r\n });\r\n };\r\n\r\n // go back to previous step\r\n prevStep = () => {\r\n const { step } = this.state;\r\n this.setState({\r\n step: step - 1,\r\n });\r\n };\r\n\r\n setFirstDay() {\r\n const date = new Date(+new Date() + 2 * 86400000)\r\n const dayOfWeek = date.getDay();\r\n if (dayOfWeek === 0 || dayOfWeek === 6) {\r\n // If it's a weekend, calculate the next business day\r\n const nextBusinessDay = new Date(date);\r\n nextBusinessDay.setDate(date.getDate() + (dayOfWeek === 0 ? 1 : 2));\r\n return nextBusinessDay;\r\n } else {\r\n return date;\r\n }\r\n }\r\n\r\n // handle fields change\r\n handleChange = (input) => (e) => {\r\n const value = e.target.value;\r\n this.setState({\r\n [input]: value,\r\n },\r\n () => {\r\n this.validateField(input, value);\r\n if (input === \"contactPhone\")\r\n this.setState({\r\n [input]: this.phoneNumberFormatter(value)\r\n })\r\n });\r\n };\r\n\r\n handleDateChange = (date) => {\r\n this.setState({\r\n movingDate: date,\r\n movingDateString: format(date, 'MM/dd/yyyy'),\r\n });\r\n };\r\n\r\n handleAptDateChange = (date) => {\r\n var isExist = false;\r\n let timeSlotsForSelectedDate = [];\r\n for (var i = 0; i < this.state.agentAppointmentBusySlotsOriginal.length; i++) {\r\n if (this.state.agentAppointmentBusySlotsOriginal[i].getDate() === date.getDate()) {\r\n isExist = true;\r\n timeSlotsForSelectedDate.push(this.state.agentAppointmentBusySlotsOriginal[i]);\r\n }\r\n }\r\n //Get Operating hours by selected day\r\n let hourArray = this.SetOperatingHoursByDay(date.toString());\r\n console.log(timeSlotsForSelectedDate);\r\n console.log(hourArray);\r\n\r\n this.setState({\r\n appointmentDate: date,\r\n appointmentTime: date,\r\n appointmentDateString: format(date, 'MM/dd/yyyy'),\r\n agentAppointmentBusySlotsUpdated: ((isExist && !this.state.isAppointmentstackingAllow) ? timeSlotsForSelectedDate : []),\r\n agentOperatingHours: hourArray\r\n });\r\n };\r\n\r\n handleTimeChange = (date) => {\r\n this.setState({\r\n appointmentTime: date,\r\n appointmentTimeString: format(date, 'hh:mm aa'),\r\n })\r\n };;\r\n\r\n handleCheck = (e) => {\r\n this.setState({\r\n checked: e.target.checked,\r\n });\r\n };\r\n\r\n handleLoading = () => {\r\n this.setState({\r\n isLoading: false,\r\n });\r\n };\r\n\r\n jumpToStep = (step) => {\r\n this.setState({\r\n step: step,\r\n });\r\n };\r\n\r\n triggerStep1Validation = () => {\r\n //alert(\"validation triggered !\");\r\n let validationFields = this.state.validationFields;\r\n\r\n validationFields.forEach(element => {\r\n this.validateField(element, document.getElementById(element).value);\r\n });\r\n };\r\n\r\n handleValidationFields = (step) => {\r\n switch (step) {\r\n case 1:\r\n this.setState({\r\n movingFromValid: false,\r\n movingToValid: false,\r\n });\r\n break;\r\n\r\n case 3:\r\n this.setState({\r\n contactNameValid: false,\r\n contactEmailValid: false,\r\n contactPhoneValid: false\r\n });\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n handleInstaQuotePriceRance = (data, moveToNextStep) => {\r\n try {\r\n this.setState({\r\n instaQuotePriceRange: (\"$\" + data.result.Average.LowPrice + \" - $\" + data.result.Average.HighPrice),\r\n isLoadingAgain: true,\r\n instaQuoteApiSuccess: true\r\n }, moveToNextStep ? this.handleLocalMove : null);\r\n } catch (err) {\r\n this.handleInstaQuoteError();\r\n }\r\n };\r\n\r\n handleInstaQuoteError = (data) => {\r\n this.setState({\r\n instaQuotePriceRange: \"Please Call\",\r\n isLoadingAgain: true,\r\n instaQuoteApiSuccess: false\r\n }, this.handleLocalMove);\r\n }\r\n\r\n handleAgentAppointmentDetailFromApi = (data) => {\r\n if (data.Success) {\r\n\r\n let busyAppointmentSlots = this.parseBusyAppointmentSlots(data.aasCalendarDetails.busy);\r\n let holidaysSlots = this.parseBusyAppointmentSlots(data.aasCalendarDetails.nextHolidays);\r\n\r\n this.setState({\r\n agentCode: data.agentCode,\r\n agentName: data.agentName,\r\n agentPhone: data.agentPhone,\r\n agentAddress: data.agentAddress,\r\n agentAllocationId: data.allocationID,\r\n agentAppointmentStartDate: Date.parse(data.aasCalendarDetails.startDate),\r\n agentAppointmentNextHoliday: holidaysSlots,\r\n isAppointmentstackingAllow: data.aasCalendarDetails.aasStackAppointments,\r\n agentAppointmentBusySlotsOriginal: busyAppointmentSlots,\r\n agentAppointmentBusySlotsUpdated: []\r\n }, this.handleLocalMove)\r\n }\r\n else {\r\n this.setState({\r\n isOutOfAreaMove: true\r\n })\r\n this.jumpToStep(5);\r\n }\r\n }\r\n\r\n handleLeadSubmission = (data) => {\r\n this.jumpToStep(7);\r\n }\r\n handleOnlineBookingFinalResponse = (success) => {\r\n console.log(\"Submission Status: \" + success);\r\n if (!success) {\r\n this.setState({\r\n errorMsg: \"There is something wrong with the appointment booking\",\r\n });\r\n }\r\n }\r\n handleIsLoadingFlag = (flag) => {\r\n this.setState({\r\n isLoadingAgain: flag,\r\n });\r\n };\r\n\r\n handleMovingFromValidation = () => {\r\n this.setState({\r\n movingFromValid: false,\r\n });\r\n }\r\n\r\n handleMovingToValidation = () => {\r\n this.setState({\r\n movingToValid: false,\r\n });\r\n }\r\n\r\n handleLocalMove() {\r\n let diff = this.state.movingDate - new Date();\r\n let isMoveWithin7Days = diff <= 604800000; //Diff in 7 Days in millisecond\r\n if (!this.state.isLocalMove || !isMoveWithin7Days) {\r\n this.jumpToStep(5);\r\n }\r\n }\r\n\r\n validateField(fieldName, value) {\r\n let fieldValidationErrors = this.state.formErrors;\r\n let movingFromValid = this.state.movingFromValid;\r\n let movingToValid = this.state.movingToValid;\r\n let houseSizeValid = this.state.houseSizeValid;\r\n let movingVehicleValid = this.state.movingVehicleValid;\r\n let contactNameValid = this.state.contactNameValid;\r\n let contactEmailValid = this.state.contactEmailValid;\r\n let contactPhoneValid = this.state.contactPhoneValid;\r\n let appointmentTypeValid = this.state.appointmentTypeValid;\r\n let initForm = this.state.initForm\r\n let initStep3From = this.state.initStep3From\r\n\r\n switch (fieldName) {\r\n case 'movingFromStreet':\r\n movingFromValid = value.length >= 1;\r\n initForm = false;\r\n //fieldValidationErrors.movingFromStreetErrMsg = movingFromValid ? '' : ' is required';\r\n break;\r\n\r\n case 'movingToStreet':\r\n movingToValid = value.length >= 1;\r\n initForm = false;\r\n //fieldValidationErrors.movingToStreetErrMsg = movingToValid ? '' : ' is required';\r\n break;\r\n\r\n case 'houseSize':\r\n houseSizeValid = value.length >= 1;\r\n break;\r\n\r\n case 'movingVehicle':\r\n movingVehicleValid = value.length >= 1;\r\n break;\r\n\r\n case 'appointmentType':\r\n appointmentTypeValid = value.length >= 1;\r\n break;\r\n\r\n case 'contactName':\r\n contactNameValid = value.length >= 1;\r\n fieldValidationErrors.contactNameErrMsg = contactNameValid ? '' : 'Please Enter Contact Name.';\r\n initStep3From = false;\r\n break;\r\n\r\n case 'contactEmail':\r\n if (value.length < 1) {\r\n contactEmailValid = false;\r\n fieldValidationErrors.contactEmailErrMsg = contactEmailValid ? '' : 'Please Enter Email Address.';\r\n }\r\n else if (!/^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$/.test(value)) {\r\n contactEmailValid = false;\r\n fieldValidationErrors.contactEmailErrMsg = contactEmailValid ? '' : 'Email Address is Invalid !';\r\n }\r\n else {\r\n contactEmailValid = true;\r\n }\r\n initStep3From = false;\r\n break;\r\n\r\n case 'contactPhone':\r\n // if (value.length < 1) {\r\n // contactPhoneValid = false;\r\n // fieldValidationErrors.contactPhoneErrMsg = contactPhoneValid ? '' : 'Please Enter Phone Number.';\r\n // }\r\n // else if (value.length > 10) {\r\n // contactPhoneValid = false;\r\n // fieldValidationErrors.contactPhoneErrMsg = contactPhoneValid ? '' : 'Phone Number Needs to be 10 Digits';\r\n // }\r\n // else if (isNaN(+value)) {\r\n // contactPhoneValid = false;\r\n // fieldValidationErrors.contactPhoneErrMsg = contactPhoneValid ? '' : 'Non Digit is not allowed.';\r\n // }\r\n // else {\r\n // contactPhoneValid = true;\r\n // }\r\n contactPhoneValid = true;\r\n initStep3From = false;\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n this.setState(() => ({\r\n formErrors: fieldValidationErrors,\r\n movingFromValid: movingFromValid,\r\n movingToValid: movingToValid,\r\n houseSizeValid: houseSizeValid,\r\n initForm: initForm\r\n }), this.validateStep1Form);\r\n\r\n this.setState(() => ({\r\n formErrors: fieldValidationErrors,\r\n houseSizeValid: houseSizeValid,\r\n movingVehicleValid: movingVehicleValid,\r\n }), this.validateStep2Form);\r\n\r\n this.setState(() => ({\r\n formErrors: fieldValidationErrors,\r\n contactNameValid: contactNameValid,\r\n contactEmailValid: contactEmailValid,\r\n contactPhoneValid: contactPhoneValid,\r\n initStep3From: initStep3From,\r\n }), this.validateStep3Form);\r\n\r\n this.setState(() => ({\r\n appointmentTypeValid: appointmentTypeValid\r\n }), this.validateStep5Form);\r\n }\r\n\r\n validateStep1Form() {\r\n this.setState({ step1FormValid: this.state.movingToValid && this.state.movingFromValid });\r\n }\r\n\r\n validateStep2Form() {\r\n this.setState({ step2FormValid: this.state.houseSizeValid && this.state.movingVehicleValid });\r\n }\r\n\r\n validateStep3Form() {\r\n if (!this.state.initStep3From) {\r\n this.setState({ step3FormValid: this.state.contactNameValid && this.state.contactEmailValid && this.state.contactPhoneValid });\r\n }\r\n }\r\n\r\n validateStep5Form() {\r\n this.setState({ step5FormValid: this.state.appointmentTypeValid });\r\n }\r\n\r\n errorClass(error) {\r\n return (error.length === 0 ? '' : 'has-error');\r\n }\r\n \r\n SetOperatingHoursByDay(dateValue) {\r\n let date = new Date(dateValue);\r\n let day = date.getDay();\r\n let operatingHourArray = [];\r\n console.log(date);\r\n switch (day) {\r\n case 1:\r\n operatingHourArray = this.parseOperatingHours(document.getElementById(\"AgentPreferenceMondayHours\").value, date.toString());\r\n break;\r\n case 2:\r\n operatingHourArray = this.parseOperatingHours(document.getElementById(\"AgentPreferenceTuesdayHours\").value, date.toString());\r\n break;\r\n case 3:\r\n operatingHourArray = this.parseOperatingHours(document.getElementById(\"AgentPreferenceWednesdayHours\").value, date.toString());\r\n break;\r\n case 4:\r\n operatingHourArray = this.parseOperatingHours(document.getElementById(\"AgentPreferenceThursdayHours\").value, date.toString());\r\n\r\n break;\r\n case 5:\r\n operatingHourArray = this.parseOperatingHours(document.getElementById(\"AgentPreferenceFridayHours\").value, date.toString());\r\n break;\r\n default://if Sunday or Saturday apply operating hours for Monday\r\n operatingHourArray = this.parseOperatingHours(document.getElementById(\"AgentPreferenceMondayHours\").value, date.toString());\r\n break;\r\n }\r\n\r\n let agentAppointmentBusySlotsOriginalArray = this.parseBusyAppointmentSlots(document.getElementById(\"AgentAppointmentBusy\").value)\r\n let busyTimeSlotsForSelectedDate = [];\r\n let isStackingAllow = document.getElementById(\"IsAppointmentstackingAllow\").value === \"True\" ? true : false;\r\n for (var i = 0; i < agentAppointmentBusySlotsOriginalArray.length; i++)\r\n {\r\n if (agentAppointmentBusySlotsOriginalArray[i].getDate() === date.getDate())\r\n {\r\n busyTimeSlotsForSelectedDate.push(agentAppointmentBusySlotsOriginalArray[i]);\r\n }\r\n }\r\n\r\n //Remove busy hour(s) from selected day based on is stacking appointment allowed AND busyTimeSlotsForSelectedDate array is not empty\r\n if (busyTimeSlotsForSelectedDate.length > 0 && !isStackingAllow) {\r\n operatingHourArray = operatingHourArray.filter(s => busyTimeSlotsForSelectedDate.every(e => e.toString() !== s.toString()));\r\n }\r\n \r\n //console.log(\"result after fillered (first time) -------\");\r\n //console.log(operatingHourArray);\r\n\r\n\r\n return operatingHourArray;\r\n }\r\n\r\n parseOperatingHours(Hourdata, dateValue) {\r\n if (!Hourdata) return [];\r\n let finalDataArray = [];\r\n let hourArray = Hourdata.split(',');\r\n hourArray.forEach(element => {\r\n var operatingHours = setHours(setMinutes(setSeconds(new Date(dateValue), 0), 0), element).toString();\r\n finalDataArray.push(new Date(operatingHours));\r\n });\r\n return finalDataArray;\r\n }\r\n\r\n parseBusyAppointmentSlots(busy) {\r\n if (!busy) return [];\r\n let parsedSlotData = []\r\n let finalSlotData = []\r\n\r\n let slotArr = busy.split(',');\r\n\r\n slotArr.forEach(element => {\r\n var a = new Date(element);\r\n var b = a.toString();\r\n parsedSlotData.push(b)\r\n });\r\n\r\n let uniqueChars = [];\r\n parsedSlotData.forEach((element) => {\r\n if (!uniqueChars.includes(element)) {\r\n uniqueChars.push(element);\r\n }\r\n });\r\n\r\n uniqueChars.forEach((element) => {\r\n finalSlotData.push(new Date(element))\r\n });\r\n return finalSlotData;\r\n }\r\n\r\n updateInputVal(input, selected) {\r\n this.setState({\r\n [input]: selected.formatted_address,\r\n });\r\n\r\n var googleAutoCompleteReadableJsonFormat = this.convertGoogleApiComponentToReadableJson(selected, input);\r\n if (input === \"movingFromStreet\") {\r\n this.setState({\r\n movingFromAddrComponent: {\r\n MovingFromInput: selected.formatted_address,\r\n MovingFromAddress: googleAutoCompleteReadableJsonFormat.addy,\r\n MovingFromCity: googleAutoCompleteReadableJsonFormat.city,\r\n MovingFromState: googleAutoCompleteReadableJsonFormat.state,\r\n MovingFromZip: googleAutoCompleteReadableJsonFormat.zip,\r\n MovingFromCountryCode: googleAutoCompleteReadableJsonFormat.cntryCode\r\n }\r\n });\r\n\r\n //console.log(this.state.movingFromAddrComponent);\r\n }\r\n\r\n if (input === \"movingToStreet\") {\r\n this.setState({\r\n movingToAddrComponent: {\r\n MovingToInput: selected.formatted_address,\r\n MovingToAddress: googleAutoCompleteReadableJsonFormat.addy,\r\n MovingToCity: googleAutoCompleteReadableJsonFormat.city,\r\n MovingToState: googleAutoCompleteReadableJsonFormat.state,\r\n MovingToZip: googleAutoCompleteReadableJsonFormat.zip,\r\n MovingToCountryCode: googleAutoCompleteReadableJsonFormat.cntryCode\r\n },\r\n }, this.determineMoveType);\r\n\r\n //console.log(this.state.movingToAddrComponent);\r\n }\r\n }\r\n\r\n determineMoveType() {\r\n this.setState({\r\n isLocalMove: this.state.movingFromAddrComponent.MovingFromState === this.state.movingToAddrComponent.MovingToState\r\n })\r\n }\r\n\r\n convertGoogleApiComponentToReadableJson(place, input) {\r\n var components = place.address_components;\r\n var comp, township, county, sep, streetNumber, route;\r\n var resultJson = {};\r\n\r\n if (!components) {\r\n console.log(\"components error: \");\r\n console.log(components);\r\n return resultJson;\r\n }\r\n\r\n for (var c = 0; c < components.length; ++c) {\r\n comp = components[c];\r\n\r\n if (comp.types.indexOf(\"street_number\") > -1) {\r\n streetNumber = comp.long_name;\r\n }\r\n if (comp.types.indexOf(\"route\") > -1) {\r\n route = comp.short_name;\r\n }\r\n if (comp.types.indexOf(\"locality\") > -1 && comp.types.indexOf(\"political\") > -1) {\r\n resultJson.city = comp.long_name;\r\n }\r\n if (comp.types.indexOf(\"administrative_area_level_3\") > -1 && comp.types.indexOf(\"political\") > -1) {\r\n township = comp.long_name;\r\n }\r\n if (comp.types.indexOf(\"administrative_area_level_2\") > -1 && comp.types.indexOf(\"political\") > -1) {\r\n county = comp.long_name;\r\n }\r\n if (comp.types.indexOf(\"administrative_area_level_1\") > -1 && comp.types.indexOf(\"political\") > -1) {\r\n resultJson.state = comp.short_name;\r\n }\r\n if (comp.types.indexOf(\"postal_code\") > -1) {\r\n resultJson.zip = comp.short_name.replace(/\\s/g, \"\");\r\n }\r\n if (comp.types.indexOf(\"country\") > -1) {\r\n resultJson.cntryCode = comp.short_name;\r\n }\r\n }\r\n\r\n if (!resultJson.city) {\r\n resultJson.city = township || county || \"\";\r\n }\r\n\r\n sep = (streetNumber && route) ? \" \" : \"\";\r\n\r\n streetNumber = streetNumber || \"\";\r\n route = route || \"\";\r\n\r\n resultJson.addy = streetNumber + sep + route;\r\n\r\n resultJson.zip = \"\";\r\n\r\n if (!resultJson.zip && place.geometry && place.geometry.location) { // autocomplete failed to return a zip code. Use lat/long to get one\t\t\t\t\t\r\n var location = place.geometry.location,\r\n lat = location.lat(),\r\n lng = location.lng();\r\n\r\n Geocode.setApiKey(\"AIzaSyAhGzSn1R46p94ApfqMiBHVHzi8IeMqhoU\");\r\n\r\n Geocode.fromLatLng(lat, lng).then(\r\n (response) => {\r\n if (response.results.length >= 0) {\r\n\r\n console.log(response.results);\r\n\r\n for (var i = 0; i < response.results.length; i++) {\r\n if (response.results[i]) {\r\n var cmpts = response.results[i].address_components;\r\n var breakOut = false;\r\n for (var c = 0; c < cmpts.length; ++c) {\r\n comp = cmpts[c];\r\n\r\n if (comp.types.indexOf(\"postal_code\") > -1) {\r\n this.updateInputZipAfterGeoCode(input, comp.short_name.replace(/\\s/g, \"\"))\r\n //resultJson.zip = comp.short_name.replace(/\\s/g, \"\");\r\n //window.alert(resultJson.zip);\r\n breakOut = true;\r\n break;\r\n //console.log('zip gets ' + comp.short_name)\r\n }\r\n }\r\n\r\n if (breakOut) {\r\n //this.validateLocationInterpretation();\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n },\r\n (error) => {\r\n console.error(error);\r\n }\r\n );\r\n }\r\n //else validateLocationInterpretation();\r\n //console.log(zipper);\r\n return resultJson\r\n }\r\n\r\n updateInputZipAfterGeoCode(input, zip) {\r\n\r\n if (input === \"movingFromStreet\") {\r\n\r\n var oldVal = this.state.movingFromAddrComponent;\r\n\r\n this.setState({\r\n movingFromAddrComponent: {\r\n MovingFromInput: oldVal.MovingFromInput,\r\n MovingFromAddress: oldVal.MovingFromAddress,\r\n MovingFromCity: oldVal.MovingFromCity,\r\n MovingFromState: oldVal.MovingFromState,\r\n MovingFromZip: zip,\r\n MovingFromCountryCode: oldVal.MovingFromCountryCode\r\n }\r\n });\r\n\r\n // console.log(this.state.movingFromAddrComponent);\r\n }\r\n\r\n if (input === \"movingToStreet\") {\r\n\r\n oldVal = this.state.movingToAddrComponent;\r\n\r\n this.setState({\r\n movingToAddrComponent: {\r\n MovingToInput: oldVal.MovingToInput,\r\n MovingToAddress: oldVal.MovingToAddress,\r\n MovingToCity: oldVal.MovingToCity,\r\n MovingToState: oldVal.MovingToState,\r\n MovingToZip: zip,\r\n MovingToCountryCode: oldVal.MovingToCountryCode\r\n },\r\n });\r\n\r\n // console.log(this.state.movingToAddrComponent);\r\n }\r\n }\r\n\r\n formatPhoneNumber(value) {\r\n if (!value) return value;\r\n const phoneNumber = value.replace(/[^\\d]/g, '');\r\n const phoneNumberLength = phoneNumber.length;\r\n if (phoneNumberLength < 4) return phoneNumber;\r\n if (phoneNumberLength < 7) {\r\n return `(${phoneNumber.slice(0, 3)}) ${phoneNumber.slice(3)}`;\r\n }\r\n return `(${phoneNumber.slice(0, 3)}) ${phoneNumber.slice(\r\n 3,\r\n 6\r\n )}-${phoneNumber.slice(6, 10)}`;\r\n }\r\n\r\n phoneNumberFormatter(value) {\r\n const formattedInputValue = this.formatPhoneNumber(value);\r\n console.log(formattedInputValue);\r\n return formattedInputValue;\r\n }\r\n\r\n render() {\r\n const { step, isFilled } = this.state;\r\n const {\r\n LeadId,\r\n isDataByLMPID,\r\n errorMsg,\r\n movingFromStreet,\r\n movingFromUnit,\r\n movingToStreet,\r\n movingToUnit,\r\n movingDate,\r\n houseSize,\r\n movingVehicle,\r\n contactName,\r\n contactEmail,\r\n contactPhone,\r\n appointmentType,\r\n appointmentDate,\r\n appointmentTime,\r\n appointmentPhone,\r\n appointmentLocation,\r\n movingToAddrComponent,\r\n movingFromAddrComponent,\r\n movingDateString,\r\n instaQuotePriceRange,\r\n isLoadingAgain,\r\n appointmentDateString,\r\n appointmentTimeString,\r\n agentAppointmentStartDate,\r\n agentAppointmentNextHoliday,\r\n agentCode,\r\n agentName,\r\n agentPhone,\r\n agentAddress,\r\n agentAllocationId,\r\n agentPreferenceMondayHours,\r\n agentPreferenceTuesdayHours,\r\n agentPreferenceWednesdayHours,\r\n agentPreferenceThursdayHours,\r\n agentPreferenceFridayHours,\r\n agentOperatingHours,\r\n isAppointmentstackingAllow,\r\n agentAppointmentBusySlotsOriginal,\r\n agentAppointmentBusySlotsUpdated,\r\n referralCode,\r\n vendorName,\r\n vendorId,\r\n deviceType,\r\n prevPageUrlReferral,\r\n verificationToken,\r\n step1FormValid,\r\n step2FormValid,\r\n step3FormValid,\r\n formErrors,\r\n movingFromValid,\r\n movingToValid,\r\n contactNameValid,\r\n contactEmailValid,\r\n contactPhoneValid,\r\n initForm,\r\n initStep3From,\r\n isLocalMove,\r\n isOutOfAreaMove\r\n } = this.state;\r\n const values = {\r\n LeadId,\r\n isDataByLMPID,\r\n errorMsg,\r\n movingFromStreet,\r\n movingFromUnit,\r\n movingToStreet,\r\n movingToUnit,\r\n movingDate,\r\n houseSize,\r\n movingVehicle,\r\n contactName,\r\n contactEmail,\r\n contactPhone,\r\n appointmentType,\r\n appointmentDate,\r\n appointmentTime,\r\n appointmentPhone,\r\n appointmentLocation,\r\n movingToAddrComponent,\r\n movingFromAddrComponent,\r\n movingDateString,\r\n instaQuotePriceRange,\r\n isLoadingAgain,\r\n appointmentDateString,\r\n appointmentTimeString,\r\n agentAppointmentStartDate,\r\n agentAppointmentNextHoliday,\r\n agentCode,\r\n agentName,\r\n agentPhone,\r\n agentAddress,\r\n agentAllocationId,\r\n agentPreferenceMondayHours,\r\n agentPreferenceTuesdayHours,\r\n agentPreferenceWednesdayHours,\r\n agentPreferenceThursdayHours,\r\n agentPreferenceFridayHours,\r\n agentOperatingHours,\r\n isAppointmentstackingAllow,\r\n agentAppointmentBusySlotsOriginal,\r\n agentAppointmentBusySlotsUpdated,\r\n referralCode,\r\n vendorName,\r\n vendorId,\r\n deviceType,\r\n prevPageUrlReferral,\r\n verificationToken,\r\n step1FormValid,\r\n step2FormValid,\r\n step3FormValid,\r\n formErrors,\r\n movingFromValid,\r\n movingToValid,\r\n contactNameValid,\r\n contactEmailValid,\r\n contactPhoneValid,\r\n initForm,\r\n initStep3From,\r\n isLocalMove,\r\n isOutOfAreaMove\r\n };\r\n\r\n let { activeStep } = this.props;\r\n\r\n const container = document.getElementById(\"online-booking\");\r\n\r\n switch (step) {\r\n case 1:\r\n activeStep = 1\r\n return ReactDOM.createPortal(\r\n
\r\n \r\n \r\n this.updateInputVal(input, selected)}\r\n triggerValidation={this.triggerStep1Validation}\r\n handleValidationFields={this.handleValidationFields}\r\n />\r\n {/* {this.setGoogleApi()} */}\r\n
,\r\n container\r\n );\r\n case 2:\r\n activeStep = 2\r\n return ReactDOM.createPortal(\r\n
\r\n \r\n \r\n \r\n
,\r\n container\r\n );\r\n case 3:\r\n activeStep = 3\r\n return ReactDOM.createPortal(\r\n
\r\n \r\n \r\n \r\n
,\r\n container\r\n );\r\n case 4:\r\n return ReactDOM.createPortal(\r\n
\r\n \r\n \r\n \r\n
,\r\n container\r\n );\r\n case 5:\r\n activeStep = 5\r\n return ReactDOM.createPortal(\r\n
\r\n \r\n \r\n this.handleOnlineBookingFinalResponse(leadSuccess)}\r\n />\r\n
,\r\n container\r\n );\r\n case 6:\r\n activeStep = 6\r\n return ReactDOM.createPortal(\r\n
\r\n \r\n \r\n
,\r\n container\r\n );\r\n case 7:\r\n return ReactDOM.createPortal(\r\n
\r\n \r\n
,\r\n container\r\n );\r\n default:\r\n //do nothing\r\n }\r\n }\r\n}\r\n","import React from \"react\";\r\n\r\nconst Svgs = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n handshake\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n video-call\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Svgs;\r\n","import React from \"react\";\r\nimport OnlineBooking from \"./components/OnlineBooking\";\r\nimport Svg from \"./components/svgs/svg\";\r\nimport rg4js from 'raygun4js';\r\nimport { useEffect } from \"react\";\r\n\r\nrg4js('apiKey', 'WTaSVCys1E9G1J1JetTctg');\r\nrg4js('enableCrashReporting', true);\r\n\r\nconst onlineBookingPage = document.getElementById(\"online-booking\");\r\n\r\nconst App = (props) => {\r\n // useEffect(() => {\r\n // const unloadCallback = (event) => {\r\n // event.preventDefault();\r\n // event.returnValue = \"\";\r\n // return \"\";\r\n // };\r\n\r\n // window.addEventListener(\"beforeunload\", unloadCallback);\r\n // return () => window.removeEventListener(\"beforeunload\", unloadCallback);\r\n // }, []);\r\n\r\n return (\r\n
\r\n \r\n {onlineBookingPage && }\r\n
\r\n );\r\n};\r\n\r\nexport default App;\r\n","import React from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport 'react-app-polyfill/ie11';\r\nimport 'react-app-polyfill/stable';\r\nimport App from \"./App\";\r\n\r\nReactDOM.render(\r\n \r\n \r\n ,\r\n document.getElementById(\"root\")\r\n);\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: https://bit.ly/CRA-PWA\r\n"],"sourceRoot":""}