{"version":3,"sources":["utils.js","Helpers/summaryconstants.js","stories/helpers/httpRequest.js","Services/ApiService.js","Services/Cache.js","Services/PostCache.js","Services/TcciService.js","Helpers/gtmHelper.js","Services/OcaService.js","financeUtils.js","Helpers/summarycalculator.js","Helpers/BuildHelper.js","Helpers/navhelper.js","Helpers/helpers.js","Components/1_Atoms/Svg/Svg.js","Components/3_Organisms/Nav/Nav.js","Components/3_Organisms/Modal/Modal.js","Components/1_Atoms/Button/Button.js","Components/2_Molecules/Tabs/TabsMenu.js","Components/3_Organisms/Modal/Modal_50_50.js","Helpers/tooltipHelper.js","Components/1_Atoms/Tooltip/Tooltip.js","Components/2_Molecules/AccessoryCard/AccessoryCard.js","Components/2_Molecules/Collapse/CollapseLegal.js","Components/3_Organisms/Pricing/Pricing.js","Components/3_Organisms/Modal/PreOrderModal.js","Components/3_Organisms/Alert/Alert.js","Components/3_Organisms/AccessoriesList/AccessoriesList.js","Components/2_Molecules/Jelly/Jelly.js","Components/5_Pages/Vehicles/Vehicles.js","Components/2_Molecules/360View/360View.js","Components/2_Molecules/360InteriorView/360InteriorView.js","Components/3_Organisms/360Container/360Container.js","Components/2_Molecules/Collapse/Collapse.js","Components/3_Organisms/TrimList/TrimList.js","Components/5_Pages/Trim/Trim.js","Components/2_Molecules/Collapse/CollapseList.js","Components/3_Organisms/Modal/OcaModal.js","Components/3_Organisms/Modal/ReserveModal.js","Components/3_Organisms/Financial/Financial.js","Components/2_Molecules/SpecsItem/SpecsItem.js","Components/3_Organisms/BuildSpecs/BuildSpecs.js","Components/3_Organisms/Accessories/Accessories.js","Components/2_Molecules/Collapse/CollapseSpecs.js","Components/3_Organisms/FeaturedSpecs/FeaturedSpecs.js","Components/3_Organisms/Packs/Packs.js","Components/5_Pages/Summary/Summary.js","Components/2_Molecules/EngineCard/EngineCard.js","Components/2_Molecules/PackageCard/PackageCard.js","Components/5_Pages/Option/Option.js","Components/2_Molecules/ColourCard/ColourCard.js","Components/5_Pages/Colours/Colours.js","Components/2_Molecules/WheelCard/WheelCard.js","Components/3_Organisms/WheelsList/WheelsList.js","Components/3_Organisms/WheelsImageContainer/WheelsImageContainer.js","Components/5_Pages/Wheels/Wheels.js","Components/5_Pages/Connectivity/Connectivity.js","Components/2_Molecules/Collapse/CollapseFinance.js","Components/2_Molecules/FinanceOptions/FinanceOptions.js","Components/2_Molecules/Collapse/CollapseLease.js","Components/2_Molecules/Collapse/CollapseLeaseMileage.js","Components/2_Molecules/LeaseOptions/LeaseOptions.js","Components/2_Molecules/CashOptions/CashOptions.js","Components/3_Organisms/Modal/TradeInModal.js","Components/2_Molecules/PricePayment/PricePayment.js","Components/5_Pages/Payments/Payments.js","Components/5_Pages/Protection/Protection.js","App.js","reportWebVitals.js","i18n.js","index.js"],"names":["getLang","document","querySelector","content","getProvince","window","location","href","includes","sessionStorage","getItem","dealerVars","JSON","parse","dealerProvinceCode","setCursorWaiting","isWaiting","style","cursor","getLoading","isLoading","t","bnp_under_maintenance","className","ReactHtmlParser","getMazdaFeesAndLeviesDetailTitle","title","getParams","str","queryString","keyValPairs","params","replace","length","pairNum","split","key","push","getApiBaseUrl","host","indexOf","process","getBaseUrl","protocol","get360Data","visual","exterior","interior","extCode","code","interiors","default_exterior","intCode","exteriors","baseAssetPath","file_path","imageAmount","end_index","filename_prefix","imageName","include_in_360","imagePath","find","currInt","filename","imagePathInterior","formatPrice","amount","noRounding","undefined","isNaN","fractions","locale","Number","toLocaleString","currency","minimumFractionDigits","maximumFractionDigits","convertNum","num","getFinanceWeekly","rate","term","testRate","result","Math","pow","getLeaseBiWeeklyFromOptions","ceil","getLeaseBiWeeklyFromMsrp","financialObj","subtotal","adminServiceFees","endValueLease","residual","element","goToTop","body","scrollTop","documentElement","getIncentiveDisplayName","incentive","type","getDisplayableProvinceName","toLowerCase","buildLegalContent","legalContentObject","legalIncentiveObject","legalContent","map","item","copy","hideCmsHiddenBlock","shownBlocks","querySelectorAll","forEach","e","classList","remove","add","hiddenBlocks","hideCmsFooterHiddenBlock","getCmsAwardsBlockFromCMS","year","carline","outerHTML","updateLanguageLink","languageLink","getElementById","hash","newLanguage","text","hashIndexPosition","substring","newHash","SummaryConstants","handleRequest","url","data","a","axios","method","headers","responseData","handleJsonRequest","ApiService","language","province","mockedModels","some","startsWith","mock","require","Object","assign","financial","this","model_years","model","insertMockData","url_slug","dataToReturn","trims","trim","models","option","packageCode","based_on","model_code","optionCode","fullModelCode","requestData","stringify","buildId","dealerId","NodeCache","Cache","_cache","stdTTL","cache","flushAll","res","queryParams","bodyParams","ReferenceError","Array","isArray","TypeError","queryObject","bodyObject","req","config","keys","elem","set","get","PostCache","cachedUrls","_axios","_cachedUrls","cacheable","cached","Promise","resolve","status","statusText","request","providerCalls","post","response","queryKeys","TcciService","postCache","summaryCalculator","SelectedColourExterior","SelectedColourInterior","totalAccessoriesResidualValue","entries","SelectedAccessories","accessory","residualValue","residual_value","round","Identifier","QuoteResponse","setCachedUrls","requestOptions","console","log","withFees","withRebates","productKey","loyaltyChecked","graduateChecked","militaryChecked","firstTimeOwnerChecked","selectedAnnualMileage","SelectedModel","FinancialInfo","mazdaCashIncentive","incentive_programs","filter","fee","price","loyaltyPriceRate","LoyaltyChecked","x","rate_value","loyaltyPrice","cash_value","graduatePrice","GraduateChecked","value","militaryPrice","MilitaryChecked","firstTimeOwnerPrice","FirstTimeOwnerChecked","incentives","calculatedFinance","specialIncentives","modelCode","SelectedPackage","option_code","annualMileage","baseMSRP","msrp","options","SelectedWheel","SelectedNonModelPackage","SelectedWarrantyPackage","SelectedConnectedVehiclePackage","SelectedAddedProtectionPackage","SelectedAppearanceProtectionPlansPackage","accessories","total","totalMSRP","exciseTax","freight","pde","acTax","amvic","omvic","tireStewardshipFee","oil","tradeInVal","parseInt","_tradeInValue","maxDownPayment","DownPaymentValue","downPaymentValue","TradeInValue","IncludeFees","balanceToFinance","calculatedLease","leaseEndValue","balanceToFinanceNoFees","leaseEndValueNoFees","parseFloat","toFixed","getResidualTotal","_downPaymentValue","leaseServiceFees","firstTimeOwner","buildBodyJson","leaseObject","weekly","Lease","Quote","WeeklyPayment","biWeekly","BiWeeklyPayment","monthly","MonthlyPayment","weeklyWithTaxes","WeeklyPaymentWithTaxes","biWeeklyWithTaxes","BiWeeklyPaymentWithTaxes","monthlyWithTaxes","MonthlyPaymentWithTaxes","leaseRate","LeaseRate","Freight","Pde","airConditioningTax","AirConditioningTax","omvicFee","OmvicFee","amvicFee","AmvicFee","TireStewardshipFee","oilFilterFee","OilFilterFee","ppsa","Ppsa","leaseDealerServiceFee","LeaseDealerServiceFee","leaseRateDiscounted","LeaseRateDiscounted","isLoyaltyCustomer","IsLoyaltyCustomer","hasError","HasError","capitalizedCost","CapitalizedCost","residualAmount","ResidualAmount","loanObject","Loan","costOfBorrowing","CostOfBorrowingWithoutTaxes","costOfBorrowingWithTaxes","CostOfBorrowing","aprRate","AprRate","loanPeriod","LoanPeriod","aprRateDiscounted","AprRateDiscounted","loanAmount","LoanAmount","gstAmount","GstAmount","pstAmount","PstAmount","GTMHelper","pushToGTMDataLayer","dataLayer","err","isSimple","showPrevious","selectedVehicle","steps","GTMData","step","action","CurrentStep","event","previous","PreviousStep","engine","_selectedColourInterior","_selectedColourExterior","wheel","_selectedWheel","_selectedAccessories","name","calculatedCash","OcaService","lease","loan","ocaRetry","NaN","oca_url","delay","ms","setTimeout","financeType","default360","_selectedExteriorColour","_colours","static_content_base_path","_current360Rotation","filename_suffix","_ocaService","cashPrice","_language","payment","balanceToFinanceWithFeesTaxed","Program_End_datetime","downPayment","apr","sellingPrice","monthlyDepreciation","totalInterestCost","interestFactor","baseMonthlyPayment","gstHSTRate","gstHSTAmountOnRental","totalMonthlyPayment","adjustedCapitalizedCost","PSTRate","PSTAmount","gtmHelper","updateSingleLineFromFinancialProvider","trackingID","cookie","pop","shift","trackingParam","bnsParam","at","balanceToFinanceWithFeesWithRebatesTaxed","balanceToLeaseWithFeesWithRebatesTaxed","setGTM","payload","vehicle","exitUrl","open","RATE","periods","present","future","guess","y0","y1","x0","epsMax","x1","f","i","abs","exp","SummaryCalculator","_allDataIsLoaded","_apiService","_tcciService","Date","getFullYear","selectedLanguage","_availableTrims","_selectedModelYear","_selectedTrim","_selectedTrimIndex","_loyaltyChecked","_militaryChecked","_graduateChecked","_firstTimeOwnerChecked","_accessoriesValue","_annualMileage","_financeTerm","_leaseTerm","_financeTermIndex","_leaseTermIndex","_pstRate","_gstRate","_financialInfo","_initialFinancial","_engineAndDrivetrain","_selectedModelIndex","_selectedModel","_packages","_selectedPackage","_selectedNonModelPackage","_selectedWarrantyPackage","_selectedConnectedVehiclePackage","_selectedAddedProtectionPackage","_selectedAppearanceProtectionPackage","_selectedPackageIndex","_selectedNonModelPackageIndex","_selectedWarrantyIndex","_selectedConnectedVehicleIndex","_selectedAddedProtectionIndex","_selectedAppearanceProtectionIndex","_selectedAppearanceProtectionPlanPackageIndex","_selectedColourInteriorIndex","_selectedColourExteriorIndex","_allowedColoursExterior","_wheels","_selectedWheelIndex","_accessories","_categories","_selectedCategory","_incentives","_includeFees","_includeTaxes","_includeRebates","_currentStep","_previousStep","_showFinancePrice","_currentCalculatedCash","_currentPurchaseMethod","_instance","setItem","Constants","SelectedTrim","getFinanceObjectWithCalculations","tempValue","SelectedTrimIndex","AvailableTrim","trim_type","setSelectedModelIndex","EngineAndDrivetrain","finance","loadEngineAndDrivetrain","SelectedModelIndex","loadPackages","loadColours","loadWheels","loadAccessories","loadPayments","loadSummary","loadSpecsData","SelectedAppearanceProtectionIndex","loanVals","leaseVals","setOcaData","financeValues","financeTerm","leaseValues","leaseTerm","ocaField","bnsValues","QuoteItems","Key","Value","hasData","financeTermToBeDisplayed","leaseTermToBeDisplayed","forceContactDealer","loanHasError","getLoanResponsesHasError","leaseHasError","getLeaseResponsesHasError","objectsArray","every","obj","hasCommunicationError","hasDataError","updateAllLineFromFinancialProvider","FinanceTerm","FinanceTermIndex","LeaseTerm","LeaseTermIndex","updateSingleLeaseLineItem","updateSingleLoanLineItem","sendDataToService","IncludeRebates","AnnualMileage","getTemporaryLeaseResponse","GstPercentage","PstRate","extractLeaseData","extraDataResponse","downPaymentLeaseEndValue","getResidualAmountFromLeaseData","getTemporaryLoanResponse","extractLoanData","updateAllLoanLinesFromFinancialProvider","updateAllLeaseLinesFromFinancialProvider","all","financeElement","extractedData","index","findIndex","newObject","catch","leaseElement","packages","Packages","default_option","pack","SelectedPackageIndex","universalPackages","SelectedNonModelPackageIndex","warrantyPackages","package_type","SelectedWarrantyIndex","connectivityPackage","connected_services","subscription","subscriptionindex","SelectedConnectedVehicleIndex","added_protection","plans","planIndex","SelectedAddedProtectionIndex","appearanceProtectionPlan","appearance_protection","SelectedAppearanceProtectionPlansIndex","packageIndex","appearanceProtectionPlansPackage","SelectedColourInteriorIndex","Colours","SelectedColourExteriorIndex","InitialFinancial","Wheels","wheels","SelectedWheelIndex","SelectedCategory","toString","removeItem","IncludeTaxes","isProvinceAllowedToIncludeRebates","Current360Rotation","toLocaleLowerCase","reset","isRetailerMode","RecalculateFinancialInfo","Incentives","getIncentives","defaultTrimIndex","loadTrims","getDefaultTrimIndex","trimIndex","setSelectedTrimIndex","modelIndex","setSelectedPackageIndex","getBuildDataById","build_data","tradeInValue","includeTaxes","includeFees","includeRebates","selectedNonModelPackageIndex","selectedWarrantyIndex","selectedConnectedVehicleIndex","selectedAddedProtectionIndex","selectedAppearanceProtectionIndex","selectedAppearanceProtectionPlanPackageIndex","loadVehicleData","getAccessories","accessoriesData","parsed","parseAccessoriesData","All","acc","part_number","msg","reject","getVehicles","then","error","getTrims","trimData","SelectedModelYear","model_year","getEngineAndDrivetrain","getPackages","allowedExteriors","id","getColours","defaultInteriorColour","defaultExteriorColour","Colour","AllowedColoursExterior","getAllowedExteriorsIds","allowed_exteriors","getWheels","Accessories","getPayments","foundIndex","getSummary","colours","connectivity","protection","payments","summary","reloadStoredData","vehicles","getSpecificationsData","specifications","hasDefaultInteriorColorSelected","selectedInteriorColour","hasDefaultExteriorColorSelected","selectedExteriorColour","showWarningMessage","xs","reduce","rv","plainTitle","mazda","yearName","modelName","trimName","sup","toUpperCase","RegExp","loadFromFinancialProvider","financeTermIndex","leaseTermIndex","accessoriesValue","package","warranty","connectedVehicle","addedProtection","appearanceProtection","fees","cashCalculator","loanCalculator","leaseCalculator","minDownPayment","getMaxDownPayment","tempIncentives","cashObj","tax","getTax","getOptions","feesAndLevies","getFeesAndLeaves","getIncentivesObj","mazdaRetailCash","mazda_retail_cash","evRebates","getEvRebate","mazdaPrice","displayedTotal","nonTaxableInc","nonTaxable","taxableInc","taxable","evRebate","cash","subTotal","subtotalTaxed","subtotalTaxes","subtotalFees","subtotalWithFees","subtotalWithFeesTaxed","subtotalWithFeesTaxes","incentiveRebates","subtotalWithIncentiveRebates","subtotalWithIncentiveRebatesAndEvRebates","subtotalWithIncentiveRebatesAndEvRebatesTaxed","subtotalWithIncentiveRebatesAndEvRebatesTaxes","feesRebates","subtotalWithFeesWithRebates","subtotalWithFeesWithRebatesAndEvRebates","subtotalWithFeesWithRebatesTaxed","subtotalWithFeesWithRebatesTaxes","leaseObj","rewards","getRewardsList","downPaymentTax","kilometersLeaseValue","subtotalWithRebates","subtotalWithRebatesTaxed","balanceToLease","balanceToLeaseWithFees","balanceToLeaseWithRebates","balanceToLeaseWithFeesWithRebates","resudualObj","moneyFactor","money_factor","moneyFactorObj","financeObj","subtotalWithoutTradInAndDownPayment","balanceToFinanceTaxed","balanceToFinanceWithFees","balanceToFinanceWithRebates","balanceToFinanceWithRebatesTaxed","balanceToFinanceWithFeesWithRebates","ExteriorColorInParam","InteriorColorInParam","accessoriesObj","accessorie","total_residual_value","detail","selectedWheel","selectedPackage","selectedNonModelPackage","selectedWarrantyPackage","selectedConnectedVehiclePackage","interiorColour","exteriorColour","model_option_package","universal_package","warranty_package","connected_vehicle_package","selectedPackageIndex","tpms","install_cost","inCashCalculation","leaseMode","feesObj","feeAndLevies","that","el","getSupValueFromFee","feesObjFiltered","incentivesList","loyalty","checked","grad_award","military","first_time_owner","rewardsList","incentivesKeysNonTaxable","isCashCalculation","incentivesKeysTaxable","incentivesObj","details","incentiveKey","getGstRate","getPstRate","ev_rebates","rebate","filteredLeaseItems","leaseItem","leaseProRatedRebate","filteredFinanceItems","financeItem","financeProRatedRebate","calculateTaxes","hasEvFinancingTaxes","tax_cash","lease_federal_tax","lease_provincial_tax","lease_tax","popularData","formatedData","popular","groupBy","adminFees","retailCash","bnp_retailer_mode","urlParams","getDealerDataById","dealerData","dealerName","provinceCode","province_code","create","getPrototypeOf","getOwnPropertyDescriptors","shallowClone","isPreOrder","preOrder","modelOption","BuildHelper","cookies","Cookies","useEffect","clear","loadVehicleDataByBuildId","path","encode","String","reload","navigateUrl","origin","pathname","loadPreBuildData","NavHelper","returnDef","getDealerId","currentStep","lang","navTranslation","getUrlSlug","openModal","targetId","modal","setAttribute","focus","titleCase","word","charAt","slice","join","Svg","size","colour","svg_list","svgColour","svg_classname","Nav","nav","props","useTranslation","i18n","useParams","React","useState","ShowFinancePrice","navHelper","setStep","isOpen","setIsOpen","tabList","getNavContent","tabs","setTabs","tab","active","activeTab","setActiveTab","innerWidth","isMobile","setIsMobile","navRef","useRef","navigate","useNavigate","useSearchParams","setSearchParams","reloadTabs","current","contains","mzMenu","triggerStickySubmenu","mzFunc","mzTabs","waitForEl","components","init","subNav","adjustActiveTabPosition","scrollY","alertAni","play","permAlertAni","menuAni","handleTabClick","tabIndex","uri","HandleSelectAVehicleClick","preventDefault","selectVehiclesLinkLink","addEventListener","ref","onClick","textDesktop","role","textMobile","allow_oca","handleOcaClick","width","getCurrentActiveTabIndex","showNav","Modal","modalContent","modalId","handleClose","defaultProps","Button","primary","backgroundColor","label","disabled","icon","iconBefore","iconAfter","svg_className","rotation","mode","disabling","before","after","displayIcon","btnBackground","TabsMenu","menus","menuItems","sort","y","v","menu","Modal_50_50","image","imageMobile","imageAlt","setIsModalOpen","setModalImage","src","alt","TooltipHelper","tooltip","tooltips","Tooltip","TooltipName","TooltipText","TooltipClasses","toggle","setToggle","tooltipHeight","setTooltipHeight","isTop","setTop","isAnimating","setIsAnimating","didInit","setInit","toolRef","tooltipHelper","tooltipText","getTooltip","toggleCollapse","time","initHeight","tooltipCont","tooltipWidth","left","top","tooltipLeft","getBoundingClientRect","tooltipBottom","bottom","tooltipRight","pricingHeight","offsetHeight","innerHeight","gsap","transformOrigin","fromTo","autoAlpha","height","onUpdate","enableAni","to","onComplete","parentElement","right","onMouseEnter","matchMedia","matches","onMouseLeave","AccessoryCard","Accessory","Selected","HandleSelectedAccessory","HandleLearnMore","isPopular","showFinancePrice","modalOpen","setModalOpen","price_week","totalCost","installationText","totalPriceText","base_msrp","getTooltipText","description","CollapseLegal","ColCarText1","ColBoxText","Pricing","builtLabel","buttonLabel","builtPrice","loanLabel","loanPrice","leaseLabel","financeLabel","HandleNextClick","setLegalModalOpen","HandleShowFinanceClick","saveLabel","setPreorderModalOpen","financialInfo","setFinancialInfo","setShowFinancePrice","app","resizeObserver","ResizeObserver","calculatePriceBarPosition","mazdaFooter","mazdaPricing","scrollElement","update","setForceUpdate","isFooterOnViewport","clientHeight","getComputedStyle","transform","distance","vHeight","scrollPosition","pageYOffset","offsetTop","offsetParent","howMuchFooterIsVisible","handleTogglePrice","toggleType","handlePreOrderClick","handleContactDealerLinkClick","targetModal","heading","textContent","removeEventListener","unobserve","observe","getLoanRate","getResponsesHasError","loanElement","getLeaseRate","getLoanWeekly","weeklyPayment","getLeaseWeekly","handleQCEVD_LinkClick","target","contactRoute","getCashPrice","financePricing","cashPricing","CurrentCalculatedCash","random","isSelectionPreOrder","hasBreak","PreOrderModal","isReactFormsAppLoaded","initReactFormsApp","message","dealer_code","Alert","Id","Desc","textDisplayed","setTextDisplayed","setTooltipCont","alertRef","tempHtml","incentives_banner","getTextDisplay","splice","AccessoriesList","setNav","tabsRef","setVisibleLeftArrow","setVisibleRightArrow","legalModalOpen","setAccessories","categories","setCategories","selectedAccessories","setSelectedAccessories","selectedCategory","setSelectedCategory","preorderOpen","setTabsNextAndPrevButtons","offsetWidth","scrollWidth","scrollLeft","clientWidth","b","bandA","bandB","comparison","handleSelectedAccessory","rawData","hasAlertBar","isDataLoaded","Categories","toRender","VehicleTitle","category","isactive","decodeURI","search","Jelly","topLabel","carName","carModel","carPrice","carFeatures","carImg","carImgHover","jellieHaveIcons","icon1","icon2","icon3","btnLabel","isComingSoon","displayFeatures","feature","iconType","icon_type","VehiclePage","setResponse","vehicleLegal","setVehicleLegal","tabsContainerRef","loading","setLoading","visibleTab","setVisibleTab","loadVehicles","requestResponse","loadVehiclesLegal","requestLegalResponse","newLocation","history","pushState","executeTasks","Cats","previous_model","previusModelTab","Model","stripedHtml","CategoryNumb","cat","carCont","display","is_coming_soon","coming_soon_data","top_copy","setTopLabel","highlighted_features","URLSearchParams","handleModelClick","onMouseOver","handleModelOver","onMouseOut","handleModelOut","jelly_path","jelly","jelly_hover","providerRetry","currentLocation","urlWithoutQueryParams","replaceState","closest","jellySib","HasFinancialProviderError","class","ApiUrl","ThreeSixtyView","imageList","setImageList","ts","trigger","setTrigger","imageCount","setImageCount","draggableIsReady","setDraggableIsReady","preventScroll","stopPropagation","set360Height","container","subnav","pricing","imageCont","controls","incentivebar","alert","offsetAlert","permAlert","offsetPermAlert","viewHeight","dataset","images","getImages","setInterval","Draggable","clearInterval","lockAxis","force3D","zIndexBoost","currentPos","minimumMovement","onDragStart","onDrag","isDragging","deltaX","vars","onDragEnd","ThreeSixtyInteriorView","panoramaIsReady","offsetMenu","PhotoSphereViewer","interiorEl","innerHTML","fullScreen","createElement","appendChild","mzImage360","showPanorama","enablePanorama","ThreeSixtyContainer","imageIsLoading","vehicleTrimName","setTrimName","active360","setActive360","setIsLoading","activeView","toggleView","Collapse","ColCarText1Button","ColCarText2","ColCarText3","ColCarImg","isExpanded","setExpandedIndex","LegalContent","showCheck","collapseRef","mzAnimator","setHeight","animateHeight","heightOrigin","$el","collapseTarget","scrollWindow","topScroll","scroll","behavior","TrimList","setSelectedTrim","selectedTrim","trimsData","setTrimsData","expandedIndex","listRef","handleTrimClick","getAttribute","setListMaxHeight","maxHeight","submenu","pricingBar","foundLeaseTermIndex","foundFinanceIndex","setTermIndex","displayWarning","trimContent","highlitedfeatureList","featureItem","featureListTitle","feature_list_title","featureList","feature_list","getTrimDataContent","thumbnail","jellyContents","isJellyPathConform","getImage","button","getTrimButton","legalArr","legal","getLegalContent","alert_features","hideLeaseInCard","is_popular","TrimsPage","setImages","is360Loading","setIs360Loading","firstEmptyDataLoad","setFirstEmptyDataLoad","fromTrimSelection","setFromTrimSelection","dataNeedUpdate","setDataNeedUpdate","selectedTrimIndex","set360images","SetSelectedColorsFromParams","extArray","nextStep","SelectedTrimUrlSlug","DefaultTrimUrlSlug","handleSelectTrim","handleShowFinanceClick","toHideBlocks","hideShownCmsBlock","vehiclePageUri","getContent","CollapseList","CollapseClasses","ColClassPrice","ColPrices","collapse","OcaModal","ocaService","ReserveModal","getDealerVars","Financial","openCollapsable","setOpenCollapsable","reserveOpen","setReserveModalOpen","ocaOpen","setOcaModalOpen","setFinanceType","pathToPayment","feesChecked","setFeesChecked","taxesChecked","setTaxesChecked","rebatesChecked","setRebatesChecked","dataDisplayed","selectedBox","setSelectedBox","setFinanceTermIndex","setLeaseTermIndex","currentIncentives","inclusionCheck","Obj","handleReserveYoursClick","PurchaseMethod","CurrentPurchaseMethod","openGetLocal","financeClick","isEnglish","provinceName","en","fr","scrollIntoView","executeTask","defaultChecked","htmlFor","hasLoanRatePercentageDiscount","getLoanBiWeekly","getLoanMonthly","getLoanInformationalAprRate","hasLeaseRatePercentageDiscount","mileage","kmFormat","convertKM","getAnnualMileageText","getLeaseBiWeekly","getLeaseMonthly","getLeaseInformationalAprRate","optionList","getOptionList","floor","getWheelsDetails","getWheelsPrice","connectedPrice","getConnectivityDetails","list","getAccessoriesDetails","getAccessoriesTooltipText","getAccessoriesPrice","SelectedAppearanceProtectionPlan","getProtectionDetails","feesAndLeviesToDisplay","getMazdaFeesAndLeviesDetails","getCreditsDetails","SpecsItem","SpecsItemModelStriped","SpecsItemName","SpecsItemModel","SpecsItemEditUrl","useHTML","isPackage","BuildSpecs","componentRef","defaultEngineUrl","defaultPackageUrl","defaultDrivetrain","setDefaultDrivetrain","defaultEngine","setDefaultEngine","defaultPackages","setDefaultPackage","selectedTrimUrl","selectedModel","selectedModelUrl","selectedPackageUrl","selectedColoursInt","selectedColoursExt","selectedColoursUrl","selectedWheelUrl","selectedConnectivity","selectedAddedProtection","selectedAppearanceProtection","isWide","drivetrain","defaultEngineRequest","defaultPackagesRequest","packageName","getPackageName","handleAddAccessoriesClick","availableAccessories","List","Index","EditButton","CollapseSpecs","currID","FeaturedSpecs","show_brochure","showBrochure","specsPDF","genereatePDFURL","brochurePDF","isSpec","pdfType","innerAttr","tableHtml","table","Title","Data","getTableSpecs","Packs","shortLang","SummaryPage","buildSpecsRef","hasScrolled","setHasScrolled","openSpecificationCollapsable","dealerID","setDealerID","setIsRetailerMode","showCmsFooterHiddenBlock","isFindDealerForm","formEl","block","selectedExterior","selectedInterior","intervalRef","generateStaticVehicleImg","offsetY","duration","scrollTo","marginTop","imagePlaceHolder","EngineCard","HandleSelectedModel","modelData","engineCost","short_description","transmission","dangerouslySetInnerHTML","__html","PackageCard","Package","PopContent","ButContent","ButStyle","ButSelectedContent","HandleSelectedPackage","SelectedIndex","HandleRemovePackage","HasCollapse","isUniversal","displayPriceCalculation","displayConnectedServicePriceCalculation","packageData","setPackageData","packageCost","getPackageDesc","packageDesc","packageArr","features","setSelectedPackage","removeSelectedPackage","subtitle","spanCont","showPrice","Options","selectedModelIndex","updateAddressBar","urlPrefix","hostname","handleSelectedPackage","handleRemovePackage","handleSelectedModel","ColourCard","Disabled","HandleSelectedColour","isExterior","colourData","API_URL_BASE_PATH","new","selectedColourInteriorIndex","setSelectedColourInteriorIndex","selectedColourExteriorIndex","setSelectedColourExteriorIndex","handleSelectedColourInterior","defaultExteriorId","handleSelectedColourExterior","showWarning","overflow","WheelCard","Wheel","HandleSelectedWheel","languageText","basePrice","tpmsText","installText","totalText","WheelsList","DisabledIndexes","defaultWheelSize","parceWheelsData","wheelsData","setWheelsData","sizes","initWheelTab","selectedWheelsSize","setSelectedWheelsSize","getWarningMessage","warningMessage","setWarningMessage","handleSelectedWheel","newSize","newMessage","selected","HASDEFAULTWHEELSIZE","defaultSize","hasDefaultWheelSize","getWheelSizeSuffix","suffix","WheelsImageContainer","imageBackgroundCar","imageForegroundWheel","selectedWheelObject","bgImage","setbgImage","fgImage","setfgImage","selectedWheelIndex","setSelectedWheelIndex","selectedColor","useMemo","storageColor","yearSlug","carlineSlug","trimSlug","wheelImageBaseURL","bgImagePath","replaceAll","fgImagePath","overlay_image_suffix","default_wheels_size","Connectivity","connectModalOpen","setConnectModalOpen","carouselInit","setCarouselInit","setSelectedConnectedVehicleIndex","setConnectivityPackage","baseTarget","contentHeight","visibleHeight","handleSelectedConnectedVehiclePackage","handleRemoveConnectedVehiclelPackage","image_folder","image_extension","getConnectivityImagePath","mzCarousel","carousel_cta_text","slideContent","carousel","setBullets","getModalImagePath","set5050","setSlides","setCarousel","CollapseFinance","dropdownCallback","selectCallback","setSelectedFinanceOption","collapseOpenContent","setCollapseOpenContent","isCollapsed","setIsCollapsed","hasRatePercentageDiscount","getFinanceOptions","onChange","itemClick","discount","getDisplayedRate","FinanceOptions","showDetailedPricing","toggleShowDetailedPricing","financeDetailRef1","financeDetailRef2","financeDetailRef3","setCurrentIncentives","fromClick","collapse1","collapse2","collapse3","financeDropdown","financeTermSelect","hasResponseError","getInformationalRate","warrantyPrice","getCostOfBorrowing","CollapseLease","setSelectedLeaseOption","getLeaseOptions","CollapseLeaseMileage","callback","setSelectedLeasesMileage","collapseClosedContent","setCollapseClosedContent","setCurrentAnnuelMileage","ClosedContent","LeaseOptions","leaseDetailRef1","leaseDetailRef2","leaseDetailRef3","leaseDropdown","leaseTermSelect","leaseMileageItemClick","annualMileageValue","currentTarget","getDisplayedFee","firstPaymentTaxes","getWeeklyPrice","getBiWeeklyPrice","getMonthlyPrice","totalPayable","getTotalPayable","firstPayment","getFirstPayment","totalDue","getTotalDue","CashOptions","TradeInModal","checkTradeInValue","PricePayment","setDownPaymentInput","onBlurDownPaymentInput","setTradeInInput","onBlurTradeInInput","setLoyaltyChecked","setGraduateChecked","setMilitaryChecked","setFirstTimeOwnerChecked","tradeInLink","isTradeOpen","setIsTradeOpen","isFirstTimeOwnerGreyOut","isLoyaltyGreyOut","placeholder","onBlur","setMoneyInput","PaymentsPage","selectedFinanceOption","selectedLeaseOption","includeFeesChecked","setIncludeFeesChecked","includeTaxesChecked","setIncludeTaxesChecked","includeRebatesChecked","setIncludeRebatesChecked","setTradeInValue","setDownPaymentValue","searchParams","DEBUG_MODE","val","tempVal","delete","paymentCats","paymentTabs","paymentBlocks","paymentTabsContent","price_payments_callout","disclaimerMessage","getAdminFeeDisclaimerSection","Protection","baseURL","collapseRefProtection","collapseRefAppearance","protectionExpanded","setProtectionExpanded","appearanceExpanded","setAppearanceExpanded","setSelectedAddedProtectionIndex","addedProtectionSection","setAddedProtectionSection","appearanceDropDown","setAppearanceDropDown","appearanceSelection","setAppearanceSelection","prepareAddedProtectionSection","addedProtectionPackageList","plan","handleSelectedAddedProtectionPackage","getAddedProtectionPackage","handleRemoveAddedProtectionPackage","getCurrentAddedProtectionPackage","setSelectedAppearanceProtectionIndex","setSelectedAppearanceProtectionPlansIndex","getAppearanceProtectionSection","getAppearanceProtectionTermsDropDown","getAppearanceProtectionList","handleRemoveAppearanceProtectionPlansPackage","setExpand","innerContent","expandToggle","terms","appearanceProtectionPlans","term_dropdown_label","defaultValue","handleAppearanceProtectionTerms","fontSize","handleAppearanceProtectionPlansPackage","scrollToID","autoKill","collapseProt","collapseApp","getAddedProtectionIcons","accordion_title","selected_plan_text","iconList","icons","getAppearanceProtectionIcons","App","param","values","build","savedCarline","savedCarYear","currentProvince","requestedProvince","prov_code","getProvinceInUrl","encodeURIComponent","decodeURIComponent","handleSelectChange","select","newProvince","waitScreen","forceReloadVehicle","provCodePattern","updatedUrl","submit","handleLanguageChange","cssFile","scriptFile","rel","head","carYearHash","carlineHash","exact","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","resources","general","GENERAL_EN","VEHICLES_EN","TRIMS_EN","OPTIONS_EN","CONNECTIVITY_EN","PACKAGES_EN","COLOURS_EN","WHEELS_EN","ACCESSORIES_EN","PROTECTION_EN","PAYMENTS_EN","SUMMARY_EN","evGrid","EVGRID_EN","VEHICLES_FR","TRIMS_FR","OPTIONS_FR","PACKAGES_FR","CONNECTIVITY_FR","COLOURS_FR","WHEELS_FR","ACCESSORIES_FR","PROTECTION_FR","PAYMENTS_FR","SUMMARY_FR","EVGRID_FR","use","LanguageDetector","initReactI18next","lng","fallbackLng","debug","whitelist","transKeepBasicHtmlNodesFor","interpolation","escapeValue","ReactDOM","render","StrictMode"],"mappings":"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","file":"static/js/main.e491edd3.chunk.js","sourcesContent":["import ReactHtmlParser from 'react-html-parser';\r\n\r\n//export const lang = document.querySelector('meta[name=\"data-language\"]') ? document.querySelector('meta[name=\"data-language\"]').content === 'en' ? 'en' : 'fr' : 'en';\r\nexport function getLang() {\r\n return document.querySelector('meta[name=\"data-language\"]') ? document.querySelector('meta[name=\"data-language\"]').content === 'en' ? 'en' : 'fr' : 'en';\r\n}\r\n\r\n//export const province = document.querySelector('meta[name=\"data-region\"]') ? document.querySelector('meta[name=\"data-region\"]').content : 'on';\r\nexport function getProvince() {\r\n // This is used in the case of retailer\r\n if ((window.location.href.includes(\"retailer\") || window.location.href.includes(\"localhost\")) \r\n && sessionStorage.getItem('bnp_dealerVars')) {\r\n const dealerVars = JSON.parse(sessionStorage.getItem('bnp_dealerVars'));\r\n\r\n if(dealerVars && dealerVars.dealerProvinceCode)\r\n return dealerVars.dealerProvinceCode;\r\n }\r\n\r\n // Fallback from the cms\r\n return document.querySelector('meta[name=\"data-region\"]') ? document.querySelector('meta[name=\"data-region\"]').content : 'on'; \r\n}\r\n\r\n// DEPRECATED, TCCI return it in the API response\r\n/*export function getPPSA(term) {\r\n const ppsaTable = JSON.parse(sessionStorage.getItem('financialObj')).PPSA;\r\n\r\n let ppsa = 0;\r\n const sortedPpsa = ppsaTable.sort((a, b) => a.term > b.term)\r\n sortedPpsa.forEach(ppsaItem => {\r\n if (ppsaItem.term === term)\r\n ppsa = ppsaItem.rate;\r\n });\r\n\r\n if (!ppsa) {\r\n for (const ppsaItem of sortedPpsa) {\r\n if (ppsaItem.term > term) {\r\n ppsa = ppsaItem.rate;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return ppsa;\r\n}*/\r\n\r\nexport function setCursorWaiting(isWaiting) {\r\n if (isWaiting)\r\n document.querySelector(\"html\").style.cursor = \"wait\";\r\n else\r\n document.querySelector(\"html\").style.cursor = \"\";\r\n}\r\n\r\nexport function getLoading(isLoading, t) {\r\n if (!window.bnp_under_maintenance) {\r\n return (\r\n
\r\n

{t(\"general:loading\")}

\r\n
\r\n )\r\n } else {\r\n return (\r\n
\r\n
{ReactHtmlParser(t(\"general:retryMessage\"))}
\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport function getMazdaFeesAndLeviesDetailTitle(title, t) {\r\n switch (title) {\r\n case \"Administration Fee\":\r\n return t(\"general:admin_service_fees\"); //\"Administration Fee\"; \r\n case \"Lease Service Fees\":\r\n return t(\"general:lease_service_fees\"); //\"Lease Dealer Service Fee\";\r\n case \"A/C Tax\":\r\n return t(\"general:ac_tax\"); //\"Air Conditioning Tax\";\r\n case \"OMVIC\":\r\n return t(\"general:omvic\"); //\"OMVIC Fee\";\r\n case \"AMVIC\":\r\n return t(\"general:amvic\"); //\"AMVIC Fee\";\r\n case \"Oil\":\r\n return t(\"general:oil\"); //\"Oil Filter Fee\";\r\n case \"Tire Shewardship Fee\":\r\n case \"Tire\":\r\n return t(\"general:tire\"); //\"Tire Stewardship Fee\";\r\n case \"PDE\":\r\n return t(\"general:pde\"); //\"Pre Delivery Inspection Fee\";\r\n case \"Federal Excise Tax\":\r\n return t(\"general:federal_excise_tax\");\r\n case \"Freight\":\r\n return t(\"general:freight\");\r\n case \"ppsa\":\r\n return t(\"general:ppsa\");\r\n\r\n default:\r\n return title;\r\n }\r\n}\r\n\r\nexport function getParams(str) {\r\n var queryString = str || window.location.href || '';\r\n var keyValPairs = [];\r\n var params = {};\r\n queryString = queryString.replace(/.*?\\?/, \"\");\r\n\r\n if (queryString.length) {\r\n keyValPairs = queryString.split('&');\r\n for (let pairNum in keyValPairs) {\r\n var key = keyValPairs[pairNum].split('=')[0];\r\n if (!key.length) continue;\r\n if (typeof params[key] === 'undefined')\r\n params[key] = [];\r\n params[key].push(keyValPairs[pairNum].split('=')[1]);\r\n }\r\n }\r\n return params;\r\n}\r\n\r\n/*\r\n * Return the API Base URL according to which environement we are on.\r\n */\r\nexport function getApiBaseUrl() {\r\n if (window.location.host.indexOf(\"localhost\") !== -1)\r\n return process.env.REACT_APP_API_PATH_DEV;\r\n else if (window.location.host.indexOf(\"dev\") !== -1)\r\n return process.env.REACT_APP_API_PATH_DEV;\r\n else if (window.location.host.indexOf(\"mzca02mstrs16bzs001.dxcloud.episerver.net\") !== -1)\r\n return process.env.REACT_APP_API_PATH_PREPROD;\r\n else if (window.location.host.indexOf(\"preprod\") !== -1)\r\n return process.env.REACT_APP_API_PATH_PREPROD;\r\n else if (window.location.host.indexOf(\"preprod2\") !== -1)\r\n return process.env.REACT_APP_API_PATH_PREPROD2;\r\n else\r\n return process.env.REACT_APP_API_PATH_PROD;\r\n}\r\n\r\nexport function getBaseUrl() {\r\n if (window.location.host.indexOf(\"localhost\") !== -1)\r\n return \"https://preprod.mazda.ca\";\r\n else if (window.location.host.indexOf(\"mzca02mstrs16bzs001.dxcloud.episerver.net\") !== -1)\r\n return \"https://preprod.mazda.ca\";\r\n else\r\n return window.location.protocol + '//' + window.location.host;\r\n}\r\n\r\nexport function get360Data(visual, exterior = null, interior = null) {\r\n //console.log(visual, exterior, interior);\r\n\r\n if (visual) {\r\n const extCode = exterior ? exterior.code : visual.interiors[0].default_exterior.code;\r\n const intCode = interior ? interior.code : visual.interiors[0].code;\r\n if (!visual.exteriors[extCode]) {\r\n return {\r\n 'imagePlaceHolder': getBaseUrl() + process.env.REACT_APP_IMAGE_PLACEHOLDER_PATH\r\n };\r\n }\r\n\r\n const baseAssetPath = getBaseUrl() + process.env.REACT_APP_BASIC_CONTENT_PATH;\r\n const { file_path, end_index: imageAmount, filename_prefix } = visual.exteriors[extCode][360];\r\n const imageName = interior && interior.include_in_360 ? `${filename_prefix.replace(\" \", \"-\")}${intCode}-{index}.png` : `${filename_prefix.replace(\" \", \"-\")}{index}.png`;\r\n const imagePath = baseAssetPath + file_path.replace(\" \", \"-\");\r\n const { filename } = visual.interiors.find((currInt) => currInt.code === intCode);\r\n\r\n //const realFileName = interior.include_in_360 ? filename.replace(\".png\",\"\") + intCode + \".png\" : filename;\r\n //console.log(realFileName);\r\n const imagePathInterior = baseAssetPath + filename;\r\n\r\n return {\r\n imagePathInterior,\r\n imagePath,\r\n imageAmount,\r\n imageName,\r\n };\r\n } else {\r\n return {\r\n 'imagePlaceHolder': getBaseUrl() + process.env.REACT_APP_IMAGE_PLACEHOLDER_PATH\r\n };\r\n }\r\n\r\n}\r\n\r\nexport function getUrlParamsObject() {\r\n if (window.location.search.length)\r\n return decodeURI(window.location.search)\r\n .replace('?', '')\r\n .split('&')\r\n .map(param => param.split('='))\r\n .reduce((values, [key, value]) => {\r\n values[key] = value\r\n return values\r\n }, {});\r\n\r\n return {};\r\n}\r\n\r\nexport function getUrlParams(paramsObject) {\r\n return Object.keys(paramsObject)\r\n .map(key => `${key}=${paramsObject[key]}`)\r\n .join('&');\r\n}\r\n\r\nexport function getThumbnail(visual, model) {\r\n return;\r\n}\r\n\r\nexport function formatPrice(amount, noRounding) {\r\n if (amount === undefined || isNaN(amount))\r\n return '';\r\n\r\n const fractions = noRounding ? 2 : 0;\r\n\r\n const locale = getLang() === 'fr' ? 'fr-CA' : 'en-CA';\r\n return Number(amount).toLocaleString(locale, { style: 'currency', currency: 'CAD', minimumFractionDigits: fractions, maximumFractionDigits: fractions })\r\n}\r\nexport const convertKM = (distance) => {\r\n const locale = getLang() === 'fr' ? 'fr-CA' : 'en-CA';\r\n const kmFormat = getLang() === 'fr' ? ' km' : 'KM';\r\n return Number(distance).toLocaleString(locale, { minimumFractionDigits: 0, maximumFractionDigits: 0 }) + kmFormat;\r\n}\r\nexport const convertNum = (num, fractions) => {\r\n fractions = fractions === undefined ? 0 : fractions;\r\n const locale = getLang() === 'fr' ? 'fr-CA' : 'en-CA';\r\n return Number(num).toLocaleString(locale, { minimumFractionDigits: fractions, maximumFractionDigits: fractions });\r\n}\r\n\r\nexport function getBareWeekly(amount, term) {\r\n const numberYears = term / 12;\r\n const numberWeeks = numberYears * 52;\r\n const result = formatPrice(amount / numberWeeks);\r\n\r\n if (result === '$NaN')\r\n return \"\";\r\n else\r\n return result;\r\n}\r\n\r\nexport function getFinanceWeekly(amount, rate, term) {\r\n const testRate = rate / 100;\r\n const result = formatPrice((amount * (testRate / 52)) / (1 - Math.pow((1 + (testRate / 52)), -((term / 12) * (52)))));\r\n\r\n //console.log('getFinanceWeekly', amount, rate, term, result);\r\n\r\n if (result === '$NaN')\r\n return \"\";\r\n else\r\n return result;\r\n}\r\n\r\nexport function getLeaseBiWeeklyFromOptions(amount, rate, term) {\r\n let result;\r\n\r\n result = formatPrice(Math.ceil(amount / term * 12 / 26));\r\n\r\n if (result === '$NaN')\r\n return \"\";\r\n else\r\n return result;\r\n}\r\n\r\nexport function getLeaseBiWeeklyFromMsrp(amount, rate, term) {\r\n let result;\r\n\r\n const financialObj = JSON.parse(sessionStorage.getItem('financialObj'));\r\n \r\n const subtotal = amount + financialObj.adminServiceFees;\r\n const residual = financialObj.residual.find(element => element.term === term).rate;\r\n const kilometersLeaseValue = 0;\r\n const endValueLease = (subtotal) * ((residual + kilometersLeaseValue) / 100);\r\n\r\n result = formatPrice(Math.ceil(subtotal - endValueLease) / (term / 12 * 26));\r\n\r\n if (result === '$NaN')\r\n return \"\";\r\n else\r\n return result;\r\n}\r\n\r\nexport function goToTop() {\r\n document.body.scrollTop = 0;\r\n document.documentElement.scrollTop = 0;\r\n}\r\n\r\n\r\nexport function getIncentiveDisplayName(incentive) {\r\n switch (incentive) {\r\n case \"loyalty\":\r\n return getLang() === 'fr' ? \"Programme renouvellement de fidélité Mazda\" : \"Mazda Owner Loyalty Program\";\r\n case \"military\":\r\n return getLang() === 'fr' ? \"Programme Mazda pour militaires\" : \"Mazda Military Program\";\r\n case \"grad_award\":\r\n return getLang() === 'fr' ? \"Programme de diplômés Mazda\" : \"Mazda Graduate Program Award\";\r\n case \"first_time_owner\":\r\n return getLang() === 'fr' ? \"Programme Mazda pour premier propriétaire\" : \"Mazda First Owner Program\"; \r\n default:\r\n return incentive.type;\r\n }\r\n }\r\n\r\nexport function getDisplayableProvinceName() {\r\n switch(getProvince().toLowerCase()) {\r\n case 'on': \r\n return getLang() === 'en' ? \"Ontario\" : \"de l'Ontario\"\r\n case 'qc':\r\n return getLang() === 'en' ? 'Quebec' : \"du Québec\"\r\n case 'ab':\r\n return getLang() === 'en' ? 'Alberta' : \"de l'Alberta\"\r\n case 'bc':\r\n return getLang() === 'en' ? 'British Columbia' : \"de la Colombie Britanique\"\r\n case 'mb':\r\n return getLang() === 'en' ? 'Manitoba' : \"du Manitoba\"\r\n case 'nb':\r\n return getLang() === 'en' ? 'New Brunswick' : \"du Nouveau-Brunswick\"\r\n case 'nl':\r\n return getLang() === 'en' ? 'Newfoundland' : 'de Terre-Neuve'\r\n case 'nt':\r\n return getLang() === 'en' ? 'North-West Territories' : 'du Territoires du nord-ouest'\r\n case 'ns':\r\n return getLang() === 'en' ? 'Nova Scotia' : 'de la Nouvelle-Écosse'\r\n case 'nu':\r\n return getLang() === 'en' ? 'Nunavut' : \"du Nanavut\"\r\n case 'pe':\r\n return getLang() === 'en' ? 'Prince Edward Island' : \"de l'Île-du-Prince-Édouard\"\r\n case 'sk':\r\n return getLang() === 'en' ? 'Saskatchewan' : \"du Saskatchewan\"\r\n case 'yt':\r\n return getLang() === 'en' ? 'Yukon' : 'du Yukon'\r\n default:\r\n return '';\r\n }\r\n}\r\n\r\nexport function buildLegalContent(legalContentObject, legalIncentiveObject) {\r\n let legalContent = '';\r\n if (legalContentObject) {\r\n legalContentObject.map(item => {\r\n legalContent += item.copy\r\n });\r\n }\r\n\r\n // Append incentive legal\r\n if(legalIncentiveObject) {\r\n legalIncentiveObject.map(item => {\r\n legalContent += item.copy\r\n });\r\n }\r\n\r\n return legalContent;\r\n}\r\n\r\nexport function hideCmsHiddenBlock() {\r\n let shownBlocks = document.querySelectorAll('#Awards > .visually-shown');\r\n\r\n if (shownBlocks) {\r\n shownBlocks.forEach(function (e) {\r\n e.classList.remove('visually-shown');\r\n e.classList.add('visually-hidden');\r\n });\r\n }\r\n\r\n hideCmsFooterHiddenBlock();\r\n}\r\n\r\nexport function showCmsHiddenBlock(carline) {\r\n let hiddenBlocks = document.querySelectorAll('#BNP_AWARDS > .visually-hidden')//('#Awards > .'+carline+'.visually-hidden');\r\n\r\n if (hiddenBlocks) {\r\n hiddenBlocks.forEach(function (e) {\r\n e.classList.remove('visually-hidden');\r\n e.classList.add('visually-shown');\r\n });\r\n }\r\n}\r\n\r\nexport function hideCmsFooterHiddenBlock() {\r\n let hiddenBlocks = document.querySelectorAll('.mz-footer.mz-footer--container');\r\n\r\n if (hiddenBlocks) {\r\n hiddenBlocks.forEach(function (e) {\r\n e.classList.remove('visually-shown');\r\n e.classList.add('visually-hidden');\r\n });\r\n }\r\n}\r\n\r\nexport function showCmsFooterHiddenBlock() {\r\n let hiddenBlocks = document.querySelectorAll('.mz-footer.mz-footer--container');\r\n\r\n if (hiddenBlocks) {\r\n hiddenBlocks.forEach(function (e) {\r\n e.classList.remove('visually-hidden');\r\n e.classList.add('visually-shown');\r\n });\r\n }\r\n}\r\n\r\nexport function getCmsAwardsBlockFromCMS(year, carline) {\r\n if(!year || !carline) {\r\n return \"\";\r\n }\r\n\r\n let hiddenBlocks = document.querySelector(`#Awards > .${carline}-${year}.visually-hidden`);//('#Awards > .'+carline+'.visually-hidden');\r\n\r\n if (hiddenBlocks) {\r\n let text = hiddenBlocks.outerHTML.replace('visually-hidden', '');\r\n \r\n // Regular expression to replace src with data-src // fix for the hotlink that doesnt load the lazy load\r\n const regex = /]*)>/g;\r\n\r\n // Replace src with data-src\r\n const toReturn = text.replace(regex, '');\r\n //console.log(toReturn);\r\n\r\n return toReturn;\r\n }\r\n\r\n return \"\";\r\n}\r\n\r\nexport function customRound(value, decimals) {\r\n const factor = Math.pow(10, decimals);\r\n return Math.ceil(value * factor) / factor;\r\n}\r\n\r\nexport function updateLanguageLink() {\r\n const languageLink = document.getElementById('region-language-link');\r\n\r\n // Update the language link (From any submit return)\r\n if (window.location.hash && languageLink) {\r\n const newLanguage = languageLink.text;\r\n\r\n const langCodePattern = /lang_code=[^&]*/;\r\n\r\n // Remove the old hash\r\n if (languageLink.href.indexOf('#') !== -1) {\r\n const hashIndexPosition = languageLink.href.indexOf('#');\r\n\r\n languageLink.href = languageLink.href.substring(0, hashIndexPosition);\r\n }\r\n\r\n // Replace the lang_code parameter\r\n let newHash = window.location.hash.replace(langCodePattern, `lang_code=${newLanguage}`);\r\n languageLink.href = languageLink.href + newHash;\r\n \r\n //languageLink.href = languageLink.href.replace(langCodePattern, `lang_code=${newLanguage}`);\r\n }\r\n}\r\n\r\n","export const SummaryConstants = {\r\n DEBUG: 'DEBUG',\r\n CurrentStep: 'CurrentStep',\r\n\tPreviousStep: 'PreviousStep',\r\n\r\n\tCurrent360Rotation: 'Current360Rotation',\r\n SelectedExteriorColour: 'selectedExteriorColour',\r\n SelectedInteriorColour: 'selectedInteriorColour',\r\n SelectedColourExteriorIndex: 'SelectedColourExteriorIndex',\r\n SelectedColourInteriorIndex: 'SelectedColourInteriorIndex',\r\n\r\n EngineAndDrivetrain: 'EngineAndDrivetrain',\r\n SelectedModelIndex: 'SelectedModelIndex',\r\n Packages: 'Packages',\r\n\r\n Wheels: 'Wheels',\r\n SelectedWheel: 'selectedWheel',\r\n SelectedWheelIndex: 'SelectedWheelIndex',\r\n SelectedAccessories: 'selectedAccessories',\r\n SelectedWheelSize: 'SelectedWheelSize',\r\n Accessories: 'Accessories',\r\n\r\n Colours: 'Colours',\r\n DefaultExteriorColour: 'defaultExteriorColour',\r\n DefaultInteriorColour: 'defaultInteriorColour',\r\n\r\n AllowedColoursExterior: 'AllowedColoursExterior',\r\n\r\n SelectedModelYear: 'selectedModelYear',\r\n SelectedTrim: 'selectedTrim',\r\n SelectedTrimIndex: 'selectedTrimIndex',\r\n FinancialObj: 'financialObj',\r\n SelectedModel: 'selectedModel',\r\n VehicleTitle: 'vehicleTitle',\r\n\r\n SelectedPackage: 'selectedPackage',\r\n SelectedNonModelPackage: 'selectedNonModelPackage',\r\n SelectedWarrantyPackage: 'selectedWarrantyPackage',\r\n SelectedConnectedVehiclePackage: 'selectedConnectedVehiclePackage',\r\n SelectedAddedProtectionPackage: 'selectedAddedProtectionPackage',\r\n SelectedAppearanceProtectionPackage: 'selectedAppearanceProtectionPackage',\r\n SelectedAppearanceProtectionPlansPackage: 'selectedAppearanceProtectionPlansPackage',\r\n\r\n SelectedPackageIndex: 'selectedPackageIndex',\r\n SelectedNonModelPackageIndex: 'selectedNonModelPackageIndex',\r\n SelectedWarrantyIndex: 'selectedWarrantyIndex',\r\n SelectedConnectedVehicleIndex: 'selectedConnectedVehicleIndex',\r\n SelectedAddedProtectionIndex: 'selectedAddedProtectionIndex',\r\n SelectedAppearanceProtectionIndex: 'selectedAppearanceProtectionIndex',\r\n SelectedAppearanceProtectionPlanPackageIndex: 'selectedAppearanceProtectionPlanPackageIndex',\r\n\r\n IncludeFees: 'includeFees',\r\n IncludeRebates: 'includeRebates',\r\n IncludeTaxes: 'includeTaxes',\r\n\r\n ShowFinancePrice: 'showFinancePrice',\r\n\r\n UrlSlugObjectTrims: 'urlSlugObjectTrims',\r\n UrlSlugObjectEngineAndDrivetrain: 'urlSlugObjectEngineAndDrivetrain',\r\n UrlSlugObjectPackage: 'urlSlugObjectPackage',\r\n UrlSlugObjectColour: 'urlSlugObjectColour',\r\n UrlSlugObjectWheels: 'urlSlugObjectWheels',\r\n UrlSlugObjectAccessories: 'urlSlugObjectAccessories',\r\n UrlSlugObjectPayments: 'urlSlugObjectPayments',\r\n\r\n FinanceTermIndex: 'FinanceTermIndex',\r\n LeaseTermIndex: 'LeaseTermIndex',\r\n FinanceTerm: 'FinanceTerm',\r\n LeaseTerm: 'LeaseTerm',\r\n\r\n\r\n LoyaltyChecked: 'LoyaltyChecked',\r\n GraduateChecked: 'GraduateChecked',\r\n MilitaryChecked: 'MilitaryChecked',\r\n FirstTimeOwnerChecked: 'FirstTimeOwnerChecked',\r\n\r\n TradeInValue: 'TradeInValue',\r\n DownPaymentValue: 'DownPaymentValue',\r\n \r\n LegalVehicles: 'LegalVehicles',\r\n LegalTrims: 'LegalTrims',\r\n LegalEngineAndDrivetrain: 'LegalEngineAndDrivetrain',\r\n LegalOption: 'LegalOption',\r\n LegalPackage: 'LegalPackage',\r\n LegalConnectivity: 'LegalConnectivity',\r\n LegalColours: 'LegalColours',\r\n LegalWheels: 'LegalWheels',\r\n LegalAccessories: 'LegalAccessories',\r\n LegalProtections: 'LegalProtections',\r\n LegalPaymentInformation: 'LegalPaymentInformation',\r\n LegalSummary: 'LegalSummary',\r\n SpecificationData: 'SpecificationData',\r\n\r\n InitialFinance: 'InitialFinance',\r\n SelectedVehicle: 'SelectedVehicle',\r\n AvailableTrim: 'AvailableTrim',\r\n\r\n PPSA: 'PPSA',\r\n AllDataIsLoaded: 'AllDataIsLoaded',\r\n\r\n HasFinancialProviderError: 'HasFinancialProviderError',\r\n AnnualMileage : 'AnnualMileage'\r\n}","import axios from 'axios';\r\n\r\nexport async function handleRequest(type, url, data) {\r\n const responseData = await axios({\r\n method: type,\r\n url: url,\r\n data: data,\r\n headers: {\r\n 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',\r\n }\r\n });\r\n\r\n return responseData.data;\r\n}\r\n\r\nexport async function handleJsonRequest(type, url, data) {\r\n const responseData = await axios({\r\n method: type,\r\n url: url,\r\n data: data,\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n }\r\n });\r\n\r\n return responseData.data;\r\n}","import { handleRequest, handleJsonRequest } from '../stories/helpers/httpRequest';\r\nimport { getApiBaseUrl } from '../utils';\r\n\r\nexport default class ApiService {\r\n language = \"\";\r\n province = \"\";\r\n\r\n insertMockData(year, carline, data) {\r\n const mockedModels = [...window.mockedModels];\r\n \r\n const startsWithAny = mockedModels.some(str => carline.startsWith(str) && year === \"2025\");\r\n\r\n if (startsWithAny) {\r\n const mock = require('./financialMock.json');\r\n Object.assign(data.financial, mock);\r\n }\r\n\r\n return data;\r\n }\r\n\r\n constructor() {\r\n }\r\n\r\n /*\r\n * Step 1 - Get vehicles\r\n */\r\n async getVehicles() {\r\n const url = `${getApiBaseUrl()}/api/ModelYears?prov_code=${this.province}&lang_code=${this.language}`;\r\n\r\n const data = await handleRequest('get', url, {});\r\n\r\n // FOR MOCK \r\n data.data.model_years.forEach(model => {\r\n this.insertMockData(model.year.url_slug, model.carline.url_slug, model);\r\n })\r\n\r\n return data.data;\r\n }\r\n\r\n /*\r\n * Step 2 - Get trims\r\n */\r\n async getTrims(year, carline) {\r\n\r\n const url = `${getApiBaseUrl()}/api/Trims/${year}/${carline}/?prov_code=${this.province}&lang_code=${this.language}`;\r\n\r\n const data = await handleRequest('get', url, {});\r\n\r\n let dataToReturn = data.data;\r\n // FOR MOCK \r\n data.data.trims.forEach(trim => { \r\n this.insertMockData(year, carline, trim);\r\n })\r\n\r\n return dataToReturn;\r\n }\r\n\r\n /*\r\n * Step 3 - Get engine and drivetrain\r\n */\r\n async getEngineAndDrivetrain(year, carline, trim) {\r\n const url = `${getApiBaseUrl()}/api/EngineModels/${year}/${carline}/${trim}/?prov_code=${this.province}&lang_code=${this.language}`;\r\n\r\n const data = await handleRequest('get', url, {});\r\n // FOR MOCK \r\n this.insertMockData(year, carline,data.data.trim);\r\n\r\n data.data.models.forEach(model => {\r\n this.insertMockData(year, carline, model);\r\n })\r\n\r\n\r\n return data.data;\r\n }\r\n\r\n /*\r\n * Step 4 - Get packages\r\n */\r\n async getPackages(model, option) {\r\n\r\n const url = `${getApiBaseUrl()}/api/Packages/${model}/${option}/?prov_code=${this.province}&lang_code=${this.language}`;\r\n\r\n let data = await handleRequest('get', url, {});\r\n\r\n //Object.assign(data.data, mockProtection);\r\n\r\n return data.data;\r\n }\r\n\r\n /*\r\n * Step 5 - Get colours\r\n */\r\n async getColours(model, packageCode) {\r\n const url = `${getApiBaseUrl()}/api/Colors/${model}/${packageCode}?prov_code=${this.province}&lang_code=${this.language}`;\r\n\r\n const data = await handleRequest('get', url, {});\r\n // FOR MOCK \r\n this.insertMockData(data.data.year.url_slug, data.data.carline.url_slug, data.data);\r\n\r\n return data.data;\r\n }\r\n\r\n /*\r\n * Step 6 - Get wheels\r\n */\r\n async getWheels(model, packageCode) {\r\n const url = `${getApiBaseUrl()}/api/Wheels/${model}/${packageCode}?prov_code=${this.province}&lang_code=${this.language}`;\r\n\r\n const data = await handleRequest('get', url, {});\r\n this.insertMockData(data.data.year.url_slug, data.data.carline.url_slug, data.data); \r\n\r\n return data.data;\r\n }\r\n\r\n /*\r\n * Step 7 - Get accessories\r\n */\r\n async getAccessories(model, packageCode) {\r\n const url = `${getApiBaseUrl()}/api/Accessories/${model}/${packageCode}?prov_code=${this.province}&lang_code=${this.language}`;\r\n\r\n const data = await handleRequest('get', url, {});\r\n this.insertMockData(data.data.year.url_slug, data.data.carline.url_slug, data.data);\r\n\r\n return data.data;\r\n }\r\n\r\n /*\r\n * Step 8 - Get payments\r\n */\r\n async getPayments(model, packageCode) {\r\n const url = `${getApiBaseUrl()}/api/Financial/${model}/${packageCode}?prov_code=${this.province}&lang_code=${this.language}`;\r\n\r\n const data = await handleRequest('get', url, {});\r\n\r\n const mockedModels = [...window.mockedModels];\r\n \r\n const startsWithAny = mockedModels.some(str => data.data.based_on.model_code.startsWith(str));\r\n\r\n if (startsWithAny) {\r\n // FOR MOCK\r\n const mock = require('./financialMock.json');\r\n Object.assign(data, mock);\r\n } \r\n\r\n\r\n return data.data;\r\n\r\n }\r\n\r\n /*\r\n * Step 9 - Get summary\r\n */\r\n async getSummary(model, packageCode) {\r\n const url = `${getApiBaseUrl()}/api/BuildSummaryLegal/${model}/${packageCode}?prov_code=${this.province}&lang_code=${this.language}`;\r\n\r\n const data = await handleRequest('get', url, {});\r\n\r\n return data.data;\r\n }\r\n\r\n /*\r\n * Complement Data - Get model specfication data\r\n */\r\n async getSpecificationsData(model, optionCode) {\r\n const url = `${getApiBaseUrl()}/api/specs?lang_code=${this.language}`;\r\n\r\n var fullModelCode = model + \"/\" + optionCode;\r\n const requestData = JSON.stringify({ \"cars\": [fullModelCode] });\r\n\r\n const data = await handleJsonRequest('POST', url, requestData);\r\n\r\n return data.data;\r\n\r\n }\r\n\r\n /*\r\n * Get build data by build id.\r\n */\r\n async getBuildDataById(buildId) {\r\n const url = `${getApiBaseUrl()}/api/BuildYourMazda/${buildId}`;\r\n const data = await handleJsonRequest('GET', url, {});\r\n return data;\r\n }\r\n\r\n\r\n /*\r\n * Get the dealer data by dealer id.\r\n */\r\n async getDealerDataById(dealerId) {\r\n const url = `${getApiBaseUrl()}/api/Dealers/${dealerId}`;\r\n const data = await handleJsonRequest('GET', url, {});\r\n return data;\r\n }\r\n\r\n}","const NodeCache = require('node-cache');\r\n\r\nexport default class Cache {\r\n _cache;\r\n\r\n constructor() {\r\n this._cache = new NodeCache({\r\n stdTTL: 900 // standard in seconds\r\n });\r\n }\r\n\r\n flushAll () {\r\n this.cache.flushAll()\r\n }\r\n\r\n set (res, queryParams, bodyParams, url) {\r\n if (!res) {\r\n throw new ReferenceError('you must pass a response object')\r\n }\r\n \r\n if (Array.isArray(queryParams) && typeof queryParams !== 'undefined') {\r\n throw new TypeError('queryParams must be an object or unset')\r\n }\r\n \r\n if (!Array.isArray(bodyParams) && typeof bodyParams !== 'undefined') {\r\n throw new TypeError('bodyParams must be an array or unset')\r\n }\r\n \r\n // if (res.config.url[0] !== '/') {\r\n // res.config.url = '/' + res.config.url\r\n // }\r\n \r\n if (!Array.isArray(queryParams) || Array.isArray(bodyParams)) {\r\n const queryObject = {}\r\n const bodyObject = {}\r\n const req = res.data\r\n \r\n \r\n if (!Array.isArray(queryParams) && res.config.params) {\r\n Object.keys(queryParams).forEach(key => {\r\n queryObject[key] = res.config.params[key]\r\n })\r\n }\r\n \r\n if (Array.isArray(bodyParams)) {\r\n bodyParams.forEach(elem => {\r\n bodyObject[elem] = req[elem]\r\n })\r\n }\r\n \r\n this._cache.set(url + '-' + bodyParams[0], res.data)\r\n \r\n } else {\r\n this._cache.set(url, res.data)\r\n }\r\n \r\n }\r\n \r\n get (url, body, config, queryParams, bodyParams) {\r\n if (!url) {\r\n throw new ReferenceError('you must pass a response object')\r\n }\r\n \r\n if ((Array.isArray(body) || typeof body !== 'object') && typeof body !== 'undefined') {\r\n throw new TypeError('body must be an object or unset')\r\n }\r\n \r\n if ((Array.isArray(config) || typeof config !== 'object') && typeof config !== 'undefined') {\r\n throw new TypeError('config must be an object or unset')\r\n }\r\n \r\n if (Array.isArray(queryParams) && typeof queryParams !== 'undefined') {\r\n throw new TypeError('queryParams must be an object or unset')\r\n }\r\n \r\n if (!Array.isArray(bodyParams) && typeof bodyParams !== 'undefined') {\r\n throw new TypeError('bodyParams must be an array or unset')\r\n }\r\n \r\n // if (url[0] !== '/') {\r\n // url = '/' + url\r\n // }\r\n \r\n if (!Array.isArray(queryParams) || Array.isArray(bodyParams)) {\r\n const queryObject = {}\r\n const bodyObject = {}\r\n \r\n \r\n if (!Array.isArray(queryParams) && config && config.params) {\r\n Object.keys(queryParams).forEach(key => {\r\n queryObject[key] = config.params[key]\r\n })\r\n }\r\n \r\n if (Array.isArray(bodyParams) && body) {\r\n bodyParams.forEach(elem => {\r\n bodyObject[elem] = body[elem]\r\n })\r\n }\r\n return this._cache.get(url + '-' + bodyParams[0])\r\n } else if (!config && typeof url === 'object') {\r\n return this._cache.get(url.url)\r\n }\r\n \r\n return this._cache.get(url)\r\n \r\n } \r\n}","import Cache from './Cache';\r\n\r\nexport default class PostCache {\r\n _axios = null;\r\n _cachedUrls = null;\r\n _cache = null;\r\n\r\n constructor(axios, cachedUrls) {\r\n this._axios = axios;\r\n this._cache = new Cache();\r\n\r\n if (!axios) {\r\n throw new ReferenceError('You must pass axios or axios instance')\r\n }\r\n\r\n\r\n }\r\n\r\n setCachedUrls(cachedUrls) {\r\n this._cachedUrls = cachedUrls;\r\n\r\n if (!cachedUrls) {\r\n throw new ReferenceError('c\\'mon, man')\r\n }\r\n\r\n if (!Array.isArray(cachedUrls)) {\r\n throw new TypeError('the cached urls must be an array')\r\n }\r\n\r\n if (cachedUrls.some(elem => {\r\n if (!elem) {\r\n return true\r\n }\r\n\r\n if (Array.isArray(elem)) {\r\n return true\r\n }\r\n\r\n if (typeof elem === 'object') {\r\n if (!elem.url) {\r\n return true\r\n }\r\n } else if (typeof elem !== 'string') {\r\n return true\r\n }\r\n })) {\r\n throw new TypeError('Please, provide only objects (with a url) or a string')\r\n }\r\n }\r\n\r\n async post(url, body, config) {\r\n if (!body) {\r\n throw ReferenceError('You must provide a body for a post request (even if it is empty)')\r\n }\r\n\r\n if (typeof body !== 'object' || Array.isArray(body)) {\r\n throw TypeError('The body must be an object (even if it is empty)')\r\n }\r\n\r\n let cacheable = false\r\n\r\n this._cachedUrls.forEach(elem => {\r\n if (typeof elem === 'string') {\r\n if (url.includes(elem)) {\r\n cacheable = elem\r\n }\r\n } else {\r\n if (url.includes(elem.url)) {\r\n cacheable = elem\r\n }\r\n }\r\n })\r\n\r\n if (cacheable) {\r\n let cached = null\r\n\r\n if (typeof cacheable === 'string') {\r\n cached = this._cache.get(cacheable)\r\n } else {\r\n cached = this._cache.get(cacheable.url, body, config, cacheable.queryParams, cacheable.bodyParams)\r\n }\r\n\r\n if (cached) {\r\n return Promise.resolve({\r\n data: cached,\r\n status: 200,\r\n statusText: 'OK',\r\n headers: {},\r\n request: {}\r\n })\r\n } else {\r\n\r\n if(!window.providerCalls)\r\n window.providerCalls = 1;\r\n else\r\n window.providerCalls += 1;\r\n \r\n //console.log(`PROVIDER # OF CALLS SO FAR ${window.providerCalls}`);\r\n \r\n const response = await this._axios.post(url, body, config)\r\n this._cache.set(response, cacheable.queryParams, cacheable.bodyParams, url)\r\n\r\n return response\r\n }\r\n }\r\n\r\n return this._axios.post(url, body, config)\r\n }\r\n\r\n async get(url, config) {\r\n\r\n let cacheable = false\r\n\r\n this._cachedUrls.forEach(elem => {\r\n if (typeof elem === 'string') {\r\n if (url.includes(elem)) {\r\n cacheable = elem\r\n }\r\n } else {\r\n if (url.includes(elem.url)) {\r\n cacheable = elem\r\n }\r\n }\r\n })\r\n\r\n if (cacheable) {\r\n let cached = null\r\n const queryKeys = {}\r\n\r\n if (typeof cacheable === 'string') {\r\n cached = this._cache.get(cacheable)\r\n } else {\r\n\r\n if (cacheable.queryParams) {\r\n if (Array.isArray(cacheable.queryParams) && config) {\r\n cacheable.queryParams.forEach(elem => {\r\n queryKeys[elem] = config.params[elem]\r\n })\r\n } else if (config) {\r\n throw new TypeError('QueryParams must be an array')\r\n }\r\n }\r\n if (Object.keys(queryKeys).length > 0) {\r\n cached = this._cache.get(url, undefined, config, queryKeys, undefined)\r\n } else {\r\n cached = this._cache.get(cacheable)\r\n }\r\n }\r\n\r\n if (cached) {\r\n return Promise.resolve({\r\n data: cached,\r\n status: 200,\r\n statusText: 'OK, cached',\r\n headers: {},\r\n request: {}\r\n })\r\n } else {\r\n const response = await this._axios.get(url, config)\r\n if (Object.keys(queryKeys).length > 0) {\r\n this._cache.set(response, queryKeys, undefined, url)\r\n } else {\r\n this._cache.set(response)\r\n }\r\n return response\r\n }\r\n }\r\n\r\n return this._axios.get(url, config)\r\n }\r\n\r\n flushAll() {\r\n this._cache.flushAll()\r\n }\r\n}","import axios from 'axios';\r\nimport PostCache from './PostCache';\r\nimport { getBaseUrl } from '../utils';\r\nimport { SummaryConstants as Constants } from '../Helpers/summaryconstants';\r\n\r\nexport default class TcciService {\r\n language = \"\";\r\n province = \"\";\r\n postCache = null;\r\n\r\n constructor() {\r\n this.postCache = new PostCache(axios);\r\n }\r\n\r\n\r\n /*\r\n Calculate the total residual value on the color and accessories\r\n */\r\n getResidualTotal(summaryCalculator) {\r\n if (!summaryCalculator.SelectedColourExterior || !summaryCalculator.SelectedColourInterior) {\r\n return 0;\r\n }\r\n\r\n //let extColorValue = summaryCalculator.SelectedColourExterior.price ? summaryCalculator.SelectedColourExterior.price : 0;\r\n //let intColorValue = summaryCalculator.SelectedColourInterior.price ? summaryCalculator.SelectedColourInterior.price : 0;\r\n\r\n let totalAccessoriesResidualValue = 0;\r\n\r\n let accesories = Object.entries(summaryCalculator.SelectedAccessories);\r\n accesories.forEach((accessory) => {\r\n const residualValue = Number(accessory[1].residual_value ? accessory[1].residual_value : 0);\r\n\r\n // Fix arithmetic error when adding accessories residual value and we ended up with a bunch of 0000000001 at the end\r\n totalAccessoriesResidualValue = Math.round((Number(totalAccessoriesResidualValue) + residualValue) * 100) / 100;\r\n })\r\n\r\n let residualTotal = Math.round((totalAccessoriesResidualValue) * 100) / 100;\r\n \r\n //console.log(residualTotal, extColorValue, intColorValue, accessoriesValue);\r\n return residualTotal;\r\n }\r\n\r\n /*\r\n Handle the reqest sent to provider and has a post cache object to not send multiple time the same post \r\n */\r\n async handleRequest(url, data) {\r\n const mockedModels = [...window.mockedModels];\r\n\r\n const startsWithAny = mockedModels.some(str => data.Identifier.startsWith(str));\r\n\r\n if (startsWithAny) {\r\n const mock = require('./tcciMock.json');\r\n return mock.QuoteResponse;\r\n }\r\n\r\n const cachedUrls = [\r\n {\r\n url: url,\r\n bodyParams: [JSON.stringify(data)],\r\n },\r\n ]\r\n this.postCache.setCachedUrls(cachedUrls);\r\n\r\n const requestOptions = {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'x-requested-with': 'XMLHttpRequest'\r\n },\r\n body: JSON.stringify(data)\r\n };\r\n\r\n try {\r\n const responseData = await this.postCache.post(url, data, requestOptions);\r\n\r\n return responseData.data.QuoteResponse;\r\n } catch (err) {\r\n console.log('Failed to fetch data from payment provider:', err);\r\n\r\n return {}; //return await this.handleRequest(url, data);\r\n }\r\n }\r\n\r\n\r\n /*\r\n build the body to be sent to provider to retrieve the information\r\n\r\n it depends of the summarycalculator object, note that some parameter has started to be decoupled from the summarycalculator object in preparation for the refactoring\r\n\r\n productKey param can be both / loan / lease\r\n */\r\n buildBodyJson(summaryCalculator, withFees, withRebates, productKey, term, loyaltyChecked, graduateChecked, militaryChecked, firstTimeOwnerChecked, selectedAnnualMileage = 0) {\r\n if (!summaryCalculator) {\r\n return {}\r\n }\r\n\r\n if (!summaryCalculator.SelectedModel) {\r\n return {}\r\n }\r\n\r\n const financialObj = summaryCalculator.FinancialInfo;\r\n\r\n const mazdaCashIncentive = financialObj.incentive_programs.filter((fee) => fee.title === 'mazda_retail_cash').length ? summaryCalculator.FinancialInfo.incentive_programs.filter((fee) => fee.title === 'mazda_retail_cash')[0].price : 0;\r\n\r\n const loyaltyPriceRate = (loyaltyChecked ? loyaltyChecked : summaryCalculator.LoyaltyChecked) ? financialObj.incentive_programs.find(x => x.type === \"loyalty\").rate_value : 0;\r\n const loyaltyPrice = (loyaltyChecked ? loyaltyChecked : summaryCalculator.LoyaltyChecked) ? financialObj.incentive_programs.find(x => x.type === \"loyalty\").cash_value : 0;\r\n const graduatePrice = (graduateChecked ? graduateChecked : summaryCalculator.GraduateChecked) ? financialObj.incentive_programs.find(x => x.type === \"grad_award\").value : 0;\r\n const militaryPrice = (militaryChecked ? militaryChecked : summaryCalculator.MilitaryChecked) ? financialObj.incentive_programs.find(x => x.type === \"military\").value : 0;\r\n const firstTimeOwnerPrice = (firstTimeOwnerChecked ? firstTimeOwnerChecked : summaryCalculator.FirstTimeOwnerChecked) ? financialObj.incentive_programs.find(x => x.type === \"first_time_owner\").value : 0;\r\n\r\n // DO NOT ADD THE EV RABATE INCENTIVE IN, THIS IS CALCULATED BY THE FLAG ISEV ON PROVIDER SIDE\r\n const incentives = mazdaCashIncentive + graduatePrice + militaryPrice + firstTimeOwnerPrice + financialObj.calculatedFinance.specialIncentives;\r\n\r\n const modelCode = summaryCalculator.SelectedModel.model_code;\r\n const packageCode = summaryCalculator.SelectedPackage.option_code;\r\n\r\n //content += `
  • `;\r\n //content += `
  • `;\r\n //content += `
  • `;\r\n // TODO : MOVE THIS INTO THE UTILITY CLASS FOR REUSABILITY WITH LEASE OPTIONS\r\n let annualMileage = '24000';\r\n switch (selectedAnnualMileage) {\r\n case 3:\r\n annualMileage = '16000';\r\n break;\r\n case 2:\r\n annualMileage = '20000';\r\n break;\r\n case 0:\r\n default:\r\n annualMileage = '24000';\r\n }\r\n\r\n const baseMSRP = Math.round((summaryCalculator.SelectedModel.financial.msrp \r\n + summaryCalculator.SelectedPackage.financial.msrp\r\n + (summaryCalculator.SelectedColourExterior ? summaryCalculator.SelectedColourExterior.price : 0)\r\n + (summaryCalculator.SelectedColourInterior ? summaryCalculator.SelectedColourInterior.price : 0)) * 100) / 100;\r\n\r\n const options = summaryCalculator.SelectedWheel ? summaryCalculator.SelectedWheel.price : 0 //financialObj.calculatedFinance.options.total // Wheels\r\n + summaryCalculator.SelectedNonModelPackage.financial.msrp\r\n + summaryCalculator.SelectedWarrantyPackage.financial.msrp // Warranty \r\n + summaryCalculator.SelectedConnectedVehiclePackage.financial.msrp // Connected Vehicle \r\n + summaryCalculator.SelectedAddedProtectionPackage.financial.msrp // Added Protection\r\n + summaryCalculator.SelectedAppearanceProtectionPlansPackage.financial.msrp // Appearance Protection\r\n + financialObj.calculatedFinance.accessories.total; // Accesories \r\n\r\n const totalMSRP = summaryCalculator.SelectedModel.financial.msrp\r\n + summaryCalculator.SelectedPackage.financial.msrp // Actual Car packages \r\n + options\r\n + financialObj.exciseTax + financialObj.freight + financialObj.pde\r\n + (withFees ? financialObj.acTax + financialObj.amvic + financialObj.omvic + financialObj.tireStewardshipFee + financialObj.oil : 0);\r\n\r\n // TODO: MOVE THIS LOGIC INTO THE SUMMARYCALCULATOR BUSINESS LOGIC CLASS\r\n // Validate that trade-in value doesn't exceed max amount\r\n let tradeInVal = parseInt(summaryCalculator._tradeInValue, 10);\r\n // Tradein : Min: 0 , Max: (TotalMSRP-10000) \r\n if (parseInt(tradeInVal) > financialObj.maxDownPayment) {\r\n tradeInVal = financialObj.maxDownPayment;\r\n summaryCalculator.DownPaymentValue = 0;\r\n } else if (parseInt(tradeInVal) + financialObj.downPaymentValue > financialObj.maxDownPayment) {\r\n summaryCalculator.DownPaymentValue = financialObj.maxDownPayment - parseInt(tradeInVal);\r\n }\r\n\r\n if (typeof tradeInVal === 'string' && tradeInVal.length > 0) {\r\n summaryCalculator.TradeInValue = `$${tradeInVal}`;\r\n } else {\r\n summaryCalculator.TradeInValue = tradeInVal;\r\n }\r\n\r\n // Check if the balance is under 7500$, if so update the downpayment\r\n if (summaryCalculator.IncludeFees ? (financialObj.calculatedFinance.balanceToFinance < 7500 || financialObj.calculatedLease.leaseEndValue < 3000) : (financialObj.calculatedFinance.balanceToFinanceNoFees < 7500 || financialObj.calculatedLease.leaseEndValueNoFees < 3000)) {\r\n summaryCalculator.TradeInValue = 0;\r\n summaryCalculator.DownPaymentValue = 0;\r\n }\r\n\r\n return {\r\n \"Identifier\": `${modelCode}${packageCode}`, //`VXLP84AA00`\r\n \"BaseMSRP\": Number.parseFloat(Number.parseFloat(baseMSRP).toFixed(2)),\r\n \"ConfiguredOptions\": Number.parseFloat(Number.parseFloat(options).toFixed(2)),\r\n \"TotalMSRP\": Number.parseFloat(Number.parseFloat(totalMSRP).toFixed(2)),\r\n \"Province\": `${this.province}`,\r\n \"TotalResidualizedOptions\": Number.parseFloat(Number.parseFloat(this.getResidualTotal(summaryCalculator)).toFixed(2)),\r\n \"Parameters\": {\r\n \"ProductKey\": productKey, //\"both/loan/lease\",\r\n \"Downpayment\": Number.parseFloat(Number.parseFloat(summaryCalculator._downPaymentValue).toFixed(2)),\r\n \"TradeInValue\": Number.parseFloat(Number.parseFloat(summaryCalculator._tradeInValue).toFixed(2)),\r\n \"TradeInOwed\": 0,\r\n \"LeaseTerm\": productKey === 'lease' ? Number.parseInt(term) : 0,\r\n \"LoanTerm\": productKey === 'loan' ? Number.parseInt(term) : 0,\r\n \"AnnualMileage\": Number.parseFloat(annualMileage),\r\n \"Freight\": Number.parseFloat(financialObj.freight),\r\n \"PDE\": Number.parseFloat(Number.parseFloat(financialObj.pde).toFixed(2)),\r\n \"ACTax\": withFees ? Number.parseFloat(financialObj.acTax) : 0,\r\n \"FederalExciseTax\": Number.parseFloat(financialObj.exciseTax), //`${withFees ? exciseTax : 0}\r\n \"LeaseServiceFees\": productKey === 'lease' ? Number.parseFloat(financialObj.leaseServiceFees) : 0,\r\n \"FinanceAdminFee\": productKey === 'loan' ? (withFees ? Number.parseFloat(financialObj.adminServiceFees) : 0) : 0,\r\n \"AMVICFee\": withFees ? Number.parseFloat(Number.parseFloat(financialObj.amvic).toFixed(2)) : 0,\r\n \"OMVICFee\": withFees ? Number.parseFloat(Number.parseFloat(financialObj.omvic).toFixed(2)) : 0,\r\n \"TireStewardshipFee\": withFees ? Number.parseFloat(Number.parseFloat(financialObj.tireStewardshipFee).toFixed(2)) : 0,\r\n \"OilFilterFee\": withFees ? Number.parseFloat(Number.parseFloat(financialObj.oil).toFixed(2)) : 0,\r\n \"IsEV\": withRebates,\r\n \"CashIncentive\": Number.parseFloat(Number.parseFloat(incentives).toFixed(2)),\r\n \"WeeklyPayment\": true,\r\n \"BiWeeklyPayment\": true,\r\n \"MonthlyPayment\": true,\r\n \"MazdaAddedProtection\": 0,\r\n \"MazdaWearProtection\": 0,\r\n \"IsLoyaltyCustomer\": loyaltyChecked ? true : false,\r\n \"LoyaltyRateReduction\": loyaltyChecked ? Number.parseFloat(loyaltyPriceRate) : 0,\r\n \"LoyaltyCashIncentive\": loyaltyChecked ? Number.parseFloat(Number.parseFloat(loyaltyPrice).toFixed(2)) : 0,\r\n }\r\n }\r\n }\r\n\r\n /*\r\n Send the data to the retrieval http service and handle some basic status error.\r\n \r\n TODO : Handle all the returned error during the refactoring phase\r\n */\r\n async sendDataToService(summaryCalculator, withFees, withRebates, productKey, term, loyaltyChecked, graduateChecked, militaryChecked, firstTimeOwner, selectedAnnualMileage) {\r\n const url = `${getBaseUrl()}${process.env.REACT_APP_TCCI_API_PATH}`;\r\n const data = this.buildBodyJson(summaryCalculator, withFees, withRebates, productKey, term, loyaltyChecked, graduateChecked, militaryChecked, firstTimeOwner, selectedAnnualMileage);\r\n\r\n if (Object.keys(data).length === 0) {\r\n console.log('No data to send to the TCCI service');\r\n return {};\r\n }\r\n\r\n const response = await this.handleRequest(url, data);\r\n\r\n return response;\r\n }\r\n\r\n /*\r\n Extract the lease data from the response\r\n */\r\n async extractLeaseData(response) {\r\n const leaseObject = {};\r\n\r\n leaseObject.weekly = response[0].Lease.Quote.WeeklyPayment;\r\n leaseObject.biWeekly = response[0].Lease.Quote.BiWeeklyPayment;\r\n leaseObject.monthly = response[0].Lease.Quote.MonthlyPayment;\r\n leaseObject.weeklyWithTaxes = response[0].Lease.Quote.WeeklyPaymentWithTaxes;\r\n leaseObject.biWeeklyWithTaxes = response[0].Lease.Quote.BiWeeklyPaymentWithTaxes;\r\n leaseObject.monthlyWithTaxes = response[0].Lease.Quote.MonthlyPaymentWithTaxes;\r\n\r\n // Generic information\r\n leaseObject.leaseRate = response[0].Lease.Quote.LeaseRate\r\n leaseObject.freight = response[0].Lease.Quote.Freight;\r\n leaseObject.pde = response[0].Lease.Quote.Pde;\r\n leaseObject.airConditioningTax = response[0].Lease.Quote.AirConditioningTax;\r\n leaseObject.omvicFee = response[0].Lease.Quote.OmvicFee;\r\n leaseObject.amvicFee = response[0].Lease.Quote.AmvicFee;\r\n leaseObject.tireStewardshipFee = response[0].Lease.Quote.TireStewardshipFee;\r\n leaseObject.oilFilterFee = response[0].Lease.Quote.OilFilterFee;\r\n leaseObject.ppsa = response[0].Lease.Quote.Ppsa;\r\n leaseObject.leaseDealerServiceFee = response[0].Lease.Quote.LeaseDealerServiceFee;\r\n leaseObject.leaseRateDiscounted = response[0].Lease.Quote.LeaseRateDiscounted;\r\n leaseObject.isLoyaltyCustomer = response[0].Lease.Quote.IsLoyaltyCustomer;\r\n leaseObject.hasError = response[0].Lease.HasError;\r\n leaseObject.capitalizedCost = response[0].Lease.Quote.CapitalizedCost;\r\n leaseObject.residualAmount = response[0].Lease.Quote.ResidualAmount;\r\n\r\n return leaseObject;\r\n }\r\n\r\n /*\r\n Extract the loan data from the response\r\n */\r\n async extractLoanData(response) {\r\n const loanObject = {};\r\n\r\n loanObject.weekly = response[0].Loan.Quote.WeeklyPayment;\r\n loanObject.biWeekly = response[0].Loan.Quote.BiWeeklyPayment;\r\n loanObject.monthly = response[0].Loan.Quote.MonthlyPayment;\r\n loanObject.weeklyWithTaxes = response[0].Loan.Quote.WeeklyPaymentWithTaxes;\r\n loanObject.biWeeklyWithTaxes = response[0].Loan.Quote.BiWeeklyPaymentWithTaxes;\r\n loanObject.monthlyWithTaxes = response[0].Loan.Quote.MonthlyPaymentWithTaxes;\r\n loanObject.costOfBorrowing = Number(response[0].Loan.Quote.CostOfBorrowingWithoutTaxes);\r\n loanObject.costOfBorrowingWithTaxes = Number(response[0].Loan.Quote.CostOfBorrowing);\r\n\r\n // GENERIC\r\n loanObject.freight = response[0].Loan.Quote.Freight;\r\n loanObject.pde = response[0].Loan.Quote.Pde;\r\n loanObject.airConditioningTax = response[0].Loan.Quote.AirConditioningTax;\r\n loanObject.omvicFee = response[0].Loan.Quote.OmvicFee;\r\n loanObject.amvicFee = response[0].Loan.Quote.AmvicFee;\r\n loanObject.tireStewardshipFee = response[0].Loan.Quote.TireStewardshipFee;\r\n loanObject.oilFilterFee = response[0].Loan.Quote.OilFilterFee;\r\n loanObject.ppsa = response[0].Loan.Quote.Ppsa;\r\n loanObject.aprRate = response[0].Loan.Quote.AprRate;\r\n //loanObject.aprRate = this.FinancialInfo.calculatedFinance.financeValues[this.FinanceTermIndex].aprRate ? Number(this.FinancialInfo.calculatedFinance.financeValues[this.FinanceTermIndex].aprRate).toFixed(2) : \"\";\r\n loanObject.loanPeriod = response[0].Loan.Quote.LoanPeriod; // TERM\r\n loanObject.aprRateDiscounted = response[0].Loan.Quote.AprRateDiscounted;\r\n //loanObject.aprRateDiscounted = this.FinancialInfo.calculatedFinance.financeValues[this.FinanceTermIndex].aprRateDiscounted ? Number(this.FinancialInfo.calculatedFinance.financeValues[this.FinanceTermIndex].aprRateDiscounted).toFixed(2) : \"\";\r\n loanObject.isLoyaltyCustomer = response[0].Loan.Quote.IsLoyaltyCustomer;\r\n loanObject.loanAmount = response[0].Loan.Quote.LoanAmount;\r\n loanObject.hasError = response[0].Loan.Quote.HasError;\r\n\r\n loanObject.gstAmount = response[0].Loan.Quote.GstAmount;\r\n loanObject.pstAmount = response[0].Loan.Quote.PstAmount;\r\n\r\n return loanObject;\r\n }\r\n\r\n getResidualAmountFromLeaseData(response) {\r\n if(response && response.length > 0)\r\n return response[0].Lease.Quote.ResidualAmount;\r\n else\r\n return 0;\r\n }\r\n}","/* global dataLayer */\r\n\r\nimport { useTranslation } from \"react-i18next\";\r\nimport SummaryCalculator from './summarycalculator';\r\n\r\nexport default class GTMHelper {\r\n\tpushToGTMDataLayer\t= (data) =>{\r\n\t\ttry {\r\n\t window.dataLayer.push(data);\r\n\t } catch (err) {\r\n\t console.log('Error: dataLayer is not found in pushToGTMDataLayer().', data)\r\n\t }\r\n\t}\r\n setGTM(data, isSimple, showPrevious) {\r\n\t\t// UNIT TEST CASE : Don't run the GTM.\r\n\t\tif(!window.summaryCalculator)\r\n\t\t\treturn;\r\n\r\n\t\tconst summaryCalculator = window.summaryCalculator;\r\n\t\tconst selectedVehicle = summaryCalculator.selectedVehicle;\r\n\t\tconst steps = [\r\n\t\t\t'vehicles',\r\n\t\t\t'trim',\r\n\t\t\t'options',\r\n\t\t\t'colour',\r\n\t\t\t'wheels',\r\n\t\t\t'connectivity',\r\n\t\t\t'accessories',\r\n\t\t\t'protections',\r\n\t\t\t'payments',\r\n\t\t\t'summary'\r\n\t\t]\r\n\t\tconst GTMData = data;\r\n\r\n\t\tGTMData.step = GTMData.action === 'Next Step' ? steps[summaryCalculator.CurrentStep+1] : steps[summaryCalculator.CurrentStep];\r\n\t\tif(GTMData.action === 'Step'){\r\n\t\t\tGTMData.event = 'BnP - Step ' + GTMData.step;\r\n\t\t} else {\r\n\t\t\tGTMData.event = 'BnP - ' + GTMData.action;\r\n\t\t}\r\n\t\tif(showPrevious) GTMData.previous = steps[summaryCalculator.PreviousStep]\r\n\t\tif(!isSimple){\r\n\t\t\tGTMData.model = selectedVehicle.model;\r\n\t\t\tGTMData.trim = selectedVehicle.trim;\r\n\t\t\tGTMData.model = selectedVehicle.carline;\r\n\t\t\tGTMData.engine = selectedVehicle.model;\r\n\t\t\tGTMData.year = selectedVehicle.year;\r\n\t\t\tGTMData.interior = summaryCalculator._selectedColourInterior?.code !== undefined ? summaryCalculator._selectedColourInterior?.code : '';\r\n\t\t\tGTMData.exterior = summaryCalculator._selectedColourExterior?.code !== undefined ? summaryCalculator._selectedColourExterior?.code : '';\r\n\t\t\tGTMData.wheel = summaryCalculator._selectedWheel?.title !== undefined ? summaryCalculator._selectedWheel?.title : '';\r\n\t\t\tif(steps[summaryCalculator.PreviousStep] === 'wheels' && GTMData.wheel === '') GTMData.wheel = 'No Selection';\r\n\t\t\tGTMData.accessories = summaryCalculator._selectedAccessories.length > 0 ? summaryCalculator._selectedAccessories.map(({ name }) => name) : '';\r\n\t\t\tif(summaryCalculator.FinancialInfo) GTMData.price = summaryCalculator.FinancialInfo.calculatedCash.subtotal;\r\n\t\t}\r\n\t\tdelete GTMData.action;\r\n\t\tthis.pushToGTMDataLayer(GTMData)\r\n }\r\n\r\n}","import axios from 'axios';\r\nimport PostCache from './PostCache';\r\nimport { getBaseUrl } from '../utils';\r\n\r\nimport GTMHelper from '../Helpers/gtmHelper';\r\n\r\nimport ReactHtmlParser from 'react-html-parser';\r\n\r\nexport default class OcaService {\r\n lease = {};\r\n loan = {};\r\n province = \"\";\r\n postCache = null;\r\n\r\n constructor() {\r\n this.postCache = new PostCache(axios);\r\n }\r\n\r\n /*\r\n Handle the reqest sent to OCA and has a post cache object to not send the same post multiple times\r\n */\r\n async handleRequest(url, data) {\r\n const cachedUrls = []; \r\n this.postCache.setCachedUrls(cachedUrls);\r\n\r\n const requestOptions = {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'x-requested-with': 'XMLHttpRequest'\r\n },\r\n body: JSON.stringify(data)\r\n };\r\n\r\n // TEMPORARY MESURE UNTIL BNS HAS FOUND THE BUG\r\n try\r\n {\r\n const responseData = await this.postCache.post(url, data, requestOptions);\r\n\r\n window.ocaRetry === undefined || window.ocaRetry === NaN ? window.ocaRetry = 0: window.ocaRetry++;\r\n \r\n // Do we have data, if so reset the retry counter \r\n if (responseData.data && responseData.data.oca_url.length > 0) {\r\n window.ocaRetry = 0\r\n return responseData.data;\r\n }\r\n\r\n if (window.ocaRetry < 15) {\r\n const delay = ms => new Promise(res => setTimeout(res, ms));\r\n console.log('try again because it failed');\r\n\r\n await delay(500);\r\n\r\n return await this.handleRequest(url, data); \r\n }\r\n } catch {\r\n console.log('try again because it failed');\r\n\r\n return await this.handleRequest(url, data);\r\n } \r\n }\r\n\r\n /*\r\n build the body to be sent to OCA to retrieve url\r\n\r\n endpoint requirements can be found here...\r\n https://confluence.uhub.biz/pages/resumedraft.action?draftId=516591718&draftShareId=cf0565da-a3f2-45c0-b0de-811b21a89d2b&\r\n */\r\n buildBodyJson(summaryCalculator, financeType) {\r\n\r\n if (!summaryCalculator) {\r\n return {}\r\n }\r\n\r\n const default360 = summaryCalculator._selectedExteriorColour['360'];\r\n const financialInfo = summaryCalculator.FinancialInfo;\r\n\r\n if(financeType === 'loan'){\r\n return {\r\n \"data\": {\r\n \"payload\": {\r\n \"vehicle\":{\r\n \"year\":Number(summaryCalculator.selectedVehicle.year), // consider that half years exists for mazda\r\n \"make\":\"Mazda\",\r\n \"model\":ReactHtmlParser(sessionStorage.getItem('plainTitle')),\r\n \"trim\":summaryCalculator.selectedVehicle.trim,\r\n \"imageUrl\": `${summaryCalculator._colours.visual.static_content_base_path}${default360.file_path}${default360.filename_prefix}${summaryCalculator._current360Rotation}${default360.filename_suffix}`, // same image as the one on the summary page\r\n \"buildLink\": `https://www.mazda.ca/en/shopping/build-and-price/#/${summaryCalculator._colours.carline.url_slug}/${summaryCalculator._colours.year.url_slug}/`,\r\n \"msrp\":summaryCalculator._ocaService.loan.cashPrice\r\n },\r\n \"tradeIn\":{\r\n \"tradeInValue\":summaryCalculator._tradeInValue,\r\n \"amountOwedOnTrade\":0\r\n },\r\n \"loanType\": financeType, // lease or loan\r\n \"language\": summaryCalculator._language + \"-CA\",\r\n \"loan\":{\r\n \"cashPrice\":summaryCalculator._ocaService.loan.cashPrice,\r\n \"rate\": summaryCalculator._ocaService.loan.rate,\r\n \"term\":Number(summaryCalculator._ocaService.loan.term),\r\n \"payment\": Number(summaryCalculator._ocaService.loan.payment),\r\n \"financeAmount\":Number(summaryCalculator.FinancialInfo.calculatedFinance.balanceToFinanceWithFeesTaxed),\r\n \"programEndDateTime\":summaryCalculator._ocaService.loan.Program_End_datetime,\r\n \"downPayment\": Number(summaryCalculator._ocaService.loan.downPayment),\r\n \"apr\":Number(summaryCalculator._ocaService.loan.apr)\r\n }\r\n },\r\n \"expiration\": \"600s\"\r\n }\r\n }\r\n }else{\r\n return {\r\n \"data\": {\r\n \"payload\": {\r\n \"vehicle\":{\r\n \"year\":Number(summaryCalculator.selectedVehicle.year),\r\n \"make\":\"Mazda\",\r\n \"model\":ReactHtmlParser(sessionStorage.getItem('plainTitle')),\r\n \"trim\":summaryCalculator.selectedVehicle.trim,\r\n \"imageUrl\": `${summaryCalculator._colours.visual.static_content_base_path}${default360.file_path}${default360.filename_prefix}${summaryCalculator._current360Rotation}${default360.filename_suffix}`,\r\n \"buildLink\": `https://www.mazda.ca/en/shopping/build-and-price/#/${summaryCalculator._colours.carline.url_slug}/${summaryCalculator._colours.year.url_slug}/`,\r\n \"msrp\":summaryCalculator._ocaService.lease.sellingPrice\r\n },\r\n \"tradeIn\":{\r\n \"tradeInValue\":summaryCalculator._tradeInValue,\r\n \"amountOwedOnTrade\":0\r\n },\r\n \"loanType\": financeType, // lease or loan\r\n \"language\": summaryCalculator._language + \"-CA\",\r\n \"lease\":{\r\n \"sellingPrice\": summaryCalculator._ocaService.lease.sellingPrice,\r\n \"residualValue\": summaryCalculator._ocaService.lease.residualValue,\r\n \"term\":Number(summaryCalculator._ocaService.lease.term),\r\n \"monthlyDepreciation\":summaryCalculator._ocaService.lease.monthlyDepreciation,\r\n \"totalInterestCost\":summaryCalculator._ocaService.lease.totalInterestCost * summaryCalculator._ocaService.lease.term,\r\n \"interestFactor\":summaryCalculator._ocaService.lease.interestFactor,\r\n \"baseMonthlyPayment\":summaryCalculator._ocaService.lease.baseMonthlyPayment * summaryCalculator._ocaService.lease.term,\r\n \"gstHSTRate\": summaryCalculator._ocaService.lease.gstHSTRate,\r\n \"gstHSTAmountOnRental\": summaryCalculator._ocaService.lease.gstHSTAmountOnRental,\r\n \"totalMonthlyPayment\":summaryCalculator._ocaService.lease.totalMonthlyPayment,\r\n \"adjustedCapitalizedCost\":summaryCalculator._ocaService.lease.adjustedCapitalizedCost,\r\n \"PSTRate\": summaryCalculator._ocaService.lease.PSTRate,\r\n \"PSTAmount\":summaryCalculator._ocaService.lease.PSTAmount,\r\n \"programEndDateTime\":summaryCalculator._ocaService.lease.Program_End_datetime,\r\n \"downPayment\": Number(summaryCalculator._ocaService.lease.downPayment),\r\n \"apr\":Number(summaryCalculator._ocaService.lease.apr.toFixed(2))\r\n }\r\n },\r\n \"expiration\": \"600s\"\r\n }\r\n }\r\n }\r\n }\r\n \r\n /*\r\n Send the data to the retrieval http service and handle some basic status error.\r\n \r\n TODO : Handle all the returned error during the refactoring phase\r\n */\r\n async sendDataToService(summaryCalculator, financeType) {\r\n const gtmHelper = new GTMHelper();\r\n\r\n //get current loan/lease vals\r\n await summaryCalculator.updateSingleLineFromFinancialProvider();\r\n\r\n const url = `${getBaseUrl()}${process.env.REACT_APP_OCA_API_PATH}`;\r\n const data = this.buildBodyJson(summaryCalculator, financeType);\r\n const response = await this.handleRequest(url, data);\r\n\r\n if (response.oca_url.length > 0) {\r\n const hardcodedCid = `cid=mazda-credit-application`;\r\n const trackingID = document.cookie.split('; _ga=').pop().split(';').shift(); \r\n const trackingParam = trackingID.length > 1 ? `&gcid=${trackingID}`:'';\r\n const bnsParam = `&appid=${response.oca_url.split('/').at(-1)}`;\r\n\r\n const price = financeType === 'loan' ? summaryCalculator.FinancialInfo.calculatedFinance.balanceToFinanceWithFeesWithRebatesTaxed : summaryCalculator.FinancialInfo.calculatedLease.balanceToLeaseWithFeesWithRebatesTaxed\r\n //gtm tracking\r\n gtmHelper.setGTM({'action':`OCA - Modal Submit ${financeType === 'loan' ? 'Finance' : 'Lease'}`,'year': data.data.payload.vehicle.year,'model': ReactHtmlParser(summaryCalculator.selectedVehicle.carline), 'trim': data.data.payload.vehicle.trim, 'price' : Math.round(price), 'application ID' : response.oca_url.split('/').at(-1)}, true, false);\r\n\r\n const exitUrl=`${response.oca_url}?${hardcodedCid}${trackingParam}${bnsParam}`;\r\n setTimeout(() => {\r\n window.open(exitUrl, '_blank');\r\n })\r\n }else{\r\n console.log('**** FAILED TO SEND DATA TO OCA ****', response);\r\n }\r\n }\r\n\r\n}\r\n","import ReactHtmlParser from 'react-html-parser';\r\n\r\n/**\r\n * Calculates the interest rate given the number of periods, payment, present value, future value, and type of interest.\r\n * \r\n * @param {number} periods - The number of periods.\r\n * @param {number} payment - The payment made each period.\r\n * @param {number} present - The present value, i.e. the initial amount borrowed.\r\n * @param {number} future - The future value, i.e. the amount to be paid back.\r\n * @param {number} type - The type of interest, where 0 is nominal, 1 is effective.\r\n * @param {number} [guess] - The initial guess for the interest rate.\r\n * @returns {number} The interest rate.\r\n */\r\nexport function RATE(periods, payment, present, future, type, guess) {\r\n guess = (guess === undefined) ? 0.01 : guess; // Set the initial guess\r\n future = (future === undefined) ? 0 : future; // Set the future value\r\n type = (type === undefined) ? 0 : type; // Set the type of interest\r\n\r\n // Set maximum epsilon for end of iteration\r\n var epsMax = 1e-10;\r\n\r\n // Set maximum number of iterations\r\n var iterMax = 10;\r\n\r\n // Implement Newton's method\r\n var y, y0, y1, x0, x1 = 0, // Initialise variables\r\n f = 0,\r\n i = 0;\r\n var rate = guess;\r\n if (Math.abs(rate) < epsMax) {\r\n y = present * (1 + periods * rate) + payment * (1 + rate * type) * periods + future;\r\n } else {\r\n f = Math.exp(periods * Math.log(1 + rate));\r\n y = present * f + payment * (1 / rate + type) * (f - 1) + future;\r\n }\r\n y0 = present + payment * periods + future;\r\n y1 = present * f + payment * (1 / rate + type) * (f - 1) + future;\r\n i = x0 = 0;\r\n x1 = rate;\r\n while ((Math.abs(y0 - y1) > epsMax) && (i < iterMax)) {\r\n rate = (y1 * x0 - y0 * x1) / (y1 - y0);\r\n x0 = x1;\r\n x1 = rate;\r\n if (Math.abs(rate) < epsMax) {\r\n y = present * (1 + periods * rate) + payment * (1 + rate * type) * periods + future;\r\n } else {\r\n f = Math.exp(periods * Math.log(1 + rate));\r\n y = present * f + payment * (1 / rate + type) * (f - 1) + future;\r\n }\r\n y0 = y1;\r\n y1 = y;\r\n ++i;\r\n }\r\n return rate;\r\n};\r\n\r\n/**\r\n * Calculates the payment amount per period based on the interest rate, number of payments, present value, future value, and type of interest.\r\n *\r\n * @param {number} rate_per_period - The interest rate per period.\r\n * @param {number} number_of_payments - The total number of payments.\r\n * @param {number} present_value - The initial amount borrowed.\r\n * @param {number} future_value - The future value to be paid back.\r\n * @param {number} type - The type of interest (0 for nominal, 1 for effective).\r\n * @return {number} The payment amount per period.\r\n */\r\nexport function PMT(rate_per_period, number_of_payments, present_value, future_value, type){\r\n future_value = typeof future_value !== 'undefined' ? future_value : 0;\r\n type = typeof type !== 'undefined' ? type : 0;\r\n\r\n\tif(rate_per_period != 0.0){\r\n\t\t// Interest rate exists\r\n\t\tvar q = Math.pow(1 + rate_per_period, number_of_payments);\r\n\t\treturn -(rate_per_period * (future_value + (q * present_value))) / ((-1 + q) * (1 + rate_per_period * (type)));\r\n\r\n\t} else if(number_of_payments != 0.0){\r\n\t\t// No interest rate, but number of payments exists\r\n\t\treturn -(future_value + present_value) / number_of_payments;\r\n\t}\r\n\r\n\treturn 0;\r\n}","import React from 'react';\r\nimport { SummaryConstants as Constants } from './summaryconstants';\r\nimport ApiService from '../Services/ApiService';\r\nimport TcciService from '../Services/TcciService';\r\nimport OcaService from '../Services/OcaService';\r\nimport { getLang, getProvince, formatPrice, getParams, buildLegalContent, customRound } from '../utils';\r\nimport { RATE } from '../financeUtils';\r\nimport GTMHelper from './gtmHelper';\r\n\r\n// import format currency\r\n\r\n/*\r\nTODO: THERE IS A MIX OF THREE KIND OF LAYER HERE THAT NEED TO BE SPLITTED\r\n- STRING MANIPULATION UTILS\r\n- JSON PARSING\r\n- OBJECT MODEL WITH BROWSER RULES (SESSION STORAGE)\r\n\r\nREFACTOR:\r\n- PROVINCE RETRIEVAL AND INSERT INTO THE CLASS OBJECT INSTEAD OF SINGLE METHOD\r\n*/\r\nexport default class SummaryCalculator {\r\n _myInstance;\r\n _allDataIsLoaded = false;\r\n\r\n _apiService = null;\r\n _tcciService = null;\r\n\r\n selectedVehicle = {\r\n year: new Date().getFullYear(),\r\n carline: '',\r\n trim: '',\r\n model: null,\r\n packageCode: null,\r\n }\r\n selectedLanguage = \"\";\r\n\r\n _availableTrims = null;\r\n _selectedModelYear = null;\r\n\r\n _selectedTrim = null;\r\n _selectedTrimIndex = 0;\r\n\r\n _tradeInValue = 0;\r\n _downPaymentValue = 0;\r\n _loyaltyChecked = false;\r\n _militaryChecked = false;\r\n _graduateChecked = false;\r\n _firstTimeOwnerChecked = false;\r\n _accessoriesValue = 0;\r\n _annualMileage = 0;\r\n _financeTerm = null;\r\n _leaseTerm = null;\r\n _financeTermIndex = 0;\r\n _leaseTermIndex = 0;\r\n\r\n _pstRate = 0;\r\n _gstRate = 0;\r\n\r\n _financialInfo = null;\r\n _initialFinancial = null;\r\n\r\n _engineAndDrivetrain = null;\r\n _selectedModelIndex = 0;\r\n _selectedModel = null;\r\n _packages = null;\r\n _selectedPackage = {\r\n financial: {\r\n msrp: 0\r\n }\r\n };\r\n _selectedNonModelPackage = {\r\n financial: {\r\n msrp: 0\r\n }\r\n };\r\n _selectedWarrantyPackage = {\r\n financial: {\r\n msrp: 0\r\n }\r\n };\r\n _selectedConnectedVehiclePackage = {\r\n financial: {\r\n msrp: 0\r\n }\r\n };\r\n _selectedAddedProtectionPackage = {\r\n financial: {\r\n msrp: 0\r\n }\r\n };\r\n _selectedAppearanceProtectionPackage = {\r\n financial: {\r\n msrp: 0\r\n }\r\n };\r\n\r\n _selectedPackageIndex = null;\r\n _selectedNonModelPackageIndex = null;\r\n _selectedWarrantyIndex = null;\r\n _selectedConnectedVehicleIndex = null;\r\n _selectedAddedProtectionIndex= null;\r\n _selectedAppearanceProtectionIndex = 0;\r\n _selectedAppearanceProtectionPlanPackageIndex = null;\r\n\r\n _current360Rotation = 18;\r\n _colours = null;\r\n _selectedColourInterior = null;\r\n _selectedColourInteriorIndex = -1;\r\n _selectedColourExterior = null;\r\n _selectedColourExteriorIndex = -1;\r\n _allowedColoursExterior = [];\r\n _wheels = null;\r\n _selectedWheel = null;\r\n _selectedWheelIndex = null;\r\n _accessories = null;\r\n _selectedAccessories = [];\r\n _categories = null;\r\n _selectedCategory = null;\r\n\r\n _incentives = null;\r\n _annualMileage = 2;\r\n _includeFees = true;\r\n _includeTaxes = false;\r\n _includeRebates = false;\r\n\r\n _currentStep = 0;\r\n _previousStep = -1;\r\n\r\n _language = \"en\";\r\n\r\n _showFinancePrice = true;\r\n _currentCalculatedCash = 0;\r\n\r\n _currentPurchaseMethod = null;\r\n\r\n constructor() {\r\n // Create a singleton pattern\r\n if (SummaryCalculator._instance) {\r\n return SummaryCalculator._instance\r\n }\r\n SummaryCalculator._instance = this;\r\n\r\n this._language = getLang();\r\n\r\n this._apiService = new ApiService();\r\n this._apiService.language = this._language;\r\n this._apiService.province = getProvince();\r\n\r\n this._tcciService = new TcciService();\r\n this._tcciService.language = this._language;\r\n this._tcciService.province = getProvince();\r\n\r\n this._ocaService = new OcaService();\r\n this._ocaService.province = getProvince();\r\n }\r\n\r\n get ShowFinancePrice() {\r\n return this._showFinancePrice;\r\n }\r\n\r\n set ShowFinancePrice(value) {\r\n this._showFinancePrice = value;\r\n sessionStorage.setItem(Constants.ShowFinancePrice, JSON.stringify(this._showFinancePrice));\r\n }\r\n\r\n get CurrentCalculatedCash() {\r\n return this._currentCalculatedCash;\r\n }\r\n\r\n set CurrentCalculatedCash(value) {\r\n this._currentCalculatedCash = value;\r\n }\r\n\r\n //for sending Get local price specific button select to dealer (Finance/Lease/Cash)\r\n get CurrentPurchaseMethod() {\r\n return this._currentPurchaseMethod;\r\n }\r\n\r\n set CurrentPurchaseMethod(value) {\r\n this._currentPurchaseMethod = value;\r\n }\r\n\r\n get CurrentStep() {\r\n return this._currentStep;\r\n }\r\n get PreviousStep() {\r\n return this._previousStep;\r\n }\r\n\r\n set CurrentStep(value) {\r\n const gtmHelper = new GTMHelper();\r\n\r\n this._currentStep = value;\r\n sessionStorage.setItem(Constants.CurrentStep, this._currentStep);\r\n if (this._previousStep != this._currentStep) {\r\n gtmHelper.setGTM({ 'action': 'Step' }, false, true);\r\n this._previousStep = this._currentStep;\r\n sessionStorage.setItem(Constants.PreviousStep, this._previousStep);\r\n }\r\n }\r\n\r\n get Current360Rotation() {\r\n return this._current360Rotation;\r\n }\r\n\r\n set Current360Rotation(value) {\r\n this._current360Rotation = value;\r\n sessionStorage.setItem(Constants.Current360Rotation, this._current360Rotation);\r\n }\r\n\r\n get AvailableTrim() {\r\n return this._availableTrims;\r\n }\r\n\r\n set AvailableTrim(value) {\r\n this._availableTrims = value;\r\n sessionStorage.setItem(Constants.AvailableTrim, JSON.stringify(value));\r\n }\r\n\r\n get SelectedModelYear() {\r\n return this._selectedModelYear;\r\n }\r\n\r\n set SelectedModelYear(value) {\r\n this._selectedModelYear = value;\r\n sessionStorage.setItem(Constants.SelectedModelYear, JSON.stringify(this._selectedModelYear));\r\n }\r\n\r\n get SelectedTrim() {\r\n return this._selectedTrim;\r\n }\r\n\r\n set SelectedTrim(value) {\r\n this._selectedTrim = value;\r\n sessionStorage.setItem(Constants.SelectedTrim, JSON.stringify(this._selectedTrim));\r\n }\r\n\r\n get SelectedTrimIndex() {\r\n return this._selectedTrimIndex;\r\n }\r\n\r\n set SelectedTrimIndex(value) {\r\n this._selectedTrimIndex = value;\r\n sessionStorage.setItem(Constants.SelectedTrimIndex, value);\r\n\r\n this.SelectedTrim = this._availableTrims.trims[this._selectedTrimIndex];\r\n sessionStorage.setItem(Constants.UrlSlugObjectTrims, JSON.stringify({ 'year': this.selectedVehicle.carline, 'carline': this.selectedVehicle.carline }));\r\n\r\n const financial = this._availableTrims.trims[this._selectedTrimIndex].financial;\r\n this.FinancialInfo = this.getFinanceObjectWithCalculations(financial, '', '', false, false, false, false, null, null);\r\n }\r\n\r\n /*\r\n * This is the entry method that prefetch all the remaining data\r\n */\r\n async setSelectedTrimIndex(value) {\r\n //this._selectedTrimIndex = value?value:this._selectedTrimIndex;\r\n const tempValue = value !== null ? value : this._selectedTrimIndex;\r\n\r\n this.SelectedTrimIndex = tempValue;\r\n\r\n sessionStorage.setItem(Constants.UrlSlugObjectTrims, JSON.stringify({ 'year': this.selectedVehicle.year, 'carline': this.selectedVehicle.carline }));\r\n\r\n this.selectedVehicle.trim = this.AvailableTrim.trims[tempValue].trim_type.url_slug;\r\n this.selectedVehicle.model = this.AvailableTrim.trims[tempValue].financial.based_on.model_code;\r\n this.selectedVehicle.packageCode = this.AvailableTrim.trims[tempValue].financial.based_on.option_code;\r\n sessionStorage.setItem(Constants.SelectedVehicle, JSON.stringify(tempValue));\r\n\r\n await this.setSelectedModelIndex(0);\r\n\r\n await this.updateSingleLineFromFinancialProvider();\r\n }\r\n\r\n get FinancialInfo() {\r\n return this._financialInfo;\r\n }\r\n\r\n set FinancialInfo(value) {\r\n this._financialInfo = value;\r\n sessionStorage.setItem(Constants.FinancialObj, JSON.stringify(value));\r\n }\r\n\r\n get SelectedTrimUrlSlug() {\r\n return this._availableTrims.trims[this._selectedTrimIndex].trim_type.url_slug;\r\n }\r\n\r\n get DefaultTrimUrlSlug() {\r\n return this._availableTrims.trims[0]?.trim_type?.name;\r\n }\r\n\r\n get DefaultTrim() {\r\n return this._availableTrims.trims[0];\r\n }\r\n\r\n get EngineAndDrivetrain() {\r\n return this._engineAndDrivetrain;\r\n }\r\n\r\n set EngineAndDrivetrain(value) {\r\n this._engineAndDrivetrain = value;\r\n\r\n sessionStorage.setItem(Constants.EngineAndDrivetrain, JSON.stringify(value));\r\n }\r\n\r\n get SelectedModelIndex() {\r\n return this._selectedModelIndex;\r\n }\r\n\r\n get SelectedModel() {\r\n return this._selectedModel;\r\n }\r\n\r\n set SelectedModel(value) {\r\n this._selectedModel = value;\r\n\r\n sessionStorage.setItem(Constants.SelectedModel, JSON.stringify(value));\r\n\r\n sessionStorage.setItem(Constants.VehicleTitle, this.SelectedModel.title);\r\n }\r\n\r\n set SelectedModelIndex(value) {\r\n this._selectedModelIndex = value;\r\n sessionStorage.setItem(Constants.SelectedModelIndex, value);\r\n\r\n this.SelectedModel = this.EngineAndDrivetrain.models[this._selectedModelIndex];\r\n\r\n const finance = this.SelectedModel.financial;\r\n this.FinancialInfo = this.getFinanceObjectWithCalculations(finance, '', '', false, false, false, false, null, null);\r\n }\r\n\r\n async setSelectedModelIndex(value) {\r\n await this.loadEngineAndDrivetrain(this.selectedVehicle.year, this.selectedVehicle.carline, this.selectedVehicle.trim);\r\n\r\n this.SelectedModelIndex = value;\r\n\r\n await this.loadPackages(this.selectedVehicle.year, this.selectedVehicle.carline, this.selectedVehicle.trim, this.SelectedModel.model_code, this.SelectedModel.option_code);\r\n\r\n await this.loadColours(this.selectedVehicle.year, this.selectedVehicle.carline, this.selectedVehicle.trim, this.SelectedModel.model_code, this.SelectedModel.option_code);\r\n\r\n await this.loadWheels(this.selectedVehicle.year, this.selectedVehicle.carline, this.selectedVehicle.trim, this.SelectedModel.model_code, this.SelectedModel.option_code);\r\n\r\n await this.loadAccessories(this.selectedVehicle.year, this.selectedVehicle.carline, this.selectedVehicle.trim, this.SelectedModel.model_code, this.SelectedModel.option_code);\r\n\r\n await this.loadPayments(this.selectedVehicle.year, this.selectedVehicle.carline, this.selectedVehicle.trim, this.SelectedModel.model_code, this.SelectedModel.option_code);\r\n\r\n await this.loadSummary(this.selectedVehicle.year, this.selectedVehicle.carline, this.selectedVehicle.trim, this.SelectedModel.model_code, this.SelectedModel.option_code);\r\n\r\n await this.loadSpecsData(this.SelectedModel.model_code, this.SelectedModel.option_code);\r\n\r\n // RESET THE APPEARANCE PROTECTION DROP DOWN\r\n if(!this.SelectedAppearanceProtectionIndex) {\r\n this.SelectedAppearanceProtectionIndex = 0;\r\n }\r\n\r\n sessionStorage.setItem(Constants.AllDataIsLoaded, this._allDataIsLoaded = true);\r\n }\r\n\r\n //store some values from BNS call to send back to BNS OCA\r\n setOcaValues(loanVals, leaseVals) {\r\n let key;\r\n\r\n //loan / finance values\r\n if (loanVals !== null) {\r\n this.setOcaData('loan', 'cashPrice', loanVals, 'TotalMsrp');\r\n this.setOcaData('loan', 'rate', loanVals, 'AprRate');\r\n this._ocaService.loan.rate = this.FinancialInfo.calculatedFinance.financeValues[this.FinancialInfo.financeTerm].rate * 100;\r\n this.setOcaData('loan', 'term', loanVals, 'LoanPeriod');\r\n this.setOcaData('loan', 'payment', loanVals, 'MonthlyPaymentWithTaxes');\r\n this.setOcaData('loan', 'financeAmount', loanVals, 'LoanAmount');\r\n this._ocaService.loan.Program_End_datetime = loanVals.Program_End_datetime;\r\n this.setOcaData('loan', 'downPayment', loanVals, 'DownPayment');\r\n this.setOcaData('loan', 'apr', loanVals, 'AprRate');\r\n }\r\n\r\n //lease values\r\n if (leaseVals !== null) {\r\n this.setOcaData('lease', 'sellingPrice', leaseVals, 'TotalMsrp');\r\n this.setOcaData('lease', 'residualValue', leaseVals, 'ResidualAmount');\r\n this.setOcaData('lease', 'term', leaseVals, 'Term');\r\n this.setOcaData('lease', 'monthlyDepreciation', leaseVals, 'MonthlyDepriciation');\r\n this.setOcaData('lease', 'totalInterestCost', leaseVals, 'MonthlyInterestCost');\r\n this.setOcaData('lease', 'interestFactor', leaseVals, 'InterestFactor');\r\n this.setOcaData('lease', 'baseMonthlyPayment', leaseVals, 'MonthlyPayment');\r\n this.setOcaData('lease', 'gstHSTRate', leaseVals, 'GstAmount');\r\n this.setOcaData('lease', 'gstHSTAmountOnRental', leaseVals, 'GstAmount');\r\n this.setOcaData('lease', 'totalMonthlyPayment', leaseVals, 'MonthlyPaymentWithTaxes');\r\n this.setOcaData('lease', 'adjustedCapitalizedCost', leaseVals, 'CapitalizedCost');\r\n this.setOcaData('lease', 'PSTRate', leaseVals, 'PstRate');\r\n this.setOcaData('lease', 'PSTAmount', leaseVals, 'PstAmount');\r\n this._ocaService.lease.Program_End_datetime = leaseVals.Program_End_datetime;\r\n this.setOcaData('lease', 'downPayment', leaseVals, 'DownPayment');\r\n //this.setOcaData('loan', 'apr', leaseVals, 'AprRate');\r\n //this._ocaService.lease.apr = this.getInformationalLeaseAprRate(true);\r\n this._ocaService.lease.apr = this.FinancialInfo.calculatedLease.leaseValues[this.FinancialInfo.leaseTerm].rate * 100;\r\n }\r\n }\r\n setOcaData(financeType, ocaField, bnsValues, key) {\r\n this._ocaService[financeType][ocaField] = bnsValues.QuoteItems.filter(filterByID)[0].Value;\r\n\r\n function filterByID(item) {\r\n if (item.Key == key) {\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n hasFinancialProviderData() {\r\n var hasData = true;\r\n const financeTermToBeDisplayed = [12, 24, 36, 48, 60, 72, 84];\r\n const leaseTermToBeDisplayed = [36, 39, 42, 45, 48, 51, 54, 57, 60];\r\n\r\n this.FinancialInfo.calculatedFinance.financeValues.forEach((element) => {\r\n if (financeTermToBeDisplayed.includes(element.term)) {\r\n if (!element.weekly) {\r\n hasData = false;\r\n }\r\n }\r\n });\r\n\r\n this.FinancialInfo.calculatedLease.leaseValues.forEach((element) => {\r\n if (leaseTermToBeDisplayed.includes(element.term)) {\r\n if (!element.biWeekly) {\r\n hasData = false;\r\n }\r\n }\r\n });\r\n\r\n return hasData;\r\n }\r\n\r\n /*\r\n Return the temporary loan response\r\n */ \r\n getTemporaryLoanResponse() {\r\n const mock = require('./loanMock.json');\r\n return mock;\r\n }\r\n\r\n /*\r\n Return the temporary lease response\r\n */\r\n getTemporaryLeaseResponse() {\r\n const mock = require('./leaseMock.json');\r\n return mock;\r\n }\r\n\r\n /*\r\n Return has an error for both loan and lease and also\r\n when the window.forceContactDealer is set\r\n */ \r\n getResponsesHasError() {\r\n if (window.forceContactDealer)\r\n return true;\r\n else {\r\n const loanHasError = this.getLoanResponsesHasError();\r\n const leaseHasError = this.getLeaseResponsesHasError();\r\n\r\n return (loanHasError || leaseHasError);\r\n }\r\n }\r\n\r\n /*\r\n Look in the array if there is any data error by comparing all the biweekly values\r\n\r\n Note: There is a special case in the array when the data are not fetched yet, so we include the missing biWeekly property\r\n */ \r\n hasDataError(objectsArray) {\r\n return objectsArray.every(obj => {\r\n return obj.monthly === objectsArray[0].monthly || !('monthly' in obj)\r\n });\r\n }\r\n\r\n /*\r\n Return if the loan response has an error\r\n\r\n This include communication and data errors\r\n */ \r\n getLoanResponsesHasError() {\r\n const hasCommunicationError = this.FinancialInfo.calculatedFinance.financeValues.some(element => element.hasError);\r\n const hasDataError = this.hasDataError(this.FinancialInfo.calculatedFinance.financeValues);\r\n\r\n //console.log(hasAnyError, hasDataError);\r\n return hasCommunicationError || hasDataError;\r\n }\r\n\r\n /*\r\n Return if the lease response has an error\r\n\r\n This include communication and data errors\r\n */ \r\n getLeaseResponsesHasError() {\r\n const hasCommunicationError = this.FinancialInfo.calculatedLease.leaseValues.some(element => element.hasError);\r\n const hasDataError = this.hasDataError(this.FinancialInfo.calculatedLease.leaseValues);\r\n\r\n //console.log(hasAnyError, hasDataError);\r\n return hasCommunicationError || hasDataError;\r\n }\r\n\r\n /*\r\n Update the data from financial provider for both loan and lease\r\n */\r\n async loadFromFinancialProvider() {\r\n // Load data\r\n await this.updateAllLineFromFinancialProvider();\r\n }\r\n\r\n /*\r\n Update the data from financial provider for the selected Finance / Lease term\r\n */\r\n async updateSingleLineFromFinancialProvider() {\r\n this.FinanceTerm = this.FinancialInfo.apr[this.FinanceTermIndex].term;\r\n this.LeaseTerm = this.FinancialInfo.lease[this.LeaseTermIndex].term;\r\n\r\n await this.updateSingleLeaseLineItem();\r\n\r\n await this.updateSingleLoanLineItem();\r\n\r\n this.FinancialInfo = this.FinancialInfo; \r\n }\r\n\r\n /*\r\n Update the data from financial provider for the selected Lease term\r\n */ \r\n async updateSingleLeaseLineItem() {\r\n if(!this.FinancialInfo || !this.FinancialInfo.calculatedLease || !this.FinancialInfo.calculatedLease.leaseValues)\r\n return;\r\n\r\n let response = await this._tcciService.sendDataToService(this, this.IncludeFees, this.IncludeRebates, \"lease\", this.LeaseTerm, this.LoyaltyChecked, this.GraduateChecked, this.MilitaryChecked, this.FirstTimeOwnerChecked, this.AnnualMileage);\r\n\r\n // Skip unforseen error by return a temporary empty response\r\n if (!response || Object.keys(response).length === 0) {\r\n console.log('Response was empty returning temporary lease response');\r\n response = this.getTemporaryLeaseResponse();\r\n }\r\n\r\n // Set taxes on refresh\r\n sessionStorage.setItem('FinancialProvider_GST', response[0].Lease.Quote.GstPercentage);\r\n this._gstRate = response[0].Lease.Quote.GstPercentage;\r\n \r\n sessionStorage.setItem('FinancialProvider_PST', response[0].Lease.Quote.PstRate)\r\n this._pstRate = response[0].Lease.Quote.PstRate;\r\n\r\n this.FinancialInfo.calculatedLease.leaseValues[this.LeaseTermIndex] = {...this.FinancialInfo.calculatedLease.leaseValues[this.LeaseTermIndex], ...await this._tcciService.extractLeaseData(response)};\r\n\r\n if (this.AnnualMileage !== 0) {\r\n const extraDataResponse = await this._tcciService.sendDataToService(this, this.IncludeFees, this.IncludeRebates, \"lease\", this.LeaseTerm, this.LoyaltyChecked, this.GraduateChecked, this.MilitaryChecked, this.FirstTimeOwnerChecked, 0);\r\n \r\n this.FinancialInfo.calculatedLease.leaseValues[this.LeaseTermIndex].downPaymentLeaseEndValue = this._tcciService.getResidualAmountFromLeaseData(extraDataResponse);\r\n } else {\r\n this.FinancialInfo.calculatedLease.leaseValues[this.LeaseTermIndex].downPaymentLeaseEndValue = this._tcciService.getResidualAmountFromLeaseData(response);\r\n }\r\n }\r\n\r\n /*\r\n Update the data from financial provider for the selected Loan term\r\n */ \r\n async updateSingleLoanLineItem() {\r\n if(!this.FinancialInfo || !this.FinancialInfo.calculatedFinance || !this.FinancialInfo.calculatedFinance.financeValues)\r\n return;\r\n\r\n let response = await this._tcciService.sendDataToService(this, this.IncludeFees, this.IncludeRebates, \"loan\", this.FinanceTerm, this.LoyaltyChecked, this.GraduateChecked, this.MilitaryChecked, this.FirstTimeOwnerChecked, this.AnnualMileage);\r\n\r\n // Skip unforseen error by return a temporary empty response\r\n if (!response || Object.keys(response).length === 0) {\r\n console.log('Response was empty returning temporary loan response');\r\n response = this.getTemporaryLoanResponse();\r\n }\r\n \r\n this.FinancialInfo.calculatedFinance.financeValues[this.FinanceTermIndex] = {...this.FinancialInfo.calculatedFinance.financeValues[this.FinanceTermIndex], ...await this._tcciService.extractLoanData(response)};\r\n\r\n // TODO: SET OCA, NOT IN THE FIRST DELIVERY OF TCCI\r\n //this.setOcaValues(response[0].Loan, leaseReponse[0].Lease);\r\n }\r\n\r\n /*\r\n Update all the line from the financial provider with an specific array term. Do not change array term, it has been selected by marketing team\r\n\r\n NOTE: This function is recommended instead of single line update for UI performance reason\r\n */\r\n async updateAllLineFromFinancialProvider() {\r\n await this.updateAllLoanLinesFromFinancialProvider();\r\n await this.updateAllLeaseLinesFromFinancialProvider();\r\n }\r\n\r\n /*\r\n Update all the lines for loans from the financial provider\r\n */\r\n async updateAllLoanLinesFromFinancialProvider() {\r\n const financeTermToBeDisplayed = [24, 36, 48, 60, 72, 84];\r\n\r\n if(!this.FinancialInfo || !this.FinancialInfo.calculatedFinance || !this.FinancialInfo.calculatedFinance.financeValues)\r\n return;\r\n\r\n // Do Financing differently from Leasing as the term can be different between the two\r\n await Promise.all(this.FinancialInfo.calculatedFinance.financeValues.map(async (financeElement) => {\r\n if (!financeTermToBeDisplayed.includes(financeElement.term))\r\n return; // skip those that we don't need the data, ultimate hack to save the day\r\n\r\n let response = await this._tcciService.sendDataToService(this, this.IncludeFees, this.IncludeRebates, \"loan\", financeElement.term, this.LoyaltyChecked, this.GraduateChecked, this.MilitaryChecked, this.FirstTimeOwnerChecked, this.AnnualMileage);\r\n\r\n // Look for error from non data from Payment provider\r\n if (!response || Object.keys(response).length === 0) {\r\n console.log('Response was empty returning temporary loan response');\r\n response = this.getTemporaryLoanResponse();\r\n }\r\n\r\n let extractedData = await this._tcciService.extractLoanData(response);\r\n\r\n //this.setOcaValues(response[0].Loan, null);\r\n\r\n // BUGFIX:Update the array. Do not use return, for some reason the array doesn't get updated.\r\n const index = this.FinancialInfo.calculatedFinance.financeValues.findIndex(x => x.term === financeElement.term);\r\n const newObject = {...financeElement, ...extractedData};\r\n this.FinancialInfo.calculatedFinance.financeValues[index] = newObject;\r\n }))\r\n .catch(function (err) {\r\n console.log('A promise failed to resolve while fetching financial provider service financing data', err);\r\n });\r\n }\r\n\r\n /*\r\n Update all the lines for leases from the financial provider\r\n */\r\n async updateAllLeaseLinesFromFinancialProvider() {\r\n const leaseTermToBeDisplayed = [36, 42, 48, 54, 60];\r\n\r\n if(!this.FinancialInfo || !this.FinancialInfo.calculatedLease || !this.FinancialInfo.calculatedLease.leaseValues)\r\n return;\r\n\r\n await Promise.all(this.FinancialInfo.calculatedLease.leaseValues.map(async (leaseElement) => {\r\n if (!leaseTermToBeDisplayed.includes(leaseElement.term))\r\n return; // skip those that we don't need the data, ultimate hack to save the day\r\n \r\n let extractedData = {};\r\n\r\n // Request for 24000 km used in informational apr (this.AnnualMileage as 0 is 24000 please refer to the annual mileagedrop down)\r\n if (this.AnnualMileage !== 0) {\r\n const extraDataResponse = await this._tcciService.sendDataToService(this, this.IncludeFees, this.IncludeRebates, \"lease\", leaseElement.term, this.LoyaltyChecked, this.GraduateChecked, this.MilitaryChecked, this.FirstTimeOwnerChecked, 0);\r\n \r\n extractedData.downPaymentLeaseEndValue = this._tcciService.getResidualAmountFromLeaseData(extraDataResponse)\r\n }\r\n\r\n // BUGFIX:Update the array. Do not use return, for some reason the array doesn't get updated.\r\n const index = this.FinancialInfo.calculatedLease.leaseValues.findIndex(x => x.term === leaseElement.term);\r\n const newObject = {...leaseElement, ...extractedData};\r\n this.FinancialInfo.calculatedLease.leaseValues[index] = newObject;\r\n }));\r\n\r\n await Promise.all(this.FinancialInfo.calculatedLease.leaseValues.map(async (leaseElement) => {\r\n if (!leaseTermToBeDisplayed.includes(leaseElement.term))\r\n return; // skip those that we don't need the data, ultimate hack to save the day\r\n\r\n let response = await this._tcciService.sendDataToService(this, this.IncludeFees, this.IncludeRebates, \"lease\", leaseElement.term, this.LoyaltyChecked, this.GraduateChecked, this.MilitaryChecked, this.FirstTimeOwnerChecked, this.AnnualMileage);\r\n\r\n // Look for error from non data from Payment provider\r\n if (!response || Object.keys(response).length === 0) {\r\n console.log('Response was empty returning temporary lease response');\r\n response = this.getTemporaryLeaseResponse();\r\n }\r\n\r\n // Set taxes\r\n sessionStorage.setItem('FinancialProvider_GST', response[0].Lease.Quote.GstPercentage)\r\n this._gstRate = response[0].Lease.Quote.GstPercentage;\r\n\r\n sessionStorage.setItem('FinancialProvider_PST', response[0].Lease.Quote.PstRate)\r\n this._pstRate = response[0].Lease.Quote.PstRate;\r\n\r\n let extractedData = await this._tcciService.extractLeaseData(response);\r\n \r\n if (this.AnnualMileage === 0) {\r\n extractedData.downPaymentLeaseEndValue = this._tcciService.getResidualAmountFromLeaseData(response);\r\n }\r\n\r\n // TODO: SET OCA, NOT IN THE FIRST DELIVERY OF TCCI\r\n //this.setOcaValues(null, response[0].Lease);\r\n\r\n // BUGFIX:Update the array. Do not use return, for some reason the array doesn't get updated.\r\n const index = this.FinancialInfo.calculatedLease.leaseValues.findIndex(x => x.term === leaseElement.term);\r\n const newObject = {...leaseElement, ...extractedData};\r\n this.FinancialInfo.calculatedLease.leaseValues[index] = newObject;\r\n }))\r\n .catch(function (err) {\r\n // log that I have an error, return the entire array;\r\n console.log('A promise failed to resolve while fetching financial provider leasing data', err);\r\n });\r\n }\r\n\r\n get Packages() {\r\n return this._packages;\r\n }\r\n\r\n set Packages(value) {\r\n this._packages = value;\r\n\r\n this._packages.packages.forEach((x, index) => {\r\n if (x.type === 'model_option_package') {\r\n this._packages.packages[index].financial.msrp = this._packages.packages[index].financial.msrp - this._financialInfo.msrp;\r\n }\r\n });\r\n\r\n sessionStorage.setItem(Constants.Packages, JSON.stringify(this._packages));\r\n }\r\n\r\n get SelectedPackage() {\r\n return this._selectedPackage;\r\n }\r\n\r\n set SelectedPackage(value) {\r\n if (value) {\r\n this._selectedPackage = value;\r\n\r\n this.selectedVehicle.packageCode = value.option_code;\r\n sessionStorage.setItem(Constants.SelectedVehicle, JSON.stringify(this.selectedVehicle));\r\n } else {\r\n this._selectedPackage = {\r\n option_code: this.Packages.default_option.option_code,\r\n financial: {\r\n msrp: 0\r\n }\r\n };\r\n\r\n this.selectedVehicle.packageCode = this.Packages.default_option.option_code\r\n sessionStorage.setItem(Constants.SelectedVehicle, JSON.stringify(this.selectedVehicle));\r\n }\r\n\r\n sessionStorage.setItem(Constants.SelectedPackage, JSON.stringify(this._selectedPackage));\r\n }\r\n\r\n get SelectedPackageIndex() {\r\n return this._selectedPackageIndex;\r\n }\r\n\r\n set SelectedPackageIndex(index) {\r\n this._selectedPackageIndex = index;\r\n sessionStorage.setItem(Constants.SelectedPackageIndex, this._selectedPackageIndex);\r\n\r\n if (index !== null && this.Packages.packages.filter(pack => pack.type === 'model_option_package')[index] ?.type === 'model_option_package') {\r\n this.SelectedPackage = this.Packages.packages.filter(pack => pack.type === 'model_option_package')[index];\r\n } else {\r\n this.SelectedPackage = null;\r\n }\r\n\r\n this.FinancialInfo = this.getFinanceObjectWithCalculations(this.FinancialInfo, this.TradeInValue, this.DownPaymentValue, this.LoyaltyChecked, this.GraduateChecked, this.MilitaryChecked, this.FirstTimeOwnerChecked, this.FinanceTermIndex, this.LeaseTermIndex, this.AnnualMileage);\r\n\r\n\r\n }\r\n\r\n /*\r\n Async method has been added to support financial provider response\r\n */ \r\n async setSelectedPackageIndex(index) {\r\n this.SelectedPackageIndex = index;\r\n\r\n await this.loadColours(this.selectedVehicle.year, this.selectedVehicle.carline, this.selectedVehicle.trim, this.SelectedModel.model_code, this.SelectedModel.option_code);\r\n\r\n await this.loadWheels(this.selectedVehicle.year, this.selectedVehicle.carline, this.selectedVehicle.trim, this.SelectedModel.model_code, this.SelectedModel.option_code);\r\n\r\n await this.loadAccessories(this.selectedVehicle.year, this.selectedVehicle.carline, this.selectedVehicle.trim, this.SelectedModel.model_code, this.SelectedModel.option_code);\r\n\r\n await this.updateSingleLineFromFinancialProvider();\r\n }\r\n\r\n get SelectedNonModelPackageIndex() {\r\n return this._selectedNonModelPackageIndex;\r\n }\r\n\r\n async setSelectedNonModelPackageIndex(index) {\r\n this.SelectedNonModelPackageIndex = index;\r\n\r\n await this.updateSingleLineFromFinancialProvider();\r\n }\r\n\r\n set SelectedNonModelPackageIndex(index) {\r\n this._selectedNonModelPackageIndex = index;\r\n sessionStorage.setItem(Constants.SelectedNonModelPackageIndex, index);\r\n\r\n const universalPackages = this.Packages.packages.filter(pack => pack.type === 'universal_package');\r\n if (index !== null && universalPackages) {\r\n this.SelectedNonModelPackage = universalPackages[index];\r\n } else {\r\n this.SelectedNonModelPackage = {\r\n financial: {\r\n msrp: 0\r\n }\r\n };\r\n }\r\n\r\n this.FinancialInfo = this.getFinanceObjectWithCalculations(this.FinancialInfo, this.TradeInValue, this.DownPaymentValue, this.LoyaltyChecked, this.GraduateChecked, this.MilitaryChecked, this.FirstTimeOwnerChecked, this.FinanceTermIndex, this.LeaseTermIndex, this.AnnualMileage);\r\n }\r\n\r\n get SelectedNonModelPackage() {\r\n return this._selectedNonModelPackage;\r\n }\r\n\r\n set SelectedNonModelPackage(value) {\r\n this._selectedNonModelPackage = value;\r\n\r\n sessionStorage.setItem(Constants.SelectedNonModelPackage, JSON.stringify(value));\r\n }\r\n\r\n /* Selected Warranty Index */\r\n get SelectedWarrantyIndex() {\r\n return this._selectedWarrantyIndex;\r\n }\r\n\r\n async setSelectedWarrantyIndex(index) {\r\n this.SelectedWarrantyIndex = index;\r\n\r\n await this.updateSingleLineFromFinancialProvider();\r\n }\r\n\r\n set SelectedWarrantyIndex(index) {\r\n this._selectedWarrantyIndex = index;\r\n sessionStorage.setItem(Constants.SelectedWarrantyIndex, index);\r\n\r\n const warrantyPackages = this.Packages.packages.filter(pack => pack.type === 'universal_package' && (pack.package_type === 'Warranty' || pack.package_type === 'Garantie'));\r\n if (index !== null && warrantyPackages) {\r\n this.SelectedWarrantyPackage = warrantyPackages[index];\r\n } else {\r\n this.SelectedWarrantyPackage = {\r\n financial: {\r\n msrp: 0\r\n }\r\n };\r\n }\r\n\r\n this.FinancialInfo = this.getFinanceObjectWithCalculations(this.FinancialInfo, this.TradeInValue, this.DownPaymentValue, this.LoyaltyChecked, this.GraduateChecked, this.MilitaryChecked, this.FirstTimeOwnerChecked, this.FinanceTermIndex, this.LeaseTermIndex, this.AnnualMileage);\r\n }\r\n\r\n get SelectedWarrantyPackage() {\r\n return this._selectedWarrantyPackage;\r\n }\r\n\r\n set SelectedWarrantyPackage(value) {\r\n this._selectedWarrantyPackage = value;\r\n\r\n sessionStorage.setItem(Constants.SelectedWarrantyPackage, JSON.stringify(value));\r\n }\r\n\r\n /* Selected Connected Vehicle Index */\r\n get SelectedConnectedVehicleIndex() {\r\n return this._selectedConnectedVehicleIndex;\r\n }\r\n\r\n async setSelectedConnectedVehicleIndex(index) {\r\n this.SelectedConnectedVehicleIndex = index;\r\n\r\n await this.updateSingleLineFromFinancialProvider();\r\n }\r\n\r\n set SelectedConnectedVehicleIndex(index) {\r\n this._selectedConnectedVehicleIndex = index;\r\n sessionStorage.setItem(Constants.SelectedConnectedVehicleIndex, index);\r\n\r\n const connectivityPackage = this.Packages.connected_services[0];\r\n\r\n this.SelectedConnectedVehiclePackage = {\r\n financial: {\r\n msrp: 0\r\n }\r\n };\r\n\r\n if(!connectivityPackage)\r\n return;\r\n\r\n Object.entries(connectivityPackage.subscription).map(([key, value], subscriptionindex) => {\r\n if(subscriptionindex === index) {\r\n //console.log('setting subscriptionindex', subscriptionindex);\r\n this.SelectedConnectedVehiclePackage = value;\r\n }\r\n });\r\n \r\n this.FinancialInfo = this.getFinanceObjectWithCalculations(this.FinancialInfo, this.TradeInValue, this.DownPaymentValue, this.LoyaltyChecked, this.GraduateChecked, this.MilitaryChecked, this.FirstTimeOwnerChecked, this.FinanceTermIndex, this.LeaseTermIndex, this.AnnualMileage);\r\n }\r\n\r\n get SelectedConnectedVehiclePackage() {\r\n return this._selectedConnectedVehiclePackage;\r\n }\r\n\r\n set SelectedConnectedVehiclePackage(value) {\r\n this._selectedConnectedVehiclePackage = value;\r\n\r\n sessionStorage.setItem(Constants.SelectedConnectedVehiclePackage, JSON.stringify(value));\r\n }\r\n\r\n /* Added Protection */\r\n get SelectedAddedProtectionIndex() {\r\n return this._selectedAddedProtectionIndex;\r\n }\r\n\r\n async setSelectedAddedProtectionIndex(index) {\r\n this.SelectedAddedProtectionIndex = index;\r\n\r\n await this.updateSingleLineFromFinancialProvider();\r\n }\r\n\r\n set SelectedAddedProtectionIndex(index) {\r\n this._selectedAddedProtectionIndex = index;\r\n sessionStorage.setItem(Constants.SelectedAddedProtectionIndex, index);\r\n\r\n this.SelectedAddedProtectionPackage = {\r\n financial: {\r\n msrp: 0\r\n }\r\n } \r\n\r\n Object.entries(this.Packages.added_protection[0].plans).map(([key, value], planIndex) => {\r\n if(planIndex === index) {\r\n //console.log('setting subscriptionindex', subscriptionindex);\r\n this.SelectedAddedProtectionPackage = value;\r\n }\r\n });\r\n \r\n\r\n this.FinancialInfo = this.getFinanceObjectWithCalculations(this.FinancialInfo, this.TradeInValue, this.DownPaymentValue, this.LoyaltyChecked, this.GraduateChecked, this.MilitaryChecked, this.FirstTimeOwnerChecked, this.FinanceTermIndex, this.LeaseTermIndex, this.AnnualMileage);\r\n }\r\n\r\n get SelectedAddedProtectionPackage() {\r\n return this._selectedAddedProtectionPackage;\r\n }\r\n \r\n set SelectedAddedProtectionPackage(value) {\r\n this._selectedAddedProtectionPackage = value;\r\n\r\n sessionStorage.setItem(Constants.SelectedAddedProtectionPackage, JSON.stringify(value));\r\n }\r\n /* Added Protection */\r\n\r\n /* Appearance Protection */\r\n get SelectedAppearanceProtectionPlan() {\r\n let appearanceProtectionPlan;\r\n\r\n Object.entries(this.Packages.appearance_protection[0].plans).map(([key, value], planIndex) => {\r\n if(planIndex === Number(this.SelectedAppearanceProtectionIndex)) {\r\n appearanceProtectionPlan = value;\r\n }\r\n });\r\n\r\n return appearanceProtectionPlan;\r\n }\r\n\r\n get SelectedAppearanceProtectionIndex() {\r\n return this._selectedAppearanceProtectionIndex;\r\n }\r\n\r\n setSelectedAppearanceProtectionIndex(index) {\r\n this._selectedAppearanceProtectionIndex = index;\r\n }\r\n\r\n set SelectedAppearanceProtectionIndex(index) {\r\n this._selectedAppearanceProtectionIndex = index;\r\n sessionStorage.setItem(Constants.SelectedAppearanceProtectionIndex, index);\r\n\r\n this.SelectedAppearanceProtectionPlansIndex = null;\r\n }\r\n\r\n\r\n get SelectedAppearanceProtectionPlansIndex() {\r\n return this._selectedAppearanceProtectionPlanPackageIndex;\r\n }\r\n\r\n async setSelectedAppearanceProtectionPlansIndex(index) {\r\n this.SelectedAppearanceProtectionPlansIndex = index;\r\n\r\n await this.updateSingleLineFromFinancialProvider();\r\n }\r\n\r\n set SelectedAppearanceProtectionPlansIndex(index) {\r\n this._selectedAppearanceProtectionPlanPackageIndex = index;\r\n sessionStorage.setItem(Constants.SelectedAppearanceProtectionPlanPackageIndex, index);\r\n \r\n if (index !== null) {\r\n Object.entries(this.Packages.appearance_protection[0].plans).map(([key, value], planIndex) => {\r\n if(planIndex === Number(this.SelectedAppearanceProtectionIndex)) {\r\n\r\n Object.entries(value.packages).map(([key, appearanceProtectionPlansPackage], packageIndex) => {\r\n if(packageIndex === Number(index)) {\r\n this.SelectedAppearanceProtectionPlansPackage = appearanceProtectionPlansPackage; \r\n this.SelectedAppearanceProtectionPlansPackage.key = key; \r\n }\r\n });\r\n \r\n }\r\n })\r\n\r\n //const appearanceProtectionPlansPackage = this.Packages.appearance_protection.plans[this._selectedAppearanceProtectionIndex].packages[index];\r\n //this.SelectedAppearanceProtectionPlansPackage = appearanceProtectionPlansPackage;\r\n } else {\r\n this.SelectedAppearanceProtectionPlansPackage = {\r\n financial: {\r\n msrp: 0\r\n }\r\n };\r\n }\r\n\r\n this.FinancialInfo = this.getFinanceObjectWithCalculations(this.FinancialInfo, this.TradeInValue, this.DownPaymentValue, this.LoyaltyChecked, this.GraduateChecked, this.MilitaryChecked, this.FirstTimeOwnerChecked, this.FinanceTermIndex, this.LeaseTermIndex, this.AnnualMileage);\r\n }\r\n\r\n get SelectedAppearanceProtectionPlansPackage() {\r\n return this._selectedAppearanceProtectionPackage;\r\n }\r\n\r\n set SelectedAppearanceProtectionPlansPackage(value) {\r\n this._selectedAppearanceProtectionPackage = value;\r\n sessionStorage.setItem(Constants.SelectedAppearanceProtectionPlansPackage, JSON.stringify(value));\r\n }\r\n /* Appearance Protection */\r\n\r\n get Colours() {\r\n return this._colours;\r\n }\r\n set Colours(value) {\r\n this._colours = value;\r\n sessionStorage.setItem(Constants.Colours, JSON.stringify(value));\r\n\r\n const financial = value.financial;\r\n this.FinancialInfo = this.getFinanceObjectWithCalculations(financial, this._tradeInValue, this._downPaymentValue, this.LoyaltyChecked, this.GraduateChecked, this.MilitaryChecked, this.FirstTimeOwnerChecked, this.FinanceTermIndex, this.LeaseTermIndex, this.AnnualMileage);\r\n }\r\n\r\n set InitialFinancial(value) {\r\n this._initialFinancial = value;\r\n sessionStorage.setItem(Constants.InitialFinance, JSON.stringify(value));\r\n }\r\n get InitialFinancial() {\r\n if (sessionStorage.getItem(Constants.InitialFinance)) {\r\n this._initialFinancial = JSON.parse(sessionStorage.getItem(Constants.InitialFinance));\r\n }\r\n return this._initialFinancial;\r\n }\r\n\r\n set SelectedColourInterior(value) {\r\n this._selectedColourInterior = value;\r\n sessionStorage.setItem(Constants.SelectedInteriorColour, JSON.stringify(value));\r\n\r\n this.FinancialInfo = this.getFinanceObjectWithCalculations(this.FinancialInfo, this._tradeInValue, this._downPaymentValue, this.LoyaltyChecked, this.GraduateChecked, this.MilitaryChecked, this.FirstTimeOwnerChecked, this.FinanceTermIndex, this.LeaseTermIndex, this.AnnualMileage);\r\n }\r\n\r\n get SelectedColourInterior() {\r\n return this._selectedColourInterior;\r\n }\r\n\r\n async setSelectedColourInteriorIndex(value) {\r\n this.SelectedColourInteriorIndex = value;\r\n\r\n await this.updateSingleLineFromFinancialProvider();\r\n }\r\n\r\n set SelectedColourInteriorIndex(value) {\r\n this._selectedColourInteriorIndex = value;\r\n sessionStorage.setItem(Constants.SelectedColourInteriorIndex, value);\r\n this.SelectedColourInterior = this.Colours.visual.interiors[value];\r\n }\r\n\r\n get SelectedColourInteriorIndex() {\r\n return this._selectedColourInteriorIndex;\r\n }\r\n\r\n get SelectedColourExterior() {\r\n return this._selectedColourExterior;\r\n }\r\n set SelectedColourExterior(value) {\r\n this._selectedColourExterior = value;\r\n sessionStorage.setItem(Constants.SelectedExteriorColour, JSON.stringify(this._selectedColourExterior));\r\n }\r\n\r\n /*\r\n Async methods has been added to support UI interaction which need to wait for the financial provider response\r\n */\r\n async setSelectedColourExteriorIndex(value) {\r\n this.SelectedColourExteriorIndex = value;\r\n\r\n await this.updateSingleLineFromFinancialProvider();\r\n }\r\n\r\n set SelectedColourExteriorIndex(value) {\r\n this._selectedColourExteriorIndex = value;\r\n sessionStorage.setItem(Constants.SelectedColourExteriorIndex, value);\r\n this.SelectedColourExterior = Object.entries(this.Colours.visual.exteriors)[value][1];\r\n\r\n this.FinancialInfo = this.getFinanceObjectWithCalculations(this.FinancialInfo, this._tradeInValue, this._downPaymentValue, this.LoyaltyChecked, this.GraduateChecked, this.MilitaryChecked, this.FirstTimeOwnerChecked, this.FinanceTermIndex, this.LeaseTermIndex, this.AnnualMileage);\r\n }\r\n\r\n get SelectedColourExteriorIndex() {\r\n return this._selectedColourExteriorIndex;\r\n }\r\n\r\n set AllowedColoursExterior(value) {\r\n this._allowedColoursExterior = value;\r\n sessionStorage.setItem(Constants.AllowedColoursExterior, JSON.stringify(this._allowedColoursExterior));\r\n }\r\n get AllowedColoursExterior() {\r\n return this._allowedColoursExterior;\r\n }\r\n\r\n set Wheels(value) {\r\n this._wheels = value;\r\n sessionStorage.setItem(Constants.Wheels, JSON.stringify(value));\r\n\r\n const financial = value.financial;\r\n this.FinancialInfo = this.getFinanceObjectWithCalculations(financial, this._tradeInValue, this._downPaymentValue, this.LoyaltyChecked, this.GraduateChecked, this.MilitaryChecked, this.FirstTimeOwnerChecked, this.FinanceTermIndex, this.LeaseTermIndex, this.AnnualMileage);\r\n }\r\n get Wheels() {\r\n return this._wheels;\r\n }\r\n\r\n set SelectedWheel(value) {\r\n this._selectedWheel = value;\r\n sessionStorage.setItem(Constants.SelectedWheel, JSON.stringify(value));\r\n\r\n const financial = this.InitialFinancial;\r\n this.FinancialInfo = this.getFinanceObjectWithCalculations(financial, this._tradeInValue, this._downPaymentValue, this.LoyaltyChecked, this.GraduateChecked, this.MilitaryChecked, this.FirstTimeOwnerChecked, this.FinanceTermIndex, this.LeaseTermIndex, this.AnnualMileage);\r\n }\r\n\r\n get SelectedWheel() {\r\n return this._selectedWheel;\r\n }\r\n\r\n set SelectedWheelIndex(value) {\r\n this._selectedWheelIndex = value;\r\n sessionStorage.setItem(Constants.SelectedWheelIndex, value);\r\n\r\n if (value !== null) {\r\n this.SelectedWheel = Object.entries(this.Wheels.wheels)[value][1];\r\n } else {\r\n this.SelectedWheel = null;\r\n }\r\n }\r\n\r\n /*\r\n Async method has been added to interact from the UI which need to wait for financial provider\r\n */\r\n async setSelectedWheelIndex(value) {\r\n this.SelectedWheelIndex = value;\r\n\r\n await this.updateSingleLineFromFinancialProvider();\r\n }\r\n\r\n get SelectedWheelIndex() {\r\n return this._selectedWheelIndex;\r\n }\r\n\r\n get Accessories() {\r\n return this._accessories;\r\n }\r\n\r\n set Accessories(value) {\r\n this._accessories = value;\r\n\r\n sessionStorage.setItem(Constants.Accessories, JSON.stringify(this._accessories));\r\n }\r\n\r\n get SelectedAccessories() {\r\n /*if(!this._selectedAccessories)\r\n this._selectedAccessories = [];*/\r\n return this._selectedAccessories;\r\n }\r\n\r\n async setSelectedAccessories(value) {\r\n this.SelectedAccessories = value;\r\n\r\n await this.updateSingleLineFromFinancialProvider();\r\n }\r\n\r\n set SelectedAccessories(value) {\r\n this._selectedAccessories = value;\r\n\r\n sessionStorage.setItem(Constants.SelectedAccessories, JSON.stringify(value));\r\n\r\n const financial = this.InitialFinancial;\r\n this.FinancialInfo = this.getFinanceObjectWithCalculations(financial, '', '', false, false, false, false, null, null);\r\n\r\n const gtmHelper = new GTMHelper();\r\n gtmHelper.setGTM({ 'action': 'Selected Accessories' }, false, false);\r\n }\r\n\r\n get Categories() {\r\n return this._categories;\r\n }\r\n\r\n set Categories(value) {\r\n this._categories = value;\r\n }\r\n\r\n get SelectedCategory() {\r\n return this._selectedCategory;\r\n }\r\n\r\n\r\n async setSelectedCategory(value) {\r\n this.SelectedCategory = value;\r\n }\r\n\r\n set SelectedCategory(value) {\r\n this._selectedCategory = value;\r\n }\r\n\r\n get TradeInValue() {\r\n return formatPrice(this._tradeInValue);\r\n }\r\n\r\n set TradeInValue(value) {\r\n this._tradeInValue = value !== '' ? parseInt(value.toString().replace('$', '')) : 0;\r\n sessionStorage.setItem(Constants.TradeInValue, JSON.stringify(this._tradeInValue));\r\n }\r\n\r\n\r\n get DownPaymentValue() {\r\n return formatPrice(this._downPaymentValue);\r\n }\r\n\r\n set DownPaymentValue(value) {\r\n this._downPaymentValue = value !== '' ? parseInt(value.toString().replace('$', '')) : 0;\r\n sessionStorage.setItem(Constants.DownPaymentValue, JSON.stringify(this._downPaymentValue));\r\n }\r\n\r\n\r\n get LoyaltyChecked() {\r\n return this._loyaltyChecked;\r\n }\r\n\r\n set LoyaltyChecked(value) {\r\n this._loyaltyChecked = value;\r\n sessionStorage.setItem(Constants.LoyaltyChecked, JSON.stringify(value));\r\n }\r\n\r\n get GraduateChecked() {\r\n return this._graduateChecked;\r\n }\r\n\r\n set GraduateChecked(value) {\r\n this._graduateChecked = value;\r\n sessionStorage.setItem(Constants.GraduateChecked, JSON.stringify(value));\r\n }\r\n\r\n get MilitaryChecked() {\r\n return this._militaryChecked;\r\n }\r\n\r\n set MilitaryChecked(value) {\r\n this._militaryChecked = value;\r\n sessionStorage.setItem(Constants.MilitaryChecked, JSON.stringify(value));\r\n }\r\n\r\n get FirstTimeOwnerChecked() {\r\n return this._firstTimeOwnerChecked;\r\n }\r\n\r\n set FirstTimeOwnerChecked(value) {\r\n this._firstTimeOwnerChecked = value;\r\n sessionStorage.setItem(Constants.FirstTimeOwnerChecked, JSON.stringify(value));\r\n } \r\n\r\n get FinanceTermIndex() {\r\n return this._financeTermIndex;\r\n }\r\n\r\n set FinanceTermIndex(value) {\r\n this._financeTermIndex = value;\r\n sessionStorage.setItem(Constants.FinanceTermIndex, value);\r\n }\r\n\r\n get FinanceTerm() {\r\n return this._financeTerm;\r\n }\r\n\r\n set FinanceTerm(value) {\r\n if (isNaN(value)) {\r\n this._financeTerm = null;\r\n sessionStorage.removeItem(Constants.FinanceTerm);\r\n } else {\r\n this._financeTerm = value;\r\n sessionStorage.setItem(Constants.FinanceTerm, value);\r\n }\r\n }\r\n\r\n get LeaseTermIndex() {\r\n return this._leaseTermIndex;\r\n }\r\n\r\n set LeaseTermIndex(value) {\r\n this._leaseTermIndex = value;\r\n sessionStorage.setItem(Constants.LeaseTermIndex, value);\r\n }\r\n\r\n get LeaseTerm() {\r\n return this._leaseTerm;\r\n }\r\n\r\n set LeaseTerm(value) {\r\n if (isNaN(value)) {\r\n this._leaseTerm = null;\r\n sessionStorage.removeItem(Constants.LeaseTerm);\r\n } else {\r\n this._leaseTerm = value;\r\n sessionStorage.setItem(Constants.LeaseTerm, value);\r\n }\r\n }\r\n\r\n get Incentives() {\r\n return this._incentives;\r\n }\r\n\r\n set Incentives(value) {\r\n this._incentives = value;\r\n }\r\n\r\n get AnnualMileage() {\r\n return this._annualMileage;\r\n }\r\n\r\n set AnnualMileage(value) {\r\n this._annualMileage = value;\r\n sessionStorage.setItem(Constants.AnnualMileage, value);\r\n }\r\n\r\n get IncludeFees() {\r\n return this._includeFees;\r\n }\r\n\r\n set IncludeFees(value) {\r\n this._includeFees = value;\r\n sessionStorage.setItem(Constants.IncludeFees, value);\r\n }\r\n\r\n get IncludeTaxes() {\r\n return this._includeTaxes;\r\n }\r\n\r\n set IncludeTaxes(value) {\r\n this._includeTaxes = value;\r\n sessionStorage.setItem(Constants.IncludeTaxes, value);\r\n }\r\n\r\n get IncludeRebates() {\r\n return this._includeRebates;\r\n }\r\n\r\n set IncludeRebates(value) {\r\n this._includeRebates = value;\r\n sessionStorage.setItem(Constants.IncludeRebates, value)\r\n }\r\n\r\n /**\r\n * Reset\r\n */\r\n reset(all = false) {\r\n this._currentStep = 0;\r\n const gtmHelper = new GTMHelper();\r\n if (all) gtmHelper.setGTM({ 'action': 'Reset' }, false, true);\r\n this._previousStep = 0;\r\n\r\n this._selectedTrim = null;\r\n this._selectedTrimIndex = 0;\r\n\r\n this._tradeInValue = 0;\r\n this._downPaymentValue = 0;\r\n this._loyaltyChecked = false;\r\n this._militaryChecked = false;\r\n this._graduateChecked = false;\r\n this._firstTimeOwnerChecked = true;\r\n this._accessoriesValue = 0;\r\n this._annualMileage = 2;\r\n\r\n this._financialInfo = null;\r\n this._initialFinancial = null;\r\n\r\n this._engineAndDrivetrain = null;\r\n this._selectedModelIndex = 0;\r\n this._selectedModel = null;\r\n this._packages = null;\r\n\r\n this._selectedPackageIndex = null;\r\n this._selectedNonModelPackageIndex = null;\r\n this._selectedWarrantyIndex = null;\r\n this._selectedConnectedVehicleIndex = null;\r\n this._selectedAddedProtectionIndex= null;\r\n this._selectedAppearanceProtectionIndex = 0;\r\n \r\n this._selectedPackage = {\r\n financial: {\r\n msrp: 0\r\n }\r\n };\r\n this._selectedNonModelPackage = {\r\n financial: {\r\n msrp: 0\r\n }\r\n };\r\n this._selectedWarrantyPackage = {\r\n financial: {\r\n msrp: 0\r\n }\r\n };\r\n this._selectedConnectedVehiclePackage = {\r\n financial: {\r\n msrp: 0\r\n }\r\n };\r\n this._selectedAddedProtectionPackage = {\r\n financial: {\r\n msrp: 0\r\n }\r\n };\r\n this._selectedAppearanceProtectionPackage = {\r\n financial: {\r\n msrp: 0\r\n }\r\n }; \r\n\r\n this._colours = null;\r\n this._selectedColourInterior = null;\r\n this._selectedColourInteriorIndex = -1;\r\n this._selectedColourExterior = null;\r\n this._selectedColourExteriorIndex = -1;\r\n this._allowedColoursExterior = [];\r\n this._wheels = null;\r\n this._selectedWheel = null;\r\n this._selectedWheelIndex = null;\r\n this._accessories = null;\r\n this._selectedAccessories = [];\r\n this._categories = null;\r\n this._selectedCategory = null;\r\n\r\n this._incentives = null;\r\n this._annualMileage = 2;\r\n\r\n this.IncludeFees = true;\r\n\r\n this.IncludeTaxes = false;\r\n\r\n if(this.isProvinceAllowedToIncludeRebates())\r\n this.IncludeRebates = true;\r\n else\r\n this.IncludeRebates = false;\r\n\r\n\r\n this._showFinancePrice = true;\r\n\r\n if (all) {\r\n this.Current360Rotation = 18;\r\n\r\n this._selectedModelYear = null;\r\n sessionStorage.removeItem(Constants.SelectedModelYear);\r\n\r\n this._availableTrims = null;\r\n sessionStorage.removeItem(Constants.AvailableTrim);\r\n sessionStorage.removeItem(Constants.LegalTrims);\r\n\r\n this._financeTermIndex = 0;\r\n this._leaseTermIndex = 0;\r\n sessionStorage.removeItem(Constants.LeaseTermIndex);\r\n sessionStorage.removeItem(Constants.FinanceTermIndex);\r\n\r\n this._allDataIsLoaded = false;\r\n sessionStorage.removeItem(Constants.AllDataIsLoaded);\r\n\r\n sessionStorage.removeItem(Constants.SelectedAddedProtectionIndex);\r\n sessionStorage.removeItem(Constants.SelectedAppearanceProtectionIndex);\r\n sessionStorage.removeItem(Constants.SelectedAppearanceProtectionPlanPackageIndex);\r\n\r\n this.LeaseTerm = null;\r\n this.FinanceTerm = null;\r\n this.AnnualMileage = 2;\r\n }\r\n sessionStorage.removeItem(Constants.Colours);\r\n sessionStorage.removeItem(Constants.CurrentStep);\r\n sessionStorage.removeItem(Constants.PreviousStep);\r\n sessionStorage.removeItem(Constants.SelectedExteriorColour);\r\n sessionStorage.removeItem(Constants.SelectedWheel);\r\n sessionStorage.removeItem(Constants.SelectedWheelIndex);\r\n sessionStorage.removeItem(Constants.SelectedModel);\r\n sessionStorage.removeItem(Constants.FinancialObj);\r\n sessionStorage.removeItem(Constants.Packages);\r\n\r\n sessionStorage.removeItem(Constants.SelectedPackageIndex);\r\n sessionStorage.removeItem(Constants.SelectedNonModelPackageIndex);\r\n sessionStorage.removeItem(Constants.SelectedWarrantyIndex);\r\n sessionStorage.removeItem(Constants.SelectedConnectedVehicleIndex);\r\n \r\n \r\n sessionStorage.setItem(Constants.SelectedPackage, JSON.stringify(this._selectedPackage));\r\n sessionStorage.setItem(Constants.SelectedNonModelPackage, JSON.stringify(this._selectedNonModelPackage));\r\n sessionStorage.setItem(Constants.SelectedWarrantyPackage, JSON.stringify(this._selectedWarrantyPackage));\r\n sessionStorage.setItem(Constants.SelectedConnectedVehiclePackage, JSON.stringify(this._selectedConnectedVehiclePackage));\r\n sessionStorage.setItem(Constants.SelectedAddedProtectionPackage, JSON.stringify(this._selectedAddedProtectionPackage));\r\n sessionStorage.setItem(Constants.SelectedAppearanceProtectionPackage, JSON.stringify(this._selectedAppearanceProtectionPackage));\r\n\r\n sessionStorage.removeItem(Constants.SelectedTrim);\r\n sessionStorage.removeItem(Constants.SelectedTrimIndex);\r\n sessionStorage.removeItem(Constants.SelectedInteriorColour);\r\n sessionStorage.removeItem(Constants.UrlSlugObjectTrims);\r\n sessionStorage.removeItem(Constants.UrlSlugObjectEngineAndDrivetrain);\r\n sessionStorage.removeItem(Constants.UrlSlugObjectPackage);\r\n sessionStorage.removeItem(Constants.UrlSlugObjectColour);\r\n sessionStorage.removeItem(Constants.UrlSlugObjectWheels);\r\n sessionStorage.removeItem(Constants.UrlSlugObjectAccessories);\r\n sessionStorage.removeItem(Constants.UrlSlugObjectPayments);\r\n sessionStorage.removeItem(Constants.VehicleTitle);\r\n sessionStorage.removeItem(Constants.SelectedAccessories);\r\n sessionStorage.removeItem(Constants.TradeInValue);\r\n sessionStorage.removeItem(Constants.DownPaymentValue);\r\n sessionStorage.removeItem(Constants.AllowedColoursExterior);\r\n sessionStorage.removeItem(Constants.LoyaltyChecked);\r\n sessionStorage.removeItem(Constants.GraduateChecked);\r\n sessionStorage.removeItem(Constants.MilitaryChecked);\r\n sessionStorage.removeItem(Constants.FirstTimeOwnerChecked);\r\n sessionStorage.removeItem(Constants.Accessories);\r\n sessionStorage.removeItem(Constants.DefaultExteriorColour);\r\n sessionStorage.removeItem(Constants.DefaultInteriorColour);\r\n sessionStorage.removeItem(Constants.LegalEngineAndDrivetrain);\r\n sessionStorage.removeItem(Constants.LegalPackage);\r\n sessionStorage.removeItem(Constants.LegalColours);\r\n sessionStorage.removeItem(Constants.LegalWheels);\r\n sessionStorage.removeItem(Constants.LegalAccessories);\r\n sessionStorage.removeItem(Constants.LegalPaymentInformation);\r\n sessionStorage.removeItem(Constants.LegalSummary);\r\n sessionStorage.removeItem(Constants.EngineAndDrivetrain);\r\n sessionStorage.removeItem(Constants.SelectedModelIndex);\r\n sessionStorage.removeItem(Constants.Wheels);\r\n sessionStorage.removeItem(Constants.SpecificationData);\r\n sessionStorage.removeItem(Constants.SelectedColourInteriorIndex);\r\n sessionStorage.removeItem(Constants.SelectedColourExteriorIndex);\r\n sessionStorage.removeItem(Constants.SelectedVehicle);\r\n sessionStorage.removeItem(Constants.SelectedWheelSize);\r\n sessionStorage.removeItem(Constants.InitialFinance);\r\n sessionStorage.removeItem(Constants.PPSA);\r\n sessionStorage.setItem(Constants.ShowFinancePrice, JSON.stringify(this._showFinancePrice));\r\n }\r\n\r\n /**\r\n * is data loaded\r\n */\r\n isDataLoaded() {\r\n var toReturn = this._selectedTrim && this._selectedPackage && this._colours && this._allowedColoursExterior && this._selectedAccessories && this._financialInfo && this._allDataIsLoaded;\r\n //console.log(\"data is loaded\", toReturn);\r\n return toReturn;\r\n }\r\n\r\n /**\r\n * validate with the url params and if it's different reset the session storage\r\n */\r\n hasParamsDifferentThanCurrentSelection(year, carline, trim, model, option) {\r\n if (this.SelectedTrim === null || this.SelectedModel === null)\r\n return true;\r\n else if (this.SelectedTrim.trim_type.url_slug.toLocaleLowerCase() !== trim.toLocaleLowerCase()) {\r\n this.reset(false);\r\n this._allDataIsLoaded = false;\r\n sessionStorage.setItem(Constants.AllDataIsLoaded, this._allDataIsLoaded);\r\n sessionStorage.removeItem('province');\r\n console.log('has reset from different param');\r\n return true;\r\n } else if (this.SelectedModel.model_code.toLocaleLowerCase() !== model.toLocaleLowerCase()) {\r\n this.reset(false);\r\n this._allDataIsLoaded = false;\r\n sessionStorage.setItem(Constants.AllDataIsLoaded, this._allDataIsLoaded);\r\n sessionStorage.removeItem('province');\r\n console.log('has reset from different param');\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n /**\r\n * reload stored data\r\n */\r\n reloadStoredData() {\r\n // Fire this first as it might take more time to resolve\r\n (async() => {\r\n const isRetailerMode = await this.isRetailerMode();\r\n //console.log('FINISHED LOADING DATA FOR IS RETAILER MODE', isRetailerMode, this.getDealerVars());\r\n })();\r\n\r\n if (sessionStorage.getItem(Constants.AllDataIsLoaded)) {\r\n this._allDataIsLoaded = JSON.parse(sessionStorage.getItem(Constants.AllDataIsLoaded));\r\n }\r\n if (sessionStorage.getItem(Constants.SelectedVehicle)) {\r\n this.selectedVehicle = JSON.parse(sessionStorage.getItem(Constants.SelectedVehicle));\r\n }\r\n if (sessionStorage.getItem(Constants.CurrentStep)) {\r\n this._currentStep = JSON.parse(sessionStorage.getItem(Constants.CurrentStep));\r\n }\r\n if (sessionStorage.getItem(Constants.PreviousStep)) {\r\n this._previousStep = JSON.parse(sessionStorage.getItem(Constants.PreviousStep));\r\n }\r\n if (sessionStorage.getItem(Constants.SelectedModelYear)) {\r\n this._selectedModelYear = JSON.parse(sessionStorage.getItem(Constants.SelectedModelYear));\r\n }\r\n if (sessionStorage.getItem(Constants.SelectedTrim)) {\r\n this._selectedTrim = JSON.parse(sessionStorage.getItem(Constants.SelectedTrim));\r\n }\r\n if (sessionStorage.getItem(Constants.SelectedTrimIndex)) {\r\n this._selectedTrimIndex = parseInt(sessionStorage.getItem(Constants.SelectedTrimIndex));\r\n }\r\n if (sessionStorage.getItem(Constants.Packages)) {\r\n this._packages = JSON.parse(sessionStorage.getItem(Constants.Packages));\r\n }\r\n if (sessionStorage.getItem(Constants.SelectedPackage)) {\r\n this._selectedPackage = JSON.parse(sessionStorage.getItem(Constants.SelectedPackage));\r\n }\r\n if (sessionStorage.getItem(Constants.SelectedNonModelPackage)) {\r\n this._selectedNonModelPackage = JSON.parse(sessionStorage.getItem(Constants.SelectedNonModelPackage));\r\n }\r\n if (sessionStorage.getItem(Constants.SelectedWarrantyPackage)) {\r\n this._selectedWarrantyPackage = JSON.parse(sessionStorage.getItem(Constants.SelectedWarrantyPackage));\r\n }\r\n if (sessionStorage.getItem(Constants.SelectedConnectedVehiclePackage)) {\r\n this._selectedConnectedVehiclePackage = JSON.parse(sessionStorage.getItem(Constants.SelectedConnectedVehiclePackage));\r\n }\r\n if (sessionStorage.getItem(Constants.SelectedAddedProtectionPackage)) {\r\n this._selectedAddedProtectionPackage = JSON.parse(sessionStorage.getItem(Constants.SelectedAddedProtectionPackage));\r\n } \r\n if (sessionStorage.getItem(Constants.SelectedAppearanceProtectionPlansPackage)) {\r\n this._selectedAppearanceProtectionPackage = JSON.parse(sessionStorage.getItem(Constants.SelectedAppearanceProtectionPlansPackage));\r\n }\r\n\r\n if (sessionStorage.getItem(Constants.SelectedPackageIndex)) {\r\n this._selectedPackageIndex = JSON.parse(sessionStorage.getItem(Constants.SelectedPackageIndex)); // Allow null\r\n }\r\n if (sessionStorage.getItem(Constants.SelectedNonModelPackageIndex)) {\r\n this._selectedNonModelPackageIndex = JSON.parse(sessionStorage.getItem(Constants.SelectedNonModelPackageIndex)); // Allow null\r\n }\r\n if (sessionStorage.getItem(Constants.SelectedWarrantyIndex)) {\r\n this._selectedWarrantyIndex = JSON.parse(sessionStorage.getItem(Constants.SelectedWarrantyIndex)); // Allow null\r\n }\r\n if (sessionStorage.getItem(Constants.SelectedConnectedVehicleIndex)) {\r\n this._selectedConnectedVehicleIndex = JSON.parse(sessionStorage.getItem(Constants.SelectedConnectedVehicleIndex)); // Allow null\r\n }\r\n if (sessionStorage.getItem(Constants.SelectedAddedProtectionIndex)) {\r\n this._selectedAddedProtectionIndex = JSON.parse(sessionStorage.getItem(Constants.SelectedAddedProtectionIndex)); // Allow null\r\n }\r\n if (sessionStorage.getItem(Constants.SelectedAppearanceProtectionIndex)) {\r\n this._selectedAppearanceProtectionIndex = JSON.parse(sessionStorage.getItem(Constants.SelectedAppearanceProtectionIndex)); // Allow null\r\n } \r\n if (sessionStorage.getItem(Constants.SelectedAppearanceProtectionPlanPackageIndex)) {\r\n this._selectedAppearanceProtectionPlanPackageIndex = JSON.parse(sessionStorage.getItem(Constants.SelectedAppearanceProtectionPlanPackageIndex)); // Allow null\r\n }\r\n \r\n if (sessionStorage.getItem(Constants.SelectedWheel)) {\r\n this._selectedWheel = JSON.parse(sessionStorage.getItem(Constants.SelectedWheel));\r\n }\r\n if (sessionStorage.getItem(Constants.SelectedWheelIndex)) {\r\n this._selectedWheelIndex = parseInt(sessionStorage.getItem(Constants.SelectedWheelIndex));\r\n }\r\n if (sessionStorage.getItem(Constants.Wheels)) {\r\n this._wheels = JSON.parse(sessionStorage.getItem(Constants.Wheels));\r\n }\r\n this._engineAndDrivetrain = JSON.parse(sessionStorage.getItem(Constants.EngineAndDrivetrain));\r\n if (sessionStorage.getItem(Constants.SelectedModel)) {\r\n this._selectedModel = JSON.parse(sessionStorage.getItem(Constants.SelectedModel));\r\n }\r\n if (sessionStorage.getItem(Constants.SelectedModelIndex)) {\r\n this._selectedModelIndex = parseInt(sessionStorage.getItem(Constants.SelectedModelIndex));\r\n }\r\n this._colours = JSON.parse(sessionStorage.getItem(Constants.Colours));\r\n this._selectedColourExterior = JSON.parse(sessionStorage.getItem(Constants.DefaultExteriorColour));\r\n this._selectedColourInterior = JSON.parse(sessionStorage.getItem(Constants.DefaultInteriorColour));\r\n if (sessionStorage.getItem(Constants.SelectedExteriorColour)) {\r\n this._selectedColourExterior = JSON.parse(sessionStorage.getItem(Constants.SelectedExteriorColour));\r\n }\r\n if (sessionStorage.getItem(Constants.SelectedInteriorColour)) {\r\n this._selectedColourInterior = JSON.parse(sessionStorage.getItem(Constants.SelectedInteriorColour));\r\n }\r\n if (sessionStorage.getItem(Constants.AllowedColoursExterior)) {\r\n this._allowedColoursExterior = JSON.parse(sessionStorage.getItem(Constants.AllowedColoursExterior));\r\n }\r\n if (sessionStorage.getItem(Constants.SelectedColourExteriorIndex)) {\r\n this._selectedColourExteriorIndex = parseInt(sessionStorage.getItem(Constants.SelectedColourExteriorIndex));\r\n }\r\n if (sessionStorage.getItem(Constants.SelectedColourInteriorIndex)) {\r\n this._selectedColourInteriorIndex = parseInt(sessionStorage.getItem(Constants.SelectedColourInteriorIndex));\r\n }\r\n if (sessionStorage.getItem(Constants.SelectedAccessories)) {\r\n this._selectedAccessories = JSON.parse(sessionStorage.getItem(Constants.SelectedAccessories));\r\n }\r\n if (sessionStorage.getItem(Constants.InitialFinance)) {\r\n this._initialFinancial = JSON.parse(sessionStorage.getItem(Constants.InitialFinance));\r\n }\r\n if (sessionStorage.getItem(Constants.FinancialObj)) {\r\n this._financialInfo = JSON.parse(sessionStorage.getItem(Constants.FinancialObj));\r\n }\r\n if (sessionStorage.getItem(Constants.LeaseTermIndex)) {\r\n this._leaseTermIndex = parseInt(sessionStorage.getItem(Constants.LeaseTermIndex));\r\n }\r\n if (sessionStorage.getItem(Constants.FinanceTermIndex)) {\r\n this._financeTermIndex = parseInt(sessionStorage.getItem(Constants.FinanceTermIndex));\r\n }\r\n if (sessionStorage.getItem(Constants.LoyaltyChecked)) {\r\n this._loyaltyChecked = JSON.parse(sessionStorage.getItem(Constants.LoyaltyChecked));\r\n }\r\n if (sessionStorage.getItem(Constants.GraduateChecked)) {\r\n this._graduateChecked = JSON.parse(sessionStorage.getItem(Constants.GraduateChecked));\r\n }\r\n if (sessionStorage.getItem(Constants.MilitaryChecked)) {\r\n this._militaryChecked = JSON.parse(sessionStorage.getItem(Constants.MilitaryChecked));\r\n }\r\n if (sessionStorage.getItem(Constants.FirstTimeOwnerChecked)) {\r\n this._firstTimeOwnerChecked = JSON.parse(sessionStorage.getItem(Constants.FirstTimeOwnerChecked));\r\n } \r\n if (sessionStorage.getItem(Constants.TradeInValue)) {\r\n this._tradeInValue = JSON.parse(sessionStorage.getItem(Constants.TradeInValue));\r\n }\r\n if (sessionStorage.getItem(Constants.DownPaymentValue)) {\r\n this._downPaymentValue = JSON.parse(sessionStorage.getItem(Constants.DownPaymentValue));\r\n }\r\n if (sessionStorage.getItem(Constants.AnnualMileage)) {\r\n this._annualMileage = parseInt(sessionStorage.getItem(Constants.AnnualMileage));\r\n }\r\n if (sessionStorage.getItem(Constants.Accessories)) {\r\n this._accessories = JSON.parse(sessionStorage.getItem(Constants.Accessories));\r\n }\r\n if (sessionStorage.getItem(Constants.IncludeFees)) {\r\n this._includeFees = JSON.parse(sessionStorage.getItem(Constants.IncludeFees));\r\n }\r\n if (sessionStorage.getItem(Constants.IncludeRebates)) {\r\n this._includeRebates = JSON.parse(sessionStorage.getItem(Constants.IncludeRebates));\r\n }\r\n if (sessionStorage.getItem(Constants.IncludeTaxes)) {\r\n this._includeTaxes = JSON.parse(sessionStorage.getItem(Constants.IncludeTaxes));\r\n }\r\n if (sessionStorage.getItem(Constants.AvailableTrim)) {\r\n this._availableTrims = JSON.parse(sessionStorage.getItem(Constants.AvailableTrim));\r\n }\r\n if (sessionStorage.getItem(Constants.FinanceTerm)) {\r\n this._financeTerm = parseInt(sessionStorage.getItem(Constants.FinanceTerm));\r\n }\r\n if (sessionStorage.getItem(Constants.LeaseTerm)) {\r\n this._leaseTerm = parseInt(sessionStorage.getItem(Constants.LeaseTerm));\r\n }\r\n \r\n this.RecalculateFinancialInfo();\r\n if (this.FinancialInfo)\r\n this.Incentives = this.getIncentives(this.FinancialInfo);\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Set the default trim index to another one. This function has been introduced to hardcode the GS not beeing available on the the CX-90. HARDCODING IS BAD! \r\n */\r\n getDefaultTrimIndex(year, carline, trim, model, packageCode) {\r\n let defaultTrimIndex = 0;\r\n\r\n if (year === \"2024\" && (carline === 'CX-90-MHEV' || carline === 'CX-90-PHEV'))\r\n defaultTrimIndex = 1;\r\n\r\n if (year === \"2023\" && (carline === 'CX-5'))\r\n defaultTrimIndex = 1;\r\n\r\n return defaultTrimIndex;\r\n }\r\n\r\n /**\r\n * Method that cascade and load all the data\r\n */\r\n async loadVehicleData(year, carline, trim, model, packageCode) {\r\n await this.loadTrims(year, carline);\r\n\r\n const defaultTrimIndex = this.getDefaultTrimIndex(year, carline, trim, model, packageCode);\r\n\r\n if (trim) {\r\n const trimIndex = this.AvailableTrim.trims.findIndex(x => x.trim_type.url_slug.toLocaleLowerCase() === trim.toLocaleLowerCase());\r\n await this.setSelectedTrimIndex(trimIndex > -1 ? trimIndex : defaultTrimIndex);\r\n } else {\r\n await this.setSelectedTrimIndex(defaultTrimIndex);\r\n }\r\n\r\n if (model) {\r\n const modelIndex = this.EngineAndDrivetrain.models.findIndex(x => x.model_code.toLocaleLowerCase() === model.toLocaleLowerCase());\r\n await this.setSelectedModelIndex(modelIndex > -1 ? modelIndex : 0);\r\n }\r\n\r\n if (packageCode) {\r\n const packageIndex = this.Packages.packages.findIndex(x => x.option_code.toLocaleLowerCase() === packageCode.toLocaleLowerCase());\r\n // HOTFIX! PackageIndex variable need to be null to not force a package selection.\r\n await this.setSelectedPackageIndex(packageIndex > -1 ? packageIndex : null);\r\n }\r\n }\r\n\r\n /**\r\n * Method that cascade and load all the data by build id.\r\n */\r\n async loadVehicleDataByBuildId(buildId) {\r\n\r\n const data = await this._apiService.getBuildDataById(buildId);\r\n if (data.status === 200 && data.data) {\r\n\r\n const { year, carline, trim, tradeInValue, downPaymentValue, loyaltyChecked, militaryChecked, firstTimeOwnerChecked, graduateChecked, annualMileage, financeTerm, leaseTerm, accessories, modelCode, optionCode, includeTaxes, includeFees, includeRebates, SelectedWheelIndex, SelectedColourExteriorIndex, SelectedColourInteriorIndex, selectedNonModelPackageIndex, selectedWarrantyIndex, selectedConnectedVehicleIndex, selectedAddedProtectionIndex, selectedAppearanceProtectionIndex, selectedAppearanceProtectionPlanPackageIndex } = data.data.build_data;\r\n\r\n this.selectedVehicle.year = year;\r\n this.selectedVehicle.carline = carline;\r\n this.selectedVehicle.trim = trim;\r\n\r\n await this.loadVehicleData(this.selectedVehicle.year, this.selectedVehicle.carline, this.selectedVehicle.trim);\r\n\r\n await this.loadPackages(this.selectedVehicle.year, this.selectedVehicle.carline, this.selectedVehicle.trim, this.SelectedModel.model_code, this.SelectedModel.option_code);\r\n\r\n // USING PARSE TO FIX THE 'NULL' instead of NULL \r\n if (JSON.parse(selectedNonModelPackageIndex))\r\n this.SelectedNonModelPackageIndex = JSON.parse(selectedNonModelPackageIndex);\r\n\r\n if (selectedWarrantyIndex)\r\n this.SelectedWarrantyIndex = selectedWarrantyIndex;\r\n\r\n /*if (JSON.parse(selectedConnectedVehicleIndex))\r\n this.SelectedConnectedVehicleIndex = JSON.parse(selectedConnectedVehicleIndex);\r\n\r\n if (JSON.parse(selectedAddedProtectionIndex))\r\n this.SelectedAddedProtectionIndex = JSON.parse(selectedAddedProtectionIndex);\r\n\r\n if (JSON.parse(selectedAppearanceProtectionIndex) && JSON.parse(selectedAppearanceProtectionPlanPackageIndex)) {\r\n this.SelectedAppearanceProtectionIndex = JSON.parse(selectedAppearanceProtectionIndex);\r\n this.SelectedAppearanceProtectionPlanPackageIndex = JSON.parse(selectedAppearanceProtectionPlanPackageIndex);\r\n }*/\r\n\r\n await this.loadColours(this.selectedVehicle.year, this.selectedVehicle.carline, this.selectedVehicle.trim, this.SelectedModel.model_code, this.SelectedModel.option_code);\r\n\r\n this.SelectedColourExteriorIndex = SelectedColourExteriorIndex;\r\n this.SelectedColourInteriorIndex = SelectedColourInteriorIndex;\r\n\r\n await this.loadWheels(this.selectedVehicle.year, this.selectedVehicle.carline, this.selectedVehicle.trim, this.SelectedModel.model_code, this.SelectedModel.option_code);\r\n\r\n if (SelectedWheelIndex) this.SelectedWheelIndex = SelectedWheelIndex;\r\n\r\n await this.loadAccessories(this.selectedVehicle.year, this.selectedVehicle.carline, this.selectedVehicle.trim, this.SelectedModel.model_code, this.SelectedModel.option_code);\r\n\r\n const accessoriesData = await this._apiService.getAccessories(modelCode, optionCode);\r\n if (accessoriesData.accessories && accessories && accessories.length > 0) {\r\n const parsed = this.parseAccessoriesData(accessoriesData.accessories.accessories);\r\n if (parsed && parsed.All) {\r\n this.SelectedAccessories = parsed.All.filter(acc => accessories.includes(acc.part_number));\r\n }\r\n }\r\n\r\n this.FinancialInfo = await this.getFinanceObjectWithCalculations(\r\n this.FinancialInfo, this.TradeInValue, this.DownPaymentValue,\r\n this.LoyaltyChecked, this.GraduateChecked, this.MilitaryChecked, this.FirstTimeOwnerChecked, \r\n this.FinanceTermIndex, this.LeaseTermIndex, annualMileage\r\n );\r\n\r\n this.TradeInValue = tradeInValue;\r\n this.DownPaymentValue = downPaymentValue;\r\n this.LoyaltyChecked = loyaltyChecked;\r\n this.GraduateChecked = graduateChecked;\r\n this.MilitaryChecked = militaryChecked;\r\n this.FirstTimeOwnerChecked = firstTimeOwnerChecked;\r\n this.FinanceTermIndex = financeTerm;\r\n this.LeaseTermIndex = leaseTerm;\r\n if (annualMileage) this.AnnualMileage = annualMileage;\r\n if (includeTaxes) this.IncludeTaxes = includeTaxes;\r\n if (includeFees) this.IncludeFees = includeFees;\r\n if (includeRebates) this.IncludeRebates = includeRebates;\r\n\r\n await this.loadPayments(this.selectedVehicle.year, this.selectedVehicle.carline, this.selectedVehicle.trim, this.SelectedModel.model_code, this.SelectedModel.option_code);\r\n\r\n await this.updateSingleLineFromFinancialProvider();\r\n\r\n return data.data.build_data;\r\n } else {\r\n console.log('Error: ', data.msg)\r\n }\r\n }\r\n\r\n /**\r\n * Presentation page - Select a vehicles\r\n */\r\n loadVehicles() {\r\n return new Promise((resolve, reject) => {\r\n if (window.bnp_under_maintenance) {\r\n if (getLang() === \"en\") {\r\n const mock = require('../Services/vehiclesMockEn.json');\r\n resolve(mock.data);\r\n } else {\r\n const mock = require('../Services/vehiclesMockFr.json');\r\n resolve(mock.data);\r\n }\r\n } else {\r\n this._apiService.getVehicles()\r\n .then((data) => {\r\n resolve(data);\r\n }).catch(error => {\r\n console.log(error);\r\n reject(error);\r\n });\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Load Step 1 - Select a trim\r\n */\r\n async loadTrims(year, carline) {\r\n this.selectedVehicle.year = year;\r\n this.selectedVehicle.carline = carline;\r\n sessionStorage.setItem(Constants.SelectedVehicle, JSON.stringify(this.selectedVehicle));\r\n\r\n const trimData = await this._apiService.getTrims(this.selectedVehicle.year, this.selectedVehicle.carline);\r\n\r\n // Added this patch to redirect to vehicle landing page when we don't receive any trim data array\r\n if (!trimData || trimData.length === 0) {\r\n if (this.language === 'fr')\r\n window.location = '/fr/magasiner/construction-et-prix/';\r\n else\r\n window.location = '/en/shopping/build-and-price/';\r\n }\r\n\r\n this.SelectedModelYear = trimData.model_year;\r\n\r\n this.AvailableTrim = trimData;\r\n }\r\n\r\n /**\r\n * Load Step 2 - Select an engine and drivetrain\r\n */\r\n async loadEngineAndDrivetrain(year, carline, trim) {\r\n this.selectedVehicle.year = year;\r\n this.selectedVehicle.carline = carline;\r\n this.selectedVehicle.trim = trim;\r\n sessionStorage.setItem(Constants.SelectedVehicle, JSON.stringify(this.selectedVehicle));\r\n\r\n const data = await this._apiService.getEngineAndDrivetrain(this.selectedVehicle.year, this.selectedVehicle.carline, this.selectedVehicle.trim);\r\n\r\n this.EngineAndDrivetrain = data;\r\n\r\n sessionStorage.setItem(Constants.UrlSlugObjectEngineAndDrivetrain, JSON.stringify({ 'year': year, 'carline': carline, 'trim': trim }));\r\n }\r\n\r\n /**\r\n * Load Step 3 - Select a package\r\n */\r\n async loadPackages(year, carline, trim, model, packageCode) {\r\n this.selectedVehicle.year = year;\r\n this.selectedVehicle.carline = carline;\r\n this.selectedVehicle.trim = trim;\r\n this.selectedVehicle.model = model;\r\n this.selectedVehicle.packageCode = packageCode;\r\n sessionStorage.setItem(Constants.SelectedVehicle, JSON.stringify(this.selectedVehicle));\r\n\r\n const data = await this._apiService.getPackages(this.selectedVehicle.model, this.selectedVehicle.packageCode);\r\n\r\n this.Packages = data;\r\n this.SelectedPackageIndex = null;\r\n this.SelectedNonModelPackageIndex = null;\r\n this.SelectedConnectedVehicleIndex = null;\r\n this.SelectedWarrantyIndex = null;\r\n\r\n sessionStorage.setItem(Constants.UrlSlugObjectPackage, JSON.stringify({ 'year': year, 'carline': carline, 'trim': trim, 'model': model, 'packageCode': packageCode }));\r\n }\r\n\r\n getAllowedExteriorsIds(exteriors) {\r\n let allowedExteriors = [];\r\n exteriors.forEach(exterior => {\r\n allowedExteriors.push(exterior.id);\r\n });\r\n return allowedExteriors;\r\n }\r\n\r\n /**\r\n * Load Step 4 - Select the exterior and interior color\r\n */\r\n async loadColours(year, carline, trim, model, packageCode) {\r\n this.selectedVehicle.year = year;\r\n this.selectedVehicle.carline = carline;\r\n this.selectedVehicle.trim = trim;\r\n this.selectedVehicle.model = model;\r\n this.selectedVehicle.packageCode = packageCode;\r\n sessionStorage.setItem(Constants.SelectedVehicle, JSON.stringify(this.selectedVehicle));\r\n\r\n const data = await this._apiService.getColours(this.selectedVehicle.model, this.selectedVehicle.packageCode)\r\n\r\n this.InitialFinancial = data.financial;\r\n this.Incentives = this.getIncentives(this.InitialFinancial);\r\n this.Colours = data;\r\n sessionStorage.setItem(Constants.UrlSlugObjectColour, JSON.stringify({ 'year': year, 'carline': carline, 'trim': trim, 'model': model, 'packageCode': packageCode }));\r\n\r\n const defaultInteriorColour = this.Colours.visual.interiors[0];\r\n const defaultExteriorColour = defaultInteriorColour.default_exterior;\r\n sessionStorage.setItem(Constants.DefaultInteriorColour, JSON.stringify(defaultInteriorColour));\r\n sessionStorage.setItem(Constants.DefaultExteriorColour, JSON.stringify(defaultExteriorColour));\r\n\r\n this.Colours.visual.interiors.map((Colour, index) => {\r\n if (defaultInteriorColour.id === Colour.id)\r\n this.SelectedColourInteriorIndex = index;\r\n });\r\n\r\n Object.entries(this.Colours.visual.exteriors).map((Colour, index) => {\r\n if (defaultExteriorColour.id === Colour[1]['id'])\r\n this.SelectedColourExteriorIndex = index;\r\n });\r\n\r\n this.AllowedColoursExterior = this.getAllowedExteriorsIds(this.Colours.visual.interiors[this.SelectedColourInteriorIndex].allowed_exteriors);\r\n }\r\n\r\n /**\r\n * Load Step 5 - Select a wheel\r\n */\r\n async loadWheels(year, carline, trim, model, packageCode) {\r\n this.selectedVehicle.year = year;\r\n this.selectedVehicle.carline = carline;\r\n this.selectedVehicle.trim = trim;\r\n this.selectedVehicle.model = model;\r\n this.selectedVehicle.packageCode = packageCode;\r\n sessionStorage.setItem(Constants.SelectedVehicle, JSON.stringify(this.selectedVehicle));\r\n\r\n const data = await this._apiService.getWheels(model, packageCode);\r\n //console.log(data);\r\n\r\n this.InitialFinancial = data.financial;\r\n this.Wheels = data;\r\n sessionStorage.setItem(Constants.UrlSlugObjectWheels, JSON.stringify({ 'year': year, 'carline': carline, 'trim': trim, 'model': model, 'packageCode': packageCode }));\r\n }\r\n\r\n /**\r\n * Load Step 6 - Select one or many accessory\r\n */\r\n async loadAccessories(year, carline, trim, model, packageCode) {\r\n this.selectedVehicle.year = year;\r\n this.selectedVehicle.carline = carline;\r\n this.selectedVehicle.trim = trim;\r\n this.selectedVehicle.model = model;\r\n this.selectedVehicle.packageCode = packageCode;\r\n sessionStorage.setItem(Constants.SelectedVehicle, JSON.stringify(this.selectedVehicle));\r\n\r\n const data = await this._apiService.getAccessories(model, packageCode);\r\n\r\n this.InitialFinancial = data.financial;\r\n\r\n this.FinancialInfo = this.getFinanceObjectWithCalculations(data.financial, '', '', false, false, false, false, null, null);\r\n this.Accessories = {\r\n 'data': this.parseAccessoriesData(data.accessories.accessories),\r\n 'title': data.title,\r\n 'rawData': Object.entries(data.accessories.accessories)\r\n };\r\n sessionStorage.setItem(Constants.UrlSlugObjectAccessories, JSON.stringify({ 'year': year, 'carline': carline, 'trim': trim, 'model': model, 'packageCode': packageCode }));\r\n }\r\n\r\n /**\r\n * Load Step 7 - Payment information\r\n */\r\n async loadPayments(year, carline, trim, model, packageCode) {\r\n this.selectedVehicle.year = year;\r\n this.selectedVehicle.carline = carline;\r\n this.selectedVehicle.trim = trim;\r\n this.selectedVehicle.model = model;\r\n this.selectedVehicle.packageCode = packageCode;\r\n sessionStorage.setItem(Constants.SelectedVehicle, JSON.stringify(this.selectedVehicle));\r\n\r\n // Preload missing data to set the payment\r\n if (!this.InitialFinancial) {\r\n await this.loadColours(this.selectedVehicle.year, this.selectedVehicle.carline, this.selectedVehicle.trim, this.selectedVehicle.model, this.selectedVehicle.packageCode);\r\n }\r\n\r\n const data = await this._apiService.getPayments(model, packageCode);\r\n\r\n const financial = this.InitialFinancial;\r\n this.FinancialInfo = this.getFinanceObjectWithCalculations(financial, '', '', false, false, false, false, null, null);\r\n sessionStorage.setItem(Constants.UrlSlugObjectPayments, JSON.stringify({ 'year': year, 'carline': carline, 'trim': trim, 'model': model, 'packageCode': packageCode }));\r\n\r\n // Reset the value\r\n if(getParams()['tve'] === undefined){\r\n this.TradeInValue = 0;\r\n } else {\r\n this.TradeInValue = getParams()['tve'][0];\r\n }\r\n\r\n this.DownPaymentValue = 0;\r\n this.LoyaltyChecked = false;\r\n this.GraduateChecked = false;\r\n this.MilitaryChecked = false;\r\n\r\n // SET DEFAULT VALUE for first time owner when it has a value. Part of a campaign\r\n this.FirstTimeOwnerChecked = false; //this.FinancialInfo.incentive_programs.find(x => x.type === \"first_time_owner\").value;\r\n\r\n\r\n\r\n // Make sure that we have a lease term index value or we set the highest one\r\n if (this.LeaseTerm) {\r\n let foundIndex = this.FinancialInfo.lease.findIndex(x => x.term === this.LeaseTerm);\r\n\r\n if (foundIndex > -1)\r\n this.LeaseTermIndex = foundIndex;\r\n else\r\n this.LeaseTermIndex = this.FinancialInfo.lease.length - 1;\r\n\r\n } else {\r\n // HARDCODED RULES ADDED FOR QUEBEC\r\n if (carline === 'CX-90-PHEV' && getProvince() === 'QC') {\r\n this.LeaseTermIndex = this.FinancialInfo.lease.findIndex(x => x.term === 36);\r\n } else {\r\n this.LeaseTermIndex = this.FinancialInfo.lease.length - 1;\r\n }\r\n }\r\n\r\n if (this.FinanceTerm) {\r\n let foundIndex = this.FinancialInfo.apr.findIndex(x => x.term === this.FinanceTerm);\r\n if (foundIndex > -1)\r\n this.FinanceTermIndex = foundIndex;\r\n else\r\n this.FinanceTermIndex = this.FinancialInfo.apr.length - 1;\r\n } else {\r\n this.FinanceTermIndex = this.FinancialInfo.apr.length - 1;\r\n }\r\n\r\n this.Incentives = this.getIncentives(this.FinancialInfo);\r\n }\r\n\r\n /**\r\n * Load Step 8 - Load the summary. This function should be sooner or later deprecated because we have thw hole object\r\n */\r\n async loadSummary(year, carline, trim, model, packageCode) {\r\n this.selectedVehicle.year = year;\r\n this.selectedVehicle.carline = carline;\r\n this.selectedVehicle.trim = trim;\r\n this.selectedVehicle.model = model;\r\n this.selectedVehicle.packageCode = packageCode;\r\n sessionStorage.setItem(Constants.SelectedVehicle, JSON.stringify(this.selectedVehicle));\r\n\r\n const data = await this._apiService.getSummary(model, packageCode);\r\n \r\n // Set new legal\r\n sessionStorage.setItem(Constants.LegalTrims, JSON.stringify(buildLegalContent(data.trims, data.incentives)));\r\n sessionStorage.setItem(Constants.LegalOption, JSON.stringify(buildLegalContent(data.options, data.incentives)));\r\n sessionStorage.setItem(Constants.LegalColours, JSON.stringify(buildLegalContent(data.colours, data.incentives)));\r\n sessionStorage.setItem(Constants.LegalWheels, JSON.stringify(buildLegalContent(data.wheels, data.incentives)));\r\n sessionStorage.setItem(Constants.LegalConnectivity, JSON.stringify(buildLegalContent(data.connectivity, data.incentives)));\r\n sessionStorage.setItem(Constants.LegalAccessories, JSON.stringify(buildLegalContent(data.accessories, data.incentives))); \r\n sessionStorage.setItem(Constants.LegalProtections, JSON.stringify(buildLegalContent(data.protection, data.incentives)));\r\n sessionStorage.setItem(Constants.LegalPaymentInformation, JSON.stringify(buildLegalContent(data.payments, data.incentives)));\r\n sessionStorage.setItem(Constants.LegalSummary, JSON.stringify(buildLegalContent(data.summary)));\r\n \r\n this.reloadStoredData();\r\n }\r\n\r\n /**\r\n * Load Step 8 - Load the summary. This function should be sooner or later deprecated because we have thw hole object\r\n */\r\n async loadVehiclesLegal(modelCode, packageCode) {\r\n if (window.bnp_under_maintenance) {\r\n if (getLang() === \"en\") {\r\n const mock = require('../Services/vehiclesLegalMockEn.json');\r\n return mock.data.vehicles;\r\n } else {\r\n const mock = require('../Services/vehiclesLegalMockFr.json');\r\n return mock.data.vehicles;\r\n }\r\n } else {\r\n // HARDCODING MODEL AND PACKAGE CODE AS IT DOESN'T MATTER FOR THE VEHICLE LANDING PAGE LEGAL\r\n const data = await this._apiService.getSummary(modelCode, packageCode);\r\n\r\n // Set new legal\r\n sessionStorage.setItem(Constants.LegalVehicles, JSON.stringify(buildLegalContent(data.vehicles)));\r\n\r\n return data.vehicles;\r\n }\r\n } \r\n\r\n async loadSpecsData(model, packageCode) {\r\n const data = await this._apiService.getSpecificationsData(model, packageCode);\r\n\r\n sessionStorage.setItem(Constants.SpecificationData, JSON.stringify(data[0].specifications));\r\n }\r\n\r\n hasDefaultInteriorColorSelected() {\r\n let hasDefaultInteriorColorSelected = false;\r\n\r\n const selectedInteriorColour = JSON.parse(sessionStorage.getItem(Constants.SelectedInteriorColour));\r\n if (this.Colours && selectedInteriorColour) {\r\n // Look if the interior colour isn't a default selection\r\n const defaultInteriorColour = this.Colours.visual.interiors[0];\r\n if (defaultInteriorColour.id === selectedInteriorColour.id)\r\n hasDefaultInteriorColorSelected = true;\r\n }\r\n\r\n return hasDefaultInteriorColorSelected;\r\n }\r\n\r\n hasDefaultExteriorColorSelected() {\r\n let hasDefaultExteriorColorSelected = false;\r\n\r\n const selectedExteriorColour = JSON.parse(sessionStorage.getItem(Constants.SelectedExteriorColour));\r\n if (this.Colours && selectedExteriorColour) {\r\n const defaultInteriorColour = this.Colours.visual.interiors[0];\r\n const defaultExteriorColour = defaultInteriorColour.default_exterior;\r\n if (defaultExteriorColour.id === selectedExteriorColour.id)\r\n hasDefaultExteriorColorSelected = true;\r\n }\r\n\r\n return hasDefaultExteriorColorSelected;\r\n }\r\n\r\n displayWarning() {\r\n let showWarningMessage = false;\r\n\r\n switch (this.CurrentStep) {\r\n case 1: // TRIM\r\n case 2: // ENGINE AND DRIVETRAIN\r\n if (this.SelectedPackageIndex != null || this.SelectedNonModelPackageIndex != null || this.SelectedWarrantyIndex != null || this.SelectedConnectedVehicleIndex != null)\r\n showWarningMessage = true;\r\n\r\n if (this.hasDefaultExteriorColorSelected() && this.hasDefaultInteriorColorSelected()) {\r\n // console.log('no default color selected');\r\n } else {\r\n showWarningMessage = true;\r\n }\r\n\r\n if (this.SelectedAccessories && this.SelectedAccessories.length > 0)\r\n showWarningMessage = true;\r\n\r\n if (this.SelectedWheel)\r\n showWarningMessage = true;\r\n break;\r\n case 3: // PACKAGES\r\n case 4: // COLORS\r\n case 5: // WHEELS:\r\n case 6: // ACCESSORIES\r\n default:\r\n showWarningMessage = false;\r\n }\r\n\r\n // if (this._selectedModelIndex > 0 || this._selectedPackageIndex != null || this.SelectedNonModelPackageIndex != null|| this._selectedColourExteriorIndex > 0 || this._selectedColourInteriorIndex > 0)\r\n // showWarningMessage = true;\r\n\r\n return showWarningMessage;\r\n }\r\n\r\n\r\n // todo move to utility class\r\n groupBy(xs, key) {\r\n return xs.reduce(function (rv, x) {\r\n (rv[x[key].title] = rv[x[key].title] || []).push(x);\r\n return rv;\r\n }, {});\r\n };\r\n\r\n get VehicleTitle() {\r\n let title;\r\n let plainTitle;\r\n let mazda = '';\r\n const yearName = this.EngineAndDrivetrain ?.model_year ?.year ?.title;\r\n const modelName = this.EngineAndDrivetrain ?.model_year ?.carline ?.title;\r\n const trimName = this.EngineAndDrivetrain ?.trim ?.trim_type ?.name\r\n switch (this.CurrentStep) {\r\n case 7: // payment\r\n case 1: // trim\r\n case 2: // engine & drivetrain\r\n case 3: // packages\r\n case 4: // colours\r\n case 5: // wheels\r\n case 6: // accessories\r\n default:\r\n let sup = '';\r\n if (modelName ?.includes('CX-90') && trimName == 'GS' && yearName === '2024') {\r\n sup = '';\r\n }\r\n if (modelName ?.includes('Mazda CX-50 Hybrid') && trimName == 'GS-L' && yearName === '2025') {\r\n sup = '';\r\n } \r\n\r\n if (title && !(modelName.toUpperCase().includes(\"MAZDA\")))\r\n mazda = 'MAZDA';\r\n if (this._language === \"en\") {\r\n title = `${yearName} ${mazda} ${modelName} ${trimName}${sup} `;\r\n\r\n } else { // assume that it's french\r\n if (modelName === undefined) {\r\n title = ``;\r\n } else {\r\n title = `${mazda} ${modelName} ${trimName} ${yearName}${sup}`; //this.EngineAndDrivetrain?.trim?.title;\r\n //plainTitle = `${mazda} ${modelName} ${trimName} ${yearName}`;\r\n plainTitle = `${modelName}`;\r\n }\r\n }\r\n // set title without any other bells and whistles\r\n plainTitle = `${modelName}`;\r\n sessionStorage.setItem('plainTitle', plainTitle.replace(new RegExp('mazda ', 'ig'), ''));\r\n break;\r\n }\r\n\r\n if (!title)\r\n title = sessionStorage.getItem(Constants.VehicleTitle); // Hack for not showing undefined when switching trim\r\n if (title !== '' && (title === null || title.includes('undefined')))\r\n return '';\r\n else\r\n return title;\r\n }\r\n\r\n /**\r\n * Recalculate the object FinancialInfo used at many place\r\n */\r\n async RecalculateFinancialInfo() {\r\n await this.loadFromFinancialProvider();\r\n\r\n if (this.FinancialInfo) {\r\n this.FinancialInfo = this.getFinanceObjectWithCalculations(this.FinancialInfo, this._tradeInValue, this._downPaymentValue, this.LoyaltyChecked, this.GraduateChecked, this.MilitaryChecked, this.FirstTimeOwnerChecked, this.FinanceTermIndex, this.LeaseTermIndex, this.AnnualMileage);\r\n }\r\n return this.FinancialInfo;\r\n }\r\n\r\n /**\r\n * getFinanceObjectWithCalculations\r\n */\r\n getFinanceObjectWithCalculations(financialObj, tradeInValue, downPaymentValue, loyaltyChecked, graduateChecked, militaryChecked, firstTimeOwnerChecked, financeTermIndex, leaseTermIndex, annualMileage) {\r\n // Save the financial object initial states in storage for later fetching PPSA\r\n sessionStorage.setItem(Constants.FinancialObj, JSON.stringify(financialObj)); \r\n\r\n let accessories = 0;\r\n if (typeof annualMileage === \"undefined\") {\r\n annualMileage = 0;\r\n } else {\r\n annualMileage = parseInt(annualMileage);\r\n }\r\n if (!tradeInValue) tradeInValue = '0';\r\n tradeInValue = tradeInValue !== '' ? parseInt(tradeInValue.toString().replace('$', '')) : 0;\r\n if (!downPaymentValue) downPaymentValue = '0';\r\n downPaymentValue = downPaymentValue !== '' ? parseInt(downPaymentValue.toString().replace('$', '')) : 0;\r\n\r\n financialObj.tradeInValue = parseInt(tradeInValue);\r\n financialObj.downPaymentValue = parseInt(downPaymentValue);\r\n financialObj.loyaltyChecked = loyaltyChecked;\r\n financialObj.militaryChecked = militaryChecked;\r\n financialObj.graduateChecked = graduateChecked;\r\n financialObj.firstTimeOwnerChecked = firstTimeOwnerChecked;\r\n financialObj.accessoriesValue = accessories;\r\n financialObj.annualMileage = annualMileage;\r\n financialObj.financeTerm = financeTermIndex !== null ? financeTermIndex : financialObj.apr.length - 1;\r\n financialObj.leaseTerm = leaseTermIndex !== null ? leaseTermIndex : financialObj.lease.length - 1;\r\n financialObj.incentive_programs = financialObj.incentive_programs ? financialObj.incentive_programs : [];\r\n financialObj.package = this.SelectedPackage;\r\n financialObj.warranty = this.SelectedWarrantyPackage;\r\n financialObj.connectedVehicle = this.SelectedConnectedVehiclePackage;\r\n financialObj.addedProtection = this.SelectedAddedProtectionPackage;\r\n financialObj.appearanceProtection = this.SelectedAppearanceProtectionPlansPackage;\r\n \r\n \r\n // FEES EXTRACTION\r\n\r\n financialObj.freight = financialObj.fees.filter((fee) => fee.title === 'Freight').length ? financialObj.fees.filter((fee) => fee.title === 'Freight')[0].price : 0;\r\n financialObj.pde = financialObj.fees.filter((fee) => fee.title === 'PDE').length ? financialObj.fees.filter((fee) => fee.title === 'PDE')[0].price : 0;\r\n financialObj.acTax = financialObj.fees.filter((fee) => fee.title === 'A/C Tax').length ? financialObj.fees.filter((fee) => fee.title === 'A/C Tax')[0].price : 0;\r\n financialObj.exciseTax = financialObj.fees.filter((fee) => fee.title === 'Federal Excise Tax').length ? financialObj.fees.filter((fee) => fee.title === 'Federal Excise Tax')[0].price : 0;\r\n financialObj.amvic = financialObj.fees.filter((fee) => fee.title === 'AMVIC').length ? financialObj.fees.filter((fee) => fee.title === 'AMVIC')[0].price : 0;\r\n financialObj.omvic = financialObj.fees.filter((fee) => fee.title === 'OMVIC').length ? financialObj.fees.filter((fee) => fee.title === 'OMVIC')[0].price : 0;\r\n financialObj.tireStewardshipFee = financialObj.fees.filter((fee) => fee.title === 'Tire Shewardship Fee').length ? financialObj.fees.filter((fee) => fee.title === 'Tire Shewardship Fee')[0].price : 0;\r\n financialObj.oil = financialObj.fees.filter((fee) => fee.title === 'Oil').length ? financialObj.fees.filter((fee) => fee.title === 'Oil')[0].price : 0;\r\n\r\n // LEASE AND ADMIN SERVICE FEES ARE THE SAME STARTING 1ST JANUARY 2024 // 595\r\n financialObj.leaseServiceFees = financialObj.fees.filter((fee) => fee.title === 'Administration Fee').length ? financialObj.fees.filter((fee) => fee.title === 'Administration Fee')[0].price : 0;\r\n financialObj.adminServiceFees = financialObj.fees.filter((fee) => fee.title === 'Administration Fee').length ? financialObj.fees.filter((fee) => fee.title === 'Administration Fee')[0].price : 0;\r\n\r\n financialObj.mazdaCashIncentive = financialObj.incentive_programs.filter((fee) => fee.type === 'mazda_retail_cash').length ? financialObj.incentive_programs.filter((fee) => fee.type === 'mazda_retail_cash')[0].value : 0;\r\n\r\n financialObj.calculatedCash = this.cashCalculator(financialObj, tradeInValue, downPaymentValue, loyaltyChecked, graduateChecked, militaryChecked, firstTimeOwnerChecked);\r\n financialObj.calculatedFinance = this.loanCalculator(financialObj, tradeInValue, downPaymentValue, loyaltyChecked, graduateChecked, militaryChecked, firstTimeOwnerChecked);\r\n financialObj.calculatedLease = this.leaseCalculator(financialObj, tradeInValue, downPaymentValue, loyaltyChecked, graduateChecked, militaryChecked, firstTimeOwnerChecked, annualMileage);\r\n \r\n financialObj.minDownPayment = 0;\r\n financialObj.maxDownPayment = this.getMaxDownPayment(financialObj);\r\n sessionStorage.setItem(Constants.FinancialObj, JSON.stringify(financialObj));\r\n\r\n return financialObj;\r\n }\r\n\r\n /**\r\n * cashCalculator\r\n */\r\n cashCalculator(financialObj, tradeInValue, downPaymentValue, loyaltyChecked, graduateChecked, militaryChecked, firstTimeOwnerChecked) {\r\n let tempIncentives = financialObj.incentive_programs.find(element => element.type === \"incentive\");\r\n\r\n const cashObj = {};\r\n cashObj.tax = this.getTax();\r\n cashObj.accessories = this.getAccessories();\r\n cashObj.options = this.getOptions();\r\n cashObj.feesAndLevies = this.getFeesAndLeaves(true, false);\r\n cashObj.incentives = this.getIncentivesObj(loyaltyChecked, graduateChecked, militaryChecked, firstTimeOwnerChecked, true);\r\n cashObj.mazdaRetailCash = this.getIncentives(financialObj) ?.mazda_retail_cash ?.value || 0;\r\n cashObj.specialIncentives = tempIncentives ? tempIncentives.value != null ? tempIncentives.value : 0 : 0;\r\n\r\n cashObj.evRebates = this.getEvRebate(financialObj);\r\n cashObj.tradeInValue = parseInt(tradeInValue);\r\n cashObj.downPaymentValue = parseInt(downPaymentValue);\r\n\r\n cashObj.mazdaPrice = financialObj.msrp + \r\n /*financialObj.package.financial.msrp + \r\n //financialObj.connectedVehicle.financial.msrp + \r\n /*financialObj.warranty.financial.msrp + */\r\n //financialObj.addedProtection.financial.msrp + \r\n //financialObj.appearanceProtection.financial.msrp +\r\n cashObj.options.displayedTotal + \r\n //cashObj.accessories.total + \r\n financialObj.freight +\r\n financialObj.pde +\r\n financialObj.adminServiceFees;\r\n\r\n const nonTaxableInc = cashObj.incentives.nonTaxable.total + financialObj.mazdaCashIncentive;\r\n const taxableInc = cashObj.incentives.taxable.total;\r\n const evRebate = cashObj.evRebates.total.cash;\r\n\r\n const subTotal = financialObj.msrp \r\n + cashObj.options.total \r\n + cashObj.accessories.total \r\n - cashObj.tradeInValue \r\n - cashObj.downPaymentValue \r\n - cashObj.specialIncentives \r\n - taxableInc \r\n + financialObj.freight \r\n + financialObj.pde\r\n + financialObj.adminServiceFees;\r\n cashObj.subtotal = subTotal - nonTaxableInc;\r\n cashObj.subtotalTaxed = subTotal + (subTotal * cashObj.tax) - nonTaxableInc;\r\n cashObj.subtotalTaxes = subTotal * cashObj.tax;\r\n\r\n const subtotalFees = subTotal;\r\n cashObj.subtotalWithFees = subtotalFees - nonTaxableInc + cashObj.feesAndLevies.total;\r\n cashObj.subtotalWithFeesTaxed = subtotalFees + (subtotalFees * cashObj.tax) - nonTaxableInc + cashObj.feesAndLevies.total;\r\n cashObj.subtotalWithFeesTaxes = subtotalFees * cashObj.tax;\r\n\r\n const incentiveRebates = subTotal;\r\n cashObj.subtotalWithIncentiveRebates = incentiveRebates - nonTaxableInc;\r\n cashObj.subtotalWithIncentiveRebatesAndEvRebates = incentiveRebates - evRebate - nonTaxableInc;\r\n cashObj.subtotalWithIncentiveRebatesAndEvRebatesTaxed = incentiveRebates + (incentiveRebates * cashObj.tax) - evRebate - nonTaxableInc;\r\n cashObj.subtotalWithIncentiveRebatesAndEvRebatesTaxes = incentiveRebates * cashObj.tax;\r\n\r\n const feesRebates = subTotal;\r\n cashObj.subtotalWithFeesWithRebates = feesRebates - nonTaxableInc;\r\n cashObj.subtotalWithFeesWithRebatesAndEvRebates = feesRebates - nonTaxableInc - evRebate +cashObj.feesAndLevies.total;\r\n cashObj.subtotalWithFeesWithRebatesTaxed = feesRebates + (feesRebates * cashObj.tax) - evRebate - nonTaxableInc + cashObj.feesAndLevies.total;\r\n cashObj.subtotalWithFeesWithRebatesTaxes = feesRebates * cashObj.tax;\r\n\r\n return cashObj;\r\n }\r\n\r\n /**\r\n * leaseCalculator\r\n */\r\n leaseCalculator(financialObj, tradeInValue, downPaymentValue, loyaltyChecked, graduateChecked, militaryChecked, firstTimeOwnerChecked, annualMileage) {\r\n let tempIncentives = financialObj.incentive_programs.find(element => element.type === \"incentive\");\r\n\r\n const leaseObj = {};\r\n leaseObj.tax = this.getTax();\r\n leaseObj.accessories = this.getAccessories();\r\n leaseObj.options = this.getOptions();\r\n leaseObj.feesAndLevies = this.getFeesAndLeaves(true, true);\r\n leaseObj.incentives = this.getIncentivesObj(loyaltyChecked, graduateChecked, militaryChecked, firstTimeOwnerChecked);\r\n leaseObj.rewards = this.getRewardsList(loyaltyChecked, graduateChecked, militaryChecked, firstTimeOwnerChecked);\r\n leaseObj.mazdaRetailCash = this.getIncentives(financialObj)?.mazda_retail_cash?.value || 0;\r\n leaseObj.specialIncentives = tempIncentives ? tempIncentives.value != null ? tempIncentives.value : 0 : 0;\r\n\r\n leaseObj.evRebates = this.getEvRebate(financialObj);\r\n leaseObj.tradeInValue = parseInt(tradeInValue);\r\n leaseObj.downPaymentValue = parseInt(downPaymentValue);\r\n leaseObj.downPaymentTax = leaseObj.downPaymentValue * leaseObj.tax;\r\n leaseObj.kilometersLeaseValue = annualMileage;\r\n \r\n if (!financialObj.calculatedLease || !financialObj.calculatedLease.leaseValues)\r\n leaseObj.leaseValues = [...financialObj.lease];\r\n else\r\n leaseObj.leaseValues = financialObj.calculatedLease.leaseValues;\r\n\r\n leaseObj.subtotal = financialObj.msrp\r\n + financialObj.addedProtection.financial.msrp \r\n + financialObj.appearanceProtection.financial.msrp\r\n + financialObj.warranty.financial.msrp\r\n + financialObj.connectedVehicle.financial.msrp\r\n + leaseObj.options.total\r\n + leaseObj.accessories.total\r\n - leaseObj.tradeInValue\r\n - leaseObj.specialIncentives\r\n - leaseObj.incentives.taxable.total\r\n + leaseObj.leaseValues[this.LeaseTermIndex].ppsa\r\n + financialObj.freight\r\n + financialObj.pde;\r\n \r\n\r\n //total.federal_tax\r\n //leaseObj.subtotalTaxed = leaseObj.subtotal + (leaseObj.subtotal * leaseObj.tax);\r\n leaseObj.subtotalWithFees = leaseObj.subtotal + leaseObj.feesAndLevies.total + financialObj.adminServiceFees;\r\n leaseObj.subtotalWithFeesTaxed = leaseObj.subtotalWithFees + (leaseObj.subtotalWithFees * leaseObj.tax);\r\n leaseObj.subtotalWithRebates = leaseObj.subtotal - leaseObj.incentives.taxable.total - (leaseObj?.evRebates?.total?.lease ?? 0);\r\n leaseObj.subtotalWithRebatesTaxed = leaseObj.subtotalWithRebates + (leaseObj.subtotalWithRebates * leaseObj.tax);\r\n leaseObj.subtotalWithFeesWithRebates = leaseObj.subtotal + leaseObj.feesAndLevies.total + financialObj.adminServiceFees - leaseObj.incentives.taxable.total - (leaseObj?.evRebates?.total?.lease ?? 0);\r\n leaseObj.subtotalWithFeesWithRebatesTaxed = leaseObj.subtotalWithFeesWithRebates + (leaseObj.subtotalWithFeesWithRebates * leaseObj.tax);\r\n\r\n leaseObj.balanceToLease = leaseObj.subtotal - leaseObj.incentives.nonTaxable.total - leaseObj.downPaymentValue;\r\n //leaseObj.balanceToLeaseTaxed = leaseObj.subtotalTaxed - leaseObj.incentives.nonTaxable.total - leaseObj.downPaymentValue;\r\n leaseObj.balanceToLeaseWithFees = leaseObj.subtotalWithFees - leaseObj.incentives.nonTaxable.total - leaseObj.downPaymentValue;\r\n //leaseObj.balanceToLeaseWithFeesTaxed = leaseObj.subtotalWithFeesTaxed - leaseObj.incentives.nonTaxable.total - leaseObj.downPaymentValue;\r\n leaseObj.balanceToLeaseWithRebates = leaseObj.subtotalWithRebates - leaseObj.incentives.nonTaxable.total - leaseObj.downPaymentValue;\r\n //leaseObj.balanceToLeaseWithRebatesTaxed = leaseObj.subtotalWithRebatesTaxed - leaseObj.incentives.nonTaxable.total - leaseObj.downPaymentValue;+\r\n leaseObj.balanceToLeaseWithFeesWithRebates = leaseObj.subtotalWithFeesWithRebates - leaseObj.incentives.nonTaxable.total - leaseObj.downPaymentValue;\r\n\r\n // Used in the price bar\r\n leaseObj.balanceToLeaseWithFeesWithRebatesTaxed = leaseObj.subtotalWithFeesWithRebatesTaxed - leaseObj.incentives.nonTaxable.total - leaseObj.downPaymentValue;\r\n\r\n\r\n leaseObj.leaseValues.forEach(leaseElement => {\r\n leaseElement.residual = financialObj.residual.filter((resudualObj) => resudualObj.term === leaseElement.term)[0].rate;\r\n \r\n leaseElement.moneyFactor = financialObj.money_factor.filter((moneyFactorObj) => moneyFactorObj.term === leaseElement.term)[0].rate;\r\n leaseElement.leaseEndValueNoFees = leaseElement.residualAmount;\r\n leaseElement.leaseEndValue = leaseElement.residualAmount;\r\n });\r\n\r\n return leaseObj;\r\n }\r\n\r\n /**\r\n * loanCalculator\r\n */\r\n loanCalculator(financialObj, tradeInValue, downPaymentValue, loyaltyChecked, graduateChecked, militaryChecked, firstTimeOwnerChecked) {\r\n let tempIncentives = financialObj.incentive_programs.find(element => element.type === \"incentive\");\r\n\r\n const financeObj = {};\r\n financeObj.tax = this.getTax();\r\n financeObj.accessories = this.getAccessories();\r\n financeObj.options = this.getOptions();\r\n financeObj.feesAndLevies = this.getFeesAndLeaves(true, false);\r\n financeObj.incentives = this.getIncentivesObj(loyaltyChecked, graduateChecked, militaryChecked, firstTimeOwnerChecked);\r\n financeObj.evRebates = this.getEvRebate(financialObj);\r\n financeObj.rewards = this.getRewardsList(loyaltyChecked, graduateChecked, militaryChecked, firstTimeOwnerChecked);\r\n financeObj.mazdaRetailCash = this.getIncentives(financialObj)?.mazda_retail_cash?.value || 0;\r\n financeObj.specialIncentives = tempIncentives ? tempIncentives.value != null ? tempIncentives.value : 0 : 0;\r\n financeObj.tradeInValue = parseInt(tradeInValue);\r\n financeObj.downPaymentValue = parseInt(downPaymentValue);\r\n\r\n if (!financialObj.calculatedFinance || !financialObj.calculatedFinance.financeValues)\r\n financeObj.financeValues = [...financialObj.apr];\r\n else\r\n financeObj.financeValues = financialObj.calculatedFinance.financeValues;\r\n\r\n // Do not remove this line below, used in Financial Provider!!!\r\n financeObj.subtotalWithoutTradInAndDownPayment = financialObj.msrp + financialObj.package.financial.msrp + financialObj.warranty.financial.msrp + financialObj.connectedVehicle.financial.msrp + financeObj.options.total + financeObj.accessories.total;\r\n\r\n financeObj.subtotal = financialObj.msrp \r\n /*+ financialObj.package.financial.msrp **/ \r\n + financialObj.addedProtection.financial.msrp \r\n + financialObj.appearanceProtection.financial.msrp \r\n + financialObj.connectedVehicle.financial.msrp \r\n + financialObj.warranty.financial.msrp \r\n + financeObj.options.total \r\n + financeObj.accessories.total \r\n - financeObj.tradeInValue \r\n - financeObj.specialIncentives \r\n - financeObj.incentives.taxable.total \r\n + financialObj.freight \r\n + financialObj.pde\r\n + financeObj.financeValues[this.FinanceTermIndex].ppsa\r\n financeObj.subtotalTaxed = financeObj.subtotal + (financeObj.financeValues[this.FinanceTermIndex].gstAmount + financeObj.financeValues[this.FinanceTermIndex].pstAmount);\r\n financeObj.subtotalTaxes = financeObj.financeValues[this.FinanceTermIndex].gstAmount + financeObj.financeValues[this.FinanceTermIndex].pstAmount;\r\n\r\n financeObj.subtotalWithFees = financeObj.subtotal + financeObj.feesAndLevies.total + financialObj.adminServiceFees;\r\n financeObj.subtotalWithFeesTaxed = financeObj.subtotalWithFees + financeObj.subtotalTaxes\r\n //financeObj.subtotalWithFeesTaxes = financeObj.subtotalWithFees * financeObj.tax;\r\n\r\n financeObj.subtotalWithRebates = financeObj.subtotal;\r\n financeObj.subtotalWithRebatesTaxed = financeObj.subtotalWithRebates + financeObj.subtotalTaxes\r\n //financeObj.subtotalWithRebatesTaxes = financeObj.subtotalWithRebates * financeObj.tax;\r\n\r\n financeObj.subtotalWithFeesWithRebates = financeObj.subtotalWithFees;\r\n financeObj.subtotalWithFeesWithRebatesTaxed = financeObj.subtotalWithFeesWithRebates + financeObj.subtotalTaxes\r\n //financeObj.subtotalWithFeesWithRebatesTaxes = financeObj.subtotalWithFeesWithRebates * financeObj.tax;\r\n\r\n financeObj.balanceToFinance = financeObj.subtotal - financeObj.incentives.nonTaxable.total - financeObj.downPaymentValue - financeObj.evRebates.total.finance;\r\n financeObj.balanceToFinanceTaxed = financeObj.subtotalTaxed - financeObj.incentives.nonTaxable.total - financeObj.downPaymentValue;\r\n financeObj.balanceToFinanceWithFees = financeObj.subtotalWithFees - financeObj.incentives.nonTaxable.total - financeObj.downPaymentValue;\r\n financeObj.balanceToFinanceWithFeesTaxed = financeObj.subtotalWithFeesTaxed - financeObj.incentives.nonTaxable.total - financeObj.downPaymentValue;\r\n financeObj.balanceToFinanceWithRebates = financeObj.subtotalWithRebates - financeObj.incentives.nonTaxable.total - financeObj.downPaymentValue - financeObj.evRebates.total.finance;\r\n financeObj.balanceToFinanceWithRebatesTaxed = financeObj.subtotalWithRebatesTaxed - financeObj.incentives.nonTaxable.total - financeObj.downPaymentValue - financeObj.evRebates.total.finance;\r\n financeObj.balanceToFinanceWithFeesWithRebates = financeObj.subtotalWithFeesWithRebates - financeObj.incentives.nonTaxable.total - financeObj.downPaymentValue - financeObj.evRebates.total.finance;\r\n financeObj.balanceToFinanceWithFeesWithRebatesTaxed = financeObj.subtotalWithFeesWithRebatesTaxed - financeObj.incentives.nonTaxable.total - financeObj.downPaymentValue - financeObj.evRebates.total.finance;\r\n\r\n return financeObj;\r\n }\r\n\r\n get ExteriorColorInParam() {\r\n let exterior;\r\n\r\n const params = getParams();\r\n\r\n if (params['exterior'] && params['exterior'][0])\r\n exterior = params['exterior'][0];\r\n\r\n return exterior;\r\n }\r\n\r\n get InteriorColorInParam() {\r\n let interior;\r\n\r\n const params = getParams();\r\n\r\n if (params['interior'] && params['interior'][0])\r\n interior = params['interior'][0];\r\n\r\n return interior;\r\n }\r\n\r\n SetSelectedColorsFromParams() {\r\n if (this.ExteriorColorInParam !== null && (this.SelectedColourExterior === null || this.SelectedColourExterior.code !== this.ExteriorColorInParam)) {\r\n //console.log('exteriorColor:', this.ExteriorColorInParam);\r\n Object.entries(this.Colours.visual.exteriors).map((Colour, index) => {\r\n if (Colour[1]['code'] === this.ExteriorColorInParam) {\r\n this.SelectedColourExteriorIndex = index;\r\n //console.log('found the matched ext color!');\r\n }\r\n });\r\n }\r\n\r\n if (this.InteriorColorInParam !== null && (this.SelectedColourInterior === null || this.SelectedColourInterior.code !== this.InteriorColorInParam)) {\r\n //console.log('interiorColor:', this.InteriorColorInParam);\r\n this.Colours.visual.interiors.map((Colour, index) => {\r\n if (Colour.code === this.InteriorColorInParam) {\r\n this.SelectedColourInteriorIndex = index;\r\n //console.log('found the matched int color!');\r\n }\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * getAccessories\r\n */\r\n getAccessories() {\r\n const accessoriesObj = JSON.parse(sessionStorage.getItem(Constants.SelectedAccessories));\r\n let accessories = {};\r\n accessories.total = Math.round((accessoriesObj !== null ? accessoriesObj.reduce((total, accessorie) => total + accessorie.price, 0) : 0) * 100) / 100;\r\n accessories.total_residual_value = Math.round((accessoriesObj !== null ? accessoriesObj.reduce((total, accessorie) => total + accessorie.residual_value, 0) : 0) * 100) / 100;\r\n accessories.detail = accessoriesObj !== null ? { ...accessoriesObj } : {};\r\n return accessories;\r\n }\r\n\r\n /**\r\n * getOptions\r\n */\r\n getOptions() {\r\n // TODO: WHY ARE WE LOADING FROM SESSION STORAGE WHEN THIS OBJECT HOLDS AND LOAD IT ALREADY ? \r\n const selectedWheel = JSON.parse(sessionStorage.getItem(Constants.SelectedWheel)) || {};\r\n let selectedExteriorColour = JSON.parse(sessionStorage.getItem(Constants.DefaultExteriorColour));\r\n let selectedInteriorColour = JSON.parse(sessionStorage.getItem(Constants.DefaultInteriorColour));\r\n if (sessionStorage.getItem(Constants.SelectedExteriorColour)) {\r\n selectedExteriorColour = JSON.parse(sessionStorage.getItem(Constants.SelectedExteriorColour));\r\n }\r\n if (sessionStorage.getItem(Constants.SelectedInteriorColour)) {\r\n selectedInteriorColour = JSON.parse(sessionStorage.getItem(Constants.SelectedInteriorColour));\r\n }\r\n\r\n const selectedPackage = this.SelectedPackage;\r\n const selectedNonModelPackage = this.SelectedNonModelPackage;\r\n const selectedWarrantyPackage = this.SelectedWarrantyPackage;\r\n const selectedConnectedVehiclePackage = this.SelectedConnectedVehiclePackage;\r\n\r\n let options = {};\r\n // displayedTotal is used in the mazdaPrice\r\n options.displayedTotal = (selectedInteriorColour?.price ? selectedInteriorColour.price : 0) \r\n + (selectedExteriorColour?.price ? selectedExteriorColour.price : 0)\r\n + (selectedNonModelPackage?.financial?.msrp ? selectedNonModelPackage.financial.msrp : 0) \r\n + (selectedWarrantyPackage?.financial?.msrp ? selectedWarrantyPackage.financial.msrp : 0) \r\n + (selectedConnectedVehiclePackage?.financial?.msrp ? selectedConnectedVehiclePackage.financial.msrp : 0);\r\n\r\n options.total = (selectedWheel.price ? selectedWheel.price : 0) +\r\n + (selectedExteriorColour && selectedExteriorColour.price ? selectedExteriorColour.price : 0)\r\n + (selectedInteriorColour && selectedInteriorColour.price ? selectedInteriorColour.price : 0);\r\n\r\n options.wheels = selectedWheel;\r\n options.interiorColour = selectedInteriorColour;\r\n options.exteriorColour = selectedExteriorColour;\r\n options.model_option_package = selectedPackage;\r\n options.universal_package = selectedNonModelPackage;\r\n options.warranty_package = selectedWarrantyPackage;\r\n options.connected_vehicle_package = selectedConnectedVehiclePackage;\r\n return options;\r\n\r\n }\r\n\r\n /**\r\n * getDetailedOptions\r\n * \r\n * This version is for the calculated cash which has a separated entry for protection, accessories, connectivty\r\n */\r\n getDetailedOptions() {\r\n const selectedWheel = JSON.parse(sessionStorage.getItem(Constants.SelectedWheel)) || {};\r\n let selectedExteriorColour = JSON.parse(sessionStorage.getItem(Constants.DefaultExteriorColour));\r\n let selectedInteriorColour = JSON.parse(sessionStorage.getItem(Constants.DefaultInteriorColour));\r\n if (sessionStorage.getItem(Constants.SelectedExteriorColour)) {\r\n selectedExteriorColour = JSON.parse(sessionStorage.getItem(Constants.SelectedExteriorColour));\r\n }\r\n if (sessionStorage.getItem(Constants.SelectedInteriorColour)) {\r\n selectedInteriorColour = JSON.parse(sessionStorage.getItem(Constants.SelectedInteriorColour));\r\n }\r\n let selectedPackageIndex = JSON.parse(sessionStorage.getItem(Constants.SelectedPackageIndex));\r\n let selectedPackage = this.Packages?.packages.filter(pack => pack.type === 'model_option_package');\r\n if(selectedPackageIndex !== null)\r\n selectedPackage = selectedPackage[selectedPackageIndex];\r\n\r\n let selectedNonModelPackageIndex = JSON.parse(sessionStorage.getItem(Constants.SelectedNonModelPackageIndex));\r\n let selectedNonModelPackage = this.Packages?.packages.filter(pack => pack.type === 'universal_package');\r\n if(selectedNonModelPackageIndex !== null)\r\n selectedNonModelPackage = selectedNonModelPackage[selectedNonModelPackageIndex];\r\n\r\n let selectedWarrantyIndex = JSON.parse(sessionStorage.getItem(Constants.SelectedWarrantyIndex));\r\n let selectedWarrantyPackage = this.Packages?.packages.filter(pack => pack.type === 'universal_package' && (pack.package_type === 'Warranty' || pack.package_type === 'Garantie'));\r\n if(selectedWarrantyIndex !== null)\r\n selectedWarrantyPackage = selectedNonModelPackage[selectedWarrantyIndex]; \r\n\r\n let selectedConnectedVehicleIndex = JSON.parse(sessionStorage.getItem(Constants.SelectedConnectedVehicleIndex));\r\n let selectedConnectedVehiclePackage = this.Packages?.packages.filter(pack => pack.type === 'universal_package' && (pack.package_type === 'Connected Vehicle' || pack.package_type === 'Véhicule Connecté'));\r\n if(selectedConnectedVehicleIndex !== null)\r\n selectedConnectedVehiclePackage = selectedConnectedVehiclePackage[selectedConnectedVehicleIndex]; \r\n\r\n let options = {};\r\n options.displayedTotal = (selectedInteriorColour?.price ? selectedInteriorColour.price : 0) \r\n + (selectedExteriorColour?.price ? selectedExteriorColour.price : 0) \r\n + /*(selectedPackage?.financial?.msrp ? selectedPackage.financial.msrp : 0) +*/ (selectedNonModelPackage?.financial?.msrp ? selectedNonModelPackage.financial.msrp : 0) \r\n\r\n options.total = (selectedInteriorColour?.price ? selectedInteriorColour.price : 0) \r\n + (selectedExteriorColour?.price ? selectedExteriorColour.price : 0) \r\n + (selectedWheel.price ? selectedWheel.price : 0) \r\n + (selectedWheel.tpms ? selectedWheel.tpms : 0)\r\n + (selectedWheel.install_cost ? selectedWheel.install_cost : 0);\r\n //+ (selectedConnectedVehiclePackage?.financial?.msrp ? selectedConnectedVehiclePackage.financial.msrp : 0);\r\n\r\n options.wheels = selectedWheel;\r\n options.interiorColour = selectedInteriorColour;\r\n options.exteriorColour = selectedExteriorColour;\r\n options.model_option_package = selectedPackage;\r\n options.universal_package = selectedNonModelPackage;\r\n options.warranty_package = selectedWarrantyPackage;\r\n options.connected_vehicle_package = selectedConnectedVehiclePackage; \r\n return options;\r\n\r\n }\r\n\r\n /**\r\n * getSupValueFromFee\r\n */\r\n getSupValueFromFee(fee) {\r\n let sup = null;\r\n\r\n switch (fee) {\r\n case 'A/C Tax':\r\n sup = '3';\r\n break;\r\n case 'Tire':\r\n sup = '6';\r\n break;\r\n case 'OMVIC':\r\n sup = '4';\r\n break;\r\n case 'AMVIC':\r\n sup = '5';\r\n break;\r\n case 'Administration Fee':\r\n sup = '9';\r\n break;\r\n default:\r\n sup = null;\r\n break;\r\n }\r\n return sup;\r\n }\r\n\r\n /**\r\n * getFeesAndLeaves\r\n */\r\n getFeesAndLeaves(inCashCalculation, leaseMode) {\r\n let feesObj = JSON.parse(sessionStorage.getItem(Constants.FinancialObj)) ?.fees || {};\r\n let feeAndLevies = {};\r\n const that = this;\r\n if (feesObj.length) {\r\n // Filter and remove freight from the fees calculation\r\n feesObj = feesObj.filter(function (fee) {\r\n return fee.title !== 'Freight' && fee.title !== 'Administration Fee' && fee.title !== 'PDE'\r\n });\r\n\r\n // Hardcode the sup value to the label - or TRY TO add it to the JSON data.\r\n feesObj.forEach((el, index) => {\r\n feesObj[index] = { ...el, 'sup': that.getSupValueFromFee(el.title) }\r\n })\r\n\r\n // Add value to\r\n if (inCashCalculation) {\r\n // Filter and remove PDE from the fees calculation in cash calculation and leaving the feesObj intact as it's used for displaying also.\r\n const feesObjFiltered = feesObj.filter(function (fee) {\r\n return fee.title !== 'PDE'\r\n });\r\n feeAndLevies.total = feesObjFiltered.reduce((total, fee) => total + fee.price, 0);\r\n } else {\r\n feeAndLevies.total = feesObj.reduce((total, fee) => total + fee.price, 0);\r\n }\r\n\r\n feeAndLevies.detail = [...feesObj];\r\n } else {\r\n feeAndLevies.total = 0;\r\n }\r\n return feeAndLevies;\r\n }\r\n\r\n /**\r\n * getRewardsList\r\n */\r\n getRewardsList(loyaltyChecked, graduateChecked, militaryChecked, firstTimeOwnerChecked) {\r\n const financialObj = JSON.parse(sessionStorage.getItem('financialObj')) || {};\r\n const rewardKeys = [/*\"loyalty\", */'military', 'grad_award', 'first_time_owner'];\r\n\r\n // Grab the whole list of current incentives\r\n let incentivesList = this.getIncentives(financialObj);\r\n // console.log('[getRewardsList] incentivesList', incentivesList);\r\n\r\n // Add checked value to corresponding incentives(reward)\r\n if (loyaltyChecked) {\r\n incentivesList.loyalty.checked = true;\r\n }\r\n if (graduateChecked) {\r\n incentivesList.grad_award.checked = true;\r\n }\r\n if (militaryChecked) {\r\n incentivesList.military.checked = true;\r\n }\r\n if (firstTimeOwnerChecked) {\r\n incentivesList.first_time_owner.checked = true;\r\n } \r\n\r\n let rewardsList = [];\r\n\r\n // Keep the `rewards` incentives only - filter out the rest\r\n rewardKeys.forEach(key => {\r\n if (incentivesList[key] && incentivesList[key].checked === true) {\r\n rewardsList.push(incentivesList[key]);\r\n }\r\n });\r\n // console.log('[getRewardsObj] rewardsList', rewardsList);\r\n\r\n return rewardsList;\r\n }\r\n\r\n /**\r\n * getIncentivesObj\r\n */\r\n getIncentivesObj(loyaltyChecked, graduateChecked, militaryChecked, firstTimeOwnerChecked, isCashCalculation = false) {\r\n const financialObj = JSON.parse(sessionStorage.getItem('financialObj')) || {};\r\n const incentivesKeysTaxable = ['connect'];\r\n let incentivesKeysNonTaxable;\r\n\r\n // BUSINESS RULE: Loyalty is calculated on cash discount but in financing and leasing it's calculated by TCCI so we exclude it\r\n if(isCashCalculation)\r\n incentivesKeysNonTaxable = [\"military\", 'grad_award', \"loyalty\", \"first_time_owner\"];\r\n else\r\n incentivesKeysNonTaxable = [\"military\", 'grad_award', /*\"loyalty\",*/ \"first_time_owner\"];\r\n\r\n let incentives = this.getIncentives(financialObj);\r\n let incentivesObj = {};\r\n incentivesObj.taxable = {};\r\n incentivesObj.taxable.details = [];\r\n incentivesObj.taxable.total = 0;\r\n incentivesObj.nonTaxable = {};\r\n incentivesObj.nonTaxable.details = [];\r\n incentivesObj.nonTaxable.total = 0;\r\n if (loyaltyChecked) {\r\n incentives.loyalty.checked = true;\r\n }\r\n if (graduateChecked) {\r\n incentives.grad_award.checked = true;\r\n }\r\n if (militaryChecked) {\r\n incentives.military.checked = true;\r\n }\r\n if (firstTimeOwnerChecked) {\r\n incentives.first_time_owner.checked = true;\r\n }\r\n\r\n incentivesKeysTaxable.map(incentiveKey => {\r\n if (incentives[incentiveKey] && incentives[incentiveKey].checked === true) {\r\n incentivesObj.taxable.details.push(incentives[incentiveKey]);\r\n incentivesObj.taxable.total += incentives[incentiveKey].cash_value ? incentives[incentiveKey].cash_value : incentives[incentiveKey].value;\r\n }\r\n });\r\n\r\n incentivesKeysNonTaxable.map(incentiveKey => {\r\n if (incentives[incentiveKey] && incentives[incentiveKey].checked === true) {\r\n incentivesObj.nonTaxable.details.push(incentives[incentiveKey]);\r\n incentivesObj.nonTaxable.total += incentives[incentiveKey].cash_value ? incentives[incentiveKey].cash_value : incentives[incentiveKey].value;\r\n }\r\n });\r\n\r\n return incentivesObj;\r\n }\r\n\r\n /**\r\n * getEvRebate\r\n */\r\n getEvRebate(financeObj) {\r\n const tax = this.getTax(); \r\n const federalTax = this.getGstRate();\r\n const provincialTax = this.getPstRate();\r\n\r\n let evRebates = {};\r\n evRebates.total = {\r\n 'cash': 0,\r\n 'lease': 0,\r\n 'finance': 0,\r\n 'federal_tax': 0,\r\n 'provincial_tax': 0,\r\n 'tax': 0,\r\n 'lease_federal_tax': 0,\r\n 'lease_provincial_tax': 0,\r\n 'lease_tax': 0\r\n }\r\n\r\n if (!financeObj.apr || !financeObj.lease)\r\n return evRebates;\r\n\r\n evRebates.details = [];\r\n\r\n const evRebateObj = financeObj.ev_rebates;\r\n\r\n evRebateObj.map(rebate => {\r\n if(rebate.lease.length === 0 || rebate.apr.length === 0)\r\n return;\r\n\r\n const filteredLeaseItems = rebate.lease.filter(leaseItem => Number(leaseItem.term) === Number(this._leaseTerm));\r\n const leaseProRatedRebate = filteredLeaseItems.length > 0 ? filteredLeaseItems[0].rate : 0;\r\n \r\n const filteredFinanceItems = rebate.apr.filter(financeItem => Number(financeItem.term) === Number(this._financeTerm));\r\n const financeProRatedRebate = filteredFinanceItems.length > 0 ? filteredFinanceItems[0].rate : 0;\r\n\r\n const calculateTaxes = this.hasEvFinancingTaxes(getProvince());\r\n const evRebate = {\r\n cash: rebate.cash,\r\n tax_cash: calculateTaxes ? rebate.cash - (rebate.cash / (1 + tax)) : 0,\r\n lease: rebate.cash * leaseProRatedRebate,\r\n finance: rebate.cash * financeProRatedRebate,\r\n title: rebate.province\r\n }\r\n evRebates.details.push(evRebate);\r\n\r\n evRebates.total.cash += evRebate.cash; // this is with taxe include;\r\n evRebates.total.finance += evRebate.finance; // this is with taxe include;\r\n evRebates.total.lease += evRebate.lease; // this is with taxe include;\r\n\r\n if (rebate.province === \"federal\")\r\n evRebates.total.lease_federal_tax += Math.round((evRebates.total.lease * tax) * 100) / 100;\r\n else\r\n evRebates.total.lease_provincial_tax += Math.round((rebate.cash * leaseProRatedRebate * tax) * 100) / 100;\r\n });\r\n\r\n\r\n // Calulate the taxes on the sums of all the ev rebates\r\n evRebates.total.lease_tax = (evRebates.total.lease * tax);\r\n\r\n return evRebates;\r\n }\r\n\r\n /**\r\n * get incentive list associated with the financial object\r\n */\r\n getIncentives(financialObj) {\r\n let incentives = {};\r\n if (financialObj.incentive_programs)\r\n financialObj.incentive_programs.forEach(incentive => {\r\n incentives[incentive.type] = incentive;\r\n });\r\n return incentives;\r\n }\r\n\r\n /**\r\n * parseAccessoriesData\r\n */\r\n parseAccessoriesData(accessoriesData) {\r\n var data = [];\r\n const popularData = [];\r\n let formatedData = {};\r\n\r\n for (const index in accessoriesData) {\r\n data.push(accessoriesData[index]);\r\n }\r\n\r\n data.forEach((accessory, index) => {\r\n accessory.index = index;\r\n if (accessory.popular === true) {\r\n popularData.push(accessory);\r\n }\r\n })\r\n\r\n if (data.length) {\r\n formatedData = this.groupBy(data, 'category');\r\n formatedData['All'] = data;\r\n if (popularData.length > 0) {\r\n formatedData['Popular'] = popularData;\r\n }\r\n }\r\n return (formatedData);\r\n }\r\n\r\n /**\r\n * getTax - returns the HST from PST and GST\r\n */\r\n getTax() {\r\n const result = this.getGstRate() + this.getPstRate();\r\n return result;\r\n }\r\n\r\n /**\r\n * getGstRate - return the gst tax rate\r\n */\r\n getGstRate() {\r\n if (this._gstRate === 0) \r\n this._gstRate = Number(sessionStorage.getItem('FinancialProvider_GST'));\r\n \r\n const result = Number(this._gstRate) / 100;\r\n return result;\r\n }\r\n\r\n\r\n /**\r\n * getPstRate - return the provincial tax\r\n */\r\n getPstRate() {\r\n if (this._pstRate === 0) \r\n this._pstRate = Number(sessionStorage.getItem('FinancialProvider_PST'));\r\n\r\n const result = Number(this._pstRate) / 100;\r\n return result;\r\n }\r\n\r\n /*\r\n * This is the new version of the Loan Informational APR calculation.\r\n */\r\n getLoanInformationalAprRate() {\r\n const financeElement = this.FinancialInfo.calculatedFinance.financeValues[this.FinanceTermIndex];\r\n\r\n const term = financeElement.term;\r\n \r\n const monthly = financeElement.monthly;\r\n \r\n const capitalizedCost = financeElement.loanAmount;\r\n\r\n const adminFees = getProvince() === \"QC\" ? this.FinancialInfo.adminServiceFees : 0; \r\n\r\n const result = RATE(term, monthly, -capitalizedCost +adminFees, 0, 0);\r\n\r\n const toReturn = Number(result * 12 * 100);\r\n\r\n return toReturn;\r\n //return customRound(result * 12 * 100, 2);\r\n }\r\n\r\n\r\n \r\n /*\r\n * This is the new version of the Lease Informational APR calculation.\r\n */\r\n getLeaseInformationalAprRate() {\r\n const leaseElement = this.FinancialInfo.calculatedLease.leaseValues[this.LeaseTermIndex];\r\n\r\n const term = leaseElement.term;\r\n \r\n const monthly = leaseElement.monthly;\r\n \r\n const capitalizedCost = leaseElement.capitalizedCost;\r\n\r\n const adminFees = getProvince() === \"QC\" ? this.FinancialInfo.adminServiceFees : 0;\r\n\r\n const retailCash = this.FinancialInfo.calculatedLease.mazdaRetailCash;\r\n\r\n const leaseEndValue = leaseElement.leaseEndValue;\r\n\r\n const result = RATE(term, monthly, -capitalizedCost +adminFees + retailCash, Number(leaseEndValue), 1);\r\n\r\n //return customRound(result * 12 * 100, 2);\r\n return Number(result * 12 * 100);\r\n }\r\n\r\n /*\r\n * getMaxDownPayment / tradeIn\r\n *\r\n */\r\n getMaxDownPayment(financialObj) {\r\n if(!this.FinancialInfo)\r\n return 0;\r\n\r\n if(!this.SelectedModel)\r\n return 0;\r\n\r\n if(!this.SelectedPackage)\r\n return 0;\r\n\r\n const freight = this.FinancialInfo.fees.filter((fee) => fee.title === 'Freight').length ? this.FinancialInfo.fees.filter((fee) => fee.title === 'Freight')[0].price : 0;\r\n const pde = this.FinancialInfo.fees.filter((fee) => fee.title === 'PDE').length ? this.FinancialInfo.fees.filter((fee) => fee.title === 'PDE')[0].price : 0;\r\n const acTax = this.FinancialInfo.fees.filter((fee) => fee.title === 'A/C Tax').length ? this.FinancialInfo.fees.filter((fee) => fee.title === 'A/C Tax')[0].price : 0;\r\n const exciseTax = this.FinancialInfo.fees.filter((fee) => fee.title === 'Federal Excise Tax').length ? this.FinancialInfo.fees.filter((fee) => fee.title === 'Federal Excise Tax')[0].price : 0;\r\n const amvic = this.FinancialInfo.fees.filter((fee) => fee.title === 'AMVIC').length ? this.FinancialInfo.fees.filter((fee) => fee.title === 'AMVIC')[0].price : 0;\r\n const omvic = this.FinancialInfo.fees.filter((fee) => fee.title === 'OMVIC').length ? this.FinancialInfo.fees.filter((fee) => fee.title === 'OMVIC')[0].price : 0;\r\n const tireStewardshipFee = this.FinancialInfo.fees.filter((fee) => fee.title === 'Tire Shewardship Fee').length ? this.FinancialInfo.fees.filter((fee) => fee.title === 'Tire Shewardship Fee')[0].price : 0;\r\n const oil = this.FinancialInfo.fees.filter((fee) => fee.title === 'Oil').length ? this.FinancialInfo.fees.filter((fee) => fee.title === 'Oil')[0].price : 0;\r\n\r\n const mazdaCashIncentive = this.FinancialInfo.incentive_programs.filter((fee) => fee.title === 'mazda_retail_cash').length ? this.FinancialInfo.incentive_programs.filter((fee) => fee.title === 'mazda_retail_cash')[0].price : 0;\r\n\r\n // LEASE AND ADMIN SERVICE FEES ARE THE SAME STARTING 1ST JANUARY 2024 // 595\r\n //const leaseServiceFees = summaryCalculator.FinancialInfo.fees.filter((fee) => fee.title === 'Administration Fee').length ? summaryCalculator.FinancialInfo.fees.filter((fee) => fee.title === 'Administration Fee')[0].price : 0;\r\n const adminServiceFees = this.FinancialInfo.fees.filter((fee) => fee.title === 'Administration Fee').length ? this.FinancialInfo.fees.filter((fee) => fee.title === 'Administration Fee')[0].price : 0;\r\n \r\n // Loyalty can be percentage or cash amount reduction. Excluding for now\r\n const loyaltyValue = this.LoyaltyChecked ? this.FinancialInfo.incentive_programs.find(x => x.type === \"loyalty\").cash_value : 0;\r\n const graduatePrice = this.GraduateChecked ? this.FinancialInfo.incentive_programs.find(x => x.type === \"grad_award\").value : 0;\r\n const militaryPrice= this.MilitaryChecked ? this.FinancialInfo.incentive_programs.find(x => x.type === \"military\").value : 0;\r\n const firstTimeOwnerPrice = this.FirstTimeOwnerChecked ? this.FinancialInfo ? this.FinancialInfo.incentive_programs.find(x => x.type === \"first_time_owner\").value : 0 : 0;\r\n\r\n const incentives = mazdaCashIncentive + graduatePrice + militaryPrice + firstTimeOwnerPrice + this.FinancialInfo.calculatedFinance.specialIncentives;\r\n\r\n const options = financialObj.calculatedFinance.options.total // Colors +Wheels\r\n //+ this.SelectedNonModelPackage.financial.msrp\r\n //+ this.SelectedWarrantyPackage.financial.msrp // Warranty \r\n //+ this.SelectedConnectedVehiclePackage.financial.msrp // Connected Vehicle \r\n + financialObj.calculatedFinance.accessories.total; // Accessories\r\n\r\n const totalMSRP = this.SelectedModel.financial.msrp\r\n + this.SelectedPackage.financial.msrp // Actual Car packages \r\n + options\r\n + exciseTax + freight + pde // Excise is 100$ hardcoded in the excel sheet, freight can vary. \r\n + (this.IncludeFees ? acTax + amvic + omvic + tireStewardshipFee + oil : 0);\r\n\r\n // Fetch residual value from the calls\r\n const element = financialObj.calculatedLease.leaseValues.find(x => x.term === 36);\r\n\r\n const maxDownPayment = totalMSRP\r\n + adminServiceFees\r\n + element.ppsa\r\n - incentives\r\n - this.FinancialInfo.calculatedLease.evRebates.total.lease\r\n - (element.downPaymentLeaseEndValue ? element.downPaymentLeaseEndValue : 0) // Use this variable for the 24000 km annual mileage\r\n - 100;\r\n\r\n console.log(\"maxDownPayment\", maxDownPayment);\r\n return maxDownPayment;\r\n } \r\n \r\n /*\r\n * isRetailerMode - checks if we are in a retailer mode\r\n *\r\n */ \r\n async isRetailerMode() {\r\n if(!window.bnp_retailer_mode) {\r\n // FLUSH THE DEALER VARS (Fix issue of dealer map stuck with the dealer vars one)\r\n sessionStorage.removeItem('bnp_dealerVars');\r\n \r\n return false;\r\n }\r\n\r\n const urlParams = getParams();\r\n if (urlParams['DealerID']) {\r\n // Fix use case that we switch from different iframe session from switching dealers website\r\n if(sessionStorage.getItem('bnp_dealerVars')) {\r\n const dealerVars = JSON.parse(sessionStorage.getItem('bnp_dealerVars'));\r\n if(dealerVars.dealerId !== urlParams['DealerID'][0])\r\n sessionStorage.removeItem('bnp_dealerVars');\r\n }\r\n\r\n if(!sessionStorage.getItem('bnp_dealerVars')) {\r\n const dealerId = urlParams['DealerID'][0];\r\n const dealerData = await this._apiService.getDealerDataById(dealerId);\r\n if (dealerData.data) {\r\n const dealerName = dealerData.data.name;\r\n const provinceCode = dealerData.data.province.province_code;\r\n\r\n console.log(dealerId, dealerName, provinceCode);\r\n const dealerVars = JSON.stringify({dealerId: dealerId, dealerName: dealerName, dealerProvinceCode: provinceCode})\r\n sessionStorage.setItem('bnp_dealerVars', dealerVars);\r\n\r\n this.province = provinceCode;\r\n this._apiService.province = provinceCode;\r\n this._tcciService.province = provinceCode;\r\n }\r\n }\r\n } else {\r\n // FLUSH THE DEALER VARS (Fix issue of dealer map stuck with the dealer vars one)\r\n sessionStorage.removeItem('bnp_dealerVars');\r\n }\r\n\r\n return window.bnp_retailer_mode;\r\n }\r\n\r\n getDealerVars() {\r\n if (sessionStorage.getItem('bnp_dealerVars')) {\r\n return JSON.parse(sessionStorage.getItem('bnp_dealerVars'));\r\n } else {\r\n //console.log('something went wrong with DealerVars')\r\n return null;\r\n }\r\n }\r\n \r\n // TODO : move to utils class\r\n shallowClone(obj) {\r\n return Object.create(\r\n Object.getPrototypeOf(obj),\r\n Object.getOwnPropertyDescriptors(obj)\r\n );\r\n }\r\n\r\n /*\r\n * This has been added as a patch as the use state doesnt reflect update the object correctly in its memory reference\r\n */\r\n getInstance() {\r\n return this.shallowClone(this);\r\n }\r\n\r\n /**\r\n * is province allowed to include EV rebates\r\n * @returns {boolean}\r\n */\r\n isProvinceAllowedToIncludeRebates() {\r\n const province = getProvince();\r\n switch(province) {\r\n case \"BC\":\r\n case \"AB\":\r\n case \"SK\":\r\n case \"MB\":\r\n case \"ON\":\r\n case \"QC\":\r\n //return true; // RECOMMENTED AS PER TICKET WTCANMAZDAINT-4030\r\n case \"NB\":\r\n case \"NS\":\r\n case \"PE\":\r\n case \"NL\":\r\n case \"YT\":\r\n case \"NT\":\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n /**\r\n * Return if the financed EV is taxable in that province\r\n */\r\n hasEvFinancingTaxes(province) {\r\n console.log(\"hasEvFinancingTaxes province\", province);\r\n\r\n switch (province) {\r\n case \"QC\":\r\n return false;\r\n case \"BC\":\r\n default:\r\n return true;\r\n }\r\n } \r\n \r\n isSelectionPreOrder() {\r\n let isPreOrder = false;\r\n\r\n if( !this.SelectedModel || !this.SelectedPackage )\r\n return isPreOrder;\r\n\r\n const model_code = this.SelectedModel.model_code;\r\n const option_code = this.SelectedPackage.option_code;\r\n\r\n if(window.preOrder) {\r\n window.preOrder.forEach((item) => {\r\n if (item.modelCode === model_code && item.modelOption === option_code) {\r\n isPreOrder = true;\r\n } \r\n });\r\n }\r\n\r\n return isPreOrder;\r\n }\r\n\r\n async forceReloadVehicle(value) {\r\n //this._needReload = value\r\n\r\n if (this.selectedVehicle.carline) {\r\n // Trigger the whole vehicle reload\r\n await this.loadVehicleData(this.selectedVehicle.year, \r\n this.selectedVehicle.carline, \r\n this.selectedVehicle.trim, \r\n this.selectedVehicle.model, \r\n this.selectedVehicle.packageCode);\r\n\r\n await this.loadFromFinancialProvider();\r\n\r\n // Force the reset\r\n window.SummaryCalculator = this;\r\n }\r\n }\r\n}\r\n","import React, { useEffect } from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport SummaryCalculator from './summarycalculator';\r\nimport { useNavigate } from 'react-router-dom';\r\nimport Cookies from 'universal-cookie';\r\n\r\n// Load build data by build id and redirect to Summary page.\r\nfunction BuildHelper({ buildId }) {\r\n //const navigate = useNavigate();\r\n const cookies = new Cookies();\r\n\r\n useEffect(() => {\r\n // Load build data if \"build\" param is passed.\r\n const loadPreBuildData = async (buildId) => {\r\n try {\r\n const summaryCalculator = new SummaryCalculator();\r\n summaryCalculator.reset(true);\r\n\t\t sessionStorage.clear();\r\n const data = await summaryCalculator.loadVehicleDataByBuildId(buildId);\r\n if (data) {\r\n const { year, carline, trim, modelCode, optionCode, province } = data;\r\n\r\n if (province !== sessionStorage.getItem('province')) {\r\n // mdp7-pref\r\n console.log(`setting the mdp7-pref to p=${province}`);\r\n cookies.remove('mdp7-pref');\r\n cookies.set('mdp7-pref' ,`p=${province}`, {\r\n path: '/',\r\n encode: String\r\n });\r\n sessionStorage.setItem('province', province);\r\n window.location.reload();\r\n }\r\n\r\n const navigateUrl = `${window.origin}${window.location.pathname}#/${year}/${carline}/${trim}/${modelCode}/${optionCode}/summary`;\r\n window.location.href = navigateUrl;\r\n return false;\r\n }\r\n console.log('failed to retrieve vehicle data from build id ', buildId);\r\n const navigateUrl = `${window.origin}${window.location.pathname}#/`;\r\n window.location.href = navigateUrl;\r\n return false;\r\n } catch (err) {\r\n console.log(err);\r\n }\r\n }\r\n\r\n loadPreBuildData(buildId);\r\n }, [])\r\n\r\n return
    LOADING ...
    ;\r\n}\r\n\r\nBuildHelper.propTypes = {\r\n buildId: PropTypes.string.isRequired\r\n}\r\n\r\nexport default BuildHelper","import ReactHtmlParser from 'react-html-parser';\r\nimport { getLang, getProvince } from '../utils';\r\n\r\nexport default class NavHelper {\r\n\tgetDealerId() {\r\n\t\t//summaryCalculator.getDealerVars() ? summaryCalculator.getDealerVars().dealerId : null;\r\n\t\tif (window.bnp_retailer_mode && sessionStorage.getItem('bnp_dealerVars')) {\r\n\t\t\tconst dealerVars = JSON.parse(sessionStorage.getItem('bnp_dealerVars'));\r\n\t\t\treturn dealerVars.dealerId;\r\n\t\t}\r\n\r\n\t\treturn null;\r\n\t}\r\n\tgetUrlSlug(returnDef) {\r\n\t\tlet summaryCalculator = window.summaryCalculator;\r\n\r\n\t\tconst year = returnDef ? '' : summaryCalculator.selectedVehicle.year;\r\n\t\tconst carline = returnDef ? '' : summaryCalculator.selectedVehicle.carline;\r\n\t\tconst trim = returnDef ? '' : summaryCalculator.selectedVehicle.trim ?? summaryCalculator.AvailableTrim.trims[0].trim_type.url_slug;\r\n\t\tconst dealerId = this.getDealerId();\r\n\t\tlet model = '';\r\n\t\tlet packageCode = '';\r\n\t\t\r\n\t\tmodel = summaryCalculator.selectedVehicle.model === null ? '' : summaryCalculator.selectedVehicle.model;\r\n\t\t//model = model === '' ? summaryCalculator.AvailableTrim.trims[0].financial.based_on.model_code : '';\r\n\r\n\t\tpackageCode = summaryCalculator.selectedVehicle.packageCode === null ? '' : summaryCalculator.selectedVehicle.packageCode;\r\n\t\t//packageCode = packageCode === '' ? summaryCalculator.selectedVehicle.packageCode : '';\r\n\r\n\t\t//return `/${year}/${carline}?prov_code=${province}&lang_code=${lang}`; // trim\r\n\t\treturn `/${year}/${carline}/${trim}?prov_code=${getProvince()}&lang_code=${getLang()}${dealerId ? `&DealerID=${dealerId}` : ''}`; // engine and drivetrain\r\n\t\treturn `/${year}/${carline}/${trim}/${model}/${packageCode}?prov_code=${getProvince()}&lang_code=${getLang()}`; // package\r\n\t}\r\n\tgetNavContent( t, returnDef){\r\n\t\tlet summaryCalculator = window.summaryCalculator;\r\n\r\n\t\tconst currentStep = returnDef ? '' : summaryCalculator.CurrentStep;\r\n\t\tconst year = returnDef ? '' : summaryCalculator.selectedVehicle.year;\r\n\t\tconst carline = returnDef ? '' : summaryCalculator.selectedVehicle.carline;\r\n\t\tconst trim = returnDef ? '' : summaryCalculator.selectedVehicle.trim ?? summaryCalculator.AvailableTrim.trims[0].trim_type.url_slug;\r\n\r\n\t\tlet model = '';\r\n\t\tlet packageCode = '';\r\n\t\t\r\n\t\tmodel = summaryCalculator.selectedVehicle.model === null ? '' : summaryCalculator.selectedVehicle.model;\r\n\t\t//model = model === '' ? summaryCalculator.AvailableTrim.trims[0].financial.based_on.model_code : '';\r\n\r\n\t\tpackageCode = summaryCalculator.selectedVehicle.packageCode === null ? '' : summaryCalculator.selectedVehicle.packageCode;\r\n\t\t//packageCode = packageCode === '' ? summaryCalculator.selectedVehicle.packageCode : '';\r\n\r\n\t\tconst province = getProvince();\r\n\t\tconst lang = getLang();\r\n\t\tconst dealerId = this.getDealerId();\r\n\t\t\r\n\t\tconst navTranslation = [\r\n\t\t\t\"general:nav_trim\",\r\n\t\t\t\"general:nav_options\",\r\n\t \"general:nav_colour\",\r\n\t\t\t\"general:nav_wheels\",\r\n\t\t\t\"general:nav_connectivity\",\r\n\t\t\t\"general:nav_accessories\",\r\n\t\t\t\"general:nav_protection\",\r\n\t \"general:nav_payments\",\r\n\t \"general:nav_summary\",\r\n\t \"general:nav_start_over\",\r\n\t \"general:nav_start_over_mobile\"\r\n\t ];\r\n\t\tconst tabs = {\r\n\t\t\t'tabList': [\r\n\t\t\t\t{\r\n\t\t\t\t\t\"text\": ReactHtmlParser(t(navTranslation[0])),\r\n\t\t\t\t\t\"active\": currentStep === 1,\r\n\t\t\t\t\t\"uri\": `/${year}/${carline}?prov_code=${province}&lang_code=${lang}${dealerId ? `&DealerID=${dealerId}` : ''}`\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\t\"text\": ReactHtmlParser(t(navTranslation[1])),\r\n\t\t\t\t\t\"active\": currentStep === 2,\r\n\t\t\t\t\t\"uri\": this.getUrlSlug(returnDef)\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\t\"text\": ReactHtmlParser(t(navTranslation[2])),\r\n\t\t\t\t\t\"active\": currentStep === 3,\r\n\t\t\t\t\t\"uri\": `/${year}/${carline}/${trim}/${model}/${packageCode}/colours?prov_code=${province}&lang_code=${lang}${dealerId ? `&DealerID=${dealerId}` : ''}`\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\t\"text\": ReactHtmlParser(t(navTranslation[3])),\r\n\t\t\t\t\t\"active\": currentStep === 4,\r\n\t\t\t\t\t\"uri\": `/${year}/${carline}/${trim}/${model}/${packageCode}/wheels?prov_code=${province}&lang_code=${lang}${dealerId ? `&DealerID=${dealerId}` : ''}`\r\n\t\t\t\t},\r\n/*\t\t\t\t{\r\n\t\t\t\t\t\"text\": ReactHtmlParser(t(navTranslation[4])),\r\n\t\t\t\t\t\"active\": currentStep === 5,\r\n\t\t\t\t\t\"uri\": `/${year}/${carline}/${trim}/${model}/${packageCode}/connectivity?prov_code=${province}&lang_code=${lang}`\r\n\t\t\t\t},*/\r\n\t\t\t\t{\r\n\t\t\t\t\t\"text\": ReactHtmlParser(t(navTranslation[5])),\r\n\t\t\t\t\t\"active\": currentStep === 6,\r\n\t\t\t\t\t\"uri\": `/${year}/${carline}/${trim}/${model}/${packageCode}/accessories?prov_code=${province}&lang_code=${lang}${dealerId ? `&DealerID=${dealerId}` : ''}`\r\n\t\t\t\t},\r\n/*\t\t\t\t{\r\n\t\t\t\t\t\"text\": ReactHtmlParser(t(navTranslation[6])),\r\n\t\t\t\t\t\"active\": currentStep === 7,\r\n\t\t\t\t\t\"uri\": `/${year}/${carline}/${trim}/${model}/${packageCode}/protections?prov_code=${province}&lang_code=${lang}`\r\n\t\t\t\t},*/\r\n\t\t\t\t{\r\n\t\t\t\t\t\"text\": ReactHtmlParser(t(navTranslation[7])),\r\n\t\t\t\t\t\"active\": currentStep === 8,\r\n\t\t\t\t\t\"uri\": `/${year}/${carline}/${trim}/${model}/${packageCode}/payments?prov_code=${province}&lang_code=${lang}${dealerId ? `&DealerID=${dealerId}` : ''}`\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\t\"text\": ReactHtmlParser(t(navTranslation[8])),\r\n\t\t\t\t\t\"active\": currentStep === 9,\r\n\t\t\t\t\t\"uri\": `/${year}/${carline}/${trim}/${model}/${packageCode}/summary?prov_code=${province}&lang_code=${lang}${dealerId ? `&DealerID=${dealerId}` : ''}`\r\n\t\t\t\t},\r\n\t\t\t],\r\n\r\n\t\t\t\"selectVehiclesLinkLink\": {\r\n\t\t\t\t\"textDesktop\": t(navTranslation[9]),\r\n\t\t\t\t\"textMobile\": t(navTranslation[9]),\r\n\t\t\t\t\"uri\": `/${dealerId ? `&DealerID=${dealerId}` : ''}`\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\treturn tabs;\r\n\t}\r\n}","\r\n// Open a modal.\r\nexport const openModal = (targetId, content) => {\r\n const modal = document.getElementById(targetId);\r\n if (modal) {\r\n modal.setAttribute('aria-hidden', 'false');\r\n // Focus the first element within the modal.\r\n const focusable_selectors = 'a[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), *[tabindex]';\r\n modal.querySelector(focusable_selectors).focus();\r\n // Make the body unscrollable.\r\n document.body.classList.add('disabled');\r\n }\r\n}\r\n\r\n// Scroll to element using gsap (loaded in Core)\r\nexport const scrollTo = (options) => {\r\n if (window.gsap) {\r\n window.gsap.to(window, {\r\n duration: .5,\r\n scrollTo: options\r\n });\r\n } else {\r\n console.error('gsap is not found in scrollTo()');\r\n }\r\n}\r\n\r\n// Convert text to title case.\r\nexport const titleCase = (str) => {\r\n if (!str) return;\r\n return str.toLowerCase().split(' ').map(function(word) {\r\n return (word.charAt(0).toUpperCase() + word.slice(1));\r\n }).join(' ');\r\n}\r\n","import React from 'react';\r\n\r\nexport const Svg = ({ size, colour, svg_list, svg_classname, ...props }) => {\r\n const svgColour = colour != undefined ? `mz-svg--${colour}` : null;\r\n \r\n return (\r\n \r\n );\r\n};","/* global mzFunc, mzMenu, mzTabs */\r\n\r\nimport React from 'react';\r\nimport ReactHtmlParser from 'react-html-parser';\r\nimport PropTypes from 'prop-types';\r\nimport { useNavigate, useParams, useSearchParams } from 'react-router-dom';\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nimport NavHelper from '../../../Helpers/navhelper';\r\nimport { openModal, scrollTo } from '../../../Helpers/helpers';\r\nimport GTMHelper from '../../../Helpers/gtmHelper';\r\n\r\nimport { Svg } from '../../1_Atoms/Svg/Svg';\r\nimport { updateLanguageLink } from '../../../utils';\r\n\r\nexport const Nav = ({ summaryCalculator = window.summaryCalculator, nav, ...props }) => {\r\n const { t, i18n } = useTranslation(['general', 'summary']);\r\n\r\n const { year, carline, trim, model, packageCode } = useParams();\r\n const [showFinancePrice, setShowFinancePrice] = React.useState(summaryCalculator.ShowFinancePrice);\r\n \r\n const gtmHelper = new GTMHelper();\r\n \r\n const navHelper = new NavHelper();\r\n const [step, setStep] = React.useState(summaryCalculator.CurrentStep)\r\n const [isOpen, setIsOpen] = React.useState(false);\r\n const [tabs, setTabs] = React.useState(nav != null ? nav.tabList : navHelper.getNavContent(t, true).tabList);\r\n const [activeTab, setActiveTab] = React.useState(tabs ?.filter(tab => tab.active === true)[0]);\r\n const [isMobile, setIsMobile] = React.useState(window.innerWidth < 1024);\r\n const navRef = React.useRef(null);\r\n const navigate = useNavigate();\r\n const [searchParams, setSearchParams] = useSearchParams();\r\n\r\n React.useEffect(() => {\r\n try {\r\n // When Nav is re-mounted, run sticky submenu init function in Core\r\n // unless it's already processed by Core/menu.js .\r\n const isStickySubmenuProcessed = navRef.current.classList.contains('js-processed');\r\n if (!isStickySubmenuProcessed) {\r\n if (window.mzMenu && window.mzMenu.triggerStickySubmenu !== undefined) {\r\n window.mzMenu.triggerStickySubmenu();\r\n }\r\n }\r\n } catch (err) {\r\n console.error(err)\r\n }\r\n if(typeof mzFunc === 'object' && typeof mzTabs === 'object'){\r\n mzFunc.waitForEl('.mzBuildandPrice nav .mz-tabs').then(function(components){\r\n mzTabs.init(components);\r\n setTimeout(()=>{\r\n const subNav = document.querySelector('.App-container nav .mz-tabs-menu')\r\n if(subNav)\r\n mzTabs.adjustActiveTabPosition(subNav, subNav.querySelector('.active'));\r\n },500)\r\n });\r\n }\r\n reloadTabs();\r\n }, [nav])\r\n\r\n function reloadTabs() {\r\n //console.log('load data', nav)\r\n //if(summaryCalculator._allDataIsLoaded) setNav(navHelper.getNavContent(t)); // nav from parameter\r\n setTabs(nav != null ? nav.tabList : navHelper.getNavContent(t, true).tabList);\r\n setStep(summaryCalculator.CurrentStep);\r\n }\r\n\r\n\r\n React.useEffect(() => {\r\n reloadTabs();\r\n }, [summaryCalculator._allDataIsLoaded])\r\n\r\n React.useEffect(() => {\r\n reloadTabs();\r\n if(typeof mzMenu === 'object' && window.scrollY === 0){\r\n mzMenu.alertAni?.play();\r\n mzMenu.permAlertAni?.play();\r\n mzMenu.menuAni?.play();\r\n }\r\n //updateLanguageLink();\r\n }, [summaryCalculator.CurrentStep])\r\n\r\n function showNav() {\r\n //const selectVehiclesLinkLink = tabs;\r\n updateLanguageLink();\r\n \r\n const handleTabClick = (tabIndex) => {\r\n tabs.map(function (tab, index) {\r\n if (index === tabIndex) {\r\n tab.active = true;\r\n\r\n\r\n } else {\r\n tab.active = false;\r\n }\r\n return tab;\r\n });\r\n\r\n setTabs(tabs);\r\n setActiveTab(tabs.filter(tab => tab.active === true)[0]);\r\n if (isMobile) {\r\n if (isOpen) {\r\n setIsOpen(false);\r\n document.querySelector('body').classList.remove('disabled');\r\n } else {\r\n setIsOpen(true);\r\n document.querySelector('body').classList.add('disabled');\r\n }\r\n }\r\n\r\n if (tabs[tabIndex])\r\n navigate(tabs[tabIndex].uri);\r\n else // Gracefully recover to home /\r\n navigate('/');\r\n \r\n //HandleTabClick(tabs[tabIndex].uri)\r\n }\r\n const HandleClose = () => {\r\n setIsOpen(false);\r\n document.querySelector('body').classList.remove('disabled');\r\n }\r\n const handleResize = () => {\r\n setIsMobile(window.innerWidth < 1024);\r\n setIsOpen(false);\r\n document.querySelector('body').classList.remove('disabled');\r\n }\r\n\r\n window.addEventListener('resize', handleResize)\r\n\r\n const getCurrentActiveTabIndex = (tabs, activeTab) => {\r\n if (!tabs && !tabs.length > 0) return 0;\r\n return tabs.indexOf(activeTab) + 1;\r\n }\r\n\r\n function HandleSelectAVehicleClick(e) {\r\n e.preventDefault();\r\n document.querySelector('body').classList.remove('disabled');\r\n navigate(nav.selectVehiclesLinkLink.uri);\r\n }\r\n\r\n const handleOcaClick = (e) => {\r\n e.preventDefault();\r\n setIsOpen(false);\r\n document.querySelector('body').classList.remove('disabled');\r\n \r\n if (window.location.href.indexOf('/payments') > 0) {\r\n setSearchParams({'oca':''});\r\n setTimeout(() => {\r\n setSearchParams({'oca':'1'});\r\n }, 10);\r\n }else{\r\n navigate(nav.tabList[6].uri + '&oca=1');\r\n }\r\n const price = summaryCalculator._showFinancePrice ? summaryCalculator.FinancialInfo.calculatedFinance.balanceToFinanceWithFeesWithRebatesTaxed : summaryCalculator.FinancialInfo.calculatedLease.balanceToLeaseWithFeesWithRebatesTaxed;\r\n gtmHelper.setGTM({'action':`OCA - Mobile Nav`,'year': year,'model': carline, 'trim': summaryCalculator.selectedVehicle.trim ?? summaryCalculator.AvailableTrim.trims[0].trim_type.url_slug, 'price' : Math.round(price)}, true, false);\r\n }\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n \r\n {!isMobile &&\r\n <>\r\n
    \r\n
    \r\n
    \r\n
    \r\n {tabs.map((tab, index) => {\r\n return ( handleTabClick(index)}>\r\n {tab.text}\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 <>
  • HandleClose()}>\r\n {t(\"close\")}\r\n \r\n
  • \r\n \r\n
      \r\n
    • HandleSelectAVehicleClick(e)}>{nav ?.selectVehiclesLinkLink ?.textMobile}\r\n
    • \r\n {tabs.map((tab, index) => {\r\n return (
    • handleTabClick(index)}>\r\n {tab.text}\r\n {tab.active ? : null}\r\n
    • );\r\n })\r\n }\r\n {window.allow_oca ?\r\n
    • handleOcaClick(e)} title={t('summary:btn_apply_for_financing')}>\r\n
      \r\n \r\n {ReactHtmlParser(t('general:ocaPriceBar'))}\r\n
      \r\n
    • : null}\r\n
    \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n\r\n }\r\n return (<>{showNav()})\r\n};\r\n\r\n// Nav.propTypes = {\r\n// HandleTabClick: PropTypes.func,\r\n// }\r\n\r\n// Nav.defaultProps = {\r\n// HandleTabClick: (uri) => {\r\n// },\r\n// };","import React from 'react';\r\nimport ReactHtmlParser from 'react-html-parser';\r\nimport { Svg } from '../../1_Atoms/Svg/Svg';\r\nimport PropTypes from 'prop-types';\r\n\r\nexport const Modal = ({modalContent, isOpen, modalId, handleClose, ...props }) => {\r\n const [isModalOpen, setIsModalOpen] = React.useState(isOpen);\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n { ReactHtmlParser (modalContent) }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nModal.propTypes = {\r\n HandleTabClick: PropTypes.func,\r\n}\r\n\r\nModal.defaultProps = {\r\n handleClose: () => {\r\n },\r\n};","import React from 'react';\r\nimport { Svg } from '../Svg/Svg';\r\nimport PropTypes from 'prop-types';\r\n\r\nexport const Button = ({ primary, backgroundColor, label, disabled, icon, iconBefore, iconAfter, svg_className, colour, rotation, size, svg_list, ...props }) => {\r\n const mode = primary ? 'mz-btn--primary' : 'mz-btn--secondary';\r\n const disabling = disabled ? true : false;\r\n const before = iconBefore ? true : false;\r\n const after = iconAfter ? true : false;\r\n const displayIcon = icon ? true : false;\r\n // const iconBtn = icon ? true : false;\r\n //mz-link-icon-positon--right\r\n \r\n const btnBackground = backgroundColor != undefined ? `mz-btn--${backgroundColor}` : null ;\r\n return (\r\n \r\n \r\n {displayIcon && before \r\n ? : ''}\r\n {label}\r\n {displayIcon && after \r\n ? : ''}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nButton.propTypes = {\r\n primary: PropTypes.bool,\r\n backgroundColor: PropTypes.string,\r\n icon: PropTypes.bool,\r\n iconBefore: PropTypes.bool,\r\n iconAfter: PropTypes.bool,\r\n label: PropTypes.string.isRequired,\r\n onClick: PropTypes.func,\r\n colour: PropTypes.string,\r\n size: PropTypes.number,\r\n svg_list: PropTypes.string,\r\n};\r\n \r\nButton.defaultProps = {\r\n backgroundColor: null,\r\n icon: false,\r\n iconBefore: false,\r\n iconAfter: false,\r\n primary: true,\r\n onClick: undefined,\r\n disabled: false,\r\n};\r\n \r\n \r\nexport default Button;","import React, { useEffect, useRef } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\n// Tabs that has the same HTML as the CORE's tabs\r\n// to use JS attached to it in Core.\r\nexport const TabsMenu = ({ className, menus }) => {\r\n const ref = useRef(null)\r\n\tconst { t, i18n } = useTranslation(['general']);\r\n\r\n\tlet menuItems = menus;\r\n menuItems.sort(function(x,y){ return x.label == 'Popular' ? -1 : y.label == 'Popular' ? 1 : 0; });\r\n\r\n useEffect(() => {\r\n // Init the tabs using mzTabs.init() from Core.\r\n if (window.mzTabs && typeof window.mzTabs.init === 'function') {\r\n if (ref.current) {\r\n window.mzTabs.init([ref.current]);\r\n }\r\n }\r\n }, [])\r\n\r\n\tfor (let v of menuItems){\r\n\t\tif(v.label === 'Popular') v.label=t('popular');\r\n\t\tif(v.label === 'All') v.label=t('all');\r\n\t}\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n menuItems.map((menu) => (\r\n \r\n {menu.label}\r\n \r\n ))\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nTabsMenu.propTypes = {\r\n menus: PropTypes.array.isRequired,\r\n className: PropTypes.string,\r\n}","import React from 'react';\r\nimport ReactHtmlParser from 'react-html-parser'; \r\nimport { Svg } from '../../1_Atoms/Svg/Svg';\r\nimport { getBaseUrl } from '../../../utils';\r\n\r\nexport const Modal_50_50 = ({title, copy, image, imageMobile, imageAlt, isOpen, modalId, setIsModalOpen, ...props }) => {\r\n const [modalImage, setModalImage] = React.useState(window.innerWidth < 768?imageMobile:image);\r\n const imagePath = getBaseUrl() + process.env.REACT_APP_BASIC_CONTENT_PATH;\r\n const handleResize = () =>{\r\n if(window.innerWidth < 768){\r\n setModalImage(imageMobile);\r\n } else {\r\n setModalImage(image);\r\n }\r\n }\r\n window.addEventListener('resize', handleResize);\r\n \r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n document.querySelector('html').classList.remove('inactive');\r\n setIsModalOpen(false)\r\n }}\r\n >\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {imageAlt}/\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    {title}

    \r\n
    { ReactHtmlParser (copy) }
    \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 Modal_50_50;","import ReactHtmlParser from 'react-html-parser';\r\nimport { getLang } from '../utils';\r\n\r\nexport default class TooltipHelper {\r\n getTooltip(tooltip, incentives, vehicle, rate) {\r\n const language = getLang();\r\n\r\n const tooltips = {\r\n\t\t\t\"purchase_price\":{\r\n\t\t \"en\":`Price shown includes delivery charges (charge includes freight and pre-delivery inspection), dealer administration fee, levies, fees, and all applicable charges (excluding HST and/or GST/PST). Payments shown do not include applicable taxes. To see the vehicle’s total price or payments with sales tax, please click “include taxes in price option” in the payment breakdown or summary page. Charges may vary by Dealer. Please contact your local retailer for more information.`,\r\n\t\t \"fr\":`Le prix indiqué comprend les frais de livraison (pour le transport et l’inspection avant livraison), les frais de gestion du détaillant, les redevances, les droits et tous les frais applicables (à l’exception de la TVH et/ou de la TPS/TVP). Les versements indiqués ne comprennent pas les taxes applicables. Pour voir le prix total du véhicule ou les versements incluant la taxe de vente, veuillez cliquer sur l’option « Inclure les taxes dans le prix » sur la page des détails du prix ou du récapitulatif. Les frais peuvent varier selon le détaillant. Veuillez contacter votre détaillant pour plus d’informations.`\r\n\t\t },\r\n\t\t \"downpayment\":{\r\n\t\t \"en\":\"Lease down payment (with trade-in) may not reduce Capitalized Cost lower than $3,000 over Residual Value. Minimum balance to finance is $7,500.\",\r\n\t\t \"fr\":\"Pour une location (avec échange), l'acompte ne peut réduire le coût en capital plus bas que 3 000 $ au-dessus de la valeur résiduelle. Le solde minimum à financer est de 7 500 $.\"\r\n\t\t },\r\n\t\t\t\"detailedprice_mazdaprice\":{\r\n\t\t\t \"en\":\"This is the price of your vehicle. It includes any chosen options, plus any accessories you have selected. It excludes fees, levies, credits, down payment and taxes. This price is for informational purposes only and is not an offer. Certain changes (including specifications, prices and availability) may not be reflected. Price will include general freight (cost to move vehicle from factory to dealership) and PDI (Pre-Delivery Inspection - this includes inspection, washes and any top-ups of fluids). Your Mazda retailer may sell for less and is the best source for complete and current information.\",\r\n\t\t\t \"fr\":\"Il s'agit du prix de votre véhicule incluant les options choisies ainsi que les accessoires que vous avez sélectionnés. Il exclut les frais, les prélèvements, les crédits, l'acompte et les taxes. Ce prix est fourni à titre d'information seulement et ne constitue pas une offre. Certains changements (incluant les spécifications, les prix et la disponibilité) peuvent ne pas être reflétés. Le prix comprend les coûts de transport du véhicule de l'usine au détaillant et l'inspection prélivraison (incluant l'inspection finale, les lavages et les remplissages de liquides). Votre détaillant Mazda peut vendre à un prix inférieur et constitue la meilleure source d'information complète et à jour.\"\r\n\t\t },\r\n\t\t \"detailedprice_feesandlevies\":{\r\n\t\t\t\t\"en\":\"These are some of the fees and levies charged by Mazda and other regulators associated with your vehicle purchase. Your local retailer may charge additional fees, insurance, licence, sales taxes and, if applicable, lien registration as well as other fees and are not included.\",\r\n\t\t\t\t\"fr\":\"Il s'agit de certains des frais et prélèvements facturés par Mazda et d'autre organismes de réglementation associés à l'achat de votre véhicule. Votre détaillant pourrait exiger des frais supplémentaires. L'assurance, l'immatriculation, les taxes de vente et, le cas échéant, l'enregistrement de privilège ainsi que d'autres frais ne sont pas inclus.\"\t\t\t \r\n\t\t\t},\r\n\t\t\t\"detailedprice_taxes\":{\r\n\t\t\t \"en\":`Applicable sales tax included in the payment breakdown or summary are based on your location selection. Applicable taxes may vary. Please contact your local retailer for more information.`,\r\n\t\t\t \"fr\":`Les taxes de vente applicables incluses dans les détails du prix ou le récapitulatif varient selon l’emplacement sélectionné. Les taxes applicables peuvent varier. Veuillez contacter votre détaillant pour plus d’informations.`\r\n\t\t\t},\r\n\t\t\t\"detailedprice_credit\":{\r\n\t\t\t \"en\":\"Amounts in this section contribute to reducing the purchase price of your vehicle. Additionally, when you trade in a vehicle, you will receive a tax benefit as the amount you receive for your trade-in is used to reduce the purchase price before sales tax is applied.\",\r\n\t\t\t \"fr\":\"Les montants indiqués dans cette section contribuent à réduire le prix d'achat de votre véhicule. De plus, lorsque vous échangez un véhicule, vous bénéficiez d'un avantage fiscal, dans la mesure où le montant que vous recevez en échange de votre véhicule est utilisé pour réduire le prix d'achat avant l'application de la taxe de vente.\"\r\n\t\t\t},\r\n\t\t\t\"detailedprice_downpayment\":{\r\n\t\t\t \"en\":\"A down payment is the money you can choose to pay up front that will reduce the amount of money borrowed on a lease or finance purchase. The larger the down payment, the lower your individual payments will be.\",\r\n\t\t\t \"fr\":\"Un acompte est une somme d'argent que vous pouvez choisir de payer à l'avance et qui réduira le montant de l'argent emprunté pour une location ou un achat financé. Plus le montant de l'acompte est élevé, plus vos paiements individuels seront bas.\"\r\n\t\t },\r\n\t\t \"ev_rebate_federal\":{\r\n\t\t\t \"en\": `Federal Rebate: Incentives for Zero-Emission Vehicles Program (iZEV): Get up to ${incentives} towards the purchase of new ${vehicle}.`,\r\n\t\t\t \"fr\": `Rabais du gouvernement fédéral : Incitatif pour le programme des véhicules zéro émissions (IVZE) : Obtenez jusqu'à ${incentives} pour l'achat d'un nouveau ${vehicle}.`\r\n\t\t },\r\n\t\t\t\"ev_rebates_BC\":{\r\n\t\t\t\t\"en\": `Provincial Rebate: CleanBC Go Electric Vehicle Rebate Program: Get up to ${incentives} towards the purchase of a new ${vehicle}, and up to $350 to install a level 2 home charging station in a single-family home.
    Provincial Rebate:BC Hydro EV Charger Rebate Program: Up to $350 towards the purchase and installation of a level 2 home charging station.`,\r\n\t\t\t\t\"fr\": `Rabais du gouvernement provincial : Programme de rabais CleanBC Go Electric: Obtenez jusqu'à ${incentives} pour l'achat d'un nouveau ${vehicle}, et jusqu’à 350 $ pour installer une borne de recharge résidentielle de niveau 2 dans une maison unifamiliale.
    Rabais du gouvernement provincial : BC Hydro EV Charger Rebate Program : Jusqu'à 350 $ pour l'achat et l'installation d'une borne de recharge à domicile de niveau 2.`\r\n\t\t \t},\r\n\t\t \t\"ev_rebates_NB\":{\r\n\t\t\t\t\"en\": `Provincial Rebate: Plug-In NB Rebate Program: Get up to ${incentives} towards the purchase of a new ${vehicle}.
    Residents who receive a vehicle rebate through the Plug-In NB Rebate Program are eligible to claim 50% of the cost to purchase and install one new level 2 EV charger, up to a maximum of $750.`,\r\n\t\t \t\t\"fr\": `Rabais provincial : Programme NBranché : Obtenez jusqu’à ${incentives} de rabais à l’achat d’un ${vehicle} neuf.
    Les résidents qui bénéficient d’un rabais dans le cadre du programme NBranché peuvent également réclamer 50 % du coût d’achat et d’installation d’une borne de recharge à domicile de niveau 2 neuve, jusqu’à un maximum de 750 $. `\r\n\t\t\t},\r\n\t\t\t\"ev_rebates_NL\":{\r\n\t\t\t\t\"en\": `Provincial Rebate: NL Hydro EV Rebate Program: Get up to ${incentives} towards the purchase of a new ${vehicle}.`,\r\n\t\t \t\t\"fr\": `Rabais provincial : Programme de rabais pour VÉ de NL Hydro : Obtenez jusqu’à ${incentives} de rabais à l’achat d’un ${vehicle} neuf.`\r\n\t\t\t},\r\n\t\t\t\"ev_rebates_NS\":{\r\n\t\t\t\t\"en\": `Provincial Rebate: The Electrify Nova Scotia Rebate Program: Get up to ${incentives} towards the purchase of a new ${vehicle}.`,\r\n\t\t \t\t\"fr\": `Rabais provincial : Programme d’électrification de la Nouvelle-Écosse : Obtenez jusqu’à ${incentives} de rabais à l’achat d’un ${vehicle} neuf.`\r\n\t\t\t},\r\n\t\t\t\"ev_rebates_PE\":{\r\n\t\t\t\t\"en\": `Provincial Rebate: PEI Universal EV Incentive: Get up to ${incentives} towards the purchase of a new ${vehicle}, as well as a free level 2 charger (installation not included).`,\r\n\t\t \t\t\"fr\": `Rabais provincial : Incitatif universel pour VÉ de l’Île-du-Prince-Édouard : Obtenez jusqu’à ${incentives} de rabais à l’achat d’un ${vehicle} neuf, ainsi qu’une borne de recharge de niveau 2 gratuite (installation non comprise).`\r\n\t\t\t},\r\n\t\t \t\"ev_rebates_QC\":{\r\n\t\t\t\t\"en\": `
    Roulez Vert Program: Get up to ${incentives} towards the purchase of a new ${vehicle} and up to $600 to install a home charging station.

    Home Charging Station Rebate: Up to $600 towards the purchase and installation of a level 2 home charging station.
    `,\r\n\t\t\t\t\"fr\": `
    Programme Roulez vert: Obtenez jusqu'à ${incentives} pour l'achat d'un nouveau ${vehicle} et jusqu’à 600 $ pour installer une borne de recharge résidentielle.

    Remboursement pour une borne à domicile : Jusqu'à 600 $ pour l'achat et l'installation d'une borne de recharge à domicile de niveau.
    `\r\n\t\t\t},\r\n\t\t\t\"ev_rebates_MB\":{\r\n\t\t\t\t\"en\": `
    Manitoba Electric Vehicle Rebate Program: Get up to $4,000 towards the purchase of a new ${vehicle}
    `,\r\n\t\t\t\t\"fr\": `
    Programme de remboursement à l’achat ou à la location d’un véhicule électrique du Manitoba: Obtenez jusqu’à 4 000 $ de rabais à l’achat d’un ${vehicle} neuf.
    `\r\n\t\t\t},\r\n\t\t\t\"ev_rebates_YT\":{\r\n\t\t\t\t\"en\": `Provincial Rebate: Get up to ${incentives} towards the purchase of a new ${vehicle}.`,\r\n\t\t \t\t\"fr\": `Rabais provincial : Obtenez jusqu’à ${incentives} de rabais à l’achat d’un ${vehicle} neuf.`\r\n\t\t\t},\r\n\t\t \"incentives\":{\r\n\t\t\t \"en\": `Payments shown include a $${incentives} Current Incentive. Contact your local Mazda retailer for details.`,\r\n\t\t\t \"fr\": `Les paiements indiqués incluent l\\'offre incitatives actuelle de ${incentives} $. Communiquez avec votre détaillant Mazda pour les détails.`\r\n\t\t },\r\n\t\t \"mazda_cash_incentive\": {\r\n\t\t\t\"en\": `Mazda Retail Cash is applicable to cash purchase deals only and: (i) cannot be combined with lease or finance offers; (ii) will be deducted from the negotiated vehicle price before taxes; (iii) has no cash surrender or other value; and (iv) cannot be applied to past transactions. Conditions apply.`,\r\n\t\t\t\"fr\": `L’incitatif au comptant de Mazda s’applique uniquement aux transactions d’achat au comptant et : (i) ne peut être combiné à des offres à la location ou au financement; (ii) sera déduit du prix négocié du véhicule avant taxes; (iii) n’a aucune valeur de rachat en espèces ni autre valeur; et (iv) ne peut être appliqué aux transactions passées. Des conditions s’appliquent.`\r\n\t\t },\r\n\t\t \"ownerloyaltyprogram\":{\r\n\t\t\t\t\"en\": `Current Mazda owners may be eligible to receive up to a ${rate}% rate discount off finance rates, up to a ${rate}% rate discount off lease rates, or up to a ${incentives} cash discount. The most advantageous Mazda Owner Loyalty Program discount (as determined by Mazda) will be automatically applied below. Please contact your local Mazda retailer for more details.`,\r\n\t\t\t\t\"fr\": `Les propriétaires actuels d’un véhicule Mazda peuvent bénéficier d’une réduction du taux de financement à l’achat allant jusqu’à ${rate} %, d’une réduction du taux à la location allant jusqu’à ${rate} % ou d’un rabais au comptant allant jusqu’à ${incentives}. La réduction la plus avantageuse du Programme de fidélité du propriétaire Mazda (telle que déterminée par Mazda) sera automatiquement appliquée ci-dessous. Contactez votre détaillant Mazda pour plus de détails.`\r\n\t\t },\r\n\t\t \"graduate\":{\r\n\t\t \"en\":`Recent graduates from an eligible university or college are eligible to receive a discount on the purchase of a new, unused or certified pre-owned vehicle. View eligible schools.`,\r\n\t\t \"fr\":`Les nouveaux diplômés de certains collèges ou universités accrédités sont admissibles à recevoir un rabais à l'achat d'un véhicule neuf ou non encore utilisé, ou d'un véhicule d'occasion certifié. Voir les écoles accréditées.`\r\n\t\t },\r\n\t\t \"military\":{\r\n\t\t \"en\":`Active military personnel, veterans, reservists may be eligible to receive a discount on a new Mazda vehicle. Contact your local Mazda retailer for full details.`,\r\n\t\t \"fr\":`Le personnel militaire en activité, les anciens combattants et les réservistes, pourraient être admissibles à un rabais sur un véhicule Mazda neuf. Communiquez avec votre détaillant Mazda pour plus de détails.`\r\n\t\t },\r\n\t\t \"first_time_owner\":{\r\n\t\t \"en\":`$750 Upgrade to Mazda incentive (“Incentive”) is available on new and previously unregistered 2024 CX-5 models that are purchased or financed/leased (on approved credit) from an authorized Mazda dealer in Canada. Certain conditions apply. See Mazda.ca or your local Mazda dealer for details.10`,\r\n\t\t \"fr\":`L’incitatif de 750 $ pour passer à Mazda (« incitatif ») est offert sur les modèles CX-5 2024 neufs et non immatriculés précédemment achetés ou financés/loués (sur approbation du crédit) auprès d’un détaillant Mazda autorisé au Canada. Certaines conditions s’appliquent. Détails sur Mazda.ca ou auprès de votre détaillant Mazda.10` \r\n\t\t },\r\n\t\t\t\"promo_apr\":{\r\n\t\t\t\t\"en\": `The rate selected is a special promotional rate. Alternatively, you can take advantage of cash purchase incentives that cannot be combined with the special promotional rate and your Informational APR would be as outlined above.`,\r\n\t\t\t\t\"fr\": `Le taux sélectionné est un taux promotionnel spécial. Si vous profitez plutôt des offres à l’achat au comptant qui ne peuvent être combinées avec le taux promotionnel spécial, votre TAP informatif serait celui indiqué ci-dessus.`\r\n\t\t\t}\r\n\r\n\r\n }\r\n\r\n\t\tif(tooltips[tooltip] !== undefined){\r\n \treturn ReactHtmlParser(tooltips[tooltip][language]);\r\n\t\t}else{\r\n\t\t\treturn tooltip + ' no tooltip found.';\r\n\t\t}\r\n }\r\n}","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { useRef, useEffect, useState } from 'react';\r\n\r\nimport TooltipHelper from '../../../Helpers/tooltipHelper';\r\nimport GTMHelper from '../../../Helpers/gtmHelper';\r\n\r\nexport const Tooltip = ({ TooltipName, TooltipText, incentives, vehicle, rate, TooltipClasses, ...props }) => {\r\n\tconst [toggle, setToggle] = useState(false);\r\n\tconst [tooltipHeight, setTooltipHeight] = useState(null)\r\n\tconst [isTop, setTop] = useState(null);\r\n\tconst [isAnimating, setIsAnimating] = useState(false)\r\n\tconst [didInit, setInit] = useState(false);\r\n\tconst toolRef = useRef();\r\n\tconst tooltipHelper = new TooltipHelper();\r\n\tconst gtmHelper = new GTMHelper();\r\n\r\n\tconst tooltipText = TooltipName ? tooltipHelper.getTooltip(TooltipName, incentives, vehicle, rate) : TooltipText;\r\n\t\r\n\tuseEffect(() =>{\r\n\t\tconst tooltip = toolRef.current;\r\n\t\tif(typeof window.gsap === 'object' && !didInit && !tooltipHeight && tooltip && toggle){\r\n\t\t\tconst initHeight=tooltip.querySelector('.mz-tooltip__text').offsetHeight;\r\n\t\t\tsetTooltipHeight(initHeight)\r\n\t\t\tsetInit(true);\r\n\t\t\ttoggleCollapse(tooltip, 0.3, initHeight);\r\n }else if(didInit){\r\n toggleCollapse(tooltip, 0.3);\r\n }\r\n\t}, [toggle]);\r\n\r\n\tfunction toggleCollapse(tooltip, time, initHeight=tooltipHeight){\r\n\t\tif(!isAnimating){\r\n\t\t\tconst tooltipCont = tooltip.querySelector('.mz-tooltip__text');\r\n\t\t\tconst tooltipWidth = 300;\r\n\t\t\ttooltipCont.style.left='';\r\n\t\t\ttooltipCont.style.top='';\r\n\t\t\tconst tooltipLeft = tooltipCont.getBoundingClientRect().left;\r\n\t\t\tconst tooltipBottom = tooltipCont.getBoundingClientRect().bottom;\r\n\t\t\tconst tooltipRight = tooltipLeft + tooltipWidth;\r\n\r\n\t\t\tconst pricingHeight = document.querySelector('.mz-pricing') !== null ? document.querySelector('.mz-pricing').offsetHeight : 0;\r\n\r\n\t\t\tif(toggle){\r\n\t\t\t\tif(tooltipBottom + initHeight > (window.innerHeight - pricingHeight)){\r\n\t\t\t\t\ttooltip.classList.add('reverse');\r\n\t\t\t\t\twindow.gsap.set(tooltipCont,{top:-10, transformOrigin:'bottom center'})\r\n\t\t\t\t\twindow.gsap.fromTo(tooltipCont, time,{autoAlpha:0, height:0},{autoAlpha:1, height:initHeight, onUpdate: function(){\r\n\t\t\t\t\t\t\tif(parseInt(tooltipCont.style.top, 10) <= -(initHeight - 20)){\r\n\t\t\t\t\t\t\t\ttooltipCont.style.top = -(initHeight - 10)+ 'px'\r\n\t\t\t\t\t\t\t}else{\r\n\t\t\t\t\t\t\t\ttooltipCont.style.top = -(tooltipCont.offsetHeight + 10)+ 'px';\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t})\r\n\t\t\t\t\tsetTop(true);\r\n\t\t\t\t}else{\r\n\t\t\t\t\ttooltip.classList.remove('reverse');\r\n\t\t\t\t\twindow.gsap.set(tooltipCont,{top:'6px', transformOrigin:'top center'})\r\n\t\t\t\t\twindow.gsap.fromTo(tooltipCont, time,{autoAlpha:0, height:0},{autoAlpha:1,height:initHeight})\r\n\t\t\t\t\tsetTop(false);\r\n\t\t\t\t}\r\n\t\t\t}else{\r\n\t\t\t\tsetIsAnimating(true)\r\n\t\t\t\tif(isTop){\r\n\t\t\t\t\t\twindow.gsap.to(tooltipCont, time,{autoAlpha:0, height:0, onComplete:enableAni, transformOrigin:'bottom center', onUpdate: function(){\r\n\t\t\t\t\t\t\tif(parseInt(tooltipCont.style.top, 10) >= -10){\r\n\t\t\t\t\t\t\t\ttooltipCont.style.top = '-10px'\r\n\t\t\t\t\t\t\t}else{\r\n\t\t\t\t\t\t\t\ttooltipCont.style.top = -(tooltipCont.offsetHeight + (tooltip.parentElement.offsetHeight *2)) + 'px';\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t})\r\n\t\t\t\t}else{\r\n\t\t\t\t\twindow.gsap.to(tooltipCont, time,{autoAlpha:0, height:0, onComplete:enableAni, transformOrigin:'top center'})\r\n\t\t\t\t}\r\n\t\t\t\tfunction enableAni(){\r\n\t\t\t\t\tsetIsAnimating(false);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(tooltipRight > window.innerWidth){\r\n\t\t\t\ttooltipCont.style.left='auto';\r\n\t\t\t\ttooltipCont.style.right= '-20px';\r\n\t\t\t}else if(tooltipLeft < 0){\r\n\t\t\t\ttooltipCont.style.left='-20px';\r\n\t\t\t\ttooltipCont.style.right= 'auto';\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tconst toolClick = (e)=>{\r\n\t\tif(!isAnimating){\r\n\t\t\tsetToggle(!toggle);\r\n\t\t}\r\n\t}\r\n\r\n\t\r\n\r\n\treturn (\r\n\t\ttooltipText !== undefined &&\r\n\t\t\t
    {\r\n\t\t\t\ttoolClick(e);\r\n\t\t\t\tgtmHelper.setGTM({'action':'Tooltip', 'Tooltip': TooltipName}, true, false);\r\n\t\t\t}}\r\n\t\t\tonMouseEnter={(e)=>{\r\n\t\t\t\tif(window.matchMedia(\"(min-width: 1025px)\").matches){\r\n\t\t\t\t\tif(!isAnimating){\r\n\t\t\t\t\t\tsetToggle(true);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tgtmHelper.setGTM({'action':'Tooltip', 'Tooltip': TooltipName}, true, false);\r\n\t\t\t\t}\r\n\t\t\t}}\r\n\t\t\tonMouseLeave={(e) =>{\r\n\t\t\t\tif(window.matchMedia(\"(min-width: 1025px)\").matches){\r\n\t\t\t\t\tif(!isAnimating){\r\n\t\t\t\t\t\tsetToggle(false);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}}>\r\n\t\t\t\t{TooltipClasses &&\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\t{!TooltipClasses &&\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t{tooltipText}\r\n\t\t\t\t\t\t
    setToggle(!toggle)} className=\"mz-tooltip__close\">\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t
    \r\n\t);\r\n};\r\n\r\nTooltip.propTypes = {\r\n\tTooltipText: PropTypes.string,\r\n\tTooltipClasses: PropTypes.string,\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Modal_50_50 from '../../3_Organisms/Modal/Modal_50_50';\r\nimport { getLang, formatPrice, getBaseUrl, getFinanceWeekly, getLeaseBiWeeklyFromOptions, pushToGTMDataLayer } from '../../../utils';\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { titleCase } from '../../../Helpers/helpers';\r\nimport { SummaryConstants as Constants } from '../../../Helpers/summaryconstants';\r\nimport GTMHelper from '../../../Helpers/gtmHelper';\r\nimport { Tooltip } from '../../1_Atoms/Tooltip/Tooltip';\r\nimport ReactHtmlParser from 'react-html-parser';\r\n\r\nexport const AccessoryCard = ({ Accessory, Selected, HandleSelectedAccessory, HandleLearnMore, isPopular, showFinancePrice, ...props }) => {\r\n\tconst [modalOpen, setModalOpen] = React.useState(false);\r\n const { t, i18n } = useTranslation(['accessories', 'general']);\r\n\tconst gtmHelper = new GTMHelper();\r\n\r\n //const [selected] = React.useState(Selected);\r\n const financial = JSON.parse(sessionStorage.getItem(Constants.FinancialObj));\r\n const financeTermIndex = parseInt(sessionStorage.getItem(Constants.FinanceTermIndex));\r\n const leaseTermIndex = parseInt(sessionStorage.getItem(Constants.LeaseTermIndex));\r\n const financeTerm = parseInt(sessionStorage.getItem(Constants.FinanceTerm));\r\n const leaseTerm = parseInt(sessionStorage.getItem(Constants.LeaseTerm));\r\n\r\n function setSelectedAccessory() {\r\n HandleSelectedAccessory(Accessory.index)\r\n }\r\n\r\n const imagePath = getBaseUrl() + process.env.REACT_APP_BASIC_CONTENT_PATH;\r\n\r\n function HandleLearnMore() {\r\n setModalOpen(!modalOpen);\r\n document.querySelector('html').classList.add('inactive');\r\n\t\tgtmHelper.setGTM({'action':'Open Modal','modal': 'Accessory Learn More'}, true, false);\r\n }\r\n\r\n function closeModal() {\r\n setModalOpen(false);\r\n }\r\n\r\n function getTooltipText(Accessory) {\r\n const lang = getLang();\r\n const totalCost = formatPrice(Accessory.price, true);\r\n const priceIncludesText = lang == 'en' ? 'Includes' : 'Contient';\r\n const installationText = lang === 'en' ? 'Installation cost' : 'Coûts d\\'installation';\r\n const totalPriceText = lang === 'en' ? 'Total price' : 'Prix totaux';\r\n \r\n let text = `${priceIncludesText}:`;\r\n text += `
    ${Accessory.name}: ${formatPrice(Accessory.base_msrp, true)}`;\r\n text += Accessory.install_cost ? `
    ${installationText}: ${formatPrice(Accessory.install_cost, true)}` : '';\r\n text += `
    ${totalPriceText}:${totalCost}`;\r\n return text;\r\n }\r\n\r\n function accessoryTotalCost(){\r\n return Accessory.price + Accessory.install_cost ? Accessory.price + Accessory.install_cost : 0;\r\n }\r\n\r\n return (\r\n <>\r\n {Accessory ? <>\r\n
    \r\n
    \r\n\t\t\t\t{Accessory.popular === true && !isPopular ?

    {t(\"popular\")}

    : null}\r\n {Accessory.name} HandleLearnMore()} />\r\n \r\n
    \r\n

    {titleCase(Accessory.name)}

    \r\n
    \r\n\t\t\t\t
    \r\n

    {Accessory.price!==0?`+ ${formatPrice(Accessory.price)}`:''} {Accessory.price_week !== null ? {Accessory.price!==0?\r\n `(${showFinancePrice?\r\n `${getFinanceWeekly(Accessory.price, financial.calculatedFinance.financeValues[financeTermIndex].aprRate, financial.calculatedFinance.financeValues[financeTermIndex].term)}${t(\"general:week\")}`:\r\n `${getLeaseBiWeeklyFromOptions(Accessory.price, financial.calculatedLease.leaseValues[leaseTermIndex].leaseRate, financial.calculatedLease.leaseValues[leaseTermIndex].term)}${t(\"general:bi_week\")}`})`:''}1 : t(\"with_installation\")}\r\n \r\n

    \r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
    \r\n
    \r\n
    \r\n \r\n : null}\r\n )\r\n\r\n}\r\n\r\n\r\nexport default AccessoryCard;\r\n\r\nAccessoryCard.propTypes = {\r\n HandleSelectedAccessory: PropTypes.func,\r\n HandleLearnMore: PropTypes.func,\r\n}\r\n\r\nAccessoryCard.defaultProps = {\r\n HandleSelectedAccessory: () => { },\r\n HandleLearnMore: () => { },\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport ReactHtmlParser from 'react-html-parser';\r\n\r\nimport GTMHelper from '../../../Helpers/gtmHelper';\r\n\r\nexport const CollapseLegal = ({ColCarText1, ColBoxText, key, ...props }) => {\r\n\tconst gtmHelper = new GTMHelper();\r\n\t\r\n const [toggle, setToggle] = React.useState(false);\r\n\r\n return (\r\n
    \r\n {\r\n\t\t\t\t\t setToggle(!toggle)\r\n\t\t\t\t\t gtmHelper.setGTM({'action':'Collapse', 'type': 'Legal', 'value': toggle}, true , false);\r\n\t\t\t\t }}\r\n className=\"mz-collapse__button\"\r\n >\r\n
    \r\n

    {ColCarText1}

    \r\n \r\n
    \r\n \r\n
    { ReactHtmlParser (ColBoxText) }
    \r\n
    \r\n )\r\n}\r\n\r\nCollapseLegal.propTypes = {\r\n ColCarText1: PropTypes.string,\r\n ColBoxText: PropTypes.string,\r\n}\r\n\r\nCollapseLegal.defaultProps = {\r\n ColCarText1: 'Legal',\r\n ColBoxText: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.',\r\n}\r\n\r\nexport default CollapseLegal;","import React, { useState, useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport ReactHtmlParser from 'react-html-parser';\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { useNavigate, useParams, useSearchParams } from 'react-router-dom';\r\n\r\nimport { formatPrice, getLang, convertNum, getProvince } from '../../../utils'\r\n\r\nimport { SummaryConstants as Constants } from '../../../Helpers/summaryconstants';\r\nimport NavHelper from '../../../Helpers/navhelper';\r\nimport { openModal, scrollTo } from '../../../Helpers/helpers';\r\nimport GTMHelper from '../../../Helpers/gtmHelper';\r\n\r\nimport Button from '../../1_Atoms/Button/Button';\r\n\r\nexport const Pricing = ({ builtLabel, builtPrice, loanLabel, loanPrice, buttonLabel, leaseLabel, financeLabel, HandleNextClick, setLegalModalOpen, HandleShowFinanceClick, saveLabel, summaryCalculator = window.summaryCalculator, setPreorderModalOpen, ...props }) => {\r\n //const summaryCalculator = window.summaryCalculator;\r\n const { year, carline, trim, model, packageCode } = useParams();\r\n\r\n const lang= getLang();\r\n const navigate = useNavigate();\r\n const navHelper = new NavHelper();\r\n\r\n const [financialInfo, setFinancialInfo] = React.useState(summaryCalculator.FinancialInfo);\r\n const [showFinancePrice, setShowFinancePrice] = React.useState(summaryCalculator.ShowFinancePrice);\r\n const [currentMileage] = React.useState(summaryCalculator.AnnualMileage);\r\n const includeFees = sessionStorage.getItem(Constants.IncludeFees) === 'true';\r\n const includeRebates = sessionStorage.getItem(Constants.IncludeRebates) === 'true';\r\n const includeTaxes = sessionStorage.getItem(Constants.IncludeTaxes) === 'true';\r\n const app = document.querySelector('.App');\r\n const { t, i18n } = useTranslation(['general']);\r\n const resizeObserver = new ResizeObserver(() => {\r\n calculatePriceBarPosition();\r\n })\r\n const mazdaFooter = document.querySelector('.mz-footer');\r\n const mazdaPricing = document.querySelector('.mz-pricing');\r\n const scrollElement = document.querySelector('.scroll-content');\r\n\tconst gtmHelper = new GTMHelper();\r\n\r\n const [ocaOpen, setOcaModalOpen] = React.useState(false);\r\n const [financeType, setFinanceType] = React.useState(false);\r\n \r\n const [searchParams, setSearchParams] = useSearchParams();\r\n\r\n const [update, setForceUpdate] = useState('');\r\n\r\n window.removeEventListener('scroll', calculatePriceBarPosition);\r\n window.removeEventListener('resize', calculatePriceBarPosition);\r\n\r\n if (resizeObserver && app)\r\n resizeObserver.unobserve(app);\r\n\r\n if (mazdaFooter && mazdaPricing) {\r\n window.addEventListener('scroll', calculatePriceBarPosition, false);\r\n window.addEventListener('resize', calculatePriceBarPosition, false);\r\n resizeObserver.observe(app);\r\n }\r\n\r\n function calculatePriceBarPosition(e) {\r\n if (!scrollElement) {\r\n if (!isFooterOnViewport()) {\r\n mazdaPricing.style.bottom = \"0px\";\r\n } else {\r\n mazdaPricing.style.bottom = `${howMuchFooterIsVisible()}px`;\r\n }\r\n } else {\r\n if (isFooterOnViewport()) {\r\n mazdaPricing.style.bottom = `${mazdaFooter.offsetHeight}px`;\r\n } else {\r\n mazdaPricing.style.bottom = `${scrollElement.clientHeight - window.innerHeight - parseFloat(window.getComputedStyle(scrollElement).transform.split(\", \")[5].replace(')', '')) * -1}px`;\r\n }\r\n }\r\n\r\n }\r\n\r\n\r\n function handleTogglePrice(e) {\r\n e.preventDefault();\r\n //const auxshowFinancePrice = !showFinancePrice\r\n summaryCalculator.ShowFinancePrice = !showFinancePrice;\r\n setShowFinancePrice(summaryCalculator.ShowFinancePrice);\r\n\r\n\r\n if(HandleShowFinanceClick)\r\n HandleShowFinanceClick(summaryCalculator.ShowFinancePrice);\r\n\r\n\t\tconst toggleType = summaryCalculator.ShowFinancePrice === false ? 'lease':'finance'\r\n\t\tgtmHelper.setGTM({'action':'Switch Financing','finance type': toggleType}, true, false);\r\n }\r\n\r\n function isFooterOnViewport() {\r\n const { top, bottom } = mazdaFooter.getBoundingClientRect()\r\n const vHeight = (window.innerHeight || document.documentElement.clientHeight);\r\n\r\n return (\r\n (top > 0 || bottom > 0) &&\r\n top < vHeight\r\n );\r\n }\r\n\r\n function howMuchFooterIsVisible() {\r\n var distance = 0;\r\n let elem = document.querySelector('.mz-footer');\r\n const vHeight = window.innerHeight;\r\n const scrollPosition = window.pageYOffset | document.body.scrollTop;\r\n do {\r\n distance += elem.offsetTop;\r\n elem = elem.offsetParent;\r\n } while (elem);\r\n\r\n if (scrollPosition > (distance - vHeight)) {\r\n return scrollPosition - (distance - vHeight);\r\n } else {\r\n return 0;\r\n }\r\n }\r\n\r\n function handlePreOrderClick() {\r\n document.querySelector('body').classList.add('disabled');\r\n setPreorderModalOpen(true);\r\n \r\n }\r\n\r\n function handleContactDealerLinkClick(e) {\r\n e.preventDefault();\r\n console.log(lang)\r\n gtmHelper.setGTM({'action':'Open Modal','modal': 'Contact Dealer'}, true, false);\r\n const targetModal = document.getElementById('mz-react-send-build-to-dealer-modal');\r\n if (targetModal && summaryCalculator) {\r\n if (summaryCalculator.SelectedColourExteriorIndex !== 'null' && summaryCalculator.Colours !== null) {\r\n const heading = targetModal.querySelector('.mz-send-build-to-dealer__vehicle-name');\r\n if (heading) {\r\n heading.textContent = lang === 'en' ? summaryCalculator._selectedModelYear.year.title + ' ' + ReactHtmlParser(summaryCalculator._selectedModelYear.carline.title) : ReactHtmlParser(summaryCalculator._selectedModelYear.carline.title) + ' ' + summaryCalculator._selectedModelYear.year.title;\r\n }\r\n }\r\n openModal('mz-react-send-build-to-dealer-modal');\r\n }\r\n }\r\n\r\n const handleOcaClick = (e) => {\r\n e.preventDefault();\r\n document.querySelector('body').classList.remove('disabled');\r\n if (window.location.href.indexOf('/payments') > 0) {\r\n setSearchParams({'oca':''});\r\n setTimeout(() => {\r\n setSearchParams({'oca':'1'});\r\n }, 10);\r\n }else{\r\n navigate(navHelper.getNavContent(t).tabList[5].uri + '&oca=1');\r\n }\r\n const price = summaryCalculator._showFinancePrice ? summaryCalculator.FinancialInfo.calculatedFinance.balanceToFinanceWithFeesWithRebatesTaxed : summaryCalculator.FinancialInfo.calculatedLease.balanceToLeaseWithFeesWithRebatesTaxed;\r\n gtmHelper.setGTM({'action':`OCA - Footer`,'year': year, 'model': carline, 'trim': summaryCalculator.selectedVehicle.trim ?? summaryCalculator.AvailableTrim.trims[0].trim_type.url_slug, 'price' : Math.round(price)}, true, false);\r\n }\r\n\r\n const getLoanRate = () => {\r\n if(summaryCalculator.getResponsesHasError())\r\n return '-'; \r\n\r\n const loanElement = summaryCalculator.FinancialInfo.calculatedFinance.financeValues[summaryCalculator.FinanceTermIndex];\r\n if (Number.parseFloat(loanElement.aprRate) !== Number.parseFloat(loanElement.aprRateDiscounted))\r\n return convertNum(loanElement.aprRateDiscounted,2) + '%';\r\n else\r\n return convertNum(loanElement.aprRate,2) + '%';\r\n }\r\n\r\n const getLeaseRate = () => {\r\n if(summaryCalculator.getResponsesHasError())\r\n return '-';\r\n\r\n const leaseElement = summaryCalculator.FinancialInfo.calculatedLease.leaseValues[summaryCalculator.LeaseTermIndex];\r\n if (Number.parseFloat(leaseElement.leaseRate) !== Number.parseFloat(leaseElement.leaseRateDiscounted))\r\n return convertNum(leaseElement.leaseRateDiscounted,2) + '%';\r\n else\r\n return convertNum(leaseElement.leaseRate,2) + '%';\r\n }\r\n\r\n const getLoanWeekly = () => {\r\n if(summaryCalculator.getResponsesHasError())\r\n return '-';\r\n\r\n const loanElement = financialInfo.calculatedFinance.financeValues[summaryCalculator.FinanceTermIndex];\r\n const weeklyPayment = loanElement[summaryCalculator.IncludeTaxes ? 'weeklyWithTaxes' : 'weekly'];\r\n\r\n if( weeklyPayment === 0 || weeklyPayment === '0')\r\n return '-';\r\n\r\n return formatPrice(weeklyPayment);\r\n }\r\n\r\n const getLeaseWeekly = () => {\r\n if(summaryCalculator.getResponsesHasError())\r\n return '-';\r\n \r\n const leaseElement = financialInfo.calculatedLease.leaseValues[summaryCalculator.LeaseTermIndex]\r\n const weeklyPayment = leaseElement[summaryCalculator.IncludeTaxes ? 'biWeeklyWithTaxes' : 'biWeekly'];\r\n\r\n if( weeklyPayment === 0 || weeklyPayment === '0')\r\n return '-';\r\n\r\n return formatPrice(weeklyPayment);\r\n\r\n } \r\n\r\n function getQCEVDisclaimerSection(){\r\n if(summaryCalculator.IncludeRebates && getProvince() === 'QC' && summaryCalculator.FinancialInfo?.ev_rebates?.length){\r\n return (\r\n <> \r\n
    \r\n {ReactHtmlParser(t(\"general:QCEVDisclaimer\"))}\r\n \r\n
    \r\n \r\n \r\n )\r\n }\r\n }\r\n function handleQCEVD_LinkClick(e){\r\n if(e.target.id === 'QCEVD_link'){\r\n e.preventDefault();\r\n const contactRoute = `/${year}/${carline}/${summaryCalculator.SelectedTrim.trim_type.url_slug}/${summaryCalculator.SelectedModel.model_code}/${summaryCalculator.SelectedModel.option_code}/summary?contactDealer`;\r\n navigate(contactRoute);\r\n }\r\n }\r\n\r\n function hasBreak(){\r\n if(lang === 'fr')\r\n return (
    )\r\n }\r\n\r\n function getCashPrice(){\r\n let financePricing = null;\r\n let cashPricing = null;\r\n if(includeFees){\r\n if(includeTaxes){\r\n if(includeRebates){\r\n financePricing = showFinancePrice ? financialInfo.calculatedFinance.balanceToFinanceWithFeesWithRebatesTaxed : financialInfo.calculatedLease.balanceToLeaseWithFeesWithRebatesTaxed;\r\n cashPricing = financialInfo.calculatedCash.subtotalWithFeesWithRebatesTaxed;\r\n }else{\r\n financePricing = showFinancePrice ? financialInfo.calculatedFinance.balanceToFinanceWithFeesTaxed : financialInfo.calculatedLease.balanceToLeaseWithFees;\r\n cashPricing = financialInfo.calculatedCash.subtotalWithFeesTaxed;\r\n }\r\n }else{\r\n if(includeRebates){\r\n financePricing = showFinancePrice ? financialInfo.calculatedFinance.balanceToFinanceWithFeesWithRebates : financialInfo.calculatedLease.balanceToLeaseWithFeesWithRebates;\r\n cashPricing = financialInfo.calculatedCash.subtotalWithFeesWithRebatesAndEvRebates;\r\n }else{\r\n financePricing = showFinancePrice ? financialInfo.calculatedFinance.balanceToFinanceWithFees : financialInfo.calculatedLease.balanceToLeaseWithFees\r\n cashPricing = financialInfo.calculatedCash.subtotalWithFees;\r\n }\r\n }\r\n }else{\r\n if(includeTaxes){\r\n if(includeRebates){\r\n financePricing = showFinancePrice ? financialInfo.calculatedFinance.balanceToFinanceWithRebatesTaxed : financialInfo.calculatedLease.balanceToLeaseWithRebates;\r\n cashPricing = financialInfo.calculatedCash.subtotalWithIncentiveRebatesAndEvRebatesTaxed;\r\n }else{\r\n financePricing = showFinancePrice ? financialInfo.calculatedFinance.balanceToFinanceTaxed : financialInfo.calculatedLease.balanceToLease;\r\n cashPricing = financialInfo.calculatedCash.subtotalTaxed;\r\n }\r\n }else{\r\n if(includeRebates){\r\n financePricing = showFinancePrice ? financialInfo.calculatedFinance.balanceToFinanceWithRebates : financialInfo.calculatedLease.balanceToLeaseWithRebates;\r\n cashPricing = financialInfo.calculatedCash.subtotalWithIncentiveRebatesAndEvRebates;\r\n }else{\r\n financePricing = showFinancePrice ? financialInfo.calculatedFinance.balanceToFinance : financialInfo.calculatedLease.balanceToLease;\r\n cashPricing = financialInfo.calculatedCash.subtotal;\r\n }\r\n }\r\n }\r\n\r\n //for get local price form to grab\r\n summaryCalculator.CurrentCalculatedCash = formatPrice(cashPricing, true);\r\n\r\n return ({formatPrice(financePricing)});\r\n }\r\n React.useEffect(() => {\r\n (async () => {\r\n if(summaryCalculator._selectedModel !== null) {\r\n document.addEventListener('click',handleQCEVD_LinkClick);\r\n \r\n setFinancialInfo(await summaryCalculator.RecalculateFinancialInfo());\r\n \r\n setForceUpdate(Math.random());\r\n }\r\n })();\r\n }, [\r\n summaryCalculator.FinancialInfo?.calculatedFinance, \r\n summaryCalculator.FinancialInfo?.calculatedLease,\r\n summaryCalculator._tradeInValue, \r\n summaryCalculator._downPaymentValue,\r\n summaryCalculator.LoyaltyChecked, \r\n summaryCalculator.GraduateChecked, \r\n summaryCalculator.MilitaryChecked,\r\n summaryCalculator.FirstTimeOwnerChecked,\r\n ]);\r\n\r\n useEffect(() => {\r\n console.log('refreshing pricebar section');\r\n }, [update]);\r\n \r\n if(!financialInfo)\r\n return (<>);\r\n else\r\n return (\r\n <>\r\n \r\n {\r\n document.querySelector('body').classList.add('disabled');\r\n setLegalModalOpen(true)\r\n gtmHelper.setGTM({'action':'Open Modal','modal': 'legal'}, true, false);\r\n }}\r\n /> \r\n
    \r\n
    {builtLabel}\r\n {getCashPrice()}\r\n
    \r\n
    \r\n {showFinancePrice ? t(\"general:finance\") : t(\"general:lease\")}: {showFinancePrice ? summaryCalculator.FinanceTerm : summaryCalculator.LeaseTerm}{t(\"general:pricing_bar_label\")} {showFinancePrice ? getLoanRate() : getLeaseRate()}\r\n\r\n {showFinancePrice ? getLoanWeekly()+t(\"general:weekly\") : getLeaseWeekly()+t(\"general:bi_weekly\")}\r\n
    \r\n {window.allow_oca ? \r\n :\r\n \r\n }\r\n {\r\n HandleNextClick();\r\n }}\r\n />\r\n
    \r\n
    \r\n {summaryCalculator.isSelectionPreOrder() ?\r\n {ReactHtmlParser(t(\"general:pre_order\"))}\r\n :\r\n {ReactHtmlParser(t(\"general:get_local_price\"))}}\r\n
    \r\n
    \r\n
    \r\n
    {ReactHtmlParser(t('general:price_as_built_m'))}\r\n \r\n {getCashPrice()}\r\n \r\n
    \r\n {summaryCalculator.isSelectionPreOrder() ?\r\n {ReactHtmlParser(t(\"general:pre_order\"))}\r\n :\r\n {ReactHtmlParser(t(\"general:get_local_price\"))}\r\n }\r\n
    \r\n
    \r\n
    \r\n {showFinancePrice ? t(\"general:finance\") : t(\"general:lease\")}: {hasBreak()} {showFinancePrice ? summaryCalculator.FinanceTerm : summaryCalculator.LeaseTerm}{t(\"general:pricing_bar_label\")} {showFinancePrice ? getLoanRate() : getLeaseRate()}\r\n\r\n {showFinancePrice ? getLoanWeekly()+t(\"general:weekly\") : getLeaseWeekly()+t(\"general:bi_weekly\")}\r\n\r\n \r\n
    \r\n \r\n HandleNextClick()}\r\n />\r\n \r\n \r\n \r\n );\r\n};\r\n\r\n\r\n// Pricing.propTypes = {\r\n// HandleTabClick: PropTypes.func,\r\n// }\r\n\r\n// Pricing.defaultProps = {\r\n// HandleTabClick: () => {\r\n// },\r\n// };","import React from 'react';\r\nimport ReactHtmlParser from 'react-html-parser';\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nimport { Svg } from '../../1_Atoms/Svg/Svg';\r\nimport PropTypes from 'prop-types';\r\n\r\nexport const PreOrderModal = ({modalContent, isOpen, modalId, handleClose, ...props }) => {\r\n const summaryCalculator = window.summaryCalculator;\r\n const { t } = useTranslation(['summary', 'general']);\r\n\r\n React.useEffect(() => {\r\n if(isOpen){ \r\n // Skip if this is the first time loading it because App.js takes care of it.\r\n //redraw on dealer id change\r\n if (window.isReactFormsAppLoaded && typeof window.initReactFormsApp === 'function') {\r\n window.initReactFormsApp();\r\n }\r\n }\r\n }, [isOpen]);\r\n\r\n window.addEventListener(\"message\", function (e) { \r\n if (e.data.type === \"formEvent\") {\r\n if(e.data.origin === 'preOrder'){\r\n sessionStorage.setItem('preorder', e.data.message.dealer_code);\r\n //handlePreOrderClick();\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 {isOpen &&\r\n <> \r\n
    \r\n
    \r\n

    {t('general:pre_order')}

    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n {sessionStorage.getItem('preorder') &&\r\n <>\r\n \r\n \r\n }\r\n \r\n \r\n
    \r\n
    \r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nPreOrderModal.propTypes = {\r\n HandleTabClick: PropTypes.func,\r\n}\r\n\r\nPreOrderModal.defaultProps = {\r\n handleClose: () => {\r\n },\r\n};","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport ReactHtmlParser from 'react-html-parser';\r\nimport { useRef } from 'react';\r\n\r\nimport { Tooltip } from '../../1_Atoms/Tooltip/Tooltip';\r\n\r\nexport const Alert = ({Id, Desc, ...props }) => {\r\n const [textDisplayed, setTextDisplayed] = React.useState(null);\r\n const [tooltipCont, setTooltipCont] = React.useState(null);\r\n const alertRef = useRef();\r\n\r\n let summaryCalculator = window.summaryCalculator\r\n\r\n const getTextDisplay = () => {\r\n if(Desc)\r\n return Desc;\r\n\r\n switch(summaryCalculator._currentStep) {\r\n case 1:\r\n if(summaryCalculator?._selectedModelYear?.incentives_banner)\r\n return summaryCalculator?._selectedModelYear?.incentives_banner;\r\n default: \r\n if(summaryCalculator?._selectedTrim?.incentives_banner)\r\n return summaryCalculator?._selectedTrim?.incentives_banner;\r\n\r\n if(summaryCalculator?._selectedModelYear?.incentives_banner)\r\n return summaryCalculator?._selectedModelYear?.incentives_banner;\r\n }\r\n\r\n }\r\n \r\n React.useEffect(() => {\r\n //console.log('ALERT BAR DISPLAY TEXT CHANGED');\r\n\r\n let tempHtml = getTextDisplay();\r\n tempHtml = tempHtml?.includes('') ? tempHtml.split('') : tempHtml;\r\n if(Array.isArray(tempHtml)){\r\n setTooltipCont(tempHtml[1]);\r\n tempHtml.splice(1, 1);\r\n tempHtml = tempHtml.join(' ');\r\n }\r\n setTextDisplayed(tempHtml);\r\n }, [summaryCalculator._selectedModelYear, summaryCalculator._selectedTrim]);\r\n\r\n\r\n if(!textDisplayed) \r\n return <>;\r\n \r\n function insertTooltip(){\r\n return ()\r\n }\r\n return (\r\n
    \r\n {!tooltipCont && ReactHtmlParser(textDisplayed)}\r\n {tooltipCont && \r\n

    \r\n {ReactHtmlParser(textDisplayed)}\r\n {insertTooltip()}\r\n

    \r\n }\r\n
    \r\n );\r\n};\r\n\r\nexport default Alert;\r\n\r\nAlert.propTypes = {\r\n Id: PropTypes.string,\r\n Desc: PropTypes.string,\r\n}\r\n\r\nAlert.defaultProps = {\r\n Id: 'AlertID',\r\n Desc: '',\r\n};","import React from \"react\";\r\nimport PropTypes from 'prop-types';\r\nimport { useNavigate, useParams } from 'react-router-dom';\r\nimport { useTranslation } from \"react-i18next\";\r\nimport ReactHtmlParser from 'react-html-parser';\r\n\r\nimport { setTabsNextAndPrevButtons, goToTop, setCursorWaiting, hideCmsHiddenBlock, getLoading} from '../../../utils'\r\n\r\nimport SummaryCalculator from '../../../Helpers/summarycalculator';\r\nimport { SummaryConstants as Constants } from '../../../Helpers/summaryconstants';\r\nimport GTMHelper from '../../../Helpers/gtmHelper';\r\nimport NavHelper from '../../../Helpers/navhelper';\r\n\r\nimport Button from '../../1_Atoms/Button/Button';\r\nimport { TabsMenu } from \"../../2_Molecules/Tabs/TabsMenu\";\r\nimport AccessoryCard from '../../2_Molecules/AccessoryCard/AccessoryCard'\r\nimport CollapseLegal from '../../2_Molecules/Collapse/CollapseLegal';\r\nimport { Nav } from '../../3_Organisms/Nav/Nav';\r\nimport { Pricing } from '../../3_Organisms/Pricing/Pricing';\r\nimport { Modal } from '../../3_Organisms/Modal/Modal';\r\nimport { PreOrderModal } from '../../3_Organisms/Modal/PreOrderModal';\r\nimport { Alert } from '../../3_Organisms/Alert/Alert';\r\n\r\nexport const AccessoriesList = ({ HandleSelectedAccessory, ...props }) => {\r\n const summaryCalculator = window.summaryCalculator;\r\n const [nav, setNav] = React.useState(null);\r\n const { year, carline, trim, model, packageCode } = useParams();\r\n const navigate = useNavigate();\r\n const leftArrowRef = React.useRef();\r\n const rightArrowRef = React.useRef();\r\n const tabsContainerRef = React.useRef();\r\n const tabsRef = React.useRef();\r\n const [visibleLeftArrow, setVisibleLeftArrow] = React.useState(false);\r\n const [visibleRightArrow, setVisibleRightArrow] = React.useState(false);\r\n const legalContent = JSON.parse(sessionStorage.getItem(Constants.LegalAccessories));\r\n const [legalModalOpen, setLegalModalOpen] = React.useState(false);\r\n const { t, i18n } = useTranslation(['accessories', 'general']);\r\n const [accessories, setAccessories] = React.useState(null);\r\n const [categories, setCategories] = React.useState(null);\r\n const [selectedAccessories, setSelectedAccessories] = React.useState(summaryCalculator.SelectedAccessories);\r\n const [selectedCategory, setSelectedCategory] = React.useState(summaryCalculator.SelectedCategory);\r\n const [showFinancePrice, setShowFinancePrice] = React.useState(summaryCalculator.ShowFinancePrice);\r\n\r\n const [preorderOpen, setPreorderModalOpen] = React.useState(false);\r\n\r\n\tconst gtmHelper = new GTMHelper();\r\n\tconst navHelper = new NavHelper();\r\n\r\n hideCmsHiddenBlock();\r\n \r\n function handleArrowLeftClick(e) {\r\n e.preventDefault();\r\n tabsRef.current.scroll(tabsRef.current.scrollLeft - 50, 0);\r\n setTabsNextAndPrevButtons();\r\n }\r\n\r\n function handleArrowRightClick(e) {\r\n e.preventDefault();\r\n tabsRef.current.scroll(tabsRef.current.scrollLeft + 50, 0);\r\n setTabsNextAndPrevButtons();\r\n }\r\n\r\n function setTabsNextAndPrevButtons() {\r\n if (tabsRef?.current?.offsetWidth < tabsRef?.current?.scrollWidth) {\r\n if (tabsRef.current.scrollLeft === 0 && !((tabsRef.current.scrollWidth - tabsRef.current.clientWidth) == tabsRef.current.scrollLeft)) {\r\n setVisibleRightArrow(true);\r\n setVisibleLeftArrow(false);\r\n } else if ((tabsRef.current.scrollWidth - tabsRef.current.clientWidth) == tabsRef.current.scrollLeft) {\r\n setVisibleRightArrow(false);\r\n setVisibleLeftArrow(true);\r\n } else {\r\n setVisibleRightArrow(true);\r\n setVisibleLeftArrow(true);\r\n }\r\n } else {\r\n setVisibleRightArrow(false);\r\n setVisibleLeftArrow(false);\r\n }\r\n return;\r\n }\r\n\r\n function handleArrowLeftClick(e) {\r\n e.preventDefault();\r\n tabsRef.current.scroll(tabsRef.current.scrollLeft - 50, 0);\r\n setTabsNextAndPrevButtons();\r\n }\r\n\r\n function handleArrowRightClick(e) {\r\n e.preventDefault();\r\n tabsRef.current.scroll(tabsRef.current.scrollLeft + 50, 0);\r\n setTabsNextAndPrevButtons();\r\n }\r\n\r\n\t//sort popular to first item\r\n\tfunction isPopular(a, b){\r\n\t\tconst bandA = a.toUpperCase();\r\n\t\tconst bandB = b.toUpperCase();\r\n\r\n\t\tlet comparison = 0;\r\n\t\tif (bandA === 'POPULAR') {\r\n\t\t\tcomparison = -1;\r\n\t\t} else if(bandA > bandB){\r\n\t\t\tcomparison = 1;\r\n\t\t} else if(bandA < bandB){\r\n\t\t\tcomparison = -1;\r\n\t\t}\r\n\t\treturn comparison;\r\n }\r\n\r\n summaryCalculator.CurrentStep = 6;\r\n\r\n React.useEffect(async () => {\r\n if (!summaryCalculator.isDataLoaded()) {\r\n await summaryCalculator.loadVehicleData(year, carline, trim, model, packageCode);\r\n\r\n setNav(null);\r\n } else if (summaryCalculator.Categories === null) {\r\n summaryCalculator.Categories = Object.keys(summaryCalculator.Accessories.data).sort(isPopular);\r\n\r\n setCategories(summaryCalculator.Categories);\r\n } else if (summaryCalculator.SelectedCategory === null) {\r\n summaryCalculator.SelectedCategory = \"Popular\";\r\n\r\n setSelectedCategory(summaryCalculator.SelectedCategory);\r\n } else if (nav === null) {\r\n const toRender = navHelper.getNavContent(t);\r\n setNav(toRender); \r\n //setNav(navHelper.getNavContent(year, carline, trim, model, packageCode, summaryCalculator.CurrentStep, t));\r\n\r\n if (tabsRef.current) {\r\n tabsRef.current.removeEventListener('scroll', setTabsNextAndPrevButtons);\r\n tabsRef.current.addEventListener('scroll', setTabsNextAndPrevButtons, true);\r\n window.removeEventListener('resize', setTabsNextAndPrevButtons);\r\n window.addEventListener('resize', setTabsNextAndPrevButtons);\r\n\r\n setTabsNextAndPrevButtons();\r\n } \r\n }\r\n\r\n // Force first redraw\r\n if (accessories === null)\r\n {\r\n setAccessories(summaryCalculator.Accessories);\r\n }\r\n\r\n }, [summaryCalculator, selectedAccessories, selectedCategory, accessories, categories]);\r\n\r\n async function handleSelectedAccessory(index) {\r\n setCursorWaiting(true);\r\n\r\n if (summaryCalculator.SelectedAccessories.findIndex(obj => obj.index === index) === -1) {\r\n const accessory = summaryCalculator.Accessories.rawData[index][1];\r\n\r\n let selectedAccessories = summaryCalculator.SelectedAccessories;\r\n selectedAccessories.push(accessory);\r\n\r\n await summaryCalculator.setSelectedAccessories(selectedAccessories);\r\n } else {\r\n await summaryCalculator.setSelectedAccessories(summaryCalculator.SelectedAccessories.filter((value) => value.index != index));\r\n }\r\n\r\n // Force update, this is a hack!\r\n setSelectedAccessories( Math.random() ); //setSelectedAccessories(summaryCalculator.SelectedAccessories);\r\n\r\n setCursorWaiting(false);\r\n }\r\n\r\n function nextStep() {\r\n goToTop();\r\n //navigate(`/${year}/${carline}/${trim}/${model}/${packageCode}/protections${decodeURI(window.location.search)}`);\r\n navigate(`/${year}/${carline}/${trim}/${model}/${packageCode}/payments${decodeURI(window.location.search)}`);\r\n }\r\n\r\n function handleShowFinanceClick(value) {\r\n setShowFinancePrice(value);\r\n }\r\n\r\n function hasAlertBar() {\r\n return summaryCalculator?._selectedModelYear?.incentives_banner;\r\n }\r\n\r\n return (\r\n <>\r\n {getLoading(false, t)}\r\n