"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1604],{14669:function(e,t,i){var n=i(2265),l=i(17541),a=i(82122),c=i(18346),o=i(39217);t.Z=function(e,t){let i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],{dealer:r,childDealers:s,env:u}=(0,a.Ix)(),[d,v]=(0,n.useState)(void 0),[_,p]=(0,n.useState)(void 0),[f,m]=(0,n.useState)(void 0),[g,h]=(0,n.useState)(void 0),[P,k]=(0,n.useState)(void 0),y=(0,c.e2)(e,r,s),[w,b]=(0,n.useState)((0,c.li)(e,y)),j=!!i,E=!!(i&&!(null==e?void 0:e.alt_price)),D=(0,c.Ov)(e,y),{get:N,response:S,loading:O,cache:A}=(0,l.ZP)("".concat(null==u?void 0:u.API_URL,"/incentives/rebates/"));(0,n.useEffect)(()=>{j&&!(null==e?void 0:e.alt_price)&&e&&(e={...e,alt_price:e.price||0}),b((0,c.li)(e,y))},[e]);let startingPrice=()=>(null==e?void 0:e.car_condition)==="New"?(null==e?void 0:e.msrp)||0:(null==e?void 0:e.retail_price)&&e.retail_price>1?e.retail_price:(D.fee||D.fee2)&&(null==e?void 0:e.price)?e.price-D.fee-D.fee2:(null==e?void 0:e.price)||0,evaluatePercentOff=e=>{let t=startingPrice();return t?null==e?void 0:e.map(e=>e.percentageOff?{...e,cash:(t||0)*(e.percentageOff/100)}:e):null==e?void 0:e.filter(e=>!e.percentageOff)};(0,n.useEffect)(()=>{if(!(null==f?void 0:f.length)&&!O&&(null==y?void 0:y.ris_incentives_enabled)&&(null==e?void 0:e.car_condition)==="New"){let fetchPrograms=async()=>{let i,n={incentives:[],conditional_incentives:[],accessory_package:void 0};if(t?(await N("".concat(null==e?void 0:e.vin,"?dealer_id=").concat(null==e?void 0:e.dealer_id,"&vehicle_id=").concat(null==e?void 0:e.id)),S.ok&&S.data&&(n=S.data)):n={incentives:(null==e?void 0:e.oem_incentives)||[],conditional_incentives:(null==e?void 0:e.oem_conditional_incentives)||[],accessory_package:null==e?void 0:e.accessory_package},(null==y?void 0:y.show_manual_incentives_and_rebates)&&(null==e?void 0:e.manual_incentives))i=evaluatePercentOff([...e.incentives||[],...n.incentives]);else{var l;let t=(null==e?void 0:null===(l=e.incentives)||void 0===l?void 0:l.filter(e=>"fee"===e.charge_type))||[];i=evaluatePercentOff((null==e?void 0:e.manual_incentives)?e.incentives||[]:n.incentives.concat(t))}m(i),k(n.conditional_incentives),h(n.accessory_package);let a=0,c=0;i.forEach(e=>{"fee"===e.charge_type?c+=e.cash:a+=e.cash}),a&&v(a),c&&p(c),A.clear()};fetchPrograms()}},[t,e]);let marketAdjustment=()=>{let t=!!(null==y?void 0:y.show_msrp_without_price)&&(null==e?void 0:e.car_condition)==="New"&&0>=(w||0);if(!startingPrice()||t)return null;let i=w-startingPrice()-((null==e?void 0:e.equipment_price)||0)+(d||(0,c.EQ)(e))-(_||0);return((null==e?void 0:e.discount_price)&&(i=e.discount_price-startingPrice()),j&&(null==e?void 0:e.alt_price)&&(i=(null==e?void 0:e.alt_price)-startingPrice()),(D.fee||D.fee2)&&(i-=D.fee+D.fee2),i&&Math.abs(i)>=1)?"".concat(i<0?"":"+").concat((0,o.L6)(i)):null};function getFormattedDate(e){e=new Date(e);let t=e.getFullYear(),i=(1+e.getMonth()).toString();i=i.length>1?i:"0"+i;let n=e.getDate().toString();return i+"/"+(n=n.length>1?n:"0"+n)+"/"+t}let C=!!(null==y?void 0:y.show_price_before_doc_fees)&&(null==e?void 0:e.car_condition)==="New"&&(!!D.fee||!!D.fee2);return{accessoryPackage:g,cashPrograms:f,setCashPrograms:m,conditionalPrograms:P,setConditionalPrograms:k,totalIncentives:d,setTotalIncentives:v,adjustmentCopy:(()=>{let e=marketAdjustment(),t=null==y?void 0:y.market_adjustment_copy;return(null==e?void 0:e.includes("-"))&&(t=null==y?void 0:y.dealer_discount_copy),(j||E)&&(t="Employee Discount"),t||""})(),rebateHeaderText:e=>{let t=e.programName||e.specialProgramName,i=e.stopDate?" | Expires on: ".concat(getFormattedDate(e.stopDate)):"";return"".concat(t).concat(i)},showPriceBeforeDocFees:C,adjustmentTooltipCopy:(()=>{let e=marketAdjustment(),t=null==y?void 0:y.adjustment_tooltip_copy;return(null==e?void 0:e.includes("-"))&&(t=null==y?void 0:y.discount_tooltip_copy),(j||E)&&(t="Employee Discount"),t||"The market adjustment is based on the supply and demand of this vehicle. It applies to all customers."})(),genericRebate:(()=>{let t=0,i=(0,c.EQ)(e),n=(null==e?void 0:e.discount_price)?e.discount_price+(e.equipment_price||0)-(d||0)+(e.total_fees||0)-w:0;return(t=i&&!d&&i>n?i:n)&&Math.abs(t)>=1?t:null})(),pricingDealer:y,displayPrice:w,marketAdjustment:marketAdjustment(),docFeeResult:D,startingPrice:startingPrice(),loading:O,getFormattedDate,showStartingPrice:(null==e?void 0:e.car_condition)==="New"?!!startingPrice():!!D.fee||!!D.fee2||startingPrice()!==w,showEmployeePrice:j,dealerPriceAsEmployeePrice:E}}}}]);