{"version":3,"sources":["../node_modules/ionicons/node_modules/@stencil/core/internal/client lazy /^/.*$/ include: /.entry/.js$/ exclude: /.system/.entry/.js$/ groupOptions: {} namespace object","../node_modules/@stencil/core/internal/client lazy /^/.*$/ include: /.entry/.js$/ exclude: /.system/.entry/.js$/ groupOptions: {} namespace object","stores/Session.ts","stores/CustomerType.ts","stores/ScrollPosition.ts","stores/MainRightPage.ts","stores/UserSelectedDelivery.ts","helpers/enum.ts","stores/UserSelectedVehicleConfig.ts","stores/PaymentOptions.ts","stores/CheckoutCustomer.ts","stores/OrderCustomerDetails.ts","stores/OrderDetails.ts","stores/OrderScheduleDelivery.ts","stores/Vehicle.ts","stores/DefaultConfig.ts","stores/CountryStateList.ts","stores/LinkSource.ts","stores/OrderDetailPageDataVersion.ts","stores/OrderDocuments.ts","services/localStorage.ts","stores/ScrollBarDisplay.ts","stores/MainPageNumber.ts","stores/GlobalDropdown.ts","stores/Store.ts","businessHelpers/SelectedDeliveryhelper.ts","businessHelpers/OrderScheduleDeliveryHelper.ts","businessHelpers/VehicleHelper.ts","businessHelpers/DefaultConfigHelper.ts","helpers/Uri.ts","services/PaymentOptions.ts","services/CountryState.ts","helpers/useCountryState.ts","components/PaymentOptions.tsx","businessHelpers/DriveawayCostHelper.ts","businessHelpers/FinanceHelper.ts","services/Vehicle.ts","businessHelpers/LandingPageHelper.ts","pages/Global/landing/ImportantInfoDialog.tsx","pages/Global/landing/DesignYourDialog.tsx","pages/Main/ScrollToSection.tsx","helpers/useSatellite.ts","pages/Global/GlobalTheme.tsx","pages/GlobalPage.tsx","helpers/useCheckMobileScreen.ts","services/User.ts","scene/Layout/MainMenu.tsx","pages/Main/exterior/CarColorSelected.tsx","pages/Main/variant/VariantComparison.tsx","pages/Main/variant/ComparisonDialog.tsx","pages/Main/variant/ConfidenceDialog.tsx","pages/Main/variant/Variant.tsx","pages/Main/exterior/Exterior.tsx","pages/Main/interior/Interior.tsx","pages/Main/accessories/Accessories.tsx","services/Interest.ts","components/PrivacyPolicyLink.tsx","pages/Main/checkout/ShareDialog.tsx","components/IsNumberVerification.tsx","pages/Main/checkout/PrivacyCollectionDialog.tsx","pages/Main/checkout/SaveDialog.tsx","components/DriveawayPriceDialog.tsx","pages/Main/checkout/Checkout.tsx","pages/Main/checkout/CashFinanceDescDialog.tsx","pages/Main/checkout/CustomerPayment.tsx","services/Locations.ts","pages/Main/checkout/Delivery.tsx","businessHelpers/CheckoutHelper.ts","components/NoInventoryReminder.tsx","services/AdyenPayment.ts","services/Order.ts","pages/Main/checkout/TermsConditionsDialog.tsx","helpers/authConfig.ts","helpers/useAzureB2C.ts","pages/Main/checkout/AccountGuidelines.tsx","pages/Main/checkout/CheckoutWaitlist.tsx","components/ChargingDialog.tsx","pages/Main/charging/Charging.tsx","components/CarCarouselDialog.tsx","components/CarCarousel.tsx","pages/Main/MainLeftImageGrid.tsx","pages/Main/MobileImageCarousel.tsx","helpers/useSreenSize.ts","pages/MainPage.tsx","helpers/useClearUserDataStore.ts","scene/Users/UserPopUp.tsx","scene/Layout/GlobalDrawer.tsx","scene/Layout/GlobalSelectVehicle.tsx","scene/Layout/GlobalShop.tsx","helpers/useCheckTabletScreen.ts","scene/Layout/GlobalMenu.tsx","LayoutPages.tsx","scene/Layout/Footer.tsx","HomePage.tsx","Styles.ts","components/Spinner.tsx","scene/Info/NotFoundPage.tsx","scene/Users/SignInPage.tsx","pages/Support/ComingSoon.tsx","helpers/useAnalyticsEventTracker.ts","scene/Users/ForgotPasswordPage.tsx","scene/Users/ResetPasswordPage.tsx","scene/Users/EmailVerficationPage.tsx","scene/Playground/GoogleAutoCompletePage.tsx","scene/Users/AuthPage.tsx","components/ScrollToTop.tsx","pages/InventoryPage.tsx","businessHelpers/AvailableInventoryHelper.ts","pages/Global/orders/purchasingProgress/ProvideDetails.tsx","businessHelpers/OrderCustomerDetailsHelper.ts","businessHelpers/DriverLicenseHelper.ts","businessHelpers/AddressHelper.ts","businessHelpers/DocumentHelper.ts","pages/Global/orders/purchasingProgress/ArrangePayment.tsx","services/GoogleApi.ts","pages/Global/orders/purchasingProgress/SelectLocation.tsx","pages/Global/orders/purchasingProgress/SelectDateTime.tsx","pages/Global/orders/purchasingProgress/PickupLocation.tsx","pages/Global/orders/purchasingProgress/ScheduleDelivery.tsx","services/Document.ts","pages/Global/orders/purchasingProgress/ReviewContract.tsx","pages/Global/orders/purchasingProgress/FinanceApplication.tsx","pages/Global/orders/purchasingProgress/RetryPayment.tsx","pages/Global/orders/purchasingProgress/ViewAppointment.tsx","pages/Global/orders/purchasingProgress/ProgressSteps.tsx","pages/OrderProgress/OrderPlacedSuccess.tsx","pages/OrderProgress/OrderWaitlisted.tsx","pages/Global/inventory/NewVehicleInventory.tsx","services/TestDrive.ts","pages/Global/testDrive/TestDrive.tsx","businessHelpers/TestDriveHelper.ts","pages/Global/orders/MyOrders.tsx","pages/Global/profiles/Profiles.tsx","businessHelpers/ProfileHelper.ts","pages/Global/privacy/Privacy.tsx","pages/Global/orders/Support.tsx","pages/Global/orders/Documents.tsx","pages/Global/orders/OrderDetails.tsx","scene/Info/MaintenancePage.tsx","App.tsx","helpers/claimUtils.ts","index.tsx"],"names":["webpackEmptyAsyncContext","req","Promise","resolve","then","e","Error","code","keys","module","exports","id","GOT_SESSION","CLEAR_SESSION","GOT_COUNTRY_STATE","SET_CUSTOMER_TYPE","setCustomerTypeAction","customerType","type","SET_SCROLL_POSITION","setScrollPosition","positionStatus","initScrollPositionState","SET_MAIN_SECTION","checkMainSection","mainSection","initMainSectionState","SET_MAIN_RIGHT_PAGE","hideGlobalPage","isHideGlobal","initMainRightPageState","UPDATE_DELIVERY","updateDeliveryAction","delivery","UPDATE_COUNTRYSTATE","UPDATE_POSTCODE","UPDATE_SELECTEDPICKUPLOCATION","UPDATE_SELECTEDHOMEDELIVERY","UPDATE_DELIVERYOPTIONS","CLEAR_DELIVERYOPTIONS","enumProcessingStatus","constModel","constStateList","name","enumDeliveryOptions","enumDeliveryOptionsDisplayName","enumPaymentOptions","enumCountryCode","enumCountryName","enumClientTypes","Code","Text","enumVehicleOptionType","enumVehicleOptionTypeName","enumChargeType","enumPage","enumInterestType","enumRDErrorCode","enumRedirectPage","enumOrderStatus","enumScrollSection","enumPipelineButtonID","enumDocumentType","enumInventorySort","enumTestDriveTransaction","enumDeliveryPriceError","ErrorCode","ErrorMessage","enumErrorMessage","enumLinkSource","enumCallBackRequest","SET_DEFAULTVEHICLE","UPDATE_VARIANT","updateVariantAction","variantID","variant","variantBasePrice","UPDATE_EXTERIOR","updateExteriorAction","exteriorID","exterior","exteriorPrice","UPDATE_INTERIOR","updateInteriorAction","interiorID","interior","interiorPrice","hasStock","UPDATE_ALLOPTIONS","updateAllOptionsAction","options","UPDATE_OPTION","updateOptionAction","option","CLEAR_SELECTEDCONFIG","initSelectedVehicle","VariantID","VariantName","VariantBasePrice","ExteriorID","Exterior","ExteriorPrice","InteriorID","Interior","InteriorPrice","Options","Subtotal","HasStock","calculateSubtotal","state","subtotal","map","item","OptionPrice","UPDATE_SELECTEDPAYMENTOPTION","updateSelectedPaymentOptionAction","selectedPaymentOption","UPDATE_DRIVEAWAYCOST","updateDriveawayCostAction","driveAwayCost","driveAwayCostRequest","UPDATE_FINANCE","CLEAR_PAYMENTOPTIONS","clearPaymentOptionsAction","initPaymentOptions","PaymentOption","rdEnum","DriveAwayCost","DriveAwayCostRequest","Finance","SET_CHECKOUTCUSTOMERDETAILS","CLEAR_CHECKOUTCUSTOMERDETAILS","clearCheckoutCustomerDetailsAction","SET_ORDERCUSTOMERDETAILS","CLEAR_ORDERCUSTOMERDETAILS","SET_ORDERDETAILS","CLEAR_ORDERDETAILS","SET_ORDERSCHEDULEDELIVERY","setOrderScheduleDeliveryAction","scheduleDelivery","SET_SCHEDULEDATE","SET_SCHEDULETIME","CLEAR_ORDERSCHEDULEDELIVERY","variantList","selectedVariant","UPDATE_SELECTEDVARIANT","updateSelectedVariantAction","exteriorList","selectedExterior","UPDATE_SELECTEDEXTERIOR","interiorList","selectedInterior","UPDATE_SELECTEDINTERIOR","UPDATE_OPTIONS","updateOptionsAction","accessories","chargingList","CLEAR_VEHICLE","SET_DEFAULTCONFIG","setDefaultConfigAction","defaultConfig","SET_DEFAULTCONFIGLOADED","SET_COUNTRYSTATES","SET_LINKSOURCE","setLinkSourceAction","source","SET_ORDERDETAILPAGEDATAVERSION","setOrderDetailPageDataVersionAction","Clear_ORDERDETAILPAGEDATAVERSION","SET_ORDERDOCUMENTS","CLEAR_ORDERDOCUMENTS","getSessionStorageKey","key","loadState","serializedState","localStorage","getItem","JSON","parse","err","SET_SCROLLBAR_DISPLAY","checkIsShowScrollBar","isShowScrollBar","initIsShowScrollBarState","SET_MAIN_PAGE_NUMBER","setMainPageNumber","mainPageNumber","initMMainPageNumberState","SET_GLOBAL_DROPDOWN","setGlobalDropdown","vehicles","shop","initGlobalDropdownState","appReducer","combineReducers","session","action","countryInfo","scrollPosition","mainRightPage","globalDropdown","selectedDelivery","Country","State","SelectedPickupLocation","SelectedDeliveryOption","SelectedDeliveryFullAddress","SelectedDeliveryPostcode","SelectedDeliveryState","SelectedDeliverySuburb","PrimaryAddress","PrimaryPostcode","PrimarySuburb","PrimaryState","InvalidPrimaryAddress","DeliveryAvailable","DeliveryPrice","DeliveryPriceErrorCode","DeliveryDistance","PickupLocationName","countryCode","stateCode","PostCode","Suburb","postcode","suburb","location","SelectedHomeDeliveryFullAddress","homeDeliveryAddress","SelectedHomeDeliveryPostcode","homeAddressPostcode","SelectedHomeDeliverySuburb","homeAddressSuburb","SelectedHomeDeliveryState","homeAddressState","deliveryOption","selectedVehicle","defaultVehicle","newState","index","findIndex","value","YanaOptionID","OptionType","ChargeType","filter","paymentOptions","finance","checkoutCustomer","customerDetails","orderCustomerDetails","orderDetails","orderScheduleDelivery","YanaOrderID","YanaOrderNo","YanaCustomerID","YanaCustomerNo","DeliveryLocationState","DeliveryLocationSuburb","DeliveryLocationPostcode","DeliveryLocationAddress","DeliveryOption","DeliveryDate","undefined","DeliveryFormatDate","DeliveryTime","Available","date","formatDate","time","orderDocuments","docs","vehicle","VariantList","SelectedVariant","ExteriorList","SelectedExterior","InteriorList","SelectedInterior","Accessories","Charging","defautConfig","ExteriorName","InteriorName","Loaded","LinkKey","ExpiryDateText","loaded","countryStateList","countryStates","linkSource","orderDetailDataVersion","LOGOUT_CLEAR","rootReducer","updatedState","getBackendPath","process","getFrontendOrigin","getCMSAssets","getGoogleMapAPIKey","getAdyenEnv","country","env","getAdyenKey","getShareLink","webUniqueKey","currencyFormat","currencyFormatter","Intl","NumberFormat","style","currency","isNil","format","currencyFormatCharging","checked","currencyFormatWithIncluded","currencyFormatWithBlank","currencyFormatWithZeroBlank","validateEmail","email","test","noActivityRedirectHomePage","resposne","errorCode","url","window","href","getDriveAwayCost","request","abortSignal","a","requestOptions","method","headers","body","stringify","credentials","signal","fetch","response","json","rdHelper","getFinanceTermOptions","getFinanceBallonOptions","termOptionID","TermOptionID","getFrequency","calculateFinance","getCountryAndState","useCountryState","dispatch","useDispatch","countryAndStates","useSelector","doGetCountryAndState","dataInStore","status","countryListState","data","length","itemData","states","stateData","push","countryName","getCountry","returnCountry","allCountryAndStates","getStates","stateList","findCountry","find","m","PaymentOptions","forwardRef","props","ref","countryState","isFromLandingPage","subTotal","estDeliveryDate","variantName","variantPrice","exteriorName","interiorName","selectedLocationFromStore","vehFromStore","appState","customerTypeFromStore","paymentOptionsFromStore","useState","isOpen","setIsOpen","paymentOption","setPaymentOption","selectedState","setSelectedState","postCode","setPostcode","setSuburb","registrationType","setRegistrationType","VariantPrice","SubTotal","RegistrationType","Distance","CallSource","IfCalculateFinance","driveawayCostRequest","setDriveawayCostRequest","LuxuryCarTax","LocalStampDuty","LocalRegistrationCost","LocalCTP","LocalPlateFee","HomeDelivery","DriveawayPrice","OnRoadFee","GST","RoadUserChargers","TyreStewardshipFee","setDriveAwayCost","setStates","abortControllerInitialValue","AbortController","setCostAbortController","SelectedTermOptions","SelectedBalloonPaymentOptions","SelectedPaymentFrequency","Deposit","DriveawayCost","InterestRate","ComparisonRate","FinanceAmount","BallonAmount","LoanPayment","LoanPaymentText","CreditAssistanceFee","MonthlyAccountFee","FreqencyName","NoOfMonth","InterestRateTo","TotalLoanPayment","PPSR","financePageState","setFinancePageState","Source","financeRequest","setFinanceRequest","termOptions","setTermOptions","selectedTermOptions","setSelectedTermOptions","balloonPaymentOptions","setBalloonPaymentOptions","selectedBalloonPaymentOptions","setSelectedBalloonPaymentOptions","frequencyOptions","setFrequencyOptions","selectedFrequencyOption","setSelectedFrequencyOptions","initAbortCalculateFinanceValue","setFinanceAbortController","financeActiveEventKey","setFinanceActiveKey","useImperativeHandle","openDialog","document","overflowY","paddingRight","useEffect","buildDriveawayCostRequest","buildFinanceRequest","doGetDriveAwayCost","doGetStates","distance","pickupOption","requestData","abortController","paymentOptionService","driveAwayCostDataFromBackend","driveawayCostData","driveAwayCostData","luxuryCarTax","localStampDuty","localRegistrationCost","localCTP","localPlateFee","homeDelivery","onRoadFeeSubtotal","driveawayPrice","exteriorColourPrice","interiorColourPrice","gst","roadUserChargers","tyreStewardshipFee","getOptions","console","log","optionData","configs","optionType","OptionName","optionName","optionPrice","OptionPicture","OptionPictureMobile","OptionDesc","optionDesc","chargeType","Disable","TermsDescription","doGetTermOptions","responseData","defaultTerm","tempTermOptions","termItem","ID","filterID","Name","filterName","IsDefault","isDefault","doGetBallonOptions","ballonOptionResponse","defaultFinalBalloonPayments","tempfinalBalloonPayments","finalBalloonPaymentsItem","doGetFrequencyOptions","frequencyResponse","defaultFrequencyPayments","tempFrequencyPayments","frequencyItem","doCalculateFinance","updatedFinance","interestRateText","comparisonRateText","totalFinancedAmountText","balloonpaymentText","monthlyLoanPayment","monthlyLoanPaymentText","creditAssistanceFeeText","monthlyAccountFeeText","freqencyName","noOfMonth","interestRateTo","totalLoanPayment","ppsr","CustomFinanceToggle","children","eventKey","isActive","decoratedOnClick","useAccordionButton","className","onClick","showVehicleTemplate","optionsTemplate","showTaxTemplate","optionItemsTemplate","selectedOptions","optionItem","template","setTimeout","stateDropdown","getElementById","setAttribute","classList","add","regoTypeDropdown","termDropdown","balloonDropdown","balloonItemTemplate","data-dtm","position","visible","draggable","resizable","onHide","Button","Row","Col","lg","display","inputId","onChange","onStateChange","optionLabel","placeholder","disabled","itemTemplate","types","getRegistrationTypes","borderBottom","paddingBottom","margin","parseInt","target","keyfilter","minWidth","Fragment","fontSize","width","Accordion","defaultActiveKey","activeKey","onSelect","Card","Collapse","Body","Header","activeEventKey","alt","src","textDecoration","cursor","open","getAvailableInventoryFilters","needDefaultValue","variantRequest","NeedDefaultValue","Variant","getAvailableInventory","availableInventory","getLandingPage","landing","getVariants","getExteriors","getInteriors","getInitLandingPage","Postcode","CustomerType","Model","YanaVariantID","YanaVariantName","LoadPaymentText","FrequentlyText","ImportantInfoDialog","header","DesignYourDialog","setIsScrolled","handleScroll","event","scrollTop","querySelectorAll","forEach","dialogContent","removeEventListener","ScrollToSection","createContext","ScrollProvider","variantRef","useRef","exteriorRef","interiorRef","financeRef","chargingRef","paymentRef","deliveryComponentRef","deliveryRef","checkoutRef","watchlistRef","Provider","scrollToSection","section","current","scrollIntoView","behavior","useScroll","context","useContext","useSatellite","trackEvent","_satellite","track","warn","getVariable","getVar","GlobalTheme","isGlobalDialogOpen","satellite","useNavigate","paymentOpionsRef","dialogVisible","setDialogVisible","loaderVisible","setLoaderVisible","useLocation","preloader","closeLoader","isFromOtherPage","setIsHovered","selectedDeliveryFromStore","countryStateFromStore","menuGlobalBtn","sections","closePreLoader","timeout","clearTimeout","countries","setCountries","selectedCountry","setSelectedCountry","doGetCountry","landingPageHelper","landingPage","setLandingPage","handleHover","prevIsHovered","doGetLandingPage","vehicleService","landingData","driveawayCost","available","yanaVariantId","exteriorId","interiorId","loanPaymentText","frequentlyText","isAndroid","navigator","userAgent","isIOS","globalContentBox","querySelector","videoKey","videoRef","handleVisibilityChange","hidden","ended","pause","currentTime","duration","addEventListener","onCountryChange","onMouseEnter","onMouseLeave","selectedDeliveryStore","paymentOptionsStore","customerTypeStore","defaultConfigStore","linkSourceStore","onSubmit","preload","muted","autoPlay","playsInline","GlobalPage","useCheckMobileScreen","innerWidth","setWidth","handleWindowSizeChange","setSession","clearSession","getProfile","yanaCustomerID","yanaCustomerNo","nzYanaCustomerID","nzYanaCustomerNo","saveProfile","userProfile","privacy","isUpdateProfile","token","validateResetPasswordToken","isShowMaintenance","MainMenu","activeButton","setActiveButton","element","sm","includes","CarColorSelected","color","handleColor","colorList","handleChangeColor","carColor","exteriorListFromStore","classNames","ExteriorColorName","ExteriorFilterImage","VariantComparison","variantListFromStore","leftExteriorList","setLeftExteriorList","rightExteriorList","setRightExteriorList","ExteriorColorDescTitle","ExteriorColorDesc","ExteriorPicture","ExteriorPictureMobile","ExteriorFilterMobile","ExteriorOrderingNo","selectedLeftExteriorList","setSelectedLeftExteriorList","selectedRightExteriorList","setSelectedRightExteriorList","leftVariantName","setLeftVariantName","rightVariantName","setRightVariantName","leftVariantDesc","setLeftVariantDesc","rightVariantDesc","setRightVariantDesc","variantLeft","variantRight","colorLeft","colorRight","leftImageUrlSet","rightImageUrlSet","totalPriceLeft","totalPriceRight","payByMonthLeft","payByMonthRight","viewPosition","initLeftColor","initLeftImageUrlSet","initLeftVariant","initRightColor","initRightImageUrlSet","initRightVariant","activeLeftImage","setActiveLeftImage","activeRightImage","setActiveRightImage","isMobile","doGetExterior","VariantDescription","isLeft","exteriorTempItem","exteriorColorName","exteriorColorDescTitle","exteriorColorDesc","exteriorPicture","exteriorPictureMobile","exteriorFilter","exteriorFilterMobile","setIsWhichSide","images","getElementsByClassName","compareImages","img","slider","w","h","clicked","updateWidth","offsetWidth","offsetHeight","createElement","parentElement","insertBefore","top","left","slideReady","preventDefault","slideMove","slideFinish","pos","getCursorPos","slide","x","touch","changedTouches","getBoundingClientRect","pageX","pageXOffset","i","initComparisons","ComparisonDialog","pageName","openLearnMoreDialog","setOpenLearnMoreDialog","onVisible","accordionButton","alwaysOpen","Item","ConfidenceDialog","linkSourceFromStore","isMoible","handleDialogHide","crossIcon","icons","backgroundImage","backgroundSize","onShow","navigate","vehicleFromStore","selectedCustomerType","defaultConfigFromStore","getExteriorImages","setSelectedVariant","variants","setVariants","setIsTypeVisible","doGetVariants","isDefaultVariant","selectedConfigStore","vehicleStore","updatedVariants","toLowerCase","timeoutId","resData","Range","range","Power","power","KmHour","kmHour","VariantPicture","variantPicture","VariantPictureMobile","variantPictureMobile","variantDescription","variantItemTemplate","isFromInventoryPage","directionButtons","direction","aria-hidden","indicators","onGoToInventory","Carousel","nextIcon","prevIcon","interval","setSelectedExterior","exteriors","setExteriors","isPaidVisible","setIsPaidVisible","isDefaultExterior","updatedExteriors","exteriorTemplate","opacity","transition","interiorListFromStore","setSelectedInterior","interiors","setInteriors","doGetInterior","doGetOptions","isDefaultInterior","InteriorColorName","updatedInteriors","interiorRequest","InteriorColorDescTitle","InteriorColorDesc","InteriorPicture","InteriorPictureMobile","InteriorFilterImage","InteriorFilterMobile","InteriorOrderingNo","interiorColorName","interiorColorDescTitle","interiorColorDesc","interiorColorPrice","interiorPicture","interiorPictureMobile","interiorFilter","interiorFilterMobile","yanaOptionID","optionPicture","optionPictureMobile","termsDescription","charging","interiorTemplate","selectedOptionsFromStore","isSelectedOption","findSelectedOption","selectedItems","accessoriesCheckbox","getElementsByName","padding","border","htmlFor","handleSelect","saveInterest","interest","ifCallYanaAPI","getInterest","linkKey","getWaitlist","webkey","PrivacyPolicyLink","ShareDialog","shareDialog","setShareDialog","copyTooltip","emailTooltip","tooltip","setTooltip","isCopyLink","setIsCopyLink","isEmailSend","setIsEmailSend","invalidEmail","pageState","setPageState","shareFailedMessage","setShareFailedMessage","sharingStatus","setSharingStatus","setWebUniqueKey","selectVehFromStore","selectedPaymentOptions","customerTypeForStore","openShareDialog","newKey","uuidv4","doShareInterest","handleCopy","rdUri","clipboard","writeText","handleSendEmail","emailValidator","getDeliveryLocationState","LocationState","getDeliveryLocationPostcode","LocationPostcode","getDeliveryLocationSuburb","LocationSuburb","getDeliveryLocationFullAddress","LocationAddress","isShareOnly","newWebUniqueKey","interestData","Email","FirstName","LastName","Mobile","ABN","BusinessName","DeliveryAddress","EstDeliveryDate","PrivacyStatement","Marketing","InterestType","Comments","WebUniqueKey","VehicleThumbnail","interestService","showEmailSuccess","message","Tooltip","appendTo","aria-describedby","height","strokeWidth","animationDuration","dangerouslySetInnerHTML","__html","IsNumberVerification","evt","charCode","which","keyCode","PrivacyCollectionDialog","isShowDialog","setIsShowDialog","onDialogOpen","SaveDialog","saveDialog","setSaveDialog","initPageState","firstname","lastname","confirmEmail","mobile","comments","checkMarketingComms","checkPrivacy","invalidFirstname","invalidLastname","invalidConfirmEmail","invalidMobile","emailMismatch","invalidCheckMarketingComms","invalidCheckPrivacy","saveFailedMessage","setSaveFailedMessage","savingStatus","setSavingStatus","isOverflown","setIsOverflown","textAreaRef","checkOverflow","textarea","maxVisibleHeight","getComputedStyle","lineHeight","scrollHeight","selectedVehicleFromStore","openSaveDialog","onSaveHide","validation","invalid","newPageState","handleSubmit","agreeCheckbox","marketingCheckbox","borderRadius","marginTop","onKeyPress","isNumberKey","slice","rows","backgroundColor","DriveawayPriceDialog","handleDialogOpen","driveawayCostFromStore","Checkout","checkoutFormPage","addsOnItem","getDeliveryAddress","price","getDeliveryPrice","CashFinanceDescDialog","paymentType","toUpperCase","marginBottom","CustomerPayment","handlePayment","handleCustomerType","handlePaymentType","paymentOptionStore","childRef","getLocations","getAddress","keywords","getDistance","Delivery","handleDelivery","addressList","setAddressList","primaryAddress","setPrimaryAddressAddress","PickupLocationAvailable","DeliveryPriceError","primaryAddressAvailabeDetails","setPrimaryAddressAvailabeDetails","differentDeliveryAddress","setDifferentDeliveryAddress","differentDeliveryAddressAvailabeDetails","setDifferentDeliveryAddressAvailabeDetails","pickupLocations","setPickupLocations","DifferentDeliveryAddress","PickupAddressConfirm","InvalidDeliveryType","InvalidPrimaryPostcode","InvalidPrimaryState","InvalidPickupLocation","InvalidDeliveryAddress","InvalidDeliveryPostcode","InvalidDeliveryState","pageInvalidState","setPageInvalidState","pickupLocationDataLoadingStatus","setPickupLocationDataLoadingStatus","inputRef","regionalInputRef","locationCheckboxRef","differentAddressCheckboxRef","isFocused","setIsFocused","isRegoFocused","setIsRegoFocused","isNullAddress","address","fullAddress","isNullPostcode","getValidate","invalidDelivery","invalidDeliveryOption","invalidPrimaryAddress","invalidPrimaryPostcode","invalidPrimaryState","invalidPickupLocation","invalidDeliveryAddress","invalidDeliveryPostcode","invalidDifferentState","deliveryError","innerHTML","validationDelivery","dispatchRegoAddress","handleDeliveryType","updatedDelivery","selectedPickuplocation","IsSelected","LocationName","doGetAddress","query","locationService","result","onDeliveryAddressChange","clearPrimaryState","doGetLocations","doGetDeliveryPrice","VehicleSubTotal","locatiions","pickupLocationName","pickupLocationAddress","pickupLocationSuburb","pickupLocationPostcode","pickupLocationState","LocationAvailable","pickupLocationAvailable","deliveryPrice","deliveryAvailable","DeliveryErrorCode","deliveryPriceErrorCode","primaryAddressAvailabe","homeDeliveryPostcode","homeDeliverySuburb","homeDeliveryState","updateSelectedDelivery","selectedLocation","DeliveryState","DeliveryPostcode","DeliverySuburb","PickupAddress","PickupState","PickupPostcode","PickupSuburb","priceResponse","priceResponseData","deliveryAddressAvailabe","eligibleForPickupLocation","autoComplete","onFocus","onBlur","field","inputClassName","suggestions","completeMethod","onAddressSelect","onAddressChange","hasDeliveryEligible","hasInStoreEligible","eligibleNoteTemplate","invalidDeliveryState","onDeliveryAddressSelect","error","showDeliveryAddressError","NoInventoryReminder","handleToInventoryPage","getNewPaymentIDs","orderID","savePaymentLog","order","adyenSession","placeReservation","hasLogin","placeOrder","getOrderByYanaCustomerID","customerID","customerNo","nzCustomerID","nzCustomerNo","getOrderDetailsByYanaIDs","yanaOrderID","yanaOrderNo","updateOrderDetails","confirmContract","contract","getScheduleAvailabeTime","saveScheduleAvailabeTime","saveRetryPayment","getLMCT","callBackRequest","getFinanceStatus","getReservationStatus","setReservationCountdown","extendReservationCountdown","TermsConditionsDialog","b2cPolicies","names","signUpSignIn","forgotPassword","authorities","authority","authorityDomain","msalConfig","auth","clientId","knownAuthorities","redirectUri","postLogoutRedirectUri","navigateToLoginRequestUrl","cache","cacheLocation","storeAuthStateInCookie","system","loggerOptions","loggerCallback","level","containsPii","LogLevel","Info","info","Verbose","debug","Warning","protectedResources","apiTodoList","endpoint","scopes","read","write","loginRequest","useAzureB2C","instance","useMsal","isAuthenticated","useIsAuthenticated","signIn","loginRedirect","catch","signOut","logoutRedirect","isAuth","inProgress","InteractionStatus","None","getAllAccounts","isAuthAndLogin","AccountGuidelines","toPrivacy","CheckoutWaitlist","azureB2C","checkOutCustomerFromStore","driveawayFromStore","toConfiguration","paymentPageStatus","clientType","setClientType","joinConsentRef1","joinConsentRef2","businessname","abn","address2","agreement","comment","invalidBusinessname","invalidABN","invalidABNLength","invalidAddress","invalidSuburb","emailDuplicated","invalidAgreement","invalidState","invalidPostcode","checkoutHelper","reserverationSubmittingStatus","setReservationSubmittingStatus","confirmOrderSubmittingStatus","setConfirmOrderSubmittingStatus","submittingToYana","setSubmittingToYana","VehicleImages","CustomerCountry","BillingAddress","BillingSuburb","BillingPostcode","BillingState","RegoAddress","RegoSuburb","RegoPostcode","RegoState","NameOnCreditCard","RDAcountID","RDPaymentID","OrderID","YanaOrderReservationID","YanaOrderReservationNo","FromLinkSource","PaymentHistory","DownPayment","PaymentDueDate","FinalPaymentAmount","Total","Balance","PaymentAmount","setOrder","placeReservationMessage","setPlaceReservationMessage","placeOrderMessage","setPlaceOrderMessage","isShowPaymentPanel","setIsShowPaymentPanel","paymentContainer","customCardInstance","SessionID","SessionData","SessionResult","ResultCode","setAdyenSession","isShowAdyenRetryButton","setIsShowAdyenRetryButton","adyenFailedMessage","setAdyenFailedMessage","reservationExpiryMin","reservationCountDownSeconds","setReservationCountDownSeconds","reservationCountdownStage","setReservationCountdownStage","reservationExtendCount","setReservationExtendCount","showCountdownDialog","setShowCountdownDialog","lmctText","setLMCTText","showOutOfStock","setShowOutOfStock","confirm","invalidConfirm","confirmed","setConfirmed","paymentErrorMessage","translations","doGetLMCT","orderService","partnerLMCT","doGetAdyenConfig","Uri","locale","environment","clientKey","sessionData","onPaymentCompleted","component","localBilling","paymentID","strPaymentOrder","orderComment","postAdyenSession","sessionResult","resultCode","billingData","paymentOrder","postOrder","Address1","NameOnCard","doPlaceOrder","doSavePaymentLog","doGetPaymentIDs","beforeSubmit","actions","tempData","billingAddress","street","Address2","houseNumberOrName","postalCode","city","stateOrProvince","paymentMethod","holderName","setItem","onError","paymentMethodsConfiguration","card","hasHolderName","holderNameRequired","billingAddressRequired","brands","showPayButton","paymentService","adyenSessionID","adyenSessionData","rdPaymentTransactionID","yanaIds","yanaOrderIDs","orderVehicle","ignore","doInitPayment","isRefresh","adyenConfig","AdyenCheckout","checkout","create","onReady","mount","streetRef","cityRef","postcodeRef","houseNumberOrNameRef","showConfirmPopup","setShowConfirmPopup","confirmPopupMessage","setConfirmPopupMessage","clearMessage","validateAccount","isInvalid","invalidBusinessName","invalidFirstName","invalidLastName","emailMisMatch","onClickPaymentButton","withoutLogin","orderData","getActiveAccount","responseOrderData","rdAccountID","yanaReservationID","yanaReservationNumber","paymentAmount","checkoutCustomerStore","reservationCountDown","reservationCountDownStage","reservationExtensionCount","onClickWaitlist","chargingCheckbox","doSetReservationCountdown","setInterval","newCountdownSecond","clearInterval","maxLength","onCopy","onPaste","onCut","background","sec","minutes","Math","floor","seconds","countDownTimeTemplate","isValid","update","remount","submit","showHeader","ChargingDialog","removeFirstItemList","isAddOrRemove","some","toLocaleLowerCase","md","chargingCurrencyFormat","chargeList","setChargeList","chargingListFromStore","selectedPublicCharge","selectedHomeWithoutPriceCharge","selectedHomeHasPriceCharge","tempList","CarCarouselDialog","slideNumber","carouselPage","setCarouselPage","getInteriorImages","handleOpen","pageNumber","handleClose","defaultActiveIndex","activeIndex","selectedIndex","CarCarousel","variantAWD","exteriorColor","interiorColor","carouselInterval","mobileImages","isUseImages","setVehicle","carouselDialogRef","MainLeftImageGrid","imgExpand","setImgExpand","topPanel","bottomPanel","topExpand","bottomExpand","expanded","setExpanded","addsOn","deliveryType","customize","setCustomize","activeImage","setActiveImage","sectionName","fullView","frontView","backView","sideView","initialImage","setInitialImage","interirorFullView","interirorFrontView","interirorBackView","initialInteriorImage","setInitialInteriorImage","carImage","setCarImage","carInteriorImage","setCarInteriorImage","handleImgExpand","selectedClassName","remove","tileIndex","split","pop","documentElement","setProperty","scrollTo","MobileImageCarousel","sectionStatus","isShowExteriorPopup","currentExteriorIndex","isShowInteriorPopup","currentInteriorIndex","isShowSummaryPopup","currentSummaryIndex","mobileCarouselPopup","setMobileCarouselPopup","handleMobileCarouselPopup","handleCloseMobileCarousel","accessKey","useScreenSize","screenSize","setScreenSize","smallScreen","matchMedia","mediumScreen","largeScreen","handleResize","matches","MainPage","activeAccount","isShowBottomPanel","driveawayRequestData","setDriveawayRequestData","handleCustomer","toVariantWithLinkKey","financeData","updatedFinanceStore","FinalBalloonPayment","balloonAmount","comparisonRate","loanPayment","Term","term","FrequencyName","frequencyName","innerHeight","windowSize","setWindowSize","setWindowDigitalData","setTrackEvent","level3","idTokenClaims","digitalData","pageInfo","siteSectionsLevel1","siteSectionsLevel2","siteSectionsLevel3","siteSectionsLevel4","siteSectionsLevel5","universalID","seoStrategyPageName","pageType","languageSelected","siteName","brand","region","renderedExperience","viewport","orientation","internalCampaignInfo","articleInfo","visitorProfile","userProfileStateAuthentication","userLoginStart","configProducts","configExtColor","configIntColorUpholstery","configModelPackageVersion","engine","transmission","vehicleInfo","vehicleType","modelName","modelYear","bodyStyle","trimLevel","condition","vin","toolsInfo","wheels","dealerName","dealerId","individualProductPrice","configuratorStartPrice","configuratorEndPrice","data-section-id","paddingTop","scrollMarginTop","currentUrl","replace","history","replaceState","useClearUserDataStore","storeData","clearData","newData","UserPopUp","isClickable","clearUserData","userVisible","setUserVisible","loginSession","imageLoaded","imageList","onLogOut","userService","onUserOpen","onUserHide","customHeader","data-dtm2","closable","dismissableMask","GlobalDrawer","drawerVisible","setDrawerVisible","onDrawerHide","pathname","reload","toConfigure","GlobalSelectVehicle","onChangeActiveBtn","selectVehicleCategory","setselectVehicleCategory","isVehicleSelectionDisplay","setIsVehicleSelectionDisplay","toConfigurate","category","xs","GlobalShop","filterShow","toTestDrive","useCheckTabletScreen","GlobalMenu","activeBtn","setIsHasOrder","setIsClickable","shopDivHeight","setShopDivHeight","isTablet","menuRef","vehicleRef","shopRef","sessionFromStore","auCustomerID","auCustomerNo","NZYanaCustomerID","NZYanaCustomerNo","doGetMyOrders","activeBtnValue","handleClickOutside","contains","MainLayoutPage","title","sceneId","langScreenID","metaKeywords","canonicalHref","searchParams","URLSearchParams","search","isScrollbarVisible","containerRef","doGetIsShowMaintenance","maintenanceCodeFromUrl","rdUserService","isShow","maintenanceTestingCode","maintenanceCode","chatele","maintenanceTestingCodeFromUrl","get","codeInStorage","Footer","toRegister","HomePage","setIsGlobalDialogOpen","expiryedLink","setExpiryedLink","redirectPage","isCheckoutPaymentPage","useParams","animatedElements","block","inline","setScrollGlobalOpacity","observer","IntersectionObserver","entries","entry","isIntersecting","threshold","el","observe","scrollGlobalOpacity","doGetInterest","interestBackendData","isExpired","getInterestOptions","expiryDateText","typeOfLink","observers","sectionElement","thresholdValue","sid","getAttribute","sectionId","root","rootMargin","disconnect","scrollTimeout","setIsShowBottomPanel","container","globalOpacityRatio","parseFloat","toFixed","ratio","screen","globalContainer","startsWith","roundedRatio","round","updateDeviceRatioClass","zIndex","gray2","gray5","gray6","primary2","fontFamily","baseFieldCSS","styled","button","fieldset","div","label","css","input","Spinner","spinnerWidth","NotFoundPage","React","SignInPage","ComingSoon","useAnalyticsEventTracker","ReactGA","ForgotPasswordPage","setErrorMessage","loading","isSent","password","invalidPassword","handleGoBack","handleSent","ResetPasswordPage","invalidToken","setInvalidToken","setEmail","pageProcess","setPageProcess","secondsRemaining","setSecondsRemaining","confirmPassword","invalidConfirmPassword","passwordNoMatched","number","upperLowerCase","characters","passwordRules","setPasswordRules","doValidateToken","intervalId","prevSeconds","isShowPassword","isShowResetPassword","passwordVisible","setPasswordVisible","passwordCheck","passwordEnter","trim","handleUpdate","invalidNewPass","invalidConfirmPass","handlePasswordInsert","EmailVerficationPage","verifyCode","invalidCode","doValidateEmail","GoogleAutoCompletePage","setAddress","returnAddressList","AuthPage","checkoutCustomerFromStore","doSetupSession","user","orderResponse","btoa","ScrollToTop","InventoryPage","defaultSelectedVariant","defaultSelectedExterior","defaultSelectedInterior","isShopFront","outOfStockBoxLocation","drawerShow","seDdrawerShow","selectedVariants","setSelectedVariants","selectedExteriors","setSelectedExteriors","selectedInteriors","setSelectedInteriors","availableInventoryList","setAvailableInventoryList","Variants","Exteriors","Interiors","Sort","availableRequest","setAvailabeRequest","sort","setSort","filterQty","setFilterQty","stock","setStock","searchResultLoadingStatus","setSearchResultLoadingStatus","isButtonClicked","setIsButtonClicked","inventoryAbortController","setInventoryAbortController","handleVariant","updateSelectedVariants","SelectVariantID","newItem","SelectVariantName","getExteriorList","getInteriorList","handleExteriorColor","updateSelectedExteriors","SelectExteriorName","SelectExteriorID","handleInteriorColor","updateSelectedInteriors","SelectInteriorName","SelectInteriorID","handleRestFilter","score","buildAvailableRequest","doGetAvailableInventory","abort","doGetAvailableInventoryFilter","variantRequestData","vehicleSerivce","stockList","stockFromBackend","stocks","exteriorFilterImage","interiorFilterImage","exteriorDisplayOrderingNo","interiorDisplayOrderingNo","variantsList","variantsFromBackend","defaultVariantID","defaultVariantName","isDefaultSelected","variantHasSock","defaultExteriors","defaultInteriors","stockItem","exteriorHasStock","self","v","hasVariant","hasExteriant","interiorHasStock","lst","availableList","availableInventorys","BasePrice","basePrice","onGoToOrder","filterDialogVisible","setFilterDialogVisible","handleFilterDialogClose","data-pr-tooltip","transform","marginLeft","onSortChange","filterPanel","selectedItem","maxWidth","size","ProvideDetails","buttonText","uploadFile1","uploadFile2","detailsRef","businessRef","billingRef","registrationRef","driveLicenseFrontRef","driveLicenseBackRef","orderCustomerDetailsFromStore","orderDocumentsFromStore","birthday","driverLicense","driverLicenseNo","driverLicenseExpiryDate","middlename","phone","secondaryPhone","businessName","regoAddress","deliveryAddress","actionType","invalidBirthday","invalidPhone","invalidSecondaryPhone","invalidDriverLicense","invalidNo","invalidExpiryDate","invalidUploadDoc1","invalidUploadDoc2","invalidBillingAddress","InvalidAddress1","InvalidAddress2","InvalidSuburb","InvalidState","InvalidPostcode","invalidRegoAddress","invaidPageState","setInvaidPageState","DocumentName","DocumentType","Base64","InvalidDocment","InvalidReason","DocumentKey","DocumentUrl","DocumentDownloadUrl","driveLicenseImages","setDriveLicenseImages","submitMessage","setSubmitMessage","submitStatus","setSubmitStatus","setInvalidABNLength","doGetDoc","findFrontDocs","findFrontDoc","findBackDocs","findBackDoc","validationInput","invalidForm","invalidDriveLicenseNo","invalidDrivLicenseExpDate","invalidBusiness","invalidPhone1","validBirthday","moment","validExpdate","invalidDriveLicenseImage1","invalidDriveLicenseImage2","validateDetails","validateBusiness","errorRefs","updateDoc1","updateDoc2","dialogContentRef","onSaveAndSubmit","isSubmit","updateData","orderDetailPageVersionStore","isFront","file","files","invalidFizeSize","invalidFileName","uploadFileMaxSize","allowedExtensions","invalidMessage","updateDoc","reader","FileReader","readAsDataURL","onloadend","base64data","toString","showInvalidFileError","mask","onDriveLicenseExpDateChange","click","focus","accept","onInput","ArrangePayment","getGeometryLocation","SelectLocation","deliveryLocation","setDeliveryLocation","setDistance","orderScheduleDeliveryFromStore","orderDetailsFromStore","initGoogleMapState","googleMapAPIKey","zoom","containerStyle","center","lat","lng","activeMarker","googleMapState","setGoogleMapState","isLoaded","useJsApiLoader","googleMapsApiKey","language","doGetGeometryLocation","doGetDistance","googleApiService","mapContainerStyle","SelectDateTime","dipatch","selectedDate","setSelectedDate","selectedTime","setSelectedTime","timeList","setTimeList","timeListLoadingStatus","setTimeListLoadingStatus","doGetTime","Date","toDate","minDate","showWeek","scheduleDeliveryStore","PickupLocation","ScheduleDelivery","scheduleStep","setScheduleStep","isReschedule","toNextStep","handleConfirm","ifDisableButton","onTabChange","getAllDocuments","doc","getSpecificDocuments","ReviewContract","fullName","setFullName","invalidFullname","setInvalidFullname","consent","setConsent","errorMessage","pdfLink","setPDFLink","onHideDialog","findDocs","requestFrontData","Documents","docService","reportName","displayUrl","onSignContract","FullName","download","rel","FinanceApplication","FinanceApplicationStepName","FinanceApplicationStepLink","financeStatus","setFinanceStatus","doGetFinanceStatus","financeApplicationStepName","financeApplicationStepLink","RetryPayment","setCustomCardInstance","showButton","setShowButton","selectedOrderDetailsFromStore","customCard","span","offset","ViewAppointment","Progress","progressList","lastPathname","isSuccessWaitListedPage","activeStep","setActiveStep","accordionOpen","setAccordionOpen","accordionOpenInit","step","pipelineBarStepStatus","PurchasingStepsToggle","callback","pipelineStatus","updatedAccordionOpen","Object","collapseOpenState","aria-expanded","onDownloadContract","onDownload","link","downloadUrl","buttonTemplate","stepItem","buttonID","desc","OrderPlacedSuccess","rdRefNo","financeLink","setFinanceLink","showContactMessage","setShowContactMessage","setCurrentStep","doGetOrder","orderFromAPI","vehicleThumbnail","getOrderOptions","deliveryLocationState","deliveryLocationSuburb","deliveryLocationPostcode","deliveryLocationAddress","orderCustomer","firstName","lastName","customerCountry","billingSuburb","billingPostCode","billingState","regoSuburb","regoPostCode","regoState","totalPrice","currentBalance","linkToFinanceApplication","currentStepYanaValue","pipelines","pipeLineData","pipeLines","stepNo","pipelineNumber","pipelineBarStepNumber","pipelineName","pipelineDesc","completeDate","showPrice","aspectRatio","ProgressSteps","OrderWaitlisted","setInterest","doGetWaitlist","interestFromBackend","marketing","interestType","NewVehicleInventory","getTestDriveLocations","model","getTestDriveModels","getTestDriveVariants","saveTestDrive","testDrive","TestDrive","QRcode","locations","setLocations","Address","selectedLocations","setSelectedLocations","setModels","ModelID","selectedModel","setSelectedModel","isFirstRenderCountry","utmtag","transaction","yanaTestDriveID","yanaTestDriveNo","invalidCountry","invalidLocation","invalidModel","invalidVariant","invalidPageState","setInvalidPageState","submittingStatus","setSubmittingStatus","doGetModels","testDriveService","tempLocations","tempModels","modelID","tempVariant","invalidComfirm","onBookTestDrive","Status","Message","onVariantChange","onLocationChange","emptyMessage","MyOrders","myOrderList","setMyOrderList","loadingStatus","setLoadingStatus","orderList","OrderNo","CustomerID","CustomerNo","VariantImage","OrderDate","orderDate","OrderStatus","orderStatus","IsShowActionRequiredWording","isShowActionRequiredWording","orderItem","visibility","orderId","orderNo","toOrderDetails","Profiles","yanaProfileID","nzYanaProfileID","usename","phone1","phone2","invalidUsername","setInvalidState","GMCommunicationEmail","GMCommunicationMobile","GMPartnerCommunicationEmail","GMPartnerCommunicationMobile","setPrivacy","submitResult","setSubmitResult","invalidANBLength","setInvalidANBLength","doGetProfile","profileService","profile","middleName","phoneNumber1","phoneNumber2","privacyFromBackend","gmCommunicationEmail","gmCommunicationMobile","gmPartnerCommunicationEmail","gmPartnerCommunicationMobile","Privacy","setProfile","communicationsHistory","setCommunicationsHistory","profileFromBackend","communicationHistory","Communications","communicationDescription","Type","SentDate","sent","onSavePrivacy","Support","requestDialogVisible","setRequestDialogVisible","requestStatus","setRequestStatus","callBackType","setCallBackType","processingState","setProcessingState","handleCallBackRequest","RequestType","onShowRequestDialog","onHideRequestDialog","alignItems","Dropdown","data-bs-theme","Toggle","Menu","orderDetailPageVersionFromStore","orderDocs","setOrderDocs","doGetAllDocs","tempDocs","allDocs","reportType","handleDownloadClick","OrderDetails","yanaID","yanaNo","stepsList","setStepsList","isCancelledOrder","setIsCancelledOrder","ifShowViewAppointmentButton","setIfShowViewAppointmentButton","paymentSummaryLink","setPaymentSummaryLink","lastStepCollapseHeightRef","setLastStepCollapseHeight","btn0","btn1","btn2","btn3","btn4","btn5","btn6","atob","tempOrder","getPaymentHistory","orderPaymentHistory","downPayment","paymentDueDate","finalPaymentAmount","isCancelled","showViewAppointmentButton","birthDay","driveLicenseNumber","driveLicenseExpDate","deliveryDate","deliveryTime","orderScheduleDeliveryStore","paymentHistoryData","PaymentDate","paymentDate","PaymentName","paymentName","FrqQuestionsToggle","AccordionContext","doGetDownloadPaymentSummary","MaintenancePage","store","newVersion","clearStorageOnDeployment","clear","persistedState","createStore","__REDUX_DEVTOOLS_EXTENSION__","subscribe","_","throttle","saveState","getState","configureStore","setupIonicReact","App","callbackId","addEventCallback","eventType","EventType","LOGIN_SUCCESS","ACQUIRE_TOKEN_SUCCESS","payload","account","policyToCompare","tfpMatches","hasOwnProperty","acrMatches","compareIssuingPolicy","signUpSignInFlowRequest","LOGIN_FAILURE","resetPasswordRequest","removeEventCallback","basename","path","msalInstance","PublicClientApplication","setActiveAccount","SSO_SILENT_SUCCESS","ReactDOM","render","StrictMode"],"mappings":"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","file":"static/js/main.e68f0b5f.chunk.js","sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = 522;","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = 523;","import { ISelectedCountryState } from \"model/ICountryStateList\";\r\nimport { ISessionState } from \"model/ISessionState\";\r\n// Session\r\nexport const GOT_SESSION = 'GotSession';\r\nexport const gotSessionAction = (session: ISessionState | null) =>\r\n({\r\n type: GOT_SESSION,\r\n session,\r\n} as const);\r\nexport const CLEAR_SESSION = 'ClearSession';\r\nexport const clearSessionAction = () =>\r\n({\r\n type: CLEAR_SESSION\r\n} as const);\r\ntype SessionActions = ReturnType\r\n | ReturnType;\r\n\r\n\r\nexport const initialSessionState: ISessionState = {\r\n //Memberhsipno: \"\",\r\n //FirstName: \"\",\r\n //LastName: \"\",\r\n //Address: \"\",\r\n //Suburb: \"\",\r\n //State: \"\",\r\n //Postcode: \"\",\r\n Email: \"\",\r\n //Phone: \"\",\r\n //UserType: 0,\r\n YanaCustomerID: \"\",\r\n YanaCustomerNo: \"\",\r\n NZYanaCustomerID: \"\",\r\n NZYanaCustomerNo: \"\"\r\n};\r\nexport const sessionReducer = (\r\n state: ISessionState | null = null,\r\n action: SessionActions,\r\n): ISessionState | null => {\r\n switch (action.type) {\r\n case CLEAR_SESSION: {\r\n return null;\r\n }\r\n case GOT_SESSION: {\r\n return action.session;\r\n }\r\n }\r\n\r\n return state;\r\n};\r\n\r\n\r\n//Country & State\r\nexport const GOT_COUNTRY_STATE = 'GotCountryState';\r\nexport const setCountryStateAction = (countryInfo: ISelectedCountryState | null) =>\r\n({\r\n type: GOT_COUNTRY_STATE,\r\n countryInfo,\r\n} as const);\r\nexport const CLEAR_COUNTRY_STATE = 'ClearSession';\r\nexport const clearCountryStateAction = () =>\r\n({\r\n type: CLEAR_SESSION\r\n} as const);\r\ntype CountryStateActions = ReturnType\r\n | ReturnType;\r\n\r\n\r\nexport const initialCountryState: ISelectedCountryState = {\r\n Country: {\r\n name: \"\",\r\n code: \"\"\r\n },\r\n State: {\r\n name: \"\",\r\n code: \"\"\r\n },\r\n};\r\nexport const countryStateReducer = (\r\n state: ISelectedCountryState | null = null,\r\n action: CountryStateActions,\r\n): ISelectedCountryState | null => {\r\n switch (action.type) {\r\n case CLEAR_SESSION: {\r\n return null;\r\n }\r\n case GOT_COUNTRY_STATE: {\r\n return action.countryInfo;\r\n }\r\n }\r\n\r\n return state;\r\n};","export const SET_CUSTOMER_TYPE = 'SET_CUSTOMER_TYPE';\r\nexport const setCustomerTypeAction = (customerType: any) =>\r\n({\r\n type: SET_CUSTOMER_TYPE,\r\n customerType,\r\n} as const);\r\n\r\ntype CustomerTypeActions =\r\n | ReturnType;\r\n\r\nexport const customerTypeReducer = (\r\n state = null,\r\n action: CustomerTypeActions,\r\n) => {\r\n switch (action.type) {\r\n case SET_CUSTOMER_TYPE: {\r\n return action.customerType;\r\n }\r\n }\r\n\r\n return state;\r\n};\r\n\r\n","import { IScrollPosition, IMainSection } from \"helpers/interface\";\r\n\r\nexport const SET_SCROLL_POSITION = 'SetScrollPosition';\r\nexport const setScrollPosition = (positionStatus: string) =>\r\n({\r\n type: SET_SCROLL_POSITION,\r\n positionStatus\r\n} as const);\r\n\r\nexport type ScrollPositionActions = ReturnType;\r\nexport const initScrollPositionState: IScrollPosition = {\r\n positionStatus: 'global'\r\n}\r\n\r\nexport const scrollPositionReducer = (\r\n state = initScrollPositionState,\r\n action: ScrollPositionActions,\r\n) => {\r\n switch (action.type) {\r\n case SET_SCROLL_POSITION: {\r\n return {\r\n ...state,\r\n positionStatus: action.positionStatus,\r\n };\r\n }\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport const SET_MAIN_SECTION = 'checkMainSection';\r\nexport const checkMainSection = (mainSection: string) =>\r\n({\r\n type: SET_MAIN_SECTION,\r\n mainSection\r\n} as const);\r\n\r\nexport type MainSectionActions = ReturnType;\r\nexport const initMainSectionState: IMainSection = {\r\n mainSection: 'global'\r\n}\r\n\r\nexport const mainSectionReducer = (\r\n state = initMainSectionState,\r\n action: MainSectionActions,\r\n) => {\r\n switch (action.type) {\r\n case SET_MAIN_SECTION: {\r\n return {\r\n ...state,\r\n mainSection: action.mainSection,\r\n };\r\n }\r\n default:\r\n return state;\r\n }\r\n};","import { IMainRightPage } from \"helpers/interface\";\r\n\r\nexport const SET_MAIN_RIGHT_PAGE = 'showMainRightPage';\r\nexport const hideGlobalPage = (isHideGlobal: boolean) =>\r\n({\r\n type: SET_MAIN_RIGHT_PAGE,\r\n isHideGlobal\r\n} as const);\r\n\r\nexport type MainRightPageActions = ReturnType;\r\nexport const initMainRightPageState: IMainRightPage = {\r\n isHideGlobal: false\r\n}\r\n\r\nexport const mainRightPageReducer = (\r\n state = initMainRightPageState,\r\n action: MainRightPageActions,\r\n) => {\r\n switch (action.type) {\r\n case SET_MAIN_RIGHT_PAGE: {\r\n return {\r\n ...state,\r\n isHideGlobal: action.isHideGlobal,\r\n };\r\n }\r\n default:\r\n return state;\r\n }\r\n};","import * as selectedConfigModel from 'model/IUserSelectedConfig';\r\nimport * as deliveryModel from 'model/IDelivery';\r\nimport * as selectedDeliveryHelper from 'businessHelpers/SelectedDeliveryhelper';\r\nimport { ICodeName } from 'model/ICommon';\r\n\r\nexport const UPDATE_DELIVERY = 'UpdateDelivery';\r\nexport const updateDeliveryAction = (delivery: selectedConfigModel.ISelectedDelivery) =>\r\n({\r\n type: UPDATE_DELIVERY,\r\n delivery,\r\n} as const);\r\n\r\n//export const UPDATE_ESTDELIVERYDATE = 'updateEstDeliveryDate';\r\n//export const updateEstDeliveryDateAction = (estDeliveryDate: string | null) =>\r\n//({\r\n// type: UPDATE_ESTDELIVERYDATE,\r\n// estDeliveryDate,\r\n//} as const);\r\n\r\nexport const UPDATE_COUNTRYSTATE = 'updateCountryState';\r\nexport const updateCountryAndStateAction = (countryCode: ICodeName, stateCode: ICodeName) =>\r\n({\r\n type: UPDATE_COUNTRYSTATE,\r\n countryCode,\r\n stateCode\r\n} as const);\r\n\r\nexport const UPDATE_POSTCODE = 'updatePostcode';\r\nexport const updatePostcodeAction = (postcode: string | null, suburb: string | null) =>\r\n({\r\n type: UPDATE_POSTCODE,\r\n postcode,\r\n suburb\r\n} as const);\r\n\r\nexport const UPDATE_SELECTEDPICKUPLOCATION = 'updateSelectedPickupLocation';\r\nexport const updateSelectedPickupLocationAction = (location: deliveryModel.IPickupLocation) =>\r\n({\r\n type: UPDATE_SELECTEDPICKUPLOCATION,\r\n location,\r\n} as const);\r\n\r\nexport const UPDATE_SELECTEDHOMEDELIVERY = 'updateSelectedHomeDelivery';\r\nexport const updateSelectedHomeDeliveryAction = (homeDeliveryAddress: string,\r\n homeAddressPostcode: string, homeAddressSuburb: string, homeAddressState: string) =>\r\n({\r\n type: UPDATE_SELECTEDHOMEDELIVERY,\r\n homeDeliveryAddress,\r\n homeAddressPostcode,\r\n homeAddressSuburb,\r\n homeAddressState\r\n} as const);\r\n\r\nexport const UPDATE_DELIVERYOPTIONS = 'updateDeliveryOptions';\r\nexport const updateDeliveryOptionsAction = (deliveryOption: string) =>\r\n({\r\n type: UPDATE_DELIVERYOPTIONS,\r\n deliveryOption,\r\n} as const);\r\n\r\n\r\n//export const UPDATE_ESTDELIVERYMONTHYEAR = 'updateEstDeliveryMonthYear';\r\n//export const updateEstDeliveryMonthYearAction = (date: string | null) =>\r\n//({\r\n// type: UPDATE_ESTDELIVERYMONTHYEAR,\r\n// date,\r\n//} as const);\r\n\r\n//export const VALIDATE_DELIVERY = 'Validate_delivery';\r\n//export const validateDeliveryAction = (invalidOptions: boolean, invalidLocation: boolean) =>\r\n//({\r\n// type: VALIDATE_DELIVERY,\r\n// invalidOptions,\r\n// invalidLocation\r\n//} as const);\r\n\r\n//export const VALIDATE_DELIVERY_ADDRESS = 'ValidateDeliveryAddress';\r\n//export const validateDeliveryAddressAction = (invalidLocation: boolean) =>\r\n//({\r\n// type: VALIDATE_DELIVERY_ADDRESS,\r\n// invalidLocation\r\n//} as const);\r\n\r\n//export const UPDATE_REGOADDRESS = 'updateRegoAddress';\r\n//export const updateRegoAddressAction = (\r\n// regoAddress: string | null,\r\n// regoSuburb: string | null,\r\n// regoPostcode: string | null,\r\n// regoState: string | null) =>\r\n//({\r\n// type: UPDATE_REGOADDRESS,\r\n// regoAddress,\r\n// regoSuburb,\r\n// regoPostcode,\r\n// regoState\r\n//} as const);\r\n\r\nexport const CLEAR_DELIVERYOPTIONS = 'clearDeliveryOptions';\r\nexport const clearDeliveryOptionsAction = () =>\r\n({\r\n type: CLEAR_DELIVERYOPTIONS,\r\n} as const);\r\n\r\n\r\nexport type SelectedDeliveryActions = ReturnType\r\n //| ReturnType\r\n | ReturnType\r\n | ReturnType\r\n | ReturnType\r\n | ReturnType\r\n | ReturnType\r\n | ReturnType;\r\n\r\n//| ReturnType\r\n//export const initSelectedLocation: selectedConfigModel.ISelectedDelivery = {\r\n// Country: null,\r\n// State: null,\r\n// SelectedPickupLocation: null,\r\n// SelectedDeliveryOption: null,\r\n// SelectedDeliveryFullAddress: null,\r\n// SelectedDeliveryPostcode: null,\r\n// SelectedDeliveryState: null,\r\n// SelectedDeliverySuburb: null,\r\n// //EstDeliveryDate: null,\r\n// //InvalidLocation: null,\r\n// //InvalidDeliveryOption: null,\r\n// PrimaryAddress: null,\r\n// PrimaryPostcode: null,\r\n// PrimarySuburb: null,\r\n// PrimaryState: null,\r\n// InvalidPrimaryAddress: null,\r\n// DeliveryAvailable: null,\r\n// DeliveryPrice: null,\r\n// DeliveryPriceErrorCode: null,\r\n// DeliveryDistance: null,\r\n// PickupLocationName: null,\r\n//}\r\n\r\nexport const selectedDeliveryReducer = (\r\n state = selectedDeliveryHelper.getInitSelectedDelivery(),\r\n action: SelectedDeliveryActions,\r\n) => {\r\n switch (action.type) {\r\n case UPDATE_DELIVERY: {\r\n return action.delivery;\r\n }\r\n //case UPDATE_ESTDELIVERYDATE: {\r\n // return {\r\n // ...state,\r\n // EstDeliveryDate: action.estDeliveryDate\r\n // };\r\n //}\r\n case UPDATE_COUNTRYSTATE: {\r\n return {\r\n ...state,\r\n Country: action.countryCode,\r\n State: action.stateCode,\r\n PostCode: null,\r\n Suburb: null,\r\n SelectedPickupLocation: null,\r\n SelectedDeliveryOption: null,\r\n DeliveryPrice: null,\r\n };\r\n }\r\n case UPDATE_POSTCODE: {\r\n return {\r\n ...state,\r\n PostCode: action.postcode,\r\n Suburb: action.suburb,\r\n SelectedPickupLocation: null,\r\n SelectedDeliveryOption: null,\r\n DeliveryPrice: null,\r\n };\r\n }\r\n case UPDATE_SELECTEDPICKUPLOCATION: {\r\n return {\r\n ...state,\r\n SelectedPickupLocation: action.location,\r\n //SelectedHomeDeliveryFullAddress: null,\r\n };\r\n }\r\n case UPDATE_SELECTEDHOMEDELIVERY: {\r\n return {\r\n ...state,\r\n //SelectedPickupLocation: null,\r\n SelectedHomeDeliveryFullAddress: action.homeDeliveryAddress,\r\n SelectedHomeDeliveryPostcode: action.homeAddressPostcode,\r\n SelectedHomeDeliverySuburb: action.homeAddressSuburb,\r\n SelectedHomeDeliveryState: action.homeAddressState,\r\n };\r\n }\r\n case UPDATE_DELIVERYOPTIONS: {\r\n return {\r\n ...state,\r\n SelectedDeliveryOption: action.deliveryOption,\r\n };\r\n }\r\n\r\n //case UPDATE_ESTDELIVERYMONTHYEAR: {\r\n // return {\r\n // ...state,\r\n // EstDeliveryDate: action.date,\r\n // };\r\n //}\r\n\r\n //case UPDATE_REGOADDRESS: {\r\n // return {\r\n // ...state,\r\n // RegoAddress: action.regoAddress,\r\n // RegoPostcode: action.regoPostcode,\r\n // RegoSuburb: action.regoSuburb,\r\n // RegoState: action.regoState,\r\n // };\r\n //}\r\n\r\n case CLEAR_DELIVERYOPTIONS: {\r\n return selectedDeliveryHelper.getInitSelectedDelivery();\r\n }\r\n default:\r\n return state;\r\n }\r\n};","import { ICodeName } from 'model/ICommon';\r\nexport const enumProcessingStatus = {\r\n Init: 0,\r\n Processing: 1,\r\n Processed: 2\r\n};\r\n\r\nexport const constModel = \"LYRIQ\";\r\n\r\n\r\nexport const enumOrdersTabName = {\r\n Orders: 0,\r\n Returns: 1,\r\n // Refunds: 2,\r\n Items: 2,\r\n Return_Details: 11,\r\n Item_Details: 22,\r\n // Refund_Details: 22,\r\n};\r\n\r\n//////---------------------useCountryState hook to get data\r\n//export const constCountryList = [\r\n// { name: 'Australia', code: 'AU' },\r\n// { name: 'New Zealand', code: 'NZ' },\r\n//];\r\n\r\nexport const constStateList: ICodeName[] = [\r\n { name: 'ACT', code: 'ACT' },\r\n { name: 'NSW', code: 'NSW' },\r\n { name: 'NT', code: 'NT' },\r\n { name: 'QLD', code: 'QLD' },\r\n { name: 'SA', code: 'SA' },\r\n { name: 'TAS', code: 'TAS' },\r\n { name: 'VIC', code: 'VIC' },\r\n { name: 'WA', code: 'WA' },\r\n];\r\n\r\nexport const constGst: number = 0.1;\r\n\r\n\r\n\r\nexport const enumPaymentStatus = {\r\n Success: \"Success\",\r\n Fail: \"Fail\",\r\n Incomplete: \"Incomplete\",\r\n Cancel: \"Cancel\",\r\n Unknow: \"Unknow\",\r\n};\r\n\r\n//delivery option's value\r\n//RD and Yana are sharing these value. Do not change them unless get Yana confirmed.\r\nexport const enumDeliveryOptions = {\r\n Pickup: \"Pick Up\",\r\n HomeDelivery: \"Regional Delivery\",\r\n}\r\n//delivery option's display name\r\n//These value are used to show label, and can be changed as scope request.\r\nexport const enumDeliveryOptionsDisplayName = {\r\n Pickup: \"In-store Collection\",\r\n HomeDelivery: \"Regional Delivery\",\r\n}\r\n\r\n//RD and Yana are sharing these value. Do not change them unless get Yana confirmed.\r\nexport const enumPaymentOptions = {\r\n Cash: \"Cash\",\r\n Finance: \"Finance\",\r\n}\r\n\r\n//RD and Yana are sharing these value. Do not change them unless get Yana confirmed.\r\nexport const enumCountryCode = {\r\n Australia: \"AU\",\r\n NewZealand: \"NZ\",\r\n}\r\n\r\nexport const enumCountryName = {\r\n Australia: \"Australia\",\r\n NewZealand: \"New Zealand\",\r\n}\r\n\r\n//RD and Yana are sharing the code value. Do not change the code unless get Yana confirmed.\r\nexport const enumClientTypes = {\r\n Private: {\r\n Code: \"Private Customer\",\r\n Text: \"I'm a private customer\",\r\n },\r\n Business: {\r\n Code: \"Business Customer\",\r\n Text: \"I'm a business customer\",\r\n },\r\n};\r\n\r\n\r\nexport const enumMonth = [\r\n { name: 'JAN', code: '01' },\r\n { name: 'FEB', code: '02' },\r\n { name: 'MAR', code: '03' },\r\n { name: 'APR', code: '04' },\r\n { name: 'MAY', code: '05' },\r\n { name: 'JUE', code: '06' },\r\n { name: 'JUL', code: '07' },\r\n { name: 'AUG', code: '08' },\r\n { name: 'SEP', code: '09' },\r\n { name: 'OCT', code: '10' },\r\n { name: 'NOV', code: '11' },\r\n { name: 'DEC', code: '12' },\r\n];\r\n\r\n//RD and Yana are sharing these value. Do not change them unless get Yana confirmed.\r\nexport const enumVehicleOptionType = {\r\n Accessories: \"Accessories\",\r\n Charge: \"Charge\"\r\n}\r\n\r\n\r\n//These value are used to show label, and can be changed as scope request.\r\nexport const enumVehicleOptionTypeName = {\r\n Accessories: \"Accessories\",\r\n Charge: \"Charging\"\r\n}\r\n\r\nexport const enumChargeType = {\r\n Public: 1,\r\n HomeWithoutPrice: 2,\r\n HomeHasPrice: 3\r\n}\r\n\r\nexport const enumPage = {\r\n CheckoutPayment: 1,\r\n JoinWaitList: 2\r\n}\r\n\r\nexport const enumInterestType = {\r\n Share: \"Share\",\r\n Save: \"Save\",\r\n Notify: \"Notify\",\r\n WaitingList: \"Waitlist\"\r\n}\r\n\r\nexport const enumRDErrorCode = {\r\n ExistedEmail: \"RD0001\",\r\n NotSignIn: \"RD0002\",\r\n MaxExtensionLimit: \"RD0003\",\r\n UnauthorisedAccess: \"UnauthorisedAccess\",\r\n OutOfStock: \"ECM0010\",\r\n NoActivity: \"NoActivity\",\r\n}\r\n\r\nexport const enumRedirectPage = {\r\n CheckoutPaymentPage: \"CheckoutPaymentPage\"\r\n}\r\n\r\nexport const enumOrderStatus = {\r\n Ordered: \"Ordered\",\r\n Confirmed: \"Ordered Confirmed\",\r\n Cancelled: \"Cancelled\",\r\n Delivered: \"Delivered\",\r\n PreparingToShip: \"Preparing To Ship\"\r\n}\r\n\r\nexport const enumScrollSection = {\r\n Variant: \"variant\",\r\n Exterior: \"exterior\",\r\n Interior: \"interior\",\r\n Accessories: \"accessories\",\r\n Charging: \"charging\",\r\n Payment: \"payment\",\r\n Delivery: \"delivery\",\r\n Checkout: \"checkout\",\r\n CheckoutForm: \"checkoutForm\",\r\n Global: \"global\"\r\n}\r\n\r\nexport const enumInstockPipelineStep = {\r\n OrderPlace: 1,\r\n ProvideDetail: 2,\r\n SignContract: 3,\r\n OrderConfirmed: 4,\r\n ScheduleDelivery: 5,\r\n ArrangePayment: 6,\r\n Delivered: 7\r\n}\r\n\r\nexport const enumPipelineStep = {\r\n OrderPlace: 1,\r\n ProvideDetail: 2,\r\n SignContract: 3,\r\n OrderConfirmed: 4,\r\n VehicleInProduction: 5,\r\n PrepareToShip: 6,\r\n Shipped: 7,\r\n ScheduleDelivery: 8,\r\n ArrangePayment: 9,\r\n Delivered: 10\r\n}\r\n\r\nexport const enumPipelineButtonID = {\r\n RetryPayment: 1,\r\n ProvideDetail: 2,\r\n StartYourApplication: 3,\r\n DownloadContract: 4,\r\n ReviewSignYourContract: 5,\r\n SchedulePickup: 6,\r\n ArranagePayment: 7,\r\n ViewAppointment: 8,\r\n ViewDelivery: 9\r\n}\r\n\r\nexport const enumDocumentType = {\r\n DriveLicenseFront: \"Drive License Front\",\r\n DriveLicenseBack: \"Drive License Back\",\r\n Contract: \"Contract\",\r\n PaymentSummary: \"PaymentSummary\"\r\n}\r\n\r\nexport const enumInventorySort: ICodeName[] = [\r\n { name: 'Lowest price', code: \"0\" },\r\n { name: 'Highest price', code: \"1\" },\r\n];\r\n\r\n\r\nexport const enumTestDriveTransaction = {\r\n Book: \"Book\",\r\n Update: \"Update\",\r\n Cancel: \"Cancel\"\r\n}\r\n\r\n\r\nexport const enumDeliveryPriceError = [\r\n {\r\n ErrorCode: \"1\",\r\n ErrorMessage: \"We were unable to provide an accurate estimate for this delivery address. You can either try a different address or proceed with your order, and a member of our sales team will reach out to provide an estimate.\",\r\n },\r\n {\r\n ErrorCode: \"2\",\r\n ErrorMessage: \"We are unable to calculate your regional deliver cost estimate at this time.You can try again later or call our Cadillac Sales team on 1800***** for support through this step\", //todo: phone no\r\n }\r\n];\r\n\r\nexport const enumErrorMessage = {\r\n AUReservationError: \"Your reservation has expired. Please contact our Cadillac Sales Team on 1800 223455\",\r\n NZReservationError: \"Your reservation has expired. Please contact our Cadillac Sales Team on 0800 223455\",\r\n}\r\n\r\nexport const enumLinkSource = {\r\n RegularInterestLink: \"Regular\",\r\n PrivateInterestLink: \"Private\",\r\n};\r\n\r\nexport const enumCallBackRequest = {\r\n CallBack: \"Call Back\",\r\n CancelOrder: \"Cancel Order\",\r\n}\r\n\r\n","import * as selectedConfigModel from 'model/IUserSelectedConfig';\r\nimport * as vehicleModel from 'model/IVehicle';\r\nimport { enumChargeType, enumVehicleOptionType } from '../helpers/enum';\r\n\r\nexport const SET_DEFAULTVEHICLE = 'setDefaultVehicle';\r\nexport const setDefaultVehicleAction = (defaultVehicle: selectedConfigModel.ISelectedVehicle ) =>\r\n({\r\n type: SET_DEFAULTVEHICLE,\r\n defaultVehicle,\r\n} as const);\r\n\r\nexport const UPDATE_VARIANT = 'updateVariant';\r\nexport const updateVariantAction = (variantID: string, variant: string, variantBasePrice: number) =>\r\n({\r\n type: UPDATE_VARIANT,\r\n variantID,\r\n variant,\r\n variantBasePrice,\r\n} as const);\r\n\r\n\r\nexport const UPDATE_EXTERIOR = 'updateExterior';\r\nexport const updateExteriorAction = (exteriorID: string, exterior: string, exteriorPrice: number) =>\r\n({\r\n type: UPDATE_EXTERIOR,\r\n exteriorID,\r\n exterior,\r\n exteriorPrice,\r\n} as const);\r\n\r\nexport const UPDATE_INTERIOR = 'updateInterior';\r\nexport const updateInteriorAction = (interiorID: string, interior: string, interiorPrice: number, hasStock: boolean) =>\r\n({\r\n type: UPDATE_INTERIOR,\r\n interiorID,\r\n interior,\r\n interiorPrice,\r\n hasStock\r\n} as const);\r\n\r\nexport const UPDATE_ALLOPTIONS = \"updateAllOptions\";\r\nexport const updateAllOptionsAction = (options: vehicleModel.IVehicleOptions[] | null) =>\r\n({\r\n type: UPDATE_ALLOPTIONS,\r\n options,\r\n} as const);\r\n\r\nexport const UPDATE_OPTION = \"updateOption\";\r\nexport const updateOptionAction = (option: vehicleModel.IVehicleOptions) =>\r\n({\r\n type: UPDATE_OPTION,\r\n option,\r\n} as const);\r\n\r\nexport const CLEAR_SELECTEDCONFIG = \"clearSelectedConfig\";\r\nexport const clearSelectedConfigAction = () =>\r\n({\r\n type: CLEAR_SELECTEDCONFIG,\r\n} as const);\r\n\r\nexport type SelectedVehicleActions = ReturnType\r\n | ReturnType\r\n | ReturnType\r\n | ReturnType\r\n | ReturnType | ReturnType\r\n | ReturnType;\r\nexport const initSelectedVehicle: selectedConfigModel.ISelectedVehicle = {\r\n VariantID: null,\r\n VariantName: null,\r\n VariantBasePrice: 0,\r\n ExteriorID: null,\r\n Exterior: null,\r\n ExteriorPrice: null,\r\n InteriorID: null,\r\n Interior: null,\r\n InteriorPrice: null,\r\n Options: null,\r\n Subtotal: 0,\r\n HasStock: null,\r\n}\r\n\r\nexport const selectedVehicleReducer = (\r\n state = initSelectedVehicle,\r\n action: SelectedVehicleActions,\r\n) => {\r\n switch (action.type) {\r\n case SET_DEFAULTVEHICLE: {\r\n return action.defaultVehicle;\r\n }\r\n case UPDATE_VARIANT: {\r\n \r\n let newState: selectedConfigModel.ISelectedVehicle = {\r\n ...initSelectedVehicle,\r\n VariantID: action.variantID,\r\n VariantName: action.variant,\r\n VariantBasePrice: action.variantBasePrice,\r\n };\r\n newState = calculateSubtotal(newState || initSelectedVehicle);\r\n return newState;\r\n }\r\n case UPDATE_EXTERIOR: {\r\n let newState: selectedConfigModel.ISelectedVehicle = {\r\n ...state,\r\n ExteriorID: action.exteriorID,\r\n Exterior: action.exterior,\r\n ExteriorPrice: action.exteriorPrice,\r\n };\r\n newState = calculateSubtotal(newState || initSelectedVehicle);\r\n return newState;\r\n }\r\n case UPDATE_INTERIOR: {\r\n let newState: selectedConfigModel.ISelectedVehicle = {\r\n ...state,\r\n InteriorID: action.interiorID,\r\n Interior: action.interior,\r\n InteriorPrice: action.interiorPrice,\r\n HasStock: action.hasStock\r\n };\r\n newState = calculateSubtotal(newState || initSelectedVehicle);\r\n return newState;\r\n }\r\n case UPDATE_ALLOPTIONS: {\r\n let newState: selectedConfigModel.ISelectedVehicle = {\r\n ...state,\r\n Options: action.options\r\n };\r\n newState = calculateSubtotal(newState || initSelectedVehicle);\r\n return newState;\r\n }\r\n case UPDATE_OPTION: {\r\n let options: vehicleModel.IVehicleOptions[] = state.Options || [];\r\n\r\n const index = options.findIndex((value: vehicleModel.IVehicleOptions) => value.YanaOptionID === action.option.YanaOptionID);\r\n if (index === -1) {\r\n options = [...options, action.option];\r\n }\r\n else {\r\n //if unselected public charge option, remove all charge options in the store\r\n if (action.option.OptionType == enumVehicleOptionType.Charge && action.option.ChargeType == enumChargeType.Public) {\r\n options = options.filter((value: vehicleModel.IVehicleOptions) => value?.OptionType != enumVehicleOptionType.Charge);\r\n }\r\n else {\r\n options = options.filter((value: vehicleModel.IVehicleOptions) => value?.YanaOptionID !== action.option.YanaOptionID);\r\n }\r\n }\r\n\r\n let newState: selectedConfigModel.ISelectedVehicle = {\r\n ...state,\r\n Options: options\r\n };\r\n\r\n newState = calculateSubtotal(newState || initSelectedVehicle);\r\n\r\n return newState;\r\n }\r\n case CLEAR_SELECTEDCONFIG: {\r\n return initSelectedVehicle;\r\n }\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nconst calculateSubtotal = (state: selectedConfigModel.ISelectedVehicle): selectedConfigModel.ISelectedVehicle => {\r\n let subtotal = 0;\r\n subtotal = (state.VariantBasePrice || 0) + (state.ExteriorPrice || 0) + (state.InteriorPrice || 0);\r\n if (state.Options != null) {\r\n state.Options.map((item: vehicleModel.IVehicleOptions) => {\r\n subtotal = subtotal + (item.OptionPrice || 0);\r\n //console.log(item);\r\n //console.log(subtotal);\r\n });\r\n }\r\n return { ...state, Subtotal: subtotal };\r\n \r\n}","import * as paymentOptionsModel from 'model/IPaymentOptions';\r\nimport * as rdEnum from 'helpers/enum';\r\n\r\nexport const UPDATE_SELECTEDPAYMENTOPTION = 'UpdateSelectedPaymentOption';\r\nexport const updateSelectedPaymentOptionAction = (selectedPaymentOption:string) =>\r\n({\r\n type: UPDATE_SELECTEDPAYMENTOPTION,\r\n selectedPaymentOption,\r\n} as const);\r\n\r\nexport const UPDATE_DRIVEAWAYCOST = 'UpdateDriveawayCost';\r\nexport const updateDriveawayCostAction = (\r\n driveAwayCost: paymentOptionsModel.IDriveAwayCost,\r\n driveAwayCostRequest: paymentOptionsModel.IDriveAwayRequest) =>\r\n({\r\n type: UPDATE_DRIVEAWAYCOST,\r\n driveAwayCost,\r\n driveAwayCostRequest\r\n} as const);\r\n\r\n\r\n\r\nexport const UPDATE_FINANCE = 'UpdateFinance';\r\nexport const updateFinanceAction = (finance: paymentOptionsModel.IFinance) =>\r\n({\r\n type: UPDATE_FINANCE,\r\n finance,\r\n} as const);\r\n\r\nexport const CLEAR_PAYMENTOPTIONS = 'ClearPaymentOptions';\r\nexport const clearPaymentOptionsAction = () =>\r\n({\r\n type: CLEAR_PAYMENTOPTIONS,\r\n} as const);\r\n\r\nexport type PaymentOptionsActions = ReturnType\r\n | ReturnType\r\n | ReturnType\r\n | ReturnType;\r\n\r\nexport const initPaymentOptions: paymentOptionsModel.IPaymentOptions = {\r\n PaymentOption: rdEnum.enumPaymentOptions.Cash,\r\n DriveAwayCost: null,\r\n DriveAwayCostRequest: null,\r\n Finance: null\r\n}\r\n\r\n\r\nexport const paymentOptionsReducer = (\r\n state = initPaymentOptions,\r\n action: PaymentOptionsActions,\r\n) => {\r\n switch (action.type) {\r\n case UPDATE_SELECTEDPAYMENTOPTION: {\r\n return {\r\n ...state,\r\n PaymentOption: action.selectedPaymentOption\r\n }\r\n }\r\n case UPDATE_DRIVEAWAYCOST: {\r\n //console.log(\"UPDATE_DRIVEAWAYCOST\");\r\n //console.log(action)\r\n return {\r\n ...state,\r\n DriveAwayCost: action.driveAwayCost,\r\n DriveAwayCostRequest: action.driveAwayCostRequest //store request data to prevent multiple call\r\n }\r\n }\r\n case UPDATE_FINANCE: {\r\n //console.log(\"UPDATE_FINANCE\");\r\n //console.log(action)\r\n return {\r\n ...state,\r\n Finance: action.finance\r\n }\r\n }\r\n case CLEAR_PAYMENTOPTIONS: {\r\n //console.log(\"CLEAR_PAYMENTOPTIONS\");\r\n return initPaymentOptions;\r\n }\r\n default:\r\n return state;\r\n }\r\n};","///Temporary save customer details to store\r\n///Show data after login redirection\r\nimport * as checkoutViewModel from 'model/ICheckoutWaitlistViewModel';\r\n\r\n\r\nexport const SET_CHECKOUTCUSTOMERDETAILS = 'setCheckoutCustomerDetails';\r\nexport const setCheckoutCustomerDetailsAction = (customerDetails: checkoutViewModel.ICheckoutWaitlistProps | null) =>\r\n({\r\n type: SET_CHECKOUTCUSTOMERDETAILS,\r\n customerDetails,\r\n} as const);\r\n\r\nexport const CLEAR_CHECKOUTCUSTOMERDETAILS = 'clearCheckoutCustomerDetails';\r\nexport const clearCheckoutCustomerDetailsAction = () =>\r\n({\r\n type: CLEAR_CHECKOUTCUSTOMERDETAILS\r\n} as const);\r\n\r\nexport type CheckoutCustomerDetailsActions =\r\n ReturnType\r\n | ReturnType;\r\n\r\nexport const checkoutCustomerReducer = (\r\n state: checkoutViewModel.ICheckoutWaitlistProps | null = null,\r\n action: CheckoutCustomerDetailsActions\r\n): checkoutViewModel.ICheckoutWaitlistProps | null => {\r\n switch (action.type) {\r\n case CLEAR_CHECKOUTCUSTOMERDETAILS: {\r\n return null;\r\n } \r\n case SET_CHECKOUTCUSTOMERDETAILS: {\r\n return action.customerDetails;\r\n }\r\n }\r\n return state;\r\n};","///used in my order details, \"provide your details\" popup\r\n\r\nimport * as orderCustomerDetails from 'model/IOrderCustomerDetails';\r\n\r\nexport const SET_ORDERCUSTOMERDETAILS = 'setOrderCustomerDetails';\r\nexport const setOrderCustomerDetailsAction = (customerDetails: orderCustomerDetails.IOrderCustomerDetails | null) =>\r\n({\r\n type: SET_ORDERCUSTOMERDETAILS,\r\n customerDetails,\r\n} as const);\r\n\r\nexport const CLEAR_ORDERCUSTOMERDETAILS = 'clearOrderCustomerDetails';\r\nexport const clearOrderCustomerDetailsAction = () =>\r\n({\r\n type: CLEAR_ORDERCUSTOMERDETAILS\r\n} as const);\r\n\r\nexport type OrderCustomerDetailsActions =\r\n ReturnType\r\n | ReturnType;\r\n\r\nexport const orderCustomerDetailsReducer = (\r\n state: orderCustomerDetails.IOrderCustomerDetails | null = null,\r\n action: OrderCustomerDetailsActions\r\n): orderCustomerDetails.IOrderCustomerDetails | null => {\r\n switch (action.type) {\r\n case CLEAR_ORDERCUSTOMERDETAILS: {\r\n return null;\r\n }\r\n case SET_ORDERCUSTOMERDETAILS: {\r\n return action.customerDetails;\r\n }\r\n }\r\n return state;\r\n};","//used by components in order details page\r\nimport * as orderModel from 'model/IOrder';\r\n\r\nexport const SET_ORDERDETAILS = 'SetOrderDetails';\r\nexport const setOrderDetailsAction = (orderDetails: orderModel.IOrderRequest | null) =>\r\n({\r\n type: SET_ORDERDETAILS,\r\n orderDetails,\r\n} as const);\r\n\r\nexport const CLEAR_ORDERDETAILS = 'clearOrderDetails';\r\nexport const clearOrderDetailsAction = () =>\r\n({\r\n type: CLEAR_ORDERDETAILS\r\n} as const);\r\n\r\nexport type OrderDetailsActions =\r\n ReturnType\r\n | ReturnType;\r\n\r\nexport const orderDetailsReducer = (\r\n state: orderModel.IOrderRequest | null = null,\r\n action: OrderDetailsActions\r\n): orderModel.IOrderRequest | null => {\r\n switch (action.type) {\r\n case CLEAR_ORDERDETAILS: {\r\n return null;\r\n }\r\n case SET_ORDERDETAILS: {\r\n return action.orderDetails;\r\n }\r\n }\r\n return state;\r\n};","//used by components in order schedule delivery page\r\nimport * as scheduleDeliveryModel from 'model/IOrderScheduleDelivery';\r\nimport * as scheduleDeliveryHelper from 'businessHelpers/OrderScheduleDeliveryHelper';\r\n\r\nexport const SET_ORDERSCHEDULEDELIVERY = 'SetOrderScheduleDelivery';\r\nexport const setOrderScheduleDeliveryAction = (scheduleDelivery: scheduleDeliveryModel.IOrderScheduleDelivery) =>\r\n({\r\n type: SET_ORDERSCHEDULEDELIVERY,\r\n scheduleDelivery,\r\n} as const);\r\n\r\nexport const SET_SCHEDULEDATE = 'SetScheduleDate';\r\nexport const setScheduleDateAction = (date: Date | undefined, formatDate: string | null) =>\r\n({\r\n type: SET_SCHEDULEDATE,\r\n date,\r\n formatDate\r\n} as const);\r\n\r\n\r\nexport const SET_SCHEDULETIME = 'SetScheduleTime';\r\nexport const setScheduleTimeAction = (time: string | null) =>\r\n({\r\n type: SET_SCHEDULETIME,\r\n time\r\n} as const);\r\n\r\n\r\nexport const CLEAR_ORDERSCHEDULEDELIVERY = \"ClearOrderScheduleDelivery\";\r\nexport const clearOrderScheduleDelivery = () =>\r\n({\r\n type: CLEAR_ORDERSCHEDULEDELIVERY\r\n} as const);\r\n\r\nexport type OrderScheduleDeliveryActions =\r\n ReturnType\r\n | ReturnType\r\n | ReturnType\r\n | ReturnType;\r\n\r\nexport const orderScheduleDeliveryReducer = (\r\n state: scheduleDeliveryModel.IOrderScheduleDelivery = scheduleDeliveryHelper.getInitScheduleDelivery(),\r\n action: OrderScheduleDeliveryActions\r\n): scheduleDeliveryModel.IOrderScheduleDelivery => {\r\n switch (action.type) {\r\n case CLEAR_ORDERSCHEDULEDELIVERY: {\r\n return scheduleDeliveryHelper.getInitScheduleDelivery();\r\n }\r\n case SET_ORDERSCHEDULEDELIVERY: {\r\n return action.scheduleDelivery;\r\n }\r\n case SET_SCHEDULEDATE: {\r\n return {\r\n ...state,\r\n DeliveryDate: action.date,\r\n DeliveryFormatDate: action.formatDate,\r\n };\r\n }\r\n case SET_SCHEDULETIME: {\r\n return {\r\n ...state,\r\n DeliveryTime: action.time\r\n };\r\n }\r\n }\r\n return state;\r\n};","import * as vehicleModel from 'model/IVehicle';\r\nimport * as vehicleHelper from 'businessHelpers/VehicleHelper';\r\n\r\nexport const UPDATE_VARIANT = 'UpdateVariant';\r\nexport const updateVariantAction = (variantList: vehicleModel.IVariant[],\r\n selectedVariant: vehicleModel.IVariant | null) =>\r\n({\r\n type: UPDATE_VARIANT,\r\n variantList,\r\n selectedVariant\r\n} as const);\r\n\r\nexport const UPDATE_SELECTEDVARIANT = 'UpdateSelectedVariant';\r\nexport const updateSelectedVariantAction = (selectedVariant: vehicleModel.IVariant | null) =>\r\n({\r\n type: UPDATE_SELECTEDVARIANT,\r\n selectedVariant\r\n} as const);\r\n\r\n\r\nexport const UPDATE_EXTERIOR = 'UpdateExterior';\r\nexport const updateExteriorAction = (exteriorList: vehicleModel.IExterior[],\r\n selectedExterior: vehicleModel.IExterior | null) =>\r\n({\r\n type: UPDATE_EXTERIOR,\r\n exteriorList,\r\n selectedExterior\r\n} as const);\r\n\r\n\r\nexport const UPDATE_SELECTEDEXTERIOR = 'UpdateSelectedExterior';\r\nexport const updateSelectedExteriorAction = (selectedExterior: vehicleModel.IExterior | null) =>\r\n({\r\n type: UPDATE_SELECTEDEXTERIOR,\r\n selectedExterior\r\n} as const);\r\n\r\n\r\nexport const UPDATE_INTERIOR = 'UpdateInterior';\r\nexport const updateInteriorAction = (interiorList: vehicleModel.IInterior[],\r\n selectedInterior: vehicleModel.IInterior | null) =>\r\n({\r\n type: UPDATE_INTERIOR,\r\n interiorList,\r\n selectedInterior\r\n} as const);\r\nexport const UPDATE_SELECTEDINTERIOR = 'UpdateSelectedInterior';\r\nexport const updateSelectedInteriorAction = (selectedInterior: vehicleModel.IInterior | null) =>\r\n({\r\n type: UPDATE_SELECTEDINTERIOR,\r\n selectedInterior\r\n} as const);\r\n\r\n\r\nexport const UPDATE_OPTIONS = 'UpdateOptions';\r\nexport const updateOptionsAction = (\r\n accessories: vehicleModel.IVehicleOptions[],\r\n chargingList: vehicleModel.IVehicleOptions[],\r\n) =>\r\n({\r\n type: UPDATE_OPTIONS,\r\n accessories,\r\n chargingList\r\n} as const);\r\n\r\n//export const SET_LOADING = 'Set_Loading';\r\n//export const setLoadingAction = (loading: boolean) =>\r\n//({\r\n// type: SET_LOADING,\r\n// loading\r\n//} as const);\r\n\r\nexport const CLEAR_VEHICLE = 'Clear_Vehicle';\r\nexport const clearVehicleAction = () =>\r\n({\r\n type: CLEAR_VEHICLE,\r\n} as const);\r\n\r\nexport type VehicleActions = ReturnType\r\n | ReturnType\r\n | ReturnType\r\n | ReturnType\r\n | ReturnType\r\n | ReturnType\r\n | ReturnType\r\n | ReturnType;\r\n\r\nexport const vehicleReducer = (\r\n state = vehicleHelper.getInitVehicleStore(),\r\n action: VehicleActions,\r\n) => {\r\n switch (action.type) {\r\n case UPDATE_VARIANT: {\r\n return {\r\n ...state,\r\n VariantList: action.variantList,\r\n SelectedVariant: action.selectedVariant,\r\n //Loading: true,\r\n }\r\n }\r\n case UPDATE_SELECTEDVARIANT: {\r\n return {\r\n ...state,\r\n SelectedVariant: action.selectedVariant,\r\n }\r\n }\r\n\r\n case UPDATE_EXTERIOR: {\r\n return {\r\n ...state,\r\n ExteriorList: action.exteriorList,\r\n SelectedExterior: action.selectedExterior,\r\n }\r\n }\r\n case UPDATE_SELECTEDEXTERIOR: {\r\n return {\r\n ...state,\r\n SelectedExterior: action.selectedExterior,\r\n }\r\n }\r\n\r\n case UPDATE_INTERIOR: {\r\n return {\r\n ...state,\r\n InteriorList: action.interiorList,\r\n SelectedInterior: action.selectedInterior,\r\n }\r\n }\r\n case UPDATE_SELECTEDINTERIOR: {\r\n return {\r\n ...state,\r\n SelectedInterior: action.selectedInterior,\r\n }\r\n }\r\n\r\n case UPDATE_OPTIONS: {\r\n return {\r\n ...state,\r\n Accessories: action.accessories,\r\n Charging: action.chargingList,\r\n //Loading: false,\r\n }\r\n }\r\n\r\n //case SET_LOADING: {\r\n // return {\r\n // ...state,\r\n // Loading: action.loading,\r\n // }\r\n //}\r\n\r\n case CLEAR_VEHICLE: {\r\n return vehicleHelper.getInitVehicleStore();\r\n }\r\n\r\n default:\r\n return state;\r\n }\r\n};","//provide data to this store for below scenario\r\n//1. when user click \"Order\" button on Inventory page. The link is http://localhost:3000/cadillac/?selectedVariant=LYRIQ%20SPORT%20AWD&selectedExterior=Black&selectedInterior=White\r\n//2. when user is come from interest link in the email.\r\nimport * as defaultConfigModel from 'model/IDefaultConfig';\r\nimport * as defaultConfigHelper from 'businessHelpers/DefaultConfigHelper';\r\n\r\nexport const SET_DEFAULTCONFIG = 'setDefaultConfig';\r\nexport const setDefaultConfigAction = (defaultConfig: defaultConfigModel.IDefaultConfig) =>\r\n({\r\n type: SET_DEFAULTCONFIG,\r\n defaultConfig,\r\n} as const);\r\n\r\nexport const SET_DEFAULTCONFIGLOADED = 'setDefaultConfigLoaded';\r\nexport const setDefaultConfigLoadedAction = (loaded: boolean | null) =>\r\n({\r\n type: SET_DEFAULTCONFIGLOADED,\r\n loaded,\r\n} as const);\r\n\r\nexport type DefaultConfigActions = ReturnType\r\n | ReturnType;\r\n\r\n\r\nexport const defaultConfigReducer = (\r\n state = defaultConfigHelper.getInitDefaultConfig(),\r\n action: DefaultConfigActions,\r\n) => {\r\n switch (action.type) {\r\n case SET_DEFAULTCONFIG: {\r\n return action.defaultConfig;\r\n }\r\n\r\n case SET_DEFAULTCONFIGLOADED: {\r\n return {\r\n ...state,\r\n Loaded: action.loaded\r\n }\r\n }\r\n\r\n default:\r\n return state;\r\n }\r\n};","import * as countryStateModel from \"model/ICountryStateList\";\r\n\r\nexport const SET_COUNTRYSTATES = 'SET_COUNTRYSTATES';\r\nexport const setCountryStatesAction = (countryStates: countryStateModel.ICountryStates[]) =>\r\n({\r\n type: SET_COUNTRYSTATES,\r\n countryStates,\r\n} as const);\r\n\r\n\r\ntype CountryStatesActions =\r\n | ReturnType;\r\n\r\nexport const countryStatesReducer = (\r\n state = null,\r\n action: CountryStatesActions,\r\n) => {\r\n switch (action.type) {\r\n case SET_COUNTRYSTATES: {\r\n return action.countryStates;\r\n }\r\n }\r\n\r\n return state;\r\n};\r\n","export const SET_LINKSOURCE = 'SET_LINKSOURCE';\r\nexport const setLinkSourceAction = (source: any) =>\r\n({\r\n type: SET_LINKSOURCE,\r\n source,\r\n} as const);\r\n\r\n\r\ntype LinkSourceActions =\r\n | ReturnType;\r\n\r\nexport const linkSourceReducer = (\r\n state = null,\r\n action: LinkSourceActions,\r\n) => {\r\n switch (action.type) {\r\n case SET_LINKSOURCE: {\r\n return action.source;\r\n }\r\n }\r\n\r\n return state;\r\n};\r\n","export const SET_ORDERDETAILPAGEDATAVERSION = 'Set_OrderDetailPageDataVersion';\r\nexport const setOrderDetailPageDataVersionAction = () =>\r\n({\r\n type: SET_ORDERDETAILPAGEDATAVERSION,\r\n} as const);\r\n\r\nexport const Clear_ORDERDETAILPAGEDATAVERSION = 'Clear_OrderDetailPageDataVersion';\r\nexport const clearOrderDetailPageDataVersionAction = () =>\r\n({\r\n type: Clear_ORDERDETAILPAGEDATAVERSION,\r\n} as const);\r\n\r\ntype OrderDetailPageVersionActions =\r\n | ReturnType\r\n | ReturnType;\r\n\r\nexport const orderDetailPageDataVersionReducer = (\r\n state = 0,\r\n action: OrderDetailPageVersionActions,\r\n) => {\r\n switch (action.type) {\r\n case SET_ORDERDETAILPAGEDATAVERSION: {\r\n return state + 1;\r\n }\r\n case Clear_ORDERDETAILPAGEDATAVERSION: {\r\n return 0;\r\n }\r\n }\r\n\r\n return state;\r\n};\r\n","import * as docModel from 'model/IDocuments';\r\n\r\nexport const SET_ORDERDOCUMENTS = 'setOrderDocuments';\r\nexport const setOrderDocumentsAction = (docs: docModel.IDocumentItem[] | null) =>\r\n({\r\n type: SET_ORDERDOCUMENTS,\r\n docs,\r\n} as const);\r\n\r\nexport const CLEAR_ORDERDOCUMENTS = 'clearOrderDocuments';\r\nexport const clearOrderDocumentsAction = () =>\r\n({\r\n type: CLEAR_ORDERDOCUMENTS\r\n} as const);\r\n\r\nexport type OrderDocumentsActions =\r\n ReturnType\r\n | ReturnType;\r\n\r\nexport const orderDocuemntsReducer = (\r\n state: docModel.IDocumentItem[] | null = null,\r\n action: OrderDocumentsActions\r\n): docModel.IDocumentItem[] | null => {\r\n switch (action.type) {\r\n case CLEAR_ORDERDOCUMENTS: {\r\n return null;\r\n }\r\n case SET_ORDERDOCUMENTS: {\r\n return action.docs;\r\n }\r\n //default:\r\n // return state;\r\n }\r\n return state;\r\n};","import { includes, isNil } from 'lodash';\r\n\r\nexport const getSessionStorageKey = (key: any) =>\r\n `${key}`;\r\n\r\nexport const loadState = () => {\r\n try {\r\n const serializedState = localStorage.getItem(getSessionStorageKey('state'));\r\n if (serializedState === null) {\r\n return undefined;\r\n }\r\n return JSON.parse(serializedState);\r\n } catch (err) {\r\n return undefined;\r\n }\r\n};\r\n\r\nexport const saveState = (state: any) => {\r\n try {\r\n const serializedState = JSON.stringify(state);\r\n localStorage.setItem(getSessionStorageKey('state'), serializedState);\r\n } catch (err) {\r\n // ignore write error\r\n //throw new Error(\"Can't save changes in local storage\");\r\n }\r\n};\r\n\r\nexport const clearStorageOnDeployment = (\r\n newVersion: number,\r\n) => {\r\n let storeData = loadState();\r\n console.log(storeData);\r\n\r\n //let oldVersions = localStorage.getItem(getSessionStorageKey('storageVersion'));\r\n //if (isNil(oldVersions)) {\r\n // localStorage.clear();\r\n // localStorage.setItem(getSessionStorageKey('storageVersion'), newVersion.toString());\r\n //}\r\n //else {\r\n // let numOlderVersion = parseInt(oldVersions) || 0;\r\n // if (numOlderVersion < newVersion) {\r\n // localStorage.clear();\r\n // localStorage.setItem(getSessionStorageKey('storageVersion'), newVersion.toString());\r\n // }\r\n // else {\r\n // let storeData = loadState();\r\n // console.log(storeData);\r\n\r\n // }\r\n //}\r\n};\r\n\r\n","import { IScrollBarDisplay } from \"helpers/interface\";\r\n\r\nexport const SET_SCROLLBAR_DISPLAY = 'SetScrollbarDisplay';\r\nexport const checkIsShowScrollBar = (isShowScrollBar: boolean) =>\r\n ({\r\n type: SET_SCROLLBAR_DISPLAY,\r\n isShowScrollBar\r\n } as const);\r\n \r\n export type IsShowScrollBarActions = ReturnType;\r\n export const initIsShowScrollBarState: IScrollBarDisplay = {\r\n isShowScrollBar: true\r\n }\r\n \r\n export const isShowScrollBarReducer = (\r\n state = initIsShowScrollBarState,\r\n action: IsShowScrollBarActions,\r\n ) => {\r\n switch (action.type) {\r\n case SET_SCROLLBAR_DISPLAY: {\r\n return {\r\n ...state,\r\n isShowScrollBar: action.isShowScrollBar,\r\n };\r\n }\r\n default:\r\n return state;\r\n }\r\n };","//This stores Main Page's page number, page 1 is variant, exterior, interior etc. While page 2 is checkout pagement page\r\nimport { IMainPageNumber } from \"helpers/interface\";\r\n\r\nexport const SET_MAIN_PAGE_NUMBER = 'showMainPageNumber';\r\nexport const setMainPageNumber = (mainPageNumber: number) =>\r\n({\r\n type: SET_MAIN_PAGE_NUMBER,\r\n mainPageNumber\r\n} as const);\r\n\r\nexport type MainPageNumberActions = ReturnType;\r\nexport const initMMainPageNumberState: IMainPageNumber = {\r\n mainPageNumber: 0\r\n}\r\n\r\nexport const mainPageNumberReducer = (\r\n state = initMMainPageNumberState,\r\n action: MainPageNumberActions,\r\n) => {\r\n switch (action.type) {\r\n case SET_MAIN_PAGE_NUMBER: {\r\n return {\r\n ...state,\r\n mainPageNumber: action.mainPageNumber,\r\n };\r\n }\r\n default:\r\n return state;\r\n }\r\n};\r\n","import { IGlobalDropdown } from \"helpers/interface\";\r\n\r\nexport const SET_GLOBAL_DROPDOWN = 'setGlobalDropdown';\r\nexport const setGlobalDropdown = (vehicles: boolean, shop: boolean) =>\r\n({\r\n type: SET_GLOBAL_DROPDOWN,\r\n vehicles,\r\n shop,\r\n} as const);\r\n\r\nexport type GlobalDropdownActions = ReturnType;\r\nexport const initGlobalDropdownState: IGlobalDropdown = {\r\n vehicles: false,\r\n shop: false\r\n}\r\n\r\nexport const globalDropdownReducer = (\r\n state = initGlobalDropdownState,\r\n action: GlobalDropdownActions,\r\n) => {\r\n switch (action.type) {\r\n case SET_GLOBAL_DROPDOWN: {\r\n return {\r\n ...state,\r\n vehicles: action.vehicles,\r\n shop: action.shop\r\n };\r\n }\r\n default:\r\n return state;\r\n }\r\n};","import { Store, createStore, combineReducers, applyMiddleware, compose, AnyAction } from 'redux';\r\nimport { sessionReducer, countryStateReducer } from \"stores/Session\";\r\nimport { customerTypeReducer } from \"stores/CustomerType\";\r\nimport { scrollPositionReducer } from 'stores/ScrollPosition';\r\nimport { mainSectionReducer } from 'stores/ScrollPosition';\r\nimport { mainRightPageReducer } from 'stores/MainRightPage'\r\nimport { selectedDeliveryReducer } from 'stores/UserSelectedDelivery';\r\nimport { selectedVehicleReducer } from 'stores/UserSelectedVehicleConfig';\r\nimport { paymentOptionsReducer } from 'stores/PaymentOptions';\r\nimport { checkoutCustomerReducer } from 'stores/CheckoutCustomer';\r\nimport { orderCustomerDetailsReducer } from 'stores/OrderCustomerDetails';\r\nimport { orderDetailsReducer } from 'stores/OrderDetails';\r\nimport { orderScheduleDeliveryReducer } from 'stores/OrderScheduleDelivery';\r\nimport { vehicleReducer } from 'stores/Vehicle';\r\nimport { defaultConfigReducer } from 'stores/DefaultConfig';\r\nimport { countryStatesReducer } from 'stores/CountryStateList';\r\nimport { linkSourceReducer } from 'stores/LinkSource';\r\nimport { orderDetailPageDataVersionReducer } from 'stores/OrderDetailPageDataVersion';\r\nimport { orderDocuemntsReducer } from 'stores/OrderDocuments';\r\nimport { IAppState } from 'model/IAppState';\r\nimport * as docModel from 'model/IDocuments';\r\n\r\nimport {\r\n loadState,\r\n saveState,\r\n clearStorageOnDeployment,\r\n} from 'services/localStorage';\r\n\r\n\r\nimport _ from 'lodash';\r\nimport { isShowScrollBarReducer } from './ScrollBarDisplay';\r\nimport { mainPageNumberReducer } from './MainPageNumber';\r\nimport { globalDropdownReducer } from './GlobalDropdown';\r\n\r\n\r\n//store interface\r\nconst appReducer = combineReducers({\r\n session: sessionReducer,\r\n countryInfo: countryStateReducer,\r\n scrollPosition: scrollPositionReducer,\r\n isShowScrollBar: isShowScrollBarReducer,\r\n mainSection: mainSectionReducer,\r\n mainPageNumber: mainPageNumberReducer,\r\n customerType: customerTypeReducer,\r\n mainRightPage: mainRightPageReducer,\r\n globalDropdown: globalDropdownReducer,\r\n selectedDelivery: selectedDeliveryReducer,\r\n selectedVehicle: selectedVehicleReducer,\r\n paymentOptions: paymentOptionsReducer,\r\n checkoutCustomer: checkoutCustomerReducer,\r\n orderCustomerDetails: orderCustomerDetailsReducer,\r\n orderDetails: orderDetailsReducer,\r\n orderScheduleDelivery: orderScheduleDeliveryReducer,\r\n orderDocuments: orderDocuemntsReducer,\r\n vehicle: vehicleReducer,\r\n defautConfig: defaultConfigReducer,\r\n countryStateList: countryStatesReducer,\r\n linkSource: linkSourceReducer,\r\n orderDetailDataVersion: orderDetailPageDataVersionReducer,\r\n});\r\n\r\nexport const LOGOUT_CLEAR = 'logout_clear';\r\nexport const logoutClearAction = (updatedState: IAppState) =>\r\n({\r\n type: LOGOUT_CLEAR,\r\n updatedState\r\n} as const);\r\ntype ClearActions = ReturnType;\r\nexport const rootReducer = (\r\n state: any,\r\n action: AnyAction | ClearActions\r\n) => {\r\n if (action.type === LOGOUT_CLEAR) {\r\n return appReducer(action.updatedState, { type: undefined });\r\n }\r\n\r\n return appReducer(state, action);\r\n};\r\n\r\nexport function configureStore(): Store {\r\n // if no localStorage\r\n //console.log(\"store\")\r\n //clearStorageOnDeployment(5);\r\n\r\n const url = window.location.href;\r\n if (url.includes(\"/inventory\") || url.includes(\"/test-drive\")\r\n || url.includes(\"/my-orders\") || url.includes(\"/profile\") || url.includes(\"/privacy\") || url.includes(\"/auth\")) {\r\n clearStorageOnDeployment(6);\r\n\r\n localStorage.setItem(\"paymentID\", \"\");\r\n localStorage.setItem(\"order\", \"\");\r\n localStorage.setItem(\"billing\", \"\");\r\n }\r\n else {\r\n localStorage.clear();\r\n }\r\n\r\n \r\n\r\n const persistedState = loadState();\r\n const store = createStore(rootReducer,\r\n persistedState,\r\n (window as any).__REDUX_DEVTOOLS_EXTENSION__ && (window as any).__REDUX_DEVTOOLS_EXTENSION__());\r\n\r\n store.subscribe(\r\n _.throttle(() => {\r\n saveState(store.getState());\r\n }, 100),\r\n );\r\n\r\n return store;\r\n}\r\n","import * as selectedConfigModel from 'model/IUserSelectedConfig';\r\n\r\nexport const getInitSelectedDelivery = (): selectedConfigModel.ISelectedDelivery => {\r\n let initSelectedDelivery: selectedConfigModel.ISelectedDelivery = {\r\n Country: null,\r\n State: null,\r\n SelectedPickupLocation: null,\r\n SelectedDeliveryOption: null,\r\n SelectedDeliveryFullAddress: null,\r\n SelectedDeliveryPostcode: null,\r\n SelectedDeliveryState: null,\r\n SelectedDeliverySuburb: null,\r\n PrimaryAddress: null,\r\n PrimaryPostcode: null,\r\n PrimarySuburb: null,\r\n PrimaryState: null,\r\n InvalidPrimaryAddress: null,\r\n DeliveryAvailable: null,\r\n DeliveryPrice: null,\r\n DeliveryPriceErrorCode: null,\r\n DeliveryDistance: null,\r\n PickupLocationName: null,\r\n };\r\n\r\n return initSelectedDelivery;\r\n}\r\n\r\n","import * as scheduleDeliveryModel from 'model/IOrderScheduleDelivery';\r\nexport const getInitScheduleDelivery = (): scheduleDeliveryModel.IOrderScheduleDelivery => {\r\n let init: scheduleDeliveryModel.IOrderScheduleDelivery = {\r\n YanaOrderID: null,\r\n YanaOrderNo: null,\r\n YanaCustomerID: null,\r\n YanaCustomerNo: null,\r\n DeliveryLocationState: null,\r\n DeliveryLocationSuburb: null,\r\n DeliveryLocationPostcode: null,\r\n DeliveryLocationAddress: null,\r\n DeliveryOption: null,\r\n DeliveryDate: undefined,\r\n DeliveryFormatDate: null,\r\n DeliveryTime: null,\r\n Country: null,\r\n PickupLocationName: null,\r\n Available: null\r\n };\r\n\r\n return init;\r\n}","import * as variantModel from 'model/IVehicle';\r\n\r\n\r\nexport const getInitVehicleStore = (): variantModel.IVehicleStore => {\r\n let init: variantModel.IVehicleStore = {\r\n //Loading: false,\r\n VariantList: [],\r\n SelectedVariant: null,\r\n ExteriorList: [],\r\n SelectedExterior: null,\r\n InteriorList: null,\r\n SelectedInterior: null,\r\n Accessories: [],\r\n Charging: [],\r\n };\r\n\r\n return init;\r\n}\r\n\r\n\r\nexport const getInitExterior = (): variantModel.IExterior => {\r\n let init: variantModel.IExterior = {\r\n Country: null,\r\n VariantID: null,\r\n VariantName: null,\r\n ExteriorID: null,\r\n ExteriorColorName: null,\r\n ExteriorColorDescTitle: null,\r\n ExteriorColorDesc: null,\r\n ExteriorPrice: null,\r\n ExteriorPicture: [],\r\n ExteriorPictureMobile: [],\r\n ExteriorFilterImage: null,\r\n ExteriorFilterMobile: null,\r\n IsDefault: null,\r\n HasStock: null,\r\n ExteriorOrderingNo: 0,\r\n };\r\n\r\n return init;\r\n}","import * as defaultConfigModel from 'model/IDefaultConfig';\r\n\r\nexport const getInitDefaultConfig = (): defaultConfigModel.IDefaultConfig => {\r\n let init: defaultConfigModel.IDefaultConfig = {\r\n Country: null,\r\n State: null,\r\n VariantName: null,\r\n ExteriorName: null,\r\n InteriorName: null,\r\n Options: [],\r\n Loaded: false,\r\n LinkKey: null,\r\n ExpiryDateText: null,\r\n };\r\n return init;\r\n}","import moment from 'moment';\r\nimport { isNil } from 'lodash';\r\nimport { ICodeName } from 'model/ICommon';\r\nimport { enumCountryCode, enumRDErrorCode } from 'helpers/enum';\r\n\r\nexport const getBackendOrigin = () => {\r\n return `${process.env.REACT_APP_BACKEND_ORIGIN}`;\r\n};\r\n\r\nexport const getBackendVirtualDir = () => {\r\n return process.env.REACT_APP_VIRTUAL_DIR_BACKEND;\r\n};\r\n\r\nexport const getBackendPath = () => {\r\n return `${process.env.REACT_APP_BACKEND_ORIGIN}/${process.env.REACT_APP_VIRTUAL_DIR_BACKEND}`;\r\n};\r\n\r\nexport const getFrontendOrigin = () => {\r\n return `${process.env.REACT_APP_FRONTEND_ORIGIN}`;\r\n};\r\n\r\nexport const getFrontendUrl = () => {\r\n let virtualDir = process.env.REACT_APP_VIRTUAL_DIR_FRONTEND;\r\n if (virtualDir != \"\") {\r\n return `/${process.env.REACT_APP_VIRTUAL_DIR_FRONTEND}`;\r\n //return `${process.env.REACT_APP_FRONTEND_ORIGIN}/${process.env.REACT_APP_CMS_VIRTUAL_DIR}`;\r\n }\r\n else {\r\n return ``;\r\n }\r\n};\r\n\r\n\r\nexport const getFrontendUrlWithSlash = () => {\r\n let virtualDir = process.env.REACT_APP_VIRTUAL_DIR_FRONTEND;\r\n if (virtualDir != \"\") {\r\n return `/${process.env.REACT_APP_VIRTUAL_DIR_FRONTEND}`;\r\n }\r\n else {\r\n return `/`;\r\n }\r\n};\r\n\r\n\r\n\r\n\r\nexport const getCMSAssets = () => {\r\n let virtualDir = process.env.REACT_APP_CMS_VIRTUAL_DIR;\r\n if (virtualDir != \"\") {\r\n return `${process.env.REACT_APP_FRONTEND_ORIGIN}/${process.env.REACT_APP_CMS_VIRTUAL_DIR}/cms`;\r\n }\r\n else {\r\n return `${process.env.REACT_APP_FRONTEND_ORIGIN}/cms`;\r\n }\r\n};\r\n\r\n//export const getOnlineCatalogueName = () => {\r\n// return `${process.env.REACT_APP_ONLINE_CATALOGUE_NAME}`;\r\n//};\r\n\r\n//export const getImgURL = () => {\r\n// return `${process.env.REACT_APP_IMAGE_URL}`;\r\n//};\r\n\r\n\r\n//export const getPMPURL = () => {\r\n// return `${process.env.REACT_APP_PMP_URL}`;\r\n//};\r\n\r\n//export const getPublicURL = () => {\r\n// return `${process.env.PUBLIC_URL}`;\r\n//};\r\n\r\n//export const getLanguageBackendPath = () => {\r\n// return `${process.env.REACT_APP_LANGUAGE_API}`;\r\n//};\r\n\r\n//export const getLanguage = () => {\r\n// return `${process.env.REACT_APP_LANGUAGE}`;\r\n//};\r\n\r\n\r\nexport const getCountry = () => {\r\n return `${process.env.REACT_APP_COUNTRY}`;\r\n};\r\n\r\n\r\nexport const getGoogleMapAPIKey = () => {\r\n return `${process.env.REACT_APP_GOOGLEMAP_APIKEY}`;\r\n};\r\n\r\nexport const getRDGoogleAnalyticsMeasureID = () => {\r\n return `${process.env.REACT_APP_RD_GOOGLE_ANALYTICS}`;\r\n};\r\n\r\n\r\nexport const getAdyenEnv = (country: any) => {\r\n let env = `${process.env.REACT_APP_AdyenEnv}`;\r\n if (env == \"test\") {\r\n return env;\r\n }\r\n if (country == \"NZ\") {\r\n return \"live-au\";\r\n }\r\n return \"live-au\";\r\n};\r\n\r\nexport const getAdyenKey = (country: string) => {\r\n if (country == enumCountryCode.Australia) {\r\n return `${process.env.REACT_APP_Adyen}`;\r\n }\r\n else if (country == enumCountryCode.NewZealand) {\r\n return `${process.env.REACT_APP_AdyenNZ}`;\r\n }\r\n};\r\n\r\nexport const getShareLink = (webUniqueKey: string) => {\r\n return `${process.env.REACT_APP_ShareLink}${webUniqueKey}`;\r\n};\r\n\r\nexport const checkBookingTimeout = (bookingStoreLastUpdateTime: Date | null) => {\r\n if (!isNil(bookingStoreLastUpdateTime) && moment(bookingStoreLastUpdateTime).add(30, \"minutes\") < moment(new Date())) {\r\n return true;\r\n }\r\n return false;\r\n}\r\n\r\nexport const getImageFileNameByID2 = (imageList: any, id2: string) => {\r\n if (!isNil(imageList)) {\r\n let findImage = imageList.find((m: any) => m.id2 == id2);\r\n if (!isNil(findImage)) {\r\n return findImage.fileName\r\n }\r\n }\r\n return null;\r\n}\r\n\r\nexport const getImageLinkByID2 = (screenName: string, imageList: any, id2: string) => {\r\n\r\n return `${getCMSAssets()}/${screenName}/${getImageFileNameByID2(imageList, id2)}`;\r\n}\r\n\r\nexport const getMobileImageLinkByID2 = (screenName: string, imageList: any, id2: string) => {\r\n return `${getCMSAssets()}/${screenName}/${\"m-\" + getImageFileNameByID2(imageList, id2)}`;\r\n}\r\n\r\nexport const getServiceUrlPara = (id2: string, index: number, value: string) => {\r\n let urlPara = id2.replace(\"-\" + value, \"\");\r\n return urlPara;\r\n}\r\n\r\n\r\nexport const getSelectState = (stateList: ICodeName[], selectedStateCode: string): ICodeName | null => {\r\n let findState = stateList.find(m => m.code == selectedStateCode);\r\n if (isNil(findState)) {\r\n return null;\r\n }\r\n return findState;\r\n}\r\n\r\nexport interface IPageLanguageState {\r\n LanguageScreenName: string;\r\n LanguageResourceLoad: boolean | null;\r\n}\r\n\r\nexport interface IImagesState {\r\n imageLoaded: boolean,\r\n imageList: any\r\n}\r\n\r\nexport interface IPDFState {\r\n pageName: string,\r\n pdfList: Array\r\n}\r\n\r\nexport const currencyFormat = (value: number | null) => {\r\n let currencyFormatter = new Intl.NumberFormat('en-AU', {\r\n style: 'currency',\r\n currency: 'AUD',\r\n });\r\n\r\n\r\n if (isNil(value))\r\n return \"\";\r\n if (value == 0)\r\n return \"included\"\r\n return \"+ \" + currencyFormatter.format(value);\r\n}\r\n\r\nexport const currencyFormatCharging = (value: number | null, name: string | null, checked: boolean) => {\r\n let currencyFormatter = new Intl.NumberFormat('en-AU', {\r\n style: 'currency',\r\n currency: 'AUD',\r\n });\r\n\r\n if (isNil(value))\r\n return \"\";\r\n if (value == 0 \r\n // && name?.includes('Home Charger') \r\n && checked)\r\n return \"Included\"\r\n if (value == 0)\r\n return \"Available to select\"\r\n return \"+ \" + currencyFormatter.format(value);\r\n}\r\n\r\nexport const currencyPlainFormat = (value: number | null) => {\r\n let currencyFormatter = new Intl.NumberFormat('en-AU', {\r\n style: 'currency',\r\n currency: 'AUD',\r\n });\r\n\r\n if (isNil(value))\r\n return \"0\";\r\n\r\n return currencyFormatter.format(value);\r\n}\r\n\r\n\r\nexport const currencyFormatWithIncluded = (value: number | null) => {\r\n let currencyFormatter = new Intl.NumberFormat('en-AU', {\r\n style: 'currency',\r\n currency: 'AUD',\r\n });\r\n\r\n\r\n if (isNil(value) || value == 0)\r\n return \"included\"\r\n return currencyFormatter.format(value);\r\n}\r\n\r\n\r\n\r\nexport const currencyFormatWithBlank = (value: number | null) => {\r\n let currencyFormatter = new Intl.NumberFormat('en-AU', {\r\n style: 'currency',\r\n currency: 'AUD',\r\n });\r\n\r\n\r\n if (isNil(value))\r\n return \"\";\r\n return currencyFormatter.format(value);\r\n}\r\n\r\n\r\nexport const currencyFormatWithZeroBlank = (value: number | null) => {\r\n let currencyFormatter = new Intl.NumberFormat('en-AU', {\r\n style: 'currency',\r\n currency: 'AUD',\r\n });\r\n\r\n\r\n if (isNil(value) || value == 0)\r\n return \"\";\r\n return currencyFormatter.format(value);\r\n}\r\n\r\n\r\nexport const validateEmail = (email: string) => {\r\n const regex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\r\n return regex.test(email);\r\n};\r\n\r\nexport const getFullAddress = (address: any, suburb: any, state: any, postcode: any) => {\r\n return address + \", \" + suburb + \" \" + state + \" \" + postcode;\r\n}\r\n\r\n\r\nexport const noActivityRedirectHomePage = (resposne: any) => {\r\n if (resposne.errorCode == enumRDErrorCode.NoActivity) {\r\n let url = getFrontendOrigin();\r\n window.location.href = url;\r\n }\r\n}\r\n\r\n//declare global {\r\n// interface Window {\r\n// dataLayer: any[];\r\n// }\r\n//}\r\n//export const pushToDataLayer = (data: object): void => {\r\n// // Check if the dataLayer exists on the window object\r\n// if (window.dataLayer) {\r\n// window.dataLayer.push(data);\r\n// } else {\r\n// // If dataLayer doesn't exist, initialize it and push the event\r\n// window.dataLayer = [data];\r\n// }\r\n//};","import { getBackendPath } from 'helpers/Uri';\r\nimport * as paymentOptionsModel from 'model/IPaymentOptions';\r\nimport * as rdHelper from 'helpers/Uri';\r\n\r\nexport const getDriveAwayCost = async (\r\n request: paymentOptionsModel.IDriveAwayRequest,\r\n abortSignal?: any,\r\n): Promise => {\r\n const requestOptions: any = {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n body: JSON.stringify(request),\r\n credentials: 'include',\r\n signal: abortSignal,\r\n };\r\n const response = await fetch(\r\n `${getBackendPath()}/api/PaymentOptions/get-driveaway-cost`,\r\n requestOptions,\r\n );\r\n const json = await response.json();\r\n rdHelper.noActivityRedirectHomePage(json);\r\n return json;\r\n};\r\n\r\n\r\nexport const getFinanceFilter = async (\r\n request: paymentOptionsModel.IFinanceFilterRequest,\r\n): Promise => {\r\n const requestOptions: any = {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n body: JSON.stringify(request),\r\n credentials: 'include',\r\n };\r\n const response = await fetch(\r\n `${getBackendPath()}/api/PaymentOptions/get-finance-filters`,\r\n requestOptions,\r\n );\r\n const json = await response.json();\r\n rdHelper.noActivityRedirectHomePage(json);\r\n return json;\r\n};\r\n\r\nexport const getFinanceTermOptions = async (\r\n country: string\r\n): Promise => {\r\n const requestOptions: any = {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n body: JSON.stringify({\r\n Country: country\r\n }),\r\n credentials: 'include',\r\n };\r\n const response = await fetch(\r\n `${getBackendPath()}/api/PaymentOptions/get-finance-terms`,\r\n requestOptions,\r\n );\r\n const json = await response.json();\r\n rdHelper.noActivityRedirectHomePage(json);\r\n return json;\r\n};\r\n\r\n\r\nexport const getFinanceBallonOptions = async (\r\n country: string,\r\n termOptionID: number\r\n): Promise => {\r\n const requestOptions: any = {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n body: JSON.stringify({\r\n Country: country,\r\n TermOptionID: termOptionID\r\n }),\r\n credentials: 'include',\r\n };\r\n const response = await fetch(\r\n `${getBackendPath()}/api/PaymentOptions/get-finance-balloonoptions`,\r\n requestOptions,\r\n );\r\n const json = await response.json();\r\n rdHelper.noActivityRedirectHomePage(json);\r\n return json;\r\n};\r\n\r\nexport const getFrequency = async (\r\n country: string,\r\n): Promise => {\r\n const requestOptions: any = {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n body: JSON.stringify({\r\n Country: country,\r\n }),\r\n credentials: 'include',\r\n };\r\n const response = await fetch(\r\n `${getBackendPath()}/api/PaymentOptions/get-frequency`,\r\n requestOptions,\r\n );\r\n const json = await response.json();\r\n rdHelper.noActivityRedirectHomePage(json);\r\n return json;\r\n};\r\n\r\nexport const calculateFinance = async (\r\n request: paymentOptionsModel.IFinanceRequest,\r\n abortSignal?: any,\r\n): Promise => {\r\n const requestOptions: any = {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n body: JSON.stringify(request),\r\n credentials: 'include',\r\n signal: abortSignal,\r\n };\r\n const response = await fetch(\r\n `${getBackendPath()}/api/PaymentOptions/calculate-finance`,\r\n requestOptions,\r\n );\r\n const json = await response.json();\r\n rdHelper.noActivityRedirectHomePage(json);\r\n return json;\r\n};","import { getBackendPath } from 'helpers/Uri';\r\n\r\nexport const getCountryAndState = async (): Promise => {\r\n const requestOptions: any = {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n body: JSON.stringify({}),\r\n credentials: 'include',\r\n };\r\n const response = await fetch(\r\n `${getBackendPath()}/api/CountryState/get-country-and-state`,\r\n requestOptions,\r\n );\r\n const json = await response.json();\r\n return json;\r\n};\r\n","import { useDispatch, useSelector } from 'react-redux';\r\nimport { IAppState } from 'model/IAppState';\r\nimport { ICodeName } from 'model/ICommon';\r\nimport * as countryStateModel from \"model/ICountryStateList\";\r\nimport { isNil } from 'lodash';\r\nimport { getCountryAndState } from 'services/CountryState';\r\nimport * as countryStateStore from 'stores/CountryStateList';\r\nimport { useEffect, useState } from \"react\";\r\nimport * as rdEnum from 'helpers/enum';\r\n\r\nexport const useCountryState = () => {\r\n const dispatch = useDispatch();\r\n\r\n const countryAndStates = useSelector((state: IAppState) => {\r\n return state.countryStateList;\r\n });\r\n\r\n const doGetCountryAndState = async (): Promise => {\r\n let dataInStore: countryStateModel.ICountryStates[] = [];\r\n let response = await getCountryAndState();\r\n if (response.status) {\r\n \r\n let countryListState: ICodeName[] = [];\r\n if (!isNil(response.data) && response.data.length > 0) {\r\n response.data.map((itemData: any) => {\r\n let states: ICodeName[] = [];\r\n if (!isNil(itemData.state) && itemData.state.length > 0) {\r\n itemData.state.map((stateData: any) => {\r\n states.push({\r\n name: stateData,\r\n code: stateData,\r\n });\r\n });\r\n }\r\n else {\r\n states = rdEnum.constStateList; //if api does not return any states, use hardcode states\r\n }\r\n let countryName = itemData.country == \"AU\" ? \"Australia\" : \"New Zealand\";\r\n dataInStore.push({\r\n Country: {\r\n name: countryName,\r\n code: itemData.country\r\n },\r\n State: states,\r\n });\r\n\r\n countryListState.push({\r\n name: countryName,\r\n code: itemData.country\r\n });\r\n });\r\n\r\n }\r\n //setCountry(countryListState);\r\n dispatch(countryStateStore.setCountryStatesAction(dataInStore));\r\n }\r\n return dataInStore;\r\n\r\n }\r\n\r\n\r\n const getCountry = async() => {\r\n let returnCountry: ICodeName[] = [];\r\n if (isNil(countryAndStates) || countryAndStates.length == 0) {\r\n let allCountryAndStates= await doGetCountryAndState();\r\n if (!isNil(allCountryAndStates) && allCountryAndStates.length > 0) {\r\n allCountryAndStates.map((item: countryStateModel.ICountryStates) => {\r\n returnCountry.push(item.Country);\r\n });\r\n }\r\n\r\n }\r\n else {\r\n countryAndStates.map((item: countryStateModel.ICountryStates) => {\r\n returnCountry.push(item.Country);\r\n });\r\n }\r\n return returnCountry;\r\n }\r\n\r\n const getStates = async(countryCode: string) => {\r\n let stateList: ICodeName[] = [];\r\n if (!isNil(countryAndStates)) {\r\n let findCountry = countryAndStates.find(m => m.Country.code == countryCode);\r\n\r\n if (findCountry != null) {\r\n return findCountry.State || [];\r\n }\r\n }\r\n //else {\r\n /// do not add below code back as it could be called multiple times\r\n // let allCountryAndStates = await doGetCountryAndState();\r\n // let findCountry = allCountryAndStates.find(m => m.Country.code == countryCode);\r\n\r\n // if (findCountry != null) {\r\n // return findCountry.State || [];\r\n // }\r\n //}\r\n return stateList;\r\n }\r\n\r\n return {\r\n getCountry,\r\n getStates\r\n };\r\n}\r\n","import { Dialog } from 'primereact/dialog';\r\nimport { Dropdown, DropdownProps } from 'primereact/dropdown'\r\nimport { InputText } from 'primereact/inputtext';\r\nimport { InputNumber } from 'primereact/inputnumber';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport React, { forwardRef, useEffect, useImperativeHandle, useState, useRef } from 'react'\r\nimport { Accordion, Button, Card, Col, Row, useAccordionButton } from 'react-bootstrap';\r\n\r\nimport { filter, includes, find, isNil } from 'lodash';\r\n\r\nimport * as rdEnum from 'helpers/enum';\r\nimport { ICodeName } from 'model/ICommon';\r\nimport { IAppState } from \"model/IAppState\";\r\nimport * as paymentOptionModel from 'model/IPaymentOptions';\r\nimport * as vehicleModel from 'model/IVehicle';\r\n//import * as selectConfigModel from 'model/IUserSelectedConfig';\r\nimport * as paymentOptionService from 'services/PaymentOptions';\r\nimport * as paymentOptionsStore from 'stores/PaymentOptions';\r\nimport * as financeHelper from 'businessHelpers/FinanceHelper';\r\nimport * as driveawayCostHelper from 'businessHelpers/DriveawayCostHelper';\r\nimport * as rdHelper from 'helpers/Uri';\r\nimport * as paymentOptionStore from 'stores/PaymentOptions';\r\nimport { getFrontendUrl, getCMSAssets } from 'helpers/Uri'\r\n\r\nimport { useCountryState } from 'helpers/useCountryState';\r\nimport { PaymentOptionsComponentProps } from 'model/IPaymentOptions';\r\n\r\n\r\nexport type ChildRef = {\r\n openDialog: () => void;\r\n};\r\n\r\n\r\n\r\n//1. if this popup is showed on landing page, subtotal, est delivery date, variant should be from landing page api result\r\n//2. if this popup is showed on configuration page, subtotal, est delivery date, variant should be from store\r\nconst PaymentOptions = forwardRef((props, ref) => {\r\n //let isMounted = useRef();\r\n const dispatch = useDispatch();\r\n const countryState = useCountryState();\r\n\r\n const { isFromLandingPage, subTotal, estDeliveryDate,\r\n variantName, variantID, variantPrice,\r\n exteriorID, exteriorName, exteriorPrice,\r\n interiorID, interiorName, interiorPrice,\r\n options\r\n } = props;\r\n\r\n\r\n\r\n //store variables\r\n const selectedLocationFromStore = useSelector((state: IAppState) => {\r\n return state.selectedDelivery;\r\n });\r\n const selectVehFromStore = useSelector((appState: IAppState) => {\r\n return appState.selectedVehicle;\r\n });\r\n const vehFromStore = useSelector((appState: IAppState) => {\r\n return appState.vehicle;\r\n });\r\n const customerTypeFromStore = useSelector((appState: IAppState) => {\r\n return appState.customerType;\r\n });\r\n const driveAwayCostFromStore = useSelector((appState: IAppState) => {\r\n return appState.paymentOptions?.DriveAwayCost;\r\n });\r\n const paymentOptionsFromStore = useSelector((appState: IAppState) => {\r\n return appState.paymentOptions;\r\n });\r\n\r\n //page states\r\n const [isOpen, setIsOpen] = useState(false);\r\n const [paymentOption, setPaymentOption] = useState('');\r\n const [selectedState, setSelectedState] = useState(null);\r\n const [postCode, setPostcode] = useState(null);\r\n const [suburb, setSuburb] = useState(null);\r\n const [registrationType, setRegistrationType] = useState(rdEnum.enumClientTypes.Private);\r\n //const [downPayment, setDownPayment] = useState('0');\r\n\r\n const [driveawayCostRequest, setDriveawayCostRequest] = useState(driveawayCostHelper.getInitDriveawayCostRequest());\r\n const [driveAwayCost, setDriveAwayCost] = useState(driveawayCostHelper.getInitDriveawayCost());\r\n\r\n const [states, setStates] = useState([]); //state dropdown list items\r\n\r\n const abortControllerInitialValue: any = new (\r\n window as any\r\n ).AbortController();\r\n const [costAbortController, setCostAbortController] = useState(\r\n abortControllerInitialValue,\r\n );\r\n\r\n //finance states\r\n const [financePageState, setFinancePageState] = useState(financeHelper.getInitFinancePageState());\r\n const [financeRequest, setFinanceRequest] = useState(financeHelper.getInitFinanceRequest());\r\n\r\n\r\n const [termOptions, setTermOptions] = useState();\r\n const [selectedTermOptions, setSelectedTermOptions] = useState();\r\n const [balloonPaymentOptions, setBalloonPaymentOptions] = useState();\r\n const [selectedBalloonPaymentOptions, setSelectedBalloonPaymentOptions] = useState();\r\n const [frequencyOptions, setFrequencyOptions] = useState();\r\n const [selectedFrequencyOption, setSelectedFrequencyOptions] = useState();\r\n\r\n\r\n const initAbortCalculateFinanceValue: any = new (window as any).AbortController();\r\n const [financeAbortController, setFinanceAbortController] = useState(initAbortCalculateFinanceValue);\r\n\r\n const [cashActiveEventKey, setCashActiveKey] = useState(null);\r\n const [financeActiveEventKey, setFinanceActiveKey] = useState(null);\r\n\r\n const handleCashSelect = (eventKey: any) => {\r\n setCashActiveKey(cashActiveEventKey === eventKey ? null : eventKey);\r\n };\r\n\r\n const handleFinanceSelect = (eventKey: any) => {\r\n setFinanceActiveKey(financeActiveEventKey === eventKey ? null : eventKey);\r\n };\r\n\r\n useImperativeHandle(ref, () => ({\r\n openDialog: () => {\r\n setIsOpen(true);\r\n document.body.style.overflowY = 'hidden';\r\n document.body.style.paddingRight = '15px';\r\n },\r\n }));\r\n\r\n const onHide = () => {\r\n setIsOpen(false);\r\n document.body.style.overflowY = 'scroll';\r\n document.body.style.paddingRight = '0px';\r\n };\r\n\r\n const onStateChange = (e: any) => {\r\n setSelectedState(e.value);\r\n setPostcode(\"\");\r\n setSuburb(\"\");\r\n }\r\n\r\n const toPrivacy = () => {\r\n window.open('https://www.mtf.co.nz/privacy-statement/')\r\n }\r\n\r\n const toRatesFees = () => {\r\n window.open('https://www.mtf.co.nz/resources/interest-rates-and-fees/')\r\n }\r\n\r\n //useEffect(() => {\r\n // setPaymentOption(paymentType);\r\n\r\n //}, [paymentType]);\r\n\r\n useEffect(() => {\r\n if (isFromLandingPage) {\r\n setPaymentOption(rdEnum.enumPaymentOptions.Finance);\r\n }\r\n else {\r\n setPaymentOption(paymentOptionsFromStore?.PaymentOption || rdEnum.enumPaymentOptions.Cash);\r\n }\r\n }, [paymentOptionsFromStore.PaymentOption, isFromLandingPage, isOpen]);\r\n\r\n useEffect(() => {\r\n // console.log(\"isOpen:\" + isOpen);\r\n //call drive away cost and calculate finance when open popup\r\n if (isOpen) {\r\n //doGetFinanceFilter();\r\n buildDriveawayCostRequest();\r\n\r\n buildFinanceRequest();\r\n }\r\n }, [isOpen,\r\n selectedLocationFromStore.Country?.code,\r\n selectedState,\r\n variantID, exteriorID, ,\r\n interiorID, options,\r\n registrationType, customerTypeFromStore]);\r\n\r\n useEffect(() => {\r\n doGetDriveAwayCost();\r\n }, [JSON.stringify(driveawayCostRequest)]);\r\n\r\n\r\n\r\n useEffect(() => {\r\n if (customerTypeFromStore == rdEnum.enumClientTypes.Private.Code) {\r\n setRegistrationType(rdEnum.enumClientTypes.Private);\r\n }\r\n else {\r\n setRegistrationType(rdEnum.enumClientTypes.Business);\r\n }\r\n }, [customerTypeFromStore]);\r\n\r\n\r\n useEffect(() => {\r\n //set default state/postcode/suburb value\r\n //if has not enter primary address, use the selected state on the 1st popup\r\n //if has primary address, use primary address's state/suburb/postcode\r\n let state = \"\";\r\n let postcode = \"\";\r\n let suburb = \"\";\r\n if (!isNil(selectedLocationFromStore?.PrimaryAddress) && selectedLocationFromStore?.PrimaryAddress != \"\") {\r\n state = selectedLocationFromStore.PrimaryState || \"\";\r\n postcode = selectedLocationFromStore.PrimaryPostcode || \"\";\r\n suburb = selectedLocationFromStore.PrimarySuburb || \"\";\r\n }\r\n else {\r\n state = selectedLocationFromStore?.State?.code || \"\";\r\n }\r\n setSelectedState({ code: state, name: state });\r\n setPostcode(postcode);\r\n setSuburb(suburb);\r\n\r\n }, [selectedLocationFromStore?.State, selectedLocationFromStore?.PrimaryAddress]);\r\n\r\n\r\n\r\n\r\n //set states dropdown list\r\n const doGetStates = async () => {\r\n let states = await countryState.getStates(selectedLocationFromStore?.Country?.code || \"\");\r\n setStates(states);\r\n }\r\n useEffect(() => {\r\n doGetStates()\r\n }, [selectedLocationFromStore?.Country?.code]);\r\n\r\n\r\n\r\n const getRegistrationTypes = () => {\r\n let types = [];\r\n types.push(rdEnum.enumClientTypes.Private);\r\n types.push(rdEnum.enumClientTypes.Business);\r\n return types;\r\n }\r\n\r\n\r\n //const build\r\n const buildDriveawayCostRequest = () => {\r\n //if is pickup, distance is from pickup location\r\n //if is delivery, distance is from DeliveryDistance\r\n let distance = 0;\r\n if (selectedLocationFromStore?.SelectedDeliveryOption == rdEnum.enumDeliveryOptions.Pickup) {\r\n distance = selectedLocationFromStore?.SelectedPickupLocation?.Distance || 0;\r\n }\r\n else {\r\n distance = selectedLocationFromStore?.DeliveryDistance || 0;\r\n }\r\n\r\n let pickupOption = selectedLocationFromStore?.SelectedDeliveryOption || rdEnum.enumDeliveryOptions.Pickup;\r\n let requestData: paymentOptionModel.IDriveAwayRequest = {\r\n Country: selectedLocationFromStore.Country?.code || \"\",\r\n State: selectedState?.code || \"\",\r\n VariantName: variantName, //selectVehFromStore.VariableName || \"\",\r\n VariantID: variantID,\r\n VariantPrice: variantPrice,\r\n ExteriorID: exteriorID,\r\n ExteriorName: exteriorName,\r\n ExteriorPrice: exteriorPrice,\r\n InteriorID: interiorID,\r\n InteriorName: interiorName,\r\n InteriorPrice: interiorPrice,\r\n Options: options,\r\n SubTotal: subTotal, //selectVehFromStore.Subtotal || 0,\r\n DeliveryOption: selectedLocationFromStore?.SelectedDeliveryOption || rdEnum.enumDeliveryOptions.Pickup,\r\n RegistrationType: registrationType.Code,\r\n Distance: distance,\r\n PostCode: postCode || \"\",\r\n Suburb: suburb || \"\",\r\n CallSource: \"PaymentOptions\",\r\n IfCalculateFinance: false,\r\n DeliveryPrice: (pickupOption == rdEnum.enumDeliveryOptions.HomeDelivery) ? selectedLocationFromStore?.DeliveryPrice : 0,\r\n };\r\n\r\n //from landing page\r\n if (isFromLandingPage) {\r\n requestData.DeliveryOption = rdEnum.enumDeliveryOptions.Pickup;\r\n requestData.Distance = 0;\r\n requestData.PostCode = \"\";\r\n requestData.Suburb = \"\";\r\n }\r\n setDriveawayCostRequest(requestData);\r\n\r\n }\r\n\r\n\r\n const doGetDriveAwayCost = async () => {\r\n const abortController = new (window as any).AbortController();\r\n await setCostAbortController(abortController);\r\n\r\n if (driveawayCostRequest.Country == \"\"\r\n || (driveawayCostRequest.Country == rdEnum.enumCountryCode.Australia && driveawayCostRequest.State == \"\")\r\n || isNil(driveawayCostRequest.VariantID) || driveawayCostRequest.VariantID == \"\"\r\n || isNil(driveawayCostRequest.ExteriorID) || driveawayCostRequest.ExteriorID == \"\"\r\n || isNil(driveawayCostRequest.InteriorID) || driveawayCostRequest.InteriorID == \"\"\r\n || driveawayCostRequest.SubTotal == 0) return;\r\n\r\n try {\r\n let request = await paymentOptionService.getDriveAwayCost(driveawayCostRequest, abortController.signal);\r\n if (request.status) {\r\n\r\n let driveAwayCostDataFromBackend = request.data.driveawayCostData;\r\n let driveAwayCostData: paymentOptionModel.IDriveAwayCost = {\r\n LuxuryCarTax: driveAwayCostDataFromBackend.luxuryCarTax,\r\n LocalStampDuty: driveAwayCostDataFromBackend.localStampDuty,\r\n LocalRegistrationCost: driveAwayCostDataFromBackend.localRegistrationCost,\r\n LocalCTP: driveAwayCostDataFromBackend.localCTP,\r\n LocalPlateFee: driveAwayCostDataFromBackend.localPlateFee,\r\n HomeDelivery: driveAwayCostDataFromBackend.homeDelivery,\r\n OnRoadFee: driveAwayCostDataFromBackend.onRoadFeeSubtotal,\r\n SubTotal: driveAwayCostDataFromBackend.subTotal,\r\n DriveawayPrice: driveAwayCostDataFromBackend.driveawayPrice,\r\n VariantName: driveAwayCostDataFromBackend.variantName,\r\n VariantID: driveAwayCostDataFromBackend.variantID,\r\n VariantPrice: driveAwayCostDataFromBackend.variantPrice,\r\n ExteriorID: driveAwayCostDataFromBackend.exteriorID,\r\n ExteriorName: driveAwayCostDataFromBackend.exteriorName,\r\n ExteriorPrice: driveAwayCostDataFromBackend.exteriorColourPrice,\r\n InteriorID: driveAwayCostDataFromBackend.interiorID,\r\n InteriorName: driveAwayCostDataFromBackend.interiorName,\r\n InteriorPrice: driveAwayCostDataFromBackend.interiorColourPrice,\r\n GST: driveAwayCostDataFromBackend.gst,\r\n RoadUserChargers: driveAwayCostDataFromBackend.roadUserChargers,\r\n TyreStewardshipFee: driveAwayCostDataFromBackend.tyreStewardshipFee,\r\n Options: getOptions(driveAwayCostDataFromBackend?.options),\r\n \r\n }\r\n setDriveAwayCost(driveAwayCostData);\r\n }\r\n } catch (error: any) {\r\n if (error.name === 'AbortError') console.log('Request aborted!');\r\n } finally {\r\n //if (abortController.signal?.aborted)\r\n }\r\n\r\n }\r\n\r\n const getOptions = (optionData: any): vehicleModel.IVehicleOptions[] | [] => {\r\n let configs: vehicleModel.IVehicleOptions[] = [];\r\n optionData.map((item: any) => {\r\n configs.push({\r\n YanaOptionID: \"\",\r\n OptionType: item.optionType,\r\n OptionName: item.optionName,\r\n OptionPrice: item.optionPrice,\r\n OptionPicture: [],\r\n OptionPictureMobile: [],\r\n OptionDesc: item.optionDesc,\r\n ChargeType: item.chargeType,\r\n Disable: false,\r\n TermsDescription: null,\r\n });\r\n });\r\n return configs;\r\n }\r\n\r\n //finance\r\n const doGetTermOptions = async () => {\r\n let country = selectedLocationFromStore.Country?.code || \"\";\r\n\r\n let response = await paymentOptionService.getFinanceTermOptions(country);\r\n if (response.status) {\r\n let responseData = response.data;\r\n\r\n let defaultTerm: paymentOptionModel.IFinanceFilter | null = null;\r\n let tempTermOptions: paymentOptionModel.IFinanceFilter[] = responseData.map((item: any) => {\r\n let termItem: paymentOptionModel.IFinanceFilter = {\r\n ID: item.filterID,\r\n Name: item.filterName,\r\n IsDefault: item.isDefault\r\n };\r\n if (item.isDefault) {\r\n defaultTerm = termItem;\r\n }\r\n return termItem;\r\n });\r\n setTermOptions(tempTermOptions);\r\n setSelectedTermOptions(defaultTerm);\r\n\r\n\r\n //setFinancePageState({\r\n // ...financePageState,\r\n // SelectedTermOptions: defaultTerm,\r\n //})\r\n }\r\n\r\n }\r\n\r\n const doGetBallonOptions = async () => {\r\n let country = selectedLocationFromStore.Country?.code || \"\";\r\n\r\n let ballonOptionResponse = await paymentOptionService.getFinanceBallonOptions(\r\n country, selectedTermOptions?.ID || 0);\r\n if (ballonOptionResponse.status) {\r\n let defaultFinalBalloonPayments: paymentOptionModel.IFinanceFilter | null = null;\r\n let tempfinalBalloonPayments: paymentOptionModel.IFinanceFilter[] = ballonOptionResponse.data.map((item: any) => {\r\n let finalBalloonPaymentsItem: paymentOptionModel.IFinanceFilter = {\r\n ID: item.filterID,\r\n Name: item.filterName,\r\n IsDefault: item.isDefault\r\n };\r\n if (item.isDefault) {\r\n defaultFinalBalloonPayments = finalBalloonPaymentsItem;\r\n }\r\n return finalBalloonPaymentsItem;\r\n });\r\n setBalloonPaymentOptions(tempfinalBalloonPayments);\r\n setSelectedBalloonPaymentOptions(defaultFinalBalloonPayments);\r\n //setFinancePageState({\r\n // ...financePageState,\r\n // SelectedBalloonPaymentOptions: defaultFinalBalloonPayments,\r\n //})\r\n }\r\n }\r\n\r\n const doGetFrequencyOptions = async () => {\r\n let country = selectedLocationFromStore.Country?.code || \"\";\r\n\r\n let frequencyResponse = await paymentOptionService.getFrequency(country);\r\n if (frequencyResponse.status) {\r\n let defaultFrequencyPayments: paymentOptionModel.IFinanceFilter | null = null;\r\n let tempFrequencyPayments: paymentOptionModel.IFinanceFilter[] = frequencyResponse.data.map((item: any) => {\r\n let frequencyItem: paymentOptionModel.IFinanceFilter = {\r\n ID: item.filterID,\r\n Name: item.filterName,\r\n IsDefault: item.isDefault\r\n };\r\n if (item.isDefault) {\r\n defaultFrequencyPayments = frequencyItem;\r\n }\r\n return frequencyItem;\r\n });\r\n setFrequencyOptions(tempFrequencyPayments);\r\n setSelectedFrequencyOptions(defaultFrequencyPayments);\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n const buildFinanceRequest = () => {\r\n let requestData: paymentOptionModel.IFinanceRequest = {\r\n Country: selectedLocationFromStore.Country?.code || \"\",\r\n Deposit: financePageState.Deposit,\r\n SelectedTermOptions: selectedTermOptions !== undefined ? selectedTermOptions : null,\r\n SelectedBalloonPaymentOptions: selectedBalloonPaymentOptions !== undefined ? selectedBalloonPaymentOptions : null,\r\n SelectedPaymentFrequency: selectedFrequencyOption !== undefined ? selectedFrequencyOption : null,\r\n DriveawayCost: driveAwayCost?.DriveawayPrice || 0, //must be from state\r\n Source: \"PaymentOptions\"\r\n };\r\n setFinanceRequest(requestData);\r\n }\r\n\r\n\r\n const doCalculateFinance = async () => {\r\n //console.log(fromSource);\r\n if (selectedLocationFromStore.Country?.code == rdEnum.enumCountryCode.Australia) {\r\n if (isNil(selectedBalloonPaymentOptions)\r\n || isNil(selectedTermOptions)\r\n ) {\r\n return;\r\n }\r\n }\r\n else {\r\n if (isNil(selectedBalloonPaymentOptions)\r\n || isNil(selectedFrequencyOption)\r\n ) {\r\n return;\r\n }\r\n }\r\n\r\n const abortController = new (window as any).AbortController();\r\n await setFinanceAbortController(abortController);\r\n\r\n\r\n\r\n try {\r\n let response = await paymentOptionService.calculateFinance(financeRequest, abortController.signal);\r\n if (response.status) {\r\n let responseData = response.data;\r\n\r\n let updatedFinance = {\r\n ...financePageState,\r\n InterestRate: responseData.interestRateText,\r\n ComparisonRate: responseData.comparisonRateText,\r\n FinanceAmount: responseData.totalFinancedAmountText,\r\n BallonAmount: responseData.balloonpaymentText,\r\n LoanPayment: responseData.monthlyLoanPayment,\r\n LoanPaymentText: responseData.monthlyLoanPaymentText,\r\n CreditAssistanceFee: responseData.creditAssistanceFeeText,\r\n MonthlyAccountFee: responseData.monthlyAccountFeeText,\r\n FreqencyName: responseData.freqencyName,\r\n NoOfMonth: responseData.noOfMonth,\r\n InterestRateTo: responseData.interestRateTo,\r\n TotalLoanPayment: responseData.totalLoanPayment,\r\n PPSR: responseData.ppsr,\r\n };\r\n\r\n setFinancePageState(updatedFinance);\r\n }\r\n } catch (error: any) {\r\n if (error.name === 'AbortError') console.log('doCalculateFinance Request aborted!');\r\n } finally {\r\n //if (abortController.signal?.aborted)\r\n }\r\n }\r\n\r\n\r\n useEffect(() => {\r\n if (isOpen && !isNil(selectedLocationFromStore.Country?.code)\r\n ) {\r\n doGetTermOptions();\r\n\r\n if (selectedLocationFromStore.Country?.code == rdEnum.enumCountryCode.NewZealand) {\r\n doGetFrequencyOptions();\r\n }\r\n }\r\n\r\n }, [selectedLocationFromStore.Country?.code, isOpen]);\r\n\r\n useEffect(() => {\r\n\r\n if (isOpen && !isNil(selectedLocationFromStore.Country?.code) && selectedLocationFromStore.Country?.code != \"\"\r\n && !isNil(selectedTermOptions?.ID)\r\n ) {\r\n doGetBallonOptions();\r\n }\r\n\r\n }, [selectedTermOptions, isOpen]);\r\n\r\n\r\n\r\n useEffect(() => {\r\n //don't add financePageState.SelectedTermOptions to dependency \r\n //because if SelectedTermOptions changed, SelectedBalloonPaymentOptions will be changed as well\r\n if (isOpen\r\n && !isNil(selectedTermOptions?.Name)\r\n && !isNil(selectedBalloonPaymentOptions?.Name)\r\n ) {\r\n buildFinanceRequest();\r\n }\r\n //financeAbortController.abort();\r\n //return () => {\r\n // financeAbortController.abort();\r\n //};\r\n\r\n }, [\r\n selectedLocationFromStore.Country?.code,\r\n driveAwayCost?.DriveawayPrice,\r\n selectedTermOptions,\r\n selectedBalloonPaymentOptions,\r\n selectedFrequencyOption\r\n ]);\r\n\r\n useEffect(() => {\r\n if (isNil(financeRequest.Country) || financeRequest.Country == \"\"\r\n || isNil(financeRequest.SelectedTermOptions?.ID) || financeRequest.SelectedTermOptions?.ID == undefined\r\n || isNil(financeRequest.SelectedBalloonPaymentOptions?.ID) || financeRequest.SelectedBalloonPaymentOptions?.ID == undefined\r\n || financeRequest.DriveawayCost == 0) {\r\n return;\r\n }\r\n\r\n doCalculateFinance();\r\n\r\n }, [JSON.stringify(financeRequest)]);\r\n\r\n\r\n //selectedLocationFromStore.Country?.code,\r\n //financePageState.SelectedBalloonPaymentOptions,\r\n // financePageState.Deposit\r\n const CustomFinanceToggle = ({ children, eventKey, financeActiveEventKey }: any) => {\r\n const isActive = financeActiveEventKey === eventKey;\r\n const decoratedOnClick = useAccordionButton(eventKey, () =>\r\n console.log(`Accordion with eventKey ${eventKey} is ${isActive ? 'closing' : 'opening'}!`),\r\n );\r\n\r\n return (\r\n
\r\n \r\n {children}\r\n \r\n {rdHelper.currencyFormatWithIncluded(driveAwayCost?.DriveawayPrice)}\r\n
\r\n );\r\n }\r\n\r\n const showVehicleTemplate = () => {\r\n return (\r\n
\r\n
\r\n Variant\r\n
\r\n {driveAwayCost?.VariantName}\r\n {rdHelper.currencyFormatWithIncluded(driveAwayCost?.VariantPrice)}\r\n
\r\n
\r\n\r\n
\r\n Exterior\r\n
\r\n {driveAwayCost?.ExteriorName}\r\n {rdHelper.currencyFormatWithIncluded(driveAwayCost?.ExteriorPrice)}\r\n
\r\n
\r\n\r\n
\r\n Interior\r\n
\r\n {driveAwayCost?.InteriorName}\r\n {rdHelper.currencyFormatWithIncluded(driveAwayCost?.InteriorPrice)}\r\n
\r\n
\r\n\r\n {optionsTemplate(driveAwayCost?.Options, rdEnum.enumVehicleOptionType.Accessories)}\r\n {optionsTemplate(driveAwayCost?.Options, rdEnum.enumVehicleOptionType.Charge)}\r\n\r\n
\r\n
\r\n Vehicle Subtotal\r\n {rdHelper.currencyFormatWithBlank(driveAwayCost?.SubTotal)}\r\n
\r\n Includes {rdHelper.currencyFormatWithBlank(driveAwayCost?.GST)} GST\r\n
\r\n
\r\n )\r\n }\r\n\r\n const showTaxTemplate = () => {\r\n if (selectedLocationFromStore?.Country?.code == rdEnum.enumCountryCode.Australia) {\r\n return (\r\n
\r\n
\r\n Luxury Car Tax\r\n {rdHelper.currencyFormatWithBlank(driveAwayCost?.LuxuryCarTax)}\r\n
\r\n
\r\n Local Stamp Duty\r\n {rdHelper.currencyFormatWithBlank(driveAwayCost?.LocalStampDuty)}\r\n
\r\n
\r\n Local Registration Costs\r\n {rdHelper.currencyFormatWithBlank(driveAwayCost?.LocalRegistrationCost)}\r\n
\r\n
\r\n Local CTP\r\n {rdHelper.currencyFormatWithBlank(driveAwayCost?.LocalCTP)}\r\n
\r\n
\r\n Local Plate Fee\r\n {rdHelper.currencyFormatWithBlank(driveAwayCost?.LocalPlateFee)}\r\n
\r\n
\r\n On Road Fees Subtotal\r\n {rdHelper.currencyFormatWithBlank(driveAwayCost?.OnRoadFee)}\r\n
\r\n
\r\n );\r\n }\r\n else if (selectedLocationFromStore?.Country?.code == rdEnum.enumCountryCode.NewZealand) {\r\n return (\r\n
\r\n
\r\n Local Registration Costs\r\n {rdHelper.currencyFormatWithBlank(driveAwayCost?.LocalRegistrationCost)}\r\n
\r\n
\r\n Local Plate Fee\r\n {rdHelper.currencyFormatWithIncluded(driveAwayCost?.LocalPlateFee)}\r\n
\r\n
\r\n Tyre Stewardship Fee\r\n {rdHelper.currencyFormatWithBlank(driveAwayCost?.TyreStewardshipFee)}\r\n
\r\n
\r\n Road User Charges\r\n {rdHelper.currencyFormatWithBlank(driveAwayCost?.RoadUserChargers)}\r\n
\r\n
\r\n On Road Fees Subtotal\r\n {rdHelper.currencyFormatWithBlank(driveAwayCost?.OnRoadFee)}\r\n
\r\n
\r\n );\r\n }\r\n\r\n return (<>);\r\n }\r\n\r\n const optionsTemplate = (options: vehicleModel.IVehicleOptions[] | null | undefined, optionType: string) => {\r\n let optionItemsTemplate: any[] = [];\r\n if (!isNil(options) && options != undefined && options.length > 0) {\r\n let selectedOptions = options.filter(m => m.OptionType == optionType);\r\n if (!isNil(selectedOptions) && selectedOptions.length > 0) {\r\n selectedOptions.map((optionItem: vehicleModel.IVehicleOptions, index: any) => {\r\n optionItemsTemplate.push(\r\n
\r\n

{optionItem?.OptionName}

\r\n {rdHelper.currencyFormatWithIncluded(optionItem?.OptionPrice)}\r\n
\r\n );\r\n })\r\n }\r\n }\r\n\r\n let template: any[] = [];\r\n if (optionItemsTemplate.length == 0) {\r\n template.push(<>);\r\n }\r\n else {\r\n template.push(\r\n
\r\n
{optionType == rdEnum.enumVehicleOptionType.Charge ? rdEnum.enumVehicleOptionTypeName.Charge : rdEnum.enumVehicleOptionTypeName.Accessories}
\r\n {optionItemsTemplate}\r\n
\r\n );\r\n }\r\n return template;\r\n }\r\n\r\n const toPlenti = () => {\r\n window.open('https://www.plenti.com.au/compliance/');\r\n }\r\n\r\n\r\n\r\n\r\n setTimeout(() => {\r\n let stateDropdown = document.getElementById(\"state-dropdown-list\");\r\n if (stateDropdown) {\r\n stateDropdown.setAttribute('data-dtm', 'modal:payment options');\r\n stateDropdown.classList.add('stat-text-link');\r\n }\r\n\r\n let regoTypeDropdown = document.getElementById(\"registration-type-dropdown-list\");\r\n if (regoTypeDropdown) {\r\n regoTypeDropdown.setAttribute('data-dtm', 'modal:payment options');\r\n regoTypeDropdown.classList.add('stat-text-link');\r\n }\r\n\r\n let termDropdown = document.getElementById(\"terms-dropdown-list\");\r\n if (termDropdown) {\r\n termDropdown.setAttribute('data-dtm', 'modal:payment options');\r\n termDropdown.classList.add('stat-text-link');\r\n }\r\n\r\n let balloonDropdown = document.getElementById(\"balloon-dropdown-list\");\r\n if (balloonDropdown) {\r\n balloonDropdown.setAttribute('data-dtm', 'modal:payment options');\r\n balloonDropdown.classList.add('stat-text-link');\r\n }\r\n\r\n }, 200);\r\n\r\n const termsItemTemplate = (option: any) => {\r\n return (\r\n
\r\n
{option.Name}
\r\n
\r\n );\r\n };\r\n\r\n const balloonItemTemplate = (option: any) => {\r\n return (\r\n
\r\n
{option.Name}
\r\n
\r\n );\r\n };\r\n\r\n const stateItemTemplate = (option: any) => {\r\n return (\r\n
\r\n
{option.name}
\r\n
\r\n );\r\n }\r\n\r\n const regTypeItemTemplate = (option: any) => {\r\n return (\r\n
\r\n
{option.Text}
\r\n
\r\n );\r\n }\r\n\r\n return (\r\n <>\r\n onHide()}>\r\n
\r\n
\r\n

Payment Options

\r\n {\r\n paymentOption == rdEnum.enumPaymentOptions.Cash\r\n ?\r\n <>\r\n :\r\n

Calculate estimated repayments on your favourite Cadillac using this tool. The final interest rate and additional product options will be confirmed with our Finance Partner after purchase.

\r\n }\r\n
\r\n
\r\n \r\n \r\n
\r\n {\r\n paymentOption == rdEnum.enumPaymentOptions.Cash\r\n ?\r\n
\r\n \r\n \r\n {/* Registration / Territory */}\r\n onStateChange(e)}\r\n className='global-location-dropdown'\r\n optionLabel=\"code\"\r\n placeholder=\"State*\"\r\n disabled\r\n itemTemplate={stateItemTemplate}\r\n />\r\n \r\n \r\n \r\n {/* Registration Type */}\r\n setRegistrationType(e.value)}\r\n className='global-location-dropdown'\r\n optionLabel=\"Text\"\r\n placeholder=\"Registration Type*\"\r\n itemTemplate={regTypeItemTemplate}\r\n />\r\n \r\n \r\n \r\n\r\n {showVehicleTemplate()}\r\n\r\n {showTaxTemplate()}\r\n\r\n
\r\n Delivery option\r\n
\r\n {selectedLocationFromStore?.SelectedDeliveryOption || rdEnum.enumDeliveryOptions.Pickup}\r\n {selectedLocationFromStore?.SelectedDeliveryOption == rdEnum.enumDeliveryOptions.HomeDelivery && (\r\n {rdHelper.currencyFormatWithBlank(driveAwayCost?.HomeDelivery)}\r\n )}\r\n
\r\n
\r\n\r\n
\r\n
\r\n Driveaway Price1\r\n {rdHelper.currencyFormatWithBlank(driveAwayCost?.DriveawayPrice)}\r\n
\r\n
\r\n
\r\n {/*

\r\n 1This is the drive away price for the selected country, state or territory. It is based on the owner being a 'rating one' driver aged 40 with a good driving record. Actual drive away price may differ depending on your individual circumstances. Price does not take into account any discount, rebate or promotion that may be available from time to time. Cadillac reserves the right to vary the Drive away price at its discretion, including for changes in specifications or features.\r\n

\r\n

\r\n Vehicle registration includes 12 months' registration fees, 12 months' CTP insurance and any other associated charges in accordance with country, state and/or territory legislation. Cadillac reserves the right to make changes to this website on any information and elements as time progresses, e.g. to final prices, taxes etc. The website may vary from market to market and is subject to change without notice.\r\n

*/}\r\n {\r\n selectedLocationFromStore?.Country?.code == rdEnum.enumCountryCode.Australia\r\n ?\r\n

\r\n 1This is the drive away price for the selected country, state or territory. It is based on the owner being a ‘rating one’ driver aged 40 with a good driving record. The drive away price displayed is inclusive of the vehicle purchase price, goods and services tax (GST), luxury car tax (LCT), stamp duty, compulsory third party insurance, registration, a plate fees and a GST-inclusive regional delivery fee if applicable. The final drive away price may differ depending on your individual circumstances. The price does not take into account any valid discount, rebate or promotion that may be available from time to time. Each country, state or territory may offer additional registration types which are not covered in this configurator, therefore your individual situation may vary and have an impact on the final Drive Away price. Cadillac reserves the right to vary the Drive away price at its discretion, including for changes in specifications or features. The final Drive Away price will be provided to you upon checkout.\r\n

\r\n :\r\n

\r\n 1This is the drive away price for the selected country, state or territory. The drive away price displayed is inclusive of the vehicle purchase price, goods and services tax (GST), compulsory third party insurance, registration, a plate fees and a GST-inclusive regional delivery fee if applicable. The final drive away price may differ depending on your individual circumstances. The price does not take into account any valid discount, rebate or promotion that may be available from time to time. Each country, state or territory may offer additional registration types which are not covered in this configurator, therefore your individual situation may vary and have an impact on the final Drive Away price. Cadillac reserves the right to vary the Drive away price at its discretion, including for changes in specifications or features. The final Drive Away price will be provided to you upon checkout.\r\n

\r\n }\r\n {/*

\r\n 3 Availability is an estimate only and subject to change without notice. More accurate timing will be provided upon order and closer to the time of delivery.\r\n

*/}\r\n
\r\n
\r\n :\r\n paymentOption == rdEnum.enumPaymentOptions.Finance\r\n ?\r\n
\r\n \r\n \r\n
\r\n
\r\n $\r\n {\r\n setFinancePageState({\r\n ...financePageState,\r\n Deposit: parseInt(e.target.value)\r\n });\r\n }}\r\n keyfilter={\"int\"}\r\n disabled={true}\r\n />\r\n \r\n
\r\n
\r\n \r\n \r\n {\r\n setSelectedTermOptions(e.value);\r\n }}\r\n className='global-location-dropdown'\r\n optionLabel=\"Name\"\r\n itemTemplate={termsItemTemplate}\r\n />\r\n \r\n \r\n
\r\n {selectedLocationFromStore.Country?.code == rdEnum.enumCountryCode.Australia ? (\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n {/*$*/}\r\n {\r\n // setDownPayment(e.target.value)\r\n }}\r\n />\r\n \r\n
\r\n
\r\n \r\n \r\n {\r\n setSelectedBalloonPaymentOptions(e.value);\r\n //setFinancePageState({\r\n // ...financePageState,\r\n // SelectedBalloonPaymentOptions: e.value\r\n //})\r\n }}\r\n className='global-location-dropdown'\r\n optionLabel=\"Name\"\r\n itemTemplate={balloonItemTemplate}\r\n // placeholder=\"Final Balloon Payment*\"\r\n />\r\n \r\n {financePageState.BallonAmount} balloon payment\r\n \r\n
\r\n )\r\n :\r\n \r\n \r\n \r\n {\r\n setSelectedBalloonPaymentOptions(e.value);\r\n }}\r\n className='global-location-dropdown'\r\n optionLabel=\"Name\"\r\n itemTemplate={balloonItemTemplate}\r\n />\r\n \r\n \r\n \r\n {\r\n setSelectedFrequencyOptions(e.value);\r\n }}\r\n className='global-location-dropdown'\r\n optionLabel=\"Name\"\r\n />\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
Financed Amount
\r\n
{financePageState.FinanceAmount}
\r\n
\r\n
\r\n
Balloon Payment
\r\n
{financePageState.BallonAmount}
\r\n
\r\n \r\n
\r\n \r\n \r\n
This is a representative example based on a {financePageState.SelectedTermOptions?.Name} term at an interest rate of {financePageState.InterestRate}.\r\n Payments are calculated and payable {financePageState.FreqencyName}ly under a Credit Agreement at {financePageState.LoanPaymentText} per {financePageState.FreqencyName} with a final balloon payment of {financePageState.BallonAmount}.\r\n Total amount repayable is {financePageState.TotalLoanPayment}. Payments include on road costs, an establishment fee of {financePageState.CreditAssistanceFee}, a monthly maintenance fee of {financePageState.MonthlyAccountFee} and a PPSR fee of {financePageState.PPSR}.
\r\n
\r\n
Interest rates vary from {financePageState.InterestRate} to {financePageState.InterestRateTo} and are subject to credit criteria and affordability assessment
\r\n \r\n
\r\n
\r\n }\r\n\r\n\r\n\r\n

\r\n Scroll down for important finance information\r\n

\r\n\r\n
\r\n
\r\n {selectedLocationFromStore.Country?.code == rdEnum.enumCountryCode.Australia ?\r\n Credit Assistance Fee\r\n : Loan Establishment Fee\r\n }\r\n {financePageState.CreditAssistanceFee}\r\n
\r\n \r\n \r\n \r\n \r\n {showVehicleTemplate()}\r\n {showTaxTemplate()}\r\n\r\n
\r\n Delivery option\r\n
\r\n {selectedLocationFromStore?.SelectedDeliveryOption || rdEnum.enumDeliveryOptions.Pickup}\r\n {selectedLocationFromStore?.SelectedDeliveryOption == rdEnum.enumDeliveryOptions.HomeDelivery && (\r\n {rdHelper.currencyFormatWithBlank(driveAwayCost?.HomeDelivery)}\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Driveaway Cost\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n Loan Payment (inc. Home Delivery)\r\n {financePageState.LoanPaymentText} /{financePageState.FreqencyName}2\r\n
\r\n
\r\n Estimated Delivery\r\n {isFromLandingPage ? estDeliveryDate : vehFromStore.SelectedInterior?.Available}\r\n
\r\n
\r\n\r\n {/* {\r\n selectedLocationFromStore?.Country?.name == 'Australia'\r\n ?\r\n
\r\n

\r\n 1 This is the drive away price for the selected country, state or territory. It is based on the owner being a ‘rating one’ driver aged 40 with a good driving record. Actual drive away price may differ depending on your individual circumstances. Price does not take into account any discount, rebate or promotion that may be available from time to time. Cadillac reserves the right to vary the Drive away price at its discretion, including for changes in specifications or features.\r\n
\r\n Vehicle registration includes 12 months’ registration fees, 12 months’ CTP insurance and any other associated charges in accordance with country, state and/or territory legislation. Cadillac reserves the right to make changes to this website on any information and elements as time progresses, e.g. to final prices, taxes etc. The website may vary from market to market and is subject to change without notice\r\n

\r\n

\r\n Finance provided to approved applicants by Plenti Finance Pty Limited ABN 82 636 759 861.\r\n

\r\n

\r\n 2 The comparison rate is based on a secured car loan of $30,000 repaid over 60 months at an interest rate of 1.99% p.a.. WARNING: This comparison rate is true only for the examples given and may not include all fees and charges. Different terms, fees or other loan amounts might result in a different comparison rate. Finance provided to approved applicants by Plenti Finance Pty Limited ABN 82 636 759 861.
Terms, conditions and fees apply to any loan. Any calculations made by this calculator are dependent on the accuracy of the information provided, are intended to be used as a guide only, must not be relied on for any reason as conclusive, and do not constitute a quote. Your application will be subject to a credit approval process and lending criteria. Cadillac will not store the information provided in this calculator. Cadillac and their finance partner do not accept any responsibility for any loss, costs, or liability directly or indirectly incurred by persons who rely on any amount calculated by this calculator.\r\n
\r\n Order and apply for finance on an eligible Cadillac vehicle by 31 August 2024 and take delivery by 30 September 2024 to qualify. Valid only for eligible purchases of new Cadillac configurations for finance loan terms up to 5 years. Not eligible with balloon repayments. Credit subject to financier's approval. Terms, conditions, fees and charges apply Interest rates are subject to change. This information does not constitute financial advice and you should consider whether it is appropriate to your circumstances before you act in reliance on it. For detailed advice and to discuss finance options tailored to your needs to determine the best finance option for your circumstances, we recommend speaking with a licensed independent financial advisor.\r\n

\r\n

\r\n [Placeholder for Plenti Disclaimer – waiting on final version]\r\n

\r\n

\r\n 3 Availability is an estimate only and subject to change without notice. More accurate timing will be provided upon order and closer to the time of delivery.\r\n

\r\n
\r\n :\r\n
\r\n

\r\n 1 This is the drive away price for the selected country, state or territory. It is based on the owner being a ‘rating one’ driver aged 40 with a good driving record. Actual drive away price may differ depending on your individual circumstances. Price does not take into account any discount, rebate or promotion that may be available from time to time. \r\n

\r\n

\r\n Cadillac reserves the right to vary the Drive away price at its discretion, including for changes in specifications or features. Vehicle registration includes 12 months’ registration fees, 12 months’ CTP insurance and any other associated charges in accordance with country, state and/or territory legislation. Cadillac reserves the right to make changes to this website on any information and elements as time progresses, e.g. to final prices, taxes etc. The website may vary from market to market and is subject to change without notice.\r\n

\r\n

\r\n Cadillac will not store the information provided in this calculator.\r\n

\r\n

\r\n Finance is provided by MTF subject to its approval process, lending criteria and checks. Terms, conditions and fees apply to any offer of finance. Any personal information we collect about you may be shared with MTF and will be treated in accordance with toPrivacy()}>MTF privacy statement.\r\n

\r\n

\r\n Calculator information is for illustrative purposes only and must not be relied upon for any reason. The information on this page is not financial advice or an offer of finance. Interest rates are subject to change. Your interest rate may be lower or higher depending on your credit history and other factors. For more information see toRatesFees()}>rates, fees and charges to understand what borrowing may cost you. We recommend that you seek independent financial advice for your unique circumstances. Cadillac and MTF do not accept any responsibility for any direct or indirect loss, cost, or liability incurred by persons who rely on any calculator information.\r\n

\r\n

\r\n 3 Availability is an estimate only and subject to change without notice. More accurate timing will be provided upon order and closer to the time of delivery.\r\n

\r\n
\r\n } */}\r\n\r\n
\r\n {\r\n selectedLocationFromStore?.Country?.code == rdEnum.enumCountryCode.Australia\r\n ?\r\n

\r\n 1This is the drive away price for the selected country, state or territory. It is based on the owner being a ‘rating one’ driver aged 40 with a good driving record. The drive away price displayed is inclusive of the vehicle purchase price, goods and services tax (GST), luxury car tax (LCT), stamp duty, compulsory third party insurance, registration, a plate fees and a GST-inclusive regional delivery fee if applicable. The final drive away price may differ depending on your individual circumstances. The price does not take into account any valid discount, rebate or promotion that may be available from time to time. Each country, state or territory may offer additional registration types which are not covered in this configurator, therefore your individual situation may vary and have an impact on the final Drive Away price. Cadillac reserves the right to vary the Drive away price at its discretion, including for changes in specifications or features. The final Drive Away price will be provided to you upon checkout. \r\n

\r\n :\r\n

\r\n 1This is the drive away price for the selected country, state or territory. The drive away price displayed is inclusive of the vehicle purchase price, goods and services tax (GST), compulsory third party insurance, registration, a plate fees and a GST-inclusive regional delivery fee if applicable. The final drive away price may differ depending on your individual circumstances. The price does not take into account any valid discount, rebate or promotion that may be available from time to time. Each country, state or territory may offer additional registration types which are not covered in this configurator, therefore your individual situation may vary and have an impact on the final Drive Away price. Cadillac reserves the right to vary the Drive away price at its discretion, including for changes in specifications or features. The final Drive Away price will be provided to you upon checkout. \r\n

\r\n }\r\n \r\n \r\n {/*

\r\n 2This monthly repayment has been estimated using a calculator developed by Cadillac in partnership with finance partners referenced below as a guide only. The repayment is indicative and intended for illustrative purposes only. Cadillac will not store the information provided in this calculator. This repayment estimate should not be considered a loan application or an offer of finance. This repayment estimate does not take into account your personal circumstances or any fees and charges or government taxes which may apply.\r\n\r\n

*/}\r\n {\r\n selectedLocationFromStore?.Country?.code == rdEnum.enumCountryCode.Australia\r\n ?\r\n <>\r\n

\r\n 2Comparison rate is based on a secured car loan of $30,000 repaid over 60 months, no balloon, and interest rate of 6.79%. Rates assume a customer with an excellent credit history. Rates shown are current as at today’s date. Terms, conditions, and credit criteria apply. Fees and charges apply. Interest rates are subject to change. WARNING: This comparison rate is true only for the examples given and may not include all fees and charges. Different terms, fees or other loan amounts might result in a different comparison rate. \r\n

\r\n

\r\n Terms, conditions and fees apply to any loan. Any calculations made by this calculator are dependent on the accuracy of the information provided, are intended to be used as a guide only, must not be relied on for any reason as conclusive, and do not constitute a quote or an offer of credit. Your application will be subject to a credit approval process and lending criteria. Cadillac will not store the information provided in this calculator. Cadillac and their finance partner do not accept any responsibility for any loss, costs, or liability directly or indirectly incurred by persons who rely on any amount calculated by this calculator. \r\n

\r\n

\r\n Credit subject to financier's approval. Terms, conditions, fees and charges apply. Rates, repayments and fees are estimates and are subject to change at any time. Credit provided by Plenti Finance Pty Limited ACN 636 759 861 (supported by its servicer, Plenti RE Limited ACN 166 646 635). Plenti RE Limited holds Australian Financial Services Licence number 449176 and Australian Credit Licence number 449176.\r\n

\r\n

\r\n This information does not constitute financial advice and you should consider whether it is appropriate to your circumstances before you act in reliance on it. For detailed advice and to discuss finance options tailored to your needs to determine the best finance option for your circumstances, we recommend speaking with a licensed independent financial advisor. Plenti's Target Market Determination is available at toPlenti()}>www.plenti.com.au/compliance.\r\n

\r\n \r\n \r\n :\r\n

\r\n 2Finance is provided by MTF subject to its approval process, lending criteria and checks. Terms, conditions and fees apply to any offer of finance. Any personal information we collect about you may be shared with MTF and will be treated in accordance with MTF toPrivacy()}>privacy statement. Calculator information is for illustrative purposes only and must not be relied upon for any reason. The information on this page is not financial advice or an offer of finance. Interest rates are subject to change. Your interest rate may be lower or higher depending on your credit history and other factors. For more information see toRatesFees()}>rates, fees and charges to understand what borrowing may cost you. We recommend that you seek independent financial advice for your unique circumstances. Cadillac and MTF do not accept any responsibility for any direct or indirect loss, cost, or liability incurred by persons who rely on any calculator information.\r\n {/* 2Finance is provided by MTF subject to its approval process, lending criteria and checks. Terms, conditions and fees apply to any offer of finance. Any personal information we collect about you may be shared with MTF and will be treated in accordance with MTF privacy statement. Calculator information is for illustrative purposes only and must not be relied upon for any reason. The information on this page is not financial advice or an offer of finance. Interest rates are subject to change. Your interest rate may be lower or higher depending on your credit history and other factors. For more information see rates, fees and charges to understand what borrowing may cost you. We recommend that you seek independent financial advice for your unique circumstances. Cadillac and MTF do not accept any responsibility for any direct or indirect loss, cost, or liability incurred by persons who rely on any calculator information. */}\r\n

\r\n //

\r\n // [Placeholder for Plenti Disclaimer – waiting on final version]\r\n //

\r\n // :\r\n //

\r\n // Finance is provided by MTF subject to its approval process, lending criteria and checks. Terms, conditions and fees apply to any offer of finance. Any personal information we collect about you may be shared with MTF and will be treated in accordance with toPrivacy()}>MTF privacy statement. Calculator information is for illustrative purposes only and must not be relied upon for any reason. The information on this page is not financial advice or an offer of finance. Interest rates are subject to change. Your interest rate may be lower or higher depending on your credit history and other factors. For more information see toRatesFees()}>rates, fees and charges to understand what borrowing may cost you. We recommend that you seek independent financial advice for your unique circumstances. Cadillac and MTF do not accept any responsibility for any direct or indirect loss, cost, or liability incurred by persons who rely on any calculator information.\r\n //

\r\n }\r\n {/*

\r\n 3Availability and delivery dates are estimates only. Many factors impact vehicle delivery. Cadillac reserves the right to make changes to availability and delivery dates displayed throughout this configurator without notice.\r\n

\r\n

\r\n `The information presented in this configurator is based on data available at the time. Cadillac reserves the right to make changes to this website on any information and elements as time progresses, e.g. to design, specifications, final prices, taxes, delivery dates etc. The website may vary from market to market and is subject to change without notice.\r\n

\r\n

\r\n Vehicle shown on this page is a simulated overseas model. Actual production vehicles will vary. Vehicles shown here after are simulated local production vehicles intended for illustrative purposes. Cadillac has taken reasonable steps to ensure your digital configuration replicates the vehicle you receive in real life. Colours and other features may appear different in real life.\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 PaymentOptions","import * as paymentOptionModel from 'model/IPaymentOptions';\r\nimport { IVehicleOptions } from 'model/IVehicle';\r\n\r\nexport const getInitDriveawayCostRequest = (): paymentOptionModel.IDriveAwayRequest => {\r\n let init: paymentOptionModel.IDriveAwayRequest = {\r\n Country: \"\",\r\n State: \"\",\r\n VariantName: \"\",\r\n VariantID: \"\",\r\n VariantPrice: 0,\r\n ExteriorID: \"\",\r\n ExteriorName: \"\",\r\n ExteriorPrice: 0,\r\n InteriorID: \"\",\r\n InteriorName: \"\",\r\n InteriorPrice: 0,\r\n Options: [],\r\n SubTotal: 0,\r\n DeliveryOption: \"\",\r\n RegistrationType: \"\",\r\n Distance: 0,\r\n PostCode: \"\",\r\n Suburb: \"\",\r\n CallSource: \"Main Page\",\r\n IfCalculateFinance: true,\r\n DeliveryPrice: 0,\r\n };\r\n\r\n return init;\r\n}\r\n\r\nexport const getInitDriveawayCost = (): paymentOptionModel.IDriveAwayCost => {\r\n let init: paymentOptionModel.IDriveAwayCost = {\r\n LuxuryCarTax: 0,\r\n LocalStampDuty: 0,\r\n LocalRegistrationCost: 0,\r\n LocalCTP: 0,\r\n LocalPlateFee: 0,\r\n HomeDelivery: 0,\r\n DriveawayPrice: 0,\r\n OnRoadFee: 0,\r\n SubTotal: 0,\r\n VariantName: \"\",\r\n VariantID: \"\",\r\n VariantPrice: 0,\r\n ExteriorID: \"\",\r\n ExteriorName: \"\",\r\n ExteriorPrice: 0,\r\n InteriorID: \"\",\r\n InteriorName: \"\",\r\n InteriorPrice: 0,\r\n GST: 0,\r\n RoadUserChargers: 0,\r\n TyreStewardshipFee: 0,\r\n Options: [],\r\n };\r\n\r\n return init;\r\n}","import * as paymentOptionModel from 'model/IPaymentOptions';\r\nimport * as financeStatusModel from 'model/IFinanceStatus';\r\n\r\nexport const getInitFinancePageState = (): paymentOptionModel.IFinancePageState => {\r\n let init: paymentOptionModel.IFinancePageState = {\r\n Country: null,\r\n State: null,\r\n RegistrationType: null,\r\n SelectedTermOptions: null,\r\n SelectedBalloonPaymentOptions: null,\r\n SelectedPaymentFrequency: null,\r\n Deposit: 1000,\r\n DriveawayCost: 0,\r\n InterestRate: \"\",\r\n ComparisonRate: \"\",\r\n FinanceAmount: \"\",\r\n BallonAmount: \"\",\r\n LoanPayment: 0,\r\n LoanPaymentText: \"\",\r\n CreditAssistanceFee: \"\",\r\n MonthlyAccountFee: \"\",\r\n FreqencyName: \"\",\r\n NoOfMonth: \"\",\r\n InterestRateTo: \"\",\r\n TotalLoanPayment: \"\",\r\n PPSR: \"\",\r\n };\r\n\r\n return init;\r\n}\r\n\r\n\r\nexport const getInitFinanceRequest = (): paymentOptionModel.IFinanceRequest => {\r\n let init: paymentOptionModel.IFinanceRequest = {\r\n Country: null,\r\n SelectedTermOptions: null,\r\n SelectedBalloonPaymentOptions: null,\r\n SelectedPaymentFrequency: null,\r\n Deposit: 1000,\r\n DriveawayCost: 0,\r\n Source: null\r\n };\r\n\r\n return init;\r\n}\r\n\r\nexport const getInitFinanceStatus = (): financeStatusModel.IFinanceStatus => {\r\n let init: financeStatusModel.IFinanceStatus = {\r\n Country: null,\r\n YanaCustomerID: null,\r\n YanaCustomerNo: null,\r\n YanaOrderID: null,\r\n YanaOrderNo: null,\r\n FinanceApplicationStepName: null,\r\n FinanceApplicationStepLink: null\r\n };\r\n\r\n return init;\r\n}","import { getBackendPath } from 'helpers/Uri';\r\nimport { ILandingPage, ILandingPageRequest } from 'model/ILandingPage';\r\nimport * as availableInventoryModel from 'model/IAvailableInventory';\r\nimport * as variantModel from 'model/IVehicle';\r\nimport * as rdHelper from 'helpers/Uri';\r\n\r\nexport const getAvailableInventoryFilters = async (\r\n country: string,\r\n needDefaultValue: boolean,\r\n variantRequest: variantModel.IVariantYanaRequest\r\n): Promise => {\r\n const requestOptions: any = {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n body: JSON.stringify({\r\n Country: country,\r\n NeedDefaultValue: needDefaultValue,\r\n Variant: variantRequest\r\n }),\r\n credentials: 'include',\r\n };\r\n const response = await fetch(\r\n `${getBackendPath()}/api/Vehicle/get-available-inventory-filters`,\r\n requestOptions,\r\n );\r\n const json = await response.json();\r\n rdHelper.noActivityRedirectHomePage(json);\r\n return json;\r\n};\r\n\r\n\r\nexport const getAvailableInventory = async (\r\n availableInventory: availableInventoryModel.IAvailableInventoryRequest,\r\n abortSignal?: any,\r\n): Promise => {\r\n const requestOptions: any = {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n body: JSON.stringify(availableInventory),\r\n credentials: 'include',\r\n signal: abortSignal,\r\n };\r\n const response = await fetch(\r\n `${getBackendPath()}/api/Vehicle/get-available-inventory-item`,\r\n requestOptions,\r\n );\r\n const json = await response.json();\r\n rdHelper.noActivityRedirectHomePage(json);\r\n return json;\r\n};\r\n\r\n\r\nexport const getLandingPage = async (\r\n landing: ILandingPageRequest\r\n): Promise => {\r\n const requestOptions: any = {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n body: JSON.stringify(landing),\r\n credentials: 'include',\r\n };\r\n const response = await fetch(\r\n `${getBackendPath()}/api/Vehicle/get-landing-page`,\r\n requestOptions,\r\n );\r\n const json = await response.json();\r\n return json;\r\n};\r\n\r\nexport const getVariants = async (\r\n requestData: variantModel.IVariantYanaRequest\r\n): Promise => {\r\n const requestOptions: any = {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n body: JSON.stringify(requestData),\r\n credentials: 'include',\r\n };\r\n const response = await fetch(\r\n `${getBackendPath()}/api/Vehicle/get-variants`,\r\n requestOptions,\r\n );\r\n const json = await response.json();\r\n rdHelper.noActivityRedirectHomePage(json);\r\n return json;\r\n};\r\n\r\nexport const getExteriors = async (\r\n requestData: variantModel.IExterior\r\n): Promise => {\r\n const requestOptions: any = {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n body: JSON.stringify(requestData),\r\n credentials: 'include',\r\n };\r\n const response = await fetch(\r\n `${getBackendPath()}/api/Vehicle/get-exterior`,\r\n requestOptions,\r\n );\r\n const json = await response.json();\r\n rdHelper.noActivityRedirectHomePage(json);\r\n return json;\r\n};\r\n\r\nexport const getInteriors = async (\r\n requestData: variantModel.IInterior\r\n): Promise => {\r\n const requestOptions: any = {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n body: JSON.stringify(requestData),\r\n credentials: 'include',\r\n };\r\n const response = await fetch(\r\n `${getBackendPath()}/api/Vehicle/get-interior`,\r\n requestOptions,\r\n );\r\n const json = await response.json();\r\n rdHelper.noActivityRedirectHomePage(json);\r\n return json;\r\n};\r\n\r\n\r\nexport const getOptions = async (\r\n requestData: variantModel.IVehicleOptionRequest\r\n): Promise => {\r\n const requestOptions: any = {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n body: JSON.stringify(requestData),\r\n credentials: 'include',\r\n };\r\n const response = await fetch(\r\n `${getBackendPath()}/api/Vehicle/get-vehicle-options`,\r\n requestOptions,\r\n );\r\n const json = await response.json();\r\n rdHelper.noActivityRedirectHomePage(json);\r\n return json;\r\n};","import { ILandingPage } from 'model/ILandingPage';\r\nimport * as rdEnum from 'helpers/enum';\r\nexport const getInitLandingPage = (): ILandingPage => {\r\n let init: ILandingPage = {\r\n Country: \"\",\r\n State: \"\",\r\n Postcode: \"\",\r\n Suburb: \"\",\r\n CustomerType: rdEnum.enumClientTypes.Private.Code,\r\n Model: rdEnum.constModel,\r\n Subtotal: null,\r\n DriveAwayCost: null,\r\n Available: \"\",\r\n YanaVariantID: \"\",\r\n YanaVariantName: \"\",\r\n VariantPrice: 0,\r\n ExteriorID: \"\",\r\n ExteriorPrice: 0,\r\n InteriorID: \"\",\r\n InteriorPrice: 0,\r\n Options: [],\r\n LoadPaymentText: \"\",\r\n FrequentlyText: \"\",\r\n };\r\n\r\n return init;\r\n}","import { IChargingDialogProps } from 'model/IChargingDialogProps';\r\nimport { Dialog } from 'primereact/dialog';\r\nimport React, { useState } from 'react'\r\nimport { Button, Col, Row } from 'react-bootstrap';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport * as vehicleModel from 'model/IVehicle';\r\nimport * as selectedConfigStore from 'stores/UserSelectedVehicleConfig';\r\nimport { IAppState } from 'model/IAppState';\r\nimport * as rdEnum from 'helpers/enum';\r\nimport { currencyFormat } from 'helpers/Uri';\r\nimport { isNil } from 'lodash';\r\n\r\nconst ImportantInfoDialog = () => {\r\n const dispatch = useDispatch();\r\n\r\n const selectedLocationFromStore = useSelector((state: IAppState) => {\r\n return state.selectedDelivery;\r\n });\r\n\r\n const [isOpen, setIsOpen] = useState(false);\r\n\r\n const handleDialogOpen = () => {\r\n setIsOpen(true);\r\n }\r\n\r\n const handleDialogHide = () => {\r\n setIsOpen(false);\r\n }\r\n\r\n const toPrivacy = () => {\r\n window.open('https://www.mtf.co.nz/privacy-statement/')\r\n }\r\n\r\n const toRatesFees = () => {\r\n window.open('https://www.mtf.co.nz/resources/interest-rates-and-fees/')\r\n }\r\n\r\n return (\r\n <>\r\n
\r\n {\r\n handleDialogOpen();\r\n }}>1, 2Important Information.\r\n  Overseas model shown.\r\n
\r\n\r\n handleDialogHide()}\r\n draggable={false} resizable={true}\r\n >\r\n
\r\n

IMPORTANT INFORMATION

\r\n
\r\n
\r\n {/*

\r\n 1This is the drive away price for the selected country, state or territory. It is based on the owner being a ‘rating one’ driver aged 40 with a good driving record. Actual drive away price may differ depending on your individual circumstances. Price does not take into account any discount, rebate or promotion that may be available from time to time. Cadillac reserves the right to vary the Drive away price at its discretion, including for changes in specifications or features. Vehicle registration includes 12 months’ registration fees, 12 months’ CTP insurance and any other associated charges in accordance with country, state and/or territory legislation. Cadillac reserves the right to make changes to this website on any information and elements as time progresses, e.g. to final prices, taxes etc. The website may vary from market to market and is subject to change without notice.\r\n

\r\n
\r\n

\r\n Finance provided to approved applicants by Plenti Finance Pty Limited ABN 82 636 759 861.\r\n

\r\n
\r\n

\r\n 2The comparison rate is based on a secured car loan of $30,000 repaid over 60 months at an interest rate of 1.99% p.a.. WARNING: This comparison rate is true only for the examples given and may not include all fees and charges. Different terms, fees or other loan amounts might result in a different comparison rate. Finance provided to approved applicants by Plenti Finance Pty Limited ABN 82 636 759 861. \r\n

\r\n

\r\n Terms, conditions and fees apply to any loan. Any calculations made by this calculator are dependent on the accuracy of the information provided, are intended to be used as a guide only, must not be relied on for any reason as conclusive, and do not constitute a quote. Your application will be subject to a credit approval process and lending criteria. Cadillac will not store the information provided in this calculator. Cadillac and their finance partner do not accept any responsibility for any loss, costs, or liability directly or indirectly incurred by persons who rely on any amount calculated by this calculator.\r\n

\r\n

\r\n Order and apply for finance on an eligible Cadillac vehicle by 31 August 2024 and take delivery by 30 September 2024 to qualify. Valid only for eligible purchases of new Cadillac configurations for finance loan terms up to 5 years. Not eligible with balloon repayments. Credit subject to financier's approval. Terms, conditions, fees and charges apply Interest rates are subject to change.\r\n

\r\n

\r\n This information does not constitute financial advice and you should consider whether it is appropriate to your circumstances before you act in reliance on it. For detailed advice and to discuss finance options tailored to your needs to determine the best finance option for your circumstances, we recommend speaking with a licensed independent financial advisor.\r\n

\r\n
\r\n

\r\n 3Availability is an estimate only and subject to change without notice. More accurate timing will be provided upon order and closer to the time of delivery.\r\n

*/}\r\n {/*

\r\n 1This is the drive away price for the selected country, state or territory. It is based on the owner being a ‘rating one’ driver aged 40 with a good driving record. The drive away price displayed is inclusive of the vehicle purchase price, goods and services tax (GST), luxury car tax (LCT), stamp duty, compulsory third party insurance, registration, a plate fees and a GST-inclusive regional delivery fee if applicable. The final drive away price may differ depending on your individual circumstances. The price does not take into account any valid discount, rebate or promotion that may be available from time to time. Each country, state or territory may offer additional registration types which are not covered in this configurator, therefore your individual situation may vary and have an impact on the final Drive Away price. Cadillac reserves the right to vary the Drive away price at its discretion, including for changes in specifications or features. The final Drive Away price will be provided to you upon checkout.\r\n

*/}\r\n {\r\n selectedLocationFromStore?.Country?.code == rdEnum.enumCountryCode.Australia\r\n ?\r\n

\r\n 1This is the drive away price for the selected country, state or territory. It is based on the owner being a ‘rating one’ driver aged 40 with a good driving record. The drive away price displayed is inclusive of the vehicle purchase price, goods and services tax (GST), luxury car tax (LCT), stamp duty, compulsory third party insurance, registration, a plate fees and a GST-inclusive regional delivery fee if applicable. The final drive away price may differ depending on your individual circumstances. The price does not take into account any valid discount, rebate or promotion that may be available from time to time. Each country, state or territory may offer additional registration types which are not covered in this configurator, therefore your individual situation may vary and have an impact on the final Drive Away price. Cadillac reserves the right to vary the Drive away price at its discretion, including for changes in specifications or features. The final Drive Away price will be provided to you upon checkout.\r\n

\r\n :\r\n

\r\n 1This is the drive away price for the selected country, state or territory. The drive away price displayed is inclusive of the vehicle purchase price, goods and services tax (GST), compulsory third party insurance, registration, a plate fees and a GST-inclusive regional delivery fee if applicable. The final drive away price may differ depending on your individual circumstances. The price does not take into account any valid discount, rebate or promotion that may be available from time to time. Each country, state or territory may offer additional registration types which are not covered in this configurator, therefore your individual situation may vary and have an impact on the final Drive Away price. Cadillac reserves the right to vary the Drive away price at its discretion, including for changes in specifications or features. The final Drive Away price will be provided to you upon checkout.\r\n

\r\n }\r\n {/*

\r\n 2This monthly repayment has been estimated using a calculator developed by Cadillac in partnership with finance partners referenced below as a guide only. The repayment is indicative and intended for illustrative purposes only. Cadillac will not store the information provided in this calculator. This repayment estimate should not be considered a loan application or an offer of finance. This repayment estimate does not take into account your personal circumstances or any fees and charges or government taxes which may apply.\r\n\r\n

\r\n {\r\n selectedLocationFromStore?.Country?.name == 'Australia'\r\n ?\r\n

\r\n [Placeholder for Plenti Disclaimer – waiting on final version]\r\n

\r\n :\r\n

\r\n Finance is provided by MTF subject to its approval process, lending criteria and checks. Terms, conditions and fees apply to any offer of finance. Any personal information we collect about you may be shared with MTF and will be treated in accordance with toPrivacy()}>MTF privacy statement. Calculator information is for illustrative purposes only and must not be relied upon for any reason. The information on this page is not financial advice or an offer of finance. Interest rates are subject to change. Your interest rate may be lower or higher depending on your credit history and other factors. For more information see toRatesFees()}>rates, fees and charges to understand what borrowing may cost you. We recommend that you seek independent financial advice for your unique circumstances. Cadillac and MTF do not accept any responsibility for any direct or indirect loss, cost, or liability incurred by persons who rely on any calculator information.\r\n

\r\n } */}\r\n

\r\n {/* 3Availability and delivery dates are estimates only. Many factors impact vehicle delivery. Cadillac reserves the right to make changes to availability and delivery dates displayed throughout this configurator without notice. */}\r\n 2Availability and delivery dates are estimates only. Many factors impact vehicle delivery. Cadillac reserves the right to make changes to availability and delivery dates displayed throughout this configurator without notice.\r\n

\r\n

\r\n The information presented in this configurator is based on data available at the time. Cadillac reserves the right to make changes to this website and any information and elements as time progresses (e.g. to design, specifications, prices, taxes, delivery dates etc). The website may vary from market to market and is subject to change.\r\n

\r\n {/*

\r\n `The information presented in this configurator is based on data available at the time. Cadillac reserves the right to make changes to this website on any information and elements as time progresses, e.g. to design, specifications, final prices, taxes, delivery dates etc. The website may vary from market to market and is subject to change without notice.\r\n

*/}\r\n

\r\n {/* Vehicle shown on this page is a simulated overseas model. Actual production vehicles will vary. Vehicles shown here after are simulated local production vehicles intended for illustrative purposes. Cadillac has taken reasonable steps to ensure your digital configuration replicates the vehicle you receive in real life. Colours and other features may appear different in real life. */}\r\n The vehicle shown on this page is a simulated overseas model. Actual production vehicles will vary. Vehicles shown here after are simulated local production vehicles intended for illustrative purposes only. Cadillac has taken reasonable steps to ensure your digital configuration replicates the vehicle you receive in real life, however Cadillac cannot guarantee its accuracy. Colours and other features may appear different in real life.\r\n

\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default ImportantInfoDialog","import { getCMSAssets } from 'helpers/Uri';\r\nimport { Dialog } from 'primereact/dialog';\r\nimport React, { useEffect, useRef, useState } from 'react'\r\nimport { Button, Col, Row } from 'react-bootstrap';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\n\r\nconst DesignYourDialog = () => {\r\n \r\n const [isScrolled, setIsScrolled] = useState(false);\r\n const [isOpen, setIsOpen] = useState(false);\r\n\r\n const handleDialogOpen = () => {\r\n setIsOpen(true);\r\n }\r\n\r\n const handleDialogHide = () => {\r\n setIsOpen(false);\r\n }\r\n\r\n // console.log(isOpen);\r\n\r\n const handleScroll = (event: any) => {\r\n const scrollTop = event.target.scrollTop;\r\n setIsScrolled(scrollTop > 50);\r\n };\r\n\r\n \r\n const handleDialogShow = () => {\r\n const dialogContents = document.querySelectorAll('.p-dialog-content');\r\n \r\n dialogContents.forEach((dialogContent) => {\r\n dialogContent.addEventListener('scroll', handleScroll);\r\n });\r\n };\r\n \r\n //This useEffect used to detect the scrollTop distance and if it larger than 100, \r\n //the 'Scroll to learn more' context will disappear\r\n // Clean up event listeners when the dialog is hidden\r\n useEffect(() => {\r\n if (!isOpen) {\r\n const dialogContents = document.querySelectorAll('.p-dialog-content');\r\n dialogContents.forEach((dialogContent) => {\r\n dialogContent.removeEventListener('scroll', handleScroll);\r\n });\r\n }\r\n }, [isOpen]);\r\n\r\n const crossIcon = (\r\n \r\n )\r\n\r\n return (\r\n <>\r\n
{handleDialogOpen()}}>\r\n DESIGN YOUR\r\n
\r\n \r\n )\r\n }\r\n\r\nexport default DesignYourDialog","// This component defines a global scroll function that provides every component which import to use 'useScroll' \r\n// can redirect to HomePage(with multiple sections) and then automatically scroll to the specific section.\r\n// The necessary for display the preLoader or landing country & state selection Dialog depend on requirements.\r\n// Notice 'd2c-container' div may lose its scrollbar, and need to handle to let it overflow-y: scroll again.\r\nimport React, { createContext, useRef, useContext } from 'react';\r\nimport * as rdEnum from 'helpers/enum';\r\n\r\ninterface ScrollContextType {\r\n scrollToSection: (section: string) => void;\r\n variantRef: React.RefObject;\r\n exteriorRef: React.RefObject;\r\n interiorRef: React.RefObject;\r\n financeRef: React.RefObject;\r\n chargingRef: React.RefObject;\r\n paymentRef: React.RefObject;\r\n deliveryComponentRef: React.RefObject;\r\n deliveryRef: React.RefObject;\r\n checkoutRef: React.RefObject;\r\n watchlistRef: React.RefObject;\r\n}\r\n\r\nconst ScrollToSection = createContext(undefined);\r\n\r\nexport const ScrollProvider = ({ children }: any) => {\r\n const variantRef = useRef(null);\r\n const exteriorRef = useRef(null);\r\n const interiorRef = useRef(null);\r\n const financeRef = useRef(null);\r\n const chargingRef = useRef(null);\r\n const paymentRef = useRef(null);\r\n const deliveryComponentRef = useRef(null);\r\n const deliveryRef = useRef(null);\r\n const checkoutRef = useRef(null);\r\n const watchlistRef = useRef(null);\r\n\r\n const scrollToSection = (section: string) => {\r\n switch (section) {\r\n case rdEnum.enumScrollSection.Variant:\r\n variantRef.current?.scrollIntoView({ behavior: 'smooth' });\r\n break;\r\n case rdEnum.enumScrollSection.Exterior:\r\n exteriorRef.current?.scrollIntoView({ behavior: 'smooth' });\r\n break;\r\n case rdEnum.enumScrollSection.Interior:\r\n interiorRef.current?.scrollIntoView({ behavior: 'smooth' });\r\n break;\r\n case rdEnum.enumScrollSection.Accessories:\r\n financeRef.current?.scrollIntoView({ behavior: 'smooth' });\r\n break;\r\n case rdEnum.enumScrollSection.Charging:\r\n chargingRef.current?.scrollIntoView({ behavior: 'smooth' });\r\n break;\r\n case rdEnum.enumScrollSection.Payment:\r\n paymentRef.current?.scrollIntoView({ behavior: 'smooth' });\r\n break;\r\n case rdEnum.enumScrollSection.Delivery:\r\n deliveryRef.current?.scrollIntoView({ behavior: 'smooth' });\r\n break;\r\n case rdEnum.enumScrollSection.Checkout:\r\n checkoutRef.current?.scrollIntoView({ behavior: 'smooth' });\r\n break;\r\n case rdEnum.enumScrollSection.CheckoutForm:\r\n watchlistRef.current?.scrollIntoView({ behavior: 'smooth' });\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport const useScroll = (): ScrollContextType => {\r\n const context = useContext(ScrollToSection);\r\n if (!context) {\r\n throw new Error('useScroll must be used within a ScrollProvider');\r\n }\r\n return context;\r\n};\r\n\r\n\r\n","import { useEffect } from 'react';\r\n\r\n// Define types for `_satellite` if not already defined\r\n//declare global {\r\n// interface Window {\r\n// _satellite: {\r\n// track: (event: string, data?: Record) => void;\r\n// getVar: (name: string) => any;\r\n// [key: string]: any; // Include any other methods you may use\r\n// };\r\n// }\r\n//}\r\n\r\nexport const useSatellite = () => {\r\n const trackEvent = (event: string) => {\r\n if (window._satellite) {\r\n window._satellite.track(event);\r\n } else {\r\n console.warn('Satellite is not defined.');\r\n }\r\n };\r\n\r\n const getVariable = (name: string) => {\r\n if (window._satellite) {\r\n return window._satellite.getVar(name);\r\n }\r\n return undefined;\r\n };\r\n\r\n return { trackEvent, getVariable };\r\n};\r\n","import { getCMSAssets, getFrontendUrl } from 'helpers/Uri'\r\nimport { Dialog } from 'primereact/dialog';\r\nimport { Dropdown } from 'primereact/dropdown';\r\nimport { Button, Col, Row } from 'react-bootstrap'\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport React, { useEffect, useRef, useState } from 'react';\r\nimport { isNil } from 'lodash';\r\n\r\nimport PaymentOptions, { ChildRef } from 'components/PaymentOptions';\r\nimport { setCountryStateAction } from 'stores/Session';\r\nimport { IAppState } from 'model/IAppState';\r\nimport { ICodeName } from 'model/ICommon';\r\n\r\nimport * as paymentOptionStore from 'stores/PaymentOptions';\r\nimport * as rdEnum from 'helpers/enum';\r\nimport * as rdHelper from 'helpers/Uri';\r\nimport * as selectedConfigStore from 'stores/UserSelectedVehicleConfig';\r\nimport * as vehicleStore from 'stores/Vehicle';\r\nimport * as selectedDeliveryStore from \"stores/UserSelectedDelivery\";\r\nimport * as paymentOptionsStore from \"stores/PaymentOptions\";\r\nimport * as customerTypeStore from \"stores/CustomerType\";\r\nimport * as defaultConfigStore from 'stores/DefaultConfig';\r\nimport * as linkSourceStore from \"stores/LinkSource\";\r\n\r\nimport { ILandingPage, ILandingPageRequest } from 'model/ILandingPage';\r\nimport * as defaultConfigModel from 'model/IDefaultConfig';\r\nimport * as selectedConfigModel from 'model/IUserSelectedConfig';\r\nimport * as availableInventoryModel from 'model/IAvailableInventory';\r\nimport * as paymentOptionsModel from 'model/IPaymentOptions';\r\nimport * as paymentOptionsService from 'services/PaymentOptions';\r\nimport * as vehicleService from 'services/Vehicle';\r\nimport * as landingPageHelper from 'businessHelpers/LandingPageHelper';\r\n\r\nimport { useLocation, useNavigate } from 'react-router-dom';\r\n\r\nimport { useCountryState } from 'helpers/useCountryState';\r\nimport ImportantInfoDialog from './landing/ImportantInfoDialog';\r\nimport { checkIsShowScrollBar } from 'stores/ScrollBarDisplay';\r\nimport DesignYourDialog from './landing/DesignYourDialog';\r\nimport { setMainPageNumber } from 'stores/MainPageNumber';\r\nimport { useScroll } from 'pages/Main/ScrollToSection';\r\nimport { setGlobalDropdown } from 'stores/GlobalDropdown';\r\nimport LocationPopUp from 'components/LocationPopUp';\r\nimport { useSatellite } from 'helpers/useSatellite';\r\n\r\n\r\ninterface IDialogOpen {\r\n isGlobalDialogOpen: boolean\r\n}\r\n\r\ninterface IPreLoaderOpenProps {\r\n closePreLoader: boolean,\r\n isFromOtherPage: boolean,\r\n}\r\n\r\nconst GlobalTheme = (props: IDialogOpen) => {\r\n\r\n const { isGlobalDialogOpen } = props\r\n\r\n const dispatch = useDispatch();\r\n const countryState = useCountryState();\r\n\r\n const navigate = useNavigate();\r\n const satellite = useSatellite();\r\n const paymentOpionsRef = useRef(null);\r\n\r\n const [dialogVisible, setDialogVisible] = useState(true);\r\n\r\n const [loaderVisible, setLoaderVisible] = useState(true);\r\n\r\n const location = useLocation();\r\n const preloader = location.state as IPreLoaderOpenProps || { closeLoader: false, isFromOtherPage: false };\r\n\r\n const [initialLocation, setInitialLocation] = useState(location);\r\n\r\n const [isHovered, setIsHovered] = useState(false);\r\n\r\n const [loadPayment, setLoadPayment] = useState(0);\r\n\r\n const selectedDeliveryFromStore = useSelector((state: IAppState) => {\r\n return state.selectedDelivery;\r\n });\r\n const countryStateFromStore = useSelector((state: IAppState) => {\r\n return state.countryStateList;\r\n });\r\n //const customerTypeFromStore = useSelector((state: IAppState) => {\r\n // return state.customerType;\r\n //});\r\n //const financeFromStore = useSelector((state: IAppState) => {\r\n // return state.paymentOptions.Finance;\r\n //});\r\n\r\n useEffect(() => {\r\n setDialogVisible(isGlobalDialogOpen);\r\n dispatch(checkIsShowScrollBar(false));\r\n }, [isGlobalDialogOpen]);\r\n\r\n const menuGlobalBtn = useSelector((state: IAppState) => {\r\n return state.globalDropdown\r\n })\r\n\r\n //Crucial, next 2 useEffect manipulate the functions for display or hide the right scrollbar\r\n //Frist one, when preloader displays, hide 2.3s, until country state dialog popup\r\n useEffect(() => {\r\n\r\n const sections = document.querySelectorAll('.d2c-container');\r\n if (!preloader?.closePreLoader && !preloader?.isFromOtherPage) {\r\n sections.forEach((section: any) => {\r\n section.style.overflowY = 'hidden';\r\n // section.style.paddingRight = '15px';\r\n });\r\n\r\n const timeout = setTimeout(() => {\r\n sections.forEach((section: any) => {\r\n section.style.overflowY = 'scroll';\r\n // section.style.paddingRight = '0px';\r\n });\r\n setLoaderVisible(false);\r\n }, 2300); // 2.3 seconds timeout\r\n\r\n return () => clearTimeout(timeout); // Cleanup timeout on unmount or when loader becomes invisible\r\n } else if (preloader?.isFromOtherPage) {\r\n setLoaderVisible(false);\r\n setDialogVisible(false);\r\n sections.forEach((section: any) => {\r\n section.style.overflowY = 'scroll';\r\n // section.style.paddingRight = '0px';\r\n });\r\n } else {\r\n\r\n setLoaderVisible(false);\r\n setDialogVisible(false);\r\n }\r\n\r\n }, []);\r\n\r\n // console.log('Global Button' + menuGlobalBtn.vehicles, menuGlobalBtn.shop, !preloader?.closePreLoader)\r\n\r\n //Second one, when click global menu button and global dropdown panel collapse, hide until close the dropdown\r\n useEffect(() => {\r\n const sections = document.querySelectorAll('.d2c-container');\r\n\r\n if (menuGlobalBtn.vehicles || menuGlobalBtn.shop || loaderVisible) {\r\n sections.forEach((section: any) => {\r\n\r\n section.style.overflowY = 'hidden';\r\n // section.style.paddingRight = '0px';\r\n });\r\n } else {\r\n sections.forEach((section: any) => {\r\n section.style.overflowY = 'scroll';\r\n // section.style.paddingRight = '15px';\r\n });\r\n }\r\n }, [menuGlobalBtn]);\r\n\r\n const [countries, setCountries] = useState([]);\r\n const [selectedCountry, setSelectedCountry] = useState();\r\n\r\n const [states, setStates] = useState([]);\r\n const [selectedState, setSelectedState] = useState(null);\r\n\r\n const doGetCountry = async () => {\r\n let country = await countryState.getCountry();\r\n setCountries(country);\r\n }\r\n\r\n const doGetStates = async () => {\r\n let states = await countryState.getStates(rdEnum.enumCountryCode.Australia);\r\n setStates(states);\r\n }\r\n\r\n\r\n useEffect(() => {\r\n doGetCountry();\r\n }, []);\r\n\r\n useEffect(() => {\r\n setSelectedCountry({ code: \"\", name: \"\" });\r\n doGetStates();\r\n }, [countryStateFromStore]);\r\n\r\n\r\n const [landingPage, setLandingPage] = useState(landingPageHelper.getInitLandingPage());\r\n\r\n const handleHover = () => {\r\n setIsHovered((prevIsHovered) => !prevIsHovered);\r\n };\r\n\r\n const onCountryChange = (e: any) => {\r\n setSelectedCountry(e.value);\r\n }\r\n\r\n const onStateChange = (e: any) => {\r\n setSelectedState(e.value);\r\n }\r\n\r\n const onHide = () => {\r\n if ((selectedCountry?.code == rdEnum.enumCountryCode.Australia && selectedState)\r\n || selectedCountry?.code == rdEnum.enumCountryCode.NewZealand) {\r\n // document.body.style.overflowY = 'scroll';\r\n // document.body.style.paddingRight = '0px';\r\n dispatch(checkIsShowScrollBar(true));\r\n setDialogVisible(false);\r\n dispatch(setCountryStateAction({ Country: selectedCountry, State: selectedState }));\r\n }\r\n }\r\n\r\n const onSubmit = () => {\r\n if ((selectedCountry?.code == rdEnum.enumCountryCode.Australia && selectedState)\r\n || selectedCountry?.code == rdEnum.enumCountryCode.NewZealand) {\r\n // document.body.style.overflowY = 'scroll';\r\n // document.body.style.paddingRight = '0px';\r\n dispatch(checkIsShowScrollBar(true));\r\n\r\n //Invoke the onHide function for 1. dispatch Country & State to store, 2. close dialog\r\n onHide();\r\n\r\n //clear selected vehicle data\r\n //dispatch(selectedConfigStore.clearSelectedConfigAction());\r\n\r\n //update country/state store before call landing page api as this api is too slow to impact on getting variant/exterior/interior\r\n let delivery: selectedConfigModel.ISelectedDelivery = {\r\n Country: selectedCountry,\r\n State: selectedCountry?.code == rdEnum.enumCountryCode.NewZealand ? null : selectedState,\r\n SelectedPickupLocation: null,\r\n SelectedDeliveryOption: null,\r\n SelectedDeliveryFullAddress: null,\r\n SelectedDeliveryPostcode: null,\r\n SelectedDeliveryState: null,\r\n SelectedDeliverySuburb: null,\r\n //EstDeliveryDate: null,\r\n PrimaryAddress: null,\r\n PrimaryPostcode: null,\r\n PrimarySuburb: null,\r\n PrimaryState: null,\r\n InvalidPrimaryAddress: null,\r\n DeliveryPrice: null,\r\n DeliveryAvailable: null,\r\n DeliveryPriceErrorCode: null,\r\n DeliveryDistance: null,\r\n PickupLocationName: null,\r\n };\r\n dispatch(selectedDeliveryStore.updateDeliveryAction(delivery));\r\n\r\n //default set payment options as cash\r\n dispatch(paymentOptionsStore.updateSelectedPaymentOptionAction(rdEnum.enumPaymentOptions.Cash));\r\n\r\n //default set customer type as private customer\r\n dispatch(customerTypeStore.setCustomerTypeAction(rdEnum.enumClientTypes.Private.Code));\r\n\r\n //Normal entry\r\n //if the users are from interest link or from inventory page, wont show this popup\r\n //so clear default config store for interest link and inventory\r\n let defaultConfig: defaultConfigModel.IDefaultConfig = {\r\n Country: null,\r\n State: null,\r\n VariantName: null,\r\n ExteriorName: null,\r\n InteriorName: null,\r\n Options: [],\r\n Loaded: false,\r\n LinkKey: null,\r\n ExpiryDateText: null\r\n }\r\n dispatch(defaultConfigStore.setDefaultConfigAction(defaultConfig));\r\n dispatch(linkSourceStore.setLinkSourceAction(null));\r\n\r\n satellite.trackEvent(\"config-start\"); \r\n \r\n }\r\n }\r\n\r\n useEffect(() => {\r\n\r\n if ((!isNil(selectedDeliveryFromStore?.Country?.code) && selectedDeliveryFromStore?.Country?.code == \"AU\"\r\n && !isNil(selectedDeliveryFromStore?.State?.code) && selectedDeliveryFromStore?.State?.code != \"\")\r\n || (!isNil(selectedDeliveryFromStore?.Country?.code) && selectedDeliveryFromStore?.Country?.code == \"NZ\")\r\n ) {\r\n //console.log(\"call landing page\")\r\n doGetLandingPage();\r\n }\r\n }, [selectedDeliveryFromStore?.Country?.code, selectedDeliveryFromStore?.State?.code]);\r\n\r\n\r\n\r\n const doGetLandingPage = async () => {\r\n\r\n //country and state must be from store as users could be from interest link\r\n let request: ILandingPageRequest = {\r\n //...landingPage,\r\n Country: selectedDeliveryFromStore?.Country?.code || \"\",\r\n State: selectedDeliveryFromStore?.State?.code || \"\",\r\n Postcode: \"\",\r\n Suburb: \"\",\r\n CustomerType: rdEnum.enumClientTypes.Private.Code,\r\n Model: rdEnum.constModel\r\n };\r\n let response = await vehicleService.getLandingPage(request);\r\n if (response.status) {\r\n let landingData: ILandingPage = {\r\n Country: response.data.country,\r\n State: response.data.state,\r\n Postcode: response.data.postcode,\r\n Suburb: response.data.suburb,\r\n CustomerType: rdEnum.enumClientTypes.Private.Code,\r\n Model: request.Model,\r\n Subtotal: response.data.subTotal,\r\n DriveAwayCost: response.data.driveawayCost,\r\n Available: response.data.available,\r\n YanaVariantID: response.data.yanaVariantId,\r\n YanaVariantName: response.data.variantName,\r\n VariantPrice: response.data.variantPrice,\r\n ExteriorID: response.data.exteriorId,\r\n ExteriorPrice: response.data.exteriorPrice,\r\n InteriorID: response.data.interiorId,\r\n InteriorPrice: response.data.interiorPrice,\r\n LoadPaymentText: response.data.loanPaymentText,\r\n FrequentlyText: response.data.frequentlyText,\r\n Options: [{\r\n YanaOptionID: null,\r\n OptionType: response.data.optionType,\r\n OptionName: response.data.optionName,\r\n OptionPrice: response.data.optionPrice,\r\n OptionPicture: [],\r\n OptionPictureMobile: [],\r\n OptionDesc: null,\r\n ChargeType: null,\r\n Disable: false,\r\n TermsDescription: null\r\n }]\r\n }\r\n setLandingPage(landingData);\r\n\r\n ////update available\r\n //dispatch(selectedDeliveryStore.updateEstDeliveryDateAction(response.data.available));\r\n\r\n\r\n ////get loan payment\r\n //doGetLoanPayment(response.data.driveawayCost);\r\n }\r\n else {\r\n setLandingPage(landingPageHelper.getInitLandingPage());\r\n }\r\n\r\n }\r\n\r\n\r\n const openCashFinanceDialog = () => {\r\n\r\n if (paymentOpionsRef.current) {\r\n paymentOpionsRef.current.openDialog();\r\n //dispatch(paymentOptionStore.updateSelectedPaymentOptionAction(rdEnum.enumPaymentOptions.Finance));\r\n }\r\n\r\n };\r\n\r\n const { scrollToSection } = useScroll();\r\n\r\n const toVariant = () => {\r\n setTimeout(() => {\r\n scrollToSection('variant')\r\n }, 200);\r\n dispatch(setMainPageNumber(0));\r\n }\r\n\r\n const toTestDrive = () => {\r\n // navigate(`${getFrontendUrl()}/test-drive`);\r\n // dispatch(setGlobalDropdown(false, false));\r\n // dispatch(checkIsShowScrollBar(true))\r\n window.open('https://www.cadillacanz.com/au-en/register');\r\n }\r\n\r\n const isAndroid = /Android/i.test(navigator.userAgent);\r\n const isIOS = /iPhone|iPad|iPod/i.test(navigator.userAgent);\r\n\r\n const globalContentBox = document.querySelector('.global-content-box');\r\n\r\n if (globalContentBox) {\r\n if (isAndroid) {\r\n globalContentBox.classList.add('android');\r\n } else if (isIOS) {\r\n globalContentBox.classList.add('ios');\r\n }\r\n }\r\n\r\n const [videoKey, setVideoKey] = useState(0);\r\n\r\n // useEffect(() => {\r\n // const handleResize = () => {\r\n // // Re-trigger the video by updating the key\r\n // setVideoKey((prevKey: any) => prevKey + 1);\r\n // };\r\n\r\n // // Add event listener to window resize\r\n // window.addEventListener('resize', handleResize);\r\n\r\n // // Cleanup the event listener on component unmount\r\n // return () => {\r\n // window.removeEventListener('resize', handleResize);\r\n // };\r\n // }, []);\r\n\r\n\r\n // const videoRef = useRef(null);\r\n const lastSecondBuffer = 0.1; // Small buffer to ensure we detect the last second\r\n\r\n // useEffect(() => {\r\n // const handleResize = () => {\r\n // // Re-trigger the video by updating the key\r\n // setVideoKey((prevKey: any) => prevKey + 1);\r\n // };\r\n\r\n // // Add event listener to window resize\r\n // window.addEventListener(\"resize\", handleResize);\r\n\r\n // return () => {\r\n // window.removeEventListener(\"resize\", handleResize);\r\n // };\r\n // }, []);\r\n\r\n\r\n // useEffect(() => {\r\n // const ensureVideoReady = () => {\r\n // if (videoRef.current) {\r\n // videoRef.current.play().catch((err) => console.error(\"Video failed to play:\", err));\r\n // }\r\n // };\r\n \r\n // if (videoRef.current) {\r\n // videoRef.current.addEventListener(\"loadeddata\", ensureVideoReady);\r\n // }\r\n \r\n // return () => {\r\n // if (videoRef.current) {\r\n // videoRef.current.removeEventListener(\"loadeddata\", ensureVideoReady);\r\n // }\r\n // };\r\n // }, []);\r\n\r\n \r\n\r\n const videoRef = useRef(null);\r\n\r\n useEffect(() => {\r\n const handleVisibilityChange = () => {\r\n if (!document.hidden && videoRef.current) {\r\n // Safari-specific workaround: reload and play\r\n if (videoRef.current.ended) {\r\n videoRef.current.pause();\r\n videoRef.current.currentTime = videoRef.current.duration;\r\n }\r\n }\r\n };\r\n\r\n document.addEventListener(\"visibilitychange\", handleVisibilityChange);\r\n return () => {\r\n document.removeEventListener(\"visibilitychange\", handleVisibilityChange);\r\n };\r\n }, []);\r\n\r\n return (\r\n <>\r\n {\r\n dialogVisible && loaderVisible && (\r\n
\r\n \"Info\r\n
\r\n )\r\n }\r\n\r\n {/* *****Initial Location Popup, Very Important**** */}\r\n onHide()}>\r\n
\r\n 0 ? countries : [{ name: \"Loading...\", value: \"\" }]}\r\n onChange={(e) => onCountryChange(e)}\r\n className='global-location-dropdown'\r\n optionLabel=\"name\"\r\n placeholder={ !isNil(countries) && countries.length > 0 ? \"Country\" : \"Loading...\"} \r\n />\r\n\r\n 0 ? states : [{ name: \"Loading...\", value: \"\" }]}\r\n onChange={(e) => onStateChange(e)}\r\n className='global-location-dropdown'\r\n style={{ display: selectedCountry?.code == rdEnum.enumCountryCode.NewZealand ? 'none' : '' }}\r\n optionLabel=\"name\"\r\n placeholder={ !isNil(countries) && states.length > 0 ? \"State\" : \"Loading...\"} \r\n disabled={!selectedCountry?.code}\r\n />\r\n
\r\n\r\n \r\n
\r\n {/* *****Initial Location Popup, Very Important**** */}\r\n\r\n \r\n\r\n {\r\n !dialogVisible && (\r\n
\r\n
\r\n
\r\n \r\n
CADILLAC LYRIQ
\r\n
\r\n

Starting at {rdHelper.currencyFormatWithBlank(landingPage?.DriveAwayCost || 0)}1 on-road.  {/* or {landingPage.LoadPaymentText}/{landingPage.FrequentlyText}2*/}

\r\n\r\n {/*{!isNil(landingPage?.Available) && landingPage?.Available != \"\" && (*/}\r\n {/*

*/}\r\n {/* Available {landingPage?.Available}*/}\r\n {/* 2*/}\r\n {/*

*/}\r\n {/*)}*/}\r\n
\r\n {/*{!isNil(landingPage?.Available) && landingPage?.Available != \"\" && (*/}\r\n {/*
*/}\r\n {/* Available {landingPage?.Available}*/}\r\n {/* 3*/}\r\n {/*
*/}\r\n {/*)}*/}\r\n {/**/}\r\n
\r\n \r\n
\r\n\r\n {/*todo:*/}\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

Important Information

\r\n
*/}\r\n \r\n \"Info\r\n
toVariant()}>Scroll to start
\r\n
\r\n\r\n
\r\n
\r\n )\r\n }\r\n \r\n )\r\n}\r\n\r\nexport default GlobalTheme","import { MainLayoutPage } from 'LayoutPages';\r\nimport { GlobalMenu } from 'scene/Layout/GlobalMenu';\r\nimport GlobalTheme from './Global/GlobalTheme';\r\nimport NewVehicleInventory from './Global/inventory/NewVehicleInventory';\r\n\r\ninterface IDialogOpen {\r\n isGlobalDialogOpen: boolean\r\n}\r\n\r\nexport const GlobalPage = (props: IDialogOpen) => {\r\n\r\n const {isGlobalDialogOpen} = props\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","import { useEffect, useState } from \"react\";\r\n\r\nexport const useCheckMobileScreen = () => {\r\n const [width, setWidth] = useState(window.innerWidth);\r\n const handleWindowSizeChange = () => {\r\n setWidth(window.innerWidth);\r\n }\r\n\r\n useEffect(() => {\r\n window.addEventListener('resize', handleWindowSizeChange);\r\n return () => {\r\n window.removeEventListener('resize', handleWindowSizeChange);\r\n }\r\n }, []);\r\n\r\n return (width <= 767.98);\r\n}\r\n","import { getBackendPath } from 'helpers/Uri';\r\nimport * as profileModel from 'model/IUserProfile';\r\nimport * as rdHelper from 'helpers/Uri';\r\n\r\nexport const setSession = async (\r\n email: string\r\n //yanaCustomerID: string,\r\n //yanaCustomerNo: string\r\n): Promise => {\r\n const requestOptions: any = {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n credentials: 'include',\r\n body: JSON.stringify({\r\n email: email,\r\n }),\r\n };\r\n const response = await fetch(\r\n `${getBackendPath()}/api/User/set-session`,\r\n requestOptions,\r\n );\r\n const json = await response.json();\r\n return json;\r\n};\r\n\r\nexport const getSession = async (): Promise => {\r\n const requestOptions: any = {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n credentials: 'include',\r\n body: JSON.stringify({}),\r\n };\r\n const response = await fetch(\r\n `${getBackendPath()}/api/User/get-session`,\r\n requestOptions,\r\n );\r\n const json = await response.json();\r\n return json;\r\n};\r\n\r\n\r\nexport const clearSession = async (): Promise => {\r\n const requestOptions: any = {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n credentials: 'include',\r\n body: JSON.stringify({}),\r\n };\r\n const response = await fetch(\r\n `${getBackendPath()}/api/User/clear-session`,\r\n requestOptions,\r\n );\r\n const json = await response.json();\r\n return json;\r\n};\r\n\r\n\r\nexport const getProfile = async (\r\n yanaCustomerID: string,\r\n yanaCustomerNo: string,\r\n nzYanaCustomerID: string,\r\n nzYanaCustomerNo: string,\r\n): Promise => {\r\n const requestOptions: any = {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n credentials: 'include',\r\n body: JSON.stringify({\r\n yanaCustomerID: yanaCustomerID,\r\n yanaCustomerNo: yanaCustomerNo,\r\n nzYanaCustomerID: nzYanaCustomerID,\r\n nzYanaCustomerNo: nzYanaCustomerNo\r\n }),\r\n };\r\n const response = await fetch(\r\n `${getBackendPath()}/api/User/get-profile`,\r\n requestOptions,\r\n );\r\n const json = await response.json();\r\n rdHelper.noActivityRedirectHomePage(json);\r\n return json;\r\n};\r\n\r\nexport const saveProfile = async (\r\n userProfile: profileModel.IUserProfile,\r\n privacy: profileModel.IUserPrivacy,\r\n isUpdateProfile: boolean,\r\n): Promise => {\r\n const requestOptions: any = {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n credentials: 'include',\r\n body: JSON.stringify({\r\n userProfile: userProfile,\r\n privacy: privacy,\r\n isUpdateProfile: isUpdateProfile\r\n }),\r\n };\r\n const response = await fetch(\r\n `${getBackendPath()}/api/User/save-profile`,\r\n requestOptions,\r\n );\r\n const json = await response.json();\r\n rdHelper.noActivityRedirectHomePage(json);\r\n return json;\r\n};\r\n\r\n\r\n\r\n//todo: delete below code\r\nexport const validateEmail = async (\r\n token: string,\r\n): Promise => {\r\n const requestOptions: any = {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n credentials: 'include',\r\n body: JSON.stringify({\r\n token: token,\r\n }),\r\n };\r\n const response = await fetch(\r\n `${getBackendPath()}/api/User/validate-signup-email`,\r\n requestOptions,\r\n );\r\n const json = await response.json();\r\n return json;\r\n};\r\n\r\n\r\nexport const logout = async (): Promise => {\r\n const requestOptions: any = {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n credentials: 'include',\r\n body: JSON.stringify({}),\r\n };\r\n const response = await fetch(\r\n `${getBackendPath()}/api/User/log-out`,\r\n requestOptions,\r\n );\r\n const json = await response.json();\r\n return json;\r\n};\r\n\r\n\r\nexport const sendForgotPasswordEmail = async (\r\n email:string,\r\n): Promise => {\r\n const requestOptions: any = {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n credentials: 'include',\r\n body: JSON.stringify({\r\n email: email\r\n }),\r\n };\r\n const response = await fetch(\r\n `${getBackendPath()}/api/User/reset-password`,\r\n requestOptions,\r\n );\r\n const json = await response.json();\r\n return json;\r\n};\r\n\r\n\r\n\r\nexport const validateResetPasswordToken = async (\r\n token: string,\r\n): Promise => {\r\n const requestOptions: any = {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n credentials: 'include',\r\n body: JSON.stringify({\r\n token: token\r\n }),\r\n };\r\n const response = await fetch(\r\n `${getBackendPath()}/api/User/validate-reset-token`,\r\n requestOptions,\r\n );\r\n const json = await response.json();\r\n return json;\r\n};\r\n\r\n\r\n\r\nexport const updatePassword = async (\r\n email: string,\r\n oldPassword: string,\r\n newPassword: string,\r\n): Promise => {\r\n const requestOptions: any = {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n credentials: 'include',\r\n body: JSON.stringify({\r\n email: email,\r\n oldPassword: oldPassword,\r\n newPassword: newPassword\r\n }),\r\n };\r\n const response = await fetch(\r\n `${getBackendPath()}/api/User/update-password`,\r\n requestOptions,\r\n );\r\n const json = await response.json();\r\n return json;\r\n};\r\n\r\n\r\nexport const isShowMaintenance = async (): Promise => {\r\n const requestOptions: any = {\r\n method: 'Get',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n credentials: 'include',\r\n };\r\n const response = await fetch(\r\n `${getBackendPath()}/api/User/is-show-maintenance`,\r\n requestOptions,\r\n );\r\n const json = await response.json();\r\n return json;\r\n};\r\n\r\n\r\n","import React, { useRef, useEffect, useLayoutEffect, useState } from 'react';\r\nimport { useParams, useNavigate, Link } from 'react-router-dom';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { Row, Col, Navbar, Accordion } from 'react-bootstrap';\r\n\r\nimport {\r\n getImageFileNameByID2,\r\n IImagesState,\r\n getImageLinkByID2,\r\n getMobileImageLinkByID2,\r\n getCMSAssets,\r\n getServiceUrlPara\r\n} from 'helpers/Uri';\r\nimport { clearSessionAction } from \"stores/Session\";\r\nimport { IAppState } from 'model/IAppState';\r\nimport { enumOrdersTabName } from \"helpers/enum\";\r\nimport { useCheckMobileScreen } from 'helpers/useCheckMobileScreen';\r\nimport { isNil } from 'lodash';\r\nimport { AiOutlineSearch, AiOutlineLogin, AiOutlineUser } from \"react-icons/ai\";\r\nimport { classNames } from 'primereact/utils';\r\nimport { InputText } from 'primereact/inputtext';\r\nimport { logout } from 'services/User';\r\n\r\n//import { useAnalyticsEventTracker } from 'helpers/useAnalyticsEventTracker';\r\nimport { Menu } from 'primereact/menu';\r\nimport { UserPopUp } from 'scene/Users/UserPopUp';\r\nimport { setScrollPosition } from 'stores/ScrollPosition';\r\nimport { setMainPageNumber } from 'stores/MainPageNumber';\r\nimport { useScroll } from 'pages/Main/ScrollToSection';\r\nimport { useSatellite } from 'helpers/useSatellite';\r\n// interface IMenuClickToScrollProps {\r\n// scrollToSection: (section: string) => void;\r\n// }\r\n\r\nexport const MainMenu \r\n// : React.FC \r\n= () => {\r\n const navigate = useNavigate();\r\n const dispatch = useDispatch();\r\n const satellite = useSatellite();\r\n const {scrollToSection} = useScroll();\r\n\r\n //const gaEventTracker = useAnalyticsEventTracker('Menu');\r\n\r\n const loginSession = useSelector((state: IAppState) => {\r\n return state.session;\r\n });\r\n\r\n const scrollPosition = useSelector((state: IAppState) => {\r\n return state.scrollPosition;\r\n });\r\n\r\n const checkMainSection = useSelector((state: IAppState) => {\r\n return state.mainSection\r\n })\r\n const mainPageNumber = useSelector((state: IAppState) => {\r\n return state.mainPageNumber.mainPageNumber\r\n })\r\n\r\n\r\n const [activeButton, setActiveButton] = useState('variant');\r\n\r\n const [blackEffectMenu, setBlackEffectMenu] = useState([]);\r\n\r\n // if (activeButton == 'payment') {\r\n // setBlackEffectMenu(['variant', 'exterior', 'interior', 'accessories'])\r\n // } else if (activeButton == 'accessories') {\r\n // setBlackEffectMenu(['variant', 'exterior', 'interior'])\r\n // } else if (activeButton == 'interior') {\r\n // setBlackEffectMenu(['variant', 'exterior'])\r\n // } else if (activeButton == 'exterior') {\r\n // setBlackEffectMenu(['variant'])\r\n // } else if (activeButton == 'variant') {\r\n // setBlackEffectMenu([])\r\n // }\r\n\r\n useEffect(() => {\r\n setActiveButton(checkMainSection.mainSection);\r\n setScrollPosition('global');\r\n }, [checkMainSection.mainSection]);\r\n\r\n\r\n\r\n const isMobile = useCheckMobileScreen();\r\n\r\n const onGotoFavouritesPage = () => {\r\n navigate(`/favourites`);\r\n }\r\n const onGotoOrdersManagementPage = (tab:number) => {\r\n //buttonClickLog(\"Menu\", \"Orders\");\r\n navigate(`/member-orders/${tab}`);\r\n }\r\n const onGotoAdminOrdersManagementPage = (tab: number) => {\r\n navigate(`/manager-orders/${tab}`);\r\n }\r\n const onGotoUpdateProfilePage = () => {\r\n navigate(`/update-member-details`);\r\n }\r\n const onGotoUpdatePasswordPage = () => {\r\n navigate(`/update-password`);\r\n }\r\n\r\n const onLogOut = async () => {\r\n const result = await logout();\r\n // dispatch(clearSessionAction());\r\n // onResetToAllVehicles();\r\n showSignPage();\r\n }\r\n\r\n const showSignPage = () => {\r\n navigate(`/sign-in`);\r\n }\r\n\r\n\r\n // console.log(`${getImageLinkByID2(languageState.LanguageScreenName, images.imageList, \"logo\")}`);\r\n\r\n const element = document.getElementById('sectionBtn');\r\n if (element) {\r\n element.addEventListener('click', () => {\r\n element.classList.add('clicked');\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\n \r\n */}\r\n
\r\n \r\n
\r\n );\r\n \r\n};\r\n\r\n\r\n","\r\nimport { isNil } from 'lodash';\r\nimport { classNames } from 'primereact/utils';\r\nimport * as vehicleModel from 'model/IVehicle';\r\nimport { useSelector } from 'react-redux';\r\nimport { IAppState } from 'model/IAppState';\r\n\r\nconst CarColorSelected = (props: any) => {\r\n\r\n const { color, handleColor, colorList} = props;\r\n\r\n const handleChangeColor = (carColor: any ) => {\r\n handleColor(carColor);\r\n }\r\n\r\n const exteriorListFromStore = useSelector((appState: IAppState) => {\r\n return appState?.vehicle?.ExteriorList;\r\n });\r\n\r\n if (!isNil(colorList)) {\r\n return (\r\n <>\r\n {!isNil(colorList) && colorList != null &&\r\n colorList.length > 0 && (colorList as vehicleModel.IExterior[]).map((item: vehicleModel.IExterior, index: number) => {\r\n return (\r\n
{\r\n handleChangeColor(item.ExteriorColorName)\r\n }}\r\n data-dtm=\"modal:lyriq specifications\"\r\n >\r\n
\r\n {item.ExteriorColorName\r\n
\r\n
\r\n );\r\n\r\n })\r\n }\r\n \r\n )\r\n }\r\n else {\r\n return (\r\n <>\r\n {!isNil(exteriorListFromStore) && exteriorListFromStore != null &&\r\n exteriorListFromStore.length > 0 && (exteriorListFromStore as vehicleModel.IExterior[]).map((item: vehicleModel.IExterior, index: number) => {\r\n return (\r\n
{\r\n handleChangeColor(item.ExteriorColorName)\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 CarColorSelected","import { getCMSAssets } from 'helpers/Uri';\r\nimport React, { useEffect, useState } from 'react';\r\nimport CarColorVariantViewSwitch from '../../../components/CarColorVariantViewSwitch';\r\nimport CarColorSelected from 'pages/Main/exterior/CarColorSelected';\r\nimport { Button } from 'react-bootstrap';\r\nimport { useCheckMobileScreen } from 'helpers/useCheckMobileScreen';\r\nimport { useSelector } from 'react-redux';\r\nimport { IAppState } from 'model/IAppState';\r\nimport { isNil } from 'lodash';\r\nimport * as vehicleModel from 'model/IVehicle';\r\nimport * as vehicleService from 'services/Vehicle';\r\nimport * as vehicleHelper from 'businessHelpers/VehicleHelper';\r\n\r\nimport CarColorSelectedComparisonSport from '../exterior/CarColorSelectedComparisonSport';\r\nimport CarColorSelectedMobile from '../exterior/CarColorSelectedMobile';\r\n\r\n\r\ninterface CustomizeType {\r\n variantLeft: string,\r\n variantRight: string,\r\n colorLeft: string,\r\n colorRight: string,\r\n leftImageUrlSet: string[],\r\n rightImageUrlSet: string[],\r\n totalPriceLeft: string,\r\n totalPriceRight: string,\r\n payByMonthLeft: string,\r\n payByMonthRight: string,\r\n viewPosition: string,\r\n}\r\n\r\nconst VariantComparison = () => {\r\n\r\n const variantListFromStore = useSelector((appState: IAppState) => {\r\n return appState?.vehicle?.VariantList;\r\n });\r\n const selectedDeliveryFromStore = useSelector((state: IAppState) => {\r\n return state.selectedDelivery;\r\n });\r\n const exteriorListFromStore = useSelector((appState: IAppState) => {\r\n return appState?.vehicle?.ExteriorList;\r\n });\r\n\r\n\r\n const [leftExteriorList, setLeftExteriorList] = useState([]);\r\n const [rightExteriorList, setRightExteriorList] = useState([]);\r\n\r\n const [selectedLeftExteriorList, setSelectedLeftExteriorList] = useState(vehicleHelper.getInitExterior());\r\n const [selectedRightExteriorList, setSelectedRightExteriorList] = useState(vehicleHelper.getInitExterior());\r\n\r\n\r\n const [leftVariantName, setLeftVariantName] = useState(\"\");\r\n const [rightVariantName, setRightVariantName] = useState(\"\");\r\n const [leftVariantDesc, setLeftVariantDesc] = useState(\"\");\r\n const [rightVariantDesc, setRightVariantDesc] = useState(\"\");\r\n\r\n const [customize, setCustomize] = useState({\r\n variantLeft: 'Luxury',\r\n variantRight: 'Sport',\r\n colorLeft: 'Argent Silver Metallic',\r\n colorRight: 'Argent Silver Metallic',\r\n leftImageUrlSet: [], // vehicleFromStore.ExteriorList?.[0]?.ExteriorPicture || [],\r\n rightImageUrlSet: [], //variantListFromStore?.[1].VariantPicture || [],\r\n totalPriceLeft: '102990',\r\n totalPriceRight: '102990',\r\n payByMonthLeft: '1298',\r\n payByMonthRight: '1298',\r\n viewPosition: '',\r\n });\r\n\r\n const [initialImage, setInitialImage] = useState({\r\n initLeftColor: 'Argent Silver Metallic',\r\n initLeftImageUrlSet: [], //vehicleFromStore.ExteriorList?.[0]?.ExteriorPicture,\r\n initLeftVariant: 'Luxury',\r\n initRightColor: 'Argent Silver Metallic',\r\n initRightImageUrlSet: [], //variantListFromStore?.[1].VariantPicture,\r\n initRightVariant: 'Sport',\r\n });\r\n\r\n\r\n const [activeLeftImage, setActiveLeftImage] = useState(1);\r\n const [activeRightImage, setActiveRightImage] = useState(1);\r\n\r\n const isMobile = useCheckMobileScreen();\r\n\r\n useEffect(() => {\r\n\r\n if (!isNil(variantListFromStore) && variantListFromStore.length > 0) {\r\n doGetExterior(variantListFromStore?.[0].VariantID || null, true);\r\n doGetExterior(variantListFromStore?.[1].VariantID || null, false);\r\n\r\n setLeftVariantName(variantListFromStore[0]?.VariantName || \"\");\r\n setRightVariantName(variantListFromStore[1]?.VariantName || \"\");\r\n\r\n setLeftVariantDesc(variantListFromStore[0]?.VariantDescription || \"\")\r\n setRightVariantDesc(variantListFromStore[1]?.VariantDescription || \"\")\r\n }\r\n\r\n }, [variantListFromStore]);\r\n\r\n const doGetExterior = async (variantID: any, isLeft: boolean) => {\r\n let requestData: vehicleModel.IExterior = {\r\n Country: selectedDeliveryFromStore?.Country?.code || null,\r\n VariantID: variantID,\r\n VariantName: null,\r\n ExteriorID: null,\r\n ExteriorColorName: null,\r\n ExteriorColorDescTitle: null,\r\n ExteriorColorDesc: null,\r\n ExteriorPrice: null,\r\n ExteriorPicture: null,\r\n ExteriorPictureMobile: null,\r\n ExteriorFilterImage: null,\r\n ExteriorFilterMobile: null,\r\n IsDefault: null,\r\n HasStock: null,\r\n ExteriorOrderingNo: 0,\r\n };\r\n\r\n let response = await vehicleService.getExteriors(requestData);\r\n if (response.status) {\r\n let exteriorList: vehicleModel.IExterior[] = [];\r\n exteriorList = response.data.map((item: any) => {\r\n\r\n let exteriorTempItem: vehicleModel.IExterior = {\r\n Country: item.country,\r\n VariantID: item.variantID,\r\n VariantName: null,\r\n ExteriorID: item.exteriorID,\r\n ExteriorColorName: item.exteriorColorName,\r\n ExteriorColorDescTitle: item.exteriorColorDescTitle,\r\n ExteriorColorDesc: item.exteriorColorDesc,\r\n ExteriorPrice: item.exteriorPrice,\r\n ExteriorPicture: item.exteriorPicture,\r\n ExteriorPictureMobile: item.exteriorPictureMobile,\r\n ExteriorFilterImage: item.exteriorFilter,\r\n ExteriorFilterMobile: item.exteriorFilterMobile,\r\n IsDefault: item.isDefault,\r\n HasStock: true,\r\n ExteriorOrderingNo: 0\r\n }\r\n\r\n if (item.isDefault) {\r\n if (isLeft) {\r\n setSelectedLeftExteriorList(exteriorTempItem);\r\n }\r\n else {\r\n setSelectedRightExteriorList(exteriorTempItem);\r\n }\r\n }\r\n\r\n return exteriorTempItem;\r\n });\r\n\r\n if (isLeft) {\r\n setLeftExteriorList(exteriorList)\r\n }\r\n else {\r\n setRightExteriorList(exteriorList)\r\n }\r\n }\r\n }\r\n\r\n\r\n const handleColorLeft = (color: any) => {\r\n leftExteriorList.map((item: vehicleModel.IExterior) => {\r\n if (item.ExteriorColorName === color) {\r\n setSelectedLeftExteriorList(item);\r\n }\r\n });\r\n\r\n setActiveLeftImage(2);\r\n\r\n setTimeout(() => {\r\n setActiveLeftImage(1)\r\n }, 380);\r\n\r\n //const index = leftExteriorList?.findIndex(\r\n // (item: any) => item.ExteriorColorName === color\r\n //);\r\n //setInitialImage({\r\n // ...initialImage,\r\n // initLeftColor: customize.colorLeft,\r\n // initLeftImageUrlSet: customize.leftImageUrlSet || []\r\n //});\r\n //setCustomize({\r\n // ...customize,\r\n // colorLeft: color,\r\n // leftImageUrlSet: leftExteriorList[index]?.ExteriorPicture || [],\r\n //})\r\n //setActiveLeftImage(2)\r\n //setTimeout(() => {\r\n // setInitialImage({\r\n // ...initialImage,\r\n // initLeftColor: color,\r\n // initLeftImageUrlSet: leftExteriorList[index]?.ExteriorPicture || []\r\n // })\r\n // setActiveLeftImage(1)\r\n //}, 380);\r\n }\r\n\r\n const handleColorRight = (color: any) => {\r\n rightExteriorList.map((item: vehicleModel.IExterior) => {\r\n if (item.ExteriorColorName === color) {\r\n setSelectedRightExteriorList(item);\r\n }\r\n });\r\n\r\n setActiveRightImage(2);\r\n\r\n setTimeout(() => {\r\n setActiveRightImage(1)\r\n }, 380);\r\n\r\n\r\n //const index = vehicleFromStore.ExteriorList?.findIndex(\r\n // (item: any) => item.ExteriorColorName === color\r\n //);\r\n\r\n\r\n\r\n //setInitialImage({\r\n // ...initialImage,\r\n // initRightColor: customize.colorRight,\r\n // initRightImageUrlSet: customize.rightImageUrlSet\r\n //});\r\n //setCustomize({\r\n // ...customize,\r\n // colorRight: color,\r\n // rightImageUrlSet: vehicleFromStore.ExteriorList?.[index]?.ExteriorPicture || [],\r\n //});\r\n //setActiveRightImage(2)\r\n //setTimeout(() => {\r\n // setInitialImage({\r\n // ...initialImage,\r\n // initRightColor: color,\r\n // initRightImageUrlSet: vehicleFromStore.ExteriorList?.[index]?.ExteriorPicture || [],\r\n // // initRightImageUrlSet: sportExteriorList?.[index]?.exteriorPicture || []\r\n // })\r\n // setActiveRightImage(1)\r\n //}, 550);\r\n }\r\n\r\n const [isWhichSide, setIsWhichSide] = useState('Left');\r\n\r\n //const [ selectMobileVariant, setSelectMobileVariant ] = useState('Luxury');\r\n\r\n useEffect(() => {\r\n const initComparisons = () => {\r\n const images = document.getElementsByClassName(\"img-comp-overlay\") as HTMLCollectionOf;\r\n\r\n const compareImages = (img: HTMLElement) => {\r\n let slider: HTMLDivElement, clicked = 0, w: number, h: number;\r\n\r\n const updateWidth = () => {\r\n w = img.offsetWidth;\r\n };\r\n\r\n window.addEventListener(\"resize\", updateWidth);\r\n\r\n updateWidth();\r\n\r\n w = img.offsetWidth;\r\n h = img.offsetHeight;\r\n img.style.width = `${w / 2}px`;\r\n\r\n // console.log(img.offsetWidth);\r\n\r\n slider = document.createElement(\"div\");\r\n slider.setAttribute(\"class\", \"img-comp-slider\");\r\n img.parentElement!.insertBefore(slider, img);\r\n slider.style.top = `${h / 2 - slider.offsetHeight / 2}px`;\r\n slider.style.left = `${w / 2 - slider.offsetWidth / 2}px`;\r\n\r\n const slideReady = (e: MouseEvent | TouchEvent) => {\r\n e.preventDefault();\r\n clicked = 1;\r\n window.addEventListener(\"mousemove\", slideMove);\r\n window.addEventListener(\"touchmove\", slideMove);\r\n };\r\n\r\n const slideFinish = () => {\r\n clicked = 0;\r\n };\r\n\r\n const slideMove = (e: MouseEvent | TouchEvent) => {\r\n let pos;\r\n if (clicked === 0) return false;\r\n pos = getCursorPos(e);\r\n if (pos < 0) pos = 0;\r\n if (pos > w) pos = w;\r\n slide(pos);\r\n };\r\n\r\n slider.addEventListener(\"mousedown\", slideReady);\r\n window.addEventListener(\"mouseup\", slideFinish);\r\n slider.addEventListener(\"touchstart\", slideReady);\r\n window.addEventListener(\"touchend\", slideFinish);\r\n\r\n const getCursorPos = (e: MouseEvent | TouchEvent) => {\r\n let a, x = 0;\r\n\r\n if ('changedTouches' in e) {\r\n // TouchEvent\r\n const touch = e.changedTouches[0];\r\n a = img.getBoundingClientRect();\r\n x = touch.pageX - a.left;\r\n x = x - window.pageXOffset;\r\n } else {\r\n // MouseEvent\r\n a = img.getBoundingClientRect();\r\n x = (e as MouseEvent).pageX - a.left;\r\n x = x - window.pageXOffset;\r\n }\r\n\r\n if (x > 300) {\r\n setIsWhichSide('Right')\r\n } else {\r\n setIsWhichSide('Left')\r\n }\r\n\r\n return x;\r\n };\r\n\r\n const slide = (x: number) => {\r\n img.style.width = `${x}px`;\r\n slider.style.left = `${img.offsetWidth - slider.offsetWidth / 2}px`;\r\n };\r\n };\r\n\r\n for (let i = 0; i < images.length; i++) {\r\n compareImages(images[i]);\r\n }\r\n }\r\n initComparisons();\r\n }, []);\r\n\r\n const options = { maximumFractionDigits: 2 }\r\n\r\n\r\n\r\n\r\n return (\r\n <>\r\n {\r\n // !isMobile\r\n // ?\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \"\"\r\n \"\"\r\n
\r\n {\r\n !isMobile\r\n ?\r\n
\r\n \r\n
\r\n :\r\n <>\r\n //
\r\n // \r\n //
\r\n }\r\n
\r\n

{leftVariantName}

\r\n

Colour

\r\n
{selectedLeftExteriorList?.ExteriorColorName}
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \"\"\r\n \"\"\r\n
\r\n {\r\n !isMobile\r\n ?\r\n
\r\n \r\n
\r\n :\r\n <>\r\n //
\r\n // \r\n //
\r\n }\r\n
\r\n

{rightVariantName}

\r\n

Colour

\r\n
{selectedRightExteriorList?.ExteriorColorName}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{leftVariantName}
\r\n

{leftVariantDesc}

\r\n
\r\n
\r\n
{rightVariantName}
\r\n

{rightVariantDesc}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \"\"\r\n \"\"\r\n
\r\n
Grille design
\r\n

Angled linear 3D etched crystal shield

\r\n
\r\n
\r\n
\r\n \"\"\r\n \"\"\r\n
\r\n
Grille design
\r\n

Interlocking triangular 3D etched crystal shield

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \"\"\r\n
\r\n
Rims
\r\n {/*

Sport

*/}\r\n

21\" multi-spoke aluminium wheels with diamond cut Manoogian Silver finish.

\r\n
\r\n
\r\n
\r\n \"\"\r\n
\r\n
Rims
\r\n

21\" multi-spoke aluminum wheels, polished and with Satin Dark Android finish

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \"\"\r\n \"\"\r\n
\r\n
Exterior accents
\r\n

Luxury Silver Chrome

\r\n
\r\n
\r\n
\r\n \"\"\r\n \"\"\r\n
\r\n
Exterior accents
\r\n

Obsidian Chrome & dark accents

\r\n
\r\n
\r\n
\r\n
\r\n\r\n }\r\n \r\n )\r\n};\r\n\r\nexport default VariantComparison;\r\n","import ImageComparison from 'pages/Main/variant/ImageComparison'\r\nimport { getCMSAssets } from 'helpers/Uri'\r\nimport { Dialog } from 'primereact/dialog'\r\nimport React, { useState } from 'react'\r\nimport { Accordion, Col, Row } from 'react-bootstrap'\r\nimport VariantComparison from './VariantComparison'\r\nimport { useCheckMobileScreen } from 'helpers/useCheckMobileScreen'\r\n\r\nconst ComparisonDialog = (props: any) => {\r\n\r\n const {pageName} = props\r\n\r\n const [openLearnMoreDialog, setOpenLearnMoreDialog] = useState(false);\r\n \r\n const onVisible = () => {\r\n setOpenLearnMoreDialog(true);\r\n }\r\n\r\n const onHide = () => {\r\n setOpenLearnMoreDialog(false);\r\n }\r\n\r\n const isMobile = useCheckMobileScreen();\r\n\r\n setTimeout(() => {\r\n let accordionButton = document.getElementsByClassName(\"accordion-button\");\r\n for (let i = 0; i < accordionButton.length; i++) {\r\n accordionButton[i].setAttribute('data-dtm', 'modal:lyriq specifications');\r\n accordionButton[i].classList.add('stat-expand-icon');\r\n }\r\n }, 200);\r\n\r\n return (\r\n
\r\n {\r\n pageName == 'Configure'\r\n ?\r\n \r\n onVisible()}>\r\n \"\"\r\n Compare Variants\r\n \r\n \r\n :\r\n
onVisible()}>\r\n Compare Variants\r\n \"\"\r\n
\r\n }\r\n \r\n\r\n onHide()} draggable={false} resizable={true}>\r\n {/*
*/}\r\n
\r\n
\r\n
SPECIFICATIONS
\r\n
\r\n

LYRIQ

\r\n

Model Year 2025

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
Variant differences
\r\n \r\n

Learn what makes LYRIQ Luxury and Sport variants uniquely iconic

\r\n \r\n
\r\n
\r\n\r\n \r\n {/* Standard features */}\r\n
Standard features
\r\n \r\n

Explore the impressive features that come standard with LYRIQ Luxury and Sport variants

\r\n
\r\n
\r\n\r\n \r\n Infotainment\r\n \r\n
\r\n
\r\n

Curved 33\" diagonal advanced colour LED display1

\r\n

Wireless Apple CarPlay® phone projection2

\r\n

AKG 19-speaker premium audio system with noise cancellation and built in front-row head rest speakers

\r\n

Wireless phone charging5

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

Rotary controller with jog functionality

\r\n

Wireless Android Auto™ phone projection3

\r\n

USB ports4, type-C full-function (3 ports) and charge-only (2 ports)

\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n Safety & Driver Assistance7\r\n \r\n
\r\n
\r\n

Airbags6, Dual-stage frontal, seat-mounted side-impact for driver and front passenger; knee for driver and front passenger; head-curtain for all outboard seating positions with rollover protection

\r\n

Adaptive Cruise Control

\r\n

Buckle to Drive

\r\n

Front and Rear Park Assist

\r\n

Front Pedestrian and Cyclist Braking

\r\n

HD Surround Vision

\r\n

Lane Keep Assist with Lane Departure Warning

\r\n

Rear Camera Mirror (with washer)

\r\n

Side Bicyclist Alert

\r\n

Second Row Seatbelt Indicator

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

Adaptive Headlight System

\r\n

Blind Zone Steering Assist

\r\n

Enhanced Automatic Parking Assist

\r\n

Forward Collision Alert

\r\n

HD Rear Vision Camera

\r\n

Intersection Automatic Emergency Braking

\r\n

LED Reflective Windshield Collision Alert

\r\n

Rear Pedestrian Alert

\r\n

Theft Deterrent Alarm System

\r\n

Tyre Pressure Monitoring System

\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n Interior & Comfort\r\n \r\n
\r\n
\r\n

Heated Steering Wheel

\r\n

Remote Keyless Entry

\r\n

126-colour interior ambient lighting with dual-zone customisation

\r\n

4-way power lumbar adjustment for driver and front passenger seats

\r\n

Heated and ventilated driver and front passenger seats

\r\n

Seatback recline position second row seating

\r\n

Illuminated front door sill plates

\r\n

Driver and front passenger visors with illuminated vanity mirrors

\r\n

Power windows with Express-up/down on all

\r\n

Tri-zone climate control with dedicated digital rear control panel

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

Push Button Start

\r\n

Power tilting and telescoping steering column

\r\n

8-way power adjustable driver and front passenger seats

\r\n

Power massage driver and front passenger seats

\r\n

Heated outboard second row passenger seats

\r\n

60/40 one-touch, flat-folding second row

\r\n

Power sliding dual panel sunroof with power sunshade

\r\n

Front floor mats

\r\n

Rear cargo area cover

\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n Exterior Design\r\n \r\n
\r\n
\r\n

Daytime Running Lamps (DRLs) and Adaptive LED Headlamp System housed in advanced vertical slimline design

\r\n

Laminated front side glass with solar glazing

\r\n

Automatic headlamp leveling system

\r\n

Cornering lamps

\r\n

Wheel lugs, locking

\r\n

LED tail lamps and rear turn signal indicators

\r\n

Self-sealing tyres (275/45R21)

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

Front and rear lighting choreography for approach and walk-away

\r\n

Rear privacy glass

\r\n

Innovative 3D Etched Black Crystal Shield (front grille)

\r\n

Hands-free liftgate (open and close) with programmable memory height and Cadillac crest projection light

\r\n

Exterior mirrors with heating, power adjustability, power-folding and driver-side auto dimming and integrated turn signal indicators

\r\n

Acoustic laminated windshield with heated glass, in wiper part position

\r\n

Obsidian/dark (Sport) or Luxury/silver (Luxury) chrome accents

\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n Electric Performance\r\n \r\n
\r\n
\r\n
\r\n
System
\r\n

Dual-motor All Wheel Drive (AWD)

\r\n
\r\n
\r\n
Motor
\r\n

Permanent magnet, bar wound

\r\n
\r\n
\r\n
Near-instant Torque
\r\n

610 nM8

\r\n
\r\n
\r\n
Max Speed
\r\n

210 km/h8

\r\n
\r\n
\r\n
\r\n
\r\n
Braking Efficiency
\r\n

Regenerative braking, featuring Regen on Demand® and One Pedal Driving®

\r\n
\r\n
\r\n
Power
\r\n

388 kW8

\r\n
\r\n
\r\n
Final Drive Ratio
\r\n

2109.87:1 (front)

\r\n

10.49:1 (rear km/h)

\r\n
\r\n
\r\n
0-100 km/h
\r\n

5.3 seconds8

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n Battery & Charging\r\n \r\n
\r\n
\r\n
\r\n
Battery Rated Energy
\r\n

102 kWh

\r\n
\r\n
\r\n
Type
\r\n

Rechargeable energy storage system comprising multiple linked modules

\r\n
\r\n
\r\n
Range & Efficiency
\r\n

530 kilometers in combined electric range (WLTP)9

\r\n
\r\n \r\n
\r\n
190 kW DC Fast Charge
\r\n

Charge up to 80% in 30 minutes10 11

\r\n
\r\n
\r\n
\r\n
\r\n
Battery Chemistry
\r\n

Lithium-ion NCMA cathode, blended graphite anode

\r\n
\r\n
\r\n
Combined Electric Energy Consumption
\r\n

22.5 kWh / 100 km

\r\n
\r\n \r\n {/*
\r\n
X.X kW Included Home Charging Cable
\r\n

Up to X kilometers range per hour of charge time10

\r\n
*/}\r\n
\r\n
7.4 kW Single Phase AC Charger
\r\n

Up to 43 kilometers of range per hour of charge time10 11

\r\n
\r\n
\r\n
22 kW Three Phase AC Charger
\r\n

Up to 94 kilometers of range per hour of charge time10 11

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Exterior dimensions\r\n \r\n
\r\n
\r\n
\r\n
Wheelbase
\r\n

3094 mm

\r\n
\r\n
\r\n
Overall Length
\r\n

4996 mm (front)

\r\n
\r\n
\r\n
Ground Clearance
\r\n

117 mm

\r\n
\r\n
\r\n
\r\n
\r\n
Overall Width
\r\n

2207 mm (with mirrors)

\r\n
\r\n \r\n
\r\n
Overall Height
\r\n

1623 mm

\r\n
\r\n
\r\n {\r\n !isMobile\r\n ?\r\n \"\"\r\n :\r\n \"\"\r\n }\r\n \r\n
\r\n
\r\n
\r\n \r\n Interior dimensions\r\n \r\n
\r\n
\r\n
\r\n
Headroom
\r\n

980 mm (front)

\r\n

957 mm (rear)

\r\n
\r\n
\r\n
Shoulder Room
\r\n

1497 mm (front)

\r\n

1488 mm (rear)

\r\n
\r\n
\r\n
\r\n
\r\n
Legroom
\r\n

1124 mm (front - max)

\r\n

1006 mm (rear)

\r\n
\r\n
\r\n
Hip Room
\r\n

1436 mm (front)

\r\n

1372 mm (rear)

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n Chassis & Suspension\r\n \r\n
\r\n
\r\n
\r\n
Front & Rear Suspension
\r\n

5-link independent suspension with Passive-Plus Premium Dampers

\r\n
\r\n \r\n
\r\n
Brake Type
\r\n

Brembo® performance front brakes

\r\n
\r\n
\r\n
Turning Circle
\r\n

12.1 m (curb-to-curb)

\r\n
\r\n
\r\n
Driving Modes
\r\n

Tour, Snow/Ice, Sport & My Mode (selectable on demand)

\r\n
\r\n
\r\n
\r\n
\r\n
Vehicle Control
\r\n

Traction control and Automatic Vehicle Hold

\r\n
\r\n
\r\n
Brake Rotor Size
\r\n

390 mm (front) FRT Fixed Caliper Disc

\r\n

345 mm (rear) RR Sliding Caliper Disc

\r\n
\r\n
\r\n
Steering
\r\n

Continuously Variable Electric Power Steering (EPS)

\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Weights & capacities12\r\n \r\n
\r\n
\r\n
\r\n
Tare Weight
\r\n

2,687 kg

\r\n
\r\n
\r\n
Gross Vehicle Weight
\r\n

3200 kg

\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
Passenger Volume
\r\n {/*
Passenger Volume (L)
*/}\r\n

793 L (behind rear seat)

\r\n

1722 L (rear seatbacks folded)

\r\n
\r\n
\r\n
Passenger Volume
\r\n

2976 L

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Warranty & Service\r\n \r\n
\r\n
\r\n
\r\n
Vehicle
\r\n

5 Years, unlimited kilometers13

\r\n
\r\n
\r\n
Service Intervals
\r\n

12 months / 12,000 km (whichever comes first)

\r\n

5 years, standard service included14

\r\n
\r\n
\r\n
\r\n
\r\n
Battery
\r\n

8 Years, 160,000 kilometer (whichever comes first)

\r\n
\r\n
\r\n
Premium Roadside Assistance
\r\n

5 years, complimentary premium roadside assistance15

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

Vehicles shown throughout this experience are simulated local production vehicles intended for illustrative purposes. Cadillac has taken reasonable steps to ensure your digital configuration replicates the vehicle you receive in real life. Colours and other features may appear different in real life.

\r\n\r\n

1 Full functionality requires compatible Bluetooth® and smartphone, and USB connectivity for some devices.

\r\n\r\n

2 Vehicle user interface is a product of Apple® and its terms of use and privacy policies apply. Requires compatible iPhone® and data plan rates apply. Apple CarPlay, Siri, iPhone and Apple Music are trademarks of Apple, Inc., registered in the U.S. and other countries. Use of Apple products requires acceptance of any applicable terms and conditions. Data plan rates apply.

\r\n\r\n

3 Vehicle user interface is a product of Google and its terms of use and privacy policies apply. To use Android Auto on your car display, you’ll need an Android phone running Android 6 or higher, an active data plan, and the Android Auto app. Google, Android and Android Auto are trademarks of Google LLC. Use of Google products requires acceptance of any applicable terms and conditions. Data plan rates apply.

\r\n\r\n

4 Not compatible with all devices.

\r\n\r\n

5 The system wirelessly charges one compatible mobile device. Some phones have built-in wireless charging technology and others require a special adaptor/back cover. To check for phone or other device compatibility consult your carrier.

\r\n\r\n

6 Always use seat belts and child restraints. Children are safer when properly secured in a rear seat in the appropriate child restraint. See your vehicle Owner’s Manual for more information.

\r\n\r\n

7 Safety or driver assistance features are no substitute for the driver’s responsibility to operate the vehicle in a safe manner. The driver should remain attentive to traffic, surroundings and road conditions at all times. Visibility, weather and road conditions may affect feature performance. Read the vehicle’s owner’s manual for more important safety limitations and information.

\r\n\r\n

8 Figures based on GM testing in the United States in controlled environments. Actual figures may vary and are subject to environmental conditions.

\r\n\r\n

9 The range of electric vehicles is determined using a uniform measurement procedure (WLTP). These results are not guaranteed. Range and energy consumption may vary under real-world conditions depending on driving style and various external factors. It is therefore not always possible to achieve the range according to WLTP.

\r\n\r\n

10 Actual charge times will vary based on battery condition, output of charger, vehicle settings and outside temperature. See the vehicle's Owner’s Manual for additional limitations.

\r\n\r\n

11 Home charging requires professionally installed, dedicated charge station.

\r\n\r\n

12 Cargo and load capacity restricted by weight and distribution. Subject to change pending final vehicle certification for Australia and New Zealand.

\r\n\r\n {/*

13 Placeholder for warranty disclaimer.

\r\n\r\n

14 Placeholder for standard service disclaimer.

\r\n\r\n

15 Placeholder for roadside assistance disclaimer.

*/}\r\n\r\n

13 14 15View important information and terms & conditions relating to service, roadside assistance, and warranties in the ownership section of the Cadillac Australia & New Zealand website.

\r\n
\r\n
\r\n
\r\n {/*
*/}\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default ComparisonDialog","import { getCMSAssets } from 'helpers/Uri';\r\nimport { useCheckMobileScreen } from 'helpers/useCheckMobileScreen';\r\nimport { Dialog } from 'primereact/dialog';\r\nimport React, { useEffect, useState } from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { IAppState } from 'model/IAppState';\r\n\r\nimport * as rdEnum from 'helpers/enum';\r\nimport { Col, Row } from 'react-bootstrap';\r\n\r\nconst ConfidenceDialog = () => {\r\n\r\n const linkSourceFromStore = useSelector((state: IAppState) => {\r\n return state.linkSource;\r\n });\r\n const defaultConfigStore = useSelector((state: IAppState) => {\r\n return state.defautConfig;\r\n });\r\n\r\n const selectedDeliveryFromStore = useSelector((state: IAppState) => {\r\n return state.selectedDelivery;\r\n });\r\n\r\n // const [isOpen, setIsOpen] = useState(false);\r\n\r\n // const handleDialogOpen = () => {\r\n // setIsOpen(true);\r\n // document.body.style.overflowY = 'hidden';\r\n // document.body.style.paddingRight = '15px';\r\n // }\r\n\r\n // const handleDialogHide = () => {\r\n // setIsOpen(false);\r\n // document.body.style.overflowY = 'scroll';\r\n // document.body.style.paddingRight = '0px';\r\n // }\r\n\r\n const [isScrolled, setIsScrolled] = useState(false);\r\n const [isOpen, setIsOpen] = useState(false);\r\n\r\n const isMoible = useCheckMobileScreen()\r\n\r\n const handleDialogOpen = () => {\r\n setIsOpen(true);\r\n }\r\n\r\n const handleDialogHide = () => {\r\n setIsOpen(false);\r\n }\r\n\r\n // console.log(isOpen);\r\n\r\n const handleScroll = (event: any) => {\r\n const scrollTop = event.target.scrollTop;\r\n setIsScrolled(scrollTop > 50);\r\n };\r\n\r\n\r\n const handleDialogShow = () => {\r\n const dialogContents = document.querySelectorAll('.p-dialog-content');\r\n\r\n dialogContents.forEach((dialogContent) => {\r\n dialogContent.addEventListener('scroll', handleScroll);\r\n });\r\n };\r\n\r\n //This useEffect used to detect the scrollTop distance and if it larger than 100, \r\n //the 'Scroll to learn more' context will disappear\r\n // Clean up event listeners when the dialog is hidden\r\n useEffect(() => {\r\n if (!isOpen) {\r\n const dialogContents = document.querySelectorAll('.p-dialog-content');\r\n dialogContents.forEach((dialogContent) => {\r\n dialogContent.removeEventListener('scroll', handleScroll);\r\n });\r\n }\r\n }, [isOpen]);\r\n\r\n const crossIcon = (\r\n \r\n )\r\n\r\n return (\r\n <>\r\n
{\r\n handleDialogOpen();\r\n }}\r\n >\r\n cadillac logo\r\n Explore Cadillac Confidence.\r\n \r\n {/* Discover Cadillac Confidence, included with every LYRIQ. */}\r\n
\r\n\r\n {linkSourceFromStore == rdEnum.enumLinkSource.PrivateInterestLink && (\r\n
\r\n You are using a private configuration link.\r\n The link will expire on {defaultConfigStore.ExpiryDateText}.\r\n
\r\n )}\r\n\r\n handleDialogShow()}\r\n onHide={() => handleDialogHide()}\r\n draggable={false} resizable={true}\r\n >\r\n
\r\n
\r\n \"\"\r\n

CADILLAC
CONFIDENCE

\r\n
Our commitment
with every cadillac
\r\n
\r\n
\r\n
\r\n
Price confidence
\r\n

Wherever you buy your Cadillac

\r\n
\r\n
\r\n
5 years
\r\n

unlimited kilometre warranty1

\r\n
\r\n
\r\n
5 years
\r\n

Premium roadside assist1

\r\n
\r\n
\r\n
5 years
\r\n

scheduled servicing / 5 scheduled services1

\r\n
\r\n
\r\n
8 years / 160,000km
\r\n

battery warranty
(whichever comes first)1

\r\n
\r\n
\r\n
Charging covered
\r\n {\r\n selectedDeliveryFromStore?.Country?.code == rdEnum.enumCountryCode.Australia\r\n ?\r\n

1 year complimentary public charging, and\r\n {\r\n !isMoible\r\n ?\r\n
\r\n :\r\n <> \r\n }\r\n your choice of 2 additional years public charging, or a home charger installed2\r\n

\r\n :\r\n

$400 complimentary public charging credit, and \r\n {\r\n !isMoible\r\n ?\r\n
\r\n :\r\n <> \r\n }\r\n your choice of an additional $800 public charging credit, or a home charger installed2\r\n

\r\n }\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n 1 View important information and terms & conditions relating to service, roadside assistance, and warranties in the ownership section of the Cadillac Australia & New Zealand website.\r\n \r\n

\r\n \r\n 2 Cadillac has partnered with third party providers in Australia and New Zealand to provide public and home charging services. Fair use and other policies apply. View order T&Cs when completing your purchase for more information.\r\n \r\n
\r\n
\r\n\r\n \r\n\r\n {/* handleDialogShow()}\r\n onHide={() => handleDialogHide()}\r\n draggable={false} resizable={true}\r\n >\r\n
\r\n
\r\n \"\"\r\n

CADILLAC
CONFIDENCE

\r\n
\r\n \r\n \r\n
\r\n
\r\n
PRICE
\r\n
\r\n
\r\n
\r\n

When you buy a new Cadillac, you buy from us. This means price of a new Cadillac is the same for everyone and you can be confident wherever you buy. whenever you buy.

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

Pricing consistency excludes local state or territory taxes and charges which may alter the drive away price.

\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
OWNERSHIP
\r\n
\r\n
\r\n
\r\n

5 years unlimited kilometre warranty

\r\n

5 years Premium roadside assistance

\r\n

5 years included scheduled servicing

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

View important information and terms & conditions relating to service, roadside assistance, and warranties in the ownership section of the Cadilac Australia & New Zealand website.

\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
CHARGING
\r\n
\r\n
\r\n
\r\n

1 year complimentary public charging with every Cadillac, plus your choice of

\r\n

2 years additional complimentary public charging or a home charger installed.

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

Cadillac has partnered with third party\r\n providers in Australia and New Zealand to\r\n provide public and home charging services.\r\n Fair use and other policies apply. View\r\n order T&Cs when completing your\r\n purchase for more information.

\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 ConfidenceDialog","import React, { useEffect, useState } from 'react'\r\nimport { Accordion, Button, Carousel, Col, Row } from 'react-bootstrap'\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { useLocation, useNavigate, useParams } from 'react-router-dom';\r\nimport { Dialog } from 'primereact/dialog'\r\nimport { classNames } from 'primereact/utils';\r\nimport { getCMSAssets } from 'helpers/Uri';\r\nimport ImageComparison from 'pages/Main/variant/ImageComparison';\r\nimport ComparisonDialog from './ComparisonDialog';\r\nimport { currencyFormat, getFrontendUrl } from 'helpers/Uri';\r\nimport { isNil } from 'lodash';\r\n\r\nimport * as selectedConfigStore from 'stores/UserSelectedVehicleConfig';\r\nimport * as selectedDeliveryStore from \"stores/UserSelectedDelivery\";\r\n\r\nimport { IAppState } from 'model/IAppState';\r\nimport * as availableInventoryModel from 'model/IAvailableInventory';\r\nimport * as variantModel from 'model/IVehicle';\r\nimport * as vehicleService from 'services/Vehicle';\r\nimport * as vehicleStore from 'stores/Vehicle';\r\n\r\n\r\nimport ConfidenceDialog from './ConfidenceDialog';\r\nimport { useCheckMobileScreen } from 'helpers/useCheckMobileScreen';\r\n\r\nconst Variant = () => {\r\n const dispatch = useDispatch();\r\n const navigate = useNavigate();\r\n\r\n const selectedDeliveryFromStore = useSelector((state: IAppState) => {\r\n return state.selectedDelivery;\r\n });\r\n const selectVehFromStore = useSelector((appState: IAppState) => {\r\n return appState.selectedVehicle;\r\n });\r\n const vehicleFromStore = useSelector((appState: IAppState) => {\r\n return appState.vehicle;\r\n });\r\n const selectedCustomerType = useSelector((state: IAppState) => {\r\n return state.customerType;\r\n });\r\n const defaultConfigFromStore = useSelector((state: IAppState) => {\r\n return state.defautConfig;\r\n });\r\n const variantListFromStore = useSelector((appState: IAppState) => {\r\n return appState?.vehicle?.VariantList;\r\n });\r\n const getExteriorImages = (index: number) => {\r\n return vehicleFromStore?.SelectedExterior?.ExteriorPicture != null && vehicleFromStore?.SelectedExterior?.ExteriorPicture.length > index\r\n ? vehicleFromStore?.SelectedExterior?.ExteriorPicture[index] : \"\";\r\n }\r\n\r\n const isMobile = useCheckMobileScreen();\r\n\r\n const [selectedVariant, setSelectedVariant] = useState(null);\r\n const [variants, setVariants] = useState([]);\r\n\r\n\r\n const [isTypeVisible, setIsTypeVisible] = useState(false);\r\n\r\n useEffect(() => {\r\n \r\n if (!isNil(selectedDeliveryFromStore.Country?.code)\r\n && selectedDeliveryFromStore.Country?.code != \"\") {\r\n doGetVariants();\r\n }\r\n\r\n }, [JSON.stringify({ country: selectedDeliveryFromStore.Country?.code, state: selectedDeliveryFromStore?.State?.code})]);\r\n\r\n useEffect(() => {\r\n if (!isNil(variants) && variants.length > 0) {\r\n\r\n if (!isNil(defaultConfigFromStore?.VariantName) && defaultConfigFromStore?.VariantName != \"\") {\r\n //set default variant from interest link/inventory link\r\n let updatedVariants = variants.map((item: variantModel.IVariant) => {\r\n if (defaultConfigFromStore?.VariantName?.toLowerCase() == item.VariantName?.toLowerCase()) {\r\n return {\r\n ...item,\r\n IsDefault: true\r\n };\r\n }\r\n else {\r\n return {\r\n ...item,\r\n IsDefault: false\r\n };\r\n }\r\n });\r\n\r\n let isDefaultVariant = updatedVariants.find(m => m.IsDefault);\r\n if (isDefaultVariant != null && isDefaultVariant != undefined) {\r\n setSelectedVariant(isDefaultVariant);\r\n dispatch(selectedConfigStore.updateVariantAction(\r\n isDefaultVariant?.VariantID || \"\",\r\n isDefaultVariant?.VariantName || \"\",\r\n isDefaultVariant?.VariantPrice || 0));\r\n }\r\n dispatch(vehicleStore.updateVariantAction(updatedVariants, isDefaultVariant || null));\r\n }\r\n else {\r\n //set default variant from variant api\r\n let isDefaultVariant = variants.find(m => m.IsDefault);\r\n if (isDefaultVariant != null && isDefaultVariant != undefined) {\r\n setSelectedVariant(isDefaultVariant);\r\n dispatch(selectedConfigStore.updateVariantAction(\r\n isDefaultVariant?.VariantID || \"\",\r\n isDefaultVariant?.VariantName || \"\",\r\n isDefaultVariant?.VariantPrice || 0));\r\n }\r\n dispatch(vehicleStore.updateVariantAction(variants, isDefaultVariant || null));\r\n }\r\n }\r\n else {\r\n setSelectedVariant(null);\r\n dispatch(selectedConfigStore.updateVariantAction(\"\", \"\", 0));\r\n dispatch(vehicleStore.updateVariantAction([], null));\r\n }\r\n\r\n }, [variants, defaultConfigFromStore?.VariantName])\r\n\r\n useEffect(() => {\r\n // Trigger fade-in effect when chooseColor.paid changes\r\n setIsTypeVisible(false);\r\n\r\n // Clear the visibility after the transition duration\r\n const timeoutId = setTimeout(() => {\r\n setIsTypeVisible(true)\r\n }, 260); // Adjust the duration based on your transition time\r\n\r\n // Clear the timeout to avoid unnecessary updates\r\n return () => clearTimeout(timeoutId);\r\n\r\n ImageComparison();\r\n }, [selectedVariant]);\r\n\r\n const doGetVariants = async () => {\r\n let requestData: variantModel.IVariantYanaRequest = {\r\n Country: selectedDeliveryFromStore.Country?.code || null,\r\n State: selectedDeliveryFromStore.State?.code || null,\r\n Postcode: selectedDeliveryFromStore.SelectedDeliveryPostcode,\r\n Suburb: selectedDeliveryFromStore.SelectedDeliverySuburb || null,\r\n CustomerType: selectedCustomerType,\r\n };\r\n let response = await vehicleService.getVariants(requestData);\r\n if (response.status) {\r\n let resData: variantModel.IVariant[] = [];\r\n if (response.data.length > 0) {\r\n resData = response.data.map((item: any) => {\r\n let returnVariant = {\r\n VariantID: item.variantID,\r\n VariantName: item.variantName,\r\n VariantPrice: item.variantPrice,\r\n DriveawayPrice: item.driveawayPrice,\r\n Range: item.range,\r\n Power: item.power,\r\n KmHour: item.kmHour,\r\n VariantPicture: item.variantPicture,\r\n VariantPictureMobile: item.variantPictureMobile,\r\n VariantDescription: item.variantDescription,\r\n IsDefault: item.isDefault,\r\n HasStock: null,\r\n };\r\n return returnVariant;\r\n });\r\n }\r\n setVariants(resData);\r\n }\r\n else {\r\n setVariants([]);\r\n setSelectedVariant(null);\r\n dispatch(selectedConfigStore.clearSelectedConfigAction());\r\n dispatch(vehicleStore.clearVehicleAction());\r\n //dispatch(selectedDeliveryStore.updateEstDeliveryDateAction(null));\r\n }\r\n }\r\n\r\n const variantItemTemplate = (item: variantModel.IVariant, index: number) => {\r\n\r\n return (\r\n {\r\n\r\n setSelectedVariant(item);\r\n\r\n dispatch(vehicleStore.updateSelectedVariantAction(item));\r\n dispatch(selectedConfigStore.updateVariantAction(\r\n item?.VariantID || \"\",\r\n item?.VariantName || \"\",\r\n item?.VariantPrice || 0));\r\n\r\n }}\r\n >\r\n
{item.VariantName}
\r\n from {currencyFormat(item.DriveawayPrice)}\r\n \r\n );\r\n }\r\n\r\n const isFromInventoryPage = (): boolean => {\r\n if (!isNil(defaultConfigFromStore.VariantName) && defaultConfigFromStore.VariantName != \"\"\r\n && (isNil(defaultConfigFromStore.LinkKey) || defaultConfigFromStore.LinkKey == \"\")) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n const onGoToInventory = () => {\r\n let url = `${getFrontendUrl()}/inventory?shopfront=1`;\r\n //let url = `${getFrontendUrl()}/inventory?variant=${defaultConfigFromStore.VariantName}`;\r\n //url += `&exterior=${defaultConfigFromStore.ExteriorName}&interior=${defaultConfigFromStore.InteriorName}`;\r\n //url += `&shopfront=1`;\r\n //url += `&selectedCountry=${selectedDeliveryFromStore.Country?.code}&selectedState=${selectedDeliveryFromStore.State?.code}`;\r\n navigate(url);\r\n }\r\n\r\n const directionButtons = (direction: any) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n };\r\n\r\n setTimeout(() => {\r\n let indicators = document.getElementsByClassName(\"carousel-indicators\");\r\n for (let i = 0; i < indicators.length; i++) {\r\n indicators[i].setAttribute('data-dtm', 'gallery');\r\n indicators[i].classList.add('stat-dots\"');\r\n }\r\n }, 200);\r\n\r\n return (\r\n
\r\n {isFromInventoryPage() && (\r\n
{\r\n onGoToInventory();\r\n }}>\r\n \"\"\r\n INVENTORY\r\n
\r\n )}\r\n {\r\n isMobile\r\n ?\r\n
\r\n \r\n handleOpen(0)}\r\n >\r\n \r\n \r\n handleOpen(1)}\r\n >\r\n \r\n \r\n handleOpen(2)}\r\n >\r\n \r\n \r\n \r\n
\r\n
\r\n
Range3
\r\n
\r\n
{vehicleFromStore?.SelectedVariant?.Range}
\r\n
\r\n
\r\n
\r\n
Charge to 80%4
\r\n
\r\n
{vehicleFromStore?.SelectedVariant?.Power}
\r\n
\r\n
\r\n
\r\n
0-100 km/h5
\r\n
\r\n
{vehicleFromStore?.SelectedVariant?.KmHour}
\r\n
\r\n
\r\n
\r\n
\r\n :\r\n <>\r\n }\r\n
\r\n
2025
\r\n

LYRIQ

\r\n
\r\n
\r\n
\r\n \r\n
\r\n All-Electric\r\n
\r\n\r\n \r\n\r\n

VARIANT

\r\n
\r\n {!isNil(variantListFromStore) && variantListFromStore != null &&\r\n variantListFromStore.length > 0 && (variantListFromStore as variantModel.IVariant[]).map((item: variantModel.IVariant, index: number) => {\r\n if (isFromInventoryPage()) {\r\n //if from inventory page\r\n if (item.VariantName == defaultConfigFromStore.VariantName) {\r\n return variantItemTemplate(item, index);\r\n }\r\n else {\r\n return (<>);\r\n }\r\n }\r\n else {\r\n return variantItemTemplate(item, index);\r\n }\r\n\r\n })}\r\n
\r\n \r\n
\r\n )\r\n}\r\n\r\nexport default Variant","import React, { useEffect, useState } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\n//import { useLocation } from 'react-router-dom';\r\nimport { isNil } from 'lodash';\r\nimport { classNames } from 'primereact/utils';\r\n\r\nimport * as selectedConfigStore from 'stores/UserSelectedVehicleConfig';\r\nimport * as selectedDeliveryStore from \"stores/UserSelectedDelivery\";\r\nimport * as vehicleStore from 'stores/Vehicle';\r\n\r\nimport * as rdUri from 'helpers/Uri';\r\nimport { IAppState } from 'model/IAppState';\r\nimport * as vehicleModel from 'model/IVehicle';\r\nimport * as vehicleService from 'services/Vehicle';\r\nimport { currencyFormat } from 'helpers/Uri';\r\n\r\nconst Exterior = () => {\r\n const dispatch = useDispatch();\r\n\r\n //const location = useLocation();\r\n //const searchParams = new URLSearchParams(location.search);\r\n //const selectedExteriorNameFromUrl = searchParams.get('selectedExterior');\r\n\r\n const selectedDeliveryFromStore = useSelector((state: IAppState) => {\r\n return state.selectedDelivery;\r\n });\r\n const selectVehFromStore = useSelector((appState: IAppState) => {\r\n return appState.selectedVehicle;\r\n });\r\n const vehicleFromStore = useSelector((appState: IAppState) => {\r\n return appState.vehicle;\r\n });\r\n const defaultConfigFromStore = useSelector((state: IAppState) => {\r\n return state.defautConfig;\r\n });\r\n const exteriorListFromStore = useSelector((appState: IAppState) => {\r\n return appState?.vehicle?.ExteriorList;\r\n });\r\n\r\n\r\n const [selectedExterior, setSelectedExterior] = useState(null);\r\n const [exteriors, setExteriors] = useState([]);\r\n\r\n\r\n const [isPaidVisible, setIsPaidVisible] = useState(false);\r\n\r\n\r\n useEffect(() => {\r\n if (!isNil(vehicleFromStore?.SelectedVariant?.VariantID) && vehicleFromStore?.SelectedVariant?.VariantID != \"\") {\r\n doGetExterior();\r\n }\r\n }, [vehicleFromStore?.SelectedVariant]);\r\n\r\n useEffect(() => {\r\n if (!isNil(exteriors) && exteriors.length > 0) {\r\n\r\n if (!isNil(defaultConfigFromStore?.ExteriorName) && defaultConfigFromStore?.ExteriorName != \"\") {\r\n //set default exterior from interest link/inventory link\r\n let updatedExteriors = exteriors.map((item: vehicleModel.IExterior) => {\r\n if (defaultConfigFromStore?.ExteriorName?.toLowerCase() == item.ExteriorColorName?.toLowerCase()) {\r\n return {\r\n ...item,\r\n IsDefault: true\r\n };\r\n }\r\n else {\r\n return {\r\n ...item,\r\n IsDefault: false\r\n };\r\n }\r\n });\r\n\r\n let isDefaultExterior = updatedExteriors.find(m => m.IsDefault);\r\n if (isDefaultExterior != null && isDefaultExterior != undefined) {\r\n setSelectedExterior(isDefaultExterior);\r\n dispatch(selectedConfigStore.updateExteriorAction(\r\n isDefaultExterior.ExteriorID || \"\",\r\n isDefaultExterior.ExteriorColorName || \"\",\r\n isDefaultExterior?.ExteriorPrice || 0));\r\n }\r\n dispatch(vehicleStore.updateExteriorAction(updatedExteriors, isDefaultExterior || null));\r\n\r\n }\r\n else {\r\n //set default exterior from exterior api\r\n let isDefaultExterior = exteriors.find(m => m.IsDefault);\r\n //console.log(isDefaultExterior);\r\n\r\n if (isDefaultExterior != null && isDefaultExterior != undefined) {\r\n setSelectedExterior(isDefaultExterior);\r\n dispatch(selectedConfigStore.updateExteriorAction(\r\n isDefaultExterior.ExteriorID || \"\",\r\n isDefaultExterior.ExteriorColorName || \"\",\r\n isDefaultExterior?.ExteriorPrice || 0));\r\n }\r\n dispatch(vehicleStore.updateExteriorAction(exteriors, isDefaultExterior || null));\r\n }\r\n }\r\n else {\r\n dispatch(selectedConfigStore.updateExteriorAction(\"\", \"\", 0));\r\n dispatch(vehicleStore.updateExteriorAction([], null));\r\n setSelectedExterior(null);\r\n }\r\n\r\n }, [exteriors, defaultConfigFromStore?.ExteriorName])\r\n\r\n const doGetExterior = async () => {\r\n let requestData: vehicleModel.IExterior = {\r\n Country: selectedDeliveryFromStore.Country?.code || null,\r\n VariantID: vehicleFromStore.SelectedVariant?.VariantID || null,\r\n VariantName: null,\r\n ExteriorID: null,\r\n ExteriorColorName: null,\r\n ExteriorColorDescTitle: null,\r\n ExteriorColorDesc: null,\r\n ExteriorPrice: null,\r\n ExteriorPicture: null,\r\n ExteriorPictureMobile: null,\r\n ExteriorFilterImage: null,\r\n ExteriorFilterMobile: null,\r\n IsDefault: null,\r\n HasStock: null,\r\n ExteriorOrderingNo: 0,\r\n };\r\n\r\n if (isNil(requestData.VariantID) || requestData.VariantID == \"\")\r\n return;\r\n\r\n let response = await vehicleService.getExteriors(requestData);\r\n if (response.status) {\r\n let resData: vehicleModel.IExterior[] = [];\r\n if (response.data.length > 0) {\r\n resData = response.data.map((item: any) => {\r\n return {\r\n Country: item.country,\r\n VariantID: item.variantID,\r\n VariantName: null,\r\n ExteriorID: item.exteriorID,\r\n ExteriorColorName: item.exteriorColorName,\r\n ExteriorColorDescTitle: item.exteriorColorDescTitle,\r\n ExteriorColorDesc: item.exteriorColorDesc,\r\n ExteriorPrice: item.exteriorPrice,\r\n ExteriorPicture: item.exteriorPicture,\r\n ExteriorPictureMobile: item.exteriorPictureMobile,\r\n ExteriorFilterImage: item.exteriorFilter,\r\n ExteriorFilterMobile: item.exteriorFilterMobile,\r\n IsDefault: item.isDefault,\r\n HasStock: true\r\n };\r\n });\r\n }\r\n setExteriors(resData);\r\n }\r\n else {\r\n setExteriors([]);\r\n setSelectedExterior(null);\r\n dispatch(selectedConfigStore.updateExteriorAction(\"\", \"\", 0));\r\n dispatch(vehicleStore.updateExteriorAction([], null));\r\n \r\n }\r\n }\r\n\r\n useEffect(() => {\r\n // Trigger fade-in effect when chooseColor.paid changes\r\n setIsPaidVisible(false)\r\n\r\n // Clear the visibility after the transition duration\r\n const timeoutId = setTimeout(() => {\r\n setIsPaidVisible(true);\r\n }, 260); // Adjust the duration based on your transition time\r\n\r\n // Clear the timeout to avoid unnecessary updates\r\n return () => clearTimeout(timeoutId);\r\n }, [selectedExterior?.ExteriorColorName]);\r\n\r\n\r\n const exteriorTemplate = (item: vehicleModel.IExterior, index: number) => {\r\n return (\r\n
{\r\n setSelectedExterior(item);\r\n\r\n dispatch(vehicleStore.updateSelectedExteriorAction(item || null));\r\n dispatch(selectedConfigStore.updateExteriorAction(\r\n item?.ExteriorID || \"\",\r\n item?.ExteriorColorName || \"\",\r\n item?.ExteriorPrice || 0));\r\n\r\n //clear selected accessories & charging when color changed\r\n dispatch(selectedConfigStore.updateAllOptionsAction([]));\r\n }}\r\n >\r\n
\r\n {item.ExteriorColorName\r\n
\r\n
\r\n );\r\n }\r\n\r\n\r\n return (\r\n
\r\n

EXTERIOR

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

{isPaidVisible && selectedExterior?.ExteriorColorName || ''}

\r\n \r\n {isPaidVisible && currencyFormat(selectedExterior?.ExteriorPrice || 0)}\r\n \r\n
\r\n\r\n
\r\n {!isNil(exteriorListFromStore) && exteriorListFromStore != null &&\r\n exteriorListFromStore.length > 0 && (exteriorListFromStore as vehicleModel.IExterior[]).map((item: vehicleModel.IExterior, index: number) => {\r\n if (!isNil(defaultConfigFromStore.ExteriorName) && defaultConfigFromStore.ExteriorName != \"\"\r\n && (isNil(defaultConfigFromStore.LinkKey) || defaultConfigFromStore.LinkKey == \"\")) {\r\n //if from inventory page\r\n if (item.ExteriorColorName == defaultConfigFromStore.ExteriorName) {\r\n return exteriorTemplate(item, index);\r\n }\r\n else {\r\n return (<>);\r\n }\r\n }\r\n else {\r\n return exteriorTemplate(item, index);\r\n }\r\n })}\r\n\r\n
\r\n\r\n
{selectedExterior?.ExteriorColorDescTitle} {selectedExterior?.ExteriorColorDesc}
\r\n\r\n
\r\n )\r\n}\r\n\r\nexport default Exterior","\r\nimport React, { useEffect, useState } from 'react';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\n//import { useLocation } from 'react-router-dom';\r\nimport { isNil } from 'lodash';\r\nimport { classNames } from 'primereact/utils';\r\nimport { currencyFormat } from 'helpers/Uri';\r\n\r\nimport * as selectedConfigStore from 'stores/UserSelectedVehicleConfig';\r\nimport * as selectedDeliveryStore from \"stores/UserSelectedDelivery\";\r\nimport * as vehicleStore from \"stores/Vehicle\";\r\n\r\nimport { IAppState } from 'model/IAppState';\r\nimport * as vehicleModel from 'model/IVehicle';\r\nimport * as vehicleService from 'services/Vehicle';\r\nimport * as defaultConfigStore from 'stores/DefaultConfig';\r\nimport * as defaultConfigHelper from 'businessHelpers/DefaultConfigHelper';\r\n\r\nconst Interior = () => {\r\n const dispatch = useDispatch();\r\n //const location = useLocation();\r\n //const searchParams = new URLSearchParams(location.search);\r\n //const selectedInteriorNameFromUrl = searchParams.get('selectedInterior');\r\n\r\n\r\n const selectedDeliveryFromStore = useSelector((state: IAppState) => {\r\n return state.selectedDelivery;\r\n });\r\n const selectVehFromStore = useSelector((appState: IAppState) => {\r\n return appState.selectedVehicle;\r\n });\r\n const vehicleFromStore = useSelector((appState: IAppState) => {\r\n return appState.vehicle;\r\n });\r\n const defaultConfigFromStore = useSelector((state: IAppState) => {\r\n return state.defautConfig;\r\n });\r\n const interiorListFromStore = useSelector((appState: IAppState) => {\r\n return appState?.vehicle?.InteriorList;\r\n });\r\n\r\n\r\n const [selectedInterior, setSelectedInterior] = useState(null);\r\n const [interiors, setInteriors] = useState([]);\r\n\r\n\r\n const [isPaidVisible, setIsPaidVisible] = useState(false);\r\n\r\n\r\n\r\n\r\n useEffect(() => {\r\n // Trigger fade-in effect when chooseColor.paid changes\r\n setIsPaidVisible(false);\r\n\r\n // Clear the visibility after the transition duration\r\n const timeoutId = setTimeout(() => {\r\n setIsPaidVisible(true)\r\n }, 260); // Adjust the duration based on your transition time\r\n\r\n // Clear the timeout to avoid unnecessary updates\r\n return () => clearTimeout(timeoutId);\r\n }, [vehicleFromStore?.SelectedInterior]);\r\n\r\n useEffect(() => {\r\n if (!isNil(vehicleFromStore?.SelectedExterior?.ExteriorID) && vehicleFromStore?.SelectedExterior?.ExteriorID != \"\") {\r\n doGetInterior();\r\n }\r\n }, [vehicleFromStore?.SelectedExterior])\r\n\r\n useEffect(() => {\r\n if (!isNil(vehicleFromStore?.SelectedInterior?.InteriorID) && vehicleFromStore?.SelectedInterior?.InteriorID != \"\") {\r\n doGetOptions();\r\n }\r\n }, [vehicleFromStore?.SelectedInterior])\r\n\r\n useEffect(() => {\r\n if (!isNil(interiors) && interiors.length > 0) {\r\n //set default interior from interest link/inventory link\r\n if (!isNil(defaultConfigFromStore?.InteriorName) && defaultConfigFromStore?.InteriorName != \"\") {\r\n let updatedInteriors = interiors.map((item: vehicleModel.IInterior) => {\r\n if (defaultConfigFromStore?.InteriorName?.toLowerCase() == item.InteriorColorName?.toLowerCase()) {\r\n return {\r\n ...item,\r\n IsDefault: true\r\n };\r\n }\r\n else {\r\n return {\r\n ...item,\r\n IsDefault: false\r\n };\r\n }\r\n });\r\n\r\n let isDefaultInterior = updatedInteriors.find(m => m.IsDefault);\r\n if (isDefaultInterior != null && isDefaultInterior != undefined) {\r\n setSelectedInterior(isDefaultInterior);\r\n\r\n //update Est. delivery\r\n //console.log(\"isDefaultInterior-\" + isDefaultInterior.Available);\r\n //dispatch(selectedDeliveryStore.updateEstDeliveryDateAction(isDefaultInterior.Available));\r\n\r\n //update selected interior and stock\r\n dispatch(selectedConfigStore.updateInteriorAction(\r\n isDefaultInterior.InteriorID || \"\",\r\n isDefaultInterior.InteriorColorName || \"\",\r\n isDefaultInterior?.InteriorPrice || 0,\r\n isDefaultInterior.HasStock || false));\r\n }\r\n \r\n dispatch(vehicleStore.updateInteriorAction(updatedInteriors, isDefaultInterior || null));\r\n\r\n dispatch(defaultConfigStore.setDefaultConfigLoadedAction(true));\r\n }\r\n else {\r\n //set default interior from interior api\r\n let isDefaultInterior = interiors.find(m => m.IsDefault);\r\n if (isDefaultInterior != null && isDefaultInterior != undefined) {\r\n setSelectedInterior(isDefaultInterior);\r\n\r\n //update Est. delivery\r\n //console.log(\"isDefaultInterior-\" + isDefaultInterior.Available);\r\n //dispatch(selectedDeliveryStore.updateEstDeliveryDateAction(isDefaultInterior.Available));\r\n\r\n //update selected interior and stock\r\n dispatch(selectedConfigStore.updateInteriorAction(\r\n isDefaultInterior?.InteriorID || \"\",\r\n isDefaultInterior.InteriorColorName || \"\",\r\n isDefaultInterior?.InteriorPrice || 0,\r\n isDefaultInterior.HasStock || false));\r\n }\r\n dispatch(vehicleStore.updateInteriorAction(interiors, isDefaultInterior || null));\r\n }\r\n }\r\n else {\r\n setSelectedInterior(null);\r\n //console.log(\"isDefaultInterior-null\");\r\n //dispatch(selectedDeliveryStore.updateEstDeliveryDateAction(null));\r\n dispatch(selectedConfigStore.updateInteriorAction(\"\", \"\", 0, false));\r\n dispatch(vehicleStore.updateInteriorAction([], null));\r\n }\r\n\r\n }, [interiors, defaultConfigFromStore?.InteriorName])\r\n\r\n const doGetInterior = async () => {\r\n let interiorRequest: vehicleModel.IInterior = {\r\n Country: selectedDeliveryFromStore.Country?.code || null,\r\n State: selectedDeliveryFromStore.State?.code || null,\r\n VariantID: vehicleFromStore.SelectedVariant?.VariantID || null,\r\n VariantName: vehicleFromStore.SelectedVariant?.VariantName || null,\r\n ExteriorID: vehicleFromStore.SelectedExterior?.ExteriorID || null,\r\n ExteriorName: vehicleFromStore.SelectedExterior?.ExteriorColorName || null,\r\n InteriorID: null,\r\n InteriorColorName: null,\r\n InteriorColorDescTitle: null,\r\n InteriorColorDesc: null,\r\n InteriorPrice: null,\r\n InteriorPicture: null,\r\n InteriorPictureMobile: null,\r\n InteriorFilterImage: null,\r\n InteriorFilterMobile: null,\r\n IsDefault: null,\r\n Available: null,\r\n HasStock: null,\r\n InteriorOrderingNo: 0,\r\n };\r\n\r\n if (isNil(interiorRequest.VariantID) || interiorRequest.VariantID == \"\"\r\n || isNil(interiorRequest.ExteriorID) || interiorRequest.ExteriorID == \"\")\r\n return;\r\n\r\n let response = await vehicleService.getInteriors(interiorRequest);\r\n if (response.status) {\r\n let resData: vehicleModel.IInterior[] = [];\r\n if (response.data.length > 0) {\r\n resData = response.data.map((item: any) => {\r\n return {\r\n ...interiorRequest,\r\n InteriorID: item.interiorID,\r\n InteriorColorName: item.interiorColorName,\r\n InteriorColorDescTitle: item.interiorColorDescTitle,\r\n InteriorColorDesc: item.interiorColorDesc,\r\n InteriorPrice: item.interiorColorPrice,\r\n InteriorPicture: item.interiorPicture,\r\n InteriorPictureMobile: item.interiorPictureMobile,\r\n InteriorFilterImage: item.interiorFilter,\r\n InteriorFilterMobile: item.interiorFilterMobile,\r\n IsDefault: item.isDefault,\r\n Available: item.available,\r\n HasStock: item.hasStock\r\n };\r\n });\r\n }\r\n setInteriors(resData);\r\n }\r\n else {\r\n setInteriors([]);\r\n setSelectedInterior(null);\r\n //dispatch(selectedDeliveryStore.updateEstDeliveryDateAction(null));\r\n dispatch(selectedConfigStore.updateInteriorAction(\"\", \"\", 0, false));\r\n dispatch(vehicleStore.updateInteriorAction([], null));\r\n }\r\n }\r\n\r\n const doGetOptions = async () => {\r\n let requestData: vehicleModel.IVehicleOptionRequest = {\r\n Country: selectedDeliveryFromStore.Country?.code || null,\r\n VariantID: vehicleFromStore.SelectedVariant?.VariantID || null,\r\n ExteriorID: vehicleFromStore.SelectedExterior?.ExteriorID || null,\r\n InteriorID: vehicleFromStore.SelectedInterior?.InteriorID || null,\r\n };\r\n let response = await vehicleService.getOptions(requestData);\r\n if (response.status) {\r\n let accessories: vehicleModel.IVehicleOptions[] = [];\r\n if (!isNil(response.data.accessories) && response.data.accessories.length > 0) {\r\n response.data.accessories.map((item: any) => {\r\n accessories.push({\r\n YanaOptionID: item.yanaOptionID,\r\n OptionType: item.optionType,\r\n OptionName: item.optionName,\r\n OptionPrice: item.optionPrice,\r\n OptionPicture: item.optionPicture,\r\n OptionPictureMobile: item.optionPictureMobile,\r\n OptionDesc: item.optionDesc,\r\n ChargeType: item.chargeType,\r\n Disable: false,\r\n TermsDescription: item.termsDescription\r\n });\r\n });\r\n }\r\n\r\n let chargingList: vehicleModel.IVehicleOptions[] = [];\r\n if (!isNil(response.data.charging) && response.data.charging.length > 0) {\r\n response.data.charging.map((item: any) => {\r\n chargingList.push({\r\n YanaOptionID: item.yanaOptionID,\r\n OptionType: item.optionType,\r\n OptionName: item.optionName,\r\n OptionPrice: item.optionPrice,\r\n OptionPicture: item.optionPicture,\r\n OptionPictureMobile: item.optionPictureMobile,\r\n OptionDesc: item.optionDesc,\r\n ChargeType: item.chargeType,\r\n Disable: false,\r\n TermsDescription: item.termsDescription\r\n });\r\n });\r\n }\r\n\r\n //dispatch to store\r\n dispatch(vehicleStore.updateOptionsAction(accessories, chargingList));\r\n dispatch(selectedConfigStore.updateAllOptionsAction([]));\r\n }\r\n //else {\r\n // dispatch(vehicleStore.setLoadingAction(true));\r\n //}\r\n }\r\n\r\n const interiorTemplate = (item: vehicleModel.IInterior, index: number) => {\r\n return (\r\n
{\r\n setSelectedInterior(item);\r\n\r\n dispatch(vehicleStore.updateSelectedInteriorAction(item || null));\r\n\r\n //update Est. delivery\r\n //dispatch(selectedDeliveryStore.updateEstDeliveryDateAction(item.Available));\r\n\r\n //update selected interior and stock\r\n dispatch(selectedConfigStore.updateInteriorAction(\r\n item?.InteriorID || \"\",\r\n item?.InteriorColorName || \"\",\r\n item?.InteriorPrice || 0,\r\n item.HasStock || false));\r\n\r\n //clear selected accessories & charging when color changed\r\n dispatch(selectedConfigStore.updateAllOptionsAction([]));\r\n }}\r\n >\r\n
\r\n {item.InteriorColorName\r\n
\r\n
\r\n );\r\n\r\n }\r\n\r\n return (\r\n
\r\n

INTERIOR

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

{isPaidVisible && selectedInterior?.InteriorColorName || ''}

\r\n \r\n {isPaidVisible && currencyFormat(selectedInterior?.InteriorPrice || 0)}\r\n \r\n
\r\n\r\n
\r\n {!isNil(interiorListFromStore) && interiorListFromStore != null &&\r\n interiorListFromStore.length > 0 && (interiorListFromStore as vehicleModel.IInterior[]).map((item: vehicleModel.IInterior, index: number) => {\r\n if (!isNil(defaultConfigFromStore.InteriorName) && defaultConfigFromStore.InteriorName != \"\"\r\n && (isNil(defaultConfigFromStore.LinkKey) || defaultConfigFromStore.LinkKey == \"\")) {\r\n //if from inventory page\r\n if (item.InteriorColorName == defaultConfigFromStore.InteriorName) {\r\n return interiorTemplate(item, index);\r\n }\r\n else {\r\n return (<>);\r\n }\r\n }\r\n else {\r\n return interiorTemplate(item, index);\r\n }\r\n })}\r\n
\r\n\r\n
{selectedInterior?.InteriorColorDescTitle} {selectedInterior?.InteriorColorDesc}
\r\n
\r\n )\r\n}\r\n\r\nexport default Interior","import React, { useEffect, useState } from 'react'\r\nimport { Card } from 'primereact/card';\r\nimport {Button} from 'primereact/button'\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { currencyFormat } from 'helpers/Uri';\r\n\r\nimport * as rdEnum from 'helpers/enum';\r\nimport * as selectedConfigModel from 'model/IUserSelectedConfig';\r\nimport * as vehicleModel from 'model/IVehicle';\r\nimport * as selectedConfigStore from 'stores/UserSelectedVehicleConfig';\r\nimport { RadioButton } from 'primereact/radiobutton';\r\nimport { Checkbox } from 'primereact/checkbox';\r\nimport { IAppState } from 'model/IAppState';\r\n\r\nimport { isNil } from 'lodash';\r\nimport { classNames } from 'primereact/utils';\r\n\r\nconst Accessories = () => {\r\n const dispatch = useDispatch();\r\n\r\n const accessories: vehicleModel.IVehicleOptions[] = useSelector((state: IAppState) => {\r\n return state.vehicle.Accessories;\r\n });\r\n\r\n const selectedOptionsFromStore: vehicleModel.IVehicleOptions[] | null = useSelector((state: IAppState) => {\r\n return state.selectedVehicle.Options;\r\n });\r\n\r\n const handleSelect = (item: vehicleModel.IVehicleOptions) => {\r\n dispatch(selectedConfigStore.updateOptionAction(item));\r\n };\r\n\r\n const isSelectedOption = (item: vehicleModel.IVehicleOptions): boolean => {\r\n if (isNil(selectedOptionsFromStore) || selectedOptionsFromStore.length == 0) return false;\r\n let findSelectedOption = selectedOptionsFromStore.find((selectedItems: vehicleModel.IVehicleOptions) => {\r\n //SP does not store yana option id, so when users come from interest link, there is only has option name\r\n return selectedItems?.YanaOptionID == item.YanaOptionID || selectedItems?.OptionName == item.OptionName; \r\n });\r\n return !isNil(findSelectedOption);\r\n }\r\n\r\n setTimeout(() => {\r\n let accessoriesCheckbox = document.getElementsByName(\"accessories\");\r\n for (let i = 0; i < accessoriesCheckbox.length; i++) {\r\n accessoriesCheckbox[i].setAttribute('data-dtm', 'accessories');\r\n accessoriesCheckbox[i].classList.add('stat-checkbox');\r\n }\r\n }, 200);\r\n\r\n\r\n return (\r\n
\r\n

ACCESSORIES

\r\n

Customise your LYRIQ by adding the extras you need.

\r\n\r\n {\r\n !isNil(accessories) && accessories.length > 0 && accessories.map((item: vehicleModel.IVehicleOptions, index: any) => {\r\n const header = \"Card\"0 ? item.OptionPicture[0] : \"\"} />;\r\n return (\r\n \r\n
\r\n \r\n
\r\n {\r\n handleSelect(item);\r\n }}\r\n checked={isSelectedOption(item)}\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 Accessories","import { getBackendPath } from 'helpers/Uri';\r\nimport * as interestModel from 'model/IInterest';\r\nimport * as rdHelper from 'helpers/Uri';\r\n\r\nexport const saveInterest = async (\r\n interest: interestModel.IInterest,\r\n ifCallYanaAPI: boolean,\r\n): Promise => {\r\n const requestOptions: any = {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n body: JSON.stringify({\r\n interest: interest,\r\n ifCallYanaAPI: ifCallYanaAPI\r\n }),\r\n credentials: 'include',\r\n };\r\n const response = await fetch(\r\n `${getBackendPath()}/api/interest/save-interest`,\r\n requestOptions,\r\n );\r\n const json = await response.json();\r\n rdHelper.noActivityRedirectHomePage(json);\r\n return json;\r\n};\r\n\r\n\r\nexport const getInterest = async (\r\n linkKey: string\r\n): Promise => {\r\n const requestOptions: any = {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n body: JSON.stringify({ linkKey: linkKey}),\r\n credentials: 'include',\r\n };\r\n const response = await fetch(\r\n `${getBackendPath()}/api/interest/get-interest`,\r\n requestOptions,\r\n );\r\n const json = await response.json();\r\n return json;\r\n};\r\n\r\n\r\nexport const getWaitlist = async (\r\n webkey: string,\r\n): Promise => {\r\n const requestOptions: any = {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n body: JSON.stringify({\r\n linkKey: webkey,\r\n }),\r\n credentials: 'include',\r\n };\r\n const response = await fetch(\r\n `${getBackendPath()}/api/interest/get-waitlist-data`,\r\n requestOptions,\r\n );\r\n const json = await response.json();\r\n rdHelper.noActivityRedirectHomePage(json);\r\n return json;\r\n};","import React from 'react'\r\n\r\nconst PrivacyPolicyLink = ({props}: any) => {\r\n return (\r\n window.open(\"https://www.cadillacanz.com/au-en/privacy\", \"_blank\")}\r\n style={{color: '#3A3A3A', textDecoration: 'underline', cursor: 'pointer'}}\r\n >\r\n {props}\r\n \r\n )\r\n}\r\n\r\nexport default PrivacyPolicyLink","import { InputText } from 'primereact/inputtext'\r\nimport React, { useState, useEffect } from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { Button, OverlayTrigger, Tooltip } from 'react-bootstrap';\r\nimport { classNames } from 'primereact/utils';\r\nimport { Dialog } from 'primereact/dialog';\r\nimport { getCMSAssets, getFrontendUrl } from 'helpers/Uri';\r\nimport { isNil } from 'lodash';\r\nimport { v4 as uuidv4 } from 'uuid';\r\nimport { ProgressSpinner } from 'primereact/progressspinner';\r\nimport * as rdEnum from 'helpers/enum';\r\nimport * as rdUri from 'helpers/Uri';\r\n\r\nimport { IAppState } from 'model/IAppState';\r\nimport * as interestModel from 'model/IInterest';\r\nimport * as interestService from 'services/Interest';\r\nimport PrivacyPolicyLink from 'components/PrivacyPolicyLink';\r\nimport { useSatellite } from 'helpers/useSatellite';\r\n\r\nconst ShareDialog = () => {\r\n const satellite = useSatellite();\r\n\r\n const [shareDialog, setShareDialog] = useState(false);\r\n const [tooltip, setTooltip] = useState({\r\n copyTooltip: false,\r\n emailTooltip: false\r\n });\r\n\r\n const [isCopyLink, setIsCopyLink] = useState(false);\r\n const [isEmailSend, setIsEmailSend] = useState(false);\r\n \r\n\r\n const [pageState, setPageState] = useState({\r\n email: \"\",\r\n invalidEmail: false,\r\n });\r\n\r\n const [shareFailedMessage, setShareFailedMessage] = useState(\"\");\r\n const [sharingStatus, setSharingStatus] = useState(rdEnum.enumProcessingStatus.Init);\r\n //const [savStatus, setSharingStatus] = useState(rdEnum.enumProcessingStatus.Init);\r\n const [webUniqueKey, setWebUniqueKey] = useState(\"\");\r\n\r\n //store variables\r\n const selectedDeliveryFromStore = useSelector((state: IAppState) => {\r\n return state.selectedDelivery;\r\n });\r\n const selectVehFromStore = useSelector((appState: IAppState) => {\r\n return appState.selectedVehicle;\r\n });\r\n const vehFromStore = useSelector((appState: IAppState) => {\r\n return appState.vehicle;\r\n });\r\n const selectedPaymentOptions = useSelector((appState: IAppState) => {\r\n return appState.paymentOptions;\r\n });\r\n const customerTypeForStore = useSelector((state: IAppState) => {\r\n return state.customerType;\r\n });\r\n\r\n\r\n const openShareDialog = async () => {\r\n if (isNil(webUniqueKey) || webUniqueKey == \"\") {\r\n\r\n let newKey: string = uuidv4();\r\n setWebUniqueKey(newKey);\r\n await doShareInterest(true, newKey);\r\n }\r\n else {\r\n await doShareInterest(true, webUniqueKey);\r\n }\r\n setShareDialog(true);\r\n\r\n }\r\n\r\n const onShareHide = () => {\r\n setShareDialog(false);\r\n }\r\n\r\n const handleCopy = async () => {\r\n\r\n let url = rdUri.getShareLink(webUniqueKey);\r\n navigator.clipboard.writeText(url);\r\n\r\n setIsCopyLink(true);\r\n setTimeout(() => {\r\n setIsCopyLink(false);\r\n }, 3000)\r\n\r\n // showCopySuccess();\r\n }\r\n\r\n const handleSendEmail = async () => {\r\n let invalidEmail = false;\r\n const emailValidator = !/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}$/i.test(pageState?.email);\r\n if (isNil(pageState.email) || pageState.email == \"\" || emailValidator) {\r\n invalidEmail = true;\r\n }\r\n\r\n setPageState({\r\n ...pageState,\r\n invalidEmail: invalidEmail,\r\n })\r\n\r\n if (invalidEmail) {\r\n return\r\n }\r\n\r\n setIsEmailSend(true);\r\n setTimeout(() => {\r\n setIsEmailSend(false);\r\n }, 5000)\r\n\r\n await doShareInterest(false, webUniqueKey);\r\n }\r\n\r\n const getDeliveryLocationState = () => {\r\n if (selectedDeliveryFromStore.SelectedDeliveryOption == rdEnum.enumDeliveryOptions.Pickup) {\r\n return selectedDeliveryFromStore?.SelectedPickupLocation?.LocationState;\r\n }\r\n else {\r\n return selectedDeliveryFromStore?.SelectedDeliveryState || \"\";\r\n }\r\n }\r\n\r\n const getDeliveryLocationPostcode = () => {\r\n if (selectedDeliveryFromStore.SelectedDeliveryOption == rdEnum.enumDeliveryOptions.Pickup) {\r\n return selectedDeliveryFromStore?.SelectedPickupLocation?.LocationPostcode;\r\n }\r\n else {\r\n return selectedDeliveryFromStore?.SelectedDeliveryPostcode || \"\";\r\n }\r\n }\r\n\r\n const getDeliveryLocationSuburb = () => {\r\n if (selectedDeliveryFromStore.SelectedDeliveryOption == rdEnum.enumDeliveryOptions.Pickup) {\r\n return selectedDeliveryFromStore?.SelectedPickupLocation?.LocationSuburb;\r\n }\r\n else {\r\n return selectedDeliveryFromStore?.SelectedDeliverySuburb || \"\";\r\n }\r\n }\r\n\r\n const getDeliveryLocationFullAddress = () => {\r\n if (selectedDeliveryFromStore.SelectedDeliveryOption == rdEnum.enumDeliveryOptions.Pickup) {\r\n return selectedDeliveryFromStore?.SelectedPickupLocation?.LocationAddress || \"\";\r\n }\r\n else {\r\n return selectedDeliveryFromStore?.SelectedDeliveryFullAddress || \"\";\r\n }\r\n }\r\n\r\n //todo: api and sp need add primary address(RegistrationAddress)\r\n\r\n ///1. isShareOnly: true ===> calling when dialog is open.\r\n /// In this case, we only save configuartion to DB in order to make share link working\r\n /// We don't call yana API as we don't want to send link to customer\r\n ///2. isShareOnly: false ===> calling when click share button\r\n const doShareInterest = async (isShareOnly: boolean, newWebUniqueKey: string) => {\r\n let interestData: interestModel.IInterest = {\r\n Country: selectedDeliveryFromStore?.Country?.code || \"\",\r\n State: selectedDeliveryFromStore?.State?.code || \"\",\r\n VariantName: selectVehFromStore.VariantName || \"\",\r\n VariantBasePrice: selectVehFromStore.VariantBasePrice || 0,\r\n ExteriorName: selectVehFromStore.Exterior || \"\",\r\n ExteriorPrice: selectVehFromStore.ExteriorPrice || 0,\r\n InteriorName: selectVehFromStore.Interior || \"\",\r\n InteriorPrice: selectVehFromStore.InteriorPrice || 0,\r\n PaymentOption: selectedPaymentOptions?.PaymentOption || rdEnum.enumPaymentOptions.Cash,\r\n Email: pageState.email,\r\n FirstName: null,\r\n LastName: null,\r\n Mobile: null,\r\n ABN: null,\r\n BusinessName: null,\r\n CustomerType: customerTypeForStore || rdEnum.enumClientTypes.Private.Code,\r\n DeliveryAddress: getDeliveryLocationFullAddress() || \"\",\r\n DeliveryLocationState: getDeliveryLocationState() || \"\",\r\n DeliveryLocationSuburb: getDeliveryLocationSuburb() || \"\",\r\n DeliveryLocationPostcode: getDeliveryLocationPostcode() || \"\",\r\n DeliveryOption: selectedDeliveryFromStore?.SelectedDeliveryOption || rdEnum.enumDeliveryOptions.Pickup,\r\n EstDeliveryDate: vehFromStore?.SelectedInterior?.Available || \"\",\r\n PrivacyStatement: true,\r\n Marketing: null,\r\n InterestType: rdEnum.enumInterestType.Share,\r\n Comments: null,\r\n WebUniqueKey: newWebUniqueKey,\r\n Options: selectVehFromStore.Options || [],\r\n VehicleThumbnail: \"\"\r\n };\r\n\r\n if (!isShareOnly) {\r\n setShareFailedMessage(\"\");\r\n setSharingStatus(rdEnum.enumProcessingStatus.Processing);\r\n }\r\n\r\n let response = await interestService.saveInterest(interestData, !isShareOnly);\r\n setSharingStatus(rdEnum.enumProcessingStatus.Processed);\r\n if (!isShareOnly) {\r\n if (response.status) {\r\n showEmailSuccess()\r\n }\r\n else {\r\n setShareFailedMessage(response.message);\r\n }\r\n }\r\n\r\n }\r\n\r\n\r\n const showCopySuccess = () => {\r\n // toast?.current.show({severity:'success', summary: 'Message Successfully Copied', life: 3000});\r\n setTooltip({\r\n ...tooltip,\r\n copyTooltip: true\r\n });\r\n // Hide the tooltip after a certain duration (e.g., 2 seconds)\r\n setTimeout(() => {\r\n setTooltip({\r\n ...tooltip,\r\n copyTooltip: false\r\n });\r\n }, 2000);\r\n }\r\n\r\n const showEmailSuccess = () => {\r\n setTooltip({\r\n ...tooltip,\r\n emailTooltip: true\r\n });\r\n // Hide the tooltip after a certain duration (e.g., 2 seconds)\r\n setTimeout(() => {\r\n setTooltip({\r\n ...tooltip,\r\n emailTooltip: false\r\n });\r\n }, 2000);\r\n }\r\n\r\n const tooltipCopy = Link copied to clipboard;\r\n\r\n const tooltipEmail = Email send successfully;\r\n\r\n useEffect(() => {\r\n if (shareDialog) {\r\n satellite.trackEvent(\"config-end\");\r\n }\r\n }, [shareDialog]);\r\n\r\n return (\r\n <>\r\n
openShareDialog()} data-dtm=\"checkout\">\r\n \r\n Share your LYRIQ configuration\r\n
\r\n onShareHide()} appendTo={document.body} draggable={false} resizable={true}>\r\n
\r\n
\r\n

YOUR CONFIGURATION

\r\n Copy the link below or send your configuration to an email address of your choice.\r\n
\r\n\r\n
\r\n
\r\n {/*
\r\n
\r\n Your Configuration Link:\r\n
\r\n
\r\n {rdUri.getShareLink(webUniqueKey)}\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 handleCopy()}>\r\n \"\"\r\n COPY LINK\r\n \r\n\r\n { isCopyLink && (\r\n Link copied successfully\r\n )}\r\n
\r\n
\r\n \r\n
or
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n {\r\n setPageState({\r\n ...pageState,\r\n email: e.target.value,\r\n invalidEmail: isNil(e.target.value) || e.target.value == \"\"\r\n })\r\n }}\r\n />\r\n \r\n \r\n \r\n {pageState?.invalidEmail && (\r\n Invalid email format. Please enter a valid email address.\r\n )}\r\n \r\n
\r\n\r\n
\r\n {sharingStatus == rdEnum.enumProcessingStatus.Processing && (\r\n \r\n )}\r\n\r\n {sharingStatus != rdEnum.enumProcessingStatus.Processing && (\r\n \r\n )}\r\n\r\n {/* {sharingStatus !== rdEnum.enumProcessingStatus.Processing && (\r\n \r\n \r\n \r\n )} */}\r\n\r\n {sharingStatus !== rdEnum.enumProcessingStatus.Processing && isEmailSend && (\r\n Email sent successfully\r\n )}\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n\r\n {!isNil(shareFailedMessage) && shareFailedMessage != \"\" && (\r\n
\r\n )}\r\n\r\n
Cadillac is collecting this email address for the purpose of sending your configuration. This email will be stored temporarily to enable this function in accordance with our \r\n  \r\n
\r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default ShareDialog","import React from 'react'\r\n\r\nconst IsNumberVerification = (evt: any) => {\r\n \r\n let charCode = (evt.which) ? evt.which : evt.keyCode\r\n if ((charCode < 48 || charCode > 57) && charCode != 8) {\r\n evt.preventDefault();\r\n return false;\r\n }\r\n return true;\r\n}\r\n\r\nexport default IsNumberVerification","import { getCMSAssets } from 'helpers/Uri';\r\nimport { Dialog } from 'primereact/dialog'\r\nimport React, { useState } from 'react'\r\n\r\nconst PrivacyCollectionDialog = ({props}: any) => {\r\n\r\n const [isShowDialog, setIsShowDialog] = useState(false);\r\n\r\n const onDialogOpen = () => {\r\n setIsShowDialog(true);\r\n }\r\n\r\n const onDialogHide = () => {\r\n setIsShowDialog(false);\r\n }\r\n\r\n const toPrivacy = () => {\r\n window.open('https://www.cadillacanz.com/au-en/privacy')\r\n }\r\n\r\n return (\r\n <>\r\n {\r\n props == 'checkout-payment'\r\n ?\r\n
onDialogOpen()} data-dtm=\"checkout\">\r\n Cadillac's Privacy Collection Statement\r\n \r\n
\r\n :\r\n onDialogOpen()}\r\n data-dtm=\"privacy statement\">Privacy Collection Statement\r\n }\r\n \r\n\r\n onDialogHide()} draggable={false} resizable={true}>\r\n
\r\n
\r\n

PRIVACY COLLECTION STATEMENT

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

\r\n Cadillac is collecting your personal information for the primary purpose of sending you information in relating to the order of a Cadillac product.\r\n

\r\n

\r\n If you choose not to provide your personal information to us, we may not be able to provide products to you or answer your enquiries.\r\n

\r\n

\r\n In some cases, we may disclose your personal information to our related companies, contractors, agents or third party service providers in countries outside of Australia, including United States, the European Economic Area (EEA), and other locations where we or our service providers maintain servers.\r\n

\r\n

\r\n For further details about our data privacy practices, including your rights to access or correct your information, and the procedures for privacy complaints, please refer to our privacy policy at toPrivacy()}>https://www.cadillacanz.com/au-en/privacy.\r\n

\r\n

\r\n Cadillac’s privacy policy explains how your personal information will be used and disclosed, how you can access or correct your personal information, how you can complain about a privacy breach and how Cadillac will deal with that complaint, and how you can opt out of receiving marketing materials from Cadillac.\r\n

\r\n

\r\n You can also contact the Cadillac Australia Team at 1800 CADILLAC (223455) / au.care@cadillac.com or New Zealand Team at 0800 CADILLAC (223455) / nz.care@cadillac.com.\r\n

\r\n
\r\n
\r\n
\r\n\r\n \r\n )\r\n}\r\n\r\nexport default PrivacyCollectionDialog","import React, { forwardRef, useState, useImperativeHandle, useEffect, useRef } from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { classNames } from 'primereact/utils';\r\nimport { isNil } from 'lodash';\r\nimport { Checkbox } from 'primereact/checkbox';\r\nimport { getCMSAssets, getFrontendUrl } from 'helpers/Uri';\r\nimport { Dialog } from 'primereact/dialog';\r\nimport { InputText } from 'primereact/inputtext';\r\nimport { InputTextarea } from 'primereact/inputtextarea';\r\nimport { ProgressSpinner } from 'primereact/progressspinner';\r\nimport IsNumberVerification from 'components/IsNumberVerification';\r\nimport { Button } from 'react-bootstrap';\r\n\r\nimport * as rdEnum from 'helpers/enum';\r\n\r\nimport { IAppState } from 'model/IAppState';\r\nimport * as saveDialogViewModel from 'model/ISaveDialogViewModel';\r\nimport * as interestModel from 'model/IInterest';\r\nimport * as interestService from 'services/Interest';\r\nimport PrivacyPolicyLink from 'components/PrivacyPolicyLink';\r\nimport PrivacyCollectionDialog from './PrivacyCollectionDialog';\r\n\r\n\r\n\r\nconst SaveDialog = ({ props }: any) => {\r\n const [saveDialog, setSaveDialog] = useState(false);\r\n\r\n const initPageState: saveDialogViewModel.SaveDetailsState = {\r\n firstname: \"\",\r\n lastname: \"\",\r\n email: \"\",\r\n confirmEmail: \"\",\r\n mobile: \"\",\r\n comments: \"\",\r\n checkMarketingComms: false,\r\n checkPrivacy: false,\r\n invalidFirstname: false,\r\n invalidLastname: false,\r\n invalidEmail: false,\r\n invalidConfirmEmail: false,\r\n invalidMobile: false,\r\n emailMismatch: false,\r\n invalidCheckMarketingComms: false,\r\n invalidCheckPrivacy: false,\r\n }\r\n const [pageState, setPageState] = useState(initPageState);\r\n\r\n const [saveFailedMessage, setSaveFailedMessage] = useState(\"\");\r\n const [savingStatus, setSavingStatus] = useState(rdEnum.enumProcessingStatus.Init);\r\n\r\n const [isOverflown, setIsOverflown] = useState(false);\r\n const textAreaRef = useRef(null);\r\n\r\n const checkOverflow = () => {\r\n const textarea = textAreaRef.current;\r\n\r\n if (textarea) {\r\n const rowHeight = parseInt(window.getComputedStyle(textarea).lineHeight, 12);\r\n\r\n const maxVisibleHeight = rowHeight * 8;\r\n\r\n if (textarea?.scrollHeight > maxVisibleHeight) {\r\n setIsOverflown(true);\r\n } else {\r\n setIsOverflown(false);\r\n }\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n checkOverflow(); // Check on component mount\r\n }, []);\r\n\r\n //store variables\r\n const selectedVehicleFromStore = useSelector((state: IAppState) => {\r\n return state.selectedVehicle;\r\n });\r\n const selectedDeliveryFromStore = useSelector((state: IAppState) => {\r\n return state.selectedDelivery;\r\n });\r\n const vehicleFromStore = useSelector((state: IAppState) => {\r\n return state.vehicle;\r\n });\r\n //const selectVehFromStore = useSelector((appState: IAppState) => {\r\n // return appState.selectedVehicle;\r\n //});\r\n const selectedPaymentOptions = useSelector((appState: IAppState) => {\r\n return appState.paymentOptions;\r\n });\r\n const customerTypeForStore = useSelector((state: IAppState) => {\r\n return state.customerType;\r\n });\r\n const linkSourceFromStore = useSelector((state: IAppState) => {\r\n return state?.linkSource;\r\n });\r\n\r\n useEffect(() => {\r\n setSavingStatus(rdEnum.enumProcessingStatus.Init);\r\n return () => {\r\n setSavingStatus(0);\r\n };\r\n }, []);\r\n\r\n\r\n const openSaveDialog = () => {\r\n setSaveDialog(true);\r\n }\r\n\r\n const onSaveHide = () => {\r\n setSaveDialog(false);\r\n setPageState(initPageState);\r\n }\r\n\r\n const validation = (): boolean => {\r\n let invalid = false;\r\n\r\n let invalidFirstname = false;\r\n let invalidLastname = false;\r\n let invalidEmail = false;\r\n let invalidConfirmEmail = false;\r\n let emailMismatch = false;\r\n let invalidMobile = false;\r\n let invalidMarketingComms = false;\r\n let invalidCheckPrivacy = false;\r\n\r\n const emailValidator = !/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}$/i.test(pageState?.email);\r\n\r\n if (isNil(pageState.firstname) || pageState.firstname == \"\") {\r\n invalid = true;\r\n invalidFirstname = true;\r\n }\r\n if (isNil(pageState.lastname) || pageState.lastname == \"\") {\r\n invalid = true;\r\n invalidLastname = true;\r\n }\r\n if (isNil(pageState.email) || pageState.email == \"\" || emailValidator) {\r\n invalid = true;\r\n invalidEmail = true;\r\n }\r\n\r\n //if (isNil(pageState.confirmEmail) || pageState.confirmEmail == \"\" || emailValidator) {\r\n // invalid = true;\r\n // invalidConfirmEmail = true;\r\n //}\r\n //if (pageState.email != pageState.confirmEmail) {\r\n // invalid = true;\r\n // emailMismatch = true;\r\n //}\r\n if (isNil(pageState.mobile) || pageState.mobile == \"\" || pageState.mobile.length < 9 || pageState.mobile.length > 13) {\r\n invalid = true;\r\n invalidMobile = true;\r\n }\r\n //if (!pageState.checkMarketingComms) {\r\n // invalid = true;\r\n // invalidMarketingComms = true;\r\n //}\r\n if (!pageState.checkPrivacy) {\r\n invalid = true;\r\n invalidCheckPrivacy = true;\r\n }\r\n\r\n let newPageState = {\r\n ...pageState,\r\n invalidFirstname: invalidFirstname,\r\n invalidLastname: invalidLastname,\r\n invalidEmail: invalidEmail,\r\n invalidConfirmEmail: invalidConfirmEmail,\r\n emailMismatch: emailMismatch,\r\n invalidMobile: invalidMobile,\r\n invalidCheckMarketingComms: invalidMarketingComms,\r\n invalidCheckPrivacy: invalidCheckPrivacy\r\n };\r\n setPageState(newPageState);\r\n\r\n return invalid;\r\n }\r\n\r\n const getDeliveryLocationState = () => {\r\n if (selectedDeliveryFromStore.SelectedDeliveryOption == rdEnum.enumDeliveryOptions.Pickup) {\r\n return selectedDeliveryFromStore?.SelectedPickupLocation?.LocationState;\r\n }\r\n else {\r\n return selectedDeliveryFromStore?.SelectedDeliveryState || \"\";\r\n }\r\n }\r\n\r\n const getDeliveryLocationPostcode = () => {\r\n if (selectedDeliveryFromStore.SelectedDeliveryOption == rdEnum.enumDeliveryOptions.Pickup) {\r\n return selectedDeliveryFromStore?.SelectedPickupLocation?.LocationPostcode;\r\n }\r\n else {\r\n return selectedDeliveryFromStore?.SelectedDeliveryPostcode || \"\";\r\n }\r\n }\r\n\r\n const getDeliveryLocationSuburb = () => {\r\n if (selectedDeliveryFromStore.SelectedDeliveryOption == rdEnum.enumDeliveryOptions.Pickup) {\r\n return selectedDeliveryFromStore?.SelectedPickupLocation?.LocationSuburb;\r\n }\r\n else {\r\n return selectedDeliveryFromStore?.SelectedDeliverySuburb || \"\";\r\n }\r\n }\r\n\r\n const getDeliveryLocationFullAddress = () => {\r\n if (selectedDeliveryFromStore.SelectedDeliveryOption == rdEnum.enumDeliveryOptions.Pickup) {\r\n return selectedDeliveryFromStore?.SelectedPickupLocation?.LocationAddress || \"\";\r\n }\r\n else {\r\n return selectedDeliveryFromStore?.SelectedDeliveryFullAddress || \"\";\r\n }\r\n }\r\n\r\n const handleSubmit = async () => {\r\n\r\n let invalid = validation();\r\n if (invalid) return;\r\n\r\n //todo: api and sp need add primary address(RegistrationAddress)\r\n let interestData: interestModel.IInterest = {\r\n Country: selectedDeliveryFromStore?.Country?.code || \"\",\r\n State: selectedDeliveryFromStore?.State?.code || \"\",\r\n VariantName: selectedVehicleFromStore.VariantName || \"\",\r\n VariantBasePrice: selectedVehicleFromStore.VariantBasePrice || 0,\r\n ExteriorName: selectedVehicleFromStore.Exterior || \"\",\r\n ExteriorPrice: selectedVehicleFromStore.ExteriorPrice || 0,\r\n InteriorName: selectedVehicleFromStore.Interior || \"\",\r\n InteriorPrice: selectedVehicleFromStore.InteriorPrice || 0,\r\n PaymentOption: selectedPaymentOptions?.PaymentOption || rdEnum.enumPaymentOptions.Cash,\r\n Email: pageState.email,\r\n FirstName: pageState.firstname,\r\n LastName: pageState.lastname,\r\n Mobile: pageState.mobile,\r\n ABN: null,\r\n BusinessName: null,\r\n CustomerType: customerTypeForStore || rdEnum.enumClientTypes.Private.Code,\r\n DeliveryAddress: getDeliveryLocationFullAddress() || \"\",\r\n DeliveryLocationState: getDeliveryLocationState() || \"\",\r\n DeliveryLocationSuburb: getDeliveryLocationSuburb() || \"\",\r\n DeliveryLocationPostcode: getDeliveryLocationPostcode() || \"\",\r\n DeliveryOption: selectedDeliveryFromStore?.SelectedDeliveryOption || rdEnum.enumDeliveryOptions.Pickup,\r\n EstDeliveryDate: vehicleFromStore?.SelectedInterior?.Available || \"\",\r\n PrivacyStatement: true,\r\n Marketing: pageState.checkMarketingComms,\r\n InterestType: props == 'inventory' ? rdEnum.enumInterestType.WaitingList : rdEnum.enumInterestType.Save,\r\n Comments: pageState.comments,\r\n WebUniqueKey: null,\r\n Options: selectedVehicleFromStore.Options || [],\r\n VehicleThumbnail: \"\"\r\n };\r\n\r\n setSaveFailedMessage(\"\");\r\n setSavingStatus(rdEnum.enumProcessingStatus.Processing);\r\n let response = await interestService.saveInterest(interestData, true);\r\n if (response.status) {\r\n setSavingStatus(rdEnum.enumProcessingStatus.Processed);\r\n\r\n setTimeout(() => {\r\n onSaveHide();\r\n setSavingStatus(0)\r\n }, 5000);\r\n }\r\n else {\r\n setSaveFailedMessage(response.message);\r\n setSavingStatus(rdEnum.enumProcessingStatus.Init);\r\n }\r\n\r\n }\r\n\r\n const isNumberKey = (e: any) => {\r\n IsNumberVerification(e);\r\n }\r\n\r\n const submitButtonTemplate = () => {\r\n if (savingStatus == rdEnum.enumProcessingStatus.Processing) {\r\n return ();\r\n }\r\n else if (savingStatus == rdEnum.enumProcessingStatus.Init) {\r\n return (\r\n \r\n );\r\n }\r\n else if (savingStatus == rdEnum.enumProcessingStatus.Processed) {\r\n return (\r\n
\r\n \r\n {/* Your design has been successfully shared to the email address provided */}\r\n {/* {\r\n props != 'inventory' && selectedVehicleFromStore.HasStock || linkSourceFromStore == rdEnum.enumLinkSource.PrivateInterestLink\r\n ?\r\n We’ve received your request for support. The Cadillac Sales team will reach out to you shortly.\r\n :\r\n You’ve successfully joined the waitlist. We’ll notify you as soon as it is available to order.\r\n } */}\r\n\r\n {\r\n props == 'inventory'\r\n ?\r\n You’ve successfully joined the waitlist. We’ll notify you as soon as it is available to order.\r\n :\r\n We’ve received your request for support. The Cadillac Sales team will reach out to you shortly.\r\n }\r\n\r\n
\r\n );\r\n }\r\n }\r\n\r\n setTimeout(() => {\r\n let agreeCheckbox = document.getElementsByName(\"cb-ack-save\");\r\n for (let i = 0; i < agreeCheckbox.length; i++) {\r\n agreeCheckbox[i].setAttribute('data-dtm', 'privacy statement');\r\n agreeCheckbox[i].classList.add('stat-checkbox');\r\n }\r\n\r\n let marketingCheckbox = document.getElementsByName(\"cb-ack-save-optional\");\r\n for (let i = 0; i < agreeCheckbox.length; i++) {\r\n marketingCheckbox[i].setAttribute('data-dtm', 'privacy statement');\r\n marketingCheckbox[i].classList.add('stat-checkbox');\r\n }\r\n\r\n }, 200);\r\n\r\n return (\r\n
\r\n {\r\n props == 'inventory'\r\n ?\r\n
\r\n \r\n
\r\n :\r\n
openSaveDialog()}\r\n >\r\n \r\n Get help from sales team\r\n
\r\n }\r\n\r\n\r\n\r\n onSaveHide()} draggable={false} resizable={true}>\r\n
\r\n {\r\n props != 'inventory'\r\n // && selectedVehicleFromStore.HasStock || linkSourceFromStore == rdEnum.enumLinkSource.PrivateInterestLink\r\n ?\r\n
\r\n

WE'RE HERE TO HELP

\r\n A member of our Cadillac sales team will respond to your enquiry as quickly as possible.\r\n
\r\n :\r\n
\r\n

JOIN OUR WAITLIST!

\r\n \r\n {/* Our vehicle is currently out of stock and you will be the first to know when it's back!\r\n

\r\n Sign up for our waitlist to receive exclusive updates and promotional offers.\r\n

\r\n Don’t miss out—secure your spot today! */}\r\n Enter your details below and we will notify you when you are able to order your customised Lyriq. A member of our team will also touch base to offer any support you me need.\r\n
\r\n
\r\n }\r\n {/*
\r\n

WE'RE HERE TO HELP

*/}\r\n {/* Cadillac sales team will assist with your saved configuration shortly. */}\r\n {/* A member of our Cadillac sales team will respond to your enquiry as quickly as possible. */}\r\n {/* {\r\n props != 'inventory' && selectedVehicleFromStore.HasStock || linkSourceFromStore == rdEnum.enumLinkSource.PrivateInterestLink\r\n ?\r\n A member of our Cadillac sales team will respond to your enquiry as quickly as possible.\r\n :\r\n This particular LYRIQ configuration is currently sold out. Please enter your details below and to be notified when it is available to order.\r\n } */}\r\n\r\n {/*
*/}\r\n
\r\n
\r\n \r\n {\r\n setPageState({\r\n ...pageState,\r\n firstname: e.target.value,\r\n invalidFirstname: isNil(e.target.value) || e.target.value == \"\"\r\n })\r\n }}\r\n />\r\n \r\n \r\n
\r\n {pageState?.invalidFirstname && (\r\n Require Valid First Name\r\n )}\r\n
\r\n \r\n {\r\n setPageState({\r\n ...pageState,\r\n lastname: e.target.value,\r\n invalidLastname: isNil(e.target.value) || e.target.value == \"\"\r\n })\r\n }}\r\n />\r\n \r\n \r\n
\r\n {pageState?.invalidLastname && (\r\n Require Valid Last Name\r\n )}\r\n
\r\n \r\n {\r\n setPageState({\r\n ...pageState,\r\n email: e.target.value,\r\n invalidEmail: isNil(e.target.value) || e.target.value == \"\"\r\n })\r\n }}\r\n />\r\n \r\n \r\n
\r\n {pageState?.invalidEmail && (\r\n Require Valid Email\r\n )}\r\n {/*
*/}\r\n {/* */}\r\n {/* {*/}\r\n {/* setPageState({*/}\r\n {/* ...pageState,*/}\r\n {/* confirmEmail: e.target.value,*/}\r\n {/* invalidConfirmEmail: isNil(e.target.value) || e.target.value == \"\"*/}\r\n {/* })*/}\r\n {/* }}*/}\r\n {/* />*/}\r\n {/* */}\r\n {/* */}\r\n {/* {pageState?.emailMismatch && (*/}\r\n {/* The email address and confirm email address fields do not match*/}\r\n {/* )}*/}\r\n {/*
*/}\r\n
\r\n \r\n isNumberKey(e)}\r\n placeholder=\" \"\r\n value={pageState.mobile}\r\n onChange={(e) => {\r\n let mobile = e.target.value.slice(0, 11);\r\n setPageState({\r\n ...pageState,\r\n mobile: mobile,\r\n invalidMobile: isNil(mobile) || mobile == \"\" || mobile.length < 9 || mobile.length > 13\r\n })\r\n }}\r\n />\r\n \r\n \r\n
\r\n {pageState?.invalidMobile && (\r\n Require Valid Mobile\r\n )}\r\n\r\n {/* {\r\n props != 'inventory' && selectedVehicleFromStore.HasStock || linkSourceFromStore == rdEnum.enumLinkSource.PrivateInterestLink\r\n ?\r\n
\r\n \r\n {\r\n setPageState({\r\n ...pageState,\r\n comments: e.target.value,\r\n })\r\n }}\r\n />\r\n \r\n \r\n
\r\n :\r\n <>\r\n } */}\r\n\r\n {\r\n props != 'inventory'\r\n ?\r\n
\r\n \r\n {\r\n setPageState({\r\n ...pageState,\r\n comments: e.target.value,\r\n });\r\n checkOverflow();\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 setPageState({\r\n ...pageState,\r\n checkPrivacy: e.checked,\r\n invalidCheckPrivacy: !e.checked\r\n })\r\n\r\n }\r\n checked={pageState?.checkPrivacy}\r\n >\r\n \r\n
\r\n {/*{pageState?.invalidCheckMarketingComms && (*/}\r\n {/* Require the Agreement of Guideline*/}\r\n {/*)}*/}\r\n
\r\n \r\n setPageState({\r\n ...pageState,\r\n checkMarketingComms: e.checked,\r\n invalidCheckMarketingComms: !e.checked\r\n })\r\n }\r\n checked={pageState?.checkMarketingComms}\r\n >\r\n \r\n
\r\n
\r\n\r\n
\r\n {submitButtonTemplate()}\r\n
\r\n {!isNil(saveFailedMessage) && saveFailedMessage != \"\" && (\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default SaveDialog","import { getCMSAssets } from 'helpers/Uri';\r\nimport { Dialog } from 'primereact/dialog'\r\nimport React, { useState } from 'react'\r\nimport { IAppState } from \"model/IAppState\";\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport * as vehicleModel from 'model/IVehicle';\r\nimport * as rdHelper from 'helpers/Uri';\r\nimport * as rdEnum from 'helpers/enum';\r\nimport { filter, includes, find, isNil } from 'lodash';\r\n\r\nconst DriveawayPriceDialog = (props: any) => {\r\n\r\n const { source } = props\r\n\r\n const [isOpen, setIsOpen] = useState(false);\r\n\r\n const [driveAwayCost, setDriveAwayCost] = useState(null);\r\n\r\n const handleDialogOpen = () => {\r\n setIsOpen(true);\r\n document.body.style.overflowY = 'hidden';\r\n document.body.style.paddingRight = '15px';\r\n }\r\n\r\n const onHide = () => {\r\n setIsOpen(false);\r\n document.body.style.overflowY = 'scroll';\r\n document.body.style.paddingRight = '0px';\r\n };\r\n\r\n const selectVehFromStore = useSelector((appState: IAppState) => {\r\n return appState.selectedVehicle;\r\n });\r\n const selectedLocationFromStore = useSelector((state: IAppState) => {\r\n return state.selectedDelivery;\r\n });\r\n const driveawayCostFromStore = useSelector((state: IAppState) => {\r\n return state.paymentOptions.DriveAwayCost;\r\n });\r\n const taxFromStore = useSelector((state: IAppState) => {\r\n return state.paymentOptions.Finance;\r\n });\r\n\r\n const optionsTemplate = (options: vehicleModel.IVehicleOptions[] | null | undefined, optionType: string) => {\r\n let optionItemsTemplate: any[] = [];\r\n if (!isNil(options) && options != undefined && options.length > 0) {\r\n let selectedOptions = options.filter(m => m.OptionType == optionType);\r\n if (!isNil(selectedOptions) && selectedOptions.length > 0) {\r\n selectedOptions.map((optionItem: vehicleModel.IVehicleOptions, index: any) => {\r\n optionItemsTemplate.push(\r\n
\r\n

{optionItem?.OptionName}

\r\n {rdHelper.currencyFormatWithIncluded(optionItem?.OptionPrice)}\r\n
\r\n );\r\n })\r\n }\r\n }\r\n\r\n let template: any[] = [];\r\n if (optionItemsTemplate.length == 0) {\r\n template.push(<>);\r\n }\r\n else {\r\n template.push(\r\n
\r\n
{optionType == rdEnum.enumVehicleOptionType.Charge ? rdEnum.enumVehicleOptionTypeName.Charge : rdEnum.enumVehicleOptionTypeName.Accessories}
\r\n {optionItemsTemplate}\r\n
\r\n );\r\n }\r\n return template;\r\n }\r\n\r\n return (\r\n <>\r\n {\r\n source == 'order-review'\r\n ?\r\n
{\r\n handleDialogOpen();\r\n }}>\r\n View Your LYRIQ Summary\r\n \r\n
\r\n :\r\n
{\r\n handleDialogOpen();\r\n }}>\r\n
Driveaway Price1
\r\n
\r\n }\r\n\r\n onHide()}>\r\n
\r\n

YOUR LYRIQ SUMMARY

\r\n
Your Drive Away Price is calculated based on your selected Registration Type in metropolitan areas in your selected State / Territory
\r\n
\r\n\r\n
\r\n
\r\n
\r\n Variant\r\n
\r\n {driveawayCostFromStore?.VariantName}\r\n {rdHelper.currencyFormatWithIncluded(driveawayCostFromStore?.VariantPrice || 0)}\r\n
\r\n
\r\n\r\n
\r\n Exterior\r\n
\r\n {driveawayCostFromStore?.ExteriorName}\r\n {rdHelper.currencyFormatWithIncluded(driveawayCostFromStore?.ExteriorPrice || 0)}\r\n
\r\n
\r\n\r\n
\r\n Interior\r\n
\r\n {driveawayCostFromStore?.InteriorName}\r\n {rdHelper.currencyFormatWithIncluded(driveawayCostFromStore?.InteriorPrice || 0)}\r\n
\r\n
\r\n {optionsTemplate(selectVehFromStore?.Options, rdEnum.enumVehicleOptionType.Accessories)}\r\n {optionsTemplate(selectVehFromStore?.Options, rdEnum.enumVehicleOptionType.Charge)}\r\n\r\n
\r\n
\r\n Vehicle Subtotal\r\n {rdHelper.currencyFormatWithBlank(driveawayCostFromStore?.SubTotal || 0)}\r\n
\r\n Includes {rdHelper.currencyFormatWithBlank(driveawayCostFromStore?.GST || 0)}\r\n
\r\n
\r\n\r\n
\r\n {selectedLocationFromStore?.Country?.code == rdEnum.enumCountryCode.Australia && (\r\n \r\n
\r\n Luxury Car Tax\r\n {rdHelper.currencyFormatWithBlank(driveawayCostFromStore?.LuxuryCarTax || 0)}\r\n
\r\n
\r\n Local Stamp Duty\r\n {rdHelper.currencyFormatWithBlank(driveawayCostFromStore?.LocalStampDuty || 0)}\r\n
\r\n
\r\n Local Registration Costs\r\n {rdHelper.currencyFormatWithBlank(driveawayCostFromStore?.LocalRegistrationCost || 0)}\r\n
\r\n
\r\n Local CTP\r\n {rdHelper.currencyFormatWithBlank(driveawayCostFromStore?.LocalCTP || 0)}\r\n
\r\n
\r\n Local Plate Fee\r\n {rdHelper.currencyFormatWithBlank(driveawayCostFromStore?.LocalPlateFee || 0)}\r\n
\r\n
\r\n On Road Fees Subtotal\r\n {rdHelper.currencyFormatWithBlank(driveawayCostFromStore?.OnRoadFee || 0)}\r\n
\r\n
\r\n )}\r\n\r\n {selectedLocationFromStore?.Country?.code == rdEnum.enumCountryCode.NewZealand && (\r\n \r\n
\r\n Local Registration Costs\r\n {rdHelper.currencyFormatWithBlank(driveawayCostFromStore?.LocalRegistrationCost || 0)}\r\n
\r\n
\r\n Local Plate Fee\r\n {rdHelper.currencyFormatWithIncluded(driveawayCostFromStore?.LocalPlateFee || 0)}\r\n
\r\n
\r\n Tyre Stewardship Fee\r\n {rdHelper.currencyFormatWithBlank(driveawayCostFromStore?.TyreStewardshipFee || 0)}\r\n
\r\n
\r\n Road User Charges\r\n {rdHelper.currencyFormatWithBlank(driveawayCostFromStore?.RoadUserChargers || 0)}\r\n
\r\n
\r\n On Road Fees Subtotal\r\n {rdHelper.currencyFormatWithBlank(driveawayCostFromStore?.OnRoadFee || 0)}\r\n
\r\n
\r\n )}\r\n
\r\n\r\n
\r\n Delivery option\r\n
\r\n {selectedLocationFromStore?.SelectedDeliveryOption || rdEnum.enumDeliveryOptions.Pickup}\r\n {selectedLocationFromStore?.SelectedDeliveryOption == rdEnum.enumDeliveryOptions.HomeDelivery && (\r\n {rdHelper.currencyFormatWithBlank(driveawayCostFromStore?.HomeDelivery || 0)}\r\n )}\r\n
\r\n
\r\n\r\n
\r\n
\r\n Driveaway Price1\r\n {rdHelper.currencyFormatWithBlank(driveawayCostFromStore?.DriveawayPrice || 0)}\r\n
\r\n
\r\n\r\n
\r\n

\r\n 1This is the drive away price for the selected country, state or territory. It is based on the owner being a ‘rating one’ driver aged 40 with a good driving record. The drive away price displayed is inclusive of the vehicle purchase price, goods and services tax (GST), luxury car tax (LCT), stamp duty, compulsory third party insurance, registration, a plate fees and a GST-inclusive regional delivery fee if applicable. The final drive away price may differ depending on your individual circumstances. The price does not take into account any valid discount, rebate or promotion that may be available from time to time. Each country, state or territory may offer additional registration types which are not covered in this configurator, therefore your individual situation may vary and have an impact on the final Drive Away price. Cadillac reserves the right to vary the Drive away price at its discretion, including for changes in specifications or features. The final Drive Away price will be provided to you upon checkout.\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 DriveawayPriceDialog","import { getCMSAssets } from 'helpers/Uri';\r\nimport { Dialog } from 'primereact/dialog';\r\nimport { InputText } from 'primereact/inputtext';\r\nimport React, { useRef, useState } from 'react'\r\nimport { isNil } from 'lodash';\r\nimport { Button, Card } from 'react-bootstrap';\r\nimport ShareDialog from './ShareDialog';\r\nimport SaveDialog from './SaveDialog';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { hideGlobalPage } from 'stores/MainRightPage';\r\nimport { IAppState } from 'model/IAppState';\r\nimport * as checkoutViewModel from 'model/IChekcoutViewModel';\r\nimport * as vehicleModel from 'model/IVehicle';\r\nimport * as rdEnum from 'helpers/enum';\r\nimport * as rdUri from 'helpers/Uri';\r\nimport * as selectedDeliveryStore from 'stores/UserSelectedDelivery';\r\nimport { setScrollPosition } from 'stores/ScrollPosition';\r\nimport DriveawayPriceDialog from 'components/DriveawayPriceDialog';\r\nimport { useSatellite } from 'helpers/useSatellite';\r\n\r\nconst Checkout: React.FC = ({ scrollToSection, checkoutFormPage }) => {\r\n\r\n const dispatch = useDispatch();\r\n const satellite = useSatellite();\r\n\r\n //stores\r\n const selectedVehicleFromStore = useSelector((state: IAppState) => {\r\n return state.selectedVehicle;\r\n });\r\n const selectedDeliveryFromStore = useSelector((state: IAppState) => {\r\n return state.selectedDelivery;\r\n });\r\n const vehicleFromStore = useSelector((state: IAppState) => {\r\n return state.vehicle;\r\n });\r\n const customerTypeFromStore = useSelector((state: IAppState) => {\r\n return state.customerType;\r\n });\r\n const paymentOptionsFromStore = useSelector((state: IAppState) => {\r\n return state.paymentOptions;\r\n });\r\n const linkSourceFromStore = useSelector((state: IAppState) => {\r\n return state?.linkSource;\r\n });\r\n\r\n const handleToCheckoutForm = () => {\r\n checkoutFormPage(); //call main page toWaitlistPage()\r\n // dispatch(setScrollPosition('checkoutForm'))\r\n\r\n if (linkSourceFromStore == rdEnum.enumLinkSource.PrivateInterestLink || selectedVehicleFromStore.HasStock) {\r\n satellite.trackEvent(\"config-end\");\r\n }\r\n\r\n }\r\n\r\n const getDeliveryAddress = () => {\r\n if (selectedDeliveryFromStore.SelectedDeliveryOption == rdEnum.enumDeliveryOptions.HomeDelivery) {\r\n return selectedDeliveryFromStore.SelectedDeliveryFullAddress;\r\n }\r\n else {\r\n return selectedDeliveryFromStore.SelectedPickupLocation?.LocationAddress;\r\n }\r\n }\r\n\r\n const getDeliveryPrice = () => {\r\n if (selectedDeliveryFromStore.SelectedDeliveryOption == rdEnum.enumDeliveryOptions.HomeDelivery) {\r\n let price = selectedDeliveryFromStore.DeliveryPrice;\r\n if (!isNil(price)) {\r\n return rdUri.currencyFormat(price);\r\n }\r\n }\r\n return \"\"\r\n }\r\n\r\n const optionsTemplate = (optionType: string) => {\r\n let optionItemsTemplate: any[] = [];\r\n if (!isNil(selectedVehicleFromStore?.Options) && selectedVehicleFromStore?.Options.length > 0) {\r\n let selectedOptions = selectedVehicleFromStore?.Options.filter(m => m.OptionType == optionType);\r\n if (!isNil(selectedOptions) && selectedOptions.length > 0) {\r\n selectedOptions?.map((addsOnItem: vehicleModel.IVehicleOptions, index: any) => {\r\n optionItemsTemplate.push(\r\n
\r\n {addsOnItem?.OptionName}\r\n {rdUri.currencyFormat(addsOnItem?.OptionPrice)}\r\n
\r\n );\r\n })\r\n }\r\n }\r\n\r\n let template: any[] = [];\r\n if (optionItemsTemplate.length == 0) {\r\n template.push();\r\n }\r\n else {\r\n template.push(\r\n
\r\n {optionType == rdEnum.enumVehicleOptionType.Charge ? rdEnum.enumVehicleOptionTypeName.Charge : rdEnum.enumVehicleOptionTypeName.Accessories}\r\n {optionItemsTemplate}\r\n
\r\n );\r\n }\r\n return template;\r\n }\r\n\r\n return (\r\n
\r\n
\r\n

ORDER REVIEW

\r\n
\r\n

Your Drive Away Price is calculated based on your selected Registration Type in metropolitan areas in your selected State / Territory.

\r\n \r\n
\r\n
\r\n
YOUR SELECTION
\r\n
\r\n Variant\r\n
\r\n {selectedVehicleFromStore?.VariantName}\r\n {rdUri.currencyFormat(selectedVehicleFromStore?.VariantBasePrice)}\r\n
\r\n
\r\n
\r\n Exterior\r\n
\r\n {selectedVehicleFromStore?.Exterior}\r\n {rdUri.currencyFormat(selectedVehicleFromStore?.ExteriorPrice)}\r\n
\r\n
\r\n
\r\n Interior\r\n
\r\n {selectedVehicleFromStore?.Interior}\r\n {rdUri.currencyFormat(selectedVehicleFromStore?.InteriorPrice)}\r\n
\r\n
\r\n {optionsTemplate(rdEnum.enumVehicleOptionType.Accessories)}\r\n {optionsTemplate(rdEnum.enumVehicleOptionType.Charge)}\r\n
\r\n scrollToSection('variant')}\r\n className=\"stat-text-link\"\r\n data-dtm=\"checkout:order review:your selection\"\r\n >\r\n Edit\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
PAYMENT
\r\n
\r\n Customer Type\r\n

{customerTypeFromStore}

\r\n
\r\n
\r\n Payment method\r\n

{paymentOptionsFromStore?.PaymentOption}

\r\n
\r\n
\r\n scrollToSection('payment')}\r\n className=\"stat-text-link\"\r\n data-dtm=\"checkout:order review:payment\"\r\n >\r\n Edit\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
{selectedDeliveryFromStore.SelectedDeliveryOption == rdEnum.enumDeliveryOptions.HomeDelivery ? \"DELIVERY\" : \"In-store Collection\"}
\r\n
\r\n Location\r\n

{getDeliveryAddress()}

\r\n
\r\n
\r\n Preferred option\r\n
\r\n {selectedDeliveryFromStore.SelectedDeliveryOption}\r\n {getDeliveryPrice()}\r\n
\r\n
\r\n
\r\n Estimated delivery\r\n {\r\n !selectedVehicleFromStore.HasStock && linkSourceFromStore != rdEnum.enumLinkSource.PrivateInterestLink\r\n ?\r\n

Waitlisted

\r\n :\r\n

{vehicleFromStore?.SelectedInterior?.Available}

\r\n }\r\n\r\n
\r\n
\r\n scrollToSection('delivery')}\r\n className=\"stat-text-link\"\r\n data-dtm={\"checkout:order review:\" + (selectedDeliveryFromStore.SelectedDeliveryOption == rdEnum.enumDeliveryOptions.HomeDelivery ? \"delivery\" : \"in-store collection\")}>\r\n Edit\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n Taking a break? \r\n
\r\n {/*
*/}\r\n {/* Share your LYRIQ configuration with a unique link.*/}\r\n {/*
*/}\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n {\r\n linkSourceFromStore == rdEnum.enumLinkSource.PrivateInterestLink\r\n ?\r\n

Important: You're about to proceed to checkout. So we can hold your design, you won't be able to edit your LYRIQ after this point. Please check your configuration before proceeding.

\r\n :\r\n selectedVehicleFromStore.HasStock\r\n ?\r\n

Important: You're about to proceed to checkout. So we can hold your design, you won't be able to edit your LYRIQ after this point. Please check your configuration before proceeding.

\r\n :\r\n <>\r\n }\r\n \r\n
\r\n\r\n
\r\n )\r\n}\r\n\r\nexport default Checkout","import { getCMSAssets, getFrontendUrl } from 'helpers/Uri';\r\nimport { Dialog } from 'primereact/dialog';\r\nimport React, { useState, useRef } from 'react';\r\nimport { useSelector } from 'react-redux'\r\nimport PaymentOptions, { ChildRef } from \"components/PaymentOptions\";\r\nimport { IAppState } from 'model/IAppState';\r\n\r\ninterface IPaymentTypeProps {\r\n paymentType: string,\r\n}\r\n\r\nconst CashFinanceDescDialog = (props: IPaymentTypeProps) => {\r\n const [isOpen, setIsOpen] = useState(false);\r\n const paymentOpionsRef = useRef(null);\r\n const selectedVehicleFromStore = useSelector((state: IAppState) => {\r\n return state.selectedVehicle;\r\n });\r\n const selectedDeliveryFromStore = useSelector((state: IAppState) => {\r\n return state.selectedDelivery;\r\n });\r\n const paymentOptionFromStore = useSelector((state: IAppState) => {\r\n return state.paymentOptions;\r\n });\r\n const vehicleFromStore = useSelector((state: IAppState) => {\r\n return state.vehicle;\r\n });\r\n\r\n const handleDialogOpen = () => {\r\n setIsOpen(true);\r\n }\r\n\r\n const handleDialogHide = () => {\r\n setIsOpen(false);\r\n }\r\n\r\n const openCashFinanceDialog = () => {\r\n if (paymentOpionsRef.current) {\r\n paymentOpionsRef.current.openDialog();\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n
{\r\n handleDialogOpen();\r\n }}\r\n >\r\n \r\n \r\n What is {props.paymentType}?\r\n \r\n \r\n
\r\n\r\n
{ openCashFinanceDialog(); }} data-dtm=\"checkout\">\r\n Calculate Finance\r\n \r\n
\r\n\r\n handleDialogHide()} draggable={false} resizable={true}>\r\n {\r\n props.paymentType == 'Cash'\r\n ?\r\n
\r\n
\r\n

{props.paymentType.toUpperCase()} INFORMATION

\r\n

WHAT IS {props.paymentType.toUpperCase()}?

\r\n

By choosing a Cash purchase, you will be placing an order to buy the vehicle outright. If you are financing your vehicle with your own bank or financier, you should select cash and we will support you with required paperwork.

\r\n

To place an order, you will be asked to pay a deposit. When the vehicle is ready for delivery, you will be invoiced to pay the final balance via wire transfer.

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

HOW DOES A CASH PURCHASE WORK?

\r\n
\r\n \r\n 1. Vehicle selection: Design and select your Cadillac.\r\n
\r\n
\r\n \r\n 2. Payment type: Select cash purchase.\r\n
\r\n
\r\n \r\n 3. Deposit: You will be required to pay a deposit, which is deducted from the final payment.\r\n
\r\n
\r\n \r\n 4. Final Payment: When the car is ready for delivery, you will be sent a final invoice to pay the remaining balance via electronic funds transfer (EFT)\r\n
\r\n
\r\n \r\n 5. Vehicle Registration & Delivery: The final step is to register your vehicle and confirm delivery appointment details.\r\n
\r\n
\r\n
\r\n :\r\n
\r\n
\r\n

{props.paymentType.toUpperCase()} INFORMATION

\r\n

WHAT IS {props.paymentType.toUpperCase()}?

\r\n

\r\n Finance is also known as a car loan to help you get the keys to your Cadillac. Our finance is powered by trusted lenders Plenti (Australia) and MTF (New Zealand) and together we’ve kept it simple to apply and track your loan. \r\n

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

HOW DOES FINANCE WORK?

\r\n
\r\n \r\n 1. Vehicle selection: Design and select your Cadillac.\r\n
\r\n
\r\n \r\n 2. Payment type: Select finance purchase.\r\n
\r\n
\r\n \r\n 3. Deposit: You will be required to pay a deposit, which is deducted from the final amount owed.\r\n
\r\n
\r\n \r\n 4. Application: You will have the opportunity to apply for your loan online, with the support of our trusted lenders. Finance is subject to an approval process, and terms and conditions apply.\r\n
\r\n
\r\n \r\n \r\n 5. Payment: When the car is ready for delivery, we will work with you and our trusted partners to arrange final payment ahead of delivery.\r\n {/*
    \r\n
  • Depreciation: Difference between the car's initial value and its expected value at the end of the lease term.
  • \r\n
  • Interest or Financing Costs: Interest on that the financing you obtained from the leasing company.
  • \r\n
  • Various taxes and administrative fees.
  • \r\n
  • Maintenance and Insurance: If applicable to your lease, to ensure the car remains in good condition.
  • \r\n
*/}\r\n
\r\n
\r\n
\r\n \r\n 6. Vehicle Registration & Delivery: The final step is to register your vehicle and confirm delivery appointment details.\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 CashFinanceDescDialog\r\n","import React, { useEffect, useRef, useState } from 'react'\r\nimport { Button } from 'react-bootstrap';\r\nimport PaymentOptions, { ChildRef } from '../../../components/PaymentOptions';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { setCustomerTypeAction } from 'stores/CustomerType';\r\nimport { IAppState } from 'model/IAppState';\r\nimport * as rdEnum from 'helpers/enum';\r\nimport * as paymentOptionStore from 'stores/PaymentOptions';\r\nimport CashFinanceDescDialog from './CashFinanceDescDialog';\r\n\r\nconst CustomerPayment = ({ handlePayment }: any) => {\r\n\r\n const selectedVehicleFromStore = useSelector((state: IAppState) => {\r\n return state.selectedVehicle;\r\n });\r\n const selectedDeliveryFromStore = useSelector((state: IAppState) => {\r\n return state.selectedDelivery;\r\n });\r\n const vehicleFromStore = useSelector((state: IAppState) => {\r\n return state.vehicle;\r\n });\r\n const [pageState, setPageState] = useState({\r\n customerType: rdEnum.enumClientTypes.Private.Code,\r\n paymentType: rdEnum.enumPaymentOptions.Cash,\r\n });\r\n\r\n const dispatch = useDispatch();\r\n\r\n const customerType = useSelector((state: IAppState) => {\r\n return state.customerType;\r\n });\r\n\r\n const handleCustomerType = (type: any) => {\r\n setPageState({\r\n ...pageState,\r\n customerType: type\r\n });\r\n dispatch(setCustomerTypeAction(type));\r\n }\r\n\r\n const handlePaymentType = (type: any) => {\r\n setPageState({\r\n ...pageState,\r\n paymentType: type\r\n });\r\n handlePayment(type);\r\n dispatch(paymentOptionStore.updateSelectedPaymentOptionAction(type));\r\n }\r\n\r\n useEffect(() => {\r\n setPageState(({\r\n ...pageState,\r\n customerType: customerType || rdEnum.enumClientTypes.Private.Code\r\n }))\r\n }, [customerType])\r\n\r\n const childRef = useRef(null);\r\n\r\n // Function to open the dialog in the child component\r\n const openCashFinanceDialog = () => {\r\n if (childRef.current) {\r\n childRef.current.openDialog();\r\n }\r\n };\r\n\r\n return (\r\n
\r\n
\r\n

CHECKOUT

\r\n

Select the option that works best for you.

\r\n
CUSTOMER TYPE
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n

PAYMENT TYPE

\r\n {/*

Please indicate how you intend to pay for your Cadillac. You will complete this process in your account. You can amend your selection in your account.

*/}\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 CustomerPayment","import { getBackendPath } from 'helpers/Uri';\r\nimport * as deliveryModel from 'model/IDelivery';\r\nimport * as rdHelper from 'helpers/Uri';\r\n\r\nexport const getLocations = async (request: deliveryModel.IGetPickupLocationRequest): Promise => {\r\n const requestOptions: any = {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n body: JSON.stringify(request),\r\n credentials: 'include',\r\n };\r\n const response = await fetch(\r\n `${getBackendPath()}/api/Location/get-pickup-locations`,\r\n requestOptions,\r\n );\r\n const json = await response.json();\r\n rdHelper.noActivityRedirectHomePage(json);\r\n return json;\r\n};\r\n\r\nexport const getAddress = async (country: string, keywords: string): Promise => {\r\n const requestOptions: any = {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n body: JSON.stringify({\r\n country: country,\r\n keywords: keywords,\r\n }),\r\n credentials: 'include',\r\n };\r\n const response = await fetch(\r\n `${getBackendPath()}/api/Location/get-address`,\r\n requestOptions,\r\n );\r\n const json = await response.json();\r\n rdHelper.noActivityRedirectHomePage(json);\r\n return json;\r\n};\r\n\r\n\r\nexport const getDeliveryPrice = async (\r\n delivery: deliveryModel.IGetPriceRequest\r\n): Promise => {\r\n const requestOptions: any = {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n body: JSON.stringify(delivery),\r\n credentials: 'include',\r\n };\r\n const response = await fetch(\r\n `${getBackendPath()}/api/Location/get-delivery-price`,\r\n requestOptions,\r\n );\r\n const json = await response.json();\r\n rdHelper.noActivityRedirectHomePage(json);\r\n return json;\r\n};\r\n\r\n\r\nexport const getDistance = async (\r\n delivery: deliveryModel.IGetPriceRequest\r\n): Promise => {\r\n const requestOptions: any = {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n body: JSON.stringify(delivery),\r\n credentials: 'include',\r\n };\r\n const response = await fetch(\r\n `${getBackendPath()}/api/GoogleAPIs/get-distance`,\r\n requestOptions,\r\n );\r\n const json = await response.json();\r\n rdHelper.noActivityRedirectHomePage(json);\r\n return json;\r\n};","import React, { useEffect, useRef, useState, forwardRef, useImperativeHandle } from 'react'\r\nimport { Button, Card } from 'react-bootstrap';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { isNil, update } from 'lodash';\r\nimport IsNumberVerification from 'components/IsNumberVerification';\r\nimport { getCMSAssets } from 'helpers/Uri';\r\nimport { InputText } from 'primereact/inputtext';\r\nimport { RadioButton } from 'primereact/radiobutton';\r\nimport { Checkbox } from 'primereact/checkbox';\r\nimport { AutoComplete } from 'primereact/autocomplete';\r\nimport { Dropdown } from 'primereact/dropdown';\r\nimport { classNames } from 'primereact/utils';\r\n\r\n\r\nimport { IAppState } from 'model/IAppState';\r\n\r\nimport * as rdEnum from 'helpers/enum';\r\nimport * as rdHelper from 'helpers/Uri';\r\nimport * as checkoutHelper from 'businessHelpers/CheckoutHelper';\r\nimport * as selectedDeliveryStore from 'stores/UserSelectedDelivery';\r\nimport * as paymentOptionsStore from 'stores/PaymentOptions';\r\n\r\nimport * as deliveryModel from 'model/IDelivery';\r\nimport * as selectedConfigModel from 'model/IUserSelectedConfig';\r\nimport * as paymentOptionsModel from 'model/IPaymentOptions';\r\nimport * as locationService from 'services/Locations';\r\nimport * as paymentOptionsService from 'services/PaymentOptions';\r\n\r\n/*import { getAddress } from 'services/GoogleApi';*/\r\n\r\n///update store's data once delivery selection changed as driveaway cost need to be updated as well.\r\nconst Delivery = forwardRef(({ handleDelivery }: any, ref: any) => {\r\n const dispatch = useDispatch();\r\n //store variables\r\n const selectedDeliveryFromStore = useSelector((state: IAppState) => {\r\n return state.selectedDelivery;\r\n });\r\n const selectedVehicleFromStore = useSelector((state: IAppState) => {\r\n return state.selectedVehicle;\r\n });\r\n const customerTypeFromStore = useSelector((state: IAppState) => {\r\n return state.customerType;\r\n });\r\n const selectedLocationFromStore = useSelector((state: IAppState) => {\r\n return state.selectedDelivery;\r\n });\r\n\r\n const abortControllerInitialValue: any = new (\r\n window as any\r\n ).AbortController();\r\n const [costAbortController, setCostAbortController] = useState(\r\n abortControllerInitialValue,\r\n );\r\n\r\n //state\r\n const [addressList, setAddressList] = useState([]); //address dropdown list\r\n //selected primary address\r\n const [primaryAddress, setPrimaryAddressAddress] = useState(null);\r\n const [primaryAddressAvailabeDetails, setPrimaryAddressAvailabeDetails] = useState(checkoutHelper.getInitDeliveryAddressAvailableDetails());\r\n //selected different delivery address\r\n const [differentDeliveryAddress, setDifferentDeliveryAddress] = useState(null);\r\n const [differentDeliveryAddressAvailabeDetails, setDifferentDeliveryAddressAvailabeDetails] = useState(checkoutHelper.getInitDeliveryAddressAvailableDetails());\r\n\r\n //pickup locations\r\n const [pickupLocations, setPickupLocations] = useState(null);\r\n\r\n\r\n\r\n const [pageState, setPageState] = useState(checkoutHelper.getDeliveryInitState()); //not in use anymore\r\n const [pageInvalidState, setPageInvalidState] = useState(checkoutHelper.getInitInvalidDelivery());\r\n const [pickupLocationDataLoadingStatus, setPickupLocationDataLoadingStatus] = useState(rdEnum.enumProcessingStatus.Init);\r\n\r\n\r\n //const [errorMessage, setErrorMessage] = useState(null);\r\n\r\n\r\n const inputRef = useRef(null);\r\n const regionalInputRef = useRef(null);\r\n const locationCheckboxRef = useRef(null);\r\n const differentAddressCheckboxRef = useRef(null);\r\n const [isFocused, setIsFocused] = useState(false);\r\n const [isRegoFocused, setIsRegoFocused] = useState(false);\r\n\r\n useEffect(() => {\r\n setPageState({\r\n ...pageState,\r\n Country: selectedDeliveryFromStore?.Country?.code || null,\r\n State: selectedDeliveryFromStore?.State?.code || null\r\n });\r\n\r\n }, [selectedDeliveryFromStore]);\r\n\r\n const validationDelivery = (): boolean => {\r\n\r\n let invalidDelivery = false;\r\n let invalidDeliveryOption = false;\r\n let invalidPrimaryAddress = false;\r\n let invalidPrimaryPostcode = false;\r\n let invalidPrimaryState = false;\r\n let invalidPickupLocation = false;\r\n let invalidDeliveryAddress = false;\r\n let invalidDeliveryPostcode = false;\r\n let invalidDifferentState = false;\r\n\r\n if (isNullAddress(primaryAddress)) {\r\n invalidPrimaryAddress = true;\r\n invalidDelivery = true;\r\n }\r\n else {\r\n if (pageState.Country == rdEnum.enumCountryCode.Australia) {\r\n if (primaryAddress.state !== pageState?.State) {\r\n invalidPrimaryState = true;\r\n invalidDelivery = true;\r\n }\r\n }\r\n }\r\n\r\n if (isNullPostcode(primaryAddress)) {\r\n invalidPrimaryPostcode = true;\r\n invalidDelivery = true;\r\n }\r\n\r\n if (isNil(pageState?.DeliveryOption) || pageState?.DeliveryOption == \"\") {\r\n invalidDeliveryOption = true;\r\n invalidDelivery = true;\r\n }\r\n\r\n if (pageState?.DeliveryOption == rdEnum.enumDeliveryOptions.HomeDelivery) {\r\n\r\n if (pageState.DifferentDeliveryAddress) {\r\n if (isNullAddress(differentDeliveryAddress)) {\r\n invalidDeliveryAddress = true;\r\n invalidDelivery = true;\r\n }\r\n else {\r\n if (pageState.Country == rdEnum.enumCountryCode.Australia) {\r\n if (primaryAddress?.state != differentDeliveryAddress?.state) {\r\n invalidDifferentState = true;\r\n invalidDelivery = true;\r\n }\r\n } else if (pageState.Country == rdEnum.enumCountryCode.NewZealand) {\r\n if (!differentDeliveryAddress.postcode || isNil(differentDeliveryAddress.postcode)) {\r\n invalidDeliveryPostcode = true;\r\n invalidDelivery = true;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n else if (pageState?.DeliveryOption == rdEnum.enumDeliveryOptions.Pickup) {\r\n if (!pageState?.PickupAddressConfirm) {\r\n invalidPickupLocation = true;\r\n invalidDelivery = true;\r\n }\r\n }\r\n\r\n\r\n setPageInvalidState({\r\n ...pageInvalidState,\r\n InvalidPrimaryAddress: invalidPrimaryAddress,\r\n InvalidPrimaryPostcode: invalidPrimaryPostcode,\r\n InvalidPrimaryState: invalidPrimaryState,\r\n InvalidDeliveryType: invalidDeliveryOption,\r\n InvalidPickupLocation: invalidPickupLocation,\r\n InvalidDeliveryAddress: invalidDeliveryAddress,\r\n InvalidDeliveryPostcode: invalidDeliveryPostcode,\r\n InvalidDeliveryState: invalidDifferentState,\r\n });\r\n\r\n if (pageState?.DeliveryOption == rdEnum.enumDeliveryOptions.HomeDelivery) {\r\n if (!pageState.DifferentDeliveryAddress) {\r\n //comment below code if delivery fee has error, still able to process checkout\r\n //if (!isNullAddress(primaryAddress)\r\n // && !isNil(primaryAddressAvailabeDetails.DeliveryPriceError) && primaryAddressAvailabeDetails.DeliveryPriceError != \"\") {\r\n // invalidDelivery = true;\r\n //}\r\n }\r\n else {\r\n //different address\r\n if (!isNullAddress(differentDeliveryAddress)) {\r\n if (!differentDeliveryAddressAvailabeDetails.DeliveryAvailable) {\r\n const deliveryError = document.getElementsByClassName(\"delivery-error\");\r\n if (deliveryError != null && deliveryError.length > 0 && deliveryError[0] != null) {\r\n deliveryError[0].innerHTML = \"The address you've entered is not eligible for regional delivery. It falls within the minimum distance required from an Experience Centre. Please select In-store collection or enter a different address\";\r\n }\r\n invalidDelivery = true;\r\n }\r\n\r\n //comment below code if delivery fee has error, still able to process checkout\r\n //if (!isNil(differentDeliveryAddressAvailabeDetails.DeliveryPriceError) && differentDeliveryAddressAvailabeDetails.DeliveryPriceError != \"\") {\r\n // invalidDelivery = true;\r\n //}\r\n }\r\n }\r\n }\r\n\r\n return invalidDelivery;\r\n }\r\n\r\n const isNullAddress = (address: any) => {\r\n if (!isNil(address) && !isNil(address.fullAddress) && address.fullAddress != \"\")\r\n return false;\r\n return true;\r\n }\r\n\r\n const isNullPostcode = (address: any) => {\r\n if (!isNil(address?.postcode) && address?.postcode != \"\")\r\n return false;\r\n return true;\r\n }\r\n\r\n\r\n const showDeliveryAddressError = () => {\r\n\r\n if (!isNullAddress(primaryAddress) && !isNullAddress(differentDeliveryAddress) && pageState.DeliveryOption == rdEnum.enumDeliveryOptions.HomeDelivery && pageState.DifferentDeliveryAddress) {\r\n if (pageState.Country == rdEnum.enumCountryCode.Australia && pageInvalidState?.InvalidDeliveryState) {\r\n return (
Different State from primary address is not allowed. Please try again or select In-store Collection.
);\r\n } else if (pageState.Country == rdEnum.enumCountryCode.NewZealand && pageInvalidState?.InvalidDeliveryPostcode){\r\n return (
Delivery Postcode is required, Please change another address
);\r\n }\r\n } \r\n\r\n if (pageState?.DeliveryOption == rdEnum.enumDeliveryOptions.HomeDelivery) {\r\n if (!pageState.DifferentDeliveryAddress) {\r\n if (!isNullAddress(primaryAddress)) {\r\n let error = rdEnum.enumDeliveryPriceError.find(m => m.ErrorCode == primaryAddressAvailabeDetails.DeliveryPriceError);\r\n if (error != null) {\r\n return (
{error.ErrorMessage}
);\r\n }\r\n }\r\n }\r\n else {\r\n\r\n //different address\r\n if (!isNullAddress(differentDeliveryAddress) && !isNil(differentDeliveryAddressAvailabeDetails.DeliveryAvailable)) {\r\n if (!differentDeliveryAddressAvailabeDetails.DeliveryAvailable) {\r\n return (
Your Delivery Address is not eligible for Regional Delivery.
);\r\n }\r\n else {\r\n let error = rdEnum.enumDeliveryPriceError.find(m => m.ErrorCode == differentDeliveryAddressAvailabeDetails.DeliveryPriceError);\r\n if (error != null) {\r\n return (
{error.ErrorMessage}
);\r\n }\r\n }\r\n\r\n }\r\n else {\r\n return <>;\r\n }\r\n }\r\n }\r\n\r\n return <>;\r\n }\r\n\r\n useImperativeHandle(ref, () => ({\r\n\r\n getValidate: () => {\r\n return validationDelivery();\r\n },\r\n\r\n dispatchRegoAddress: () => {\r\n //dispatch(selectedDeliveryStore.updateRegoAddressAction(\r\n // pageState.PrimaryAddress,\r\n // pageState.PrimarySuburb,\r\n // pageState.PrimaryPostcode,\r\n // pageState.PrimaryState));\r\n }\r\n\r\n }));\r\n\r\n\r\n const handleDeliveryType = async (type: string) => {\r\n setPageState({\r\n ...pageState,\r\n DeliveryOption: type\r\n });\r\n handleDelivery(type)\r\n\r\n setPageInvalidState({\r\n ...pageInvalidState,\r\n InvalidDeliveryType: false,\r\n });\r\n\r\n\r\n let updatedDelivery: selectedConfigModel.ISelectedDelivery = {\r\n ...selectedDeliveryFromStore,\r\n SelectedDeliveryOption: type,\r\n };\r\n\r\n //update delivery location in store\r\n if (type == rdEnum.enumDeliveryOptions.HomeDelivery) {\r\n\r\n //Regional Delivery\r\n if (pageState?.DifferentDeliveryAddress) {\r\n //Regional Delivery and different address\r\n updatedDelivery = {\r\n ...updatedDelivery,\r\n SelectedDeliveryFullAddress: differentDeliveryAddress?.fullAddress,\r\n SelectedDeliveryPostcode: differentDeliveryAddress?.postcode,\r\n SelectedDeliverySuburb: differentDeliveryAddress?.suburb,\r\n SelectedDeliveryState: differentDeliveryAddress?.state,\r\n DeliveryPrice: differentDeliveryAddressAvailabeDetails.DeliveryPrice || 0,\r\n DeliveryDistance: differentDeliveryAddressAvailabeDetails.Distance,\r\n PickupLocationName: null,\r\n //DeliveryAvailable: differentDeliveryAddressAvailable, //todo: show error\r\n //DeliveryPriceErrorCode: differentDeliveryAddressErrorCode || null\r\n };\r\n }\r\n else {\r\n //Regional Delivery and primary address\r\n updatedDelivery = {\r\n ...updatedDelivery,\r\n SelectedDeliveryFullAddress: primaryAddress?.fullAddress,\r\n SelectedDeliveryPostcode: primaryAddress?.postcode,\r\n SelectedDeliverySuburb: primaryAddress?.suburb,\r\n SelectedDeliveryState: primaryAddress?.state,\r\n DeliveryDistance: primaryAddressAvailabeDetails.Distance || 0, //selectedPickuplocation?.Distance,\r\n DeliveryPrice: primaryAddressAvailabeDetails.DeliveryPrice, // selectedPickuplocation?.DeliveryPrice,\r\n PickupLocationName: null,\r\n //DeliveryAvailable: availabe,\r\n //DeliveryPriceErrorCode: errorCode,\r\n };\r\n\r\n }\r\n }\r\n else {\r\n if (!isNil(pickupLocations)) {\r\n let selectedPickuplocation = pickupLocations.find(m => m.IsSelected);\r\n if (!isNil(selectedPickuplocation)) {\r\n //if pickup, set as pickup location address as delivery address\r\n updatedDelivery = {\r\n ...updatedDelivery,\r\n SelectedDeliveryFullAddress: selectedPickuplocation?.LocationAddress,\r\n SelectedDeliveryPostcode: selectedPickuplocation?.LocationPostcode,\r\n SelectedDeliverySuburb: selectedPickuplocation?.LocationSuburb,\r\n SelectedDeliveryState: selectedPickuplocation?.LocationState,\r\n DeliveryDistance: 0, //selectedPickuplocation?.Distance,\r\n DeliveryPrice: 0, // selectedPickuplocation?.DeliveryPrice,\r\n PickupLocationName: selectedPickuplocation?.LocationName,\r\n //DeliveryAvailable: selectedPickuplocation?.DeliveryAvailable,\r\n //DeliveryPriceErrorCode: selectedPickuplocation?.DeliveryErrorCode,\r\n };\r\n }\r\n }\r\n }\r\n dispatch(selectedDeliveryStore.updateDeliveryAction(updatedDelivery));\r\n\r\n }\r\n\r\n //get address dropdown items\r\n const doGetAddress = async (event: any) => {\r\n\r\n let keywords = event.query;\r\n\r\n if (keywords.length > 4) {\r\n let result = await locationService.getAddress(\r\n selectedDeliveryFromStore?.Country?.code || rdEnum.enumCountryCode.Australia,\r\n keywords,\r\n );\r\n if (result.status) {\r\n setAddressList(result.data);\r\n }\r\n }\r\n }\r\n\r\n const onAddressSelect = (e: any) => {\r\n //Check the special scenario '1001 Scenic Drive, Auckland' which without the postcode\r\n //If postcode unavailable, then when user onSelect the Item within 's addressList, \r\n //the postcode's error message will appear\r\n let invalidPrimaryState = false;\r\n if (pageState.Country == rdEnum.enumCountryCode.Australia) {\r\n if (!isNil(e.value) && !isNil(e.value.state) && pageState.State != e.value.state) {\r\n invalidPrimaryState = true;\r\n }\r\n }\r\n if (!isNil(e.value?.postcode) && e.value?.postcode != '') {\r\n setPageInvalidState({\r\n ...pageInvalidState,\r\n InvalidPrimaryAddress: false,\r\n InvalidPrimaryPostcode: false,\r\n InvalidPrimaryState: invalidPrimaryState\r\n })\r\n } else {\r\n setPageInvalidState({\r\n ...pageInvalidState,\r\n InvalidPrimaryAddress: false,\r\n InvalidPrimaryPostcode: true,\r\n InvalidPrimaryState: invalidPrimaryState\r\n })\r\n }\r\n }\r\n\r\n\r\n const onAddressChange = (e: any) => {\r\n\r\n setPageInvalidState({\r\n ...pageInvalidState,\r\n InvalidPrimaryAddress: false,\r\n InvalidPrimaryPostcode: false,\r\n InvalidPrimaryState: false\r\n })\r\n \r\n setPrimaryAddressAddress(e.value); //will trigger in useEffect to get locations and available details\r\n setPickupLocationDataLoadingStatus(rdEnum.enumProcessingStatus.Processing);\r\n\r\n //let type = rdEnum.enumDeliveryOptions.Pickup; //default selected as pick up\r\n //setPageState({\r\n // ...pageState,\r\n // DeliveryOption: type,\r\n //});\r\n }\r\n\r\n const onDeliveryAddressSelect = (e: any) => {\r\n //Check the special scenario '1001 Scenic Drive, Auckland' which without the postcode\r\n //If postcode unavailable, then when user onSelect the Item within 's addressList, \r\n //the postcode's error message will appear\r\n let invalidDeliveryState = false;\r\n let invalidDeliveryPostcode = false;\r\n if (pageState.Country == rdEnum.enumCountryCode.Australia) {\r\n if (!isNil(e.value) && !isNil(e.value.state) && pageState.State != e.value.state) {\r\n invalidDeliveryState = true;\r\n }\r\n }\r\n if (pageState.Country == rdEnum.enumCountryCode.NewZealand) {\r\n if (isNil(e.value) || isNil(e.value.postcode)) {\r\n invalidDeliveryPostcode = true;\r\n }\r\n }\r\n setPageInvalidState({\r\n ...pageInvalidState,\r\n InvalidDeliveryAddress: isNil(e.value),\r\n InvalidDeliveryPostcode: invalidDeliveryPostcode,\r\n InvalidDeliveryState: invalidDeliveryState //Customers is not allowed to select a delivery address that is not in the same state as their registration address\r\n });\r\n }\r\n\r\n //enter different delivery address\r\n const onDeliveryAddressChange = async (e: any) => {\r\n setPageInvalidState({\r\n ...pageInvalidState,\r\n InvalidDeliveryAddress: false,\r\n InvalidDeliveryPostcode: false,\r\n InvalidDeliveryState: false //Customers is not allowed to select a delivery address that is not in the same state as their registration address\r\n });\r\n\r\n setDifferentDeliveryAddress(e.value);\r\n }\r\n\r\n\r\n //primary address change, call get pick up locations and primary address aviablable details\r\n useEffect(() => {\r\n if (isNil(primaryAddress) || isNil(primaryAddress.fullAddress) || primaryAddress.fullAddress == \"\"\r\n || (pageState.Country == rdEnum.enumCountryCode.Australia && pageInvalidState.InvalidPrimaryState)\r\n ) {\r\n clearPrimaryState();\r\n return;\r\n }\r\n else {\r\n doGetLocations(primaryAddress.postcode || \"\",\r\n primaryAddress?.suburb || \"\",\r\n primaryAddress?.state || \"\",\r\n primaryAddress.fullAddress || \"\");\r\n }\r\n\r\n\r\n }, [primaryAddress,\r\n selectedVehicleFromStore.VariantName,\r\n selectedVehicleFromStore?.Exterior,\r\n selectedVehicleFromStore?.Interior,\r\n selectedVehicleFromStore?.Subtotal,\r\n customerTypeFromStore\r\n ]);\r\n\r\n //different address change, get different address aviablable details\r\n useEffect(() => {\r\n\r\n if (isNil(differentDeliveryAddress) || isNil(differentDeliveryAddress.fullAddress) || differentDeliveryAddress.fullAddress == \"\") {\r\n setDifferentDeliveryAddressAvailabeDetails(checkoutHelper.getInitDeliveryAddressAvailableDetails());\r\n return;\r\n }\r\n if (pageState.DifferentDeliveryAddress && !isNil(pickupLocations) && pickupLocations.length > 0\r\n && !isNil(differentDeliveryAddress) && !isNil(differentDeliveryAddress.fullAddress) && differentDeliveryAddress.fullAddress != \"\"\r\n ) {\r\n doGetDeliveryPrice();\r\n }\r\n else {\r\n setDifferentDeliveryAddress(null);\r\n setDifferentDeliveryAddressAvailabeDetails(checkoutHelper.getInitDeliveryAddressAvailableDetails());\r\n\r\n //let updateSelectedDelivery: selectedConfigModel.ISelectedDelivery = {\r\n // ...selectedDeliveryFromStore,\r\n // SelectedDeliveryOption: null,\r\n // SelectedDeliveryFullAddress: null,\r\n // SelectedDeliveryPostcode: null,\r\n // SelectedDeliveryState: null,\r\n // SelectedDeliverySuburb: null,\r\n //}\r\n //dispatch(selectedDeliveryStore.updateDeliveryAction(updateSelectedDelivery));\r\n }\r\n\r\n }, [differentDeliveryAddress,\r\n selectedVehicleFromStore.VariantName,\r\n selectedVehicleFromStore?.Exterior,\r\n selectedVehicleFromStore?.Interior,\r\n selectedVehicleFromStore?.Subtotal,\r\n customerTypeFromStore\r\n ]);\r\n\r\n\r\n //useEffect(() => {\r\n // dispatch(driveawayCostDataVersionStore.setDriveawayDataVersionAction());\r\n\r\n //}, [selectedDeliveryFromStore?.PrimaryAddress, selectedDeliveryFromStore?.SelectedDeliveryFullAddress])\r\n\r\n\r\n\r\n useEffect(() => {\r\n if (!isNil(inputRef.current)) {\r\n inputRef.current.setAttribute(\"autocomplete\", \"new\");\r\n inputRef.current.setAttribute('data-dtm', 'checkout:taking delivery');\r\n }\r\n }, [inputRef]);\r\n\r\n useEffect(() => {\r\n if (!isNil(regionalInputRef.current)) {\r\n regionalInputRef.current.setAttribute(\"autocomplete\", \"new\");\r\n }\r\n }, [regionalInputRef, pageState.DifferentDeliveryAddress]);\r\n\r\n useEffect(() => {\r\n if (locationCheckboxRef.current) {\r\n locationCheckboxRef.current.setAttribute('data-dtm', 'checkout:taking delivery');\r\n locationCheckboxRef.current.classList.add('stat-checkbox');\r\n }\r\n }, [locationCheckboxRef.current]);\r\n\r\n useEffect(() => {\r\n if (differentAddressCheckboxRef.current) {\r\n differentAddressCheckboxRef.current.setAttribute('data-dtm', 'checkout:taking delivery');\r\n differentAddressCheckboxRef.current.classList.add('stat-checkbox');\r\n }\r\n }, [differentAddressCheckboxRef.current]);\r\n\r\n\r\n //must be triggered by userEffect as variant,exterior,interior,vehicle subtotal price from store\r\n const doGetLocations = async (postcode: string, suburb: string, state: string, address: string) => {\r\n if (isNil(pageState.Country) || pageState.Country == \"\") {\r\n return;\r\n }\r\n\r\n let variantName = selectedVehicleFromStore?.VariantName || \"\";\r\n let exteriorName = selectedVehicleFromStore?.Exterior || \"\";\r\n let interiorName = selectedVehicleFromStore?.Interior || \"\";\r\n\r\n let request: deliveryModel.IGetPickupLocationRequest = {\r\n Country: pageState.Country,\r\n State: pageState.State || \"\",\r\n PrimaryPostcode: postcode,\r\n PrimarySuburb: suburb,\r\n PrimaryState: state,\r\n PrimaryAddress: address,\r\n VariantName: variantName,\r\n ExteriorName: exteriorName,\r\n InteriorName: interiorName,\r\n CustomerType: customerTypeFromStore,\r\n VehicleSubTotal: selectedVehicleFromStore.Subtotal || 0\r\n };\r\n\r\n setPickupLocationDataLoadingStatus(rdEnum.enumProcessingStatus.Processing);\r\n let response = await locationService.getLocations(request);\r\n setPickupLocationDataLoadingStatus(rdEnum.enumProcessingStatus.Processed);\r\n if (response.status) {\r\n let locatiions: deliveryModel.IPickupLocation[] = [];\r\n //let hasExistedSelected = false;\r\n response.data.pickupLocations.map((item: any, index: number) => {\r\n locatiions.push({\r\n IsSelected: index==0,\r\n LocationName: item.pickupLocationName,\r\n LocationAddress: item.pickupLocationAddress,\r\n LocationSuburb: item.pickupLocationSuburb,\r\n LocationPostcode: item.pickupLocationPostcode,\r\n LocationState: item.pickupLocationState,\r\n LocationAvailable: item.pickupLocationAvailable,\r\n Distance: item.deliveryPrice.distance,\r\n DeliveryPrice: item.deliveryPrice.deliveryPrice,\r\n DeliveryAvailable: item.deliveryPrice.deliveryAvailable,\r\n DeliveryErrorCode: item.deliveryPrice.deliveryPriceErrorCode\r\n });\r\n //if (item.pickupLocationAvailable) {\r\n // hasExistedSelected = true;\r\n //}\r\n });\r\n setPickupLocations(locatiions);\r\n //console.log(locatiions);\r\n let selectedPickuplocation = locatiions.find((m: deliveryModel.IPickupLocation) => m.IsSelected);\r\n if (!isNil(selectedPickuplocation)) {\r\n\r\n //if has pick up availabe, default is pick up\r\n let type = null; \r\n if (selectedPickuplocation.LocationAvailable) {\r\n type = rdEnum.enumDeliveryOptions.Pickup; \r\n }\r\n else {\r\n //if has not pickup, but delivery is available\r\n if (selectedPickuplocation.DeliveryAvailable) {\r\n type = rdEnum.enumDeliveryOptions.HomeDelivery;\r\n }\r\n }\r\n setPageState({\r\n ...pageState,\r\n PickupAddressConfirm: true,\r\n DeliveryOption: type\r\n });\r\n\r\n //set primary address available details\r\n let primaryAddressAvailabe: deliveryModel.IDeliveryAddressAvailableDetails = {\r\n PickupLocationAvailable: selectedPickuplocation.LocationAvailable,\r\n DeliveryAvailable: selectedPickuplocation.DeliveryAvailable,\r\n Distance: selectedPickuplocation.Distance,\r\n DeliveryPrice: selectedPickuplocation.DeliveryPrice,\r\n DeliveryPriceError: selectedPickuplocation.DeliveryErrorCode\r\n }\r\n setPrimaryAddressAvailabeDetails(primaryAddressAvailabe);\r\n\r\n\r\n let updatedDelivery: selectedConfigModel.ISelectedDelivery = {\r\n ...selectedDeliveryFromStore,\r\n SelectedDeliveryOption: type,\r\n SelectedPickupLocation: selectedPickuplocation,\r\n SelectedDeliveryFullAddress: type == rdEnum.enumDeliveryOptions.Pickup ? selectedPickuplocation?.LocationAddress : address,\r\n SelectedDeliveryPostcode: type == rdEnum.enumDeliveryOptions.Pickup ? selectedPickuplocation?.LocationPostcode : postcode,\r\n SelectedDeliverySuburb: type == rdEnum.enumDeliveryOptions.Pickup ? selectedPickuplocation?.LocationSuburb : suburb,\r\n SelectedDeliveryState: type == rdEnum.enumDeliveryOptions.Pickup ? selectedPickuplocation?.LocationState : state,\r\n PickupLocationName: selectedPickuplocation?.LocationName,\r\n PrimaryAddress: response.data.homeDeliveryAddress,\r\n PrimaryPostcode: response.data.homeDeliveryPostcode,\r\n PrimarySuburb: response.data.homeDeliverySuburb,\r\n PrimaryState: response.data.homeDeliveryState,\r\n InvalidPrimaryAddress: false,\r\n DeliveryPrice: type == rdEnum.enumDeliveryOptions.Pickup ? 0 : response.data.pickupLocations[0].deliveryPrice.deliveryPrice,\r\n DeliveryAvailable: response.data.pickupLocations[0].deliveryPrice.deliveryAvailable,\r\n DeliveryPriceErrorCode: response.data.pickupLocations[0].deliveryPrice.deliveryPriceErrorCode,\r\n //DeliveryDistance: response.data.pickupLocations[0].deliveryPrice.distance,\r\n }\r\n dispatch(selectedDeliveryStore.updateDeliveryAction(updatedDelivery));\r\n }\r\n else {\r\n setPageState({ ...pageState, PickupAddressConfirm: false });\r\n }\r\n }\r\n else {\r\n clearPrimaryState();\r\n }\r\n }\r\n\r\n\r\n const clearPrimaryState = () => {\r\n\r\n setPickupLocations(null);\r\n setPrimaryAddressAvailabeDetails(checkoutHelper.getInitDeliveryAddressAvailableDetails());\r\n\r\n let updateSelectedDelivery: selectedConfigModel.ISelectedDelivery = {\r\n ...selectedDeliveryFromStore,\r\n SelectedPickupLocation: null,\r\n SelectedDeliveryOption: null,\r\n SelectedDeliveryFullAddress: null,\r\n SelectedDeliveryPostcode: null,\r\n SelectedDeliveryState: null,\r\n SelectedDeliverySuburb: null,\r\n PrimaryAddress: null,\r\n PrimaryPostcode: null,\r\n PrimarySuburb: null,\r\n PrimaryState: null,\r\n InvalidPrimaryAddress: null,\r\n DeliveryAvailable: null,\r\n DeliveryPrice: null,\r\n DeliveryPriceErrorCode: null,\r\n DeliveryDistance: null,\r\n PickupLocationName: null,\r\n }\r\n dispatch(selectedDeliveryStore.updateDeliveryAction(updateSelectedDelivery));\r\n }\r\n\r\n const doGetDeliveryPrice = async () => {\r\n if (isNil(pickupLocations) || pickupLocations.length == 0) return;\r\n\r\n let selectedLocation = pickupLocations.find(m => m.IsSelected);\r\n if (selectedLocation == null) return;\r\n\r\n\r\n let request: deliveryModel.IGetPriceRequest = {\r\n Country: selectedDeliveryFromStore?.Country?.code || \"\",\r\n DeliveryAddress: differentDeliveryAddress.fullAddress,\r\n DeliveryState: differentDeliveryAddress.state,\r\n DeliveryPostcode: differentDeliveryAddress.postcode,\r\n DeliverySuburb: differentDeliveryAddress.suburb,\r\n PickupAddress: selectedLocation.LocationAddress || \"\",\r\n PickupState: selectedLocation.LocationState || \"\",\r\n PickupPostcode: selectedLocation.LocationPostcode || \"\",\r\n PickupSuburb: selectedLocation.LocationSuburb || \"\",\r\n CustomerType: customerTypeFromStore || \"\",\r\n VariantName: selectedVehicleFromStore.VariantName || \"\",\r\n VehicleSubTotal: selectedVehicleFromStore?.Subtotal || 0,\r\n };\r\n\r\n let priceResponse = await locationService.getDeliveryPrice(request);\r\n if (priceResponse.status) {\r\n let priceResponseData = priceResponse.data;\r\n\r\n let deliveryAddressAvailabe: deliveryModel.IDeliveryAddressAvailableDetails = {\r\n PickupLocationAvailable: null,\r\n DeliveryAvailable: priceResponseData.deliveryAvailable,\r\n Distance: priceResponseData.distance,\r\n DeliveryPrice: priceResponseData.deliveryPrice || 0,\r\n DeliveryPriceError: priceResponseData.deliveryPriceErrorCode,\r\n };\r\n setDifferentDeliveryAddressAvailabeDetails(deliveryAddressAvailabe);\r\n\r\n let updatedDelivery: selectedConfigModel.ISelectedDelivery = {\r\n ...selectedDeliveryFromStore,\r\n SelectedDeliveryFullAddress: differentDeliveryAddress.fullAddress,\r\n SelectedDeliverySuburb: differentDeliveryAddress.suburb,\r\n SelectedDeliveryPostcode: differentDeliveryAddress.postcode,\r\n SelectedDeliveryState: differentDeliveryAddress.state,\r\n DeliveryPrice: priceResponseData.deliveryPrice,\r\n DeliveryDistance: priceResponseData.distance,\r\n DeliveryAvailable: priceResponseData.deliveryAvailable,\r\n DeliveryPriceErrorCode: priceResponse.deliveryPriceErrorCode,\r\n }\r\n\r\n dispatch(selectedDeliveryStore.updateDeliveryAction(updatedDelivery));\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n const getHomeDeliveryPrice = () => {\r\n //if regional +different address, from differentDeliveryAddressPrice\r\n //if regional and same primary address, show the price in pickup location store\r\n if (pageState.DifferentDeliveryAddress) {\r\n if (differentDeliveryAddressAvailabeDetails.DeliveryPriceError != \"\") {\r\n return rdHelper.currencyFormatWithZeroBlank(differentDeliveryAddressAvailabeDetails.DeliveryPrice);\r\n }\r\n else {\r\n return rdHelper.currencyFormatWithZeroBlank(differentDeliveryAddressAvailabeDetails.DeliveryPrice); //show include if price is 0\r\n }\r\n }\r\n else {\r\n if (primaryAddressAvailabeDetails.DeliveryPriceError != \"\") {\r\n return rdHelper.currencyFormatWithZeroBlank(primaryAddressAvailabeDetails.DeliveryPrice);\r\n }\r\n else {\r\n return rdHelper.currencyFormatWithZeroBlank(primaryAddressAvailabeDetails.DeliveryPrice); //show include if price is 0\r\n }\r\n }\r\n }\r\n\r\n const homeDeliverOptionTemplate = () => {\r\n if (primaryAddressAvailabeDetails?.DeliveryAvailable) {\r\n return (\r\n \r\n );\r\n }\r\n return (<>);\r\n }\r\n\r\n\r\n\r\n\r\n const handleFocus = () => {\r\n setIsFocused(true);\r\n };\r\n\r\n const handleBlur = (e: any) => {\r\n if (e.target.value != '' ) {\r\n setIsFocused(true)\r\n } else {\r\n setIsFocused(false)\r\n }\r\n };\r\n\r\n const handleRegoFocus = () => {\r\n setIsRegoFocused(true);\r\n };\r\n\r\n const handleRegoBlur = (e: any) => {\r\n // if (isNil(differentDeliveryAddress?.fullAddress) || differentDeliveryAddress?.fullAddress == '') {\r\n // setIsRegoFocused(false);\r\n // }\r\n if (e.target.value != '') {\r\n setIsRegoFocused(true);\r\n } else {\r\n setIsRegoFocused(false);\r\n }\r\n };\r\n\r\n const eligibleForPickupLocation = (): boolean => {\r\n let pickupAvailable: boolean = primaryAddressAvailabeDetails.PickupLocationAvailable || false;\r\n return pickupAvailable && !isNil(pickupLocations) && pickupLocations.length > 0;\r\n\r\n }\r\n\r\n\r\n\r\n const eligibleNoteTemplate = () => {\r\n\r\n let hasInStoreEligible = false;\r\n let hasDeliveryEligible = false\r\n\r\n if (pickupLocationDataLoadingStatus == rdEnum.enumProcessingStatus.Processed) {\r\n if (eligibleForPickupLocation()) {\r\n hasInStoreEligible = true;\r\n }\r\n }\r\n\r\n hasDeliveryEligible = primaryAddressAvailabeDetails.DeliveryAvailable || false;\r\n\r\n //if (pageState.DeliveryOption == rdEnum.enumDeliveryOptions.Pickup && primaryAddressAvailabeDetails.DeliveryAvailable) {\r\n // hasDeliveryEligible = true;\r\n //}\r\n //else if (pageState.DeliveryOption == rdEnum.enumDeliveryOptions.HomeDelivery\r\n // && pageState.DifferentDeliveryAddress\r\n // && differentDeliveryAddressAvailabeDetails.DeliveryAvailable) {\r\n // hasDeliveryEligible = true;\r\n //}\r\n\r\n if (hasInStoreEligible && hasDeliveryEligible) {\r\n return (\r\n

You are eligible for in-store collection or regional delivery

\r\n );\r\n }\r\n else if (hasInStoreEligible && !hasDeliveryEligible) {\r\n return (\r\n

You are eligible for in-store collection

\r\n );\r\n }\r\n else if (!hasInStoreEligible && hasDeliveryEligible) {\r\n return (\r\n

This address is only eligible for Regional Delivery

\r\n );\r\n }\r\n\r\n return (<>)\r\n\r\n }\r\n\r\n\r\n return (\r\n
\r\n
\r\n

TAKING DELIVERY

\r\n

Enter your primary address to help us determine accurate on-road pricing along with available delivery options.

\r\n {/*primary address*/}\r\n \r\n {\r\n pageState.Country == rdEnum.enumCountryCode.Australia\r\n ?\r\n \r\n :\r\n \r\n }\r\n
\r\n \r\n { doGetAddress(e); }}\r\n onSelect={(e: any) => {\r\n onAddressSelect(e);\r\n }}\r\n onChange={(e: any) => {\r\n onAddressChange(e);\r\n //setPageInvalidState({...pageInvalidState, InvalidPickupLocation: false})\r\n }}\r\n />\r\n {/*onChange={(e: any) => { onAddressChange(e); }}*/}\r\n \r\n \r\n {eligibleNoteTemplate()}\r\n {pageInvalidState.InvalidPrimaryAddress ? (\r\n
Primary Address is required.
\r\n )\r\n : pageInvalidState.InvalidPrimaryPostcode ? (\r\n
Primary Postcode is required.
\r\n )\r\n : pageState.Country == rdEnum.enumCountryCode.Australia && pageInvalidState.InvalidPrimaryState ? (\r\n
You can only enter {pageState.State} address or refresh page to re-select state.
\r\n )\r\n : <>\r\n }\r\n
\r\n {!isNil(primaryAddress) && !isNil(primaryAddress.fullAddress) && primaryAddress.fullAddress != \"\" && (\r\n \r\n )}\r\n
\r\n {\r\n pickupLocationDataLoadingStatus == rdEnum.enumProcessingStatus.Processed && !pageInvalidState.InvalidPrimaryAddress && !pageInvalidState.InvalidPrimaryPostcode\r\n ?\r\n
\r\n {/* Preferred option */}\r\n\r\n
\r\n {eligibleForPickupLocation() && (\r\n \r\n )}\r\n {homeDeliverOptionTemplate()}\r\n
\r\n\r\n {\r\n pageState.DeliveryOption == rdEnum.enumDeliveryOptions.Pickup && !pageInvalidState.InvalidPrimaryAddress\r\n && primaryAddressAvailabeDetails.PickupLocationAvailable && !isNil(pickupLocations) && pickupLocations.length > 0\r\n ?\r\n <>\r\n
Pick-up location
\r\n {pickupLocations.map((item: deliveryModel.IPickupLocation, index: number) => {\r\n return (\r\n
\r\n \r\n
\r\n
\r\n {\r\n setPageState({\r\n ...pageState,\r\n PickupAddressConfirm: e.checked,\r\n })\r\n\r\n setPageInvalidState({ ...pageInvalidState, InvalidPickupLocation: false });\r\n }}\r\n checked={pageState?.PickupAddressConfirm}\r\n >\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n );\r\n\r\n })}\r\n {pageInvalidState.InvalidPickupLocation && (\r\n
Please select pick up location.
\r\n )}\r\n \r\n :\r\n <>\r\n }\r\n
\r\n :\r\n <>\r\n }\r\n {\r\n pickupLocationDataLoadingStatus == rdEnum.enumProcessingStatus.Processed\r\n && pageState.DeliveryOption == rdEnum.enumDeliveryOptions.HomeDelivery && !pageInvalidState.InvalidPrimaryAddress && !pageInvalidState.InvalidPrimaryPostcode\r\n ?\r\n (\r\n
\r\n
\r\n {\r\n setPageState({\r\n ...pageState,\r\n DifferentDeliveryAddress: e.checked,\r\n })\r\n if (e.checked) {\r\n\r\n setPageInvalidState({\r\n ...pageInvalidState,\r\n InvalidDeliveryState: primaryAddress?.state != differentDeliveryAddress?.state\r\n });\r\n\r\n let updatedDelivery: selectedConfigModel.ISelectedDelivery = {\r\n ...selectedDeliveryFromStore,\r\n SelectedDeliveryFullAddress: differentDeliveryAddress?.fullAddress,\r\n SelectedDeliveryPostcode: differentDeliveryAddress?.postcode,\r\n SelectedDeliverySuburb: differentDeliveryAddress?.suburb,\r\n SelectedDeliveryState: differentDeliveryAddress?.state,\r\n DeliveryPrice: primaryAddressAvailabeDetails.DeliveryPrice,\r\n DeliveryDistance: primaryAddressAvailabeDetails.Distance,\r\n };\r\n dispatch(selectedDeliveryStore.updateDeliveryAction(updatedDelivery));\r\n }\r\n else {\r\n setPageInvalidState({ ...pageInvalidState, InvalidDeliveryState: false });\r\n\r\n let updatedDelivery: selectedConfigModel.ISelectedDelivery = {\r\n ...selectedDeliveryFromStore,\r\n SelectedDeliveryFullAddress: primaryAddress?.fullAddress,\r\n SelectedDeliveryPostcode: primaryAddress?.postcode,\r\n SelectedDeliverySuburb: primaryAddress?.suburb,\r\n SelectedDeliveryState: primaryAddress?.state,\r\n DeliveryDistance: primaryAddressAvailabeDetails.Distance,\r\n DeliveryPrice: primaryAddressAvailabeDetails.DeliveryPrice,\r\n };\r\n dispatch(selectedDeliveryStore.updateDeliveryAction(updatedDelivery));\r\n }\r\n }}\r\n checked={pageState?.DifferentDeliveryAddress}\r\n >\r\n \r\n
\r\n {pageState.DifferentDeliveryAddress && (\r\n \r\n {\r\n selectedDeliveryFromStore?.Country?.code == rdEnum.enumCountryCode.Australia\r\n ?\r\n \r\n :\r\n \r\n }\r\n
\r\n \r\n {\r\n doGetAddress(e);\r\n }}\r\n onSelect={(e: any) => { \r\n onDeliveryAddressSelect(e) \r\n }}\r\n onChange={(e: any) => { onDeliveryAddressChange(e); }}\r\n />\r\n \r\n \r\n {pageInvalidState.InvalidDeliveryAddress && (\r\n
Delivery Address is required.
\r\n )}\r\n
\r\n {!isNil(differentDeliveryAddress) && !isNil(differentDeliveryAddress.fullAddress) && differentDeliveryAddress.fullAddress != \"\" && (\r\n \r\n )}\r\n\r\n
\r\n )}\r\n
\r\n )\r\n : (<>)\r\n }\r\n\r\n
\r\n {showDeliveryAddressError()}\r\n
\r\n )\r\n});\r\n\r\nexport default Delivery","import * as checkOutWaitlstViewModel from 'model/ICheckoutWaitlistViewModel';\r\nimport * as deliveryModel from 'model/IDelivery';\r\nimport * as orderModel from 'model/IOrder';\r\nimport * as configModel from 'model/IUserSelectedConfig';\r\n\r\nexport const getCheckoutInitPageState = (): checkOutWaitlstViewModel.ICheckoutWaitlistProps => {\r\n let isDev = `${process.env.REACT_APP_DevModel}`;\r\n if (isDev == \"1\") {\r\n let initPageState: checkOutWaitlstViewModel.ICheckoutWaitlistProps = {\r\n businessname: \"\",\r\n abn: \"\",\r\n firstname: \"sharon\",\r\n lastname: \"huang\",\r\n email: \"SharonH@resultsdirect.com.au\",\r\n confirmEmail: \"SharonH@resultsdirect.com.au\",\r\n mobile: \"1234567901\",\r\n address: \"43 Dalgety Street\",\r\n address2: \"ccc\",\r\n suburb: \"Oakleigh\",\r\n states: null,\r\n postcode: \"3166\",\r\n agreement: true,\r\n comment: \"\",\r\n invalidBusinessname: false,\r\n invalidABN: false,\r\n invalidABNLength: false,\r\n invalidFirstname: false,\r\n invalidLastname: false,\r\n invalidEmail: false,\r\n invalidConfirmEmail: false,\r\n invalidMobile: false,\r\n invalidAddress: false,\r\n invalidSuburb: false,\r\n emailMismatch: false,\r\n emailDuplicated: false,\r\n invalidAgreement: false,\r\n invalidState: false,\r\n invalidPostcode: false\r\n };\r\n return initPageState;\r\n }\r\n else {\r\n let initPageState: checkOutWaitlstViewModel.ICheckoutWaitlistProps = {\r\n businessname: \"\",\r\n abn: \"\",\r\n firstname: \"\",\r\n lastname: \"\",\r\n email: \"\",\r\n confirmEmail: \"\",\r\n mobile: \"\",\r\n address: \"\",\r\n address2: \"\",\r\n suburb: \"\",\r\n states: null,\r\n postcode: \"\",\r\n agreement: true,\r\n comment: \"\",\r\n invalidBusinessname: false,\r\n invalidABN: false,\r\n invalidABNLength: false,\r\n invalidFirstname: false,\r\n invalidLastname: false,\r\n invalidEmail: false,\r\n invalidConfirmEmail: false,\r\n invalidMobile: false,\r\n invalidAddress: false,\r\n invalidSuburb: false,\r\n emailMismatch: false,\r\n emailDuplicated: false,\r\n invalidAgreement: false,\r\n invalidState: false,\r\n invalidPostcode: false\r\n };\r\n return initPageState;\r\n }\r\n\r\n\r\n};\r\n\r\nexport const getOrderInitState = (): orderModel.IOrderRequest => {\r\n let initState: orderModel.IOrderRequest = {\r\n Country: \"\",\r\n State: null,\r\n VariantName: \"\",\r\n VariantPrice: null,\r\n ExteriorName: \"\",\r\n ExteriorPrice: null,\r\n InteriorName: \"\",\r\n InteriorPrice: null,\r\n VehicleImages: [],\r\n VehicleThumbnail: null,\r\n Options: null,\r\n DeliveryLocationState: null,\r\n DeliveryLocationSuburb: null,\r\n DeliveryLocationPostcode: null,\r\n DeliveryLocationAddress: null,\r\n DeliveryOption: null,\r\n PickupLocationName: null,\r\n Available: null,\r\n PaymentOption: null,\r\n DriveawayCost: null,\r\n Finance: null,\r\n Email: null,\r\n FirstName: null,\r\n LastName: null,\r\n Mobile: null,\r\n ABN: null,\r\n BusinessName: null,\r\n CustomerCountry: null,\r\n CustomerType: null,\r\n BillingAddress: null,\r\n BillingSuburb: null,\r\n BillingPostcode: null,\r\n BillingState: null,\r\n RegoAddress: null,\r\n RegoSuburb: null,\r\n RegoPostcode: null,\r\n RegoState: null,\r\n NameOnCreditCard: null,\r\n PrivacyStatement: null,\r\n RDAcountID: null,\r\n RDPaymentID: null,\r\n OrderID: null,\r\n YanaOrderReservationID: null,\r\n YanaOrderReservationNo: null,\r\n YanaOrderID: null,\r\n YanaOrderNo: null,\r\n YanaCustomerID: null,\r\n YanaCustomerNo: null,\r\n FromLinkSource: null,\r\n PaymentHistory: null,\r\n DownPayment: null,\r\n PaymentDueDate: null,\r\n FinalPaymentAmount: null,\r\n Total: null,\r\n Balance: null,\r\n PaymentAmount: null,\r\n Comments: null\r\n };\r\n\r\n return initState;\r\n}\r\n\r\n\r\nexport const getPaymentInitState = (): checkOutWaitlstViewModel.IPaymentProps => {\r\n let isDev = `${process.env.REACT_APP_DevModel}`;\r\n if (isDev == \"1\") {\r\n let initPaymentState: checkOutWaitlstViewModel.IPaymentProps = {\r\n nameOnCard: \"sharon\",\r\n cardNumber: \"5555555555554444\",\r\n expiryMonth: null,\r\n expiryYear: null,\r\n cvv: \"737\",\r\n invalidNameOnCard: false,\r\n invalidCardNumber: false,\r\n invalidExpiryMonth: false,\r\n invalidExpiryYear: false,\r\n invalidCVV: false,\r\n };\r\n return initPaymentState;\r\n\r\n }\r\n else {\r\n let initPaymentState: checkOutWaitlstViewModel.IPaymentProps = {\r\n nameOnCard: \"\",\r\n cardNumber: \"\",\r\n expiryMonth: null,\r\n expiryYear: null,\r\n cvv: \"\",\r\n invalidNameOnCard: false,\r\n invalidCardNumber: false,\r\n invalidExpiryMonth: false,\r\n invalidExpiryYear: false,\r\n invalidCVV: false,\r\n };\r\n return initPaymentState;\r\n }\r\n}\r\n\r\nexport const getDeliveryInitState = (): deliveryModel.IDelivery => {\r\n let initState: deliveryModel.IDelivery = {\r\n Country: \"\",\r\n State: \"\",\r\n //PrimaryAddress: \"\",\r\n //PrimaryPostcode: \"\",\r\n //PrimarySuburb: \"\",\r\n //PrimaryState: \"\",\r\n //PickupLocations: [],\r\n DeliveryOption: \"\",\r\n DifferentDeliveryAddress: null,\r\n //DeliveryAddress: \"\",\r\n //DeliverySuburb: \"\",\r\n //DeliveryPostcode: \"\",\r\n //DeliveryState: \"\",\r\n PickupAddressConfirm: null,\r\n //DeliveryAvailable: null,\r\n //DeliveryPrice: null,\r\n //DeliveryDistance: null,\r\n };\r\n\r\n return initState;\r\n\r\n}\r\n\r\nexport const getInitDeliveryAddress = (): deliveryModel.IDeliveryAddress => {\r\n let initState: deliveryModel.IDeliveryAddress = {\r\n fullAddress: \"\",\r\n postcode: \"\",\r\n suburb: \"\",\r\n state: \"\",\r\n };\r\n\r\n return initState;\r\n}\r\n\r\nexport const getInitDeliveryAddressAvailableDetails = (): deliveryModel.IDeliveryAddressAvailableDetails => {\r\n let initState: deliveryModel.IDeliveryAddressAvailableDetails = {\r\n PickupLocationAvailable: null,\r\n DeliveryAvailable: null,\r\n Distance: null,\r\n DeliveryPrice: null,\r\n DeliveryPriceError: null,\r\n };\r\n\r\n return initState;\r\n}\r\n\r\n\r\n\r\nexport const getInitInvalidDelivery = (): deliveryModel.IInvalidDelivery => {\r\n let initState: deliveryModel.IInvalidDelivery = {\r\n InvalidDeliveryType: false,\r\n InvalidPrimaryAddress: false,\r\n InvalidPrimaryPostcode: false,\r\n InvalidPrimaryState: false,\r\n InvalidPickupLocation: false,\r\n InvalidDeliveryAddress: false,\r\n InvalidDeliveryPostcode: false,\r\n InvalidDeliveryState: false,\r\n };\r\n\r\n return initState;\r\n}\r\n\r\nexport const getAdyenInitState = (): checkOutWaitlstViewModel.IAdyenSession => {\r\n let initState: checkOutWaitlstViewModel.IAdyenSession = {\r\n SessionID: null,\r\n SessionData: null,\r\n SessionResult: null,\r\n ResultCode: null,\r\n ErrorMessage: null\r\n };\r\n\r\n return initState;\r\n}\r\n","import { getFrontendUrl, getCMSAssets } from 'helpers/Uri'\r\nimport React from 'react'\r\nimport { useNavigate } from 'react-router-dom'\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { IAppState } from 'model/IAppState';\r\n\r\n\r\nconst NoInventoryReminder = () => {\r\n const selectedVehicleFromStore = useSelector((state: IAppState) => {\r\n return state.selectedVehicle;\r\n });\r\n\r\n const navigate = useNavigate();\r\n\r\n const handleToInventoryPage = () => {\r\n let url = `${getFrontendUrl()}/inventory?inventory?shopfront=1`;\r\n //let url = `${getFrontendUrl()}/inventory?variant=${selectedVehicleFromStore.VariantName}`;\r\n //url += `&exterior=${selectedVehicleFromStore.Exterior}&interior=${selectedVehicleFromStore.Interior}`;\r\n //url += `&outOfStockBoxLocation=1`; \r\n navigate(url);\r\n }\r\n\r\n return (\r\n
\r\n
\r\n {/*

\r\n The configuration you have\r\n

\r\n

\r\n selected is currently exhausted\r\n

*/}\r\n

\r\n Your design is currently sold out, but you can continue and join a waitlist. There are a selection of configurations available sooner\r\n

\r\n\r\n
handleToInventoryPage()} data-dtm=\"checkout:announcement\">\r\n
\r\n View Available Inventory\r\n
\r\n \r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default NoInventoryReminder","import { getBackendPath } from 'helpers/Uri';\r\nimport * as orderModel from 'model/IOrder';\r\nimport * as checkOutViewModel from 'model/ICheckoutWaitlistViewModel';\r\nimport * as rdHelper from 'helpers/Uri';\r\nexport const payment = async (\r\n payment: any,\r\n currency: any,\r\n): Promise => {\r\n const requestOptions: any = {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n body: JSON.stringify({\r\n payment: payment,\r\n currency: currency,\r\n }),\r\n credentials: 'include',\r\n };\r\n const response = await fetch(\r\n `${getBackendPath()}/api/Order/payment`,\r\n requestOptions,\r\n );\r\n const json = await response.json();\r\n rdHelper.noActivityRedirectHomePage(json);\r\n return json;\r\n};\r\n\r\n\r\nexport const getNewPaymentIDs = async (\r\n orderID: any,\r\n Country: any,\r\n): Promise => {\r\n const requestOptions: any = {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n body: JSON.stringify({\r\n orderID: orderID,\r\n Country: Country,\r\n }),\r\n credentials: 'include',\r\n };\r\n const response = await fetch(\r\n `${getBackendPath()}/api/Payment/get-new-payment-ids`,\r\n requestOptions,\r\n );\r\n const json = await response.json();\r\n rdHelper.noActivityRedirectHomePage(json);\r\n return json;\r\n};\r\n\r\n\r\nexport const savePaymentLog = async (\r\n order: orderModel.IOrderRequest,\r\n adyenSession: checkOutViewModel.IAdyenSession\r\n): Promise => {\r\n const requestOptions: any = {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n body: JSON.stringify({\r\n order: order,\r\n adyenSession: adyenSession,\r\n }),\r\n credentials: 'include',\r\n };\r\n const response = await fetch(\r\n `${getBackendPath()}/api/Payment/save-payment-log`,\r\n requestOptions,\r\n );\r\n const json = await response.json();\r\n rdHelper.noActivityRedirectHomePage(json);\r\n return json;\r\n};\r\n//export const getNewRDTransactionID = async (\r\n// orderID: any,\r\n// Country: any,\r\n//): Promise => {\r\n// const requestOptions: any = {\r\n// method: 'POST',\r\n// headers: {\r\n// 'Content-Type': 'application/json',\r\n// },\r\n// body: JSON.stringify({\r\n// orderID: orderID,\r\n// Country: Country,\r\n// }),\r\n// credentials: 'include',\r\n// };\r\n// const response = await fetch(\r\n// `${getBackendPath()}/api/Payment/get-new-rdtransactionid`,\r\n// requestOptions,\r\n// );\r\n// const json = await response.json();\r\n// return json;\r\n//};","import { getBackendPath } from 'helpers/Uri';\r\nimport * as orderModel from 'model/IOrder';\r\nimport * as checkOutViewModel from 'model/ICheckoutWaitlistViewModel';\r\nimport * as orderCustomerDetailsModel from 'model/IOrderCustomerDetails';\r\nimport * as contractModel from 'model/IContract';\r\nimport * as scheduleDeliveryModel from 'model/IOrderScheduleDelivery';\r\nimport * as docModel from 'model/IDocuments';\r\nimport * as callBackRequestModel from 'model/ICallBackRequest';\r\nimport * as financeStatusModel from 'model/IFinanceStatus';\r\nimport * as rdHelper from 'helpers/Uri';\r\n\r\nexport const placeReservation = async (\r\n order: orderModel.IOrderRequest,\r\n hasLogin: boolean,\r\n): Promise => {\r\n const requestOptions: any = {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n body: JSON.stringify({\r\n order: order,\r\n hasLogin: hasLogin\r\n }),\r\n credentials: 'include',\r\n };\r\n const response = await fetch(\r\n `${getBackendPath()}/api/Order/place-reservation`,\r\n requestOptions,\r\n );\r\n const json = await response.json();\r\n rdHelper.noActivityRedirectHomePage(json);\r\n return json;\r\n};\r\n\r\nexport const placeOrder = async (\r\n order: orderModel.IOrderRequest,\r\n adyenSession: checkOutViewModel.IAdyenSession\r\n): Promise => {\r\n const requestOptions: any = {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n body: JSON.stringify({\r\n order: order,\r\n adyenSession: adyenSession\r\n }),\r\n credentials: 'include',\r\n };\r\n const response = await fetch(\r\n `${getBackendPath()}/api/Order/place-order`,\r\n requestOptions,\r\n );\r\n const json = await response.json();\r\n rdHelper.noActivityRedirectHomePage(json);\r\n return json;\r\n};\r\n\r\nexport const getOrderByYanaCustomerID = async (\r\n customerID: string,\r\n customerNo: string,\r\n nzCustomerID: string,\r\n nzCustomerNo: string,\r\n): Promise => {\r\n const requestOptions: any = {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n body: JSON.stringify({\r\n customerID: customerID,\r\n customerNo: customerNo,\r\n nzCustomerID: nzCustomerID,\r\n nzCustomerNo: nzCustomerNo\r\n }),\r\n credentials: 'include',\r\n };\r\n const response = await fetch(\r\n `${getBackendPath()}/api/Order/get-orders-by-customerID`,\r\n requestOptions,\r\n );\r\n const json = await response.json();\r\n rdHelper.noActivityRedirectHomePage(json);\r\n return json;\r\n};\r\n\r\n//export const getMyOrderByYanaCustomerID = async (\r\n// customerID: string,\r\n// customerNo: string,\r\n//): Promise => {\r\n// const requestOptions: any = {\r\n// method: 'POST',\r\n// headers: {\r\n// 'Content-Type': 'application/json',\r\n// },\r\n// body: JSON.stringify({\r\n// customerID: customerID,\r\n// customerNo: customerNo\r\n// }),\r\n// credentials: 'include',\r\n// };\r\n// const response = await fetch(\r\n// `${getBackendPath()}/api/Order/get-my-orders-by-customerID`,\r\n// requestOptions,\r\n// );\r\n// const json = await response.json();\r\n// rdHelper.noActivityRedirectHomePage(json);\r\n// return json;\r\n//};\r\n\r\n\r\nexport const getOrderByRDOrderID = async (\r\n rdOrderID: string,\r\n): Promise => {\r\n const requestOptions: any = {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n body: JSON.stringify({\r\n rdOrderID: rdOrderID,\r\n }),\r\n credentials: 'include',\r\n };\r\n const response = await fetch(\r\n `${getBackendPath()}/api/Order/get-orders-by-rd-orderid`,\r\n requestOptions,\r\n );\r\n const json = await response.json();\r\n rdHelper.noActivityRedirectHomePage(json);\r\n return json;\r\n};\r\n\r\n\r\nexport const getOrderDetailsByYanaIDs = async (\r\n yanaCustomerID: string,\r\n yanaCustomerNo: string,\r\n yanaOrderID: string,\r\n yanaOrderNo: string,\r\n country: string,\r\n): Promise => {\r\n const requestOptions: any = {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n body: JSON.stringify({\r\n yanaCustomerID: yanaCustomerID,\r\n yanaCustomerNo: yanaCustomerNo,\r\n yanaOrderID: yanaOrderID,\r\n yanaOrderNo: yanaOrderNo,\r\n country: country\r\n }),\r\n credentials: 'include',\r\n };\r\n const response = await fetch(\r\n `${getBackendPath()}/api/Order/get-order-details-by-yana-ids`,\r\n requestOptions,\r\n );\r\n const json = await response.json();\r\n rdHelper.noActivityRedirectHomePage(json);\r\n return json;\r\n};\r\n\r\nexport const getMyOrderDetailsByYanaIDs = async (\r\n yanaCustomerID: string,\r\n yanaCustomerNo: string,\r\n yanaOrderID: string,\r\n yanaOrderNo: string\r\n): Promise => {\r\n const requestOptions: any = {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n body: JSON.stringify({\r\n yanaCustomerID: yanaCustomerID,\r\n yanaCustomerNo: yanaCustomerNo,\r\n yanaOrderID: yanaOrderID,\r\n yanaOrderNo: yanaOrderNo\r\n }),\r\n credentials: 'include',\r\n };\r\n const response = await fetch(\r\n `${getBackendPath()}/api/Order/get-my-order-details-by-yana-ids`,\r\n requestOptions,\r\n );\r\n const json = await response.json();\r\n rdHelper.noActivityRedirectHomePage(json);\r\n return json;\r\n};\r\n\r\nexport const updateOrderDetails = async (\r\n customerDetails: orderCustomerDetailsModel.IOrderCustomerDetails,\r\n docs: docModel.IDocumentItem[],\r\n): Promise => {\r\n const requestOptions: any = {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n body: JSON.stringify({\r\n customerDetails: customerDetails,\r\n docs: docs\r\n }),\r\n credentials: 'include',\r\n };\r\n const response = await fetch(\r\n `${getBackendPath()}/api/Order/update-order-details`,\r\n requestOptions,\r\n );\r\n const json = await response.json();\r\n rdHelper.noActivityRedirectHomePage(json);\r\n return json;\r\n};\r\n\r\n\r\nexport const confirmContract = async (\r\n contract: contractModel.IContract\r\n): Promise => {\r\n const requestOptions: any = {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n body: JSON.stringify(contract),\r\n credentials: 'include',\r\n };\r\n const response = await fetch(\r\n `${getBackendPath()}/api/Order/sign-contract`,\r\n requestOptions,\r\n );\r\n const json = await response.json();\r\n rdHelper.noActivityRedirectHomePage(json);\r\n return json;\r\n};\r\n\r\nexport const getScheduleAvailabeTime = async (\r\n scheduleDelivery: scheduleDeliveryModel.IOrderScheduleDelivery\r\n): Promise => {\r\n const requestOptions: any = {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n body: JSON.stringify(scheduleDelivery),\r\n credentials: 'include',\r\n };\r\n const response = await fetch(\r\n `${getBackendPath()}/api/Order/get-available-delivery-time`,\r\n requestOptions,\r\n );\r\n const json = await response.json();\r\n rdHelper.noActivityRedirectHomePage(json);\r\n return json;\r\n};\r\n\r\nexport const saveScheduleAvailabeTime = async (\r\n scheduleDelivery: scheduleDeliveryModel.IOrderScheduleDelivery\r\n): Promise => {\r\n const requestOptions: any = {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n body: JSON.stringify(scheduleDelivery),\r\n credentials: 'include',\r\n };\r\n const response = await fetch(\r\n `${getBackendPath()}/api/Order/save-schedule-delivery`,\r\n requestOptions,\r\n );\r\n const json = await response.json();\r\n rdHelper.noActivityRedirectHomePage(json);\r\n return json;\r\n};\r\n\r\n\r\n//export const retryPayment = async (\r\n// order: orderModel.IOrderRequest\r\n//): Promise => {\r\n// const requestOptions: any = {\r\n// method: 'POST',\r\n// headers: {\r\n// 'Content-Type': 'application/json',\r\n// },\r\n// body: JSON.stringify({\r\n// order: order,\r\n// }),\r\n// credentials: 'include',\r\n// };\r\n// const response = await fetch(\r\n// `${getBackendPath()}/api/Order/retry-payment`,\r\n// requestOptions,\r\n// );\r\n// const json = await response.json();\r\n// return json;\r\n//};\r\n\r\n\r\nexport const saveRetryPayment = async (\r\n order: orderModel.IOrderRequest,\r\n adyenSession: checkOutViewModel.IAdyenSession\r\n): Promise => {\r\n const requestOptions: any = {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n body: JSON.stringify({\r\n order: order,\r\n adyenSession: adyenSession,\r\n }),\r\n credentials: 'include',\r\n };\r\n const response = await fetch(\r\n `${getBackendPath()}/api/Order/save-retry-payment`,\r\n requestOptions,\r\n );\r\n const json = await response.json();\r\n rdHelper.noActivityRedirectHomePage(json);\r\n return json;\r\n};\r\n\r\nexport const getLMCT = async (\r\n Country: string,\r\n State: string\r\n): Promise => {\r\n const requestOptions: any = {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n body: JSON.stringify({\r\n Country: Country,\r\n State: State,\r\n }),\r\n credentials: 'include',\r\n };\r\n const response = await fetch(\r\n `${getBackendPath()}/api/Order/get-lmct`,\r\n requestOptions,\r\n );\r\n const json = await response.json();\r\n rdHelper.noActivityRedirectHomePage(json);\r\n return json;\r\n};\r\n\r\n\r\nexport const callBackRequest = async (\r\n requestData: callBackRequestModel.ICallBackRequest\r\n): Promise => {\r\n const requestOptions: any = {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n body: JSON.stringify(requestData),\r\n credentials: 'include',\r\n };\r\n const response = await fetch(\r\n `${getBackendPath()}/api/Order/call-back-request`,\r\n requestOptions,\r\n );\r\n const json = await response.json();\r\n rdHelper.noActivityRedirectHomePage(json);\r\n return json;\r\n};\r\n\r\nexport const getFinanceStatus = async (\r\n requestData: financeStatusModel.IFinanceStatus\r\n): Promise => {\r\n const requestOptions: any = {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n body: JSON.stringify(requestData),\r\n credentials: 'include',\r\n };\r\n const response = await fetch(\r\n `${getBackendPath()}/api/Order/get-finance-status`,\r\n requestOptions,\r\n );\r\n const json = await response.json();\r\n rdHelper.noActivityRedirectHomePage(json);\r\n return json;\r\n};\r\n\r\n\r\nexport const getReservationStatus = async (\r\n orderID: any\r\n): Promise => {\r\n const requestOptions: any = {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n body: JSON.stringify({ orderID: orderID}),\r\n credentials: 'include',\r\n };\r\n const response = await fetch(\r\n `${getBackendPath()}/api/Order/get-reservation-status`,\r\n requestOptions,\r\n );\r\n const json = await response.json();\r\n rdHelper.noActivityRedirectHomePage(json);\r\n return json;\r\n};\r\n\r\n\r\n\r\nexport const setReservationCountdown = async (\r\n country: any\r\n): Promise => {\r\n const requestOptions: any = {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n body: JSON.stringify({ country: country }),\r\n credentials: 'include',\r\n };\r\n const response = await fetch(\r\n `${getBackendPath()}/api/Order/set-reservation-countdown`,\r\n requestOptions,\r\n );\r\n const json = await response.json();\r\n rdHelper.noActivityRedirectHomePage(json);\r\n return json;\r\n};\r\n\r\n\r\nexport const extendReservationCountdown = async (\r\n country: any\r\n): Promise => {\r\n const requestOptions: any = {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n body: JSON.stringify({ country: country }),\r\n credentials: 'include',\r\n };\r\n const response = await fetch(\r\n `${getBackendPath()}/api/Order/extend-reservation-countdown`,\r\n requestOptions,\r\n );\r\n const json = await response.json();\r\n rdHelper.noActivityRedirectHomePage(json);\r\n return json;\r\n};","import { getCMSAssets } from 'helpers/Uri';\r\nimport { Dialog } from 'primereact/dialog'\r\nimport React, { useState } from 'react'\r\n\r\nconst TermsConditionsDialog = ({props}: any) => {\r\n\r\n const [isShowDialog, setIsShowDialog] = useState(false);\r\n\r\n const onDialogOpen = () => {\r\n setIsShowDialog(true);\r\n }\r\n\r\n const onDialogHide = () => {\r\n setIsShowDialog(false);\r\n }\r\n\r\n const toJetchange = () => {\r\n window.open('https://jetcharge.com.au/standard-installation/');\r\n }\r\n\r\n const toChargeFox = () => {\r\n window.open('https://www.chargefox.com/legal/terms-conditions');\r\n }\r\n\r\n const toChargeFoxNZ = () => {\r\n window.open('https://charge.net.nz/terms-conditions');\r\n }\r\n\r\n const toOwnershipService = () => {\r\n window.open('https://www.cadillacanz.com/au-en/ownership-service');\r\n }\r\n\r\n return (\r\n <>\r\n {\r\n props == 'special'\r\n ?\r\n
onDialogOpen()} data-dtm=\"checkout\">\r\n Order Terms & Conditions\r\n \r\n
\r\n :\r\n onDialogOpen()}>Order Terms & Conditions\r\n }\r\n\r\n onDialogHide()} draggable={false} resizable={true}>\r\n
\r\n
IMPORTANT INFORMATION
\r\n
\r\n

ORDER TERMS

\r\n

& CONDITIONS

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

\r\n These order terms (“Terms”) should be reviewed before you submit your order for the vehicle you have configured in the vehicle configurator (“Configured Vehicle”). \r\n

\r\n

\r\n Subject to availability and these Terms, General Motors Australia and New Zealand Pty Ltd / General Motors New Zealand Limited (hereinafter referred to as “Cadillac”) is offering to let you reserve the Configured Vehicle (“Order”).\r\n

\r\n
\r\n
DEPOSIT
\r\n

\r\n A deposit of $1,000.00 (“Security Deposit”) is payable to Cadillac at the time of submitting your Order. The Deposit will be processed when you submit your Order. \r\n

\r\n
\r\n
\r\n
CANCELLATIONS
\r\n

\r\n If you change your mind, you may cancel your Order by contacting Cadillac on 1800 CADILLAC (223 455) / au.care@cadillac.com (Australia) or 0800 CADILLAC (223 455) / nz.care@cadillac.com directly or via your account once your account has been set up and before you sign the Contract of Sale.\r\n

\r\n

\r\n The Security Deposit is fully refundable until you sign the Contract of Sale, after which the Security Deposit will be subject to the terms of the Contract of Sale. Security Deposits will only be refunded to the same credit or debit card that was used to pay the Security Deposit. Once a refund request is confirmed as received by Cadillac, please allow up to 5 business days for a cancellation and refund to be processed. \r\n

\r\n \r\n Cadillac reserves the right to cancel your Order if:\r\n \r\n
    \r\n
  • (a)\tyou do not complete the setup of your account within 10 days of you receiving account set up details; or
  • \r\n
  • (b)\tyou do not sign the Contract of Sale within 10 days of receiving the final Contract of Sale.
  • \r\n
\r\n

\r\n If Cadillac cancels your Order pursuant to these Terms, Cadillac will take reasonable steps to inform you and will refund the Security Deposit to you in full within 10 business days.\r\n

\r\n
\r\n
\r\n
ACCOUNT SET UP
\r\n

\r\n By proceeding with and submitting your Order you acknowledge that you will be required to provide Cadillac with your information and set up an account. Details for how you can set up an account will be sent to your nominated email address, or can be obtained by contacting Cadillac on 1800 CADILLAC (223 455) / au.care@cadillac.com (Australia) or 0800 CADILLAC (223 455) / nz.care@cadillac.com. The details in this account are required to track the status of your vehicle order and prepare and issue you with a Contract of Sale.\r\n

\r\n
\r\n
\r\n
SUBJECT TO CHANGE
\r\n

\r\n Vehicle design, equipment, features, specifications, options and availability of the Configured Vehicle may be subject to change and are not guaranteed at the time of placing your Order.\r\n

\r\n
\r\n
\r\n
Cadillac Authorised Service Centres – important notification
\r\n

\r\n Cadillac authorised services centres are currently limited in Australia and New Zealand and may not be available near to your location. Whilst Cadillac continues to establish a permanent presence in Australia and New Zealand, the network of authorised Cadillac service centres will continue to expand. To see a list of available locations for all service centres in Australia and New Zealand, please visit this toOwnershipService()}>link to view the available service facilities prior to completing the purchase of a Cadillac vehicle. \r\n

\r\n
\r\n
\r\n
DELIVERY
\r\n

\r\n The estimated date of delivery provided when you submit your Order is an estimate only and is subject to change once Cadillac has processed your order. The estimated delivery date may also be impacted by supply shortages and shipping delays outside of Cadillac’s control.\r\n

\r\n
\r\n
\r\n
CONTRACT OF SALE
\r\n

\r\n These Terms are not a vehicle purchase agreement and submitting your Order does not guarantee delivery of any vehicle within any particular time period. These Terms do not require you to make a vehicle purchase.\r\n

\r\n

\r\n In order to purchase the Configured Vehicle, Cadillac will provide you with a contract of sale (“Contract of Sale”). The Contract of Sale will be made available to you via your account. The Contract of Sale must be signed by you within 10 days. Once the Contract of Sale is signed by you, Cadillac will provide you with confirmation of your Order.\r\n

\r\n
\r\n
\r\n
THIRD PARTIES
\r\n

\r\n Cadillac may engage third parties to perform all or any portion of its obligations relating to these Terms.\r\n

\r\n
\r\n {/*
\r\n
MISCELLANEOUS
\r\n

\r\n Cadillac may engage third parties to perform all or any portion of its obligations relating to these Terms.\r\n

\r\n

\r\n These Terms are governed by the state and federal laws of Australia / laws of New Zealand.\r\n

\r\n
*/}\r\n
\r\n
CHARGING PARTNERS
\r\n
\r\n

\r\n Australia\r\n

\r\n

\r\n Offers\r\n

\r\n

\r\n When you purchase a Cadillac vehicle your vehicle comes with complimentary access to Chargefox public chargers for a period of 1 year from the date you receive your Cadillac vehicle.\r\n

\r\n \r\n When placing this order you may have selected one of the following Cadillac charging offers:\r\n \r\n
    \r\n
  1. two (2) years of complimentary access to Chargefox public chargers (in addition to the first year of public complimentary charging offered on all Cadillac vehicles); or
  2. \r\n
  3. one (1) complimentary 7.4kW Autel MaxiCharger AC Lite home charging unit provided and installed by JET Charge.
  4. \r\n
\r\n
\r\n
\r\n

\r\n Information sharing with charging partners\r\n

\r\n

\r\n In order to take advantage of the Cadillac charging offers, Cadillac will be required to share the Vehicle Identification Number (VIN) and your name and contact details with its third party electric vehicle charging partners so that the partner can provide you with the charging offer. The charging partners are Chargefox Pty Ltd (public charging services) and JET Charge Pty Ltd (home charging services).\r\n

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

\r\n Terms and conditions of charging partners\r\n

\r\n

\r\n Please be aware that you will be required to agree to the terms and conditions, fair use policy and privacy policy of each of these charging partners in order to receive their charging services.\r\n

\r\n

\r\n If one of our charging partners becomes insolvent or otherwise ceases to operate, Cadillac will contact you and the applicable offer will come to an end.\r\n

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

\r\n Home charging offer\r\n

\r\n

\r\n If you elected to install a complimentary home charger, Cadillac will be required to share your first and last name, provided email address and post code with JET Charge to enable them to contact you and provide you with this home charging hardware and installation.\r\n

\r\n

\r\n JET Charge will be in touch with you directly via email to arrange a virtual assessment – the provision of relevant images of your property to JET Charge (or a site visit if required). This option includes complimentary standard installation. The standard installation scope includes a single-phase, dedicated electrical circuit with up to 15 metres of copper cable, installation of an isolation switch near the charging unit and installation of electrical circuit protection. More information on standard installation with JET Charge can be found here. If the infrastructure available at your home does not meet the criteria for a standard installation, your installation will be treated as nonstandard. Cadillac will cover costs for nonstandard installs up to the value of a standard installation, and JET Charge will provide you with a quote for any additional costs or variations. Apartment installations are excluded from this offer.\r\n

\r\n

\r\n You acknowledge and agree that JET Charge is solely responsible for providing the home charging unit and the installation services in accordance with their terms and conditions, which can be found toJetchange()}>here. Cadillac is not liable for any loss, cost, expense, liability or demand of any nature whatsoever caused directly or indirectly by the home charging unit or any services provided by JET Charge.\r\n

\r\n

\r\n Cadillac makes no representations or warranties as to the suitability or compatibility of JET Charge products or services for your requirements.\r\n

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

\r\n Public charging offer – Australia \r\n

\r\n

\r\n All Cadillacs come with 12 months free public charging. Cadillac will be required to share your personal or company details such as, the Vehicle Identification Number (VIN), registration and your selected charging inclusion (1 or 3 years) with Chargefox Pty Ltd (Chargefox) to enable them to provide you with the charging offer. In order to activate this offer with Chargefox, you need to register with Chargefox as a Chargefox user and may also be required to share additional information and must agree with their terms and conditions at time of activating this charging inclusion (typically this will be when you take delivery of your vehicle and download their application). This also applies if you opt for an additional 2 years of public charging (totalling 3 years). Please contact the Cadillac Sales team prior to your delivery to opt out of the default charging inclusion. Chargefox subscriptions will remain with the vehicle in the event of a change of ownership. A subscription can only be activated by one nominated owner at any time.\r\n

\r\n

\r\n Notwithstanding that your purchase of a Cadillac vehicle entitles you to complimentary charging, if you connect your vehicle to a charger within the Chargefox network and leave the car connected to the charger once it is fully charged which prevents other customers from using the charger, you may be charged idle fees in line with Chargefox’s terms and conditions. In addition to these terms and conditions, your use of the Chargefox network is subject to the Chargefox network terms and conditions, which can be accessed toChargeFox()}>here.\r\n

\r\n

\r\n For the avoidance of any doubt, you are solely responsible to pay such idle fees, Cadillac will not pay idle fees.\r\n

\r\n

\r\n The complimentary charging offer must not be used for commercial purposes including if you operate any form of rideshare business using your Cadillac vehicle, including but not limited to Uber, DiDi, taxi, courier or other commercial use or any other use that is not in accordance with Chargefox’s fair use policy or network terms and conditions. Chargefox will require payment for charging services and/or suspend your registration if you attempt to charge your Cadillac vehicle whilst using your vehicle or Chargefox network for the aforementioned purposes. Please refer to Chargefox terms and conditions for further details.\r\n

\r\n

\r\n You acknowledge and agree that the charging services are provided by Chargefox through its Chargefox network of chargers. Cadillac is not liable for any loss, cost, expense, liability or demand of any nature whatsoever caused directly or indirectly by any public charging facilities or any services provided by Chargefox.\r\n

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

\r\n New Zealand\r\n

\r\n

\r\n Offers\r\n

\r\n

\r\n When you purchase a Cadillac vehicle, it comes with $400 complimentary charging credit for use exclusively across the ChargeNet national public charging network. \r\n

\r\n

\r\n If you do not want to take up this offer please ensure that you contact Cadillac support via 0800 CADILLAC (223 455) or nz.care@cadillac.\r\n

\r\n \r\n When placing this order you will have selected one of the following Cadillac charging offers: \r\n \r\n
    \r\n
  1. $800 complimentary charging credit for use exclusively across the ChargeNet national public charging network (in addition to the standard $400 complimentary charging credit offered on all Cadillac vehicles); or
  2. \r\n
  3. one (1) complimentary 7.4kW Evnex E2 home charging unit provided. This includes a standard installation by Evnex. See below for further details.
  4. \r\n
\r\n
\r\n
\r\n

\r\n Information sharing with charging partners\r\n

\r\n

\r\n In order to take advantage of the Cadillac charging offers, Cadillac may be required to share the Vehicle Identification Number (VIN), order number, registration and/or your name and contact details with its third-party electric vehicle charging partners so that the partner can provide you with the charging offer. The charging partners are ChargeNet NZ Limited (public charging services) and Evnex Limited (home charging services). \r\n

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

\r\n Terms and conditions of charging partners\r\n

\r\n

\r\n Please be aware that you will be required to agree to the terms and conditions, fair use policy and privacy policy of each of these charging partners in order to receive their charging services.\r\n

\r\n

\r\n If one of our charging partners becomes insolvent or otherwise ceases to operate, Cadillac will contact you and the applicable offer will come to an end. \r\n

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

\r\n Home charging offer – New Zealand \r\n

\r\n

\r\n If you elected to install a home charger, Evnex will be in touch with you directly to arrange a remote site survey form via email. If the infrastructure available at your home address is capable of supporting a home charging unit, you will then be eligible to receive a complimentary home charging unit with the standard installation services. Standard installation is defined by Evnex and includes a cable run up to 25m between your distribution board and home charger, installation of circuit protection and home overload protection in the available space in your distribution board, mounting of the charger onto an internal or external wall, and charger testing, commissioning and certification. You will be required to agree to Evnex’s terms and conditions, privacy policy and download an app to use this home charger.\r\n

\r\n

\r\n Any costs associated with the variation to these standard installation inclusions, or any improvements to your home infrastructure to accommodate the home charging unit are your sole responsibility. Payment will be arranged directly with Evnex.\r\n

\r\n

\r\n You acknowledge and agree that Evnex is solely responsible for providing the home charger and the installation services. Cadillac is not liable for any loss, cost, expense, liability or demand of any nature whatsoever caused directly or indirectly by the home charging unit or any services provided by Evnex. If you encounter any issues with the ChargeNet services or products you will be required to contact ChargeNet.\r\n

\r\n

\r\n Cadillac makes no representations or warranties as to the suitability or compatibility of Evnex products or services for your requirements.\r\n

\r\n

\r\n Standard installation exclusions:\r\n

    \r\n
  • \r\n \tNo ceiling or underfloor access - *If there is no access it will result in a variation\r\n
  • \r\n
  • \r\n \tUpgrades to infrastructure\r\n
  • \r\n
  • \r\n \tUpgrades to switchboard\r\n
  • \r\n
  • \r\n \tAdditional cable over 25m\r\n
  • \r\n
  • \r\n \tCases where the charger is installed away from the building that the main switchboard is located within\r\n
  • \r\n
  • \r\n \tRectifying of non-compliant existing works\r\n
  • \r\n
  • \r\n \tWork that takes place in commercial buildings \r\n
  • \r\n
  • \r\n \tTag-outs for apartment buildings (RFID) \r\n
  • \r\n
  • \r\n \tExtensive travel cost\r\n
  • \r\n
\r\n

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

\r\n Public charging offer – New Zealand \r\n

\r\n

\r\n All Cadillac vehicles come with $400 complimentary charging credit for use exclusively across the ChargeNet national public charging network. Cadillac may be required to share your personal or company details such as, the Vehicle Identification Number (VIN), registration and your selected charging inclusion ($400 or $1,200 complimentary charging credit) with ChargeNet NZ Limited (ChargeNet) to enable them to provide you with the charging offer. In order to activate this offer with ChargeNet, you need to register with ChargeNet as a ChargeNet user and may also be required to share additional information with ChargeNet and you will be required to agree with ChargeNet’s terms and conditions at time of activating this charging inclusion (typically this will be when you take delivery of your vehicle and download their application).\r\n

\r\n

\r\n If you do not want to proceed with this offer, please contact the Cadillac Sales team prior to your delivery to opt out of the default charging inclusion. ChargeNet credit will remain with the RFID (key fob) issued to you at the time of delivery. Once this RFID is linked to your account, the credit moves to (and is tracked in) your account. Credit is not transferable in the event of a change of ownership. You can continue to use credit assigned to your ChargeNet account independent of a transfer of ownership. Cadillac does not manage this process.\r\n

\r\n

\r\n Notwithstanding that your purchase of a Cadillac vehicle entitles you to complimentary charging credit, if you connect your vehicle to a charger within the ChargeNet network and leave the car connected to the charger once it is fully charged (which prevents other customers from using the charger), you may be charged overstay fees in line with ChargeNet’s terms and conditions. In addition to these terms and conditions, your use of the ChargeNet network is subject to the ChargeNet network terms and conditions, which can be accessed toChargeFoxNZ()}>here.\r\n

\r\n

\r\n For the avoidance of any doubt, you are solely responsible to pay such overstay fees, Cadillac will not pay for overstay idle fees.\r\n

\r\n

\r\n You acknowledge and agree that the charging services are provided by ChargeNet through its ChargeNet network of chargers. Cadillac is not liable for any loss, cost, expense, liability or demand of any nature whatsoever caused directly or indirectly by any public charging facilities or any services provided by ChargeNet. If you encounter any issues with the ChargeNet services or products you will be required to contact ChargeNet. \r\n

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

\r\n These Terms are governed by the state and federal laws of Australia / laws of New Zealand.\r\n

\r\n
\r\n
\r\n
\r\n\r\n \r\n )\r\n}\r\n\r\nexport default TermsConditionsDialog","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n\r\nimport { LogLevel } from \"@azure/msal-browser\";\r\n\r\n/**\r\n * Enter here the user flows and custom policies for your B2C application\r\n * To learn more about user flows, visit: https://docs.microsoft.com/en-us/azure/active-directory-b2c/user-flow-overview\r\n * To learn more about custom policies, visit: https://docs.microsoft.com/en-us/azure/active-directory-b2c/custom-policy-overview\r\n */\r\nexport const b2cPolicies = {\r\n names: {\r\n signUpSignIn: `${process.env.REACT_APP_SignUpSignIn}`,\r\n forgotPassword: `${process.env.REACT_APP_ForgotPassword}`\r\n },\r\n authorities: {\r\n signUpSignIn: {\r\n authority: `${process.env.REACT_APP_SignUpSignIn_Url}`,\r\n },\r\n forgotPassword: {\r\n authority: `${process.env.REACT_APP_ForgotPassword_Url}`,\r\n }\r\n },\r\n authorityDomain: `${process.env.REACT_APP_Domain}`,\r\n};\r\n\r\n\r\n/**\r\n * Configuration object to be passed to MSAL instance on creation. \r\n * For a full list of MSAL.js configuration parameters, visit:\r\n * https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-browser/docs/configuration.md \r\n */\r\nexport const msalConfig = {\r\n auth: {\r\n clientId: `${process.env.REACT_APP_ClientId}`, // This is the ONLY mandatory field that you need to supply.\r\n authority: b2cPolicies.authorities.signUpSignIn.authority, // Choose SUSI as your default authority.\r\n knownAuthorities: [b2cPolicies.authorityDomain], // Mark your B2C tenant's domain as trusted.\r\n redirectUri: `${process.env.REACT_APP_IAMReturnLink}`, // You must register this URI on Azure Portal/App Registration. Defaults to window.location.origin\r\n postLogoutRedirectUri: `/${process.env.REACT_APP_VIRTUAL_DIR_FRONTEND}`, // Indicates the page to navigate after logout.\r\n navigateToLoginRequestUrl: false, // If \"true\", will navigate back to the original request location before processing the auth code response.\r\n },\r\n cache: {\r\n cacheLocation: 'sessionStorage', // 'sessionStorage', // Configures cache location. \"sessionStorage\" is more secure, but \"localStorage\" gives you SSO between tabs.\r\n storeAuthStateInCookie: true, // Set this to \"true\" if you are having issues on IE11 or Edge\r\n },\r\n system: {\r\n loggerOptions: {\r\n loggerCallback: (level: any, message: any, containsPii: any) => {\r\n if (containsPii) {\r\n return;\r\n }\r\n switch (level) {\r\n case LogLevel.Error:\r\n console.error(message);\r\n return;\r\n case LogLevel.Info:\r\n console.info(message);\r\n return;\r\n case LogLevel.Verbose:\r\n console.debug(message);\r\n return;\r\n case LogLevel.Warning:\r\n console.warn(message);\r\n return;\r\n default:\r\n return;\r\n }\r\n },\r\n },\r\n },\r\n};\r\n\r\n/**\r\n * Add here the endpoints and scopes when obtaining an access token for protected web APIs. For more information, see:\r\n * https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-browser/docs/resources-and-scopes.md\r\n */\r\nexport const protectedResources = {\r\n apiTodoList: {\r\n endpoint: 'https://localhost:5001/api/hello',\r\n scopes: {\r\n read: [`${process.env.REACT_APP_ScopeRead}`],\r\n write: [`${process.env.REACT_APP_ScopeWrite}`],\r\n },\r\n },\r\n};\r\n\r\n/**\r\n * Scopes you add here will be prompted for user consent during sign-in.\r\n * By default, MSAL.js will add OIDC scopes (openid, profile, email) to any login request.\r\n * For more information about OIDC scopes, visit: \r\n * https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-permissions-and-consent#openid-connect-scopes\r\n */\r\nexport const loginRequest = {\r\n scopes: [...protectedResources.apiTodoList.scopes.read, ...protectedResources.apiTodoList.scopes.write],\r\n};\r\n","import { useMsal, useIsAuthenticated } from '@azure/msal-react';\r\nimport { InteractionType, InteractionStatus } from '@azure/msal-browser';\r\nimport { loginRequest } from 'helpers/authConfig';\r\nimport { isNil } from 'lodash';\r\n\r\nexport const useAzureB2C = () => {\r\n const { instance } = useMsal(); \r\n const isAuthenticated = useIsAuthenticated();\r\n\r\n const signIn = () => {\r\n instance.loginRedirect(loginRequest).catch((error) => console.log(error));\r\n }\r\n const signOut = () => {\r\n instance.logoutRedirect();\r\n }\r\n\r\n const isAuthAndLogin = (inProgress:any) => {\r\n if (inProgress !== InteractionStatus.None) return;\r\n if (!isAuthenticated && instance.getAllAccounts.length === 0) {\r\n instance.loginRedirect(loginRequest).catch((error) => console.log(error));\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n const isAuth= (inProgress: any) => {\r\n if (inProgress !== InteractionStatus.None) return;\r\n if (!isAuthenticated && instance.getAllAccounts.length === 0) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n return {\r\n signIn,\r\n signOut,\r\n isAuth,\r\n isAuthAndLogin\r\n };\r\n}\r\n","import { getCMSAssets } from 'helpers/Uri';\r\nimport { Dialog } from 'primereact/dialog'\r\nimport React, { useState } from 'react'\r\n\r\nconst AccountGuidelines = () => {\r\n\r\n const [isShowDialog, setIsShowDialog] = useState(false);\r\n\r\n const onDialogOpen = () => {\r\n setIsShowDialog(true);\r\n }\r\n\r\n const onDialogHide = () => {\r\n setIsShowDialog(false);\r\n }\r\n\r\n const toPrivacy = () => {\r\n window.open('https://www.cadillacanz.com/au-en/privacy')\r\n }\r\n\r\n return (\r\n <>\r\n
onDialogOpen()}>\r\n Account Guidelines\r\n \r\n
\r\n \r\n onDialogHide()} draggable={false} resizable={true}>\r\n
\r\n {/*
IMPORTANT INFORMATION
*/}\r\n
\r\n

ACCOUNT GUIDELINES

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

\r\n These Guidelines govern your use of accounts across certain websites, mobile apps, and connected vehicle services provided by General Motors Australia and New Zealand Pty Ltd (Australia) \r\n and General Motors New Zealand Ltd (New Zealand), companies incorporated under the laws of Australia and New Zealand, and its affiliates (collectively “GM”, “our”, “we”, or “Cadillac.”) \r\n By creating or using an account, you agree and accept the following, subject to our Privacy Statement found at toPrivacy()}>www.cadillacanz.com/au-en/privacy. If you do not agree you may not create or use an account.\r\n

\r\n
\r\n
Account
\r\n

\r\n In order to access secure features on our websites, mobile apps, and through connected vehicle services you may be asked to create an account.\r\n

\r\n

\r\n Please provide accurate and complete information when creating an account. During the creation process, we may send you notifications to verify your e-mail address and telephone number. We may also use your contact information to send you notices and to verify purchases and send you important alerts. Data or messaging rates may apply when receiving notifications via SMS. For more details, see our Privacy Statement at toPrivacy()}>https://www.cadillacanz.com/au-en/privacy. \r\n

\r\n

\r\n You are solely responsible for any activity that occurs with your account, and you must keep your account password secure. \r\n

\r\n

\r\n After creating your account, you should notify GM immediately of any breach of security or unauthorized use. GM will not be liable for any losses caused by any unauthorized use of your account. However, you may be liable for losses to GM or other parties due to such unauthorized use.\r\n

\r\n

\r\n Accounts may be unavailable from time to time and functionally may vary depending on the country where you are attempting to access your account. If you change your country of residence you should notify us and may need to setup a new account where available.\r\n

\r\n

\r\n If GM reasonably suspects a risk of fraud or misuse by a third party accessing your account, GM may immediately suspend your access.\r\n

\r\n
\r\n
\r\n
Eligibility
\r\n

\r\n By creating an account, you represent and warrant that you have reached the age of 18 and have full legal capacity to enter into binding contracts. If you do not satisfy these eligibility requirements, you may not create or use an account. You are not permitted to use any account until such time as you satisfy these eligibility requirements. \r\n

\r\n
\r\n
\r\n
Security and Customer Identity
\r\n

\r\n You may need to set up security passwords, passwords, security questions, and similar information (\"Security Information\").\r\n

\r\n You agree to:\r\n
    \r\n
  • not share your security information with anyone;
  • \r\n
  • not write down your safety information in a way that could be understood by others; and
  • \r\n
  • ensure no one sees you enter your security details when making a payment on any website or application, which is associated with GM.
  • \r\n
\r\n Let us know as soon as possible if:\r\n
    \r\n
  • someone else knows your security information or you believe they do;
  • \r\n
  • you discover errors or unauthorized payments; or
  • \r\n
  • you believe someone else used or tried to use your payment method.
  • \r\n
\r\n
\r\n
\r\n
Additional Terms
\r\n

\r\n On occasion, GM may provide additional terms for products and services that you may obtain through websites, mobile apps, or connected vehicle services provided by GM. When you accept these additional terms, they will govern products and services that you receive through your account. \r\n

\r\n
\r\n
\r\n
License
\r\n

\r\n Subject to your compliance with these Guidelines, GM grants you a limited, personal, noncommercial (unless a permitted use in connection with Fleet Vehicles), non-transferable, non-sublicensable, revocable, non-exclusive license to create and lawfully use an account for its intended purpose as described in these Guidelines. You agree to abide by this license when creating and using an account. GM reserves all rights not expressly granted.\r\n

\r\n
\r\n
\r\n
Restrictions
\r\n
    \r\n
  • You agree not to access an account through any technology or any unauthorized means other than your personal user interactions with our websites, mobile apps, and connected vehicle services;
  • \r\n
  • You agree not to use or launch any automated systems, including without limitation, \"robots,\" \"spiders,\" or \"offline readers,\" to accesses our websites, mobile apps, or connected vehicle services through an account;
  • \r\n
  • You agree not to use communication systems provided through an account (e.g. SMS text notifications, email alerts, or user comments) to harass other users or for any commercial solicitation;
  • \r\n
  • You agree not to circumvent, disable or otherwise interfere with any security-related features or features designed to prevent unauthorized use of an account; and
  • \r\n
  • You agree to comply with these Guidelines and all applicable local, national, and international laws and regulations.
  • \r\n
\r\n

\r\n Violations of these Guidelines may result in a warning or termination of your account in our sole discretion. \r\n

\r\n
\r\n
\r\n
Feedback
\r\n

\r\n To help improve the quality of our websites, mobile apps, and connected vehicle services we may provide user feedback channels to allow you to share your experiences.\r\n

\r\n \r\n By submitting feedback, you accept the following and agree that you will not use or attempt to use feedback channels for any unlawful purpose, including any purpose that:\r\n \r\n
    \r\n
  • Promotes violence, abuse, or harassment to an individual or group of people;
  • \r\n
  • Transmits any advertisements, solicitations, schemes, or other unsolicited commercial communications;
  • \r\n
  • Encourages child exploitation or otherwise harms minors in any way;
  • \r\n
  • Impersonates or otherwise misrepresents your affiliation with any person or entity;
  • \r\n
  • Incites illegal or unlawful activities;
  • \r\n
  • Violates any third party's intellectual property rights;
  • \r\n
  • Infringes any third party's right of privacy; or
  • \r\n
  • Unlawfully transmits or uploads any confidential, proprietary or trade secret information.
  • \r\n
\r\n

\r\n By submitting feedback, you grant GM a worldwide, non-exclusive, royalty-free license to use, copy, reproduce, process, adapt, modify, publish, transmit, display, and distribute such feedback in any and all media or distribution methods now known or later developed. You agree that this license includes the right for GM to promote and improve our services and make any feedback you submit available to our affiliates and third parties for syndication, broadcast, distribution, promotion, and publication. No compensation will be paid to you with respect to any feedback you submit and your use of our websites, mobile apps, and connected vehicle services are hereby agreed as being sufficient compensation for the rights granted.\r\n

\r\n

\r\n You acknowledge and agree that you are solely responsible for any feedback you provide, including compliance with applicable laws, rules, and regulations. \r\n

\r\n

\r\n GM does not take responsibility for any user feedback and does not endorse any user feedback or opinions expressed.\r\n

\r\n

\r\n GM reserves the right at all times, in its sole discretion and without notice to you, to remove any objectionable feedback and to revoke your account for violating these Guidelines.\r\n

\r\n
\r\n
\r\n
Third-Party Links
\r\n

\r\n Certain services provided through your account may contain links to third-party websites that are not owned or controlled by GM, including but not limited to links to websites for GM dealers (collectively “Third-Party Website(s).”) GM has no control over, and assumes no responsibility for, the content, privacy policies, or practices of any Third-Party Website. By clicking on links to third-party websites, you expressly relieve GM from all liability arising from your use of any Third-Party Website, or from the content of any Third-Party Website.\r\n

\r\n
\r\n
\r\n
Warranty Disclaimer
\r\n

\r\n SUBJECT TO ANY NON-EXCLUDABLE CONSUMER GUARANTEES AND OTHER CONSUMER PROTECTION PROVISIONS SET OUT IN THE COMPETITION AND CONSUMER ACT 2010 (CTH) (AUSTRALIA) OR THE CONSUMER GUARANTEES ACT 1993 (NEW ZEALAND) (“NON-EXCLUDABLE CONSUMER GUARANTES”) OR SIMILAR LEGISLATION WHICH CANNOT BE EXCLUDED OR LIMITED, YOU AGREE THAT YOUR USE OF AN ACCOUNT SHALL BE AT YOUR SOLE RISK. TO THE FULLEST EXTENT PERMITTED BY APPLICABLE LAW OR ANY NON-EXCLUDABLE CONSUMER GUARANTEES GM AND THEIR RESPECTIVE AFFILIATES AND THE EMPLOYEES, OFFICERS, DIRECTORS, AND AGENTS THEREOF (COLLECTIVELY “PROVIDER PARTY”) DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, IN CONNECTION WITH ACCOUNT SERVICES AND YOUR USE THEREOF. GM MAKES NO WARRANTIES OR REPRESENTATIONS ABOUT ACCOUNT SERVICES AND ASSUMES NO LIABILITY OR RESPONSIBILITY FOR ANY (I) ERRORS, MISTAKES, OR INACCURACIES OF CONTENT, (II) PERSONAL INJURY OR PROPERTY DAMAGE, OF ANY NATURE WHATSOEVER, RESULTING FROM YOUR ACCESS TO AND USE OF ACCOUNT SERVICES, (III) ANY UNAUTHORIZED ACCESS TO OR USE OF OUR SECURE SERVERS AND ANY AND ALL PERSONAL INFORMATION AND FINANCIAL INFORMATION STORED THEREIN, (IV) ANY INTERRUPTION, (IV) ANY BUGS, VIRUSES, TROJAN HORSES, OR THE LIKE WHICH MAY BE TRANSMITTED THROUGH ACCOUNT SERVICES BY ANY THIRD-PARTY, OR (V) ANY ERRORS OR OMISSIONS OR FOR ANY LOSS OR DAMAGE OF ANY KIND INCURRED AS A RESULT OF CONTENT POSTED, EMAILED, TRANSMITTED, OR OTHERWISE MADE AVAILABLE THROUGH ACCOUNT SERVICES. \r\n

\r\n
\r\n
\r\n
Limitation of Liability
\r\n

\r\n SUBJECT TO ANY NON-EXCLUDABLE CONSUMER GUARANTEES AND OTHER APPLICABLE LAW, PROVIDER PARTY SHALL NOT BE LIABLE IN ANY WAY IN CONNECTION WITH ANY ACCOUNT SERVICES FOR ANY INDIRECT, SPECIAL, PUNITIVE, OR CONSEQUENTIAL DAMAGES OR AMOUNTS FOR LOSS OF INCOME, PROFITS, OR SAVINGS ARISING OUT OF OR RELATED TO ACCOUNT SERVICES. \r\n

\r\n
\r\n
\r\n
Indemnity
\r\n

\r\n You agree to defend, indemnify and hold harmless GM, and their parent corporations, subsidiaries, officers, directors, employees and agents, from and against any and all claims, damages, obligations, losses, liabilities, reasonable costs or debt, and reasonable expenses (including but not limited to attorney's fees) arising from: (i) your improper, inappropriate or unlawful use of an account; (ii) your violation of any term of these Guidelines; or (iii) your violation of any third party rights, including without limitation any copyright, trademark, property, publicity or privacy right. This defense and indemnification obligation will survive these Guidelines.\r\n

\r\n
\r\n
\r\n
Assignment
\r\n

\r\n These Guidelines, and any rights granted hereunder, may not be transferred or assigned by you, but may be assigned by GM without restriction.\r\n

\r\n
\r\n
\r\n
General
\r\n

\r\n If any provision of these Guidelines is deemed invalid by a court of competent jurisdiction, the invalidity of such provision shall not affect the validity of the remaining provisions of these Guidelines, which shall remain in full force and effect. No waiver of any term of these Guidelines shall be deemed a further or continuing waiver of such term, and GM's failure to assert any right or provision under these Guidelines shall not constitute a waiver of such right or provision. GM reserves the right to amend these Guidelines at any time and without notice, and it is your responsibility to review these Guidelines for any changes. Your use of an account following any amendment of these Guidelines will signify your assent to and acceptance of any revised terms. \r\n

\r\n
\r\n
\r\n
Governing Law and Jurisdiction
\r\n

\r\n These Guidelines are governed by the laws of Australia and New Zealand and the Parties agree that the courts of Australia and New Zealand shall have exclusive jurisdiction.\r\n

\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n )\r\n}\r\n\r\nexport default AccountGuidelines","import ScrollToTop from 'components/ScrollToTop'\r\nimport { setCustomerTypeAction } from 'stores/CustomerType';\r\nimport { getCMSAssets, getFrontendUrl, currencyFormatWithBlank } from 'helpers/Uri'\r\nimport { IAppState } from 'model/IAppState';\r\nimport React, { useEffect, useRef, useState } from 'react';\r\nimport { isNil } from 'lodash';\r\nimport { classNames } from 'primereact/utils';\r\nimport { RadioButton } from 'primereact/radiobutton';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { Checkbox } from 'primereact/checkbox';\r\nimport { Button } from 'react-bootstrap';\r\nimport { InputText } from 'primereact/inputtext';\r\nimport IsNumberVerification from 'components/IsNumberVerification';\r\nimport { Dropdown } from 'primereact/dropdown';\r\nimport { ProgressSpinner } from 'primereact/progressspinner';\r\nimport { useNavigate } from 'react-router-dom';\r\nimport AdyenCheckout from '@adyen/adyen-web';\r\nimport '@adyen/adyen-web/dist/adyen.css';\r\nimport { useMsal } from \"@azure/msal-react\";\r\nimport moment from 'moment';\r\nimport SaveDialog from 'pages/Main/checkout/SaveDialog';\r\nimport NoStorageReminder from 'components/NoInventoryReminder';\r\n\r\nimport * as Uri from 'helpers/Uri';\r\nimport * as rdEnum from 'helpers/enum';\r\nimport * as checkoutHelper from 'businessHelpers/CheckoutHelper';\r\nimport * as commonModel from 'model/ICommon';\r\nimport * as checkOutViewModel from 'model/ICheckoutWaitlistViewModel';\r\nimport * as selectedConfigModel from 'model/IUserSelectedConfig';\r\nimport * as orderModel from 'model/IOrder';\r\nimport * as interestModel from 'model/IInterest';\r\nimport * as paymentService from 'services/AdyenPayment';\r\nimport * as orderService from 'services/Order';\r\nimport * as interestService from 'services/Interest';\r\nimport * as checkoutCustomerStore from 'stores/CheckoutCustomer';\r\n//import * as orderStore from 'stores/Order';\r\n\r\nimport TermsConditionsDialog from './TermsConditionsDialog';\r\nimport { Dialog } from 'primereact/dialog';\r\n\r\nimport { useAzureB2C } from 'helpers/useAzureB2C';\r\nimport PrivacyPolicyLink from 'components/PrivacyPolicyLink';\r\nimport PrivacyCollectionDialog from './PrivacyCollectionDialog';\r\nimport AccountGuidelines from './AccountGuidelines';\r\nimport { InputTextarea } from 'primereact/inputtextarea';\r\n\r\nconst CheckoutWaitlist = (props: any) => {\r\n const azureB2C = useAzureB2C();\r\n const { instance } = useMsal();\r\n const [isOverflown, setIsOverflown] = useState(false);\r\n\r\n const textAreaRef = useRef(null);\r\n\r\n //store variables\r\n const selectedDeliveryFromStore = useSelector((state: IAppState) => {\r\n return state.selectedDelivery;\r\n });\r\n const selectVehFromStore = useSelector((appState: IAppState) => {\r\n return appState.selectedVehicle;\r\n });\r\n const selectedPaymentOptions = useSelector((appState: IAppState) => {\r\n return appState.paymentOptions;\r\n });\r\n const customerTypeForStore = useSelector((state: IAppState) => {\r\n return state.customerType;\r\n });\r\n const checkOutCustomerFromStore = useSelector((state: IAppState) => {\r\n return state.checkoutCustomer;\r\n });\r\n const mainPageNumber = useSelector((state: IAppState) => {\r\n return state.mainPageNumber.mainPageNumber;\r\n });\r\n const driveawayFromStore = useSelector((state: IAppState) => {\r\n return state.paymentOptions.DriveAwayCost;\r\n });\r\n const linkSourceFromStore = useSelector((state: IAppState) => {\r\n return state?.linkSource;\r\n });\r\n const vehicleFromStore = useSelector((state: IAppState) => {\r\n return state.vehicle;\r\n });\r\n\r\n const { paymentPageStatus, toConfiguration } = props;\r\n\r\n const [clientType, setClientType] = useState(rdEnum.enumClientTypes.Private.Code);\r\n\r\n const saveDiaglogRef = useRef(null);\r\n const dispatch = useDispatch();\r\n const navigate = useNavigate();\r\n const watchlistRef = useRef(null);\r\n const joinConsentRef1 = useRef(null);\r\n const joinConsentRef2 = useRef(null);\r\n //const firstNameRef = useRef(\"\");\r\n\r\n //const [billingAddresss, setBillingAddresss] = useState(\"\");\r\n const [pageState, setPageState] = useState(checkoutHelper.getCheckoutInitPageState());\r\n const [reserverationSubmittingStatus, setReservationSubmittingStatus] = useState(rdEnum.enumProcessingStatus.Init);\r\n const [confirmOrderSubmittingStatus, setConfirmOrderSubmittingStatus] = useState(rdEnum.enumProcessingStatus.Init);\r\n const [submittingToYana, setSubmittingToYana] = useState(rdEnum.enumProcessingStatus.Init);\r\n\r\n const [order, setOrder] = useState(checkoutHelper.getOrderInitState());\r\n const [placeReservationMessage, setPlaceReservationMessage] = useState(\"\");\r\n const [placeOrderMessage, setPlaceOrderMessage] = useState(\"\");\r\n\r\n const [isShowPaymentPanel, setIsShowPaymentPanel] = useState(false);\r\n\r\n //adyen drop in way\r\n const paymentContainer = useRef(null);\r\n //const [customCardInstance, setCustomCardInstance] = useState();\r\n const customCardInstance = useRef(null);\r\n const [adyenSession, setAdyenSession] = useState(checkoutHelper.getAdyenInitState());\r\n const [isShowAdyenRetryButton, setIsShowAdyenRetryButton] = useState(false);\r\n const [adyenFailedMessage, setAdyenFailedMessage] = useState(\"\");\r\n\r\n //reservation time\r\n const reservationExpiryMin = 10;\r\n const reservationExendMaxCount = 2;\r\n const [reservationCountDownSeconds, setReservationCountDownSeconds] = useState(reservationExpiryMin * 60); //minutes\r\n const [reservationCountdownStage, setReservationCountdownStage] = useState(1);\r\n const [reservationExtendCount, setReservationExtendCount] = useState(0);\r\n const [showCountdownDialog, setShowCountdownDialog] = useState(false);\r\n\r\n //LMCT\r\n const [lmctText, setLMCTText] = useState(\"\");\r\n\r\n\r\n //show out of stock box\r\n const [showOutOfStock, setShowOutOfStock] = useState(false);\r\n\r\n\r\n const selectedLocationFromStore = useSelector((state: IAppState) => {\r\n return state.selectedDelivery;\r\n });\r\n\r\n const [confirmed, setConfirmed] = useState({\r\n confirm: false,\r\n invalidConfirm: false,\r\n agreement: false,\r\n })\r\n\r\n const paymentErrorMessage = \"Your credit card details have been refused, please re-enter your details.\";\r\n\r\n //https://github.com/Adyen/adyen-web/blob/c6c19ac646a8a211d0416a462b2c2a2a722eff29/packages/lib/src/language/locales/en-US.json\r\n const translations = {\r\n \"en_AU\": {\r\n \"creditCard.numberField.title\": \"\",\r\n /* \"creditCard.numberField.title\": \"Card Number *\",*/\r\n \"creditCard.numberField.placeholder\": \"1234 5678 9012 3456\",\r\n \"creditCard.expiryDateField.title\": \"\",\r\n \"creditCard.expiryDateField.placeholder\": \"MM/YY\",\r\n \"creditCard.cvcField.title\": \"\",\r\n \"creditCard.cvcField.placeholder\": \"CVV *\",\r\n \"creditCard.cvcField.placeholder.4digits\": \"CVV *\",\r\n \"creditCard.cvcField.placeholder.3digits\": \"CVV *\",\r\n \"creditCard.holderName\": \"\",\r\n \"creditCard.holderName.placeholder\": \"Name on card\",\r\n \"billingAddress\": \"\",\r\n \"country\": \"\",\r\n \"city\": \"\",\r\n \"city.errors.incomplete\": \"Enter Suburb\",\r\n \"state\": \"\",\r\n \"postalCode\": \"\",\r\n \"postalCode.errors.incomplete\": \"Enter Postcode\",\r\n \"address\": \"\",\r\n \"address.enterManually\": \"Address\",\r\n \"address.errors.incomplete\": \"Enter Address to continue\",\r\n },\r\n \"en_NZ\": {\r\n \"creditCard.numberField.title\": \"\",\r\n \"creditCard.numberField.placeholder\": \"1234 5678 9012 3456\",\r\n \"creditCard.expiryDateField.title\": \"\",\r\n \"creditCard.expiryDateField.placeholder\": \"MM/YY\",\r\n \"creditCard.cvcField.title\": \"\",\r\n \"creditCard.cvcField.placeholder\": \"CVV *\",\r\n \"creditCard.cvcField.placeholder.4digits\": \"CVV *\",\r\n \"creditCard.cvcField.placeholder.3digits\": \"CVV *\",\r\n \"creditCard.holderName\": \"\",\r\n \"creditCard.holderName.placeholder\": \"Name on card\",\r\n \"billingAddress\": \"\",\r\n \"country\": \"\",\r\n \"city\": \"\",\r\n \"city.errors.incomplete\": \"Enter Suburb\",\r\n \"state\": \"\",\r\n \"postalCode\": \"\",\r\n \"postalCode.errors.incomplete\": \"Enter Postcode\",\r\n \"address\": \"\",\r\n \"street\": \"\",\r\n \"address.enterManually\": \"Address\",\r\n \"address.errors.incomplete\": \"Enter Address to continue\",\r\n \"houseNumberOrName\": \"\",\r\n }\r\n };\r\n\r\n\r\n useEffect(() => {\r\n if (selectedDeliveryFromStore?.Country?.code == rdEnum.enumCountryCode.Australia) {\r\n doGetLMCT();\r\n }\r\n\r\n }, [selectedDeliveryFromStore?.Country?.code, selectedDeliveryFromStore?.PrimaryState])\r\n\r\n useEffect(() => {\r\n\r\n //todo: potential change, \r\n //1. change vehicle to place a new reservation, show \"Proceed payment\" button\r\n //2. if vehicle not changed, use same orderid, reservation no, still show payment credeit card section\r\n //Need to thinking: do i need to change RD payment id? it's better to change a new payment id as user could have tried one payment, and got failure\r\n setIsShowPaymentPanel(false);\r\n }, [selectedDeliveryFromStore, selectVehFromStore, selectedPaymentOptions, customerTypeForStore]);\r\n\r\n const checkOverflow = () => {\r\n const textarea = textAreaRef.current;\r\n\r\n if (textarea) {\r\n const rowHeight = parseInt(window.getComputedStyle(textarea).lineHeight, 12);\r\n\r\n const maxVisibleHeight = rowHeight * 8;\r\n console.log(textarea?.scrollHeight, maxVisibleHeight)\r\n if (textarea?.scrollHeight > maxVisibleHeight) {\r\n setIsOverflown(true);\r\n } else {\r\n setIsOverflown(false);\r\n }\r\n }\r\n };\r\n\r\n const doGetLMCT = async () => {\r\n let country = selectedDeliveryFromStore?.Country?.code || \"\";\r\n let state = selectedDeliveryFromStore?.PrimaryState;\r\n if (isNil(state) || state == \"\") {\r\n state = selectedDeliveryFromStore?.State?.code || \"\";\r\n }\r\n\r\n if (country == \"\" || state == \"\") return;\r\n let response = await orderService.getLMCT(country, state);\r\n if (response.status) {\r\n setLMCTText(response.data.partnerLMCT);\r\n }\r\n else {\r\n setLMCTText(\"\");\r\n }\r\n }\r\n\r\n\r\n\r\n const doGetAdyenConfig = () => {\r\n //console.log(adyenSession.SessionID);\r\n let env = Uri.getAdyenEnv(selectedDeliveryFromStore?.Country?.code || \"\");\r\n let configuration = {\r\n locale: selectedDeliveryFromStore?.Country?.code == rdEnum.enumCountryCode.NewZealand ? \"en_NZ\" : \"en_AU\",\r\n environment: env, // \"test\", // env, //Uri.getAdyenEnv(selectedDeliveryFromStore?.Country?.code), // Australia: \tlive-au\r\n clientKey: Uri.getAdyenKey(selectedDeliveryFromStore?.Country?.code || \"\"),\r\n translations: translations,\r\n session: {\r\n id: adyenSession.SessionID, // Unique identifier for the payment session.\r\n sessionData: adyenSession.SessionData // The payment session data.\r\n },\r\n //setStatusAutomatically: false, //Do not use this flag. We have to a get new session id as RD reference id need be changed for each pay action\r\n onPaymentCompleted: async (result: any, component: any) => {\r\n setConfirmOrderSubmittingStatus(rdEnum.enumProcessingStatus.Processed);\r\n let localBilling = localStorage.getItem(\"billing\");\r\n let paymentID = localStorage.getItem(\"paymentID\");\r\n let strPaymentOrder = localStorage.getItem(\"order\");\r\n let orderComment = localStorage.getItem(\"ordercomments\");\r\n //console.log(orderComment);\r\n let postAdyenSession: checkOutViewModel.IAdyenSession = {\r\n SessionID: adyenSession.SessionID,\r\n SessionData: result.sessionData,\r\n SessionResult: result.sessionResult,\r\n ResultCode: result.resultCode,\r\n ErrorMessage: null\r\n };\r\n\r\n if (!isNil(result)) {\r\n if (result.resultCode == \"Authorised\") {\r\n setAdyenFailedMessage(\"\");\r\n\r\n if (isNil(localBilling) || localBilling == \"\") return;\r\n if (isNil(strPaymentOrder) || strPaymentOrder == \"\") return;\r\n let billingData: checkOutViewModel.IAdyenTempPaymentData = JSON.parse(localBilling);\r\n let paymentOrder: orderModel.IOrderRequest = JSON.parse(strPaymentOrder);\r\n let postOrder: orderModel.IOrderRequest = {\r\n ...paymentOrder,\r\n BillingAddress: billingData.Address1,\r\n BillingPostcode: billingData.PostCode,\r\n BillingState: billingData.State,\r\n BillingSuburb: billingData.Suburb,\r\n RDPaymentID: paymentID,\r\n NameOnCreditCard: billingData.NameOnCard,\r\n Comments: orderComment\r\n };\r\n //console.log(postOrder);\r\n doPlaceOrder(postOrder, postAdyenSession);\r\n\r\n }\r\n else if (result.resultCode == \"Refused\") {\r\n if (isNil(strPaymentOrder) || strPaymentOrder == \"\") return;\r\n let paymentOrder: orderModel.IOrderRequest = JSON.parse(strPaymentOrder);\r\n let postOrder: orderModel.IOrderRequest = {\r\n ...paymentOrder,\r\n RDPaymentID: paymentID,\r\n };\r\n await doSavePaymentLog(postOrder, postAdyenSession);\r\n\r\n await doGetPaymentIDs(postOrder?.OrderID, postOrder?.Country);\r\n setOrder(postOrder);\r\n setAdyenFailedMessage(paymentErrorMessage);\r\n setIsShowAdyenRetryButton(true);\r\n }\r\n }\r\n },\r\n beforeSubmit: (data: any, component: any, actions: any): Promise => {\r\n //state or store changed here, are not updated in onPaymentCompleted\r\n //so have to use local storage to temp store billing data and card holder name.\r\n let tempData: checkOutViewModel.IAdyenTempPaymentData = {\r\n Address1: data.billingAddress.street,\r\n Address2: data.billingAddress.houseNumberOrName,\r\n PostCode: data.billingAddress.postalCode,\r\n Suburb: data.billingAddress.city,\r\n State: data.billingAddress.stateOrProvince,\r\n NameOnCard: data.paymentMethod.holderName,\r\n };\r\n localStorage.setItem(\"billing\", JSON.stringify(tempData));\r\n setAdyenFailedMessage(\"\");\r\n setPlaceOrderMessage(\"\");\r\n return actions.resolve(data);\r\n },\r\n //onSubmit: (state: any, element: any)=> {\r\n // console.log(state.data);\r\n // need to setup payments api on the backend\r\n //},\r\n onChange: (state: any, component: any) => {\r\n //console.log('Form validity:', state.isValid);\r\n //console.log(state);\r\n //// Check specific fields\r\n //if (!state.valid) {\r\n // Object.keys(state.valid).forEach(field => {\r\n // if (!state.valid[field]) {\r\n // console.log(`Invalid field: ${field}`);\r\n // }\r\n // });\r\n //}\r\n\r\n //if (state.data.houseNumberOrName) {\r\n // // Make postal code optional\r\n // if (state.data.billingAddress.houseNumberOrName === '') {\r\n // delete state.data.billingAddress.houseNumberOrName;\r\n // }\r\n //}\r\n\r\n //console.log(state);\r\n //setPaymentState(state);\r\n //console.log(state);\r\n //console.log(\"state on change.\" + JSON.stringify(state));\r\n //console.log(\"pageState in validateBillingInfo:\" + JSON.stringify(pageState));\r\n },\r\n //onFieldValid: (state: any) => {\r\n // console.log(state);\r\n //},\r\n onError: async (error: any, component: any) => {\r\n let strPaymentOrder = localStorage.getItem(\"order\");\r\n if (isNil(strPaymentOrder) || strPaymentOrder == \"\") return;\r\n let paymentOrder: orderModel.IOrderRequest = JSON.parse(strPaymentOrder);\r\n let paymentID = localStorage.getItem(\"paymentID\");\r\n let postOrder: orderModel.IOrderRequest = {\r\n ...paymentOrder,\r\n RDPaymentID: paymentID,\r\n };\r\n\r\n let postAdyenSession: checkOutViewModel.IAdyenSession = {\r\n SessionID: adyenSession.SessionID,\r\n SessionData: adyenSession.SessionData,\r\n SessionResult: null,\r\n ResultCode: \"Error\",\r\n ErrorMessage: error.message\r\n };\r\n await doSavePaymentLog(postOrder, postAdyenSession);\r\n\r\n await doGetPaymentIDs(postOrder?.OrderID, postOrder?.Country);\r\n setOrder(postOrder);\r\n setAdyenFailedMessage(paymentErrorMessage);\r\n setIsShowAdyenRetryButton(true);\r\n\r\n },\r\n // Any payment method specific configuration. Find the configuration specific to each payment method: https://docs.adyen.com/payment-methods\r\n // For example, this is 3D Secure configuration for cards:\r\n paymentMethodsConfiguration: {\r\n card: {\r\n hasHolderName: true,\r\n holderNameRequired: true,\r\n billingAddressRequired: true,\r\n //billingAddressAllowedCountries: [\"AU\", \"NZ\"],\r\n data: {\r\n billingAddress: {\r\n country: selectedDeliveryFromStore?.Country?.code == rdEnum.enumCountryCode.NewZealand ? \"NZ\" : \"AU\",\r\n houseNumberOrName: \"N/A\"\r\n //placeholder: {\r\n // //\"postalCode\": \"Postcode\",\r\n // \"postalCode.placeholder\": \"Postcode\",\r\n //},\r\n },\r\n //placeholder: {\r\n // \"postalCode\": \"Postcode\",\r\n //},\r\n },\r\n brands: ['mc', 'visa', 'amex']\r\n },\r\n //threeDS2: { // Web Components 4.0.0 and above: sample configuration for the threeDS2 action type\r\n // challengeWindowSize: '05'\r\n // // Set to any of the following:\r\n // // '02': ['390px', '400px'] - The default window size\r\n // // '01': ['250px', '400px']\r\n // // '03': ['500px', '600px']\r\n // // '04': ['600px', '400px']\r\n // // '05': ['100%', '100%']\r\n //},\r\n },\r\n showPayButton: false\r\n };\r\n\r\n return configuration;\r\n\r\n }\r\n\r\n const doGetPaymentIDs = async (orderID: any, country: any) => {\r\n let response = await paymentService.getNewPaymentIDs(orderID, country);\r\n if (response.status) {\r\n let responseData = response.data;\r\n setAdyenSession({\r\n ...adyenSession,\r\n SessionID: responseData.adyenSessionID,\r\n SessionData: responseData.adyenSessionData\r\n });\r\n localStorage.setItem(\"paymentID\", responseData.rdPaymentTransactionID);\r\n }\r\n else {\r\n localStorage.setItem(\"paymentID\", \"\");\r\n setAdyenFailedMessage(response.message);\r\n setAdyenSession(checkoutHelper.getAdyenInitState());\r\n }\r\n }\r\n\r\n const doPlaceOrder = async (order: orderModel.IOrderRequest, adyenSession: checkOutViewModel.IAdyenSession) => {\r\n setSubmittingToYana(rdEnum.enumProcessingStatus.Processing);\r\n let response = await orderService.placeOrder(order, adyenSession);\r\n setSubmittingToYana(rdEnum.enumProcessingStatus.Processed);\r\n if (response.status) {\r\n console.log(response.data);\r\n let yanaIds = response.data.yanaOrderIDs;\r\n let paymentID = response.data.rdPaymentTransactionID;\r\n let country = response.data.orderVehicle.country;\r\n let url = `${getFrontendUrl()}/order-success/${yanaIds.yanaCustomerID}/${yanaIds.yanaCustomerNo}/${yanaIds.yanaOrderID}/${yanaIds.yanaOrderNo}/${paymentID}`;\r\n url += `/${country}`;\r\n //console.log(url);\r\n navigate(url);\r\n }\r\n else {\r\n setPlaceOrderMessage(response.message);\r\n }\r\n }\r\n\r\n const doSavePaymentLog = async (order: orderModel.IOrderRequest, adyenSession: checkOutViewModel.IAdyenSession) => {\r\n let response = await paymentService.savePaymentLog(order, adyenSession);\r\n if (response.status) {\r\n\r\n }\r\n else {\r\n\r\n }\r\n }\r\n\r\n\r\n ///init adyen drop-in component\r\n useEffect(() => {\r\n let ignore = false;\r\n const doInitPayment = async (isRefresh: boolean) => {\r\n let adyenConfig = doGetAdyenConfig();\r\n const checkout = await AdyenCheckout(adyenConfig);\r\n if (!isNil(paymentContainer?.current) && !ignore) {\r\n customCardInstance.current = checkout.create('dropin', { //securedfields, card,dropin\r\n onReady: () => {\r\n },\r\n }).mount(paymentContainer.current);\r\n\r\n //todo: seems to work, still need to double check\r\n //if (isRefresh) {\r\n // customCardInstance.current.update();\r\n // customCardInstance.current.remount();\r\n //}\r\n\r\n //setCustomCardInstance(customCard);\r\n }\r\n }\r\n\r\n if (!isNil(adyenSession?.SessionID) && adyenSession?.SessionID != \"\"\r\n && !isNil(adyenSession?.SessionData) && adyenSession?.SessionData != \"\") {\r\n if (customCardInstance.current) {\r\n //console.log(\"refresh adyen\");\r\n doInitPayment(true);\r\n }\r\n else {\r\n //console.log(\"init payment\");\r\n doInitPayment(false);\r\n }\r\n\r\n }\r\n\r\n return () => {\r\n ignore = true;\r\n }\r\n }, [paymentContainer.current, adyenSession]);\r\n\r\n setTimeout(() => {\r\n const streetRef = document.getElementsByName(\"street\");\r\n if (streetRef != null && streetRef.length > 0) {\r\n streetRef[0]?.setAttribute(\"placeHolder\", \"Address\");\r\n }\r\n const cityRef = document.getElementsByName(\"city\");\r\n if (cityRef != null && cityRef.length > 0) {\r\n cityRef[0]?.setAttribute(\"placeHolder\", \"Suburb\");\r\n }\r\n\r\n const postcodeRef = document.getElementsByName(\"postalCode\");\r\n if (postcodeRef != null && postcodeRef.length > 0) {\r\n postcodeRef[0]?.setAttribute(\"placeHolder\", \"PostCode\");\r\n }\r\n\r\n\r\n\r\n const houseNumberOrNameRef = document.getElementsByName(\"houseNumberOrName\");\r\n if (houseNumberOrNameRef != null && houseNumberOrNameRef.length > 0) {\r\n houseNumberOrNameRef[0]?.setAttribute(\"placeHolder\", \"House Number\");\r\n //houseNumberOrNameRef[0]?.nodeValue = \"N/A\";\r\n }\r\n\r\n }, 1000);\r\n\r\n //if email already exists, show confirm diaglog if go to login page\r\n const [showConfirmPopup, setShowConfirmPopup] = useState(false);\r\n //const [placeOrderWithoutLogin, setPlaceOrderWithoutLogin] = useState(false);\r\n const [confirmPopupMessage, setConfirmPopupMessage] = useState(\"\");\r\n\r\n\r\n const scrollToSectionRef = (ref: React.RefObject) => {\r\n if (ref.current) {\r\n ref.current.scrollIntoView({\r\n behavior: 'smooth',\r\n block: 'start', // or 'center', 'end', 'nearest'\r\n //inline: 'end', // or 'start', 'center', 'end'\r\n });\r\n }\r\n };\r\n\r\n\r\n useEffect(() => {\r\n setClientType(customerTypeForStore || rdEnum.enumClientTypes.Private.Code);\r\n }, [customerTypeForStore]);\r\n\r\n //page load\r\n useEffect(() => {\r\n clearMessage();\r\n }, [mainPageNumber]);\r\n\r\n useEffect(() => {\r\n //redirect from login page\r\n if (!isNil(checkOutCustomerFromStore)) {\r\n setPageState(checkOutCustomerFromStore);\r\n }\r\n\r\n }, [checkOutCustomerFromStore])\r\n\r\n\r\n const clearMessage = () => {\r\n setPlaceReservationMessage(\"\");\r\n //setPaymentFailedMessage(\"\");\r\n\r\n setConfirmPopupMessage(\"\");\r\n setPlaceOrderMessage(\"\");\r\n setAdyenFailedMessage(\"\");\r\n }\r\n\r\n\r\n const isNumberKey = (e: any) => {\r\n IsNumberVerification(e);\r\n }\r\n\r\n const validateAccount = (): boolean => {\r\n let isInvalid = false;\r\n\r\n let invalidABN = false;\r\n let invalidABNLength = false;\r\n let invalidBusinessName = false;\r\n if (clientType == rdEnum.enumClientTypes.Business.Code) {\r\n if (isNil(pageState.abn) || pageState.abn == \"\") {\r\n invalidABN = true;\r\n isInvalid = true;\r\n }\r\n else {\r\n if (selectedDeliveryFromStore?.Country?.code == rdEnum.enumCountryCode.Australia) {\r\n if (pageState.abn.length != 11) {\r\n invalidABNLength = true;\r\n isInvalid = true;\r\n }\r\n }\r\n else {\r\n if (pageState.abn.length != 13) {\r\n invalidABNLength = true;\r\n isInvalid = true;\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n if (isNil(pageState.businessname) || pageState.businessname == \"\") {\r\n invalidBusinessName = true;\r\n isInvalid = true;\r\n }\r\n }\r\n\r\n let invalidFirstName = false;\r\n if (isNil(pageState.firstname) || pageState.firstname == \"\") {\r\n invalidFirstName = true;\r\n isInvalid = true;\r\n }\r\n\r\n let invalidLastName = false;\r\n if (isNil(pageState.lastname) || pageState.lastname == \"\") {\r\n invalidLastName = true;\r\n isInvalid = true;\r\n }\r\n\r\n let invalidEmail = false;\r\n if (isNil(pageState.email) || pageState.email == \"\") {\r\n invalidEmail = true;\r\n isInvalid = true;\r\n }\r\n else {\r\n if (!Uri.validateEmail(pageState.email)) {\r\n invalidEmail = true;\r\n isInvalid = true;\r\n }\r\n }\r\n let invalidConfirmEmail = false;\r\n if (isNil(pageState.confirmEmail) || pageState.confirmEmail == \"\") {\r\n invalidConfirmEmail = true;\r\n isInvalid = true;\r\n }\r\n else {\r\n if (!Uri.validateEmail(pageState.confirmEmail)) {\r\n invalidConfirmEmail = true;\r\n isInvalid = true;\r\n }\r\n }\r\n\r\n let emailMisMatch = false;\r\n if (!isNil(pageState.email) && pageState.email != \"\" && !isNil(pageState.confirmEmail) && pageState.confirmEmail != \"\"\r\n && pageState.email != pageState.confirmEmail) {\r\n emailMisMatch = true;\r\n isInvalid = true;\r\n }\r\n\r\n let invalidMobile = false;\r\n if (isNil(pageState.mobile) || pageState.mobile == \"\") {\r\n invalidMobile = true;\r\n isInvalid = true;\r\n }\r\n\r\n setPageState({\r\n ...pageState,\r\n invalidABN: invalidABN,\r\n invalidABNLength: invalidABNLength,\r\n invalidBusinessname: invalidBusinessName,\r\n invalidFirstname: invalidFirstName,\r\n invalidLastname: invalidLastName,\r\n invalidEmail: invalidEmail,\r\n invalidConfirmEmail: invalidConfirmEmail,\r\n invalidMobile: invalidMobile,\r\n emailMismatch: emailMisMatch,\r\n });\r\n\r\n return isInvalid;\r\n }\r\n\r\n\r\n //place reservation\r\n const onClickPaymentButton = async (withoutLogin: boolean) => {\r\n\r\n let invalidAccount = validateAccount();\r\n if (invalidAccount) return;\r\n\r\n setIsShowAdyenRetryButton(false);\r\n setAdyenFailedMessage(\"\");\r\n setConfirmOrderSubmittingStatus(rdEnum.enumProcessingStatus.Init);\r\n setPageState({ ...pageState, agreement: false });\r\n setShowOutOfStock(false);\r\n\r\n\r\n let orderData: orderModel.IOrderRequest = {\r\n Country: selectedDeliveryFromStore?.Country?.code || \"AU\",\r\n State: selectedDeliveryFromStore?.State?.code || \"\",\r\n VariantName: selectVehFromStore.VariantName || \"\",\r\n VariantPrice: selectVehFromStore.VariantBasePrice || 0,\r\n ExteriorName: selectVehFromStore.Exterior || \"\",\r\n ExteriorPrice: selectVehFromStore.ExteriorPrice || 0,\r\n InteriorName: selectVehFromStore.Interior || \"\",\r\n InteriorPrice: selectVehFromStore.InteriorPrice || 0,\r\n VehicleImages: [],\r\n VehicleThumbnail: null,\r\n Options: selectVehFromStore.Options || [],\r\n DeliveryLocationState: getDeliveryLocationState() || \"\",\r\n DeliveryLocationSuburb: getDeliveryLocationSuburb() || \"\",\r\n DeliveryLocationPostcode: getDeliveryLocationPostcode() || \"\",\r\n DeliveryLocationAddress: getDeliveryLocationFullAddress(),\r\n DeliveryOption: selectedDeliveryFromStore?.SelectedDeliveryOption || rdEnum.enumDeliveryOptions.HomeDelivery,\r\n PickupLocationName: selectedDeliveryFromStore?.PickupLocationName,\r\n Available: vehicleFromStore?.SelectedInterior?.Available || \"\",\r\n PaymentOption: selectedPaymentOptions?.PaymentOption || rdEnum.enumPaymentOptions.Cash,\r\n DriveawayCost: selectedPaymentOptions?.DriveAwayCost,\r\n Finance: selectedPaymentOptions?.Finance,\r\n Email: pageState.email,\r\n FirstName: pageState.firstname,\r\n LastName: pageState.lastname,\r\n Mobile: pageState.mobile,\r\n ABN: pageState.abn || \"\",\r\n BusinessName: pageState.businessname || \"\",\r\n CustomerCountry: '',\r\n CustomerType: clientType || rdEnum.enumClientTypes.Private.Code,\r\n BillingAddress: null,\r\n BillingSuburb: null,\r\n BillingPostcode: null,\r\n BillingState: null,\r\n RegoAddress: selectedDeliveryFromStore?.PrimaryAddress || \"\",\r\n RegoSuburb: selectedDeliveryFromStore?.PrimarySuburb || \"\",\r\n RegoPostcode: selectedDeliveryFromStore?.PrimaryPostcode || \"\",\r\n RegoState: selectedDeliveryFromStore?.PrimaryState || \"\",\r\n NameOnCreditCard: null,\r\n PrivacyStatement: true,\r\n RDAcountID: null,\r\n OrderID: null,\r\n YanaOrderReservationID: null,\r\n YanaOrderReservationNo: null,\r\n YanaOrderID: null,\r\n YanaOrderNo: null,\r\n YanaCustomerID: null,\r\n YanaCustomerNo: null,\r\n RDPaymentID: null,\r\n FromLinkSource: linkSourceFromStore,\r\n PaymentHistory: null,\r\n DownPayment: null,\r\n PaymentDueDate: null,\r\n FinalPaymentAmount: null,\r\n Total: null,\r\n Balance: null,\r\n PaymentAmount: null,\r\n Comments: pageState.comment\r\n };\r\n //return;\r\n let activeAccount = instance.getActiveAccount();\r\n //let hasLogin = !isNil(activeAccount) || withoutLogin;\r\n\r\n clearMessage();\r\n setReservationSubmittingStatus(rdEnum.enumProcessingStatus.Processing);\r\n let response = await orderService.placeReservation(orderData, true); //scope changed:no need to check email exists anymore\r\n setReservationSubmittingStatus(rdEnum.enumProcessingStatus.Processed);\r\n if (response.status) {\r\n let responseOrderData = response.data.order;\r\n\r\n orderData = {\r\n ...orderData,\r\n RDAcountID: responseOrderData.rdAccountID,\r\n OrderID: responseOrderData.orderID,\r\n YanaOrderReservationID: responseOrderData.yanaReservationID,\r\n YanaOrderReservationNo: responseOrderData.yanaReservationNumber,\r\n RDPaymentID: responseOrderData.rdPaymentTransactionID,\r\n PaymentAmount: responseOrderData.paymentAmount,\r\n }\r\n setOrder(orderData);\r\n localStorage.setItem(\"paymentID\", responseOrderData.rdPaymentTransactionID);\r\n localStorage.setItem(\"order\", JSON.stringify(orderData)); //not able to get the latest order state value in adyen payment drop-in, have temp store it in localstorage\r\n\r\n setIsShowPaymentPanel(true);\r\n dispatch(checkoutCustomerStore.clearCheckoutCustomerDetailsAction());\r\n\r\n setAdyenSession({\r\n ...adyenSession,\r\n SessionID: responseOrderData.adyenSessionID,\r\n SessionData: responseOrderData.adyenSessionData\r\n });\r\n\r\n //setPlaceReservationTime(new Date());\r\n\r\n setReservationCountDownSeconds(response.data.reservationCountDown);\r\n setReservationCountdownStage(response.data.reservationCountDownStage);\r\n setReservationExtendCount(response.data.reservationExtensionCount);\r\n if (response.data.reservationCountDownStage == 2) {\r\n setShowCountdownDialog(true);\r\n }\r\n }\r\n else {\r\n\r\n if (response.errorCode == rdEnum.enumRDErrorCode.ExistedEmail) {\r\n setShowConfirmPopup(true);\r\n setPageState({\r\n ...pageState,\r\n emailDuplicated: true\r\n })\r\n setConfirmPopupMessage(response.message);\r\n dispatch(checkoutCustomerStore.setCheckoutCustomerDetailsAction(pageState));\r\n }\r\n else if (response.errorCode == rdEnum.enumRDErrorCode.OutOfStock) {\r\n setShowOutOfStock(true);\r\n dispatch(checkoutCustomerStore.clearCheckoutCustomerDetailsAction());\r\n }\r\n else {\r\n setPlaceReservationMessage(response.message);\r\n dispatch(checkoutCustomerStore.clearCheckoutCustomerDetailsAction());\r\n }\r\n }\r\n\r\n }\r\n\r\n const getDeliveryLocationState = () => {\r\n if (selectedDeliveryFromStore.SelectedDeliveryOption == rdEnum.enumDeliveryOptions.Pickup) {\r\n return selectedDeliveryFromStore?.SelectedPickupLocation?.LocationState;\r\n }\r\n else {\r\n return selectedDeliveryFromStore?.SelectedDeliveryState || \"\";\r\n }\r\n }\r\n\r\n const getDeliveryLocationPostcode = () => {\r\n if (selectedDeliveryFromStore.SelectedDeliveryOption == rdEnum.enumDeliveryOptions.Pickup) {\r\n return selectedDeliveryFromStore?.SelectedPickupLocation?.LocationPostcode;\r\n }\r\n else {\r\n return selectedDeliveryFromStore?.SelectedDeliveryPostcode || \"\";\r\n }\r\n }\r\n\r\n const getDeliveryLocationSuburb = () => {\r\n if (selectedDeliveryFromStore.SelectedDeliveryOption == rdEnum.enumDeliveryOptions.Pickup) {\r\n return selectedDeliveryFromStore?.SelectedPickupLocation?.LocationSuburb;\r\n }\r\n else {\r\n return selectedDeliveryFromStore?.SelectedDeliverySuburb || \"\";\r\n }\r\n }\r\n\r\n const getDeliveryLocationFullAddress = () => {\r\n if (selectedDeliveryFromStore.SelectedDeliveryOption == rdEnum.enumDeliveryOptions.Pickup) {\r\n return selectedDeliveryFromStore?.SelectedPickupLocation?.LocationAddress || \"\";\r\n }\r\n else {\r\n return selectedDeliveryFromStore?.SelectedDeliveryFullAddress || \"\";\r\n }\r\n\r\n }\r\n\r\n\r\n const onClickWaitlist = async () => {\r\n let invalidAccount = validateAccount();\r\n if (invalidAccount) return;\r\n\r\n let interestData: interestModel.IInterest = {\r\n Country: selectedDeliveryFromStore?.Country?.code || \"\",\r\n State: selectedDeliveryFromStore?.State?.code || \"\",\r\n VariantName: selectVehFromStore.VariantName || \"\",\r\n VariantBasePrice: selectVehFromStore.VariantBasePrice || 0,\r\n ExteriorName: selectVehFromStore.Exterior || \"\",\r\n ExteriorPrice: selectVehFromStore.ExteriorPrice || 0,\r\n InteriorName: selectVehFromStore.Interior || \"\",\r\n InteriorPrice: selectVehFromStore.InteriorPrice || 0,\r\n PaymentOption: selectedPaymentOptions?.PaymentOption || rdEnum.enumPaymentOptions.Cash,\r\n Email: pageState.email,\r\n FirstName: pageState.firstname,\r\n LastName: pageState.lastname,\r\n Mobile: pageState.mobile,\r\n ABN: pageState.abn || \"\",\r\n BusinessName: pageState.businessname || \"\",\r\n CustomerType: clientType || rdEnum.enumClientTypes.Private.Code,\r\n DeliveryAddress: getDeliveryLocationFullAddress(),\r\n DeliveryLocationState: getDeliveryLocationState() || \"\",\r\n DeliveryLocationSuburb: getDeliveryLocationSuburb() || \"\",\r\n DeliveryLocationPostcode: getDeliveryLocationPostcode() || \"\",\r\n DeliveryOption: selectedDeliveryFromStore?.SelectedDeliveryOption || rdEnum.enumDeliveryOptions.Pickup,\r\n EstDeliveryDate: vehicleFromStore?.SelectedInterior?.Available || \"\",\r\n PrivacyStatement: confirmed?.confirm,\r\n Marketing: confirmed?.agreement,\r\n InterestType: rdEnum.enumInterestType.WaitingList,\r\n Comments: pageState.comment,\r\n WebUniqueKey: null,\r\n Options: selectVehFromStore.Options || [],\r\n VehicleThumbnail: \"\"\r\n };\r\n\r\n clearMessage();\r\n setReservationSubmittingStatus(rdEnum.enumProcessingStatus.Processing);\r\n let response = await interestService.saveInterest(interestData, true);\r\n setReservationSubmittingStatus(rdEnum.enumProcessingStatus.Processed);\r\n if (response.status) {\r\n //console.log(response.data);\r\n //let waitlistNo = encodeURIComponent(response.data.yanaWaitlistNumber);\r\n let url = `order-waitlisted/${response.data.webUniqueKey}`;\r\n navigate(url);\r\n }\r\n else {\r\n setPlaceReservationMessage(response.message);\r\n }\r\n }\r\n\r\n const handleBackToConfiguration = () => {\r\n if (submittingToYana != rdEnum.enumProcessingStatus.Processing) {\r\n toConfiguration();\r\n setIsShowPaymentPanel(false);\r\n }\r\n }\r\n\r\n const openPrivacy = () => {\r\n window.open('https://www.cadillacanz.com/au-en/privacy')\r\n }\r\n\r\n const toLearnMore = () => {\r\n window.open('https://sd.gm.com/')\r\n }\r\n\r\n const toThirdParty = () => {\r\n window.open('https://www.adyen.com/en_AU/')\r\n }\r\n\r\n const proceedPaymentJoinWaitlistButtonTemplate = () => {\r\n\r\n if (reserverationSubmittingStatus == rdEnum.enumProcessingStatus.Processing) {\r\n return (\r\n \r\n );\r\n }\r\n if (mainPageNumber == rdEnum.enumPage.JoinWaitList) {\r\n return (\r\n \r\n );\r\n }\r\n else {\r\n return (\r\n \r\n );\r\n }\r\n\r\n }\r\n\r\n const handleCopy = (e: React.ClipboardEvent) => {\r\n e.preventDefault(); // Prevents copying\r\n };\r\n\r\n const handlePaste = (e: React.ClipboardEvent) => {\r\n e.preventDefault(); // Prevents pasting\r\n };\r\n\r\n const handleCut = (e: React.ClipboardEvent) => {\r\n e.preventDefault(); // Prevents cutting\r\n };\r\n\r\n setTimeout(() => {\r\n let chargingCheckbox = document.getElementsByName(\"cb-ack-last\");\r\n for (let i = 0; i < chargingCheckbox.length; i++) {\r\n chargingCheckbox[i].setAttribute('data-dtm', 'checkout');\r\n chargingCheckbox[i].classList.add('stat-checkbox');\r\n }\r\n\r\n }, 200);\r\n\r\n\r\n const doSetReservationCountdown = async () => {\r\n let response = await orderService.setReservationCountdown(order.Country);\r\n if (response.status) {\r\n setReservationCountDownSeconds(response.data.reservationCountDown);\r\n setReservationCountdownStage(response.data.reservationCountDownStage);\r\n }\r\n }\r\n\r\n\r\n useEffect(() => {\r\n if (reservationCountDownSeconds > 0) {\r\n const interval = setInterval(() => {\r\n //console.log(mainPageNumber);\r\n //console.log(isShowPaymentPanel);\r\n //console.log(confirmOrderSubmittingStatus);\r\n if (mainPageNumber == rdEnum.enumPage.CheckoutPayment && isShowPaymentPanel\r\n && confirmOrderSubmittingStatus == rdEnum.enumProcessingStatus.Init) {\r\n let newCountdownSecond = reservationCountDownSeconds - 1;\r\n if (newCountdownSecond == 0) {\r\n if (reservationCountdownStage == 1) {\r\n if (reservationExtendCount >= reservationExendMaxCount) {\r\n setShowCountdownDialog(false);\r\n let url = Uri.getFrontendOrigin();\r\n window.location.href = url;\r\n }\r\n else {\r\n //call get popup count down\r\n setShowCountdownDialog(true);\r\n doSetReservationCountdown();\r\n }\r\n }\r\n else {\r\n //extend popup is showning up, which means it's in extend period\r\n //then refresh the page\r\n setShowCountdownDialog(false);\r\n let url = Uri.getFrontendOrigin();\r\n window.location.href = url;\r\n }\r\n }\r\n\r\n setReservationCountDownSeconds(newCountdownSecond);\r\n }\r\n\r\n }, 1000);\r\n\r\n return () => clearInterval(interval); // Clean up interval on component unmount\r\n }\r\n }, [reservationCountDownSeconds, isShowPaymentPanel]);\r\n\r\n const countDownTimeTemplate = (sec: any) => {\r\n const minutes = Math.floor(sec / 60);\r\n const seconds = sec % 60;\r\n return (
{minutes} minutes {seconds} seconds
);\r\n };\r\n\r\n return (\r\n \r\n
\r\n {\r\n mainPageNumber == 2\r\n ?\r\n
handleBackToConfiguration()}>\r\n \r\n
BACK TO CONFIGURATION
\r\n
\r\n :\r\n <>\r\n }\r\n
\r\n {mainPageNumber == rdEnum.enumPage.CheckoutPayment ? (

ENTER ACCOUNT DETAILS

) : (

JOIN THE WAITLIST

)}\r\n
\r\n\r\n {/*
\r\n
\r\n \r\n \r\n
\r\n
*/}\r\n\r\n {\r\n mainPageNumber == rdEnum.enumPage.JoinWaitList\r\n ?\r\n
\r\n This particular LYRIQ configuration is currently sold out. Please enter your details below and to be notified when it is available to order.\r\n
\r\n :\r\n <>\r\n }\r\n\r\n\r\n
\r\n {clientType == rdEnum.enumClientTypes.Business.Code && (\r\n \r\n
\r\n \r\n {\r\n setPageState({\r\n ...pageState,\r\n businessname: e.target.value,\r\n invalidBusinessname: isNil(e.target.value) || e.target.value == \"\"\r\n })\r\n }}\r\n />\r\n \r\n \r\n
\r\n {pageState?.invalidBusinessname && (\r\n Require Valid Business Name\r\n )}\r\n
\r\n \r\n {\r\n setPageState({\r\n ...pageState,\r\n abn: e.target.value,\r\n invalidABN: isNil(e.target.value) || e.target.value == \"\",\r\n invalidABNLength: false,\r\n })\r\n }}\r\n />\r\n {\r\n selectedLocationFromStore?.Country?.code == rdEnum.enumCountryCode.Australia\r\n ?\r\n \r\n :\r\n \r\n }\r\n \r\n
\r\n {pageState?.invalidABN && (\r\n Please enter a valid \r\n {\r\n selectedLocationFromStore?.Country?.code == rdEnum.enumCountryCode.Australia\r\n ?\r\n ABN\r\n :\r\n NZBN\r\n }\r\n \r\n )}\r\n {pageState?.invalidABNLength && (\r\n \r\n {\r\n selectedLocationFromStore?.Country?.code == rdEnum.enumCountryCode.Australia\r\n ?\r\n ABN\r\n :\r\n NZBN\r\n }\r\n  length should be {selectedDeliveryFromStore?.Country?.code == rdEnum.enumCountryCode.Australia ? 11 : 13} digits.\r\n \r\n )}\r\n
\r\n )}\r\n
\r\n \r\n {\r\n setPageState({\r\n ...pageState,\r\n firstname: e.target.value,\r\n invalidFirstname: isNil(e.target.value) || e.target.value == \"\"\r\n })\r\n }}\r\n />\r\n \r\n \r\n
\r\n {pageState?.invalidFirstname && (\r\n Require Valid First Name\r\n )}\r\n
\r\n \r\n {\r\n setPageState({\r\n ...pageState,\r\n lastname: e.target.value,\r\n invalidLastname: isNil(e.target.value) || e.target.value == \"\"\r\n })\r\n }}\r\n />\r\n \r\n \r\n
\r\n {pageState?.invalidLastname && (\r\n Require Valid Last Name\r\n )}\r\n
\r\n \r\n {\r\n setPageState({\r\n ...pageState,\r\n email: e.target.value,\r\n invalidEmail: isNil(e.target.value) || e.target.value == \"\",\r\n emailMismatch: false,\r\n emailDuplicated: false,\r\n })\r\n }}\r\n />\r\n \r\n \r\n
\r\n {pageState?.invalidEmail && (\r\n Require Valid Email\r\n )}\r\n {pageState?.emailDuplicated && (\r\n This email is already registered\r\n )}\r\n
\r\n \r\n {\r\n setPageState({\r\n ...pageState,\r\n confirmEmail: e.target.value,\r\n invalidConfirmEmail: isNil(e.target.value) || e.target.value == \"\",\r\n emailMismatch: false,\r\n emailDuplicated: false,\r\n })\r\n }}\r\n onCopy={handleCopy}\r\n onPaste={handlePaste}\r\n onCut={handleCut}\r\n />\r\n \r\n \r\n
\r\n {pageState?.invalidConfirmEmail && (\r\n Require Valid Email\r\n )}\r\n {pageState?.emailMismatch && (\r\n The email address and confirm email address fields do not match\r\n )}\r\n
\r\n \r\n isNumberKey(e)}\r\n placeholder=\" \"\r\n value={pageState.mobile}\r\n onChange={(e) => {\r\n let mobile = e.target.value.slice(0, 10);\r\n setPageState({\r\n ...pageState,\r\n mobile: mobile,\r\n invalidMobile: isNil(mobile) || mobile == \"\" || mobile.length < 9 || mobile.length > 13\r\n })\r\n }}\r\n maxLength={10}\r\n />\r\n \r\n \r\n
\r\n {pageState?.invalidMobile && (\r\n Require Valid Mobile\r\n )}\r\n {/**/}\r\n {/* {mainPageNumber == rdEnum.enumPage.JoinWaitList ? (\r\n
\r\n \r\n {\r\n setPageState({\r\n ...pageState,\r\n comment: e.target.value,\r\n })\r\n }}\r\n />\r\n \r\n \r\n
\r\n ) : (<>)} */}\r\n\r\n
\r\n\r\n {\r\n mainPageNumber != rdEnum.enumPage.CheckoutPayment\r\n ?\r\n
\r\n
\r\n
\r\n
\r\n {\r\n //if (isNil(pageState)) return;\r\n setConfirmed({\r\n ...confirmed,\r\n confirm: e.checked,\r\n invalidConfirm: !e.checked\r\n });\r\n }}\r\n checked={confirmed?.confirm}\r\n >\r\n \r\n
\r\n {confirmed?.invalidConfirm && (\r\n Require the confirmation of valid agreement.\r\n )}\r\n
\r\n\r\n
\r\n
\r\n {\r\n //if (isNil(pageState)) return;\r\n setConfirmed({\r\n ...confirmed,\r\n agreement: e.checked,\r\n })\r\n }}\r\n checked={confirmed?.agreement}\r\n >\r\n \r\n
\r\n
\r\n
\r\n\r\n {/*
\r\n

Cadillac does not sell, trade or disclose your contact information to independent third parties for their independent use\r\n without your permission.

\r\n

\r\n By continuing your test drive booking, you have accepted the \r\n \r\n  and \r\n window.open(\"https://www.cadillacanz.com/au-en/privacy\", \"_blank\")}\r\n >Test Drive Terms and Conditions\r\n  of Cadillac.\r\n

\r\n
*/}\r\n
\r\n :\r\n <>\r\n }\r\n\r\n
\r\n {proceedPaymentJoinWaitlistButtonTemplate()}\r\n
\r\n {!isNil(placeReservationMessage) && placeReservationMessage != \"\" && (\r\n
\r\n )}\r\n\r\n {showOutOfStock && ()}\r\n\r\n\r\n
\r\n
\r\n {\r\n mainPageNumber == rdEnum.enumPage.CheckoutPayment\r\n ?\r\n
\r\n
\r\n Driveaway Price\r\n {currencyFormatWithBlank(driveawayFromStore?.DriveawayPrice || null)}\r\n
\r\n
\r\n Due Today\r\n {Uri.currencyFormatWithZeroBlank(order.PaymentAmount)}\r\n
\r\n

  • Fully refundable order deposit
  • \r\n
    \r\n :\r\n <>\r\n }\r\n {mainPageNumber == rdEnum.enumPage.CheckoutPayment && isShowPaymentPanel\r\n && linkSourceFromStore != rdEnum.enumLinkSource.PrivateInterestLink\r\n && confirmOrderSubmittingStatus == rdEnum.enumProcessingStatus.Init && (\r\n
    \r\n
    \r\n \"\"\r\n
    \r\n
    \r\n
    We are holding your LYRIQ for:
    \r\n {countDownTimeTemplate(reservationCountDownSeconds)}\r\n
    \r\n
    \r\n )}\r\n\r\n {/*Adyen payment*/}\r\n {\r\n mainPageNumber == rdEnum.enumPage.CheckoutPayment\r\n ?\r\n <>\r\n
    \r\n
    \r\n
    \r\n Cadillac uses a third party payment provider called Adyen to facilitate payment of your deposit and Cadillac will not collect or store your card information. toThirdParty()}>Learn more about how Adyen processes your transaction and manages your data.\r\n
    \r\n\r\n {isShowAdyenRetryButton && (\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 This vehicle features safety diagnostic data collection to help monitor, detect, and mitigate issues.\r\n

    \r\n toLearnMore()}>Learn more\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n setPageState({\r\n ...pageState,\r\n agreement: e.checked,\r\n invalidAgreement: !e.checked\r\n })\r\n }\r\n checked={pageState?.agreement}\r\n >\r\n {/*{pageState?.invalidAgreement && (*/}\r\n {/* Require the Agreement of Guideline*/}\r\n {/*)}*/}\r\n\r\n \r\n
    \r\n\r\n\r\n\r\n\r\n\r\n\r\n {/*{!isNil(paymentFailedMessage) && paymentFailedMessage != \"\" && (*/}\r\n {/*
    {paymentFailedMessage}
    */}\r\n {/*)}*/}\r\n\r\n
    \r\n
    \r\n \r\n \r\n \r\n {/*
    openPrivacy()}>\r\n Cadillac's Privacy Policy\r\n \r\n
    */}\r\n {/*
    \r\n Cadillac's Privacy Collection Statement\r\n \r\n
    */}\r\n
    \r\n {selectedDeliveryFromStore?.Country?.code == rdEnum.enumCountryCode.Australia && (\r\n \r\n
    Motor Trader Licence:
    \r\n
    Victoria: LMCT-1770
    \r\n
    New South Wales: MD095488
    \r\n {lmctText != \"\" && (\r\n \r\n
    \r\n
    Partner Trade Licences:
    \r\n
    {lmctText}
    \r\n
    \r\n )}\r\n
    \r\n )}\r\n {selectedDeliveryFromStore?.Country?.code == rdEnum.enumCountryCode.NewZealand && (\r\n \r\n
    Motor Trade Licences:
    \r\n
    New Zealand: M388717
    \r\n
    \r\n )}\r\n
    \r\n
    \r\n\r\n {!isNil(placeOrderMessage) && placeOrderMessage != \"\" && (\r\n
    \r\n )}\r\n\r\n {!isNil(adyenFailedMessage) && adyenFailedMessage != \"\" && (\r\n
    {adyenFailedMessage}
    \r\n )}\r\n
    \r\n {(confirmOrderSubmittingStatus == rdEnum.enumProcessingStatus.Processing || submittingToYana == rdEnum.enumProcessingStatus.Processing) && (\r\n \r\n\r\n )}\r\n {confirmOrderSubmittingStatus == rdEnum.enumProcessingStatus.Init && (\r\n {\r\n\r\n ////check if in 20 minutes since place reservation\r\n //if (!isNil(placeReservationTime) && moment(placeReservationTime).add(reservationExpiryMin, \"minutes\") < moment(new Date())) {\r\n // if (selectedDeliveryFromStore?.Country?.code == rdEnum.enumCountryCode.Australia) {\r\n // setPlaceReservationMessage(rdEnum.enumErrorMessage.AUReservationError);\r\n // }\r\n // else {\r\n // setPlaceReservationMessage(rdEnum.enumErrorMessage.NZReservationError);\r\n // }\r\n // setIsShowPaymentPanel(false);\r\n // return;\r\n //}\r\n\r\n let response = await orderService.getReservationStatus(order.OrderID);\r\n if (response.status) {\r\n if (response.data == \"active\") {\r\n\r\n if (customCardInstance.current.isValid) {\r\n setConfirmOrderSubmittingStatus(rdEnum.enumProcessingStatus.Processing);\r\n }\r\n customCardInstance.current.submit();\r\n }\r\n else {\r\n if (selectedDeliveryFromStore?.Country?.code == rdEnum.enumCountryCode.Australia) {\r\n setPlaceReservationMessage(rdEnum.enumErrorMessage.AUReservationError);\r\n setIsShowPaymentPanel(false);\r\n }\r\n else {\r\n setPlaceReservationMessage(rdEnum.enumErrorMessage.NZReservationError);\r\n setIsShowPaymentPanel(false);\r\n }\r\n }\r\n }\r\n }}\r\n >\r\n PLACE ORDER\r\n \r\n )}\r\n
    \r\n\r\n
    \r\n \r\n {\r\n setPageState({\r\n ...pageState,\r\n comment: e.target.value,\r\n });\r\n localStorage.setItem(\"ordercomments\", e.target.value);\r\n\r\n checkOverflow();\r\n }}\r\n />\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n setShowConfirmPopup(false)}>\r\n
    {confirmPopupMessage}
    \r\n
    \r\n {\r\n setShowConfirmPopup(false);\r\n azureB2C.signIn();\r\n }}\r\n >\r\n Yes\r\n \r\n\r\n {\r\n setShowConfirmPopup(false);\r\n //setPlaceOrderWithoutLogin(true);\r\n onClickPaymentButton(true);\r\n }}\r\n >\r\n No\r\n \r\n
    \r\n
    \r\n\r\n setShowCountdownDialog(false)}>\r\n
    \r\n
    Reminder
    \r\n

    Your LYRIQ design is about to be released. If you need\r\n more time, you can extend below, otherwise you\r\n automatically will be redirected back to the Configuration homepage.

    \r\n
    \r\n {\r\n let response = await orderService.extendReservationCountdown(order.Country);\r\n if (response.status) {\r\n setReservationCountDownSeconds(response.data.reservationCountDown);\r\n setReservationCountdownStage(response.data.reservationCountDownStage);\r\n setShowCountdownDialog(false);\r\n setReservationExtendCount(response.data.reservationExtensionCount);\r\n }\r\n else {\r\n if (response.message == rdEnum.enumRDErrorCode.MaxExtensionLimit) {\r\n let url = Uri.getFrontendOrigin();\r\n window.location.href = url;\r\n }\r\n }\r\n }}\r\n >\r\n Extend\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n}\r\n\r\nexport default CheckoutWaitlist","import { getCMSAssets } from 'helpers/Uri';\r\nimport { IChargingDialogProps } from 'model/IChargingDialogProps';\r\nimport { Dialog } from 'primereact/dialog';\r\nimport React, { useEffect, useState } from 'react'\r\nimport { Button, Carousel, Col, Row } from 'react-bootstrap';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport * as vehicleModel from 'model/IVehicle';\r\nimport * as selectedConfigStore from 'stores/UserSelectedVehicleConfig';\r\nimport { IAppState } from 'model/IAppState';\r\nimport { currencyFormat } from 'helpers/Uri';\r\nimport { isNil } from 'lodash';\r\n\r\nconst ChargingDialog = (props: vehicleModel.IVehicleOptions) => {\r\n const dispatch = useDispatch();\r\n\r\n const [isOpen, setIsOpen] = useState(false);\r\n\r\n let removeFirstItemList = props.OptionPicture?.length > 1 ? props.OptionPicture.slice(1) : props.OptionPicture;\r\n\r\n // const [tempProps, setTempProps] = useState([]);\r\n\r\n // useEffect(() => {\r\n // if (props.OptionPicture?.length > 1) {\r\n // setTempProps(props.OptionPicture?.splice(1, 2));\r\n // } else {\r\n // setTempProps(tempProps);\r\n // }\r\n // }, [])\r\n\r\n const selectedOptionsFromStore: vehicleModel.IVehicleOptions[] | null = useSelector((state: IAppState) => {\r\n return state.selectedVehicle.Options;\r\n });\r\n\r\n const isAddOrRemove = selectedOptionsFromStore?.some((option: any) =>\r\n option !== props && option.OptionName === props.OptionName\r\n );\r\n\r\n const handleDialogOpen = () => {\r\n setIsOpen(true);\r\n document.body.style.overflowY = 'hidden';\r\n document.body.style.paddingRight = '15px';\r\n }\r\n\r\n const handleDialogHide = () => {\r\n setIsOpen(false);\r\n document.body.style.overflowY = 'scroll';\r\n document.body.style.paddingRight = '0px';\r\n }\r\n\r\n const handleAdd = (item: vehicleModel.IVehicleOptions) => {\r\n\r\n dispatch(selectedConfigStore.updateOptionAction(item));\r\n setIsOpen(false);\r\n document.body.style.overflowY = 'scroll';\r\n document.body.style.paddingRight = '0px';\r\n \r\n }\r\n\r\n const directionButtons = (direction: any) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n };\r\n\r\n const chargingCurrencyFormat = (value: number | null) => {\r\n let currencyFormatter = new Intl.NumberFormat('en-AU', {\r\n style: 'currency',\r\n currency: 'AUD',\r\n });\r\n\r\n\r\n if (isNil(value))\r\n return \"\";\r\n if (value == 0)\r\n return \"FREE\"\r\n return \"+ \" + currencyFormatter.format(value);\r\n }\r\n\r\n return (\r\n <>\r\n
    {\r\n handleDialogOpen();\r\n }}\r\n >\r\n Details\r\n \"\"\r\n {/* 0 ? removeFirstItemList[0] : \"\"} />*/}\r\n
    \r\n\r\n handleDialogHide()}\r\n draggable={false} resizable={true}>\r\n \r\n \r\n {\r\n // tempProps?.length > 1\r\n removeFirstItemList?.length > 1\r\n ?\r\n \r\n {removeFirstItemList.map((item: any, index: number) => {\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n })}\r\n \r\n :\r\n // tempProps?.length == 1\r\n removeFirstItemList?.length == 1\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
    {props.OptionName}
    \r\n

    {props.OptionDesc}

    \r\n
    \r\n\r\n
    \r\n {/* {\r\n props.OptionName?.includes('Public Charging')\r\n || props.OptionName?.includes('Public Charger')\r\n ?\r\n
    \r\n The public charging offer is provided by Chargefox. The use of the Chargefox charging network is subject to Chargefox Network T&Cs. Fair use policy applies. View full T&Cs when placing your order\r\n
    \r\n :\r\n props.OptionName?.includes('Home Charging')\r\n || props.OptionName?.includes('Home Charger')\r\n ?\r\n
    \r\n Hardware and installation is provided by JET Charge. View order T&Cs when completing your purchase for more information.\r\n
    \r\n :\r\n <>\r\n } */}\r\n
    {props.TermsDescription}
    \r\n {/*

    Disclaimer

    */}\r\n
    \r\n Price\r\n {chargingCurrencyFormat(props.OptionPrice || 0)}\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 ChargingDialog","import React, { useEffect, useState } from 'react'\r\nimport { Card } from 'primereact/card';\r\nimport { Button } from 'primereact/button'\r\nimport { useDispatch, useSelector } from 'react-redux';\r\n\r\nimport * as rdEnum from 'helpers/enum';\r\nimport * as selectedConfigModel from 'model/IUserSelectedConfig';\r\nimport * as vehicleModel from 'model/IVehicle';\r\nimport * as selectedConfigStore from 'stores/UserSelectedVehicleConfig';\r\nimport { Checkbox } from 'primereact/checkbox';\r\nimport ChargingDialog from 'components/ChargingDialog';\r\nimport { IAppState } from 'model/IAppState';\r\n\r\nimport { isNil, template } from 'lodash';\r\nimport { classNames } from 'primereact/utils';\r\nimport { currencyFormatCharging } from 'helpers/Uri';\r\n\r\nconst Charging = () => {\r\n const dispatch = useDispatch();\r\n\r\n //the charge items be shown on the page\r\n const [chargeList, setChargeList] = useState();\r\n\r\n //All charge items got from APIs\r\n const chargingListFromStore: vehicleModel.IVehicleOptions[] = useSelector((state: IAppState) => {\r\n return state.vehicle.Charging;\r\n });\r\n\r\n //uses selected options\r\n const selectedOptionsFromStore: vehicleModel.IVehicleOptions[] | null = useSelector((state: IAppState) => {\r\n return state.selectedVehicle.Options;\r\n });\r\n\r\n //To get current Country Name\r\n const selectedDeliveryFromStore = useSelector((state: IAppState) => {\r\n return state.selectedDelivery;\r\n });\r\n\r\n //const [selected, setSelected] = useState([]);\r\n\r\n useEffect(() => {\r\n //business rules:\r\n //if public selected, home must have price\r\n //if home no price selected, public is showing and disabled\r\n //if home price selected, public is showing and enabled\r\n if (!isNil(chargingListFromStore) && chargingListFromStore.length > 0) {\r\n if (!isNil(selectedOptionsFromStore) && selectedOptionsFromStore.length > 0) {\r\n let selectedPublicCharge = selectedOptionsFromStore.find(m =>\r\n m.OptionType == rdEnum.enumVehicleOptionType.Charge && m.ChargeType == rdEnum.enumChargeType.Public);\r\n let selectedHomeWithoutPriceCharge = selectedOptionsFromStore.find(m =>\r\n m.OptionType == rdEnum.enumVehicleOptionType.Charge && m.ChargeType == rdEnum.enumChargeType.HomeWithoutPrice);\r\n let selectedHomeHasPriceCharge = selectedOptionsFromStore.find(m =>\r\n m.OptionType == rdEnum.enumVehicleOptionType.Charge && m.ChargeType == rdEnum.enumChargeType.HomeHasPrice);\r\n\r\n if (selectedPublicCharge == undefined && selectedHomeHasPriceCharge != undefined) {\r\n let tempList: vehicleModel.IVehicleOptions[] = [];\r\n chargingListFromStore.map((item: vehicleModel.IVehicleOptions) => {\r\n if (item.ChargeType == rdEnum.enumChargeType.Public || item.ChargeType == rdEnum.enumChargeType.HomeWithoutPrice) {\r\n tempList.push({ ...item, Disable: false });\r\n }\r\n });\r\n setChargeList(tempList);\r\n }\r\n else if (selectedPublicCharge == undefined && selectedHomeHasPriceCharge == undefined && selectedHomeWithoutPriceCharge == undefined) {\r\n //nothings selected\r\n let tempList: vehicleModel.IVehicleOptions[] = [];\r\n chargingListFromStore.map((item: vehicleModel.IVehicleOptions) => {\r\n if (item.ChargeType == rdEnum.enumChargeType.Public || item.ChargeType == rdEnum.enumChargeType.HomeWithoutPrice) {\r\n tempList.push({ ...item, Disable: false });\r\n }\r\n });\r\n setChargeList(tempList);\r\n }\r\n else if (selectedPublicCharge != undefined) {\r\n let tempList: vehicleModel.IVehicleOptions[] = [];\r\n chargingListFromStore.map((item: vehicleModel.IVehicleOptions) => {\r\n if (item.ChargeType == rdEnum.enumChargeType.Public || item.ChargeType == rdEnum.enumChargeType.HomeHasPrice) {\r\n tempList.push({ ...item, Disable: false });\r\n }\r\n //else if (item.ChargeType == rdEnum.enumChargeType.HomeHasPrice) {\r\n // tempList.push(item);\r\n //}\r\n });\r\n setChargeList(tempList);\r\n }\r\n else if (selectedHomeWithoutPriceCharge != undefined) {\r\n let tempList: vehicleModel.IVehicleOptions[] = [];\r\n chargingListFromStore.map((item: vehicleModel.IVehicleOptions) => {\r\n if (item.ChargeType == rdEnum.enumChargeType.Public) {\r\n tempList.push({ ...item, Disable: true });\r\n } else if (item.ChargeType == rdEnum.enumChargeType.HomeWithoutPrice) {\r\n tempList.push(item);\r\n }\r\n });\r\n setChargeList(tempList);\r\n }\r\n\r\n }\r\n else {\r\n let tempList: vehicleModel.IVehicleOptions[] = [];\r\n chargingListFromStore.map((item: vehicleModel.IVehicleOptions) => {\r\n if (item.ChargeType == rdEnum.enumChargeType.Public) {\r\n tempList.push({ ...item, Disable: false });\r\n } else if (item.ChargeType == rdEnum.enumChargeType.HomeWithoutPrice) {\r\n tempList.push(item);\r\n }\r\n });\r\n setChargeList(tempList);\r\n }\r\n }\r\n else {\r\n setChargeList([]);\r\n }\r\n\r\n }, [chargingListFromStore, selectedOptionsFromStore]);\r\n\r\n\r\n const handleSelect = (item: vehicleModel.IVehicleOptions) => {\r\n dispatch(selectedConfigStore.updateOptionAction(item));\r\n };\r\n\r\n const isSelectedOption = (item: vehicleModel.IVehicleOptions): boolean => {\r\n if (isNil(selectedOptionsFromStore) || selectedOptionsFromStore.length == 0) return false;\r\n let findSelectedOption = selectedOptionsFromStore.find((selectedItems: vehicleModel.IVehicleOptions) => {\r\n return selectedItems?.YanaOptionID == item.YanaOptionID || selectedItems?.OptionName == item.OptionName;\r\n });\r\n return !isNil(findSelectedOption);\r\n }\r\n\r\n setTimeout(() => {\r\n let chargingCheckbox = document.getElementsByName(\"charging\");\r\n for (let i = 0; i < chargingCheckbox.length; i++) {\r\n chargingCheckbox[i].setAttribute('data-dtm', 'charging');\r\n chargingCheckbox[i].classList.add('stat-checkbox');\r\n }\r\n\r\n }, 200);\r\n\r\n\r\n const chargingCurrencyFormat = (value: number | null) => {\r\n let currencyFormatter = new Intl.NumberFormat('en-AU', {\r\n style: 'currency',\r\n currency: 'AUD',\r\n });\r\n\r\n\r\n if (isNil(value))\r\n return \"\";\r\n if (value == 0)\r\n return \"FREE\"\r\n return \"+ \" + currencyFormatter.format(value);\r\n }\r\n\r\n return (\r\n
    \r\n

    CHARGING

    \r\n {\r\n selectedDeliveryFromStore.Country?.code == rdEnum.enumCountryCode.Australia\r\n ?\r\n

    LYRIQ comes with a 3-pin home charging cable and 1 year complimentary public charging. You can choose between an additional 2 years complimentary public charging, or a home charger installed.

    \r\n :\r\n

    LYRIQ comes with a 3-pin home charging cable and $400 complimentary public charging credit. You can choose between an additional $800 public charging credit, or a home charger installed.

    \r\n }\r\n \r\n {\r\n !isNil(chargeList) && chargeList.length > 0 && chargeList.map((item: vehicleModel.IVehicleOptions, index: any) => {\r\n const header = \"Card\" 0 ? item.OptionPicture[0] : \"\"} />;\r\n let optionItem: vehicleModel.IVehicleOptions = {\r\n YanaOptionID: item.YanaOptionID,\r\n OptionType: rdEnum.enumVehicleOptionType.Charge,\r\n OptionName: item.OptionName,\r\n OptionPrice: item.OptionPrice, \r\n OptionPicture: [],\r\n OptionPictureMobile: [],\r\n OptionDesc: item.OptionDesc,\r\n ChargeType: item.ChargeType,\r\n Disable: item.Disable,\r\n TermsDescription: item.TermsDescription\r\n };\r\n return (\r\n \r\n
    \r\n \r\n
    \r\n {\r\n handleSelect(optionItem);\r\n }}\r\n checked={isSelectedOption(item)}\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 Charging","import { getCMSAssets } from 'helpers/Uri';\r\nimport { Dialog } from 'primereact/dialog'\r\nimport React, { forwardRef, useEffect, useImperativeHandle, useState } from 'react'\r\nimport { Carousel } from 'react-bootstrap';\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport \"../App.scss\"\r\nimport { useCheckMobileScreen } from 'helpers/useCheckMobileScreen';\r\nimport { IAppState } from 'model/IAppState';\r\n\r\nexport type CarouselDialogRef = {\r\n handleOpen: (pageNumber: number) => void;\r\n};\r\n\r\ninterface CarouselDialogProps {\r\n vehicle: {\r\n variantAWD: string,\r\n exteriorColor: string,\r\n interiorColor: string\r\n }\r\n slideNumber: number;\r\n}\r\n\r\nconst CarCarouselDialog = forwardRef((props , ref) => {\r\n const isMobile = useCheckMobileScreen();\r\n const {vehicle, slideNumber} = props;\r\n\r\n const [dialogVisible, setDialogVisible] = useState(false);\r\n const [carouselPage, setCarouselPage] = useState(1);\r\n\r\n const vehicleFromStore = useSelector((state: IAppState) => {\r\n return state.vehicle;\r\n });\r\n\r\n const getVariantImages = (index: number) => {\r\n return vehicleFromStore?.SelectedVariant?.VariantPicture != null && vehicleFromStore?.SelectedVariant?.VariantPicture.length > index\r\n ? vehicleFromStore?.SelectedVariant?.VariantPicture[index] : \"\";\r\n }\r\n const getExteriorImages = (index: number) => {\r\n return vehicleFromStore?.SelectedExterior?.ExteriorPicture != null && vehicleFromStore?.SelectedExterior?.ExteriorPicture.length > index\r\n ? vehicleFromStore?.SelectedExterior?.ExteriorPicture[index] : \"\";\r\n }\r\n\r\n const getInteriorImages = (index: number) => {\r\n //if (isMobile) {\r\n // return vehicleFromStore?.SelectedInterior?.InteriorPictureMobile != null && vehicleFromStore?.SelectedInterior?.InteriorPictureMobile.length > index\r\n // ? vehicleFromStore?.SelectedInterior?.InteriorPictureMobile[index] : \"\";\r\n //}\r\n //else {\r\n return vehicleFromStore?.SelectedInterior?.InteriorPicture != null && vehicleFromStore?.SelectedInterior?.InteriorPicture.length > index\r\n ? vehicleFromStore?.SelectedInterior?.InteriorPicture[index] : \"\";\r\n //}\r\n }\r\n\r\n useImperativeHandle(ref, () => ({\r\n handleOpen: (pageNumber: number) => {\r\n setDialogVisible(true);\r\n setCarouselPage(pageNumber);\r\n document.body.style.overflowY = 'hidden';\r\n document.body.style.paddingRight = '15px';\r\n },\r\n }));\r\n\r\n const handleClose = () => {\r\n setDialogVisible(false);\r\n document.body.style.overflowY = 'scroll';\r\n document.body.style.paddingRight = '0px';\r\n }\r\n\r\n const handleSelect = (selectedIndex: any, e: any) => {\r\n setCarouselPage(selectedIndex);\r\n };\r\n\r\n return (\r\n\r\n handleClose()}>\r\n \r\n :\r\n \"\"\r\n }\r\n nextIcon = {\r\n carouselPage < 4\r\n ?\r\n \"\"\r\n :\r\n \"\"\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n carouselPage != 4 && carouselPage != 5 && carouselPage != 6\r\n ?\r\n \"\" handleClose()} src={`${getCMSAssets()}/main/cross.svg`} />\r\n :\r\n \"\" handleClose()} src={`${getCMSAssets()}/main/cross-white.svg`} />\r\n }\r\n \r\n\r\n )\r\n})\r\n\r\nexport default CarCarouselDialog","import { getCMSAssets } from 'helpers/Uri'\r\nimport { Dialog } from 'primereact/dialog'\r\nimport React, { useEffect, useRef, useState } from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { Carousel } from 'react-bootstrap'\r\nimport CarCarouselDialog, { CarouselDialogRef } from './CarCarouselDialog'\r\nimport { useCheckMobileScreen } from 'helpers/useCheckMobileScreen';\r\nimport { isNil } from 'lodash';\r\nimport { IAppState } from 'model/IAppState';\r\nimport { classNames } from 'primereact/utils'\r\n\r\nconst CarCarousel = (props: any) => {\r\n\r\n const { variantAWD, exteriorColor, interiorColor, carouselInterval, images, mobileImages, isUseImages } = props;\r\n\r\n const isMobile = useCheckMobileScreen();\r\n\r\n\r\n const [vehicle, setVehicle] = useState({\r\n variantAWD: \"\",\r\n exteriorColor: \"\",\r\n interiorColor: \"\"\r\n });\r\n\r\n useEffect(() => {\r\n setVehicle({\r\n variantAWD: variantAWD,\r\n exteriorColor: exteriorColor,\r\n interiorColor: interiorColor\r\n })\r\n }, [])\r\n\r\n const vehicleFromStore = useSelector((state: IAppState) => {\r\n return state.vehicle;\r\n });\r\n\r\n const getVariantImages = (index: number) => {\r\n return vehicleFromStore?.SelectedVariant?.VariantPicture != null && vehicleFromStore?.SelectedVariant?.VariantPicture.length > index\r\n ? vehicleFromStore?.SelectedVariant?.VariantPicture[index] : \"\";\r\n }\r\n const getExteriorImages = (index: number) => {\r\n return vehicleFromStore?.SelectedExterior?.ExteriorPicture != null && vehicleFromStore?.SelectedExterior?.ExteriorPicture.length > index\r\n ? vehicleFromStore?.SelectedExterior?.ExteriorPicture[index] : \"\";\r\n }\r\n\r\n\r\n const getInteriorImages = (index: number) => {\r\n //if (isMobile) {\r\n // return vehicleFromStore?.SelectedInterior?.InteriorPictureMobile != null && vehicleFromStore?.SelectedInterior?.InteriorPictureMobile.length > index\r\n // ? vehicleFromStore?.SelectedInterior?.InteriorPictureMobile[index] : \"\";\r\n //}\r\n //else {\r\n return vehicleFromStore?.SelectedInterior?.InteriorPicture != null && vehicleFromStore?.SelectedInterior?.InteriorPicture.length > index\r\n ? vehicleFromStore?.SelectedInterior?.InteriorPicture[index] : \"\";\r\n //}\r\n }\r\n\r\n\r\n const carouselDialogRef = useRef(null);\r\n\r\n const directionButtons = (direction: any) => {\r\n return (\r\n \r\n {direction\r\n \r\n );\r\n };\r\n\r\n const handleOpen = (pageNumber: number) => {\r\n if (carouselDialogRef.current) {\r\n carouselDialogRef.current.handleOpen(pageNumber);\r\n\r\n\r\n }\r\n };\r\n\r\n\r\n setTimeout(() => {\r\n let indicators = document.getElementsByClassName(\"carousel-indicators\");\r\n for (let i = 0; i < indicators.length; i++) {\r\n indicators[i].setAttribute('data-dtm', 'gallery');\r\n indicators[i].classList.add('stat-dots');\r\n }\r\n }, 200);\r\n\r\n\r\n if (isUseImages) {\r\n if (!isMobile && !isNil(images) && images.length > 0) {\r\n return (\r\n <>\r\n \r\n {images.map((item: any, index: number) => {\r\n return (\r\n handleOpen(index)} key={item + index}>\r\n \r\n \r\n );\r\n })}\r\n \r\n \r\n );\r\n }\r\n else if (isMobile && !isNil(mobileImages) && mobileImages.length > 0) {\r\n return (\r\n <>\r\n \r\n {mobileImages.map((item: any, index: number) => {\r\n return (\r\n handleOpen(index)} key={item + index}>\r\n \r\n \r\n );\r\n })}\r\n \r\n \r\n );\r\n\r\n }\r\n else {\r\n return (<>);\r\n }\r\n }\r\n return (\r\n <>\r\n {/*todo: sample data. will remove it later*/}\r\n \r\n handleOpen(0)}\r\n >\r\n \r\n \r\n handleOpen(1)}\r\n >\r\n \r\n \r\n handleOpen(2)}\r\n >\r\n \r\n \r\n handleOpen(3)}\r\n >\r\n \r\n \r\n handleOpen(4)}\r\n >\r\n \r\n \r\n handleOpen(5)}\r\n >\r\n \r\n \r\n handleOpen(6)}\r\n >\r\n \r\n \r\n \r\n\r\n \r\n \r\n )\r\n}\r\n\r\nexport default CarCarousel","import React, { useEffect, useRef, useState } from 'react';\r\nimport {\r\n getCMSAssets\r\n} from 'helpers/Uri';\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { IAppState } from 'model/IAppState';\r\nimport CarCarousel from 'components/CarCarousel';\r\nimport { useCheckMobileScreen } from \"helpers/useCheckMobileScreen\";\r\nimport { isNil } from 'lodash';\r\nimport { v1 } from 'uuid';\r\n\r\nconst MainLeftImageGrid = (props: any) => {\r\n const isMobile = useCheckMobileScreen();\r\n const [imgExpand, setImgExpand] = useState(false);\r\n\r\n const topPanel = document.querySelector('.top-panel') as HTMLElement;\r\n const bottomPanel = document.querySelector('.bottom-panel') as HTMLElement;\r\n\r\n const [expanded, setExpanded] = useState({\r\n topExpand: false,\r\n bottomExpand: false,\r\n });\r\n\r\n //todo: remove it later\r\n //Customise Exterior & Interior & Variant AWD of Cadillac\r\n const [customize, setCustomize] = useState({\r\n variantAWD: 'Luxury',\r\n exteriorColor: 'Argent Silver Metallic',\r\n interiorColor: 'Juniper Nappa',\r\n addsOn: [],\r\n charging: [],\r\n customerType: 'business',\r\n paymentType: 'Cash',\r\n postcode: '',\r\n invalidPostcode: false,\r\n deliveryType: 'Pick Up',\r\n });\r\n\r\n const customerType = useSelector((state: IAppState) => {\r\n return state.customerType;\r\n });\r\n\r\n const [activeImage, setActiveImage] = useState(1);\r\n // const [shouldRevert, setShouldRevert] = useState(false);\r\n\r\n const sectionName = useSelector((state: IAppState) => {\r\n return state.mainSection;\r\n });\r\n const vehicleFromStore = useSelector((state: IAppState) => {\r\n return state.vehicle;\r\n });\r\n\r\n const mainPageNumber = useSelector((state: IAppState) => {\r\n return state.mainPageNumber.mainPageNumber;\r\n });\r\n\r\n const getVariantImages = (index: number) => {\r\n return vehicleFromStore?.SelectedVariant?.VariantPicture != null && vehicleFromStore?.SelectedVariant?.VariantPicture.length > index\r\n ? vehicleFromStore?.SelectedVariant?.VariantPicture[index] : \"\";\r\n }\r\n\r\n const getExteriorImages = (index: number) => {\r\n return vehicleFromStore?.SelectedExterior?.ExteriorPicture != null && vehicleFromStore?.SelectedExterior?.ExteriorPicture.length > index\r\n ? vehicleFromStore?.SelectedExterior?.ExteriorPicture[index] : \"\";\r\n }\r\n\r\n\r\n\r\n const getInteriorImages = (index: number) => {\r\n //interior does not have mobile vehicle image\r\n //if (isMobile) {\r\n // return vehicleFromStore?.SelectedInterior?.InteriorPictureMobile != null && vehicleFromStore?.SelectedInterior?.InteriorPictureMobile.length > index\r\n // ? vehicleFromStore?.SelectedInterior?.InteriorPictureMobile[index] : \"\";\r\n //}\r\n //else {\r\n return vehicleFromStore?.SelectedInterior?.InteriorPicture != null && vehicleFromStore?.SelectedInterior?.InteriorPicture.length > index\r\n ? vehicleFromStore?.SelectedInterior?.InteriorPicture[index] : \"\";\r\n //}\r\n }\r\n\r\n const [initialImage, setInitialImage] = useState({\r\n fullView: getExteriorImages(0) || '',\r\n frontView: getExteriorImages(1) || '',\r\n backView: getExteriorImages(2) || '',\r\n sideView: getExteriorImages(3) || '',\r\n });\r\n\r\n const [initialInteriorImage, setInitialInteriorImage] = useState({\r\n interirorFullView: getInteriorImages(0) || '',\r\n interirorFrontView: getInteriorImages(1) || '',\r\n interirorBackView: getInteriorImages(2) || '',\r\n });\r\n\r\n //Why set another set of carImage besides of initialImage, and why align 2 within a image div?\r\n //Because one covers another and purpose to provide color transition \r\n const [carImage, setCarImage] = useState({\r\n fullView: getExteriorImages(0) || '',\r\n frontView: getExteriorImages(1) || '',\r\n backView: getExteriorImages(2) || '',\r\n sideView: getExteriorImages(3) || '',\r\n });\r\n const [carInteriorImage, setCarInteriorImage] = useState({\r\n interirorFullView: getInteriorImages(0) || '',\r\n interirorFrontView: getInteriorImages(1) || '',\r\n interirorBackView: getInteriorImages(2) || '',\r\n });\r\n\r\n //***Core code***\r\n //Manipulates left image grid's transition effect could operate smoothly when Exterior or Interior color were changed\r\n useEffect(() => {\r\n\r\n if (vehicleFromStore?.SelectedExterior?.ExteriorColorName\r\n || (vehicleFromStore?.SelectedInterior?.VariantName)\r\n ) {\r\n setInitialImage({\r\n ...initialImage,\r\n fullView: initialImage.fullView,\r\n frontView: initialImage.frontView,\r\n backView: initialImage.backView,\r\n sideView: initialImage.sideView,\r\n });\r\n\r\n\r\n\r\n setCarImage({\r\n ...carImage,\r\n fullView: getExteriorImages(0),\r\n frontView: getExteriorImages(1),\r\n backView: getExteriorImages(2),\r\n sideView: getExteriorImages(3),\r\n });\r\n setActiveImage(2);\r\n\r\n\r\n setTimeout(() => {\r\n setInitialImage({\r\n ...initialImage,\r\n fullView: getExteriorImages(0),\r\n frontView: getExteriorImages(1),\r\n backView: getExteriorImages(2),\r\n sideView: getExteriorImages(3),\r\n });\r\n setActiveImage(1);\r\n }, 400);\r\n }\r\n\r\n }, [vehicleFromStore?.SelectedExterior?.ExteriorColorName, vehicleFromStore?.SelectedInterior?.VariantName]);\r\n\r\n useEffect(() => {\r\n if (vehicleFromStore?.SelectedInterior?.InteriorColorName) {\r\n setInitialInteriorImage({\r\n interirorFullView: initialInteriorImage.interirorFullView,\r\n interirorFrontView: initialInteriorImage.interirorFrontView,\r\n interirorBackView: initialInteriorImage.interirorBackView,\r\n });\r\n\r\n\r\n setCarInteriorImage({\r\n ...carImage,\r\n interirorFullView: getInteriorImages(0),\r\n interirorFrontView: getInteriorImages(1),\r\n interirorBackView: getInteriorImages(2),\r\n });\r\n\r\n setActiveImage(2);\r\n\r\n setTimeout(() => {\r\n setInitialInteriorImage({\r\n interirorFullView: getInteriorImages(0),\r\n interirorFrontView: getInteriorImages(1),\r\n interirorBackView: getInteriorImages(2),\r\n });\r\n\r\n setActiveImage(1);\r\n }, 550);\r\n }\r\n\r\n }, [vehicleFromStore?.SelectedInterior?.InteriorColorName]);\r\n\r\n const handleImgExpand = (selectedClassName: any) => {\r\n const imageDivs = document.querySelectorAll('.transition-group-full');\r\n\r\n imageDivs.forEach((element) => {\r\n if (selectedClassName == 'cadillac-full-0' || selectedClassName == 'cadillac-front-1' && topPanel && bottomPanel) {\r\n // topPanel.style.setProperty('--row-0-flex-basis', '100%');\r\n // bottomPanel.style.setProperty('--row-1-flex-basis', '0%');\r\n topPanel.classList.add('expand');\r\n topPanel.classList.remove('collapse');\r\n bottomPanel.classList.add('collapse');\r\n bottomPanel.classList.remove('expand');\r\n setExpanded({\r\n topExpand: true,\r\n bottomExpand: false,\r\n })\r\n } else if (selectedClassName == 'cadillac-back-2' || selectedClassName == 'cadillac-side-3' && topPanel && bottomPanel) {\r\n // topPanel.style.setProperty('--row-0-flex-basis', '0%');\r\n // bottomPanel.style.setProperty('--row-1-flex-basis', '100%');\r\n topPanel.classList.add('collapse');\r\n topPanel.classList.remove('expand');\r\n bottomPanel.classList.add('expand');\r\n bottomPanel.classList.remove('collapse');\r\n setExpanded({\r\n topExpand: false,\r\n bottomExpand: true,\r\n })\r\n }\r\n\r\n let tileIndex = parseInt(selectedClassName.split('-').pop());\r\n\r\n for (let i = 0; i <= 3; i++) {\r\n const value = i === tileIndex ? '100%' : '0%';\r\n document.documentElement.style.setProperty(`--tile-${i}-flex-basis`, value);\r\n }\r\n });\r\n\r\n setImgExpand(true);\r\n }\r\n\r\n const handleClose = () => {\r\n\r\n setExpanded({\r\n topExpand: false,\r\n bottomExpand: false,\r\n })\r\n setImgExpand(false);\r\n\r\n if (sectionName.mainSection == 'variant') {\r\n document.documentElement.style.setProperty(`--tile-0-flex-basis`, '72%');\r\n document.documentElement.style.setProperty(`--tile-1-flex-basis`, '28%');\r\n document.documentElement.style.setProperty(`--tile-2-flex-basis`, '50%');\r\n document.documentElement.style.setProperty(`--tile-3-flex-basis`, '50%');\r\n topPanel?.style.setProperty('--row-0-flex-basis', '60%');\r\n bottomPanel?.style.setProperty('--row-1-flex-basis', '40%');\r\n } else if (sectionName.mainSection == 'exterior') {\r\n document.documentElement.style.setProperty(`--tile-0-flex-basis`, '60%');\r\n document.documentElement.style.setProperty(`--tile-1-flex-basis`, '40%');\r\n document.documentElement.style.setProperty(`--tile-2-flex-basis`, '50%');\r\n document.documentElement.style.setProperty(`--tile-3-flex-basis`, '50%');\r\n topPanel?.style.setProperty('--row-0-flex-basis', '50%');\r\n bottomPanel?.style.setProperty('--row-1-flex-basis', '50%');\r\n } else if (sectionName.mainSection == 'interior') {\r\n document.documentElement.style.setProperty(`--tile-0-flex-basis`, '100%');\r\n document.documentElement.style.setProperty(`--tile-1-flex-basis`, '0%');\r\n document.documentElement.style.setProperty(`--tile-2-flex-basis`, '50%');\r\n document.documentElement.style.setProperty(`--tile-3-flex-basis`, '50%');\r\n topPanel?.style.setProperty('--row-0-flex-basis', '60%');\r\n bottomPanel?.style.setProperty('--row-1-flex-basis', '40%');\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n\r\n window.scrollTo(0, 0);\r\n\r\n return () => { }\r\n }, [])\r\n\r\n useEffect(() => {\r\n handleClose();\r\n }, [sectionName.mainSection])\r\n\r\n useEffect(() => {\r\n setCustomize({\r\n ...customize,\r\n customerType: customerType\r\n })\r\n }, [customerType]);\r\n\r\n\r\n\r\n return (\r\n
    \r\n {\r\n imgExpand == true && sectionName.mainSection != 'interior'\r\n ?\r\n
    \r\n handleClose()} className=\"img stat-icon-link\"\r\n data-dtm=\"gallery\"\r\n src={`${getCMSAssets()}/main/cross.svg`} alt=\"expand\" />\r\n
    \r\n :\r\n imgExpand == true && sectionName.mainSection == 'interior'\r\n ?\r\n
    \r\n handleClose()} className=\"img stat-icon-link\"\r\n data-dtm=\"gallery\"\r\n src={`${getCMSAssets()}/main/cross-white.svg`} alt=\"expand\" />\r\n
    \r\n :\r\n <>\r\n }\r\n\r\n {\r\n (sectionName.mainSection != 'accessories' && sectionName.mainSection != 'charging' && sectionName.mainSection != 'payment' && sectionName.mainSection != 'checkout' && sectionName.mainSection != 'delivery' && sectionName.mainSection != 'checkoutForm') && (\r\n <>\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n {\r\n sectionName.mainSection != 'interior'\r\n ?\r\n\r\n <>\r\n {initialImage.fullView && (\r\n imgExpand ? handleClose() : handleImgExpand('cadillac-full-0')}\r\n className=\"image stat-image-link\"\r\n data-dtm=\"gallery\"\r\n src={initialImage.fullView}\r\n alt=\"Vehicle Full View\"\r\n />\r\n )}\r\n {carImage.fullView && (\r\n imgExpand ? handleClose() : handleImgExpand('cadillac-full-0')}\r\n className=\"image stat-image-link\"\r\n data-dtm=\"gallery\"\r\n src={carImage.fullView || getExteriorImages(0)}\r\n alt=\"Vehicle Full View\"\r\n />\r\n )}\r\n \r\n :\r\n <>\r\n {initialInteriorImage.interirorFrontView && (\r\n imgExpand ? handleClose() : handleImgExpand('cadillac-full-0')}\r\n className=\"image stat-image-link\"\r\n data-dtm=\"gallery\"\r\n src={initialInteriorImage.interirorFrontView}\r\n alt=\"Vehicle Front View\"\r\n />\r\n )}\r\n\r\n {carInteriorImage.interirorFrontView && (\r\n imgExpand ? handleClose() : handleImgExpand('cadillac-full-0')}\r\n className=\"image stat-image-link\"\r\n data-dtm=\"gallery\"\r\n src={carInteriorImage.interirorFrontView || getExteriorImages(1)}\r\n alt=\"Vehicle Front View\"\r\n />\r\n )}\r\n \r\n }\r\n
    \r\n {/*{*/}\r\n {/* !imgExpand && sectionName.mainSection != 'interior'*/}\r\n {/* ?*/}\r\n {/*
    */}\r\n {/* handleImgExpand('cadillac-full-0')}*/}\r\n {/* className=\"img stat-icon-link\"*/}\r\n {/* data-dtm=\"gallery\"*/}\r\n {/* src={`${getCMSAssets()}/main/expand.svg`}*/}\r\n {/* alt=\"expand\"*/}\r\n {/* />*/}\r\n {/*
    */}\r\n {/* :*/}\r\n {/* !imgExpand && sectionName.mainSection == 'interior'*/}\r\n {/* ?*/}\r\n {/*
    */}\r\n {/* handleImgExpand('cadillac-full-0')}*/}\r\n {/* data-dtm=\"gallery\"*/}\r\n {/* className=\"img stat-icon-link\"*/}\r\n {/* src={`${getCMSAssets()}/main/expand-white.svg`}*/}\r\n {/* alt=\"expand\"*/}\r\n {/* />*/}\r\n {/*
    */}\r\n {/* :*/}\r\n {/* <>*/}\r\n\r\n {/*}*/}\r\n
    \r\n
    \r\n {\r\n sectionName.mainSection == 'global'\r\n ?\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    Range3
    \r\n
    \r\n
    {vehicleFromStore?.SelectedVariant?.Range}
    \r\n\r\n
    \r\n
    \r\n
    \r\n {/*
    15min charge at 190kW⁶
    */}\r\n
    Charge to 80%4
    \r\n\r\n
    \r\n
    {vehicleFromStore?.SelectedVariant?.Power}
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    0-100 km/h5
    \r\n
    \r\n
    {vehicleFromStore?.SelectedVariant?.KmHour}
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n :\r\n sectionName.mainSection == 'variant'\r\n ?\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    Range3
    \r\n
    \r\n
    {vehicleFromStore?.SelectedVariant?.Range}
    \r\n\r\n
    \r\n
    \r\n
    \r\n {/*
    15min charge at 190kW⁶
    */}\r\n
    Charge to 80%4
    \r\n\r\n
    \r\n
    {vehicleFromStore?.SelectedVariant?.Power}
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    0-100 km/h5
    \r\n
    \r\n
    {vehicleFromStore?.SelectedVariant?.KmHour}
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n :\r\n sectionName.mainSection == 'exterior'\r\n ?\r\n
    \r\n
    \r\n\r\n\r\n (imgExpand ? handleClose() : handleImgExpand('cadillac-front-1'))}\r\n\r\n >\r\n {initialImage.frontView && (\r\n \r\n )}\r\n {carImage.frontView && (\r\n \r\n )}\r\n
    \r\n
    \r\n {/*{*/}\r\n {/* !imgExpand && sectionName.mainSection != 'interior'*/}\r\n {/* ?*/}\r\n {/*
    */}\r\n {/* handleImgExpand('cadillac-front-1')}*/}\r\n {/* data-dtm=\"gallery\"*/}\r\n {/* className=\"img stat-icon-link\"*/}\r\n {/* src={`${getCMSAssets()}/main/expand.svg`}*/}\r\n {/* alt=\"Expand\"*/}\r\n {/* />*/}\r\n {/*
    */}\r\n {/* :*/}\r\n {/* !imgExpand && sectionName.mainSection == 'interior'*/}\r\n {/* ?*/}\r\n {/*
    */}\r\n {/* handleImgExpand('cadillac-full-0')}*/}\r\n {/* data-dtm=\"gallery\"*/}\r\n {/* className=\"img stat-icon-link\"*/}\r\n {/* src={`${getCMSAssets()}/main/expand-white.svg`}*/}\r\n {/* alt=\"Expand\"*/}\r\n {/* />*/}\r\n {/*
    */}\r\n {/* :*/}\r\n {/* <>*/}\r\n\r\n {/*}*/}\r\n
    \r\n :\r\n sectionName.mainSection == 'interior'\r\n ?\r\n
    \r\n
    \r\n \r\n {initialImage.frontView && (\r\n \r\n )}\r\n {carImage.frontView && (\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 sectionName.mainSection != 'interior'\r\n ?\r\n\r\n <>\r\n {initialImage.backView && (\r\n imgExpand ? handleClose() : handleImgExpand('cadillac-back-2')}\r\n data-dtm=\"gallery\"\r\n className=\"image stat-image-link\"\r\n src={initialImage.backView}\r\n alt=\"Vehicle Back View\"\r\n />\r\n )}\r\n {carImage.backView && (\r\n imgExpand ? handleClose() : handleImgExpand('cadillac-back-2')}\r\n data-dtm=\"gallery\"\r\n className=\"image stat-image-link\"\r\n src={carImage.backView}\r\n alt=\"Vehicle Back View\"\r\n />\r\n )}\r\n \r\n :\r\n <>\r\n {initialInteriorImage.interirorBackView && (\r\n imgExpand ? handleClose() : handleImgExpand('cadillac-back-2')}\r\n className=\"image stat-image-link\"\r\n data-dtm=\"gallery\"\r\n src={initialInteriorImage.interirorBackView}\r\n alt=\"Vehicle Back View\"\r\n />\r\n )}\r\n {carInteriorImage.interirorBackView && (\r\n imgExpand ? handleClose() : handleImgExpand('cadillac-back-2')}\r\n className=\"image stat-image-link\"\r\n data-dtm=\"gallery\"\r\n src={carInteriorImage.interirorBackView}\r\n alt=\"Vehicle Back View\"\r\n />\r\n )}\r\n \r\n }\r\n
    \r\n {/*{*/}\r\n {/* !imgExpand && sectionName.mainSection != 'interior'*/}\r\n {/* ?*/}\r\n {/*
    */}\r\n {/* handleImgExpand('cadillac-back-2')} className=\"img stat-icon-link\"*/}\r\n {/* alt=\"Expand\" data-dtm=\"gallery\"*/}\r\n {/* src={`${getCMSAssets()}/main/expand.svg`} />*/}\r\n {/*
    */}\r\n {/* :*/}\r\n {/* !imgExpand && sectionName.mainSection == 'interior'*/}\r\n {/* ?*/}\r\n {/*
    */}\r\n {/* handleImgExpand('cadillac-full-0')} className=\"img stat-icon-link\"*/}\r\n {/* alt=\"Expand\" data-dtm=\"gallery\"*/}\r\n {/* src={`${getCMSAssets()}/main/expand-white.svg`} />*/}\r\n {/*
    */}\r\n {/* :*/}\r\n {/* <>*/}\r\n\r\n {/*}*/}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n sectionName.mainSection != 'interior'\r\n ?\r\n <>\r\n {initialImage.sideView && (\r\n imgExpand ? handleClose() : handleImgExpand('cadillac-side-3')}\r\n className=\"image stat-image-link\"\r\n data-dtm=\"gallery\"\r\n src={initialImage.sideView}\r\n alt=\"Vehicle Side View\"\r\n />\r\n )}\r\n {carImage.sideView && (\r\n imgExpand ? handleClose() : handleImgExpand('cadillac-side-3')}\r\n className=\"image stat-image-link\"\r\n data-dtm=\"gallery\"\r\n src={carImage.sideView}\r\n alt=\"Vehicle Side View\"\r\n />\r\n )}\r\n \r\n :\r\n <>\r\n {initialInteriorImage.interirorFullView && (\r\n imgExpand ? handleClose() : handleImgExpand('cadillac-side-3')}\r\n className=\"image stat-image-link\"\r\n data-dtm=\"gallery\"\r\n src={initialInteriorImage.interirorFullView}\r\n alt=\"Vehicle Full View\"\r\n />\r\n )}\r\n {carInteriorImage.interirorFullView && (\r\n imgExpand ? handleClose() : handleImgExpand('cadillac-side-3')}\r\n className=\"image stat-image-link\"\r\n data-dtm=\"gallery\"\r\n src={carInteriorImage.interirorFullView}\r\n alt=\"Vehicle Full View\"\r\n />\r\n )}\r\n \r\n }\r\n
    \r\n {/*{*/}\r\n {/* !imgExpand && sectionName.mainSection != 'interior'*/}\r\n {/* ?*/}\r\n {/*
    */}\r\n {/* handleImgExpand('cadillac-side-3')} className=\"img stat-icon-link\"*/}\r\n {/* data-dtm=\"gallery\"*/}\r\n {/* alt=\"Expand\"*/}\r\n {/* src={`${getCMSAssets()}/main/expand.svg`} />*/}\r\n {/*
    */}\r\n {/* :*/}\r\n {/* !imgExpand && sectionName.mainSection == 'interior'*/}\r\n {/* ?*/}\r\n {/*
    */}\r\n {/* handleImgExpand('cadillac-full-0')} className=\"img stat-icon-link\"*/}\r\n {/* data-dtm=\"gallery\"*/}\r\n {/* alt=\"Expand\"*/}\r\n {/* src={`${getCMSAssets()}/main/expand-white.svg`} />*/}\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 (sectionName.mainSection == 'accessories' || sectionName.mainSection == 'charging' || sectionName.mainSection == 'payment' || sectionName.mainSection == 'delivery' || sectionName.mainSection == 'checkout' || sectionName.mainSection == 'checkoutForm') && (\r\n \r\n )\r\n }\r\n \r\n )\r\n}\r\n\r\nexport default MainLeftImageGrid","import { getCMSAssets } from 'helpers/Uri'\r\nimport { Dialog } from 'primereact/dialog'\r\nimport React, { useEffect, useRef, useState } from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { Carousel } from 'react-bootstrap'\r\nimport CarCarouselDialog, { CarouselDialogRef } from '../../components/CarCarouselDialog'\r\nimport { useCheckMobileScreen } from 'helpers/useCheckMobileScreen';\r\nimport { isNil } from 'lodash';\r\nimport { IAppState } from 'model/IAppState';\r\n\r\nconst MobileImageCarousel = (props: any) => {\r\n\r\n const { variantAWD, exteriorColor, interiorColor, carouselInterval, images, mobileImages, isUseImages, sectionStatus } = props;\r\n\r\n const isMobile = useCheckMobileScreen();\r\n\r\n\r\n const [vehicle, setVehicle] = useState({\r\n variantAWD: \"\",\r\n exteriorColor: \"\",\r\n interiorColor: \"\"\r\n });\r\n\r\n const [mobileCarouselPopup, setMobileCarouselPopup] = useState({\r\n isShowExteriorPopup: false,\r\n currentExteriorIndex: 0,\r\n isShowInteriorPopup: false,\r\n currentInteriorIndex: 0,\r\n isShowSummaryPopup: false,\r\n currentSummaryIndex: 0,\r\n })\r\n\r\n useEffect(() => {\r\n setVehicle({\r\n variantAWD: variantAWD,\r\n exteriorColor: exteriorColor,\r\n interiorColor: interiorColor\r\n })\r\n }, [])\r\n\r\n const vehicleFromStore = useSelector((state: IAppState) => {\r\n return state.vehicle;\r\n });\r\n\r\n const sectionName = useSelector((state: IAppState) => {\r\n return state.mainSection.mainSection;\r\n });\r\n\r\n const getVariantImages = (index: number) => {\r\n return vehicleFromStore?.SelectedVariant?.VariantPicture != null && vehicleFromStore?.SelectedVariant?.VariantPicture.length > index\r\n ? vehicleFromStore?.SelectedVariant?.VariantPicture[index] : \"\";\r\n }\r\n const getExteriorImages = (index: number) => {\r\n return vehicleFromStore?.SelectedExterior?.ExteriorPicture != null && vehicleFromStore?.SelectedExterior?.ExteriorPicture.length > index\r\n ? vehicleFromStore?.SelectedExterior?.ExteriorPicture[index] : \"\";\r\n }\r\n\r\n\r\n const getInteriorImages = (index: number) => {\r\n //if (isMobile) {\r\n // return vehicleFromStore?.SelectedInterior?.InteriorPictureMobile != null && vehicleFromStore?.SelectedInterior?.InteriorPictureMobile.length > index\r\n // ? vehicleFromStore?.SelectedInterior?.InteriorPictureMobile[index] : \"\";\r\n //}\r\n //else {\r\n return vehicleFromStore?.SelectedInterior?.InteriorPicture != null && vehicleFromStore?.SelectedInterior?.InteriorPicture.length > index\r\n ? vehicleFromStore?.SelectedInterior?.InteriorPicture[index] : \"\";\r\n //}\r\n }\r\n\r\n\r\n const carouselDialogRef = useRef(null);\r\n\r\n const directionButtons = (direction: any) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n };\r\n\r\n const handleOpen = (pageNumber: number) => {\r\n if (carouselDialogRef.current) {\r\n carouselDialogRef.current.handleOpen(pageNumber);\r\n }\r\n };\r\n\r\n const handleMobileCarouselPopup = (index: any, sectionName: any) => {\r\n if (sectionName == 'exterior') {\r\n setMobileCarouselPopup({\r\n ...mobileCarouselPopup,\r\n isShowExteriorPopup: true,\r\n currentExteriorIndex: index\r\n })\r\n } else if (sectionName == 'interior') {\r\n setMobileCarouselPopup({\r\n ...mobileCarouselPopup,\r\n isShowInteriorPopup: true,\r\n currentInteriorIndex: index\r\n })\r\n } else {\r\n setMobileCarouselPopup({\r\n ...mobileCarouselPopup,\r\n isShowSummaryPopup: true,\r\n currentSummaryIndex: index\r\n })\r\n }\r\n }\r\n\r\n const handleCloseMobileCarousel = (sectionName: any) => {\r\n if (sectionName == 'exterior') {\r\n setMobileCarouselPopup({\r\n ...mobileCarouselPopup,\r\n isShowExteriorPopup: false,\r\n })\r\n } else if (sectionName == 'interior') {\r\n setMobileCarouselPopup({\r\n ...mobileCarouselPopup,\r\n isShowInteriorPopup: false,\r\n })\r\n } else {\r\n setMobileCarouselPopup({\r\n ...mobileCarouselPopup,\r\n isShowSummaryPopup: false,\r\n })\r\n }\r\n } \r\n\r\n // const [ vehicleList, setVehicleList ] = useState([]);\r\n\r\n // const productTemplate = (product: any) => {\r\n // return (\r\n //
    \r\n //
    \r\n // \r\n //
    \r\n //
    \r\n // );\r\n // }\r\n\r\n // useEffect(() => {\r\n // const updateVehicleList = async () => {\r\n // let list = [];\r\n \r\n // list.push(await getExteriorImages(0));\r\n // list.push(await getExteriorImages(1));\r\n // list.push(await getExteriorImages(2));\r\n // list.push(await getExteriorImages(3)); // Awaiting completion before pushing\r\n \r\n // setVehicleList(list); \r\n // };\r\n \r\n // updateVehicleList();\r\n // }, [])\r\n\r\n console.log(mobileCarouselPopup.currentSummaryIndex)\r\n\r\n return (\r\n <>\r\n {\r\n sectionName == 'exterior' && !mobileCarouselPopup.isShowExteriorPopup\r\n ?\r\n
    \r\n
    handleMobileCarouselPopup(0, sectionName)}>\r\n \r\n
    \r\n
    handleMobileCarouselPopup(1, sectionName)}>\r\n \r\n
    \r\n
    handleMobileCarouselPopup(2, sectionName)}>\r\n \r\n
    \r\n
    handleMobileCarouselPopup(3, sectionName)}>\r\n \r\n
    \r\n
    \r\n :\r\n sectionName == 'exterior' && mobileCarouselPopup.isShowExteriorPopup\r\n ?\r\n
    \r\n
    \r\n }\r\n nextIcon = { \"\" } \r\n >\r\n handleOpen(0)}\r\n >\r\n \r\n \r\n handleOpen(1)}\r\n >\r\n \r\n \r\n handleOpen(2)}\r\n >\r\n \r\n \r\n handleOpen(3)}\r\n >\r\n \r\n \r\n \r\n \"\" handleCloseMobileCarousel(sectionName)} src={`${getCMSAssets()}/main/cross.svg`} />\r\n
    \r\n
    \r\n :\r\n sectionName == 'interior' && !mobileCarouselPopup.isShowInteriorPopup\r\n ?\r\n
    \r\n
    handleMobileCarouselPopup(0, sectionName)}>\r\n \r\n
    \r\n
    handleMobileCarouselPopup(1, sectionName)}>\r\n \r\n
    \r\n
    handleMobileCarouselPopup(2, sectionName)}>\r\n \r\n
    \r\n
    \r\n :\r\n sectionName == 'interior' && mobileCarouselPopup.isShowInteriorPopup\r\n ?\r\n
    \r\n
    \r\n }\r\n nextIcon = {\"\" }\r\n >\r\n handleOpen(0)}\r\n >\r\n \r\n \r\n handleOpen(1)}\r\n >\r\n \r\n \r\n handleOpen(2)}\r\n >\r\n \r\n \r\n \r\n \"\" handleCloseMobileCarousel(sectionName)} src={`${getCMSAssets()}/main/cross-white.svg`} />\r\n
    \r\n
    \r\n :\r\n sectionName != 'global' && sectionName != 'variant' && !mobileCarouselPopup.isShowSummaryPopup\r\n ?\r\n
    \r\n
    handleMobileCarouselPopup(0, 'summary')}>\r\n \r\n
    \r\n
    handleMobileCarouselPopup(1, 'summary')}>\r\n \r\n
    \r\n
    handleMobileCarouselPopup(2, 'summary')}>\r\n \r\n
    \r\n
    handleMobileCarouselPopup(3, 'summary')}>\r\n \r\n
    \r\n
    handleMobileCarouselPopup(4, 'summary')}>\r\n \r\n
    \r\n
    handleMobileCarouselPopup(5, 'summary')}>\r\n \r\n
    \r\n
    handleMobileCarouselPopup(6, 'summary')}>\r\n \r\n
    \r\n
    \r\n :\r\n sectionName != 'global' && sectionName != 'variant' && mobileCarouselPopup.isShowSummaryPopup\r\n ?\r\n
    \r\n
    \r\n \r\n :\r\n \"\" \r\n }\r\n nextIcon = {\r\n mobileCarouselPopup.currentSummaryIndex < 4\r\n ?\r\n \"\" \r\n :\r\n \"\" \r\n }\r\n >\r\n handleOpen(0)}\r\n accessKey='0'\r\n >\r\n \r\n \r\n handleOpen(1)}\r\n accessKey='1'\r\n >\r\n \r\n \r\n handleOpen(2)}\r\n accessKey='2'\r\n >\r\n \r\n \r\n handleOpen(3)}\r\n accessKey='3'\r\n >\r\n \r\n \r\n handleOpen(0)}\r\n accessKey='4'\r\n >\r\n \r\n \r\n handleOpen(1)}\r\n accessKey='5'\r\n >\r\n \r\n \r\n handleOpen(2)}\r\n accessKey='6'\r\n >\r\n \r\n \r\n \r\n \"\" handleCloseMobileCarousel('summary')} src={`${getCMSAssets()}/main/cross-white.svg`} />\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 MobileImageCarousel\r\n\r\n\r\n\r\n {/* {\r\n sectionStatus == 'all'\r\n ?\r\n \r\n handleOpen(0)}\r\n >\r\n \r\n \r\n handleOpen(1)}\r\n >\r\n \r\n \r\n handleOpen(2)}\r\n >\r\n \r\n \r\n handleOpen(3)}\r\n >\r\n \r\n \r\n handleOpen(4)}\r\n >\r\n \r\n \r\n handleOpen(5)}\r\n >\r\n \r\n \r\n handleOpen(6)}\r\n >\r\n \r\n \r\n \r\n :\r\n sectionStatus == 'exterior'\r\n ?\r\n \r\n handleOpen(0)}\r\n >\r\n \r\n \r\n handleOpen(1)}\r\n >\r\n \r\n \r\n handleOpen(2)}\r\n >\r\n \r\n \r\n handleOpen(3)}\r\n >\r\n \r\n \r\n \r\n :\r\n sectionStatus == 'interior'\r\n ?\r\n \r\n handleOpen(0)}\r\n >\r\n \r\n \r\n handleOpen(1)}\r\n >\r\n \r\n \r\n handleOpen(2)}\r\n >\r\n \r\n \r\n handleOpen(3)}\r\n >\r\n \r\n \r\n \r\n :\r\n <>\r\n } */}\r\n\r\n\r\n {/* {\r\n sectionStatus == 'exterior' || sectionStatus == 'all'\r\n ?\r\n <>\r\n handleOpen(0)}\r\n >\r\n \r\n \r\n handleOpen(1)}\r\n >\r\n \r\n \r\n handleOpen(2)}\r\n >\r\n \r\n \r\n handleOpen(3)}\r\n >\r\n \r\n \r\n \r\n :\r\n <>\r\n }\r\n {\r\n sectionStatus == 'interior' || sectionStatus == 'all'\r\n ?\r\n <>\r\n handleOpen(4)}\r\n >\r\n \r\n \r\n handleOpen(5)}\r\n >\r\n \r\n \r\n handleOpen(6)}\r\n >\r\n \r\n \r\n \r\n :\r\n <>\r\n } */}","import { useEffect, useRef, useState } from \"react\";\r\n\r\nexport const useScreenSize = () => {\r\n const [screenSize, setScreenSize] = useState<'small' | 'medium' | 'large' | null>(null);\r\n\r\n useEffect(() => {\r\n // Define media queries for small, medium, and large screens\r\n const smallScreen = window.matchMedia('(max-width: 768px)');\r\n const mediumScreen = window.matchMedia('(min-width: 769px) and (max-width: 1024px)');\r\n const largeScreen = window.matchMedia('(min-width: 1025px)');\r\n\r\n const handleResize = () => {\r\n if (smallScreen.matches) {\r\n setScreenSize('small');\r\n } else if (mediumScreen.matches) {\r\n setScreenSize('medium');\r\n } else if (largeScreen.matches) {\r\n setScreenSize('large');\r\n }\r\n };\r\n\r\n // Initial check\r\n handleResize();\r\n\r\n // Add event listeners for each media query\r\n smallScreen.addEventListener('change', handleResize);\r\n mediumScreen.addEventListener('change', handleResize);\r\n largeScreen.addEventListener('change', handleResize);\r\n\r\n return () => {\r\n smallScreen.removeEventListener('change', handleResize);\r\n mediumScreen.removeEventListener('change', handleResize);\r\n largeScreen.removeEventListener('change', handleResize);\r\n };\r\n }, []);\r\n\r\n return screenSize;\r\n};","import React, { useEffect, useRef, useState } from 'react';\r\nimport { Footer } from 'scene/Layout/Footer';\r\nimport { useNavigate } from 'react-router-dom';\r\nimport { MainLayoutPage } from 'LayoutPages';\r\nimport {\r\n currencyFormatWithBlank\r\n} from 'helpers/Uri';\r\nimport { Button, Carousel, Container } from 'react-bootstrap';\r\nimport { GlobalMenu } from 'scene/Layout/GlobalMenu';\r\nimport { MainMenu } from 'scene/Layout/MainMenu';\r\nimport Variant from './Main/variant/Variant';\r\nimport Exterior from './Main/exterior/Exterior';\r\nimport Interior from './Main/interior/Interior';\r\nimport Accessories from './Main/accessories/Accessories';\r\nimport Checkout from './Main/checkout/Checkout';\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { IAppState } from 'model/IAppState';\r\nimport { checkMainSection, setScrollPosition } from 'stores/ScrollPosition';\r\nimport CustomerPayment from './Main/checkout/CustomerPayment';\r\nimport Delivery from './Main/checkout/Delivery';\r\nimport PaymentOptions, { ChildRef } from '../components/PaymentOptions';\r\nimport CarCarousel from 'components/CarCarousel';\r\nimport CheckoutWaitlist from './Main/checkout/CheckoutWaitlist';\r\n//import CheckoutWaitlistNoPCICompliant from './Main/checkout/CheckoutWaitlistNoPCICompliant';\r\n//import CheckoutWaitlistDropin from './Main/checkout/CheckoutWaitlistCheckin';\r\nimport NoStorageReminder from 'components/NoInventoryReminder';\r\nimport { setTimeout } from 'timers';\r\nimport { hideGlobalPage } from 'stores/MainRightPage';\r\nimport { isNil } from 'lodash';\r\nimport * as selectedDeliveryStore from 'stores/UserSelectedDelivery';\r\n\r\nimport { useScroll } from './Main/ScrollToSection';\r\n\r\n\r\nimport * as rdEnum from 'helpers/enum';\r\nimport * as rdHelper from 'helpers/Uri';\r\nimport * as paymentOptionModel from 'model/IPaymentOptions';\r\nimport * as paymentOptionService from 'services/PaymentOptions';\r\nimport * as paymentOptionsStore from 'stores/PaymentOptions';\r\nimport * as paymentOptionStore from 'stores/PaymentOptions';\r\nimport * as driveawaycostHelper from 'businessHelpers/DriveawayCostHelper';\r\n\r\nimport Charging from './Main/charging/Charging';\r\nimport MainLeftImageGrid from './Main/MainLeftImageGrid';\r\nimport { setMainPageNumber } from 'stores/MainPageNumber';\r\nimport DriveawayPriceDialog from '../components/DriveawayPriceDialog';\r\nimport { useCheckMobileScreen } from 'helpers/useCheckMobileScreen';\r\nimport MobileImageCarousel from './Main/MobileImageCarousel';\r\nimport { useMsal } from \"@azure/msal-react\";\r\nimport { useScreenSize } from 'helpers/useSreenSize';\r\nimport { useSatellite } from 'helpers/useSatellite';\r\n\r\ninterface MainPageProps {\r\n // pageScroll: number;\r\n // isToPayment: boolean;\r\n linkKey: string | null,\r\n selectedCountry: string | null,\r\n selectedState: string | null,\r\n selectedVariant: string | null,\r\n selectedExterior: string | null,\r\n selectedInterior: string | null,\r\n isShowBottomPanel: boolean | null,\r\n}\r\n\r\nexport const MainPage: React.FC = ({ linkKey, selectedCountry, selectedState, selectedVariant, selectedExterior, selectedInterior, isShowBottomPanel }) => {\r\n // : React.FC = ({ pageScroll, isToPayment, linkKey, selectedVariant, selectedExterior, selectedInterior }) => {\r\n const { instance } = useMsal();\r\n const activeAccount = instance.getActiveAccount();\r\n const screenSize = useScreenSize();\r\n\r\n const navigate = useNavigate();\r\n const dispatch = useDispatch();\r\n const satellite = useSatellite();\r\n const rightSectionRef = useRef(null);\r\n\r\n // const variantRef = useRef(null);\r\n // const exteriorRef = useRef(null);\r\n // const interiorRef = useRef(null);\r\n // const financeRef = useRef(null);\r\n // const chargingRef = useRef(null);\r\n // const paymentRef = useRef(null);\r\n // const deliveryComponentRef = useRef(null);\r\n // const deliveryRef = useRef(null);\r\n // const checkoutRef = useRef(null);\r\n // const watchlistRef = useRef(null);\r\n\r\n const [imgExpand, setImgExpand] = useState(false);\r\n\r\n const topPanel = document.querySelector('.top-panel') as HTMLElement;\r\n const bottomPanel = document.querySelector('.bottom-panel') as HTMLElement;\r\n\r\n const [expanded, setExpanded] = useState({\r\n topExpand: false,\r\n bottomExpand: false,\r\n });\r\n\r\n const isMobile = useCheckMobileScreen();\r\n\r\n const isHideGlobal = useSelector((state: IAppState) => {\r\n return state.mainRightPage;\r\n });\r\n\r\n const paymentOpionsRef = useRef(null);\r\n\r\n //Customise Exterior & Interior & Variant AWD of Cadillac\r\n const [customize, setCustomize] = useState({\r\n variantAWD: 'Luxury',\r\n exteriorColor: 'Argent Silver Metallic',\r\n interiorColor: 'Juniper Nappa',\r\n addsOn: [],\r\n charging: [],\r\n customerType: 'business',\r\n paymentType: 'Cash',\r\n postcode: '',\r\n invalidPostcode: false,\r\n deliveryType: 'Pick Up',\r\n });\r\n\r\n const customerType = useSelector((state: IAppState) => {\r\n return state.customerType;\r\n });\r\n\r\n\r\n\r\n //paymentPageStatus shows the Visa payment page status, \r\n //if the first variant, exterior... section, its status is 0 and does not appear\r\n //if has inventory, it shows Visa input panel, its status is 1\r\n //if no inventory, click join the waitlist from the first page, its status is 2 and Visa input disappear.\r\n // const [paymentPageStatus, setPaymentPageStatus] = useState(0);\r\n const mainPageNumber = useSelector((state: IAppState) => {\r\n return state.mainPageNumber.mainPageNumber;\r\n });\r\n\r\n const [activeImage, setActiveImage] = useState(1);\r\n // const [shouldRevert, setShouldRevert] = useState(false);\r\n\r\n //store variables\r\n const selectedDeliveryFromStore = useSelector((state: IAppState) => {\r\n return state.selectedDelivery;\r\n });\r\n const selectedVehicleFromStore = useSelector((state: IAppState) => {\r\n return state.selectedVehicle;\r\n });\r\n const paymentOptions = useSelector((state: IAppState) => {\r\n return state.paymentOptions;\r\n });\r\n const sectionName = useSelector((state: IAppState) => {\r\n return state.mainSection;\r\n });\r\n const vehicleFromStore = useSelector((state: IAppState) => {\r\n return state.vehicle;\r\n });\r\n const customerTypeFromStore = useSelector((state: IAppState) => {\r\n return state.customerType;\r\n });\r\n const linkSourceFromStore = useSelector((state: IAppState) => {\r\n return state?.linkSource;\r\n });\r\n\r\n\r\n const [driveawayRequestData, setDriveawayRequestData] = useState(driveawaycostHelper.getInitDriveawayCostRequest());\r\n const abortControllerInitialValue: any = new (\r\n window as any\r\n ).AbortController();\r\n const [costAbortController, setCostAbortController] = useState(\r\n abortControllerInitialValue,\r\n );\r\n\r\n var currencyFormatter = new Intl.NumberFormat('en-AU', {\r\n style: 'currency',\r\n currency: 'AUD',\r\n });\r\n\r\n\r\n\r\n const handleCustomer = (type: any) => {\r\n setCustomize({\r\n ...customize,\r\n customerType: type\r\n })\r\n }\r\n\r\n const handlePayment = (type: any) => {\r\n setCustomize({\r\n ...customize,\r\n paymentType: type\r\n })\r\n }\r\n\r\n //const handlePostcode = (postcode: any) => {\r\n // setCustomize({\r\n // ...customize,\r\n // postcode: postcode\r\n // })\r\n //}\r\n\r\n const handleDelivery = (type: any) => {\r\n setCustomize({\r\n ...customize,\r\n deliveryType: type\r\n })\r\n }\r\n\r\n const handleImgExpand = (selectedClassName: any) => {\r\n const imageDivs = document.querySelectorAll('.transition-group-full');\r\n\r\n imageDivs.forEach((element) => {\r\n if (selectedClassName == 'cadillac-full-0' || selectedClassName == 'cadillac-front-1' && topPanel && bottomPanel) {\r\n // topPanel.style.setProperty('--row-0-flex-basis', '100%');\r\n // bottomPanel.style.setProperty('--row-1-flex-basis', '0%');\r\n topPanel.classList.add('expand');\r\n topPanel.classList.remove('collapse');\r\n bottomPanel.classList.add('collapse');\r\n bottomPanel.classList.remove('expand');\r\n setExpanded({\r\n topExpand: true,\r\n bottomExpand: false,\r\n })\r\n } else if (selectedClassName == 'cadillac-back-2' || selectedClassName == 'cadillac-side-3' && topPanel && bottomPanel) {\r\n // topPanel.style.setProperty('--row-0-flex-basis', '0%');\r\n // bottomPanel.style.setProperty('--row-1-flex-basis', '100%');\r\n topPanel.classList.add('collapse');\r\n topPanel.classList.remove('expand');\r\n bottomPanel.classList.add('expand');\r\n bottomPanel.classList.remove('collapse');\r\n setExpanded({\r\n topExpand: false,\r\n bottomExpand: true,\r\n })\r\n }\r\n\r\n let tileIndex = parseInt(selectedClassName.split('-').pop());\r\n\r\n for (let i = 0; i <= 3; i++) {\r\n const value = i === tileIndex ? '100%' : '0%';\r\n document.documentElement.style.setProperty(`--tile-${i}-flex-basis`, value);\r\n }\r\n });\r\n\r\n setImgExpand(true);\r\n }\r\n\r\n const handleClose = () => {\r\n\r\n setExpanded({\r\n topExpand: false,\r\n bottomExpand: false,\r\n })\r\n setImgExpand(false);\r\n\r\n if (sectionName.mainSection == 'variant') {\r\n document.documentElement.style.setProperty(`--tile-0-flex-basis`, '72%');\r\n document.documentElement.style.setProperty(`--tile-1-flex-basis`, '28%');\r\n document.documentElement.style.setProperty(`--tile-2-flex-basis`, '50%');\r\n document.documentElement.style.setProperty(`--tile-3-flex-basis`, '50%');\r\n topPanel?.style.setProperty('--row-0-flex-basis', '60%');\r\n bottomPanel?.style.setProperty('--row-1-flex-basis', '40%');\r\n } else if (sectionName.mainSection == 'exterior') {\r\n document.documentElement.style.setProperty(`--tile-0-flex-basis`, '60%');\r\n document.documentElement.style.setProperty(`--tile-1-flex-basis`, '40%');\r\n document.documentElement.style.setProperty(`--tile-2-flex-basis`, '50%');\r\n document.documentElement.style.setProperty(`--tile-3-flex-basis`, '50%');\r\n topPanel?.style.setProperty('--row-0-flex-basis', '50%');\r\n bottomPanel?.style.setProperty('--row-1-flex-basis', '50%');\r\n } else if (sectionName.mainSection == 'interior') {\r\n document.documentElement.style.setProperty(`--tile-0-flex-basis`, '100%');\r\n document.documentElement.style.setProperty(`--tile-2-flex-basis`, '50%');\r\n document.documentElement.style.setProperty(`--tile-3-flex-basis`, '50%');\r\n topPanel?.style.setProperty('--row-0-flex-basis', '60%');\r\n bottomPanel?.style.setProperty('--row-1-flex-basis', '40%');\r\n }\r\n\r\n // topPanel?.classList.remove('expand', 'collapse');\r\n // bottomPanel?.classList.remove('expand', 'collapse');\r\n\r\n }\r\n\r\n const scrollToSectionRef = (ref: React.RefObject) => {\r\n // const refArray = [variantRef, exteriorRef, interiorRef, financeRef, deliveryRef, checkoutRef];\r\n // refArray.forEach((refItem: any, index: any) => {\r\n // console.log(ref.current, refItem.current);\r\n // if (ref.current != null && refItem) {\r\n // if (ref.current == refItem.current) {\r\n // ref.current.style.marginTop = '80px';\r\n // } else {\r\n // ref.current.style.marginTop = '0px';\r\n // }\r\n // }\r\n // }); \r\n if (ref.current) {\r\n ref.current.scrollIntoView({\r\n behavior: 'smooth',\r\n block: 'start', // or 'center', 'end', 'nearest'\r\n inline: 'center', // or 'start', 'center', 'end'\r\n });\r\n }\r\n };\r\n\r\n //const [count, setCount] = useState({\r\n // maxRange: 126,\r\n // quarterCharge: 110,\r\n // zeroToHundredTime: 2.8,\r\n //});\r\n //const milestones = [\r\n // {\r\n // maxRange: 195,\r\n // quarterCharge: 110,\r\n // zeroToHundredTime: 2.8,\r\n // },\r\n // {\r\n // maxRange: 288,\r\n // quarterCharge: 135,\r\n // zeroToHundredTime: 3.4,\r\n // },\r\n // {\r\n // maxRange: 357,\r\n // quarterCharge: 158,\r\n // zeroToHundredTime: 3.9,\r\n // },\r\n // {\r\n // maxRange: 473,\r\n // quarterCharge: 180,\r\n // zeroToHundredTime: 4.6,\r\n // },\r\n // {\r\n // maxRange: 530,\r\n // quarterCharge: 200,\r\n // zeroToHundredTime: 5.3,\r\n // }\r\n //];\r\n //const [index, setIndex] = useState(0);\r\n\r\n // useEffect(() => {\r\n // if (shouldRevert) {\r\n // setTimeout(() => {\r\n // setActiveImage(1);\r\n // setShouldRevert(false);\r\n // }, 500); // Adjust the timing as needed\r\n // }\r\n // }, [shouldRevert]);\r\n\r\n // Function to open the dialog in the child component\r\n const openCashFinanceDialog = () => {\r\n if (paymentOpionsRef.current) {\r\n paymentOpionsRef.current.openDialog();\r\n //dispatch(paymentOptionStore.updateSelectedPaymentOptionAction(rdEnum.enumPaymentOptions.Cash));\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n\r\n window.scrollTo(0, 0);\r\n\r\n return () => { }\r\n }, [])\r\n\r\n //useEffect(() => {\r\n\r\n // if (sectionName.mainSection != 'variant') {\r\n // setCount({\r\n // maxRange: 126,\r\n // quarterCharge: 110,\r\n // zeroToHundredTime: 2.8,\r\n // });\r\n // setIndex(0);\r\n // return () => { }; // Cleanup function\r\n // }\r\n\r\n // const interval = setInterval(() => {\r\n // if (index < milestones.length - 1) {\r\n // setCount(milestones[index]);\r\n // setIndex(index + 1);\r\n // } else if (index === milestones.length - 1) {\r\n // setCount(milestones[milestones.length - 1]);\r\n // clearInterval(interval);\r\n // }\r\n // }, 30); // Change the interval duration as needed\r\n\r\n // return () => {\r\n // clearInterval(interval);\r\n // }// Cleanup on unmount or index change\r\n //}, [sectionName.mainSection, index]); // Only trigger when index or milestones change\r\n\r\n useEffect(() => {\r\n handleClose();\r\n }, [sectionName.mainSection])\r\n\r\n useEffect(() => {\r\n setCustomize({\r\n ...customize,\r\n customerType: customerType\r\n })\r\n }, [customerType]);\r\n\r\n\r\n useEffect(() => {\r\n if (\r\n (!isNil(linkKey) && linkKey != \"\")\r\n || (!isNil(selectedCountry) && selectedCountry != \"\")\r\n || (!isNil(selectedVariant) && selectedVariant != \"\")\r\n || (!isNil(selectedExterior) && selectedExterior != \"\")\r\n || (!isNil(selectedInterior) && selectedInterior != \"\")\r\n ) {\r\n dispatch(hideGlobalPage(false));\r\n // dispatch(setScrollPosition('main'));\r\n // dispatch(checkMainSection('variant'));\r\n // setPaymentPageStatus(0);\r\n dispatch(setMainPageNumber(0));\r\n toVariantWithLinkKey();\r\n // document.body.style.overflowY = \"scroll\";\r\n // document.body.style.paddingRight = \"0px\";\r\n\r\n } else if (sectionName != 'checkoutForm') {\r\n // setPaymentPageStatus(0);\r\n dispatch(setMainPageNumber(0));\r\n }\r\n\r\n else {\r\n dispatch(hideGlobalPage(true));\r\n dispatch(checkMainSection('checkoutForm'));\r\n // setPaymentPageStatus(1);\r\n dispatch(setMainPageNumber(1));\r\n // scrollToSection('checkoutForm');\r\n // document.body.style.overflowY = 'scroll';\r\n // document.body.style.paddingRight = '0px';\r\n }\r\n\r\n }, [linkKey, selectedVariant, selectedExterior, selectedInterior])\r\n\r\n const { scrollToSection, variantRef, exteriorRef, interiorRef, financeRef, chargingRef, paymentRef, deliveryComponentRef, deliveryRef, checkoutRef, watchlistRef } = useScroll();\r\n\r\n const toVariantWithLinkKey = () => {\r\n\r\n dispatch(hideGlobalPage(false))\r\n setTimeout(() => {\r\n scrollToSection('variant')\r\n }, 300);\r\n\r\n // setPaymentPageStatus(0);\r\n dispatch(setMainPageNumber(0));\r\n }\r\n\r\n const toConfiguration = () => {\r\n let currentUrl = window.location.href;\r\n\r\n if (currentUrl.includes(`?redirectPage=${rdEnum.enumRedirectPage.CheckoutPaymentPage}`)) {\r\n\r\n currentUrl = currentUrl.replace(`?redirectPage=${rdEnum.enumRedirectPage.CheckoutPaymentPage}`, '');\r\n\r\n // Update the browser's URL without reloading the page\r\n window.history.replaceState({}, '', currentUrl);\r\n }\r\n\r\n dispatch(hideGlobalPage(false))\r\n setTimeout(() => {\r\n scrollToSection('payment')\r\n }, 300);\r\n\r\n // setPaymentPageStatus(0);\r\n dispatch(setMainPageNumber(0));\r\n }\r\n\r\n //const handleDeliveryValidation = () => {\r\n // console.log(\"handleValidation\");\r\n //}\r\n\r\n const toWaitlistPage = () => {\r\n if (isNil(deliveryComponentRef?.current)) return;\r\n let invalidDelivery = deliveryComponentRef?.current?.getValidate();\r\n if (invalidDelivery) {\r\n //SetTimeout to avoid click checkout button, validate function contains\r\n //a setErrorMessage to cause re-render, then need to click checkout button\r\n //twice to get to Delivery section.\r\n setTimeout(() => {\r\n scrollToSection(rdEnum.enumScrollSection.Delivery);\r\n dispatch(checkMainSection('delivery'));\r\n }, 350);\r\n return;\r\n }\r\n\r\n deliveryComponentRef?.current?.dispatchRegoAddress();\r\n\r\n if (linkSourceFromStore == rdEnum.enumLinkSource.PrivateInterestLink) {\r\n dispatch(setMainPageNumber(rdEnum.enumPage.CheckoutPayment));\r\n }\r\n else {\r\n if (selectedVehicleFromStore.HasStock) {\r\n // setPaymentPageStatus(rdEnum.enumPage.CheckoutPayment);\r\n dispatch(setMainPageNumber(rdEnum.enumPage.CheckoutPayment));\r\n } else {\r\n // setPaymentPageStatus(rdEnum.enumPage.JoinWaitList);\r\n dispatch(setMainPageNumber(rdEnum.enumPage.JoinWaitList));\r\n }\r\n }\r\n\r\n dispatch(checkMainSection('checkoutForm'));\r\n dispatch(hideGlobalPage(true));\r\n if (watchlistRef.current)\r\n watchlistRef.current.style.display = 'block';\r\n\r\n setTimeout(() => {\r\n scrollToSection(rdEnum.enumScrollSection.CheckoutForm);\r\n }, 100);\r\n }\r\n\r\n //get drive away cost\r\n useEffect(() => {\r\n buildDriveawayCostRequest();\r\n\r\n }, [selectedDeliveryFromStore,\r\n selectedVehicleFromStore,\r\n customerTypeFromStore,\r\n ]);\r\n\r\n\r\n\r\n useEffect(() => {\r\n\r\n //to prevent multiple call\r\n if (driveawayRequestData.Country == \"\"\r\n || driveawayRequestData.VariantID == \"\" || driveawayRequestData.ExteriorID == \"\" || driveawayRequestData.InteriorID == \"\"\r\n || driveawayRequestData.SubTotal == 0\r\n ) {\r\n return;\r\n }\r\n doGetDriveAwayCost();\r\n }, [JSON.stringify(driveawayRequestData)])\r\n\r\n const buildDriveawayCostRequest = () => {\r\n //if is pickup, distance is from pickup location\r\n //if is delivery, distance is from DeliveryDistance\r\n let distance = 0;\r\n if (selectedDeliveryFromStore?.SelectedDeliveryOption == rdEnum.enumDeliveryOptions.Pickup) {\r\n distance = 0;\r\n }\r\n else {\r\n distance = selectedDeliveryFromStore?.DeliveryDistance || 0;\r\n }\r\n\r\n //default state is selected state on 1st popup\r\n //if has primary address, use primary address's state, postcode and suburb\r\n let state = \"\";\r\n let postcode = \"\";\r\n let suburb = \"\";\r\n if (!isNil(selectedDeliveryFromStore?.PrimaryAddress) && selectedDeliveryFromStore?.PrimaryAddress != \"\") {\r\n state = selectedDeliveryFromStore.PrimaryState || \"\";\r\n postcode = selectedDeliveryFromStore.PrimaryPostcode || \"\";\r\n suburb = selectedDeliveryFromStore.PrimarySuburb || \"\";\r\n }\r\n else {\r\n state = selectedDeliveryFromStore?.State?.code || \"\";\r\n postcode = \"\";\r\n suburb = \"\";\r\n }\r\n\r\n let requestData: paymentOptionModel.IDriveAwayRequest = {\r\n Country: selectedDeliveryFromStore.Country?.code || \"\",\r\n State: state || \"\",\r\n VariantName: selectedVehicleFromStore?.VariantName || \"\",\r\n VariantID: selectedVehicleFromStore?.VariantID || \"\",\r\n VariantPrice: selectedVehicleFromStore?.VariantBasePrice || 0,\r\n ExteriorID: selectedVehicleFromStore?.ExteriorID || \"\",\r\n ExteriorName: selectedVehicleFromStore?.Exterior || \"\",\r\n ExteriorPrice: selectedVehicleFromStore?.ExteriorPrice || 0,\r\n InteriorID: selectedVehicleFromStore?.InteriorID || \"\",\r\n InteriorName: selectedVehicleFromStore?.Interior || \"\",\r\n InteriorPrice: selectedVehicleFromStore?.InteriorPrice || 0,\r\n Options: selectedVehicleFromStore?.Options || [],\r\n SubTotal: selectedVehicleFromStore.Subtotal || 0,\r\n DeliveryOption: selectedDeliveryFromStore?.SelectedDeliveryOption || rdEnum.enumDeliveryOptions.Pickup,\r\n RegistrationType: customerTypeFromStore,\r\n Distance: distance,\r\n PostCode: postcode || \"\",\r\n Suburb: suburb || \"\",\r\n CallSource: \"Main Page\",\r\n IfCalculateFinance: true,\r\n DeliveryPrice: selectedDeliveryFromStore?.DeliveryPrice || 0,\r\n //VehicleLoading: vehicleFromStore.Loading,\r\n };\r\n setDriveawayRequestData(requestData);\r\n\r\n }\r\n\r\n\r\n const doGetDriveAwayCost = async () => {\r\n const abortController = new (window as any).AbortController();\r\n await setCostAbortController(abortController);\r\n\r\n try {\r\n let request = await paymentOptionService.getDriveAwayCost(driveawayRequestData, abortController.signal);\r\n if (request.status) {\r\n let driveAwayCostData = request.data.driveawayCostData;\r\n let driveAwayCost: paymentOptionModel.IDriveAwayCost = {\r\n LuxuryCarTax: driveAwayCostData.luxuryCarTax,\r\n LocalStampDuty: driveAwayCostData.localStampDuty,\r\n LocalRegistrationCost: driveAwayCostData.localRegistrationCost,\r\n LocalCTP: driveAwayCostData.localCTP,\r\n LocalPlateFee: driveAwayCostData.localPlateFee,\r\n HomeDelivery: driveAwayCostData.homeDelivery,\r\n DriveawayPrice: driveAwayCostData.driveawayPrice,\r\n OnRoadFee: driveAwayCostData.onRoadFeeSubtotal,\r\n SubTotal: driveAwayCostData.subTotal,\r\n VariantName: driveAwayCostData.variantName,\r\n VariantID: driveAwayCostData.variantID,\r\n VariantPrice: driveAwayCostData.variantPrice,\r\n ExteriorID: driveAwayCostData.exteriorID,\r\n ExteriorName: driveAwayCostData.exteriorName,\r\n ExteriorPrice: driveAwayCostData.exteriorColourPrice,\r\n InteriorID: driveAwayCostData.interiorID,\r\n InteriorName: driveAwayCostData.interiorName,\r\n InteriorPrice: driveAwayCostData.interiorColourPrice,\r\n GST: driveAwayCostData.gst,\r\n RoadUserChargers: driveAwayCostData.roadUserChargers,\r\n TyreStewardshipFee: driveAwayCostData.tyreStewardshipFee,\r\n Options: [],\r\n }\r\n dispatch(paymentOptionsStore.updateDriveawayCostAction(driveAwayCost, driveawayRequestData));\r\n\r\n //get loan payment\r\n let financeData = request.data.financeData;\r\n let updatedFinanceStore: paymentOptionModel.IFinance = {\r\n DownPayment: 0,\r\n FinalBalloonPayment: financeData.balloonAmount,\r\n ComparisonRate: financeData.comparisonRate,\r\n LoanPayment: financeData.loanPayment,\r\n Term: financeData.term,\r\n FrequencyName: financeData.frequencyName\r\n };\r\n dispatch(paymentOptionsStore.updateFinanceAction(updatedFinanceStore));\r\n\r\n }\r\n } catch (error: any) {\r\n if (error.name === 'AbortError') console.log('Request aborted!');\r\n } finally {\r\n //if (abortController.signal?.aborted)\r\n }\r\n }\r\n\r\n\r\n const [windowSize, setWindowSize] = useState({\r\n width: window.innerWidth,\r\n height: window.innerHeight,\r\n });\r\n useEffect(() => {\r\n // Function to update the state with current window size\r\n const handleResize = () => {\r\n setWindowSize({\r\n width: window.innerWidth,\r\n height: window.innerHeight,\r\n });\r\n };\r\n // Add event listener for window resize\r\n window.addEventListener('resize', handleResize);\r\n\r\n // Remove event listener on cleanup to avoid memory leaks\r\n return () => {\r\n window.removeEventListener('resize', handleResize);\r\n };\r\n }, []);\r\n\r\n useEffect(() => {\r\n setWindowDigitalData();\r\n }, [selectedDeliveryFromStore.Country?.code,\r\n selectedVehicleFromStore?.VariantName, selectedVehicleFromStore.VariantBasePrice,\r\n selectedVehicleFromStore?.Exterior, selectedVehicleFromStore?.Interior,\r\n paymentOptions.DriveAwayCost?.DriveawayPrice, windowSize, sectionName]);\r\n\r\n\r\n const [trackEvent, setTrackEvent] = useState(\"\");\r\n useEffect(() => {\r\n if (sectionName.mainSection == rdEnum.enumScrollSection.Global) {\r\n return;\r\n }\r\n else if (sectionName.mainSection == rdEnum.enumScrollSection.Payment\r\n || sectionName.mainSection == rdEnum.enumScrollSection.Delivery\r\n || sectionName.mainSection == rdEnum.enumScrollSection.CheckoutForm) {\r\n setTrackEvent(\"checkout\");\r\n }\r\n else {\r\n setTrackEvent(sectionName.mainSection);\r\n }\r\n \r\n }, [sectionName.mainSection])\r\n\r\n\r\n useEffect(()=> {\r\n satellite.trackEvent(\"config-step-load\");\r\n }, [trackEvent]);\r\n\r\n\r\n const setWindowDigitalData = () => {\r\n let level3 = sectionName.mainSection; \r\n if (sectionName.mainSection == rdEnum.enumScrollSection.Global) {\r\n window.digitalData = {\r\n pageInfo: { pageName: \"\" },\r\n internalCampaignInfo: {},\r\n articleInfo: {},\r\n visitorProfile: {},\r\n vehicleInfo: {},\r\n toolsInfo: {}\r\n };\r\n return;\r\n }\r\n else if (sectionName.mainSection == rdEnum.enumScrollSection.Payment\r\n || sectionName.mainSection == rdEnum.enumScrollSection.Delivery\r\n || sectionName.mainSection == rdEnum.enumScrollSection.CheckoutForm) {\r\n level3 = \"checkout\";\r\n }\r\n\r\n let pageName = \"\";\r\n if (selectedDeliveryFromStore.Country?.code == rdEnum.enumCountryCode.Australia) {\r\n pageName = \"ca:oc:au:en:t1:lyriq-configurator:2025-lyriq:\" + level3;\r\n }\r\n else if (selectedDeliveryFromStore.Country?.code == rdEnum.enumCountryCode.Australia) {\r\n pageName = \"ca:oc:nz:en:t1:lyriq-configurator:2025-lyriq:\" + level3;\r\n }\r\n\r\n \r\n\r\n let email: string = activeAccount?.idTokenClaims?.email as string;\r\n window.digitalData = {\r\n pageInfo: {\r\n pageName: pageName,\r\n siteSectionsLevel1: \"lyriq-configurator\",\r\n siteSectionsLevel2: \"2025-lyriq\",\r\n siteSectionsLevel3: level3,\r\n siteSectionsLevel4: \"undefined\",\r\n siteSectionsLevel5: \"lyriq-configurator:2025-lyriq:\" + level3,\r\n universalID: \"AB52350\",\r\n url: window.location.href,\r\n seoStrategyPageName: \"Shop Now | Cadillac\",\r\n pageType: \"tool\",\r\n languageSelected: \"english\",\r\n siteName: \"quantum_au\",\r\n brand: \"Cadillac\",\r\n country: selectedDeliveryFromStore.Country?.code,\r\n region: \"oc\",\r\n renderedExperience: screenSize,\r\n viewport: window.innerWidth + 'x' + window.innerHeight,\r\n orientation: window.innerWidth > window.innerHeight ? \"landscape\" : \"portrait\"\r\n },\r\n internalCampaignInfo: {},\r\n articleInfo: {},\r\n visitorProfile: {\r\n userProfileStateAuthentication: !isNil(email) && email != \"\" ? 'loggedIn' : 'loggedOut',\r\n userLoginStart: !isNil(email) && email != \"\" ? true : false,\r\n configProducts: null,\r\n configExtColor: \"\",\r\n configIntColorUpholstery: \"\",\r\n configModelPackageVersion: \"\",\r\n engine: \"\",\r\n transmission: \"\"\r\n },\r\n vehicleInfo: {\r\n vehicleType: \"suv\",\r\n modelName: \"lyriq\",\r\n modelYear: \"2025\",\r\n bodyStyle: \"lyriq\",\r\n trimLevel: selectedVehicleFromStore?.VariantName,\r\n condition: \"new\",\r\n vin: \"\",\r\n },\r\n toolsInfo: {\r\n configProducts: selectedVehicleFromStore?.VariantName,\r\n configExtColor: selectedVehicleFromStore?.Exterior,\r\n configIntColorUpholstery: selectedVehicleFromStore?.Interior || \"\",\r\n configModelPackageVersion: \"\",\r\n engine: \"\",\r\n transmission: \"\",\r\n wheels: \"AWD\",\r\n options: \"\",\r\n dealerName: \"\",\r\n dealerId: \"\",\r\n individualProductPrice: \"\",\r\n configuratorStartPrice: vehicleFromStore.SelectedVariant?.DriveawayPrice,\r\n configuratorEndPrice: paymentOptions.DriveAwayCost?.DriveawayPrice,\r\n }\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 !isMobile\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 !selectedVehicleFromStore.HasStock && linkSourceFromStore != rdEnum.enumLinkSource.PrivateInterestLink\r\n ?\r\n \r\n :\r\n <>\r\n }\r\n
    \r\n\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n {\r\n !selectedVehicleFromStore.HasStock && linkSourceFromStore != rdEnum.enumLinkSource.PrivateInterestLink\r\n ?\r\n
    \r\n {/*
    \r\n
    or
    \r\n
    */}\r\n \r\n
    \r\n :\r\n <>\r\n }\r\n
    \r\n\r\n
    \r\n {/**/}\r\n\r\n {/*paymentPageStatus={paymentPageStatus}*/}\r\n \r\n
    \r\n
    \r\n\r\n {/* General Submit Btn ( Known as 'Join our waitlist' or 'Continue to Checkout'), \r\n place in an upper level of each section, especially Delivery component, in order to validate easily */}\r\n\r\n {/* !isMobile || !isShowBottomPanel ? 'total-amount-container' : 'total-amount-container hide' */}\r\n
    \r\n
    \r\n
    \r\n
    \r\n {/*
    Driveaway Price
    */}\r\n \r\n {!isNil(paymentOptions?.DriveAwayCost?.DriveawayPrice) && paymentOptions?.DriveAwayCost?.DriveawayPrice != undefined ? (\r\n {currencyFormatter.format(paymentOptions?.DriveAwayCost?.DriveawayPrice)}\r\n ) : ()}\r\n
    \r\n
    \r\n {/*
    \r\n
    \r\n
    Finance
    \r\n or {!isNil(paymentOptions?.Finance?.LoanPayment) && paymentOptions?.Finance?.LoanPayment != undefined ? currencyFormatWithBlank(paymentOptions?.Finance?.LoanPayment) : \"\"}/month\r\n
    \r\n
    */}\r\n {/* {\r\n paymentOptions?.PaymentOption == 'Cash'\r\n ?\r\n <>\r\n
    \r\n
    \r\n \r\n {!isNil(paymentOptions?.DriveAwayCost?.DriveawayPrice) && paymentOptions?.DriveAwayCost?.DriveawayPrice != undefined ? (\r\n {currencyFormatter.format(paymentOptions?.DriveAwayCost?.DriveawayPrice)}\r\n ) : ()}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    Finance
    \r\n or {!isNil(paymentOptions?.Finance?.LoanPayment) && paymentOptions?.Finance?.LoanPayment != undefined ? currencyFormatWithBlank(paymentOptions?.Finance?.LoanPayment) : \"\"}/{paymentOptions?.Finance?.FrequencyName}\r\n
    \r\n
    \r\n \r\n :\r\n <>\r\n
    \r\n
    \r\n
    Finance
    \r\n or {!isNil(paymentOptions?.Finance?.LoanPayment) && paymentOptions?.Finance?.LoanPayment != undefined ? currencyFormatWithBlank(paymentOptions?.Finance?.LoanPayment) : \"\"}/{paymentOptions?.Finance?.FrequencyName}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n {!isNil(paymentOptions?.DriveAwayCost?.DriveawayPrice) && paymentOptions?.DriveAwayCost?.DriveawayPrice != undefined ? (\r\n {currencyFormatter.format(paymentOptions?.DriveAwayCost?.DriveawayPrice)}\r\n ) : ()}\r\n
    \r\n
    \r\n \r\n } */}\r\n\r\n
    \r\n
    \r\n
    Estimated Delivery\r\n {/* 3 */}\r\n
    \r\n {\r\n !selectedVehicleFromStore.HasStock && linkSourceFromStore != rdEnum.enumLinkSource.PrivateInterestLink\r\n ?\r\n Waitlisted\r\n :\r\n {vehicleFromStore?.SelectedInterior?.Available}\r\n }\r\n
    \r\n
    \r\n
    \r\n openCashFinanceDialog()}>Pricing & Finance Details\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","import { useDispatch, useSelector } from 'react-redux';\r\nimport { logoutClearAction } from 'stores/Store';\r\nimport { IAppState } from 'model/IAppState';\r\n\r\nimport { initPaymentOptions } from 'stores/PaymentOptions';\r\nimport { initSelectedVehicle } from 'stores/UserSelectedVehicleConfig';\r\n\r\nimport * as scheduleDeliveryHelper from 'businessHelpers/OrderScheduleDeliveryHelper';\r\nimport * as vehicleHelper from 'businessHelpers/VehicleHelper';\r\nimport * as defaultConfigHelper from 'businessHelpers/DefaultConfigHelper';\r\nimport * as selectedDeliveryHelper from 'businessHelpers/SelectedDeliveryhelper';\r\n\r\nexport const useClearUserDataStore = () => {\r\n const dispatch = useDispatch();\r\n\r\n\r\n const storeData = useSelector((appState: IAppState) => {\r\n return appState;\r\n });\r\n\r\n const clearData = () => {\r\n let newData: IAppState = {\r\n ...storeData,\r\n session: null,\r\n customerType: null,\r\n checkoutCustomer: null,\r\n defautConfig: defaultConfigHelper.getInitDefaultConfig(),\r\n orderCustomerDetails: null,\r\n orderDetails: null,\r\n orderDocuments:null,\r\n orderScheduleDelivery: scheduleDeliveryHelper.getInitScheduleDelivery(),\r\n paymentOptions: initPaymentOptions,\r\n selectedDelivery: selectedDeliveryHelper.getInitSelectedDelivery(),\r\n selectedVehicle: initSelectedVehicle,\r\n //vehicle: vehicleHelper.getInitVehicleStore() //todo: do we need to clear this?\r\n }\r\n dispatch(logoutClearAction(newData));\r\n }\r\n\r\n\r\n return {\r\n clearData\r\n }\r\n\r\n}","import React, { useRef, useEffect, useLayoutEffect, useState } from 'react';\r\nimport { useParams, useNavigate, Link } from 'react-router-dom';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { Row, Col, Navbar, Accordion } from 'react-bootstrap';\r\nimport { RiHomeLine } from 'react-icons/ri';\r\nimport { Button } from 'primereact/button';\r\nimport { PublicClientApplication, EventType } from \"@azure/msal-browser\";\r\nimport { msalConfig } from 'helpers/authConfig';\r\n\r\n\r\n\r\nimport {\r\n getFrontendUrl,\r\n getImageFileNameByID2,\r\n IImagesState,\r\n getImageLinkByID2,\r\n getMobileImageLinkByID2,\r\n getCMSAssets,\r\n getServiceUrlPara\r\n} from 'helpers/Uri';\r\n\r\nimport { clearSessionAction } from \"stores/Session\";\r\nimport { IAppState } from 'model/IAppState';\r\nimport { enumOrdersTabName } from \"helpers/enum\";\r\nimport { useCheckMobileScreen } from 'helpers/useCheckMobileScreen';\r\nimport { isNil } from 'lodash';\r\nimport { AiOutlineSearch, AiOutlineLogin, AiOutlineUser } from \"react-icons/ai\";\r\nimport { classNames } from 'primereact/utils';\r\nimport { InputText } from 'primereact/inputtext';\r\nimport { logout } from 'services/User';\r\n\r\n//import { useAnalyticsEventTracker } from 'helpers/useAnalyticsEventTracker';\r\nimport { Menu } from 'primereact/menu';\r\nimport { Dialog } from 'primereact/dialog';\r\nimport { setTimeout } from 'timers';\r\nimport { AuthenticatedTemplate, UnauthenticatedTemplate, useMsal } from '@azure/msal-react';\r\n//import { InteractionStatus } from \"@azure/msal-browser\";\r\n//import { loginRequest, b2cPolicies } from 'helpers/authConfig';\r\nimport { useAzureB2C } from 'helpers/useAzureB2C';\r\nimport { useClearUserDataStore } from 'helpers/useClearUserDataStore';\r\n\r\nimport * as userService from 'services/User';\r\n\r\n\r\nexport const UserPopUp = (props: any) => {\r\n const { isClickable } = props;\r\n\r\n const navigate = useNavigate();\r\n const dispatch = useDispatch();\r\n const azureB2C = useAzureB2C();\r\n const clearUserData = useClearUserDataStore();\r\n\r\n const [userVisible, setUserVisible] = useState(false);\r\n\r\n //const gaEventTracker = useAnalyticsEventTracker('Menu');\r\n\r\n const loginSession = useSelector((state: IAppState) => {\r\n return state.session;\r\n });\r\n\r\n const scrollPosition = useSelector((state: IAppState) => {\r\n return state.scrollPosition;\r\n });\r\n\r\n //images\r\n const initImage: IImagesState = {\r\n imageLoaded: false,\r\n imageList: []\r\n }\r\n const [images, setImages] = useState(initImage);\r\n\r\n\r\n const isMobile = useCheckMobileScreen();\r\n\r\n const [activeButton, setActiveButton] = useState('lyriq');\r\n\r\n const toSignIn = () => {\r\n azureB2C.signIn();\r\n }\r\n\r\n const toMyOrders = () => {\r\n navigate(`${getFrontendUrl()}/my-orders`);\r\n setUserVisible(false);\r\n document.body.style.overflowY = 'scroll';\r\n document.body.style.paddingRight = '0px';\r\n }\r\n\r\n const toProfiles = () => {\r\n navigate(`${getFrontendUrl()}/profile`);\r\n setUserVisible(false);\r\n document.body.style.overflowY = 'scroll';\r\n document.body.style.paddingRight = '0px';\r\n }\r\n\r\n const toPrivacy = () => {\r\n navigate(`${getFrontendUrl()}/privacy`);\r\n setUserVisible(false);\r\n document.body.style.overflowY = 'scroll';\r\n document.body.style.paddingRight = '0px';\r\n }\r\n\r\n const onGotoOrdersManagementPage = (tab: number) => {\r\n //buttonClickLog(\"Menu\", \"Orders\");\r\n navigate(`/member-orders/${tab}`);\r\n }\r\n const onGotoAdminOrdersManagementPage = (tab: number) => {\r\n navigate(`/manager-orders/${tab}`);\r\n }\r\n const onGotoUpdateProfilePage = () => {\r\n navigate(`/update-member-details`);\r\n }\r\n const onGotoUpdatePasswordPage = () => {\r\n navigate(`/update-password`);\r\n }\r\n\r\n const onLogOut = async () => {\r\n console.log(1);\r\n let response = await userService.clearSession();\r\n if (response.status) {\r\n setUserVisible(false);\r\n document.body.style.overflowY = 'scroll';\r\n document.body.style.paddingRight = '0px';\r\n clearUserData.clearData();\r\n azureB2C.signOut();\r\n }\r\n }\r\n\r\n const onUserOpen = () => {\r\n setUserVisible(true);\r\n document.body.style.overflowY = 'hidden';\r\n document.body.style.paddingRight = '15px';\r\n }\r\n\r\n const onUserHide = () => {\r\n setUserVisible(false);\r\n document.body.style.overflowY = 'scroll';\r\n document.body.style.paddingRight = '0px';\r\n }\r\n\r\n\r\n const menu = useRef(null);\r\n\r\n\r\n //const showSignPage = () => {\r\n // navigate(`/sign-in`);\r\n //}\r\n\r\n const customHeader = (\r\n
    \r\n
    \r\n onUserHide()}\r\n className=\"p-dialog-titlebar-close\"\r\n >\r\n \"\"\r\n \r\n
    \r\n
    \r\n \"\"\r\n Access your Cadillac
    vehicle orders and settings.
    \r\n
    \r\n
    \r\n );\r\n\r\n return (\r\n <>\r\n \r\n\r\n onUserHide()}\r\n className={`user-dialog ${!isNil(loginSession) ? 'logged-in-height' : ''}`}\r\n >\r\n \r\n
    \r\n
    \r\n
    toMyOrders()}>\r\n \r\n ORDERS\r\n
    \r\n
    toProfiles()}>\r\n \r\n PROFILE\r\n
    \r\n
    toPrivacy()}>\r\n \r\n PRIVACY\r\n
    \r\n
    \r\n
    \r\n
    onLogOut()}>\r\n \r\n SIGN OUT\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    toSignIn()}>\r\n Sign In\r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\n\r\n","import React, { useRef, useEffect, useLayoutEffect, useState } from 'react';\r\nimport { useParams, useNavigate, Link, useLocation } from 'react-router-dom';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { Row, Col, Navbar, Accordion } from 'react-bootstrap';\r\nimport { RiHomeLine } from 'react-icons/ri';\r\nimport { Button } from 'primereact/button';\r\nimport { PublicClientApplication, EventType } from \"@azure/msal-browser\";\r\nimport { msalConfig } from 'helpers/authConfig';\r\n\r\n\r\n\r\nimport {\r\n getFrontendUrl,\r\n getImageFileNameByID2,\r\n IImagesState,\r\n getImageLinkByID2,\r\n getMobileImageLinkByID2,\r\n getCMSAssets,\r\n getFrontendUrlWithSlash\r\n} from 'helpers/Uri';\r\n\r\nimport { clearSessionAction } from \"stores/Session\";\r\nimport { IAppState } from 'model/IAppState';\r\nimport { enumOrdersTabName } from \"helpers/enum\";\r\nimport { useCheckMobileScreen } from 'helpers/useCheckMobileScreen';\r\nimport { isNil } from 'lodash';\r\nimport { AiOutlineSearch, AiOutlineLogin, AiOutlineUser } from \"react-icons/ai\";\r\nimport { classNames } from 'primereact/utils';\r\nimport { InputText } from 'primereact/inputtext';\r\nimport { logout } from 'services/User';\r\n\r\n//import { useAnalyticsEventTracker } from 'helpers/useAnalyticsEventTracker';\r\nimport { Menu } from 'primereact/menu';\r\nimport { Dialog } from 'primereact/dialog';\r\nimport { setTimeout } from 'timers';\r\nimport { AuthenticatedTemplate, UnauthenticatedTemplate, useMsal } from '@azure/msal-react';\r\n//import { InteractionStatus } from \"@azure/msal-browser\";\r\n//import { loginRequest, b2cPolicies } from 'helpers/authConfig';\r\nimport { useAzureB2C } from 'helpers/useAzureB2C';\r\nimport { useClearUserDataStore } from 'helpers/useClearUserDataStore';\r\nimport { setGlobalDropdown } from 'stores/GlobalDropdown';\r\nimport { checkIsShowScrollBar } from 'stores/ScrollBarDisplay';\r\n\r\nexport const GlobalDrawer = (props: any) => {\r\n const { isClickable } = props;\r\n\r\n const navigate = useNavigate();\r\n const dispatch = useDispatch();\r\n const azureB2C = useAzureB2C();\r\n const clearUserData = useClearUserDataStore();\r\n\r\n const [drawerVisible, setDrawerVisible] = useState(false);\r\n\r\n //const gaEventTracker = useAnalyticsEventTracker('Menu');\r\n\r\n const loginSession = useSelector((state: IAppState) => {\r\n return state.session;\r\n });\r\n\r\n const scrollPosition = useSelector((state: IAppState) => {\r\n return state.scrollPosition;\r\n });\r\n\r\n //images\r\n const initImage: IImagesState = {\r\n imageLoaded: false,\r\n imageList: []\r\n }\r\n const [images, setImages] = useState(initImage);\r\n\r\n const location = useLocation();\r\n\r\n const isMobile = useCheckMobileScreen();\r\n\r\n const [activeButton, setActiveButton] = useState('lyriq');\r\n\r\n const toLearnMore = () => {\r\n window.open('https://www.cadillacanz.com/au-en/lyriq-electric-suv', '_blank');\r\n }\r\n\r\n const toConfigure = (e: any) => {\r\n setDrawerVisible(false);\r\n navigate(`${getFrontendUrlWithSlash()}`, { state: { closePreLoader: false, isFromOtherPage: false } });\r\n if (location.pathname == '/') {\r\n e.preventDefault();\r\n window.location.reload();\r\n }\r\n }\r\n\r\n const toInvertory = () => {\r\n setDrawerVisible(false);\r\n navigate(`${getFrontendUrl()}/new-vehicle-inventory`);\r\n dispatch(setGlobalDropdown(false, false));\r\n dispatch(checkIsShowScrollBar(true))\r\n }\r\n \r\n const toTestDrive = () => {\r\n setDrawerVisible(false);\r\n navigate(`${getFrontendUrl()}/test-drive`);\r\n dispatch(setGlobalDropdown(false, false));\r\n dispatch(checkIsShowScrollBar(true))\r\n }\r\n\r\n const toLatestNews = () => {\r\n window.open('https://www.cadillacanz.com/au-en/news', '_blank');\r\n }\r\n\r\n const toWhyCadillac = () => {\r\n window.open('https://www.cadillacanz.com/au-en/why-cadillac', '_blank');\r\n } \r\n\r\n const toBeIconic = () => {\r\n window.open('https://www.cadillacanz.com/au-en/be-iconic-series', '_blank');\r\n }\r\n \r\n const toEVLife = () => {\r\n window.open('https://www.cadillacanz.com/au-en/ev-life', '_blank');\r\n } \r\n\r\n const toUpdates = () => {\r\n window.open('https://www.cadillacanz.com/au-en/register', '_blank');\r\n } \r\n\r\n const toRegisterInterest = () => {\r\n window.open('https://www.cadillacanz.com/au-en/register', '_blank');\r\n }\r\n\r\n const toVisitUs = () => {\r\n window.open('https://www.cadillacanz.com/au-en/visit-a-showroom', '_blank');\r\n }\r\n \r\n const toFAQs = () => {\r\n window.open('https://www.cadillacanz.com/au-en/frequently-asked-questions', '_blank');\r\n }\r\n\r\n const toContactUs = () => {\r\n window.open('https://www.cadillacanz.com/au-en/contact-us', '_blank');\r\n } \r\n\r\n const toService = () => {\r\n window.open('https://www.cadillacanz.com/au-en/ownership-service', '_blank');\r\n setDrawerVisible(false);\r\n }\r\n\r\n const toWarranty = () => {\r\n window.open('https://www.cadillacanz.com/au-en/ownership-warranty', '_blank');\r\n setDrawerVisible(false);\r\n }\r\n \r\n const toSupport = () => {\r\n window.open('https://www.cadillacanz.com/au-en/ownership-roadside-assistance', '_blank');\r\n setDrawerVisible(false);\r\n }\r\n\r\n const toMyOrders = () => {\r\n navigate(`${getFrontendUrl()}/my-orders`);\r\n setDrawerVisible(false);\r\n }\r\n\r\n const toProfiles = () => {\r\n navigate(`${getFrontendUrl()}/profile`);\r\n setDrawerVisible(false);\r\n }\r\n\r\n const toPrivacy = () => {\r\n navigate(`${getFrontendUrl()}/privacy`);\r\n setDrawerVisible(false);\r\n }\r\n\r\n const onLogOut = async () => {\r\n setDrawerVisible(false);\r\n clearUserData.clearData();\r\n azureB2C.signOut();\r\n }\r\n\r\n const onDrawerOpen = () => {\r\n setDrawerVisible(true);\r\n // dispatch(setGlobalDropdown(false, false));\r\n }\r\n\r\n const onDrawerHide = () => {\r\n setDrawerVisible(false);\r\n }\r\n\r\n const customHeader = (\r\n
    \r\n
    \r\n onDrawerHide()}\r\n className=\"p-dialog-titlebar-close\"\r\n >\r\n \"\"\r\n \r\n
    \r\n
    \r\n );\r\n\r\n return (\r\n <>\r\n \r\n\r\n onDrawerHide()}\r\n className={`drawer-dialog ${!isNil(loginSession) ? 'logged-in-height' : ''}`}\r\n >\r\n
    \r\n
    \r\n LYRIQ\r\n
    \r\n
    toLearnMore()}>\r\n
    \r\n Learn More\r\n
    \r\n
    toConfigure(e)}>\r\n
    \r\n Build & Price\r\n
    \r\n
    toTestDrive()}>\r\n
    \r\n Test Drive\r\n
    \r\n \r\n {/*
    toCharge()}>\r\n
    \r\n Charge\r\n
    \r\n
    toOffering()}>\r\n
    \r\n Business offering\r\n
    \r\n
    toHelp()}>\r\n
    \r\n Help & support\r\n
    */}\r\n
    \r\n\r\n
    \r\n
    \r\n DISCOVER CADILLAC \r\n
    \r\n
    toLatestNews()}>\r\n
    \r\n Cadillac News\r\n
    \r\n
    toWhyCadillac()}>\r\n
    \r\n Why Cadillac\r\n
    \r\n
    toBeIconic()}>\r\n
    \r\n Be Iconic Series\r\n
    \r\n
    toEVLife()}>\r\n
    \r\n Your EV Life\r\n
    \r\n
    toUpdates()}>\r\n
    \r\n Get Updates\r\n
    \r\n {/*
    toRegisterInterest()}>\r\n
    \r\n Register Interest\r\n
    */}\r\n
    toVisitUs()}>\r\n
    \r\n Visit Us\r\n
    \r\n
    toFAQs()}>\r\n
    \r\n FAQs\r\n
    \r\n
    toContactUs()}>\r\n
    \r\n Contact Us\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n OWNERSHIP\r\n
    \r\n
    toService()}>\r\n
    \r\n Service\r\n
    \r\n
    toWarranty()}>\r\n
    \r\n Warranty\r\n
    \r\n
    toSupport()}>\r\n
    \r\n Roadside Assistance\r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\n\r\n","import { getCMSAssets, getFrontendUrl, getFrontendUrlWithSlash } from 'helpers/Uri'\r\nimport { useCheckMobileScreen } from 'helpers/useCheckMobileScreen'\r\nimport { IAppState } from 'model/IAppState'\r\nimport React, { useEffect, useState } from 'react'\r\nimport { Button, Col, Row } from 'react-bootstrap'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { useLocation, useNavigate } from 'react-router-dom'\r\nimport { setGlobalDropdown } from 'stores/GlobalDropdown'\r\n\r\nconst GlobalSelectVehicle = ({onChangeActiveBtn}: any) => {\r\n\r\n const [selectVehicleCategory, setselectVehicleCategory] = useState('ELECTRIC SUVS');\r\n\r\n const [isVehicleSelectionDisplay, setIsVehicleSelectionDisplay] = useState(false);\r\n\r\n const isMobile = useCheckMobileScreen();\r\n\r\n const menuGlobalBtn = useSelector((state: IAppState) => {\r\n return state.globalDropdown\r\n });\r\n\r\n const location = useLocation();\r\n\r\n const navigate = useNavigate();\r\n const dispatch = useDispatch();\r\n\r\n const onHidePanel = () => {\r\n onChangeActiveBtn('')\r\n }\r\n\r\n const handleVehicleSelectionDisplay = (category: string) => {\r\n setIsVehicleSelectionDisplay(true);\r\n setselectVehicleCategory(category);\r\n }\r\n\r\n const onHideVehicleSelectionPanel = () => {\r\n setIsVehicleSelectionDisplay(false);\r\n }\r\n\r\n const toConfigurate = (e: any) => {\r\n navigate(`${getFrontendUrlWithSlash()}`, { state: { closePreLoader: false, isFromOtherPage: false } });\r\n dispatch(setGlobalDropdown(false, false));\r\n if (location.pathname == '/') {\r\n e.preventDefault();\r\n window.location.reload();\r\n }\r\n }\r\n\r\n const toMOVPage = () => {\r\n window.open('https://www.cadillacanz.com/au-en/lyriq-electric-suv', '_blank');\r\n }\r\n\r\n const toShowroom = () => {\r\n window.open('https://www.cadillacanz.com/au-en/visit-a-showroom')\r\n }\r\n\r\n useEffect(() => {\r\n setIsVehicleSelectionDisplay(false);\r\n }, [menuGlobalBtn])\r\n\r\n return (\r\n
    \r\n {\r\n !isMobile\r\n ?\r\n
    \r\n
    BE ICONIC
    \r\n
    \r\n :\r\n <>\r\n }\r\n\r\n\r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    handleVehicleSelectionDisplay('ELECTRIC SUVS')}>\r\n
    \r\n
    ELECTRIC SUVS
    \r\n
    \r\n {\r\n isMobile\r\n ?\r\n \r\n :\r\n <>\r\n }\r\n
    \r\n {/*
    \r\n
    handleVehicleSelectionDisplay('V SERIES')}>\r\n
    \r\n
    V SERIES
    \r\n
    \r\n {\r\n isMobile\r\n ?\r\n \r\n :\r\n <>\r\n }\r\n
    */}\r\n
    \r\n
    \r\n
    \r\n
    toShowroom()}>CADILLAC EXPERIENCE CENTRES
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n {\r\n isMobile\r\n ?\r\n
    onHideVehicleSelectionPanel()}>\r\n \r\n Back\r\n
    \r\n :\r\n <>\r\n }\r\n \r\n \r\n
    \r\n
    toConfigurate(e)}>\r\n \r\n
    \r\n

    toConfigurate(e)}>BUILD & PRICE

    \r\n {/*

    From: $102,990

    */}\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 GlobalSelectVehicle","import { getCMSAssets, getFrontendUrl, getFrontendUrlWithSlash } from 'helpers/Uri'\r\nimport React, { useEffect, useRef } from 'react'\r\nimport { Button, Col, Row } from 'react-bootstrap'\r\nimport { useDispatch } from 'react-redux';\r\nimport { useLocation, useNavigate } from 'react-router-dom';\r\nimport { setGlobalDropdown } from 'stores/GlobalDropdown';\r\nimport { checkIsShowScrollBar } from 'stores/ScrollBarDisplay';\r\n\r\nconst GlobalShop = () => {\r\n\r\n const navigate = useNavigate();\r\n const dispatch = useDispatch();\r\n\r\n const location = useLocation();\r\n\r\n const toConfigure = (e: any) => {\r\n navigate(`${getFrontendUrlWithSlash()}`, { state: { closePreLoader: false, isFromOtherPage: false } });\r\n dispatch(setGlobalDropdown(false, false));\r\n //if (location.pathname == '/') { }\r\n e.preventDefault();\r\n window.location.reload();\r\n \r\n }\r\n\r\n const toInvertory = () => {\r\n navigate(`${getFrontendUrl()}/inventory?shopfront=1`, {\r\n state: { filterShow: true } \r\n });\r\n dispatch(setGlobalDropdown(false, false));\r\n dispatch(checkIsShowScrollBar(true))\r\n }\r\n\r\n const toTestDrive = () => {\r\n \r\n let url = `${getFrontendUrl()}/test-drive`;\r\n navigate(url);\r\n dispatch(setGlobalDropdown(false, false));\r\n dispatch(checkIsShowScrollBar(true))\r\n }\r\n\r\n const toCenters = () => {\r\n window.open('https://www.cadillacanz.com/au-en/visit-a-showroom')\r\n }\r\n\r\n const onHidePanel = () => {\r\n // onChangeActiveBtn('')\r\n }\r\n \r\n return (\r\n
    \r\n
    \r\n
    toConfigure(e)}>\r\n
    \r\n
    BUILD & PRICE
    \r\n
    \r\n
    toInvertory()}>\r\n
    \r\n
    EXPLORE INVENTORY
    \r\n
    \r\n
    toTestDrive()}>\r\n
    \r\n
    TEST DRIVE
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n {/*
    */}\r\n
    VISIT US
    \r\n
    \r\n
    \r\n
    \r\n
    toCenters()}>Cadillac Experience Centres
    \r\n
    \r\n
    \r\n \r\n
    \r\n )\r\n}\r\n\r\nexport default GlobalShop","import { useEffect, useState } from \"react\";\r\n\r\nexport const useCheckTabletScreen = () => {\r\n const [width, setWidth] = useState(window.innerWidth);\r\n const handleWindowSizeChange = () => {\r\n setWidth(window.innerWidth);\r\n }\r\n\r\n useEffect(() => {\r\n window.addEventListener('resize', handleWindowSizeChange);\r\n return () => {\r\n window.removeEventListener('resize', handleWindowSizeChange);\r\n }\r\n }, []);\r\n\r\n return (width >= 768 && width <= 1024);\r\n}\r\n","import React, { useRef, useEffect, useLayoutEffect, useState } from 'react';\r\nimport { useParams, useNavigate, Link } from 'react-router-dom';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { Row, Col, Navbar, Accordion } from 'react-bootstrap';\r\nimport { RiHomeLine } from 'react-icons/ri';\r\n\r\nimport {\r\n getFrontendUrl,\r\n getImageFileNameByID2,\r\n IImagesState,\r\n getImageLinkByID2,\r\n getMobileImageLinkByID2,\r\n getCMSAssets,\r\n getServiceUrlPara\r\n} from 'helpers/Uri';\r\n\r\nimport { clearSessionAction } from \"stores/Session\";\r\nimport { IAppState } from 'model/IAppState';\r\nimport { enumOrdersTabName } from \"helpers/enum\";\r\nimport { useCheckMobileScreen } from 'helpers/useCheckMobileScreen';\r\nimport { isNil } from 'lodash';\r\nimport { AiOutlineSearch, AiOutlineLogin, AiOutlineUser } from \"react-icons/ai\";\r\nimport { classNames } from 'primereact/utils';\r\nimport { InputText } from 'primereact/inputtext';\r\nimport { logout } from 'services/User';\r\nimport * as orderService from 'services/Order';\r\n\r\n//import { useAnalyticsEventTracker } from 'helpers/useAnalyticsEventTracker';\r\nimport { Menu } from 'primereact/menu';\r\nimport { UserPopUp } from 'scene/Users/UserPopUp';\r\nimport { setScrollPosition } from 'stores/ScrollPosition';\r\nimport { GlobalDrawer } from './GlobalDrawer';\r\nimport GlobalSelectVehicle from './GlobalSelectVehicle';\r\nimport { setGlobalDropdown } from 'stores/GlobalDropdown';\r\nimport GlobalShop from './GlobalShop';\r\nimport { checkIsShowScrollBar } from 'stores/ScrollBarDisplay';\r\nimport { useCheckTabletScreen } from 'helpers/useCheckTabletScreen';\r\n\r\n\r\nexport const GlobalMenu = (props: any) => {\r\n const navigate = useNavigate();\r\n const dispatch = useDispatch();\r\n\r\n const { activeBtn } = props;\r\n const [activeButton, setActiveButton] = useState('');\r\n const [isHasOrder, setIsHasOrder] = useState(false);\r\n const [isClickable, setIsClickable] = useState(true);\r\n const [shopDivHeight, setShopDivHeight] = useState(0);\r\n\r\n const isMobile = useCheckMobileScreen();\r\n const isTablet = useCheckTabletScreen();\r\n\r\n const menuRef = useRef(null);\r\n const vehicleRef = useRef(null);\r\n const shopRef = useRef(null);\r\n\r\n useEffect(() => {\r\n let timeoutId: number | undefined;;\r\n\r\n if (activeBtn != 'configure') {\r\n setIsClickable(true);\r\n } else {\r\n setIsClickable(false);\r\n // Re-enable clicks after 2.3 seconds\r\n timeoutId = window.setTimeout(() => {\r\n setIsClickable(true);\r\n }, 2500);\r\n }\r\n return () => {\r\n if (timeoutId) {\r\n clearTimeout(timeoutId);\r\n }\r\n };\r\n }, [activeBtn]);\r\n\r\n //Calculate the shop div height to set its top value\r\n useEffect(() => {\r\n if (shopRef.current) {\r\n setShopDivHeight(shopRef.current.offsetHeight);\r\n }\r\n }, [isMobile]);\r\n\r\n const menuGlobalBtn = useSelector((state: IAppState) => {\r\n return state.globalDropdown\r\n })\r\n\r\n const sessionFromStore = useSelector((state: IAppState) => {\r\n return state.session;\r\n });\r\n\r\n useEffect(() => {\r\n setIsHasOrder(false);\r\n\r\n var auCustomerID = sessionFromStore?.YanaCustomerID || \"\";\r\n var auCustomerNo = sessionFromStore?.YanaCustomerNo || \"\";\r\n var nzCustomerID = sessionFromStore?.NZYanaCustomerID || \"\";\r\n var nzCustomerNo = sessionFromStore?.NZYanaCustomerNo || \"\";\r\n\r\n if ((auCustomerID != \"\" && auCustomerNo != \"\") || (nzCustomerID != \"\" && nzCustomerNo != \"\")) {\r\n doGetMyOrders(auCustomerID, auCustomerNo, nzCustomerID, nzCustomerNo);\r\n }\r\n \r\n }, [sessionFromStore]);\r\n\r\n const doGetMyOrders = async (yanaCustomerID: string, yanaCustomerNo: string, nzCustomerID: string, nzCustomerNo: string) => {\r\n let response = await orderService.getOrderByYanaCustomerID(yanaCustomerID, yanaCustomerNo, nzCustomerID, nzCustomerNo);\r\n if (response.status) {\r\n if (!isNil(response.data) && response.data.length > 0) {\r\n setIsHasOrder(true);\r\n }\r\n }\r\n else {\r\n setIsHasOrder(false);\r\n }\r\n }\r\n\r\n const scrollPosition = useSelector((state: IAppState) => {\r\n return state.scrollPosition;\r\n });\r\n\r\n const checkMainSection = useSelector((state: IAppState) => {\r\n return state.mainSection\r\n });\r\n\r\n useEffect(() => {\r\n setActiveButton(activeBtn);\r\n }, [activeBtn]);\r\n\r\n const onChangeActiveBtn = (activeBtnValue: string) => {\r\n setActiveButton(activeBtnValue);\r\n dispatch(setGlobalDropdown(false, false))\r\n }\r\n\r\n //Except click outside Shop component and Menu & Drawer components, Shop panel will hide the collapse\r\n useEffect(() => {\r\n const handleClickOutside = (event: any) => {\r\n if ((menuGlobalBtn.shop == true && shopRef.current && !shopRef.current.contains(event.target))\r\n && menuRef.current && !menuRef.current.contains(event.target)\r\n ) {\r\n onChangeActiveBtn('');\r\n dispatch(checkIsShowScrollBar(true))\r\n }\r\n\r\n if ((menuGlobalBtn.vehicles == true && vehicleRef.current && !vehicleRef.current.contains(event.target))\r\n && menuRef.current && !menuRef.current.contains(event.target)\r\n ) {\r\n onChangeActiveBtn('');\r\n dispatch(checkIsShowScrollBar(true))\r\n }\r\n }\r\n\r\n document.addEventListener('mousedown', handleClickOutside);\r\n return () => {\r\n document.removeEventListener('mousedown', handleClickOutside);\r\n };\r\n }, [onChangeActiveBtn]);\r\n\r\n return (\r\n <>\r\n
    \r\n\r\n
    \r\n \r\n {\r\n !isMobile && !isTablet\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 dispatch(setScrollPosition('global'));\r\n // navigate(`/`, { state: { closePreLoader: false, isFromOtherPage: true } });\r\n window.open('https://www.cadillacanz.com/au-en');\r\n }}\r\n >\r\n cadillac logo\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 dispatch(setScrollPosition('global'));\r\n window.open('https://www.cadillacanz.com/au-en');\r\n }}\r\n >\r\n \"cadillac\r\n
    \r\n\r\n \r\n\r\n\r\n\r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n }\r\n\r\n \r\n \r\n\r\n \r\n\r\n
    \r\n \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n \r\n \r\n );\r\n};","import React, { useEffect, useRef, useState } from 'react';\r\nimport { useParams, Link, useNavigate, useLocation } from 'react-router-dom';\r\nimport { HelmetProvider, Helmet } from 'react-helmet-async';\r\nimport { css } from '@emotion/react';\r\nimport { GlobalMenu } from 'scene/Layout/GlobalMenu';\r\nimport { checkIsShowScrollBar } from 'stores/ScrollBarDisplay';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { IAppState } from 'model/IAppState';\r\nimport * as rdUserService from 'services/User';\r\nimport { isNil } from 'lodash';\r\nimport {\r\n getFrontendUrl,\r\n} from 'helpers/Uri';\r\n\r\ninterface Props {\r\n title?: string;\r\n children: React.ReactNode;\r\n sceneId?: string;\r\n langScreenID?: string;\r\n metaKeywords?: string;\r\n canonicalHref?: string;\r\n}\r\n\r\nexport const MainLayoutPage = ({ title, children, sceneId, langScreenID, metaKeywords, canonicalHref }: Props) => {\r\n const dispatch = useDispatch();\r\n const location = useLocation();\r\n const searchParams = new URLSearchParams(location.search);\r\n const navigate = useNavigate();\r\n const isScrollbarVisible = useSelector((state: IAppState) => {\r\n return state.isShowScrollBar.isShowScrollBar\r\n });\r\n\r\n\r\n\r\n const containerRef = useRef(null);\r\n\r\n useEffect(() => {\r\n if (containerRef.current) {\r\n containerRef.current.style.overflowY = isScrollbarVisible ? 'scroll' : 'hidden';\r\n // containerRef.current.style.paddingRight = isScrollbarVisible ? '15px' : '0px';\r\n }\r\n }, [isScrollbarVisible]);\r\n\r\n const doGetIsShowMaintenance = async (maintenanceCodeFromUrl: string) => {\r\n let response = await rdUserService.isShowMaintenance();\r\n if (response.status) {\r\n if (response.data) {\r\n\r\n let isShowMaintenance = response.data.isShow;\r\n let maintenanceTestingCode = response.data.maintenanceCode;\r\n if (isShowMaintenance && maintenanceTestingCode !== maintenanceCodeFromUrl) {\r\n navigate(`${getFrontendUrl()}/maintenance`);\r\n }\r\n }\r\n }\r\n\r\n }\r\n\r\n\r\n useEffect(() => {\r\n //remove chat box for maintenance page\r\n const chatID = \"divChatBox\";\r\n\r\n if (location.pathname.includes(\"/maintenance\")) {\r\n const chatele = document.getElementById(chatID);\r\n if (chatele) chatele.remove();\r\n }\r\n\r\n }, [location]);\r\n\r\n\r\n\r\n useEffect(() => {\r\n\r\n let maintenanceTestingCodeFromUrl = searchParams.get('maintenance') || \"\";\r\n let codeInStorage = localStorage.getItem(\"MaintenanceTestingCode\") || \"\";\r\n if (isNil(codeInStorage) || codeInStorage == \"\") {\r\n if (!isNil(maintenanceTestingCodeFromUrl) && maintenanceTestingCodeFromUrl != \"\") {\r\n localStorage.setItem(\"MaintenanceTestingCode\", maintenanceTestingCodeFromUrl || \"\");\r\n }\r\n }\r\n codeInStorage = localStorage.getItem(\"MaintenanceTestingCode\") || \"\";\r\n\r\n doGetIsShowMaintenance(codeInStorage || \"\");\r\n\r\n }, []);\r\n\r\n return (\r\n \r\n \r\n {/**/}\r\n {title}\r\n \r\n {/*
    */}\r\n {/* */}\r\n
    \r\n {children}\r\n
    \r\n {/*
    */}\r\n
    \r\n );\r\n\r\n}\r\n","import React, { useState, useEffect} from 'react';\r\nimport { Link, useNavigate } from 'react-router-dom';\r\nimport { useSelector } from 'react-redux';\r\nimport { Row, Col, Button } from 'react-bootstrap';\r\nimport { IAppState } from 'model/IAppState';\r\nimport * as rdEnum from 'helpers/enum';\r\n\r\n/*import { buttonClickLog } from 'services/Member';*/\r\n\r\nimport {\r\n IImagesState,\r\n getImageLinkByID2,\r\n getMobileImageLinkByID2,\r\n getCMSAssets,\r\n getServiceUrlPara\r\n} from 'helpers/Uri';\r\n\r\nimport { isNil } from 'lodash';\r\nimport moment from 'moment';\r\n\r\n\r\nexport const Footer = () => {\r\n const navigate = useNavigate();\r\n \r\n const [isOpen, setIsOpen] = useState(false);\r\n\r\n const selectedDeliveryFromStore = useSelector((state: IAppState) => {\r\n return state.selectedDelivery;\r\n });\r\n\r\n const handleActionOpen = () => {\r\n setIsOpen(!isOpen);\r\n }\r\n\r\n /*language*/\r\n useEffect(() => {\r\n \r\n }, []);\r\n\r\n //images\r\n const initImage: IImagesState = {\r\n imageLoaded: false,\r\n imageList: []\r\n }\r\n const [images, setImages] = useState(initImage);\r\n\r\n\r\n const loginSession = useSelector((state: IAppState) => {\r\n return state.session;\r\n });\r\n\r\n const toLatestNews = () => {\r\n window.open('https://www.cadillacanz.com/au-en/news', '_blank');\r\n }\r\n const toRegister = () => {\r\n window.open('https://www.cadillacanz.com/au-en/register', '_blank');\r\n } \r\n const towhyCadillac = () => {\r\n window.open('https://www.cadillacanz.com/au-en/why-cadillac', '_blank');\r\n } \r\n \r\n const toEVLife = () => {\r\n window.open('https://www.cadillacanz.com/au-en/ev-life', '_blank');\r\n } \r\n const toContactUs = () => {\r\n window.open('https://www.cadillacanz.com/au-en/contact-us', '_blank');\r\n } \r\n\r\n\r\n const toWorld = () => {\r\n window.open('https://www.cadillac.com/worldwide-websites')\r\n }\r\n const toCopyright = () => {\r\n window.open('https://www.gm.com/copyright-trademark')\r\n }\r\n const toPrivacyPolicy = () => {\r\n window.open('https://www.cadillacanz.com/au-en/privacy')\r\n }\r\n\r\n const toFacebook = () => {\r\n window.open('https://www.facebook.com/people/Cadillac/100093522254859/')\r\n }\r\n const toInstagram = () => {\r\n window.open(' https://www.instagram.com/cadillacanz/')\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

    FOLLOW US

    \r\n
    \r\n
    toInstagram()}>\r\n \"\"\r\n
    \r\n
    toFacebook()}>\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
    Disclaimers
    \r\n
    \r\n
    \r\n
    \r\n Driveaway Price1\r\n
    \r\n {\r\n selectedDeliveryFromStore.Country?.code == rdEnum.enumCountryCode.Australia\r\n ?\r\n
    \r\n This is the drive away price for the selected country, state or territory. It is based on the owner being a ‘rating one’ driver aged 40 with a good driving record. The drive away price displayed is inclusive of the vehicle purchase price, goods and services tax (GST), luxury car tax (LCT), stamp duty, compulsory third party insurance, registration, a plate fees and a GST-inclusive regional delivery fee if applicable. The final drive away price may differ depending on your individual circumstances. The price does not take into account any valid discount, rebate or promotion that may be available from time to time. Each country, state or territory may offer additional registration types which are not covered in this configurator, therefore your individual situation may vary and have an impact on the final Drive Away price. Cadillac reserves the right to vary the Drive away price at its discretion, including for changes in specifications or features. The final Drive Away price will be provided to you upon checkout.\r\n
    \r\n :\r\n
    \r\n 1This is the drive away price for the selected country, state or territory. The drive away price displayed is inclusive of the vehicle purchase price, goods and services tax (GST), compulsory third party insurance, registration, a plate fees and a GST-inclusive regional delivery fee if applicable. The final drive away price may differ depending on your individual circumstances. The price does not take into account any valid discount, rebate or promotion that may be available from time to time. Each country, state or territory may offer additional registration types which are not covered in this configurator, therefore your individual situation may vary and have an impact on the final Drive Away price. Cadillac reserves the right to vary the Drive away price at its discretion, including for changes in specifications or features. The final Drive Away price will be provided to you upon checkout.\r\n
    \r\n }\r\n \r\n
    \r\n
    \r\n
    \r\n Vehicle Availability2\r\n
    \r\n
    \r\n Availability and delivery dates are estimates only. Many factors impact vehicle delivery. Cadillac reserves the right to make changes to availability and delivery dates displayed throughout this configurator without notice.\r\n
    \r\n
    \r\n
    \r\n
    \r\n Range3\r\n
    \r\n
    \r\n Based on a full charge. The range of electric vehicles is determined using a uniform measurement procedure (WLTP). Range and energy consumption may vary under real-world conditions depending on driving style and various external factors. It is therefore not always possible to achieve the range according to WLTP. \r\n
    \r\n
    \r\n
    \r\n
    \r\n Charge to 80%4\r\n
    \r\n
    \r\n Based on a 2025 LYRIQ charging with a compatible 190kW DC charger. Actual charge times will vary based on battery condition, output of charger, vehicle settings and outside temperature. See the vehicle's Owner's Manual for additional limitations. \r\n
    \r\n
    \r\n
    \r\n
    \r\n 0-100 km/h5\r\n
    \r\n
    \r\n

    Figures based on GM testing in the United States in controlled environments. Actual figures may vary and are subject to environmental conditions.

    \r\n Vehicles shown throughout this experience are simulated local production vehicles intended for illustrative purposes. Cadillac has taken reasonable steps to ensure your digital configuration replicates the vehicle you receive in real life. Colours and other features may appear different in real life.\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n {/*

    © 2024 GENERAL MOTORS. ALL RIGHTS RESERVED.

    */}\r\n

    \r\n \r\n © 2024 GENERAL MOTORS. ALL RIGHTS RESERVED.\r\n \r\n  \r\n toWorld()}>\r\n CADILLAC WORLDWIDE\r\n  \r\n toPrivacyPolicy()}> \r\n PRIVACY POLICY\r\n  \r\n toCopyright()}>\r\n COPYRIGHT & TRADEMARK\r\n \r\n \r\n {/* toWorld()}>\r\n CADILLAC WORLDWIDE\r\n |  \r\n toCopyright()}>\r\n COPYRIGHT & TRADEMARK\r\n | \r\n toPrivacyPolicy()}> \r\n PRIVACY POLICY\r\n */}\r\n

    \r\n
    \r\n{/* \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    VEHICLE
    \r\n\r\n

    LYRIQ

    \r\n

    Configure

    \r\n

    Test Drive

    \r\n

    Charge

    \r\n \r\n \r\n
    CADILLAC
    \r\n\r\n

    About us

    \r\n

    Business offering

    \r\n \r\n \r\n
    CONTACT
    \r\n\r\n

    Help & Support

    \r\n

    Newsroom

    \r\n \r\n
    \r\n \r\n \r\n
    \r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n
    */}\r\n \r\n
    \r\n );\r\n \r\n \r\n};\r\n\r\n\r\n\r\n\r\n","import React, {\r\n useState,\r\n useEffect,\r\n useRef,\r\n} from 'react';\r\nimport { useParams, Link, useNavigate, useLocation } from 'react-router-dom';\r\n\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { isNil } from 'lodash';\r\n\r\nimport { checkMainSection, setScrollPosition } from 'stores/ScrollPosition';\r\nimport { GlobalPage } from 'pages/GlobalPage';\r\nimport { MainPage } from 'pages/MainPage';\r\nimport { IAppState } from 'model/IAppState';\r\nimport { hideGlobalPage } from 'stores/MainRightPage';\r\n\r\nimport * as rdEnum from 'helpers/enum';\r\nimport * as rdHelper from 'helpers/Uri';\r\nimport { GlobalMenu } from 'scene/Layout/GlobalMenu';\r\nimport * as selectedConfigModel from 'model/IUserSelectedConfig';\r\nimport * as defaultConfigModel from 'model/IDefaultConfig';\r\nimport * as interestModel from 'model/IInterest';\r\nimport * as interestService from 'services/Interest';\r\nimport * as defaultConfigStore from 'stores/DefaultConfig';\r\nimport * as defaultHelper from 'businessHelpers/DefaultConfigHelper';\r\nimport * as selectedConfigStore from 'stores/UserSelectedVehicleConfig';\r\nimport * as selectedDeliveryStore from \"stores/UserSelectedDelivery\";\r\nimport * as paymentOptionsStore from \"stores/PaymentOptions\";\r\nimport * as customerTypeStore from \"stores/CustomerType\";\r\nimport * as linkSourceStore from \"stores/LinkSource\";\r\nimport * as vehicleModel from 'model/IVehicle';\r\nimport { MainLayoutPage } from 'LayoutPages';\r\nimport MainLeftImageGrid from 'pages/Main/MainLeftImageGrid';\r\nimport GlobalSelectVehicle from 'scene/Layout/GlobalSelectVehicle';\r\nimport { setGlobalDropdown } from 'stores/GlobalDropdown';\r\nimport GlobalShop from 'scene/Layout/GlobalShop';\r\nimport { setMainPageNumber } from 'stores/MainPageNumber';\r\nimport { useScroll } from 'pages/Main/ScrollToSection';\r\nimport { Button } from 'react-bootstrap';\r\nimport ScrollToTop from 'helpers/ScrollToTop';\r\nimport { Footer } from 'scene/Layout/Footer';\r\nimport { useCheckTabletScreen } from 'helpers/useCheckTabletScreen';\r\nimport { useCheckMobileScreen } from 'helpers/useCheckMobileScreen';\r\ninterface IPreLoaderOpenProps {\r\n closePreLoader: boolean\r\n}\r\n\r\nexport const HomePage = () => {\r\n const dispatch = useDispatch();\r\n const navigate = useNavigate();\r\n\r\n const [isToPayment, setIsToPayment] = useState(false);\r\n\r\n const [isGlobalDialogOpen, setIsGlobalDialogOpen] = useState(true);\r\n const [expiryedLink, setExpiryedLink] = useState(false);\r\n\r\n const location = useLocation();\r\n const searchParams = new URLSearchParams(location.search);\r\n const redirectPage = searchParams.get('redirectPage');\r\n const selectedCountry = searchParams.get('selectedCountry');\r\n const selectedState = searchParams.get('selectedState');\r\n const selectedVariant = searchParams.get('selectedVariant');\r\n const selectedExterior = searchParams.get('selectedExterior');\r\n const selectedInterior = searchParams.get('selectedInterior');\r\n\r\n const isCheckoutPaymentPage = redirectPage && redirectPage == rdEnum.enumRedirectPage.CheckoutPaymentPage;\r\n\r\n const isMobile = useCheckMobileScreen();\r\n const isTablet = useCheckTabletScreen();\r\n\r\n const { linkKey } = useParams();\r\n\r\n const isHideGlobal = useSelector((state: IAppState) => {\r\n return state.mainRightPage;\r\n });\r\n\r\n const sectionName = useSelector((state: IAppState) => {\r\n return state.mainSection;\r\n });\r\n const mainPageNumber = useSelector((state: IAppState) => {\r\n return state.mainPageNumber.mainPageNumber\r\n })\r\n const defaultConfigFromStore = useSelector((state: IAppState) => {\r\n return state.defautConfig;\r\n });\r\n const menuGlobalBtn = useSelector((state: IAppState) => {\r\n return state.globalDropdown\r\n })\r\n\r\n const scrollToSectionRef = (ref: React.RefObject) => {\r\n if (ref.current) {\r\n ref.current.scrollIntoView({\r\n // behavior: 'instant', \r\n block: 'start', // or 'center', 'end', 'nearest'\r\n inline: 'center', // or 'start', 'center', 'end'\r\n });\r\n }\r\n\r\n //dispatch(hideGlobalPage(true));\r\n // dispatch(setScrollPosition('global'));\r\n dispatch(checkMainSection('global'));\r\n // setScrollOpacity(0.00); // Reset opacity to 0 if less than 400\r\n setScrollGlobalOpacity(1.00);\r\n };\r\n\r\n useEffect(() => {\r\n\r\n if (\r\n (!isNil(linkKey) && linkKey != \"\" || isCheckoutPaymentPage)\r\n || (!isNil(selectedVariant) && selectedVariant != \"\")\r\n ) {\r\n setIsGlobalDialogOpen(false);\r\n }\r\n\r\n // if (!isNil(linkKey) && linkKey != \"\") {\r\n // dispatch(hideGlobalPage(false));\r\n // dispatch(setScrollPosition('main'));\r\n // dispatch(checkMainSection('variant'));\r\n // document.body.style.overflowY = \"scroll\";\r\n // document.body.style.paddingRight = \"0px\";\r\n // // return;\r\n // }\r\n\r\n let animatedElements = document.querySelectorAll('.animate-item');\r\n\r\n //Scroll to top instantly without any animation\r\n // if (isMobile) {\r\n // window.scrollTo({top: 0, behavior: 'instant'} as any);\r\n // } else {\r\n // document.querySelector(\"body\")?.scrollTo({ top: 0, behavior: 'instant' } as any);\r\n // }\r\n\r\n scrollToSectionRef(containerRef);\r\n\r\n const thresholdValue = 0.5;\r\n\r\n const observer = new IntersectionObserver((entries) => {\r\n entries.forEach((entry) => {\r\n if (entry.isIntersecting) {\r\n entry.target.classList.add('animate-active');\r\n } else {\r\n entry.target.classList.remove('animate-active');\r\n }\r\n })\r\n }, {\r\n threshold: thresholdValue,\r\n });\r\n\r\n for (let i = 0; i < animatedElements.length; i++) {\r\n const el = animatedElements[i];\r\n observer.observe(el);\r\n }\r\n }, [isMobile]);\r\n\r\n const containerRef = useRef(null);\r\n\r\n // const [y, setY] = useState(window.scrollY);\r\n // const [isScrollDown, setIsScrollDown] = useState(0);\r\n\r\n // const [pageScroll, setPageScroll] = useState(0);\r\n\r\n const [scrollGlobalOpacity, setScrollGlobalOpacity] = useState(1.00);\r\n\r\n const [scrollOpacity, setScrollOpacity] = useState(0.00);\r\n\r\n useEffect(() => {\r\n if (isCheckoutPaymentPage) {\r\n dispatch(setScrollPosition('payment'));\r\n dispatch(setMainPageNumber(1));\r\n }\r\n }, [])\r\n\r\n\r\n useEffect(() => {\r\n //from inventory page\r\n if (!isNil(selectedVariant) && selectedVariant != \"\") {\r\n let defaultConfig: defaultConfigModel.IDefaultConfig = {\r\n Country: selectedCountry,\r\n State: selectedState,\r\n VariantName: selectedVariant,\r\n ExteriorName: selectedExterior,\r\n InteriorName: selectedInterior,\r\n Options: [],\r\n Loaded: false,\r\n LinkKey: null,\r\n ExpiryDateText: null,\r\n }\r\n dispatch(defaultConfigStore.setDefaultConfigAction(defaultConfig));\r\n dispatch(linkSourceStore.setLinkSourceAction(null));\r\n\r\n let delivery: selectedConfigModel.ISelectedDelivery = {\r\n Country: {\r\n name: selectedCountry == rdEnum.enumCountryCode.Australia ? \"Australia\" : \"New Zealand\",\r\n code: selectedCountry || \"\"\r\n },\r\n State: {\r\n name: selectedState || \"\",\r\n code: selectedState || \"\"\r\n },\r\n SelectedPickupLocation: null,\r\n SelectedDeliveryOption: null,\r\n SelectedDeliveryFullAddress: null,\r\n SelectedDeliveryPostcode: null,\r\n SelectedDeliveryState: null,\r\n SelectedDeliverySuburb: null,\r\n //EstDeliveryDate: null,\r\n PrimaryAddress: null,\r\n PrimaryPostcode: null,\r\n PrimarySuburb: null,\r\n PrimaryState: null,\r\n InvalidPrimaryAddress: null,\r\n DeliveryAvailable: null,\r\n DeliveryPrice: null,\r\n DeliveryPriceErrorCode: null,\r\n DeliveryDistance: null,\r\n PickupLocationName: null,\r\n };\r\n dispatch(selectedDeliveryStore.updateDeliveryAction(delivery));\r\n\r\n //clear payment options\r\n dispatch(paymentOptionsStore.clearPaymentOptionsAction());\r\n\r\n //default set customer type as private customer\r\n dispatch(customerTypeStore.setCustomerTypeAction(rdEnum.enumClientTypes.Private.Code));\r\n }\r\n else {\r\n if (!isNil(linkKey) && linkKey != \"\") {\r\n if (!isNil(linkKey) && linkKey != \"\") {\r\n doGetInterest();\r\n }\r\n else {\r\n dispatch(defaultConfigStore.setDefaultConfigAction(defaultHelper.getInitDefaultConfig()));\r\n dispatch(linkSourceStore.setLinkSourceAction(null));\r\n }\r\n }\r\n }\r\n\r\n }, [selectedVariant, linkKey]);\r\n\r\n\r\n //useEffect(() => {\r\n // //from interest link from email\r\n // if (!isNil(linkKey) && linkKey != \"\") {\r\n // doGetInterest();\r\n // }\r\n // else {\r\n // dispatch(defaultConfigStore.setDefaultConfigAction(defaultHelper.getInitDefaultConfig()));\r\n // dispatch(linkSourceStore.setLinkSourceAction(null));\r\n // }\r\n //}, [linkKey]);\r\n\r\n const doGetInterest = async () => {\r\n let response = await interestService.getInterest(linkKey || \"\");\r\n if (response.status) {\r\n\r\n let interestBackendData = response.data;\r\n if (interestBackendData.isExpired) {\r\n //expiry redirect to normal configuration page\r\n setExpiryedLink(true);\r\n setTimeout(() => {\r\n let url = rdHelper.getFrontendOrigin();\r\n window.location.href = url;\r\n }, 3000);\r\n\r\n return;\r\n }\r\n setExpiryedLink(false);\r\n if (defaultConfigFromStore?.LinkKey != linkKey) {\r\n let defaultConfig: defaultConfigModel.IDefaultConfig = {\r\n Country: interestBackendData.country,\r\n State: interestBackendData.state,\r\n VariantName: interestBackendData.variantName,\r\n ExteriorName: interestBackendData.exteriorName,\r\n InteriorName: interestBackendData.interiorName,\r\n Options: getInterestOptions(interestBackendData.options),\r\n Loaded: false,\r\n LinkKey: linkKey,\r\n ExpiryDateText: interestBackendData.expiryDateText,\r\n }\r\n dispatch(defaultConfigStore.setDefaultConfigAction(defaultConfig));\r\n\r\n //set link source type\r\n dispatch(linkSourceStore.setLinkSourceAction(interestBackendData.typeOfLink));\r\n }\r\n\r\n\r\n //updating country/state must happened after updating defaultConfig value \r\n //because getting variant / exterior / interior / options list happened once country/state store has data\r\n let delivery: selectedConfigModel.ISelectedDelivery = {\r\n Country: {\r\n name: interestBackendData.country == rdEnum.enumCountryCode.Australia ? \"Australia\" : \"New Zealand\",\r\n code: interestBackendData.country\r\n },\r\n State: {\r\n name: interestBackendData.state,\r\n code: interestBackendData.state\r\n },\r\n SelectedPickupLocation: null,\r\n SelectedDeliveryOption: null,\r\n SelectedDeliveryFullAddress: null,\r\n SelectedDeliveryPostcode: null,\r\n SelectedDeliveryState: null,\r\n SelectedDeliverySuburb: null,\r\n //EstDeliveryDate: null,\r\n PrimaryAddress: null,\r\n PrimaryPostcode: null,\r\n PrimarySuburb: null,\r\n PrimaryState: null,\r\n InvalidPrimaryAddress: null,\r\n DeliveryAvailable: null,\r\n DeliveryPrice: null,\r\n DeliveryPriceErrorCode: null,\r\n DeliveryDistance: null,\r\n PickupLocationName: null,\r\n };\r\n dispatch(selectedDeliveryStore.updateDeliveryAction(delivery));\r\n\r\n //clear payment options\r\n dispatch(paymentOptionsStore.clearPaymentOptionsAction());\r\n\r\n //default set customer type as private customer\r\n dispatch(customerTypeStore.setCustomerTypeAction(rdEnum.enumClientTypes.Private.Code));\r\n }\r\n\r\n\r\n }\r\n\r\n const getInterestOptions = (optionData: any): vehicleModel.IVehicleOptions[] | null => {\r\n let configs: vehicleModel.IVehicleOptions[] = [];\r\n optionData.map((item: any) => {\r\n configs.push({\r\n YanaOptionID: \"\",\r\n OptionType: item.optionType,\r\n OptionName: item.optionName,\r\n OptionPrice: item.optionPrice,\r\n OptionPicture: [],\r\n OptionPictureMobile: [],\r\n OptionDesc: item.optionDesc,\r\n ChargeType: item.chargeType,\r\n Disable: false,\r\n TermsDescription: null\r\n });\r\n });\r\n return configs;\r\n }\r\n\r\n useEffect(() => {\r\n const sections = document.querySelectorAll('[data-section-id]');\r\n const observers: IntersectionObserver[] = [];\r\n\r\n sections.forEach((section) => {\r\n const sectionElement = section as HTMLElement;\r\n const sectionHeight = sectionElement.offsetHeight;\r\n const viewportHeight = window.innerHeight;\r\n //let thresholdValue;\r\n //// = sectionHeight < 500 ? 0.39 : Math.min(sectionHeight / viewportHeight, 1);\r\n //if (isMobile) {\r\n // thresholdValue = sectionHeight < 500 \r\n // ? 0.35\r\n // : thresholdValue = sectionHeight >= 550 && sectionHeight < 1550 \r\n // ? 0.35 \r\n // : Math.min(sectionHeight / viewportHeight, 0.76); \r\n //} else if (isTablet) {\r\n // thresholdValue = sectionHeight < 600 \r\n // ? 0.38 \r\n // : Math.min(sectionHeight / viewportHeight, 0.85); \r\n //} else {\r\n // thresholdValue = sectionHeight < 550 \r\n // ? 0.90\r\n // : thresholdValue = sectionHeight >= 550 && sectionHeight < 1550 \r\n // ? 0.70\r\n // : thresholdValue = sectionHeight >= 1550 \r\n // ? 0.16\r\n // : Math.min(sectionHeight / viewportHeight, 0.20); \r\n //}\r\n\r\n // const observerOptions = {\r\n // root: null,\r\n // rootMargin: '0px',\r\n // threshold: thresholdValue,\r\n // };\r\n\r\n\r\n // const observer = new IntersectionObserver((entries) => {\r\n // entries.forEach(entry => {\r\n // const sectionId = entry.target.getAttribute('data-section-id');\r\n // console.log(entry, sectionId)\r\n // if (entry.isIntersecting) {\r\n\r\n // if (sectionId) {\r\n // dispatch(checkMainSection(sectionId));\r\n // }\r\n // }\r\n // });\r\n // }, observerOptions);\r\n\r\n // observer.observe(section);\r\n // observers.push(observer);\r\n //console.log(sectionElement.getAttribute('data-section-id'));\r\n let thresholdValue = 0.39;\r\n let sid = sectionElement.getAttribute('data-section-id');\r\n if (sid == rdEnum.enumScrollSection.Accessories) {\r\n thresholdValue = 0.25;\r\n }\r\n else if (sid == rdEnum.enumScrollSection.Exterior || sid == rdEnum.enumScrollSection.Interior) {\r\n thresholdValue = 0.9;\r\n }\r\n const observerOptions = {\r\n root: null,\r\n rootMargin: '0px 0px 0px 0px', // Large margin to ensure detection even if slightly offscreen\r\n threshold: thresholdValue, // A low threshold to capture any slight intersection\r\n };\r\n\r\n //console.log(sid + \"-\" + thresholdValue);\r\n const observer = new IntersectionObserver((entries) => {\r\n entries.forEach(entry => {\r\n const sectionId = entry.target.getAttribute('data-section-id');\r\n //console.log(sectionId);\r\n if (entry.isIntersecting) {\r\n //console.log('Intersecting:', sectionId); // Log when an element is intersecting\r\n if (sectionId) {\r\n dispatch(checkMainSection(sectionId));\r\n }\r\n }\r\n });\r\n }, observerOptions);\r\n\r\n observer.observe(section);\r\n observers.push(observer);\r\n\r\n //const sections = document.querySelectorAll('.nav_item');\r\n //sections.forEach(section => {\r\n // observer.observe(section);\r\n // observers.push(observer);\r\n //});\r\n });\r\n\r\n // Cleanup all observers on unmount\r\n return () => {\r\n observers.forEach(observer => observer.disconnect());\r\n };\r\n }, [dispatch, isTablet, isMobile]);\r\n\r\n const [isShowBottomPanel, setIsShowBottomPanel] = useState(false);\r\n\r\n let scrollTimeout: number;\r\n\r\n useEffect(() => {\r\n dispatch(setGlobalDropdown(false, false));\r\n }, []);\r\n\r\n // const [isScrolled, setIsScrolled] = useState(false);\r\n\r\n // const handleScroll = (event: any) => {\r\n // const scrollTop = event.target.scrollTop;\r\n // setIsScrolled(scrollTop > 50); \r\n // };\r\n\r\n // useEffect(() => {\r\n // const globalContainer = document.querySelector('.global-container');\r\n // globalContainer?.addEventListener('scroll', handleScroll);\r\n // return () => globalContainer?.removeEventListener('scroll', handleScroll);\r\n // }, []);\r\n\r\n // console.log(isScrolled)\r\n\r\n const { scrollToSection } = useScroll();\r\n\r\n // const [scrollDirection, setScrollDirection] = useState<'up' | 'down'>('down');\r\n const [lastScroll, setLastScroll] = useState(0); // Track the last scroll position\r\n\r\n useEffect(() => {\r\n const container = document.querySelector('.d2c-container') as HTMLElement;\r\n // const variantSection = document.querySelector('[data-section-id=\"variant\"]') as HTMLElement;\r\n\r\n const handleScroll = () => {\r\n // const thresholdStart = 100;\r\n // const thresholdEnd = 350;\r\n const scrollPosition = container?.scrollTop || 0;\r\n\r\n // Detect scroll direction\r\n // const direction = scrollPosition > lastScroll ? 'down' : 'up';\r\n // setScrollDirection(direction);\r\n // setLastScroll(scrollPosition); // Update last scroll position\r\n if (!isMobile) {\r\n if (scrollPosition <= 750 && mainPageNumber == 0) {\r\n // dispatch(setScrollPosition('global'));\r\n dispatch(checkMainSection('global'))\r\n // setScrollOpacity(0.00); // Reset opacity to 0 if less than 400\r\n const globalOpacityRatio = parseFloat(((670 - scrollPosition) / 200).toFixed(2)); // Opacity from 1 to 0\r\n setScrollGlobalOpacity(globalOpacityRatio >= 0 ? globalOpacityRatio : 0);\r\n } else if (scrollPosition > 750 && scrollPosition <= 1150 && mainPageNumber == 0) {\r\n // dispatch(setScrollPosition('main'));\r\n dispatch(checkMainSection('variant'));\r\n // dispatch(setScrollPosition('main'));\r\n // container.scrollTo({ top: 0, behavior: 'smooth' }); \r\n // scrollToSectionRef(containerRef);\r\n\r\n // dispatch(setScrollPosition('global')); // Dispatch action to set scroll position to global\r\n // setScrollOpacity(0.00); // Reset opacity to 0 if less than 400\r\n // setScrollGlobalOpacity(1.00);\r\n\r\n // const opacityPercentage = parseFloat(((scrollPosition - 950) / 450).toFixed(2)); // Opacity from 0 to 1\r\n // setScrollOpacity(opacityPercentage <= 1 ? opacityPercentage : 1); // Ensure opacity doesn't exceed 1\r\n } else if (mainPageNumber != 0) {\r\n dispatch(checkMainSection('checkoutForm'));\r\n }\r\n } else {\r\n setIsShowBottomPanel(true);\r\n\r\n if (scrollTimeout) {\r\n clearTimeout(scrollTimeout);\r\n }\r\n\r\n scrollTimeout = window.setTimeout(() => {\r\n setIsShowBottomPanel(false);\r\n }, 500);\r\n\r\n if (scrollPosition <= 750 && mainPageNumber == 0) {\r\n // dispatch(setScrollPosition('global'));\r\n dispatch(checkMainSection('global'))\r\n // setScrollOpacity(0.00); // Reset opacity to 0 if less than 400\r\n const globalOpacityRatio = parseFloat(((670 - scrollPosition) / 200).toFixed(2)); // Opacity from 1 to 0\r\n setScrollGlobalOpacity(globalOpacityRatio >= 0 ? globalOpacityRatio : 0);\r\n } else if (scrollPosition > 750 && scrollPosition <= 1050 && mainPageNumber == 0) {\r\n // dispatch(setScrollPosition('main'));\r\n dispatch(checkMainSection('variant'));\r\n // dispatch(setScrollPosition('main'));\r\n // container.scrollTo({ top: 0, behavior: 'smooth' }); \r\n // scrollToSectionRef(containerRef);\r\n\r\n // dispatch(setScrollPosition('global')); // Dispatch action to set scroll position to global\r\n // setScrollOpacity(0.00); // Reset opacity to 0 if less than 400\r\n // setScrollGlobalOpacity(1.00);\r\n\r\n // const opacityPercentage = parseFloat(((scrollPosition - 950) / 450).toFixed(2)); // Opacity from 0 to 1\r\n // setScrollOpacity(opacityPercentage <= 1 ? opacityPercentage : 1); // Ensure opacity doesn't exceed 1\r\n } else if (mainPageNumber != 0) {\r\n dispatch(checkMainSection('checkoutForm'));\r\n }\r\n }\r\n\r\n // else if (scrollPosition > 1150) {\r\n // setScrollGlobalOpacity(0.00); // Fully hide global section\r\n // setScrollOpacity(1.00); // Fully show main section\r\n // }\r\n\r\n // Scroll down to variant when scrolling between 100px and 200px and if scrolling down\r\n // if (scrollPosition >= thresholdStart && scrollPosition <= thresholdEnd && scrollDirection === 'down') {\r\n // // scrollToSection('variant');\r\n // setTimeout(() => {\r\n // scrollToSection('variant');\r\n // }, 100);\r\n // }\r\n\r\n // Get the position of variant section relative to the scrollable container\r\n\r\n // Check if the variant section is more than 300px from the top of the container and scroll up\r\n // if (containerToTop > 900 && containerToTop < 1000 \r\n // // && scrollDirection == 'up'\r\n // ) {\r\n // console.log('Scrolling back to global');\r\n\r\n // }\r\n };\r\n\r\n // Attach scroll event listener to the container\r\n container?.addEventListener('scroll', handleScroll);\r\n\r\n // Cleanup event listener\r\n return () => {\r\n container?.removeEventListener('scroll', handleScroll);\r\n\r\n if (isMobile && scrollTimeout) {\r\n clearTimeout(scrollTimeout);\r\n }\r\n };\r\n }, [mainPageNumber]);\r\n\r\n\r\n\r\n const updateDeviceRatioClass = () => {\r\n const width: number = window.screen.width;\r\n const height: number = window.screen.height;\r\n const ratio: number = width / height; // Calculate and round the ratio\r\n // const ratioClass = `device-ratio-${Math.round(ratio * 100)}`; // Convert to class like .device-ratio-177\r\n\r\n const globalContainer = document.querySelector('.global-container');\r\n\r\n // Remove previous ratio classes\r\n globalContainer?.classList.forEach(className => {\r\n if (className.startsWith('device-ratio-')) {\r\n globalContainer?.classList.remove(className);\r\n }\r\n });\r\n\r\n if (ratio >= 1.75 && ratio <= 1.79) {\r\n globalContainer?.classList.add('device-ratio-177');\r\n } else if (ratio >= 1.58 && ratio <= 1.62) {\r\n globalContainer?.classList.add('device-ratio-160');\r\n } else {\r\n // Add other conditions as needed for different aspect ratios\r\n const roundedRatio = Math.round(ratio * 100);\r\n globalContainer?.classList.add(`device-ratio-${roundedRatio}`);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n // Initial check\r\n updateDeviceRatioClass();\r\n\r\n }, []);\r\n\r\n\r\n return (\r\n \r\n {expiryedLink && (\r\n
    The link has expired... You will be redirected to LYRIQ configurator …
    \r\n )}\r\n {!expiryedLink && (\r\n \r\n \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n \r\n\r\n