{"version":3,"sources":["features/app/types.ts","features/app/actionTypes.ts","features/app/selectors.ts","features/app/appReducer.ts","types.d.ts","features/vehicle/actionTypes.ts","helpers.ts","features/vehicle/selectors.ts","features/vehicle/vehicleReducer.ts","features/customer/actionTypes.ts","features/customer/selectors.ts","features/customer/customerReducer.ts","features/valuation/actionTypes.ts","features/valuation/selectors.ts","features/valuation/valuationReducer.ts","features/dealer/actionTypes.ts","features/dealer/selectors.ts","features/dealer/dealerReducer.ts","features/error/actionTypes.ts","features/error/selectors.ts","features/error/errorReducer.ts","features/qa/actionTypes.ts","features/qa/selectors.ts","features/qa/qaReducer.ts","features/analytics/actionTypes.ts","features/analytics/analyticsReducer.ts","store.ts","components/Header.tsx","components/Footer.tsx","components/Loading.tsx","analytics.ts","components/Error.tsx","components/FieldText.tsx","styles/select.ts","components/FieldSelect.tsx","components/FieldCaptcha.tsx","forms/Start.tsx","components/SelectVehicle/SelectVehicle.tsx","components/TooltipInfo.tsx","api/index.ts","pages/Specs.tsx","components/FieldSlider.tsx","components/FieldRadioGroup.tsx","forms/Condition.tsx","forms/Detail.tsx","pages/Condition.tsx","components/FieldCheckbox.tsx","forms/Contact.tsx","pages/Personal.tsx","pages/Offer.tsx","App.tsx","EmailApp.tsx","index.tsx","assets/images/exclamation.svg","assets/images/barricade.svg"],"names":["EAppVersion","SET_APP","getAppVersion","state","app","version","getAppStep","step","getAppSubStep","subStep","getAppIsLoading","isLoading","getAppBack","back","getAppOfferDate","offerDate","getAppExpiry","expiry","getAppOfferId","offerId","YesNoNotSure","initialState","window","InstantOfferAppVersion","a","SET_VEHICLE","getVehicleTitle","v","year","make","family","badge","badge2nd","getVehicleDescriptionLine","doornum","bodystyle","drive","getVehicleDescriptionSecondaryLine","geartype","enginedesc","getVehicleDescriptionTertiaryLine","fueltype","scrollToBeginning","setTimeout","scrollTo","getArrayFromObject","obj","keyName","valName","Object","keys","map","k","numArray","split","num","length","val","parseInt","r","getFormattedMoney","cents","Intl","NumberFormat","style","currency","format","r2","getFormattedTime","t","d","Date","digits","setHours","setMinutes","toLocaleString","timeStyle","hasSameOperatingTimes","o","o2","OpeningTime","ClosingTime","getFormattedOpeningHours","oh","str","lines","line","i","isFirstLine","IsClosed","isEndLine","replace","Day","push","join","getMonths","getVehicleKms","vehicle","kms","getVehicleRego","rego","getVehicleAustState","auststate","getVehicleRedbookCode","redbookcode","getVehicleVin","matchDebug","vin","getVehicleFamily","getVehicleImage","imageUrl","getVehicleYear","getVehicleMake","getVehicleModel","getVehicleBadge","getVehicleBadge2nd","getVehicleRbid","rbid","getVehicleMakecode","makecode","getVehicleFamilycode","familycode","getVehicleType","vehicletype","getVehicleMonth","month","getVehicleSequenceno","sequenceno","getVehicleNewvehicleflag","newvehicleflag","getVehicleImportflag","importflag","getVehicleLimitededition","limitededition","getVehicleSeries","series","getVehicleBodystyle","getVehicleDrive","getVehicleGeartype","getVehicleGearlocation","gearlocation","getVehicleGearnum","gearnum","getVehicleDoornum","getVehicleEnginesize","enginesize","getVehicleEnginedesc","getVehicleCylinders","cylinders","getVehicleFueltype","getVehicleInduction","induction","getVehicleCam","cam","getVehicleEnginetype","enginetype","getVehicleFuelcapacity","fuelcapacity","getVehicleFueldelivery","fueldelivery","getVehicleMethoddelivery","methoddelivery","getVehicleGvm","gvm","getVehicleWheelbase","wheelbase","getVehicleHeight","height","getVehicleLength","getVehicleWidth","width","getVehicleKerbweight","kerbweight","getVehicleTaremass","taremass","getVehiclePower","power","getVehiclePowerrpmto","powerrpmto","getVehicleTorque","torque","getVehicleTorquerpmfrom","torquerpmfrom","getVehicleTorquerpmto","torquerpmto","getVehicleSeatcapacity","seatcapacity","getVehicleAvgkm","avgkm","getVehicleGdkm","gdkm","getVehicleNewprice","newprice","getVehicleIsBestMatch","isBestMatch","getVehicleMatchDebug","getVehicleTitle2","getVehicleDescriptionLine2","getVehicleSecondaryLine","getVehicleDescriptionSecondaryLine2","getVehicleTertiaryLine","getVehicleDescriptionTertiaryLine2","getVehicleSummaryLine","getVehicleSpecLine","description","SET_CUSTOMER","getCustomerFirstName","customer","firstName","getCustomerLastName","lastName","getCustomerEmail","email","getCustomerMobile","mobile","getCustomerTerms","terms","getCustomerMarketing","marketing","getCustomerDealerBranch","dealerBranch","planOnReplacing","interestedNext","SET_VALUATION","getValuationValuation","valuation","getValuationResult","conditionAnswers","redbookCode","kmUsed","pricingMatchInfo","SET_DEALER","getDealerId","dealer","dealerID","getDealerStockId","stockDealerID","getDealerName","dealerName","getDealerLocationName","locationName","getDealerPrivacyPolicy","privacyPolicy","getDealerPhone","phone","getDealerOpeningHours","openingHours","getDealerWebsite","website","getDealerTerms","getDealerAddress","address","SET_ERROR","RESET_ERROR","getErrorTitle","error","title","getErrorText","text","getErrorButtons","buttons","getErrorIcon","icon","SET_QA","SET_QA_ANSWERS","SET_QA_CONDITIONS","getQaColour","qa","colour","getQaInterestedNext","getQaConditions","conditions","getQaConditionsArray","getQaAnswers","answers","getQaAnswersArray","forEach","Question","Value","key","SET_ANALYTICS","pageType","viewName","event","eventAction","eventLabel","eventCategory","eventValue","nonInteraction","rootReducer","combineReducers","action","type","payload","analytics","store","createStore","devToolsEnhancer","Header","useSelector","selectors","stepList","useState","className","s","disabled","toString","aria-label","onClick","location","Footer","appSelectors","showEstimateDisclaimer","showPrivacyDisclaimer","showTrademarkDisclaimer","showDisclaimers","href","target","Loading","SendEvent","data","getCommon","d2","getUniqueValuesFromObject","final","dataLayer","dispatch","console","log","result","o3","prop","Error","useDispatch","errorSelectors","show","isInit","setIsInit","useEffect","src","default","role","b","classes","callback","clearErrorOnClick","handleButtonClick","FieldText","name","label","inputRef","defaultValue","maxlength","onChange","onBlur","fieldText","setFieldText","fieldFocus","setFieldFocus","handleBlur","e","id","ref","value","nativeEvent","document","activeElement","onFocus","maxLength","undefined","htmlFor","message","selectStyles","container","provided","control","minHeight","borderTop","borderLeft","borderRight","borderBottom","borderBottomColor","isFocused","borderRadius","boxShadow","cursor","background","borderColor","dropdownIndicator","paddingRight","fill","group","groupHeading","indicatorsContainer","indicatorSeparator","display","input","margin","padding","lineHeight","fontSize","loadingIndicator","loadingMessage","menu","zIndex","menuList","menuPortal","multiValue","multiValueLabel","multiValueRemove","noOptionsMessage","option","placeholder","focusStyles","transition","top","color","singleValue","getValue","hasVal","valueContainer","overflow","border","FieldSelect","options","fieldValue","setFieldValue","isSearchable","styles","aria-hidden","FieldCaptcha","sitekey","ApiResult","errormessage","Routes","AnalyticElement","AnalyticType","baseName","Start","handleAnalyticEvent","handleStartSubmit","useForm","defaultValues","handleSubmit","errors","trigger","formState","states","onSubmit","actionTypes","captcha","rules","required","render","field","defaultValueArray","filter","selectedOption","pattern","toUpperCase","Click","element","Button","SwiperCore","use","Navigation","SelectVehicle","vehicles","onSelect","onClear","breakpoints","320","slidesPerView","600","768","1024","1268","navigationPrevRef","React","useRef","navigationNextRef","showButtons","setShowButtons","getButtonVisibility","innerWidth","timer","addEventListener","clearTimeout","watchSlidesVisibility","spaceBetween","onSwiper","swiper","onSlideChange","onBeforeInit","Swiper","params","navigation","prevEl","current","nextEl","isVisible","alt","tabIndex","vehicleActionTypes","handleVehicleSelect","TooltipInfo","LightTooltip","withStyles","theme","arrow","backgroundColor","tooltip","fontFamily","marginBottom","palette","common","white","fontWeight","marginTop","Tooltip","open","setOpen","ClickAwayListener","onClickAway","placement","PopperProps","disablePortal","disableFocusListener","disableHoverListener","disableTouchListener","stopPropagation","baseUrl","process","baseStoreAppUrl","validateEmail","RegExp","test","url","encodeURIComponent","apiFetchGETUTF16","status","email_valid","domain_exists","mailserver_exists","validatePhone","phone_status","getConditions","apiFetchGET","getVehicles","getDealerInfo","dealerId","postValuation","request","apiFetchPostJson","postVehicleLead","getAcceptOffer","offerID","fetch","method","then","ok","arrayBuffer","TextDecoder","decode","JSON","parse","mode","headers","redirect","referrerPolicy","response","end","json","body","stringify","Specs","history","useHistory","isError","dealerSelectors","setVehicles","isTooOld","setIsTooOld","getVehicleResults","appActionTypes","viewSection","btns","pathname","err","require","errorActionTypes","Condition","Fragment","evt","formName","iOSBoxShadow","CustomSlider","styled","Slider","opacity","marginLeft","transform","FieldSlider","defaultSliderPosition","min","max","marks","defaultMark","marksDescriptions","isTouched","setIsTouched","v2","Math","round","FieldRadioGroup","handleChange","aria-describedby","defaultChecked","handleConditionSubmit","handleConditionsLoaded","handleHeadingChange","setValue","getValues","setConditions","conditionCategories","setConditionCategories","fieldsetStep","setFieldsetStep","hasRequestedConditions","setHasRequestedConditions","onFailureToLoadConditions","msg","getCondition","setFormValues","good","poor","number","shouldValidate","shouldDirty","shouldTouch","traffic","cats","reduce","acc","curr","includes","section","qaActionTypes","cat","c","question","handleFieldChange","descPoor","descAverage","average","descGood","Detail","handleDetailSubmit","qaSelectors","showExtraQuestion","setShowExtraQuestion","interestedOptions","Yes","handleFieldFocus","vehicleSelectors","currentFormHeading","setCurrentFormHeading","conditionStep","setConditionStep","getValuation","conditionsArray","valuationRequest","now","setDate","getDate","valuationActionTypes","toISOString","toLowerCase","h","n","Personal","FieldCheckbox","dangerouslySetInnerHTML","__html","Contact","handleContactSubmit","handleDealerLoaded","stockDealerId","vehicleSummary","vehicleSpec","vehicleImage","valuationSelectors","termsUrl","setError","clearErrors","isEmailValidated","setIsEmailValidated","isPhoneValidated","setIsPhoneValidated","isEmailLoading","setIsEmailLoading","isPhoneLoading","setIsPhoneLoading","lastEmail","setLastEmail","lastPhone","setLastPhone","branches","setBranches","isSubmitDisabled","getDealer","DealerSites","IsPrincipal","ds","Phone","Address","Suburb","State","Postcode","Website","Terms","SalesOperatingHours","LocationType","sort","b2","dealerActionTypes","PrivacyPolicy","submitLead","lead","instantOfferAppVersion","vehicleValued","chosenVehicle","nextPurchase","offerAccepted","valuationResult","Success","InstantOfferID","handleEmailBlur","handlePhoneBlur","Offer","results","oid","image","vehicleTitle","vehicleDescriptionLine","vehicleSecondaryLine","vehicleTertiaryLine","expiryDate","expiryFormatted","getMonth","getFullYear","handleInterestClick","App","hasSetDealer","setHasSetDealer","StoreWebsiteInfo","DealerID","StockDealerID","DealerName","LocationName","basename","path","component","to","EmailApp","urlSearchParams","URLSearchParams","search","fromEntries","entries","appRoot","getElementById","emailRoot","ReactDOM"],"mappings":"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","file":"static/js/main.7caf3016.chunk.js","sourcesContent":["import { SET_APP } from './actionTypes'\r\n\r\ninterface SetAppAction {\r\n type: typeof SET_APP, \r\n payload: object | null\r\n}\r\n\r\nexport enum EAppVersion {\r\n a = 'a',\r\n b = 'b'\r\n}\r\n\r\nexport interface AppState {\r\n app: {\r\n version: EAppVersion,\r\n step: number, \r\n subStep: number,\r\n isLoading: boolean, \r\n back: string, \r\n offerDate: string, \r\n expiry: string, \r\n offerId: number\r\n }\r\n}\r\n\r\nexport type AppActionTypes = SetAppAction\r\n","export const SET_APP = 'SET_APP'","import { AppState } from './types';\r\n\r\nexport const getAppVersion = (state: AppState) => state.app.version;\r\nexport const getAppStep = (state: AppState) => state.app.step;\r\nexport const getAppSubStep = (state: AppState) => state.app.subStep;\r\nexport const getAppIsLoading = (state: AppState) => state.app.isLoading;\r\nexport const getAppBack = (state: AppState) => state.app.back;\r\nexport const getAppOfferDate = (state: AppState) => state.app.offerDate;\r\nexport const getAppExpiry = (state: AppState) => state.app.expiry;\r\nexport const getAppOfferId = (state: AppState) => state.app.offerId;\r\n\r\n","import { SET_APP } from './actionTypes'\r\nimport { AppActionTypes, EAppVersion } from './types'\r\n\r\nconst initialState = {\r\n version: (window as any).InstantOfferAppVersion || EAppVersion.a,\r\n step: 0, \r\n subStep: 0,\r\n isLoading: false, \r\n back: '/sellmycar', \r\n offerDate: '', \r\n expiry: '', \r\n offerId: 0\r\n}\r\n\r\nexport default (state = initialState, action: AppActionTypes) => {\r\n switch (action.type) {\r\n case SET_APP:\r\n return { ...state, ...action.payload }\r\n default:\r\n return state\r\n }\r\n}\r\n","import { IAnswer, IConditionAnswer } from \"./features/qa/types\";\r\n\r\nexport class ApiResult\r\n{\r\n public result?: T;\r\n public errormessage: string = ''; \r\n}\r\nexport interface ValuationResult\r\n{\r\n condition: string;\r\n mileage: number;\r\n wholesalePrice: number;\r\n}\r\nexport interface ICondition\r\n{\r\n number: string;\r\n section: string;\r\n name: string;\r\n question: string;\r\n good: string;\r\n average: string;\r\n poor: string;\r\n value: number;\r\n}\r\n\r\ninterface IRadioValue {\r\n label: string, \r\n value: any\r\n}\r\n\r\nexport enum YesNoNotSure {\r\n Yes = 2,\r\n NotSure = -1,\r\n No = 1,\r\n NotSet = 0\r\n}\r\n\r\nexport const baseName = '/instant-offer';\r\n\r\nexport enum Routes {\r\n Specs = `/specs`, \r\n Condition = `/condition`, \r\n Personal = `/personal`, \r\n Offer = `/offer`\r\n}\r\n\r\nexport enum AnalyticElement {\r\n Button = 'button',\r\n Field = 'field'\r\n}\r\nexport enum AnalyticType {\r\n Focus = 'focus',\r\n Click = 'click'\r\n}\r\nexport interface IAnalyticEvent {\r\n type: AnalyticType,\r\n element: AnalyticElement,\r\n name: string\r\n}\r\n\r\nexport interface ICustomer {\r\n firstName: string,\r\n lastName: string,\r\n email: string,\r\n mobile: string,\r\n terms: boolean,\r\n marketing: boolean, \r\n dealerBranch: string\r\n}\r\nexport interface IVehicleResult {\r\n redbookcode: string\r\n rbid: string\r\n makecode: string\r\n familycode: string\r\n vehicletype: string\r\n year: string\r\n month: string\r\n sequenceno: string\r\n description: string\r\n newvehicleflag: string\r\n importflag: string\r\n limitededition: string\r\n series: string\r\n badge: string\r\n badge2nd: string\r\n bodystyle: string\r\n drive: string\r\n geartype: string\r\n gearlocation: string\r\n gearnum: string\r\n doornum: string\r\n enginesize: string\r\n enginedesc: string\r\n cylinders: string\r\n fueltype: string\r\n induction: string\r\n cam: string\r\n enginetype: string\r\n fuelcapacity: string\r\n fueldelivery: string\r\n methoddelivery: string\r\n gvm: string\r\n wheelbase: string\r\n height: string\r\n length: string\r\n width: string\r\n kerbweight: string\r\n taremass: string\r\n power: string\r\n powerrpmto: string\r\n torque: string\r\n torquerpmfrom: string\r\n torquerpmto: string\r\n seatcapacity: string\r\n avgkm: string\r\n gdkm: string\r\n newprice: string\r\n make: string\r\n family: string\r\n isBestMatch: boolean;\r\n imageUrl: string\r\n matchDebug?: VehicleInfo;\r\n}\r\nexport interface VehicleInfo {\r\n registrationNumber: string;\r\n state: string;\r\n vin: string;\r\n model: string;\r\n grade: string;\r\n manufacturedYear: string;\r\n vehicleAge: string;\r\n deliveryDate: string;\r\n manufacturer: string;\r\n source: string;\r\n compliancePlate: string;\r\n vehicleDescription: string;\r\n sellingDealerCode: string;\r\n sellingDealerName: string;\r\n materialNumber: string;\r\n}\r\nexport interface IVehicleValued {\r\n\tyear: string;\r\n\tmake: string;\r\n\tfamily: string;\r\n\tbadge: string;\r\n\tbadge2nd: string;\r\n\tvehicleSummary: string;\r\n\tvehicleSpec: string;\r\n vehicleImage: string;\r\n redbookCode: string;\r\n chosenVehicle: IVehicleResult;\r\n}\r\nexport interface ILead {\r\n instantOfferAppVersion: string,\r\n dealerID: number\r\n stockDealerID: number\r\n locationName: string\r\n firstName: string\r\n lastName: string\r\n mobile: string\r\n email: string\r\n offerDate: string,\r\n rego: string\r\n state: string\r\n kms: number\r\n vin: string\r\n vehicleValued?: IVehicleValued\r\n conditions?: Array\r\n redbookCode: string\r\n valuation: number\r\n answers?: Array[IAnswer]\r\n\r\n nextPurchase: string\r\n offerAccepted: boolean\r\n dealerBranch : string\r\n valuationResult?: IValuationResult \r\n colour: string\r\n //MOVE\r\n //chosenVehicle?: IVehicleResult\r\n}\r\n// export interface IValuationRouteParams \r\n// {\r\n// rego?: string;\r\n// kms?: string;\r\n// auststate?: string;\r\n// }\r\n// export interface IValuationResultRouteParams \r\n// {\r\n// redbookcode?: string;\r\n// kms?: string;\r\n// }\r\n\r\n\r\nexport interface IValuationRequest {\r\n\tconditions?: Array,\r\n\tredbookCode: string\r\n\tkms: number\r\n}\r\nexport interface IValuationResult {\r\n\tconditionAnswers?: Array\r\n\tredbookCode: string,\r\n\tkms: number,\r\n\tkmUsed: number,\r\n\tvaluation: number,\r\n\tpricingMatchInfo: string\r\n}","export const SET_VEHICLE = 'SET_VEHICLE'\r\n","import { IVehicleResult } from \"./types.d\"\r\nimport { IOpeningHours } from \"./features/dealer/types\"\r\nimport { IVehicle } from \"./features/vehicle/types\"\r\n\r\nexport const getVehicleTitle = (v: IVehicleResult | IVehicleResult) => `${v.year || ''} ${v.make || ''} ${v.family || ''} ${v.badge || ''} ${v.badge2nd || ''}`;\r\nexport const getVehicleDescriptionLine = (v: IVehicleResult | IVehicleResult) => `${v.doornum || ''} door ${v.bodystyle || ''} ${v.drive || ''}`;\r\nexport const getVehicleDescriptionSecondaryLine = (v: IVehicle | IVehicleResult) => `${v.geartype} ${v.enginedesc}`;\r\nexport const getVehicleDescriptionTertiaryLine = (v: IVehicle | IVehicleResult) => v.fueltype ? '(' + v.fueltype + ')' : '';\r\nexport const getVehicleSummaryLine = (v: IVehicle | IVehicleResult) => v.doornum + ` door ` + v.bodystyle + ` ` + v.drive;\r\nexport const getVehicleSpecLine = (v: IVehicle | IVehicleResult) => v.geartype + ` ` + v.enginedesc + ` (` + v.fueltype + `)`;\r\n\r\nexport const scrollToBeginning = () => {\r\n setTimeout(() => {\r\n window.scrollTo(0, 0);\r\n });\r\n};\r\n\r\nexport const getArrayFromObject = (obj: object, keyName: string, valName: string) => {\r\n const ret: Array = Object.keys(obj).map(k => {\r\n const numArray = k.split('-');\r\n const num = numArray.length === 2 ? numArray[1] : 'ERROR';\r\n const val = parseInt((obj as any)[k]);\r\n const r = {};\r\n (r as any)[keyName] = num;\r\n (r as any)[valName] = val;\r\n return r;\r\n });\r\n return ret;\r\n};\r\n\r\nexport const getFormattedMoney = (v: number, cents: boolean = true) => {\r\n let r: string = new Intl.NumberFormat('en-AU', { style: 'currency', currency: 'AUD' }).format(v);\r\n if (!cents){\r\n const r2 = r.split('.');\r\n if (r2.length) return r2[0];\r\n }\r\n return r;\r\n};\r\n\r\nexport const getFormattedKms = (v: number) => v.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n\r\nexport const getFormattedTime = (t: string) => {\r\n const d = new Date();\r\n const digits = t.split(':');\r\n if (digits.length < 2) return t;\r\n d.setHours(parseInt(digits[0]))\r\n d.setMinutes(parseInt(digits[1]));\r\n return d.toLocaleString('en-US', { timeStyle: 'short' });\r\n};\r\nexport const hasSameOperatingTimes = (o: IOpeningHours, o2: IOpeningHours) => {\r\n return o2.OpeningTime == o.OpeningTime && o2.ClosingTime == o.ClosingTime;\r\n};\r\nexport const getFormattedOpeningHours = (oh: Array): string => {\r\n // oh = [\r\n // {\r\n // Day:\"Monday\",\r\n // OpeningTime:\"08:30:00\",\r\n // ClosingTime:\"17:30:00\",\r\n // IsClosed:true\r\n // }, \r\n // {\r\n // Day:\"Tue\",\r\n // OpeningTime:\"08:30:00\",\r\n // ClosingTime:\"17:30:00\",\r\n // IsClosed:false\r\n // }, \r\n // {\r\n // Day:\"Wed\",\r\n // OpeningTime:\"08:30:00\",\r\n // ClosingTime:\"17:30:00\",\r\n // IsClosed:false\r\n // }, \r\n // {\r\n // Day:\"thur\",\r\n // OpeningTime:\"08:30:00\",\r\n // ClosingTime:\"19:30:00\",\r\n // IsClosed:false\r\n // }, \r\n // {\r\n // Day:\"fri\",\r\n // OpeningTime:\"08:30:00\",\r\n // ClosingTime:\"19:30:00\",\r\n // IsClosed:false\r\n // }, \r\n // {\r\n // Day:\"sat\",\r\n // OpeningTime:\"08:30:00\",\r\n // ClosingTime:\"17:30:00\",\r\n // IsClosed:true\r\n // }, \r\n // {\r\n // Day:\"sun\",\r\n // OpeningTime:\"10:00:00\",\r\n // ClosingTime:\"16:30:00\",\r\n // IsClosed:false\r\n // }, \r\n // {\r\n // Day:\"mon2\",\r\n // OpeningTime:\"10:00:00\",\r\n // ClosingTime:\"16:30:00\",\r\n // IsClosed:false\r\n // }, \r\n // {\r\n // Day:\"tue2\",\r\n // OpeningTime:\"12:00:00\",\r\n // ClosingTime:\"15:30:00\",\r\n // IsClosed:false\r\n // }, \r\n // {\r\n // Day:\"wed2\",\r\n // OpeningTime:\"12:00:00\",\r\n // ClosingTime:\"16:30:00\",\r\n // IsClosed:false\r\n // }, \r\n // {\r\n // Day:\"thu2\",\r\n // OpeningTime:\"12:00:00\",\r\n // ClosingTime:\"17:30:00\",\r\n // IsClosed:false\r\n // }\r\n // ];\r\n const str = `{sd} {d} {ed}: {st} to {et}`;\r\n const lines: Array = [];\r\n let o: IOpeningHours | null = null;\r\n let line: string = str;\r\n\r\n for (let i = 0; i != oh.length; ++i){\r\n const isFirstLine = line == str && !oh[i].IsClosed;\r\n const isEndLine = o && \r\n hasSameOperatingTimes(oh[i],o) &&\r\n (\r\n i+1 == oh.length || \r\n (oh[i+1].IsClosed || oh[i+1].OpeningTime != o.OpeningTime || oh[i+1].ClosingTime != o.ClosingTime)\r\n );\r\n if (isFirstLine){\r\n line = line.replace('{sd}', oh[i].Day).replace('{st}', getFormattedTime(oh[i].OpeningTime)).replace('{et}', getFormattedTime(oh[i].ClosingTime));\r\n if (i+1 == oh.length || !hasSameOperatingTimes(oh[i], oh[i+1])){\r\n line = line.replace('{ed}','').replace(' {d} ', '');\r\n lines.push(line);\r\n line = str;\r\n }\r\n o = oh[i];\r\n continue;\r\n }\r\n if (isEndLine){\r\n line = line.replace('{ed}', oh[i].Day).replace('{d}', '-');\r\n lines.push(line);\r\n line = str;\r\n }\r\n }\r\n return lines.length ? lines.join('
') : '';\r\n};\r\n\r\nexport const getMonths: Array = [\r\n \"January\",\r\n \"February\",\r\n \"March\",\r\n \"April\",\r\n \"May\",\r\n \"June\",\r\n \"July\",\r\n \"August\",\r\n \"September\",\r\n \"October\",\r\n \"November\",\r\n \"December\"\r\n];","import { VehicleState } from './types';\r\nimport { \r\n getVehicleDescriptionLine as getVehicleDescriptionLine2, \r\n getVehicleSummaryLine as getVehicleSummaryLine2, \r\n getVehicleSpecLine as getVehicleSpecLine2,\r\n getVehicleTitle as getVehicleTitle2, \r\n getVehicleDescriptionSecondaryLine as getVehicleDescriptionSecondaryLine2, \r\n getVehicleDescriptionTertiaryLine as getVehicleDescriptionTertiaryLine2\r\n} from '../../helpers'\r\n\r\nexport const getVehicleKms = (state: VehicleState) => state.vehicle.kms;\r\nexport const getVehicleRego = (state: VehicleState) => state.vehicle.rego;\r\nexport const getVehicleAustState = (state: VehicleState) => state.vehicle.auststate;\r\n\r\nexport const getVehicleRedbookCode = (state: VehicleState) => state.vehicle.redbookcode;\r\nexport const getVehicleVin = (state: VehicleState) => state.vehicle.matchDebug?.vin || '';\r\nexport const getVehicleFamily = (state: VehicleState) => state.vehicle.family || '';\r\nexport const getVehicleImage = (state: VehicleState) => state.vehicle.imageUrl || '';\r\nexport const getVehicleYear = (state: VehicleState) => state.vehicle.year || '';\r\nexport const getVehicleMake = (state: VehicleState) => state.vehicle.make || '';\r\nexport const getVehicleModel = (state: VehicleState) => state.vehicle.family || '';\r\nexport const getVehicleBadge = (state: VehicleState) => state.vehicle.badge || '';\r\nexport const getVehicleBadge2nd = (state: VehicleState) => state.vehicle.badge2nd || '';\r\nexport const getVehicleRbid = (state: VehicleState) => state.vehicle.rbid || '';\r\nexport const getVehicleMakecode = (state: VehicleState) => state.vehicle.makecode || '';\r\n\r\nexport const getVehicleFamilycode = (state: VehicleState) => state.vehicle.familycode || '';\r\nexport const getVehicleType = (state: VehicleState) => state.vehicle.vehicletype || '';\r\nexport const getVehicleMonth = (state: VehicleState) => state.vehicle.month || '';\r\nexport const getVehicleSequenceno = (state: VehicleState) => state.vehicle.sequenceno || '';\r\n// export const getVehicleDescription = (state: VehicleState) => state.vehicle.description || '';\r\nexport const getVehicleNewvehicleflag = (state: VehicleState) => state.vehicle.newvehicleflag || '';\r\nexport const getVehicleImportflag = (state: VehicleState) => state.vehicle.importflag || '';\r\nexport const getVehicleLimitededition = (state: VehicleState) => state.vehicle.limitededition || '';\r\nexport const getVehicleSeries = (state: VehicleState) => state.vehicle.series || '';\r\nexport const getVehicleBodystyle = (state: VehicleState) => state.vehicle.bodystyle || '';\r\nexport const getVehicleDrive = (state: VehicleState) => state.vehicle.drive || '';\r\nexport const getVehicleGeartype = (state: VehicleState) => state.vehicle.geartype || '';\r\nexport const getVehicleGearlocation = (state: VehicleState) => state.vehicle.gearlocation || '';\r\nexport const getVehicleGearnum = (state: VehicleState) => state.vehicle.gearnum || '';\r\nexport const getVehicleDoornum = (state: VehicleState) => state.vehicle.doornum || '';\r\nexport const getVehicleEnginesize = (state: VehicleState) => state.vehicle.enginesize || '';\r\nexport const getVehicleEnginedesc = (state: VehicleState) => state.vehicle.enginedesc || '';\r\nexport const getVehicleCylinders = (state: VehicleState) => state.vehicle.cylinders || '';\r\nexport const getVehicleFueltype = (state: VehicleState) => state.vehicle.fueltype || '';\r\nexport const getVehicleInduction = (state: VehicleState) => state.vehicle.induction || '';\r\nexport const getVehicleCam = (state: VehicleState) => state.vehicle.cam || '';\r\nexport const getVehicleEnginetype = (state: VehicleState) => state.vehicle.enginetype || '';\r\nexport const getVehicleFuelcapacity = (state: VehicleState) => state.vehicle.fuelcapacity || '';\r\nexport const getVehicleFueldelivery = (state: VehicleState) => state.vehicle.fueldelivery;\r\nexport const getVehicleMethoddelivery = (state: VehicleState) => state.vehicle.methoddelivery || '';\r\nexport const getVehicleGvm = (state: VehicleState) => state.vehicle.gvm || '';\r\nexport const getVehicleWheelbase = (state: VehicleState) => state.vehicle.wheelbase || '';\r\nexport const getVehicleHeight = (state: VehicleState) => state.vehicle.height || '';\r\nexport const getVehicleLength = (state: VehicleState) => state.vehicle.length || '';\r\nexport const getVehicleWidth = (state: VehicleState) => state.vehicle.width || '';\r\nexport const getVehicleKerbweight = (state: VehicleState) => state.vehicle.kerbweight || '';\r\nexport const getVehicleTaremass = (state: VehicleState) => state.vehicle.taremass || '';\r\nexport const getVehiclePower = (state: VehicleState) => state.vehicle.power || '';\r\nexport const getVehiclePowerrpmto = (state: VehicleState) => state.vehicle.powerrpmto || '';\r\nexport const getVehicleTorque = (state: VehicleState) => state.vehicle.torque || '';\r\nexport const getVehicleTorquerpmfrom = (state: VehicleState) => state.vehicle.torquerpmfrom || '';\r\nexport const getVehicleTorquerpmto = (state: VehicleState) => state.vehicle.torquerpmto || '';\r\nexport const getVehicleSeatcapacity = (state: VehicleState) => state.vehicle.seatcapacity || '';\r\nexport const getVehicleAvgkm = (state: VehicleState) => state.vehicle.avgkm || '';\r\nexport const getVehicleGdkm = (state: VehicleState) => state.vehicle.gdkm || '';\r\nexport const getVehicleNewprice = (state: VehicleState) => state.vehicle.newprice || '';\r\nexport const getVehicleIsBestMatch = (state: VehicleState) => !!state.vehicle.isBestMatch;\r\nexport const getVehicleMatchDebug = (state: VehicleState) => state.vehicle.matchDebug;\r\n\r\nexport const getVehicleTitle = (state: VehicleState) => getVehicleTitle2(state.vehicle);\r\nexport const getVehicleDescriptionLine = (state: VehicleState) => getVehicleDescriptionLine2(state.vehicle);\r\nexport const getVehicleSecondaryLine = (state: VehicleState) => getVehicleDescriptionSecondaryLine2(state.vehicle);\r\nexport const getVehicleTertiaryLine = (state: VehicleState) => getVehicleDescriptionTertiaryLine2(state.vehicle);\r\nexport const getVehicleSummaryLine = (state: VehicleState) => getVehicleSummaryLine2(state.vehicle);\r\nexport const getVehicleSpecLine = (state: VehicleState) => getVehicleSpecLine2(state.vehicle);\r\n\r\n\r\n","import { SET_VEHICLE } from './actionTypes'\r\nimport { VehicleActionTypes } from './types'\r\n\r\nconst initialState = {\r\n auststate: '',\r\n kms: '', \r\n rego: '', \r\n // conditions: {}, \r\n redbookcode: '', \r\n badge: '', \r\n badge2nd: '',\r\n\r\n rbid: \"\",\r\n makecode: \"\",\r\n familycode: \"\",\r\n vehicletype: \"\",\r\n year: \"\",\r\n month: \"\",\r\n sequenceno: \"\",\r\n description: \"\",\r\n newvehicleflag: \"\",\r\n importflag: \"\",\r\n limitededition: \"\",\r\n series: \"\",\r\n bodystyle: \"\",\r\n drive: \"\",\r\n geartype: \"\",\r\n gearlocation: \"\",\r\n gearnum: \"\",\r\n doornum: \"\",\r\n enginesize: \"\",\r\n enginedesc: \"\",\r\n cylinders: \"\",\r\n fueltype: \"\",\r\n induction: \"\",\r\n cam: \"\",\r\n enginetype: \"\",\r\n fuelcapacity: \"\",\r\n fueldelivery: \"\",\r\n methoddelivery: \"\",\r\n gvm: \"\",\r\n wheelbase: \"\",\r\n height: \"\",\r\n length: \"\",\r\n width: \"\",\r\n kerbweight: \"\",\r\n taremass: \"\",\r\n power: \"\",\r\n powerrpmto: \"\",\r\n torque: \"\",\r\n torquerpmfrom: \"\",\r\n torquerpmto: \"\",\r\n seatcapacity: \"\",\r\n avgkm: \"\",\r\n gdkm: \"\",\r\n newprice: \"\",\r\n make: \"\",\r\n family: \"\",\r\n isBestMatch: false,\r\n imageUrl: \"\",\r\n matchDebug: {}, \r\n}\r\n\r\nexport default (state = initialState, action: VehicleActionTypes) => {\r\n switch (action.type) {\r\n case SET_VEHICLE:\r\n return { ...state, ...action.payload }\r\n default:\r\n return state\r\n }\r\n}\r\n","export const SET_CUSTOMER = 'SET_CUSTOMER'","import { CustomerState } from './types';\r\n\r\nexport const getCustomerFirstName = (state: CustomerState) => state.customer.firstName;\r\nexport const getCustomerLastName = (state: CustomerState) => state.customer.lastName;\r\nexport const getCustomerEmail = (state: CustomerState) => state.customer.email;\r\nexport const getCustomerMobile = (state: CustomerState) => state.customer.mobile;\r\nexport const getCustomerTerms = (state: CustomerState) => state.customer.terms;\r\nexport const getCustomerMarketing = (state: CustomerState) => state.customer.marketing;\r\nexport const getCustomerDealerBranch = (state: CustomerState) => state.customer.dealerBranch;\r\n\r\n","import { SET_CUSTOMER } from './actionTypes'\r\nimport { CustomerActionTypes } from './types' \r\n\r\nconst initialState = {\r\n firstName: \"\",\r\n lastName: \"\",\r\n email: \"\",\r\n mobile: \"\",\r\n terms: false,\r\n marketing: false, \r\n planOnReplacing: 0, \r\n interestedNext: \"\", \r\n dealerBranch: \"\"\r\n}\r\n\r\nexport default (state = initialState, action: CustomerActionTypes) => {\r\n switch (action.type) {\r\n case SET_CUSTOMER:\r\n return { ...state, ...action.payload }\r\n default: \r\n return state\r\n }\r\n}\r\n","export const SET_VALUATION = 'SET_VALUATION'","import { IValuationState } from './types';\r\n\r\nexport const getValuationValuation = (state: IValuationState) => state.valuation.valuation;\r\nexport const getValuationResult = (state: IValuationState) => state.valuation;\r\n","import { SET_VALUATION } from './actionTypes'\r\nimport { ValuationActionTypes } from './types'\r\n\r\nconst initialState = {\r\n\tconditionAnswers: [],\r\n\tredbookCode: \"\",\r\n\tkms: 0,\r\n\tkmUsed: 0,\r\n\tvaluation: 0,\r\n\tpricingMatchInfo: \"\", \r\n}\r\n\r\nexport default (state = initialState, action: ValuationActionTypes) => {\r\n switch (action.type) {\r\n case SET_VALUATION:\r\n return { ...state, ...action.payload }\r\n default:\r\n return state\r\n }\r\n}\r\n","export const SET_DEALER = 'SET_DEALER'","import { DealerState } from './types';\r\n\r\nexport const getDealerId = (state: DealerState) => state.dealer.dealerID;\r\nexport const getDealerStockId = (state: DealerState) => state.dealer.stockDealerID;\r\nexport const getDealerName = (state: DealerState) => state.dealer.dealerName;\r\nexport const getDealerLocationName = (state: DealerState) => state.dealer.locationName;\r\nexport const getDealerPrivacyPolicy = (state: DealerState) => state.dealer.privacyPolicy;\r\nexport const getDealerPhone = (state: DealerState) => state.dealer.phone;\r\nexport const getDealerOpeningHours = (state: DealerState) => state.dealer.openingHours;\r\nexport const getDealerWebsite = (state: DealerState) => state.dealer.website;\r\nexport const getDealerTerms = (state: DealerState) => state.dealer.terms;\r\nexport const getDealerAddress = (state: DealerState) => state.dealer.address;\r\n","import { SET_DEALER } from './actionTypes'\r\nimport { DealerActionTypes } from './types'\r\n\r\nconst initialState = {\r\n dealerID: 0,\r\n stockDealerID: 0, \r\n dealerName: '', \r\n locationName: '',\r\n privacyPolicy: '',\r\n address: '',\r\n phone: '',\r\n website: '',\r\n terms: '',\r\n openingHours: []\r\n}\r\n\r\nexport default (state = initialState, action: DealerActionTypes) => {\r\n switch (action.type) {\r\n case SET_DEALER:\r\n return { ...state, ...action.payload }\r\n default:\r\n return state\r\n }\r\n}\r\n","export const SET_ERROR = 'SET_ERROR'\r\nexport const RESET_ERROR = 'RESET_ERROR'","import { ErrorState } from './types';\r\n\r\nexport const getErrorTitle = (state: ErrorState) => state.error.title;\r\nexport const getErrorText = (state: ErrorState) => state.error.text;\r\nexport const getErrorButtons = (state: ErrorState) => state.error.buttons;\r\nexport const getErrorIcon = (state: ErrorState) => state.error.icon;\r\n\r\n","import { SET_ERROR, RESET_ERROR } from './actionTypes'\r\nimport { ErrorActionTypes } from './types'\r\n\r\nconst initialState = {\r\n title: '',\r\n text: '',\r\n buttons: [], \r\n icon: ''\r\n}\r\n\r\nexport default (state = initialState, action: ErrorActionTypes) => {\r\n switch (action.type) {\r\n case SET_ERROR:\r\n return { ...state, ...action.payload };\r\n case RESET_ERROR:\r\n return initialState;\r\n default:\r\n return state;\r\n }\r\n}\r\n","export const SET_QA = 'SET_QA'\r\nexport const SET_QA_ANSWERS = 'SET_QA_ANSWERS'\r\nexport const SET_QA_CONDITIONS = 'SET_QA_CONDITIONS'","import { IQaState, IConditionAnswer } from './types';\r\nimport { getArrayFromObject } from '../../helpers'\r\n\r\n// export const getQa = (state: IValuationState) => state.qa.;\r\nexport const getQaColour = (state: IQaState) => state.qa.colour || '';\r\nexport const getQaInterestedNext = (state: IQaState) => state.qa.interestedNext || '';\r\nexport const getQaConditions = (state: IQaState) => state.qa.conditions;\r\nexport const getQaConditionsArray = (state: IQaState) => getArrayFromObject(state.qa.conditions, 'number', 'value');\r\nexport const getQaAnswers = (state: IQaState) => state.qa.answers;\r\nexport const getQaAnswersArray = (state: IQaState) => {\r\n const r: any = [];\r\n state.qa.answers.forEach(o => {\r\n r.push({\r\n Question: o.Question,\r\n Value: parseInt(o.Value)\r\n })\r\n });\r\n return r;\r\n};","import { SET_QA, SET_QA_CONDITIONS, SET_QA_ANSWERS } from './actionTypes'\r\nimport { QaActionTypes, IAnswer } from './types'\r\n\r\nconst initialState = {\r\n interestedNext: '',\r\n colour: '',\r\n answers: [\r\n {\r\n key: \"planOnReplacing\",\r\n Question: \"Are you planning on replacing your car after selling it? (Your Instant Offer will not change based on your response)\",\r\n Value: 0\r\n }\r\n ],\r\n conditions: {}\r\n}\r\n\r\nexport default (state = initialState, action: QaActionTypes) => {\r\n switch (action.type) {\r\n case SET_QA:\r\n return { ...state, ...action.payload }\r\n case SET_QA_CONDITIONS: \r\n return {...state, conditions: {...state.conditions, ...action.payload} };\r\n case SET_QA_ANSWERS: \r\n const a = state.answers;\r\n Object.keys(action.payload).forEach((k) => {\r\n a.map((o: any) => {\r\n if (o.key == k){\r\n o.Value = (action.payload as any)[k];\r\n return o;\r\n }\r\n });\r\n });\r\n return {...state, answers: a };\r\n default:\r\n return state;\r\n }\r\n}\r\n","export const SET_ANALYTICS = 'SET_ANALYTICS'","import { SET_ANALYTICS } from './actionTypes'\r\nimport { AnalyticsActionTypes } from './types'\r\n\r\nconst initialState = {\r\n pageType: \"\",\r\n viewName: \"\",\r\n event: \"\",\r\n eventAction: \"\",\r\n eventLabel: \"\", \r\n eventCategory: '',\r\n eventValue: null,\r\n nonInteraction: null,\r\n valuation: 0\r\n}\r\n\r\nexport default (state = initialState, action: AnalyticsActionTypes) => {\r\n switch (action.type) {\r\n case SET_ANALYTICS:\r\n return { ...state, ...action.payload }\r\n default:\r\n return state\r\n }\r\n}\r\n","import { combineReducers, createStore } from 'redux';\r\nimport { devToolsEnhancer } from 'redux-devtools-extension';\r\nimport { AppReducer } from './features/app';\r\nimport { VehicleReducer } from './features/vehicle';\r\nimport { CustomerReducer } from './features/customer';\r\nimport { ValuationReducer } from './features/valuation';\r\nimport { DealerReducer } from './features/dealer';\r\nimport { ErrorReducer } from './features/error';\r\nimport { QaReducer } from './features/qa';\r\nimport { AnalyticsReducer } from './features/analytics';\r\n\r\n/* Create root reducer, containing all features of the application */\r\nconst rootReducer = combineReducers({\r\n app: AppReducer,\r\n vehicle: VehicleReducer, \r\n valuation: ValuationReducer,\r\n customer: CustomerReducer, \r\n dealer: DealerReducer, \r\n error: ErrorReducer,\r\n qa: QaReducer, \r\n analytics: AnalyticsReducer\r\n})\r\n\r\nconst store = createStore(\r\n rootReducer,\r\n /* preloadedState, */ devToolsEnhancer({})\r\n)\r\n\r\nexport default store\r\n","import React, { Fragment, useState } from 'react'\r\nimport { selectors } from '../features/app'\r\nimport { useSelector, useDispatch } from 'react-redux'\r\nimport { EAppVersion } from '../features/app/types';\r\n\r\nconst Header: React.FC = () => {\r\n const version = useSelector(selectors.getAppVersion);\r\n const step = useSelector(selectors.getAppStep);\r\n const back = useSelector(selectors.getAppBack);\r\n const disabled = true;//useSelector(selectors.getAppIsLoading); // nav doesnt work but not needed anyway\r\n const stepList = [\r\n { text: 'Car Specs' },\r\n { text: 'Condition' },\r\n { text: 'Your Details' },\r\n { text: version == EAppVersion.a ? 'Instant Offer' : 'Confirmation' }\r\n ];\r\n const [isInit, setIsInit] = useState(false);\r\n\r\n const handleCloseClick = () => {\r\n (location as any) = back;\r\n };\r\n\r\n // const handleStepClick = (i: number) => {\r\n // if (i < step){\r\n // dispatch({ type: actionTypes.SET_APP, payload: {step: i} });\r\n // }\r\n // };\r\n\r\n return (\r\n \r\n
\r\n
\r\n
\r\n
\r\n
    \r\n {stepList.map((s, i) =>
  • i ? 'i-done' : ''} ${step === i ? 'i-active' : ''}`}>\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 Header\r\n","import React, { Fragment } from 'react'\r\nimport { selectors as appSelectors } from '../features/app'\r\nimport { useSelector } from 'react-redux'\r\nimport { EAppVersion } from '../features/app/types';\r\n\r\n\r\nconst Footer: React.FC = () => {\r\n const version = useSelector(appSelectors.getAppVersion);\r\n const step = useSelector(appSelectors.getAppStep);\r\n const subStep = useSelector(appSelectors.getAppSubStep);\r\n const showEstimateDisclaimer = step === 3 && version == EAppVersion.a;\r\n const showPrivacyDisclaimer = step === 2;\r\n const showTrademarkDisclaimer = step === 0 && subStep === 1;\r\n const showDisclaimers = showEstimateDisclaimer || showPrivacyDisclaimer || showTrademarkDisclaimer;\r\n\r\n return (\r\n \r\n {showDisclaimers ? \r\n
\r\n
\r\n
\r\n {showEstimateDisclaimer ? \r\n

\r\n * This is an estimate only. One of our friendly Dealer Staff will contact you to discuss your valuation. Toyota Motor Corporation Australia Ltd (TMCA) and/or Toyota dealers are not bound by any valuation provided via this valuation tool. The valuation tool should not be relied upon to provide a precise value or price for your used vehicle as many factors that can affect this. This valuation tool provides an indicative value only and any price will be determined at a dealer’s discretion and could be higher or lower than provided in the valuation tool.\r\n

\r\n : ''}\r\n {showPrivacyDisclaimer ? \r\n

Our Guests' privacy is important to Toyota. Toyota Motor Corporation Australia Limited & Toyota Finance Australia Limited collect your personal information & handle it in accordance with our Privacy Policy available at toyota.com.au/privacy.

\r\n : ''}\r\n {showTrademarkDisclaimer ? \r\n

Product & company names are trademarks of their respective owners

\r\n : ''}\r\n
\r\n
\r\n
\r\n : ''}\r\n
\r\n )\r\n}\r\n\r\nexport default Footer\r\n","import React, { Fragment } from 'react'\r\nimport { useSelector } from 'react-redux'\r\nimport { selectors as appSelectors } from '../features/app'\r\n\r\nconst Loading: React.FC = () => {\r\n const isLoading = useSelector(appSelectors.getAppIsLoading);\r\n\r\n return (\r\n \r\n
\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default Loading\r\n","import store from './store';\r\nimport { SET_ANALYTICS } from './features/analytics/actionTypes'\r\n\r\nexport const SendEvent = (data: any): void => {\r\n const state = store.analytics\r\n const d = getCommon();\r\n const d2 = getUniqueValuesFromObject({ ...d, ...data }, state);\r\n const final = { ...d2, ...{event:data.event} };\r\n \r\n (window as any).dataLayer = (window as any).dataLayer || [];\r\n (window as any).dataLayer.push(final);\r\n store.dispatch({ type: SET_ANALYTICS, payload: final });\r\n console.log(final);\r\n}\r\nexport const getUniqueValuesFromObject = (o: any, o2: any): any => {\r\n if (typeof o2 == 'undefined') return o;\r\n const result: any = {};\r\n for (const k in o) {\r\n // console.log('comparing ', o[k], o2[k]);\r\n if (typeof o[k] != 'object'){\r\n // console.log('normal value');\r\n if (o2[k] != o[k]) {\r\n // console.log('is unique');\r\n result[k] = o[k];\r\n }\r\n // else {\r\n // console.log('not unique');\r\n // }\r\n }\r\n else {\r\n // console.log('object value')\r\n const o3 = getUniqueValuesFromObject(o[k], o2[k]);\r\n for(const prop in o3) {\r\n // console.log('has unique vals in object') \r\n result[k] = o3;\r\n // result[k] = {...o[k], ...o2[k]};\r\n break;\r\n }\r\n }\r\n }\r\n return result;\r\n}\r\nexport const getCommon = (): any => {\r\n return {\r\n\r\n };\r\n}\r\n\r\nexport default SendEvent","import React, { Fragment, useEffect, useState } from 'react'\r\nimport { useDispatch, useSelector} from 'react-redux'\r\nimport SendEvent from '../analytics'\r\nimport { selectors as errorSelectors } from '../features/error'\r\nimport { RESET_ERROR } from '../features/error/actionTypes'\r\nimport { IErrorButton } from '../features/error/types'\r\nimport { scrollToBeginning } from '../helpers'\r\n\r\nconst Error: React.FC = () => {\r\n const dispatch = useDispatch();\r\n const title = useSelector(errorSelectors.getErrorTitle);\r\n const text = useSelector(errorSelectors.getErrorText);\r\n const buttons = useSelector(errorSelectors.getErrorButtons);\r\n const icon = useSelector(errorSelectors.getErrorIcon);\r\n const show = !!title;\r\n const [isInit, setIsInit] = useState(false);\r\n\r\n const handleButtonClick = (b: IErrorButton) => {\r\n b.callback && b.callback();\r\n b.clearErrorOnClick && dispatch({ type: RESET_ERROR });\r\n setTimeout(() => setIsInit(false), 500);\r\n };\r\n useEffect(() =>{\r\n if (!isInit && show){\r\n setIsInit(true);\r\n scrollToBeginning();\r\n SendEvent({\r\n event: 'sendEvent',\r\n eventCategory: 'Error',\r\n eventAction: `Instant Offer - error`,\r\n eventLabel: `error - ${title}`,\r\n eventValue: 0,\r\n nonInteraction: true\r\n })\r\n }\r\n });\r\n return (\r\n \r\n
\r\n
\r\n {icon ? : ''}\r\n

{title}

\r\n {text ?

{text}

: ''}\r\n {buttons && buttons.length ? \r\n
\r\n {buttons.map((b,i) =>
\r\n \r\n
)}\r\n
\r\n : ''}\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default Error\r\n","import React, { useState, Fragment } from 'react'\r\nimport _ from 'lodash';\r\n\r\ntype FieldValues = {\r\n name: string, \r\n label: string,\r\n error: any, \r\n inputRef: any, \r\n defaultValue: string,\r\n type?: string,\r\n maxlength?: number, \r\n onChange: any, \r\n onBlur?: any,\r\n isLoading?: boolean\r\n};\r\n\r\nconst FieldText: React.FC = ({ name, label, error, inputRef, defaultValue, type, maxlength, onChange, onBlur, isLoading }) => {\r\n const [fieldText, setFieldText] = useState(defaultValue);\r\n const [fieldFocus, setFieldFocus] = useState(false);\r\n const handleFocus = (e: any) => {\r\n setFieldFocus(true);\r\n }\r\n const handleBlur = (e: any) => {\r\n setFieldFocus(false);\r\n if (typeof onBlur == 'function'){\r\n onBlur(e);\r\n }\r\n }\r\n const handleChange = (e: any) => {\r\n setFieldText(e.target.value);\r\n onChange(e);\r\n if (e.nativeEvent.target != document.activeElement){\r\n handleBlur(e);\r\n }\r\n }\r\n return (\r\n \r\n
\r\n
\r\n \r\n \r\n {error ?
\r\n {error.message ? error.message : fieldText ? `${label} is an incorrect format` : `${label} is required`}\r\n
: ''}\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default FieldText\r\n","const selectStyles: any = {\r\n // clearIndicator: (provided: any, state: any) => ({\r\n // ...provided\r\n // }),\r\n container: (provided: any, state: any) => ({\r\n ...provided\r\n }),\r\n control: (provided: any, state: any) => ({\r\n ...provided, \r\n minHeight: '0',\r\n borderTop: '0', \r\n borderLeft: '0', \r\n borderRight: '0', \r\n borderBottom: 'solid 2px', \r\n borderBottomColor: state.isFocused ? '#1a1a1a' : '#c4c4c4',\r\n borderRadius: '0', \r\n boxShadow: 'none',\r\n cursor: 'pointer', \r\n background: 'transparent', \r\n '&:hover': {\r\n borderColor: '#1a1a1a'\r\n }\r\n }),\r\n dropdownIndicator: (provided: any, state: any) => ({\r\n ...provided,\r\n paddingRight: 0,\r\n '& svg': {\r\n fill: '#1a1a1a', \r\n width: 17,\r\n height: 17\r\n }\r\n }),\r\n group: (provided: any, state: any) => ({\r\n ...provided\r\n }),\r\n groupHeading: (provided: any, state: any) => ({\r\n ...provided\r\n }),\r\n indicatorsContainer: (provided: any, state: any) => ({\r\n ...provided, \r\n }),\r\n indicatorSeparator: (provided: any, state: any) => ({\r\n ...provided, \r\n display: 'none'\r\n }),\r\n input: (provided: any, state: any) => ({\r\n ...provided, \r\n margin: '0',\r\n padding: '0', \r\n lineHeight: '1.4em',\r\n fontSize: '18px'\r\n }),\r\n loadingIndicator: (provided: any, state: any) => ({\r\n ...provided\r\n }),\r\n loadingMessage: (provided: any, state: any) => ({\r\n ...provided\r\n }),\r\n menu: (provided: any, state: any) => ({\r\n ...provided, \r\n zIndex: '30'\r\n }),\r\n menuList: (provided: any, state: any) => ({\r\n ...provided\r\n }),\r\n menuPortal: (provided: any, state: any) => ({\r\n ...provided\r\n }),\r\n multiValue: (provided: any, state: any) => ({\r\n ...provided\r\n }),\r\n multiValueLabel: (provided: any, state: any) => ({\r\n ...provided\r\n }),\r\n multiValueRemove: (provided: any, state: any) => ({\r\n ...provided\r\n }),\r\n noOptionsMessage: (provided: any, state: any) => ({\r\n ...provided\r\n }),\r\n option: (provided: any, state: any) => ({\r\n ...provided,\r\n cursor: 'pointer'\r\n }),\r\n placeholder: (provided: any, state: any) => {\r\n const focusStyles = state.isFocused ? {\r\n transition: 'top 0.25s', \r\n top: \"-0.8em\", \r\n fontSize: '12px'\r\n } : {}\r\n return {\r\n ...provided, \r\n ...focusStyles, \r\n margin: '0', \r\n color: '#666'\r\n }\r\n },\r\n singleValue: (provided: any, state: any) => {\r\n const focusStyles = state.isFocused ? {\r\n transition: 'top 0.25s', \r\n top: \"-0.8em\", \r\n fontSize: '12px'\r\n } : {}\r\n const val = state.getValue();\r\n const hasVal = val.length && val[0].value;\r\n return {\r\n ...provided, \r\n ...focusStyles, \r\n fontSize: 18,\r\n color: hasVal ? '#1a1a1a' : '#666'\r\n }\r\n },\r\n valueContainer: (provided: any, state: any) => ({\r\n ...provided, \r\n overflow: 'visible', \r\n padding: 0,\r\n margin: 0, \r\n '& input': {\r\n border: '0 !important'\r\n }\r\n // padding: '8px 0' // only for searchable\r\n }),\r\n\r\n}\r\nexport default selectStyles","import React, { useState, Fragment } from 'react'\r\nimport _ from 'lodash';\r\nimport Select from 'react-select'\r\nimport selectStyles from '../styles/select'\r\n\r\ntype IOption = {\r\n label: string, \r\n value: any\r\n}\r\ntype FieldValues = {\r\n name: string, \r\n error: any, \r\n inputRef: any, \r\n defaultValue: IOption,\r\n options: Array,\r\n onFocus: Function,\r\n onChange: Function\r\n};\r\n\r\nconst FieldSelect: React.FC = ({ name, error, inputRef, defaultValue, options, onFocus, onChange }) => {\r\n const [fieldValue, setFieldValue] = useState(defaultValue);\r\n const handleChange = (o: any) => {\r\n setFieldValue(o);\r\n onChange(o);\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n )}\r\n
\r\n {error ?
\r\n {typeof error === 'string' ? error : `This is required`}\r\n
: ''}\r\n \r\n
\r\n )\r\n}\r\n\r\nexport default FieldRadioGroup\r\n","import React, { Fragment, useEffect, useState } from 'react'\r\nimport { useSelector, useDispatch } from 'react-redux'\r\nimport { useForm, Controller } from \"react-hook-form\"\r\n\r\nimport { getConditions } from '../api'\r\nimport { selectors as appSelectors } from '../features/app'\r\nimport { actionTypes as qaActionTypes, selectors } from '../features/qa'\r\nimport FieldSlider from '../components/FieldSlider'\r\nimport FieldRadioGroup from '../components/FieldRadioGroup'\r\nimport { AnalyticElement, AnalyticType, ApiResult, ICondition } from '../types.d'\r\nimport { IError, IErrorButton } from '../features/error/types'\r\nimport { actionTypes as errorActionTypes } from '../features/error'\r\nimport ErrorSummary from '../components/ErrorSummary'\r\n\r\ninterface ConditionValues {\r\n handleConditionSubmit: Function, \r\n handleConditionsLoaded: Function, \r\n handleAnalyticEvent: Function,\r\n handleHeadingChange: Function\r\n}\r\nconst Condition: React.FC = ({ handleAnalyticEvent, handleConditionSubmit, handleConditionsLoaded, handleHeadingChange }) => {\r\n const dispatch = useDispatch();\r\n const disabled = useSelector(appSelectors.getAppIsLoading);\r\n const { handleSubmit, control, setValue, getValues, formState: { errors } } = useForm();\r\n const [conditions, setConditions] = useState([]);\r\n const [conditionCategories, setConditionCategories] = useState>([]);\r\n const [fieldsetStep, setFieldsetStep] = useState(0);\r\n const [hasRequestedConditions, setHasRequestedConditions] = useState(false);\r\n\r\n const onFailureToLoadConditions = (msg: string) => {\r\n const btns: Array = [\r\n {\r\n title: 'Try again', \r\n classes: 'button-solid', \r\n callback: () => getCondition(), \r\n clearErrorOnClick: true\r\n }\r\n ]\r\n const err: IError = { \r\n icon: require('../assets/images/exclamation.svg'),\r\n title: 'Sorry, we seem to be experiencing some technical difficulties, please try again later.', \r\n buttons: btns\r\n };\r\n dispatch({ type: errorActionTypes.SET_ERROR, payload: err });\r\n };\r\n const handleFieldFocus = (name: string) => {\r\n handleAnalyticEvent({\r\n type: AnalyticType.Focus, \r\n element: AnalyticElement.Field,\r\n name\r\n });\r\n };\r\n const handleButtonClick = (name: string) => {\r\n handleAnalyticEvent({\r\n type: AnalyticType.Click, \r\n element: AnalyticElement.Button,\r\n name\r\n });\r\n };\r\n const onSubmit = (data: any) => {\r\n dispatch({ type: qaActionTypes.SET_QA_CONDITIONS, payload: data });\r\n if (fieldsetStep+1 !== conditionCategories.length){\r\n handleHeadingChange(conditionCategories[fieldsetStep+1],fieldsetStep+1);\r\n setFieldsetStep(fieldsetStep+1);\r\n }\r\n else {\r\n handleConditionSubmit(data);\r\n }\r\n };\r\n const isYesNo = (v: ICondition): boolean => {\r\n return ((v.good.toUpperCase() === \"NO\" && v.poor.toUpperCase() === \"YES\") || (v.poor.toUpperCase() === \"NO\" && v.good.toUpperCase() === \"YES\"));\r\n };\r\n const setFormValues = async (r: any) => {\r\n for (let i = 0; i != r.length; ++i){\r\n const shouldSet = !isYesNo(r[i]);\r\n if (shouldSet){\r\n setValue(`condition-${r[i].number}`, 32, {\r\n shouldValidate: true,\r\n shouldDirty: true,\r\n shouldTouch: true\r\n });\r\n }\r\n }\r\n };\r\n const getCondition = async () => {\r\n const traffic = await getConditions();\r\n if (traffic.result && traffic.result.length){\r\n const cats = traffic.result.reduce((acc: any, curr: any) => {\r\n !acc.includes(curr.section) && acc.push(curr.section);\r\n acc[curr.section]\r\n return acc; \r\n }, []);\r\n setConditionCategories(cats);\r\n setConditions(traffic.result);\r\n setTimeout(() => setFormValues(traffic.result),100);\r\n \r\n cats.length && handleHeadingChange(cats[0], 0);\r\n handleConditionsLoaded();\r\n }\r\n else {\r\n onFailureToLoadConditions(traffic.errormessage);\r\n }\r\n };\r\n useEffect(() => {\r\n if (!hasRequestedConditions) {\r\n setHasRequestedConditions(true);\r\n getCondition();\r\n }\r\n });\r\n\r\n return (\r\n \r\n
\r\n {conditionCategories.filter((o, i) => fieldsetStep === i).map((cat, i) => \r\n
\r\n {/* {cat} */}\r\n {conditions.filter(c => c.section == cat).map((c, i) => \r\n {\r\n const handleFieldChange = (v: number) => {\r\n onChange(v);\r\n };\r\n const descPoor = c.poor == 'Poor' ? '' : c.poor;\r\n const descAverage = c.average == 'Average' ? '' : c.average;\r\n const descGood = c.good == 'Good' ? '' : c.good;\r\n return ((c.good.toUpperCase() === \"NO\" && c.poor.toUpperCase() === \"YES\") || (c.poor.toUpperCase() === \"NO\" && c.good.toUpperCase() === \"YES\") ? \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 Condition;\r\n\r\n","import React, { Fragment, useEffect, useState } from 'react'\r\nimport { useSelector, useDispatch } from 'react-redux'\r\nimport { useForm, Controller } from \"react-hook-form\"\r\nimport { selectors as appSelectors } from '../features/app'\r\nimport { actionTypes as qaActionTypes, selectors as qaSelectors } from '../features/qa'\r\nimport { IAnswer } from '../features/qa/types'\r\nimport FieldRadioGroup from '../components/FieldRadioGroup'\r\nimport FieldSelect from '../components/FieldSelect'\r\nimport { AnalyticElement, AnalyticType, IRadioValue, YesNoNotSure } from '../types.d'\r\nimport ErrorSummary from '../components/ErrorSummary'\r\n\r\ninterface ContactValues {\r\n handleAnalyticEvent: Function, \r\n handleDetailSubmit: Function\r\n}\r\nconst Detail: React.FC = ({ handleAnalyticEvent, handleDetailSubmit }) => {\r\n type FormData = {\r\n mods: number,\r\n planOnReplacing: number, \r\n interestedNext: string\r\n };\r\n\r\n const dispatch = useDispatch();\r\n const disabled = useSelector(appSelectors.getAppIsLoading);\r\n const answers: Array = useSelector(qaSelectors.getQaAnswers);\r\n const mods: IAnswer = answers.filter((o: IAnswer) => o.key == \"mods\")[0];\r\n const planOnReplacing: IAnswer = answers.filter((o: IAnswer) => o.key == \"planOnReplacing\")[0];\r\n const interestedNext: string = useSelector(qaSelectors.getQaInterestedNext);\r\n const [showExtraQuestion, setShowExtraQuestion] = useState(false);\r\n const { handleSubmit, control, formState: { errors } } = useForm();\r\n\r\n const options: Array = [\r\n { label: 'Yes', value: 2},\r\n { label: 'No', value: 1},\r\n { label: 'Not Sure', value: -1},\r\n ];\r\n const interestedOptions: Array = [\r\n { label: 'New Toyota', value: 'New Toyota'},\r\n { label: 'Toyota Certified Pre-Owned Cars', value: 'Toyota Certified Pre-Owned Cars'},\r\n { label: 'Other', value: 'Other'}\r\n ]\r\n const handleFieldFocus = (name: string) => {\r\n handleAnalyticEvent({\r\n type: 'focus', \r\n field: name\r\n })\r\n };\r\n const handleButtonClick = (name: string) => {\r\n handleAnalyticEvent({\r\n type: AnalyticType.Click, \r\n element: AnalyticElement.Button,\r\n name\r\n });\r\n };\r\n const onSubmit = (data: FormData) => {\r\n dispatch({ type: qaActionTypes.SET_QA, payload: {\r\n interestedNext: data.interestedNext\r\n } });\r\n dispatch({ type: qaActionTypes.SET_QA_ANSWERS, payload: data });\r\n handleDetailSubmit(data);\r\n }\r\n\r\n return (\r\n \r\n
\r\n
\r\n {\r\n const handleFieldChange = (e: any | null) => {\r\n onChange(e);\r\n setShowExtraQuestion(e.target.value == YesNoNotSure.Yes);\r\n };\r\n return \r\n }} \r\n />\r\n {showExtraQuestion ? {\r\n const handleSelectChange = (selectedOption: any | null) => {\r\n onChange(selectedOption?.value);\r\n };\r\n return handleFieldFocus('Interested in')}\r\n onChange={handleSelectChange}\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 Detail;","import React, { Fragment, useEffect, useState } from 'react'\r\nimport { useHistory } from 'react-router-dom'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { actionTypes as appActionTypes, selectors as appSelectors } from '../features/app'\r\nimport { selectors as errorSelectors } from '../features/error'\r\nimport { selectors as vehicleSelectors } from '../features/vehicle'\r\nimport { actionTypes as valuationActionTypes } from '../features/valuation'\r\nimport ConditionForm from '../forms/Condition'\r\nimport DetailForm from '../forms/Detail'\r\nimport { postValuation } from '../api'\r\nimport { AnalyticElement, baseName, IAnalyticEvent, IValuationRequest, Routes } from '../types.d'\r\nimport { actionTypes as errorActionTypes } from '../features/error'\r\nimport { IError, IErrorButton } from '../features/error/types'\r\nimport { getArrayFromObject, scrollToBeginning } from '../helpers'\r\nimport SendEvent from '../analytics'\r\n\r\nexport const Condition: React.FC = () => {\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n const subStep = useSelector(appSelectors.getAppSubStep);\r\n const redbookCode = useSelector(vehicleSelectors.getVehicleRedbookCode);\r\n const kms = useSelector(vehicleSelectors.getVehicleKms);\r\n const [isInit, setIsInit] = useState(false);\r\n const isLoading = useSelector(appSelectors.getAppIsLoading);\r\n const isError = useSelector(errorSelectors.getErrorTitle);\r\n const redbookcode = useSelector(vehicleSelectors.getVehicleRedbookCode); \r\n const [currentFormHeading, setCurrentFormHeading] = useState('');\r\n const [conditionStep, setConditionStep] = useState(0);\r\n\r\n const handleHeadingChange = (h: string, n: number) => {\r\n setConditionStep(n);\r\n setCurrentFormHeading(h);\r\n scrollToBeginning();\r\n SendEvent({\r\n event: 'sendVirtualPageView',\r\n pageType: 'instantoffer',\r\n viewSection: `condition section ${n+1}`,\r\n viewName: 'condition',\r\n });\r\n }\r\n const handleDetailSubmit = (data: any) => {\r\n dispatch({ type: appActionTypes.SET_APP, payload: { isLoading: true } });\r\n SendEvent({\r\n event: 'formSubmit',\r\n formName: 'detail'\r\n });\r\n history.push(Routes.Personal);\r\n };\r\n const handleConditionSubmit = (data: any) => {\r\n SendEvent({\r\n event: 'formSubmit',\r\n formName: 'condition'\r\n });\r\n dispatch({ type: appActionTypes.SET_APP, payload: { isLoading: true } });\r\n getValuation(data);\r\n }\r\n const getValuation = async (data: any) => {\r\n const conditionsObject = data;\r\n const conditionsArray = getArrayFromObject(conditionsObject, 'number', 'value');\r\n const valuationRequest:IValuationRequest = {\r\n conditions: conditionsArray,\r\n redbookCode: redbookCode,\r\n kms: parseInt(kms)\r\n };\r\n const valuation = await postValuation(valuationRequest);\r\n if (valuation && !valuation.errormessage){\r\n const expiry = new Date();\r\n const now = new Date(expiry);\r\n expiry.setDate(expiry.getDate() + 13);\r\n dispatch({ type: valuationActionTypes.SET_VALUATION, payload: valuation.result });\r\n dispatch({ type: appActionTypes.SET_APP, payload: { \r\n subStep: 1, \r\n isLoading: false,\r\n expiry: expiry.toISOString(), \r\n offerDate: now.toISOString()\r\n } });\r\n scrollToBeginning();\r\n SendEvent({\r\n event: 'sendVirtualPageView',\r\n pageType: 'instantoffer',\r\n viewSection: 'details',\r\n viewName: 'condition',\r\n });\r\n }\r\n else {\r\n const btns: Array = [\r\n {\r\n title: 'Back to registration', \r\n classes: 'button-outline', \r\n callback: () => { location.pathname = baseName + Routes.Specs }, \r\n clearErrorOnClick: true\r\n }\r\n ]\r\n const err: IError = { \r\n icon: require('../assets/images/barricade.svg'),\r\n title: 'Sorry, we seem to be experiencing some technical difficulties, please try again later.',\r\n buttons: btns\r\n };\r\n dispatch({ type: errorActionTypes.SET_ERROR, payload: err });\r\n }\r\n dispatch({ type: appActionTypes.SET_APP, payload: { isLoading: false } });\r\n };\r\n const handleConditionsLoaded = () => {\r\n dispatch({ type: appActionTypes.SET_APP, payload: { isLoading: false } });\r\n };\r\n const handleConditionAnalyticEvent = (evt: IAnalyticEvent) => {\r\n switch (evt.element){\r\n case AnalyticElement.Button:\r\n SendEvent({\r\n event: 'sendEvent',\r\n eventCategory: 'User Interactions',\r\n eventAction: `Instant Offer - condition section ${conditionStep+1}`,\r\n eventLabel: `Continue - button click`,\r\n eventValue: 0,\r\n nonInteraction: false\r\n });\r\n break;\r\n }\r\n }\r\n const handleDetailAnalyticEvent = (evt: IAnalyticEvent) => {\r\n switch (evt.element){\r\n case AnalyticElement.Button:\r\n SendEvent({\r\n event: 'sendEvent',\r\n eventCategory: 'User Interactions',\r\n eventAction: `Instant Offer - detail`,\r\n eventLabel: `Continue - button click`,\r\n eventValue: 0,\r\n nonInteraction: false\r\n });\r\n break;\r\n }\r\n }\r\n useEffect(() => {\r\n if (!isInit){\r\n setIsInit(true);\r\n if (!redbookcode) history.replace(Routes.Specs);\r\n dispatch({ type: appActionTypes.SET_APP, payload: { step: 1, subStep: 0 } });\r\n scrollToBeginning();\r\n }\r\n });\r\n\r\n return (\r\n \r\n
\r\n
\r\n
\r\n
\r\n

\r\n {subStep === 0 ? \r\n `What is the ${currentFormHeading.toLowerCase()} condition of your car?`\r\n : \r\n 'Please provide a few final details about your car'\r\n }\r\n

\r\n
\r\n
\r\n {subStep === 0 ? \r\n \r\n : \r\n \r\n }\r\n
\r\n
\r\n
\r\n
\r\n
\r\n )\r\n}\r\n","import React, { useState, Fragment } from 'react'\r\n\r\ntype FieldValues = {\r\n name: string, \r\n label: string,\r\n error: any, \r\n inputRef: any, \r\n defaultValue: boolean,\r\n type?: string, \r\n onChange: any\r\n};\r\n\r\nconst FieldCheckbox: React.FC = ({ name, label, error, inputRef, defaultValue, type, onChange }) => {\r\n const [fieldValue, setFieldValue] = useState(defaultValue);\r\n const handleChange = (e: any) => {\r\n setFieldValue(e.target.value);\r\n onChange(e);\r\n }\r\n return (\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n {error ?
\r\n {typeof error === 'string' ? error : `This is required`}\r\n
: ''}\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default FieldCheckbox\r\n","import React, { Fragment, useEffect, useState } from 'react'\r\nimport { useSelector, useDispatch } from 'react-redux'\r\nimport { useForm, Controller } from \"react-hook-form\"\r\nimport { selectors as appSelectors } from '../features/app'\r\nimport { actionTypes, selectors } from '../features/customer'\r\nimport FieldText from '../components/FieldText'\r\nimport FieldCheckbox from '../components/FieldCheckbox'\r\nimport { selectors as dealerSelectors, actionTypes as dealerActionTypes } from '../features/dealer'\r\nimport { selectors as valuationSelectors } from '../features/valuation'\r\nimport { IOpeningHours } from '../features/dealer/types'\r\nimport { actionTypes as errorActionTypes } from '../features/error'\r\nimport { actionTypes as appActionTypes } from '../features/app'\r\nimport { selectors as vehicleSelectors } from '../features/vehicle'\r\nimport { selectors as qaSelectors } from '../features/qa'\r\nimport { AnalyticElement, AnalyticType, ApiResult, baseName } from '../types.d'\r\nimport { getDealerInfo, postVehicleLead, validateEmail, validatePhone } from '../api'\r\nimport { IError, IErrorButton } from '../features/error/types'\r\nimport { Routes, ILead } from '../types.d'\r\nimport _ from 'lodash'\r\nimport FieldSelect from '../components/FieldSelect'\r\nimport { IConditionAnswer } from '../features/qa/types'\r\nimport { EAppVersion } from '../features/app/types'\r\n// import ErrorSummary from '../components/ErrorSummary'\r\n\r\ninterface ContactValues {\r\n handleAnalyticEvent: Function,\r\n handleContactSubmit: Function, \r\n handleDealerLoaded: Function\r\n}\r\nconst Contact: React.FC = ({ handleAnalyticEvent, handleContactSubmit, handleDealerLoaded }) => {\r\n type FormData = {\r\n firstName: string,\r\n lastName: string,\r\n email: string,\r\n mobile: string,\r\n dealerBranch?: string,\r\n terms: boolean\r\n };\r\n\r\n const dispatch = useDispatch();\r\n const version = useSelector(appSelectors.getAppVersion);\r\n const disabled = useSelector(appSelectors.getAppIsLoading);\r\n const firstName = useSelector(selectors.getCustomerFirstName);\r\n const lastName = useSelector(selectors.getCustomerLastName);\r\n const email = useSelector(selectors.getCustomerEmail);\r\n const mobile = useSelector(selectors.getCustomerMobile);\r\n const terms = useSelector(selectors.getCustomerTerms);\r\n // const marketing = useSelector(selectors.getCustomerMarketing);\r\n const dealerId = useSelector(dealerSelectors.getDealerId);\r\n const stockDealerId = useSelector(dealerSelectors.getDealerStockId);\r\n const locationName = useSelector(dealerSelectors.getDealerLocationName);\r\n const privacyPolicy = useSelector(dealerSelectors.getDealerPrivacyPolicy);\r\n const offerDate = useSelector(appSelectors.getAppOfferDate);\r\n const rego = useSelector(vehicleSelectors.getVehicleRego);\r\n const auststate = useSelector(vehicleSelectors.getVehicleAustState);\r\n const kms = useSelector(vehicleSelectors.getVehicleKms);\r\n const vin = useSelector(vehicleSelectors.getVehicleVin);\r\n const year = useSelector(vehicleSelectors.getVehicleYear);\r\n const make = useSelector(vehicleSelectors.getVehicleMake);\r\n const family = useSelector(vehicleSelectors.getVehicleFamily);\r\n const badge = useSelector(vehicleSelectors.getVehicleBadge);\r\n const badge2nd = useSelector(vehicleSelectors.getVehicleBadge2nd);\r\n const vehicleSummary = useSelector(vehicleSelectors.getVehicleSummaryLine);\r\n const vehicleSpec = useSelector(vehicleSelectors.getVehicleSpecLine);\r\n const vehicleImage = useSelector(vehicleSelectors.getVehicleImage);\r\n const redbookCode = useSelector(vehicleSelectors.getVehicleRedbookCode);\r\n const rbid = useSelector(vehicleSelectors.getVehicleRbid);\r\n const makecode = useSelector(vehicleSelectors.getVehicleMakecode);\r\n\r\n const familycode = useSelector(vehicleSelectors.getVehicleFamilycode);\r\n const vehicletype = useSelector(vehicleSelectors.getVehicleType);\r\n const month = useSelector(vehicleSelectors.getVehicleMonth);\r\n const sequenceno = useSelector(vehicleSelectors.getVehicleSequenceno);\r\n const description = useSelector(vehicleSelectors.getVehicleDescriptionLine);\r\n const newvehicleflag = useSelector(vehicleSelectors.getVehicleNewvehicleflag);\r\n const importflag = useSelector(vehicleSelectors.getVehicleImportflag);\r\n const limitededition = useSelector(vehicleSelectors.getVehicleLimitededition);\r\n const series = useSelector(vehicleSelectors.getVehicleSeries);\r\n const bodystyle = useSelector(vehicleSelectors.getVehicleBodystyle);\r\n const drive = useSelector(vehicleSelectors.getVehicleDrive);\r\n const geartype = useSelector(vehicleSelectors.getVehicleGeartype);\r\n const gearlocation = useSelector(vehicleSelectors.getVehicleGearlocation);\r\n const gearnum = useSelector(vehicleSelectors.getVehicleGearnum);\r\n const doornum = useSelector(vehicleSelectors.getVehicleDoornum);\r\n const enginesize = useSelector(vehicleSelectors.getVehicleEnginesize);\r\n const enginedesc = useSelector(vehicleSelectors.getVehicleEnginedesc);\r\n const cylinders = useSelector(vehicleSelectors.getVehicleCylinders);\r\n const fueltype = useSelector(vehicleSelectors.getVehicleFueltype);\r\n const induction = useSelector(vehicleSelectors.getVehicleInduction);\r\n const cam = useSelector(vehicleSelectors.getVehicleCam);\r\n const enginetype = useSelector(vehicleSelectors.getVehicleEnginetype);\r\n const fuelcapacity = useSelector(vehicleSelectors.getVehicleFuelcapacity);\r\n const fueldelivery = useSelector(vehicleSelectors.getVehicleFueldelivery);\r\n const methoddelivery = useSelector(vehicleSelectors.getVehicleMethoddelivery);\r\n const gvm = useSelector(vehicleSelectors.getVehicleGvm);\r\n const wheelbase = useSelector(vehicleSelectors.getVehicleWheelbase);\r\n const height = useSelector(vehicleSelectors.getVehicleHeight);\r\n const length = useSelector(vehicleSelectors.getVehicleLength);\r\n const width = useSelector(vehicleSelectors.getVehicleWidth);\r\n const kerbweight = useSelector(vehicleSelectors.getVehicleKerbweight);\r\n const taremass = useSelector(vehicleSelectors.getVehicleTaremass);\r\n const power = useSelector(vehicleSelectors.getVehiclePower);\r\n const powerrpmto = useSelector(vehicleSelectors.getVehiclePowerrpmto);\r\n const torque = useSelector(vehicleSelectors.getVehicleTorque);\r\n const torquerpmfrom = useSelector(vehicleSelectors.getVehicleTorquerpmfrom);\r\n const torquerpmto = useSelector(vehicleSelectors.getVehicleTorquerpmto);\r\n const seatcapacity = useSelector(vehicleSelectors.getVehicleSeatcapacity);\r\n const avgkm = useSelector(vehicleSelectors.getVehicleAvgkm);\r\n const gdkm = useSelector(vehicleSelectors.getVehicleGdkm);\r\n const newprice = useSelector(vehicleSelectors.getVehicleNewprice);\r\n const isBestMatch = useSelector(vehicleSelectors.getVehicleIsBestMatch);\r\n const matchDebug = useSelector(vehicleSelectors.getVehicleMatchDebug);\r\n const conditions: Array = useSelector(qaSelectors.getQaConditionsArray);\r\n const valuation = useSelector(valuationSelectors.getValuationValuation);\r\n const answers = useSelector(qaSelectors.getQaAnswersArray);\r\n const interestedNext = useSelector(qaSelectors.getQaInterestedNext);\r\n const valuationResult = useSelector(valuationSelectors.getValuationResult);\r\n const colour = useSelector(qaSelectors.getQaColour);\r\n const termsUrl = useSelector(dealerSelectors.getDealerTerms);\r\n\r\n const { handleSubmit, control, setError, clearErrors, formState: { errors } } = useForm();\r\n const [isInit, setIsInit] = useState(false);\r\n const [isEmailValidated, setIsEmailValidated] = useState(false);\r\n const [isPhoneValidated, setIsPhoneValidated] = useState(false);\r\n const [isEmailLoading, setIsEmailLoading] = useState(false);\r\n const [isPhoneLoading, setIsPhoneLoading] = useState(false);\r\n const [lastEmail, setLastEmail] = useState('');\r\n const [lastPhone, setLastPhone] = useState('');\r\n const [branches, setBranches] = useState([{label: \"Preferred Dealership \", value: \"\"}]);\r\n\r\n const isSubmitDisabled = !isEmailValidated || !isPhoneValidated;\r\n\r\n // const valuationResult2: any = _.cloneDeep(valuationResult);\r\n \r\n const getDealer = async () => {\r\n const traffic:ApiResult = await getDealerInfo(dealerId);\r\n if (!traffic.errormessage && traffic.result){\r\n const d: Array = traffic.result.DealerSites.length > 1 ? traffic.result.DealerSites.filter((d: any) => d.IsPrincipal) : traffic.result.DealerSites.length ? traffic.result.DealerSites : [];\r\n if (!d.length) return null;\r\n const ds = d[0];\r\n const phone = ds.Phone;\r\n const address = `${ds.Address} ${ds.Suburb} ${ds.State} ${ds.Postcode}`;\r\n const website = ds.Website;\r\n const terms = traffic.result.Terms;\r\n let openingHours: Array = [];\r\n try {\r\n openingHours = JSON.parse(ds.SalesOperatingHours);\r\n }\r\n catch {\r\n console.log('error parsing opening hours.');\r\n }\r\n // setDealershipOptions\r\n const b = traffic.result.DealerSites.filter((d: any) => d.LocationType == 'Branch' || d.LocationType == 'Principal').map((d: any) => {\r\n return {label: d.Suburb, value: d.Suburb};\r\n }).sort();\r\n const b2 = [ ...branches, ...b];\r\n setBranches(b2);\r\n dispatch({type: dealerActionTypes.SET_DEALER, payload: {\r\n privacyPolicy: traffic.result.PrivacyPolicy, \r\n phone, \r\n address, \r\n website, \r\n terms,\r\n openingHours\r\n }});\r\n handleDealerLoaded(traffic.result);\r\n }\r\n else {\r\n const btns: Array = [\r\n {\r\n title: 'Try again', \r\n classes: 'button-solid', \r\n callback: () => getDealer(), \r\n clearErrorOnClick: true\r\n }, \r\n {\r\n title: 'Back to registration', \r\n classes: 'button-outline', \r\n callback: () => { location.pathname = Routes.Specs }, \r\n clearErrorOnClick: false\r\n }\r\n ]\r\n const err: IError = { \r\n icon: require('../assets/images/exclamation.svg'),\r\n title: 'Sorry, we seem to be experiencing some technical difficulties, please try again later.', \r\n buttons: btns\r\n };\r\n dispatch({ type: errorActionTypes.SET_ERROR, payload: err });\r\n }\r\n };\r\n const submitLead = async (data: FormData) => {\r\n const lead:ILead = {\r\n instantOfferAppVersion: version,\r\n dealerID: dealerId,\r\n stockDealerID: stockDealerId,\r\n locationName: locationName,\r\n firstName: data.firstName,\r\n lastName: data.lastName,\r\n mobile: data.mobile,\r\n email: data.email,\r\n offerDate,\r\n rego: rego,\r\n state: auststate,\r\n kms: parseInt(kms),\r\n vin: vin,\r\n vehicleValued: {\r\n year, \r\n make,\r\n family,\r\n badge,\r\n badge2nd,\r\n vehicleSummary,\r\n vehicleSpec,\r\n vehicleImage,\r\n redbookCode,\r\n chosenVehicle: {\r\n redbookcode: redbookCode, // case difference\r\n rbid,\r\n makecode,\r\n familycode,\r\n vehicletype,\r\n year,\r\n month,\r\n sequenceno,\r\n description,\r\n newvehicleflag,\r\n importflag,\r\n limitededition,\r\n series,\r\n badge,\r\n badge2nd,\r\n bodystyle,\r\n drive,\r\n geartype,\r\n gearlocation,\r\n gearnum,\r\n doornum,\r\n enginesize,\r\n enginedesc,\r\n cylinders,\r\n fueltype,\r\n induction,\r\n cam,\r\n enginetype,\r\n fuelcapacity,\r\n fueldelivery,\r\n methoddelivery,\r\n gvm,\r\n wheelbase,\r\n height,\r\n length,\r\n width,\r\n kerbweight,\r\n taremass,\r\n power,\r\n powerrpmto,\r\n torque,\r\n torquerpmfrom,\r\n torquerpmto,\r\n seatcapacity,\r\n avgkm,\r\n gdkm,\r\n newprice,\r\n make,\r\n family,\r\n isBestMatch,\r\n imageUrl: vehicleImage, \r\n matchDebug\r\n }\r\n },\r\n conditions,\r\n redbookCode,\r\n valuation,\r\n answers,\r\n \r\n nextPurchase: interestedNext,\r\n offerAccepted: false,\r\n dealerBranch: branches.length > 1 ? data.dealerBranch || '' : '', \r\n // valuationResult: valuationResult2, \r\n colour\r\n };\r\n if (!lead.vehicleValued || !Object.keys(lead.vehicleValued).length) delete lead.vehicleValued;\r\n if (!lead.conditions || !lead.conditions.length) delete lead.conditions;\r\n if (!lead.answers || !lead.answers.length) delete lead.answers;\r\n if (!lead.valuationResult || !Object.keys(lead.valuationResult).length) delete lead.valuationResult;\r\n\r\n dispatch({ type: appActionTypes.SET_APP, payload: { isLoading: true } });\r\n const result = await postVehicleLead(lead);\r\n if (!result.errormessage && result.result && result.result.Success){\r\n dispatch({ type: appActionTypes.SET_APP, payload: { offerId: result.result.InstantOfferID } });\r\n }\r\n else {\r\n const btns: Array = [\r\n {\r\n title: 'Try again', \r\n classes: 'button-solid', \r\n callback: () => submitLead(data), \r\n clearErrorOnClick: true\r\n }, \r\n {\r\n title: 'Back to registration', \r\n classes: 'button-outline', \r\n callback: () => { location.pathname = baseName + Routes.Specs }, \r\n clearErrorOnClick: false\r\n }\r\n ]\r\n const err: IError = { \r\n icon: require('../assets/images/exclamation.svg'),\r\n title: 'Sorry, we seem to be experiencing some technical difficulties, please try again later.', \r\n buttons: btns\r\n };\r\n dispatch({ type: errorActionTypes.SET_ERROR, payload: err });\r\n }\r\n dispatch({ type: appActionTypes.SET_APP, payload: { isLoading: false } });\r\n };\r\n const onSubmit = async (data: FormData) => {\r\n if (!isSubmitDisabled){\r\n dispatch({ type: actionTypes.SET_CUSTOMER, payload: data });\r\n dispatch({ type: appActionTypes.SET_APP, payload: { isLoading: true } });\r\n await submitLead(data);\r\n\r\n dispatch({ type: appActionTypes.SET_APP, payload: { isLoading: false } });\r\n\r\n handleContactSubmit();\r\n }\r\n }\r\n const handleFieldFocus = (name: string) => {\r\n handleAnalyticEvent({\r\n type: 'focus', \r\n field: name\r\n })\r\n };\r\n const handleButtonClick = (name: string) => {\r\n handleAnalyticEvent({\r\n type: AnalyticType.Click, \r\n element: AnalyticElement.Button,\r\n name\r\n });\r\n };\r\n const handleEmailBlur = async (e: any) => {\r\n if (lastEmail == e.target.value) return;\r\n setLastEmail(e.target.value);\r\n setIsEmailValidated(false);\r\n if (e.target.value){\r\n setIsEmailLoading(true);\r\n const r = await validateEmail(e.target.value);\r\n setIsEmailValidated(r);\r\n setIsEmailLoading(false);\r\n if (!r){\r\n setError('email', {\r\n type: \"manual\", \r\n message: \"This email is not valid.\"\r\n });\r\n }\r\n else {\r\n clearErrors('email');\r\n }\r\n }\r\n }\r\n const handlePhoneBlur = async (e: any) => {\r\n if (lastPhone == e.target.value) return;\r\n setLastPhone(e.target.value);\r\n setIsPhoneValidated(false);\r\n if (e.target.value){\r\n setIsPhoneLoading(true);\r\n const r = await validatePhone(e.target.value);\r\n setIsPhoneValidated(r);\r\n setIsPhoneLoading(false);\r\n if (!r){\r\n setError('mobile', {\r\n type: \"manual\", \r\n message: \"Your mobile number is incorrect.\"\r\n });\r\n }\r\n else {\r\n clearErrors('mobile');\r\n }\r\n }\r\n }\r\n useEffect(() => {\r\n if (dealerId && !isInit){\r\n setIsInit(true);\r\n getDealer();\r\n }\r\n });\r\n\r\n return (\r\n \r\n
\r\n
\r\n {\r\n const handleFieldChange = (text: any | null) => {\r\n onChange(text);\r\n };\r\n return \r\n }} \r\n />\r\n {\r\n const handleFieldChange = (text: any | null) => {\r\n onChange(text);\r\n };\r\n return \r\n }} \r\n />\r\n {\r\n const handleFieldChange = (text: any | null) => {\r\n onChange(text);\r\n };\r\n return \r\n }} \r\n />\r\n {\r\n const handleFieldChange = (text: any | null) => {\r\n onChange(text);\r\n };\r\n return \r\n }} \r\n />\r\n {branches.length > 1 ? {\r\n const handleSelectChange = (selectedOption: any | null) => {\r\n onChange(selectedOption?.value);\r\n };\r\n return handleFieldFocus('Preferred dealership')}\r\n onChange={handleSelectChange}\r\n />\r\n }}\r\n /> : ''}\r\n {\r\n const handleFieldChange = (text: any | null) => {\r\n onChange(text);\r\n };\r\n return Terms of Use and understand that my information will be handled by the Dealer and One Toyota under the Dealer Privacy Policy`} \r\n error={errors.terms} \r\n onChange={handleFieldChange}\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 Contact;","import React, { Fragment, useEffect, useState } from 'react'\r\nimport { useHistory } from 'react-router-dom'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { actionTypes as appActionTypes, selectors as appSelectors } from '../features/app'\r\nimport { selectors as valuationSelectors } from '../features/valuation'\r\nimport { selectors as errorSelectors } from '../features/error'\r\nimport ContactForm from '../forms/Contact'\r\nimport { AnalyticElement, IAnalyticEvent, Routes } from '../types.d'\r\nimport { scrollToBeginning } from '../helpers'\r\nimport SendEvent from '../analytics'\r\nimport { EAppVersion } from '../features/app/types'\r\n\r\nexport const Personal: React.FC = () => {\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n const version = useSelector(appSelectors.getAppVersion);\r\n const isLoading = useSelector(appSelectors.getAppIsLoading);\r\n const isError = useSelector(errorSelectors.getErrorTitle);\r\n const [isInit, setIsInit] = useState(false);\r\n const offerId = useSelector(appSelectors.getAppOfferId);\r\n const valuation = useSelector(valuationSelectors.getValuationValuation);\r\n\r\n const handleContactSubmit = () => {\r\n SendEvent({\r\n event: 'formSubmit',\r\n formName: 'contact'\r\n });\r\n dispatch({ type: appActionTypes.SET_APP, payload: { isLoading: true } });\r\n history.push(Routes.Offer);\r\n }\r\n const handleDealerLoaded = (results: any) => {\r\n dispatch({ type: appActionTypes.SET_APP, payload: { isLoading: false } });\r\n };\r\n const handleAnalyticEvent = (evt: IAnalyticEvent) => {\r\n switch (evt.element){\r\n case AnalyticElement.Button:\r\n SendEvent({\r\n event: 'sendEvent',\r\n eventCategory: 'User Interactions',\r\n eventAction: `Instant Offer - contact`,\r\n eventLabel: `${version == EAppVersion.a ? 'Show' : 'Email'} valuation - button click`,\r\n eventValue: 0,\r\n nonInteraction: false\r\n });\r\n break;\r\n }\r\n }\r\n useEffect(() => {\r\n if (!isInit){\r\n setIsInit(true);\r\n // if (!valuation) history.replace(Routes.Specs); \r\n dispatch({ type: appActionTypes.SET_APP, payload: { step: 2, subStep: 0 } });\r\n scrollToBeginning();\r\n SendEvent({\r\n event: 'sendVirtualPageView',\r\n pageType: 'instantoffer',\r\n viewSection: 'form',\r\n viewName: 'personal',\r\n });\r\n }\r\n })\r\n\r\n return (\r\n \r\n
\r\n
\r\n
\r\n
\r\n

Finally, please provide your contact details

\r\n
\r\n
\r\n {/*
Submit your details to be {version == EAppVersion.a ? 'presented' : 'emailed '} with our offer (subject to a final inspection by the dealer)
*/}\r\n
We’ll need your details before we can present you with an offer to buy your vehicle (subject to a final inspection by your Dealer).
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n )\r\n}\r\n","import React, { Fragment, useEffect, useState } from 'react'\r\nimport { useHistory } from 'react-router-dom'\r\nimport { actionTypes as appActionTypes, selectors as appSelectors } from '../features/app'\r\nimport { selectors as errorSelectors } from '../features/error'\r\nimport { selectors as vehicleSelectors } from '../features/vehicle'\r\nimport { selectors as valuationSelectors } from '../features/valuation'\r\nimport { selectors as dealerSelectors } from '../features/dealer'\r\nimport { useSelector, useDispatch } from 'react-redux'\r\nimport { getFormattedKms, getFormattedMoney, getMonths, getFormattedOpeningHours, scrollToBeginning } from '../helpers'\r\nimport { baseName, Routes } from '../types.d'\r\nimport { actionTypes as errorActionTypes } from '../features/error'\r\nimport { getAcceptOffer } from '../api'\r\nimport { IError, IErrorButton } from '../features/error/types'\r\nimport SendEvent from '../analytics'\r\nimport { EAppVersion } from '../features/app/types'\r\n\r\ntype Props = {\r\n oid?: string\r\n};\r\n\r\nexport const Offer: React.FC = ({ oid }) => {\r\n const history = useHistory();\r\n const dispatch = useDispatch();\r\n\r\n const [isInit, setIsInit] = useState(false);\r\n const version = useSelector(appSelectors.getAppVersion);\r\n const subStep = useSelector(appSelectors.getAppSubStep);\r\n const isLoading = useSelector(appSelectors.getAppIsLoading);\r\n const isError = useSelector(errorSelectors.getErrorTitle);\r\n const family = useSelector(vehicleSelectors.getVehicleFamily);\r\n const image = useSelector(vehicleSelectors.getVehicleImage);\r\n const year = useSelector(vehicleSelectors.getVehicleYear);\r\n const make = useSelector(vehicleSelectors.getVehicleMake);\r\n const model = useSelector(vehicleSelectors.getVehicleModel);\r\n const description = useSelector(vehicleSelectors.getVehicleDescriptionLine);\r\n const rego = useSelector(vehicleSelectors.getVehicleRego);\r\n const auststate = useSelector(vehicleSelectors.getVehicleAustState)\r\n const kms = useSelector(vehicleSelectors.getVehicleKms);\r\n const valuation = useSelector(valuationSelectors.getValuationValuation);\r\n const locationName = useSelector(dealerSelectors.getDealerLocationName);\r\n const phone = useSelector(dealerSelectors.getDealerPhone);\r\n const openingHours = useSelector(dealerSelectors.getDealerOpeningHours);\r\n const website = useSelector(dealerSelectors.getDealerWebsite);\r\n const address = useSelector(dealerSelectors.getDealerAddress);\r\n const expiry = useSelector(appSelectors.getAppExpiry);\r\n const redbookCode = useSelector(vehicleSelectors.getVehicleRedbookCode);\r\n const offerId = useSelector(appSelectors.getAppOfferId);\r\n const vehicleTitle = useSelector(vehicleSelectors.getVehicleTitle);\r\n const vehicleDescriptionLine = useSelector(vehicleSelectors.getVehicleDescriptionLine);\r\n const vehicleSecondaryLine = useSelector(vehicleSelectors.getVehicleSecondaryLine);\r\n const vehicleTertiaryLine = useSelector(vehicleSelectors.getVehicleTertiaryLine);\r\n\r\n const expiryDate = new Date(expiry);\r\n const expiryFormatted = `${expiryDate.getDate()} ${getMonths[expiryDate.getMonth()]} ${expiryDate.getFullYear()}`;\r\n\r\n const handleStartOverClick = () => {\r\n SendEvent({\r\n event: 'sendEvent',\r\n eventCategory: 'User Interactions',\r\n eventAction: `Instant Offer - offer`,\r\n eventLabel: `Start over - button click`,\r\n eventValue: 0,\r\n nonInteraction: false\r\n });\r\n setTimeout(() => {\r\n location.pathname = baseName + Routes.Specs;\r\n },10);\r\n };\r\n const handleInterestClick = async () => {\r\n SendEvent({\r\n event: 'sendEvent',\r\n eventCategory: 'User Interactions',\r\n eventAction: `Instant Offer - offer`,\r\n eventLabel: `Submit interest - button click`,\r\n eventValue: 0,\r\n nonInteraction: false\r\n });\r\n dispatch({ type: appActionTypes.SET_APP, payload: { isLoading: true } });\r\n const r = await getAcceptOffer(offerId.toString(), redbookCode);\r\n if (!r.errormessage && r.result){\r\n dispatch({ type: appActionTypes.SET_APP, payload: { subStep: 1 } });\r\n scrollToBeginning();\r\n SendEvent({\r\n event: 'sendVirtualPageView',\r\n pageType: 'instantoffer',\r\n viewSection: 'interest',\r\n viewName: 'offer',\r\n });\r\n }\r\n else {\r\n const btns: Array = [\r\n {\r\n title: 'Try again', \r\n classes: 'button-solid', \r\n callback: () => handleInterestClick(), \r\n clearErrorOnClick: true\r\n }, \r\n {\r\n title: 'Back to registration', \r\n classes: 'button-outline', \r\n callback: () => { location.pathname = baseName + Routes.Specs }, \r\n clearErrorOnClick: false\r\n }\r\n ]\r\n const err: IError = { \r\n icon: require('../assets/images/exclamation.svg'),\r\n title: 'Sorry, we seem to be experiencing some technical difficulties, please try again later.', \r\n buttons: btns\r\n };\r\n dispatch({ type: errorActionTypes.SET_ERROR, payload: err });\r\n }\r\n dispatch({ type: appActionTypes.SET_APP, payload: { isLoading: false } });\r\n };\r\n\r\n useEffect(() => {\r\n if (!isInit){\r\n setIsInit(true);\r\n \r\n if (oid) {\r\n dispatch({ type: appActionTypes.SET_APP, payload: { step: 3, subStep: 1 } });\r\n dispatch({ type: appActionTypes.SET_APP, payload: { isLoading: false } });\r\n scrollToBeginning();\r\n return;\r\n };\r\n\r\n if (!offerId) history.replace(Routes.Specs);\r\n dispatch({ type: appActionTypes.SET_APP, payload: { step: 3, subStep: 0 } });\r\n dispatch({ type: appActionTypes.SET_APP, payload: { isLoading: false } });\r\n scrollToBeginning();\r\n SendEvent({\r\n event: 'sendVirtualPageView',\r\n pageType: 'instantoffer',\r\n viewSection: 'valuation',\r\n viewName: 'offer',\r\n vehicle: vehicleTitle,\r\n valuation: valuation\r\n });\r\n }\r\n });\r\n\r\n return (\r\n \r\n
\r\n {subStep === 0 ? \r\n
\r\n
\r\n
\r\n
\r\n {version == EAppVersion.a ? \r\n

Great! Here’s our offer for your {make} {family}

\r\n : \r\n

Great! We have emailed your {make} {family} valuation.

\r\n

A friendly team member will be in contact.

\r\n
\r\n }\r\n
\r\n
\r\n {family}\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n {version == EAppVersion.a ? \r\n

{getFormattedMoney(valuation, false)}*

\r\n : null}\r\n

{vehicleTitle}

\r\n

\r\n {vehicleDescriptionLine}\r\n {vehicleSecondaryLine} {vehicleTertiaryLine}\r\n
{rego} ({auststate})\r\n

\r\n
\r\n
\r\n
Offer Expiry
\r\n
{expiryFormatted}
\r\n
\r\n
\r\n
Buyer
\r\n
{locationName}
\r\n
\r\n
\r\n
Odometer
\r\n
{getFormattedKms(parseInt(kms))} km
\r\n
\r\n
\r\n
\r\n {version == EAppVersion.a ? \r\n
\r\n

Are you interested in this offer?

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

Need more time?

\r\n

We’ve also emailed you this offer, so if you need more time and would like to accept it later, you have until {expiryFormatted} to do so.

\r\n
\r\n : null}\r\n
\r\n
\r\n
\r\n
: \r\n
\r\n
\r\n
\r\n

Success! You’ve accepted our offer

\r\n
\r\n
\r\n
What happens next
\r\n {/* level=\"3\" */}\r\n
    \r\n
  1. One of our team members will call you to book an inspection.
  2. \r\n
  3. Come into the dealer (with this email offer) for your inspection before finalising your offer.
  4. \r\n
  5. At your in dealer appointment, we will confirm the final price based on our qualified inspection.
  6. \r\n
\r\n \r\n
Bring the following items to your onsite valuation:
\r\n {/* level=\"3\" */}\r\n
    \r\n
  • Vehicle registration certificate
  • \r\n
  • Your current driver’s licence
  • \r\n
  • Insurance documentation (if available)
  • \r\n
  • Service history documentation (if available)
  • \r\n
  • Loan information (if available)
  • \r\n
  • All sets of keys
  • \r\n
  • Owner’s manual (if available)
  • \r\n
  • Any spare tyres and/or tools
  • \r\n
\r\n\r\n
\r\n {/* level=\"3\" */}\r\n Contact us\r\n {locationName}\r\n
\r\n

{address}

\r\n {true || openingHours.length ? \r\n

\r\n : ''}\r\n

\r\n {phone}\r\n

\r\n \r\n
\r\n
\r\n
\r\n }\r\n
\r\n
\r\n )\r\n}\r\n","import React, { useEffect, useState } from 'react'\r\nimport { BrowserRouter, Switch, Route, Redirect } from 'react-router-dom'\r\nimport { useDispatch } from 'react-redux'\r\n\r\nimport Header from './components/Header'\r\nimport Footer from './components/Footer'\r\nimport Loading from './components/Loading'\r\nimport Error from './components/Error'\r\nimport { Specs } from './pages/Specs'\r\nimport { Condition } from './pages/Condition'\r\nimport { Personal } from './pages/Personal'\r\nimport { Offer } from './pages/Offer'\r\nimport { SET_APP } from './features/app/actionTypes'\r\nimport { SET_DEALER } from './features/dealer/actionTypes'\r\nimport { Routes, baseName } from './types.d'\r\nimport SendEvent from './analytics'\r\n\r\nconst App: React.FC = () => {\r\n const dispatch = useDispatch();\r\n const [hasSetDealer, setHasSetDealer] = useState(false);\r\n\r\n useEffect(() => {\r\n if (!hasSetDealer){\r\n setHasSetDealer(true);\r\n dispatch({type: SET_DEALER, payload: {\r\n dealerID: (window as any).StoreWebsiteInfo.DealerID,\r\n stockDealerID: (window as any).StoreWebsiteInfo.StockDealerID, \r\n dealerName: (window as any).StoreWebsiteInfo.DealerName,\r\n locationName: (window as any).StoreWebsiteInfo.LocationName\r\n }});\r\n }\r\n });\r\n\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\nexport default App\r\n","import React, { useEffect, useState } from 'react'\r\nimport { BrowserRouter } from 'react-router-dom'\r\nimport { useDispatch } from 'react-redux'\r\n\r\nimport Header from './components/Header'\r\nimport Footer from './components/Footer'\r\nimport Loading from './components/Loading'\r\nimport Error from './components/Error'\r\n\r\nimport { Offer } from './pages/Offer'\r\nimport { SET_DEALER } from './features/dealer/actionTypes'\r\nimport { Routes, baseName, ApiResult } from './types.d'\r\nimport { getDealerInfo } from './api'\r\nimport { IOpeningHours } from './features/dealer/types'\r\nimport { actionTypes as dealerActionTypes } from './features/dealer'\r\nimport { IError, IErrorButton } from './features/error/types'\r\nimport { actionTypes as errorActionTypes } from './features/error'\r\n\r\nconst EmailApp: React.FC = () => {\r\n const dispatch = useDispatch();\r\n const [hasSetDealer, setHasSetDealer] = useState(false);\r\n\r\n\tconst urlSearchParams = new URLSearchParams(window.location.search);\r\n\tconst params = Object.fromEntries(urlSearchParams.entries());\r\n\tconst oid: string = params.oid || '';\r\n\r\n useEffect(() => {\r\n if (!hasSetDealer){\r\n setHasSetDealer(true);\r\n dispatch({type: SET_DEALER, payload: {\r\n dealerID: (window as any).StoreWebsiteInfo.DealerID,\r\n stockDealerID: (window as any).StoreWebsiteInfo.StockDealerID, \r\n dealerName: (window as any).StoreWebsiteInfo.DealerName,\r\n locationName: (window as any).StoreWebsiteInfo.LocationName\r\n }});\r\n\t\t\tgetDealer();\r\n }\r\n });\r\n\r\n\tconst getDealer = async () => {\r\n const traffic:ApiResult = await getDealerInfo((window as any).StoreWebsiteInfo.DealerID);\r\n if (!traffic.errormessage && traffic.result){\r\n const d: Array = traffic.result.DealerSites.length > 1 ? traffic.result.DealerSites.filter((d: any) => d.IsPrincipal) : traffic.result.DealerSites.length ? traffic.result.DealerSites[0] : [];\r\n if (!d.length) return null;\r\n const ds = d[0];\r\n const phone = ds.Phone;\r\n const address = `${ds.Address} ${ds.Suburb} ${ds.State} ${ds.Postcode}`;\r\n const website = ds.Website;\r\n const terms = traffic.result.Terms;\r\n let openingHours: Array = [];\r\n try {\r\n openingHours = JSON.parse(ds.SalesOperatingHours);\r\n }\r\n catch {\r\n console.log('error parsing opening hours.');\r\n }\r\n \r\n dispatch({type: dealerActionTypes.SET_DEALER, payload: {\r\n privacyPolicy: traffic.result.PrivacyPolicy, \r\n phone, \r\n address, \r\n website, \r\n terms,\r\n openingHours\r\n }});\r\n }\r\n else {\r\n const btns: Array = [\r\n {\r\n title: 'Try again', \r\n classes: 'button-solid', \r\n callback: () => getDealer(), \r\n clearErrorOnClick: true\r\n }, \r\n {\r\n title: 'Back to registration', \r\n classes: 'button-outline', \r\n callback: () => { location.pathname = Routes.Specs }, \r\n clearErrorOnClick: false\r\n }\r\n ]\r\n const err: IError = { \r\n icon: require('./assets/images/exclamation.svg'),\r\n title: 'Sorry, we seem to be experiencing some technical difficulties, please try again later.', \r\n buttons: btns\r\n };\r\n dispatch({ type: errorActionTypes.SET_ERROR, payload: err });\r\n }\r\n };\r\n\r\n return (\r\n\t\t\r\n
\r\n
\r\n
\r\n\t\t\t\t\t{oid ? \r\n \r\n\t\t\t\t\t: null}\r\n
\r\n
\r\n \r\n \r\n
\r\n\t\t
\r\n )\r\n}\r\n\r\nexport default EmailApp\r\n","import React from 'react'\r\nimport ReactDOM from 'react-dom'\r\nimport { Provider } from 'react-redux'\r\nimport store from './store'\r\n\r\nimport './styles/app.scss'\r\n\r\nimport App from './App';\r\nimport EmailApp from './EmailApp';\r\n\r\nconst appRoot = document.getElementById('root');\r\nconst emailRoot = document.getElementById('emailroot');\r\n\r\nif (appRoot){\r\n ReactDOM.render(\r\n \r\n \r\n ,\r\n appRoot\r\n );\r\n}\r\nif (emailRoot){\r\n ReactDOM.render(\r\n \r\n \r\n ,\r\n emailRoot\r\n );\r\n}\r\n\r\n","export default __webpack_public_path__ + \"static/media/exclamation.c3bbe77d.svg\";","export default __webpack_public_path__ + \"static/media/barricade.413a51de.svg\";"],"sourceRoot":""}