{"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","handlePhoneFormat","this","props","renderInput","renderSvg","Autocomplete","apiKey","selected","a","c","options","types","componentRestrictions","country","keyDownAttr","onkeydown","Object","assign","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","Svgs","d","fill","transform","points","stroke","mask","x","y","rg4js","onlineBookingPage","App","Svg","StrictMode"],"mappings":"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","file":"static/js/main.28dc26d6.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 handlePhoneFormat\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 var keyDownAttr = { };\r\n if(id === \"contactPhone\"){\r\n keyDownAttr.onkeydown={handlePhoneFormat};\r\n }\r\n\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: \"onlinebooking\",\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: \"onlinebooking\",\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\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('/json/default-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 const cookies = document.cookie.split(';');\r\n for (let i = 0; i < cookies.length; i++) {\r\n const cookie = cookies[i].trim();\r\n if (cookie.substring(0, name.length + 1) === (name + '=')) {\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\": \"NAVL\",\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\": \"NAVL\",\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': 'bJx8kYsEFRza88ELBb2Vt8SD2NzXjnPy',\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 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: \"onlinebooking\",\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 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\r\n return (\r\n
\r\n
\r\n
\r\n {\r\n isLMPID ?//Quote for LMPID\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 />\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 \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 required\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/default-quote/get-quote', 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': 'bJx8kYsEFRza88ELBb2Vt8SD2NzXjnPy',\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.error(\"Error Getting InstaQuote Pricing\");\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: \"onlinebooking\",\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 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 componentDidMount() {\r\n window.scrollTo(0, 0)\r\n }\r\n\r\n render() {\r\n const { values, handleChange, handlePhoneFormat } = 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 {document.getElementById(\"Step3Consent\").value}\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

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 \"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\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/NAVL/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: document.getElementById(\"AgentAppointmentStartDate\").value ? hourArray[0] : date,\r\n appointmentTimeString: document.getElementById(\"AgentAppointmentStartDate\").value ? format(hourArray[0], 'hh:mm aa') : format(date, 'MM/dd/yyyy'),\r\n appointmentDateString: format(date, 'MM/dd/yyyy'),\r\n agentAppointmentBusySlotsUpdated: ((isExist && !this.state.isAppointmentstackingAllow) ? timeSlotsForSelectedDate : []),\r\n agentOperatingHours: hourArray\r\n });\r\n console.log(\"Selected Time ))))))))(((((((((((\");\r\n console.log(this.state.appointmentTimeString);\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', 'hrAa99XdfAp5ZB7hqahtVg');\r\nrg4js('enableCrashReporting', true);\r\n\r\nconst onlineBookingPage = document.getElementById(\"online-booking\");\r\n\r\nconst App = (props) => { \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":""}