PageSourceSearch

https://www.finn.com/_next/static/chunks/2491-62573e69c841c565.js

js finn.com collected 2026-09-24 18:31:11 UTC 33,001 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2491],{1132:(e,t,r)=>{r.d(t,{A:()=>i});var n=r(765),a=r(25895);let i=e=>!(!e||(0,a.Km)(e))&&((0,n.q2)(n.cY.SWAPPABLE_SUB,e,72),!0)},9119:(e,t,r)=>{r.d(t,{CN:()=>u,Gb:()=>d,Ow:()=>i,T4:()=>c,ds:()=>l,lG:()=>a,t7:()=>s});var n=r(36299);let a=24,i=e=>{let t=Math.floor(e.getMonth()/3)+1;return`${e.getFullYear()}Q${t}`},o=(e,t)=>{if(!e)return NaN;let r=e=>new Date(e.getFullYear(),e.getMonth(),e.getDate()).getTime();return Math.round((r(t)-r(new Date(e)))/864e5)},l=(e,t)=>{let r=o(e,t);return Number.isFinite(r)&&r>=0&&r<=2},s=(e,t)=>{let r=o(e,t);return Number.isFinite(r)&&r>=10&&r<=90},u=(e,t,r,a)=>{let i=(0,n.a4)(t,{impersonationMode:a});return r?e.deals[r]?.[i]:e.user[i]},d=(e,t,r)=>void 0!==u(e,t.settingKey,t.dealId,r),c=(e,t,r)=>((e,t,r)=>{let i=u(e,n.i9.lastAutoPopupShownAt,null,t);if("string"!=typeof i)return!1;let o=Date.parse(i);return!Number.isNaN(o)&&r.getTime()-o<60*a*6e4})(t,r.impersonationMode,r.now)?null:[...e].filter(e=>e.eligible&&!d(t,e,r.impersonationMode)).sort((e,t)=>e.priority-t.priority)[0]??null},18658:(e,t,r)=>{r.d(t,{W:()=>g});var n=r(66866),a=r(27795),i=r(33611),o=r(96971),l=r(765),s=r(79748),u=r(7620),d=r(36299),c=r(9119);let g=({userId:e,isUserLoading:t,candidates:r,candidatesReady:g,settingsSource:p,suppressed:m=!1,isExcludedPathname:h,runLegacyMigration:f})=>{let w=(0,s.usePathname)(),v=(0,a.i)(e=>e.track),b=(0,n.P0)(),_="true"===(0,l.gp)(l.cY.IMPERSONATION_ACTIVE),y="yes"===(0,l.gp)(l.cY.ALLOW_IMPERSONATION_POPUPS),S=_&&y,x=(0,u.useRef)(!1),A=(0,u.useRef)(!1),[N,j]=(0,u.useState)(!1),{settings:I,status:O,recordSetting:k}=p;return(0,u.useEffect)(()=>{if(x.current||m||t||!e||"yes"===(0,o.ok)(o.$K.IsE2ETest)||b||w&&h?.(w)||_&&!y||"success"!==O||!g)return;let n=e=>k({...e,key:(0,d.a4)(e.key,{impersonationMode:S})});if(f&&!S&&!N){A.current||(A.current=!0,f({userId:e,settingsSource:p}).then(async e=>{e&&await p.refresh()}).catch(()=>{}).finally(()=>j(!0)));return}let a=(0,c.T4)(r,I,{impersonationMode:S,now:new Date});if(!a)return;let l=r.find(e=>e.id===a.id);if(!l)return;let s=()=>{x.current=!0,v(i.fC.MODAL_OPENED,{name:l.trackingName});let e=new Date,t=e.toISOString(),r=l.suppressionTtlHours?new Date(e.getTime()+60*l.suppressionTtlHours*6e4).toISOString():void 0;Promise.allSettled([n({key:l.settingKey,dealId:l.dealId,value:t,expiresAt:r}),n({key:d.i9.lastAutoPopupShownAt,value:t,expiresAt:new Date(e.getTime()+60*c.lG*6e4).toISOString()})]).finally(()=>{p.refresh()})};if(l.show())return void s();let u=0,T=window.setInterval(()=>{if(u+=1,x.current)return void window.clearInterval(T);if(l.show()){s(),window.clearInterval(T);return}u>=50&&window.clearInterval(T)},200);return()=>{window.clearInterval(T)}},[e,t,m,w,h,I,O,p,k,r,g,S,_,y,N,f,b,v]),null}},33400:(e,t,r)=>{r.d(t,{Y:()=>a});var n=r(7620);let a=({steps:e,uncountedStep:t,canGoBack:r})=>{let a=(0,n.useMemo)(()=>e,[e.join(",")]),[i,o]=(0,n.useState)(a[0]),l=(0,n.useRef)(!1);(0,n.useEffect)(()=>{l.current||o(a[0])},[a]);let s=a.indexOf(i),u=(0,n.useCallback)(()=>{s<a.length-1&&(l.current=!0,o(a[s+1]))},[s,a]),d=(0,n.useCallback)(()=>{s>0&&(l.current=!0,o(a[s-1]))},[s,a]),c=r?r(i):i!==a[0],g=(0,n.useCallback)(()=>{if(i===t)return 0;let e=a.indexOf(t);return e>=0&&e<s?s:s+1},[i,s,t,a]);return{currentStep:i,goToNextStep:u,goToPreviousStep:d,canGoBack:c,getCurrentStepNumber:g,getTotalSteps:(0,n.useCallback)(()=>a.includes(t)?a.length-1:a.length,[a,t])}}},36299:(e,t,r)=>{r.d(t,{$v:()=>s,In:()=>d,a4:()=>u,i9:()=>n});let n={csatHandoverShownAt:"after-subscription-creation-typeform-shown-at",csatSwapShownAt:"after-swap-typeform-shown-at",csatVehicleShownAt:"csat-vehicle-typeform-shown-at",retentionFollowupShownAt:"retention-followup-shown-at",lastAutoPopupShownAt:"last-auto-popup-shown-at",trustpilotReviewShownAt:"trustpilot-review-shown-at",trustpilotEligibilityChecked:"trustpilot-eligibility-checked",endOfSubscriptionReminderShownAt:"end-of-subscription-reminder-shown-at",orderCompletedTrackedAt:"order-completed-tracked-at",npsShownAt:e=>`nps-typeform-shown-at-${e}`,announcementShownAt:e=>`announcement-shown-at-${e}`,jobautoCsatShownAt:e=>`jobauto-csat-shown-at-${e}`},a=new Set([n.csatHandoverShownAt,n.csatSwapShownAt,n.csatVehicleShownAt,n.retentionFollowupShownAt,n.lastAutoPopupShownAt,n.trustpilotReviewShownAt,n.trustpilotEligibilityChecked,n.endOfSubscriptionReminderShownAt,n.orderCompletedTrackedAt]),i=/^nps-typeform-shown-at-\d{4}Q[1-4]$/,o=/^announcement-shown-at-[A-Za-z0-9_-]+$/,l=/^jobauto-csat-shown-at-\d{4}Q[1-4]$/,s="-imp",u=(e,t)=>
1t?.impersonationMode?`${e}${s}`:e,d=e=>{if("string"!=typeof e)return!1;let t=e.endsWith(s)?e.slice(0,-s.length):e;return a.has(t)||i.test(t)||o.test(t)||l.test(t)}},37417:(e,t,r)=>{r.d(t,{G:()=>g});var n=r(54568),a=r(66866),i=r(98782),o=r(79748),l=r(95781),s=r(7620),u=r(97437),d=r(7647);let c="prolongation-failed-modal",g=(0,s.memo)(({children:e,modals:t})=>{let r=(0,a.t6)(),g=(0,o.usePathname)();return(0,s.useEffect)(()=>{let e=l.parse(window.location.search);e.modalName&&(r(e.modalName,void 0,{exclusive:!0}),(0,d.i)({action:"open_modal",modalName:e.modalName}))},[r,g]),(0,n.jsxs)(n.Fragment,{children:[t?.map(e=>(0,n.jsx)(a.Bs,{modalKey:e?.slug,renderModal:(t,r)=>(0,n.jsx)(u.d,{...e.metadata,open:t,onClose:r,name:e.slug})},e?.slug)),(0,n.jsx)(a.Bs,{modalKey:c,renderModal:(e,t)=>(0,n.jsx)(u.d,{open:e,onClose:t,name:c,title:{label:(0,i.h)("prolongation_failed_modal.title",{defaultMessage:"Verl\xe4ngerung fehlgeschlagen"},{noTags:!0})},description:(0,i.h)("prolongation_failed_modal.description",{defaultMessage:"<p>Bei deiner Verl\xe4ngerung ist ein Fehler aufgetreten. Dies liegt voraussichtlich an einen internen Fehler.</p><p>Bitte versuche es erneut oder wende dich an unseren Kundenservice, um Hilfe zu erhalten.</p>"},{noTags:!0}),footer:{cta:{action:"close_modal",label:(0,i.h)("prolongation_failed_modal.footer.cta.label",{defaultMessage:"Ok"},{noTags:!0})}}})}),e]})})},39588:(e,t,r)=>{r.d(t,{Sg:()=>x,_8:()=>l,bA:()=>h,qG:()=>S});var n=r(7620),a=r(27128),i=r(20735);let o={user:{},deals:{}},l=()=>{let{settings:e,settingsStatus:t,mutateSettings:r}=(0,i.Q)(),a=(0,n.useCallback)(async e=>{try{return(await fetch("/portal/api/bff/settings",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:e.key,dealId:e.dealId??null,value:e.value,expiresAt:e.expiresAt})})).ok}catch{return!1}},[]);return(0,n.useMemo)(()=>({settings:e,status:t,recordSetting:a,refresh:()=>Promise.resolve(r())}),[e,t,a,r])},s="b2b_typeform_quarterly_survey_",u=/^nps-typeform-shown-at-(\d{4}Q[1-4])$/,d=e=>`finn_b2b_popup_settings_${e}`,c=(e,t)=>"string"==typeof e.expiresAt&&!Number.isNaN(Date.parse(e.expiresAt))&&Date.parse(e.expiresAt)<=t,g=e=>{let t={user:{},deals:{}};try{let r=window.localStorage.getItem(d(e));if(!r)return t;let n=JSON.parse(r),a=Date.now(),i={};for(let[e,t]of Object.entries(n.user??{}))t&&!c(t,a)&&(i[e]=t);let o={};for(let[e,t]of Object.entries(n.deals??{})){let r={};for(let[e,n]of Object.entries(t??{}))n&&!c(n,a)&&(r[e]=n);Object.keys(r).length>0&&(o[e]=r)}return{user:i,deals:o}}catch{return t}},p=e=>({user:Object.fromEntries(Object.entries(e.user).map(([e,t])=>[e,t.value])),deals:Object.fromEntries(Object.entries(e.deals).map(([e,t])=>[e,Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.value]))]))}),m=(e,t)=>{try{window.localStorage.setItem(d(e),JSON.stringify(t))}catch{}},h=e=>{let[t,r]=(0,n.useState)(o),[a,i]=(0,n.useState)("loading");(0,n.useEffect)(()=>{if(!e)return;let t=y(((e,t)=>{let r=[];try{r=Object.keys(window.localStorage)}catch{return t}let n=`${s}${e}_`,a=!1,i={user:{...t.user},deals:t.deals};for(let e of r){if(!e.startsWith(n))continue;let t=e.slice(n.length),r=`nps-typeform-shown-at-${t}`;if(u.test(r))try{"shown"===window.localStorage.getItem(e)&&(i.user[r]??={value:new Date().toISOString()},a=!0),window.localStorage.removeItem(e)}catch{}}return a?i:t})(e,g(e)));m(e,t),r(p(t)),i("success")},[e]);let l=(0,n.useCallback)(async t=>{if(!e)return!1;let n=g(e),a={value:t.value,expiresAt:t.expiresAt??void 0},i=t.dealId?{user:n.user,deals:{...n.deals,[t.dealId]:{...n.deals[t.dealId],[t.key]:a}}}:{user:{...n.user,[t.key]:a},deals:n.deals};return m(e,i),r(p(i)),!0},[e]);return(0,n.useMemo)(()=>({settings:t,status:a,recordSetting:l,refresh:async()=>{e&&r(p(g(e)))}}),[t,a,l,e])},f=async()=>{let e=await fetch("/portal/api/bff/settings");if(!e.ok)throw Error(`settings fetch failed: ${e.status}`);let t=await e.json();return{user:t.data?.user??{},deals:t.data?.deals??{}}},w="End of Subscription Reminder",v="end-of-subscription-reminder-shown-at",b=()=>{try{let e=window.localStorage.getItem(w);if(!e)return null;let t=e;try{t=JSON.parse(e)}catch{}let r=new Date(t);if(Number.isNaN(r.getTime()))return"stale";let n=r.getTime()+6048e5;if(n<=Date.now())return"stale";return{value:r.toISOString(),expiresAt:new Date(n).toISOString()}}catch{return null}},_=()=>{try{window.localStorage.removeItem(w)}catch{}},y=e=>{let t=b();if(null===t)return e;let r=e;return"stale"!==t&&void 0===e.user[v]&&(r={user:{...e.user,[v]:{value:t.value,expiresAt:t.expiresAt}},deals:e.deals}),_(),r},S=e=>{let{data:t,error:r,mutate:i,isLoading:l}=(0,a.Ay)(e?["b2b-popup-settings",e]:null,f,{revalidateOnFocus:!1,revalidateOnReconnect:!1,shouldRetryOnError:!1}),s=!!r,u=h(s?e:void 0),d=(0,n.useCallback)(async e=>{try{return(await fetch("/portal/api/bff/settings",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:e.key,dealId:e.dealId??null,value:e.value,expiresAt:e.expiresAt})})).ok}catch{return!1}},[]);return(0,n.useMemo)(()=>s?{...u,mode:"local"}:{settings:t??o,status:l||!t&&e?"loading":"success",recordSetting:d,refresh:()=>i(),mode:"server"},[s,u,t,l,e,d,i])},x=async({userId:e,settingsSource:t})=>{let r=!1,n=[];try{n=Object.keys(window.localStorage)}catch{return!1}let a=`${s}${e}_`;for(let e of n){if(!e.startsWith(a))continue;let n=`nps-typeform-shown-at-${e.slice(a.length)}`;
1if(u.test(n))try{if("shown"===window.localStorage.getItem(e)){let e=void 0!==t.settings.user[n];if(!(e||await t.recordSetting({key:n,value:new Date().toISOString()})))continue;r=r||!e}window.localStorage.removeItem(e)}catch{}}let i=b();null!==i&&("stale"===i||void 0!==t.settings.user[v]?_():await t.recordSetting({key:v,value:i.value,expiresAt:i.expiresAt})&&(_(),r=!0));let o=g(e),l=!0;for(let[e,n]of Object.entries(o.user))void 0===t.settings.user[e]&&(await t.recordSetting({key:e,value:n.value,expiresAt:n.expiresAt??void 0})?r=!0:l=!1);if(l&&Object.keys(o.user).length>0)try{window.localStorage.removeItem(d(e))}catch{}return r}},50037:(e,t,r)=>{r.d(t,{T:()=>n});let n=({formId:e,hidden:t,onClose:r})=>{let n=window.tf;if(!n?.createPopup)return!1;let a=n.createPopup(e,{hidden:t,size:70,onClose:r});return a.open?.(),!0}},67684:(e,t,r)=>{r.d(t,{d2:()=>h,$5:()=>f,Dp:()=>w,rb:()=>A});var n=r(66866),a=r(92088),i=r(27795),o=r(33611),l=r(7620),s=r(46876),u=r(99498),d=r(36299),c=r(9119),g=r(50037),p=r(27128);let m=(e,t)=>(e.created_at??"").localeCompare(t.created_at??""),h="hb6xuKmi",f="wf8FS5Ey",w="hOP3FL6z",v="auto_pop_up_csat_handover_survey",b="auto_pop_up_csat_swap_survey",_="auto_pop_up_csat_vehicle_survey",y="auto_pop_up_nps_survey",S=(e,t)=>(e.created_at??"").localeCompare(t.created_at??""),x=(e,t,r,n)=>[...e].sort(S).find(e=>!(0,c.Gb)(r,{settingKey:t,dealId:e.id},n)),A=({contactId:e,settings:t,quarterKey:r,impersonationMode:A,recordSetting:N,suppressed:j=!1,surveysEnabled:I=!0})=>{let{activeDeals:O,dealsStatus:k}=(0,s.t)(),{readyForRetentionDeals:T,dealsStatus:M}=(0,u.b)(),P=(0,n.t6)(),D=(0,i.i)(e=>e.track),E=(0,l.useMemo)(()=>x((O??[]).filter(e=>"SWAP_SAME_DAY"!==e.subscribed_as&&(0,c.ds)(e.actual_handover_date,new Date)),d.i9.csatHandoverShownAt,t,A),[O,t,A]),$=(0,l.useMemo)(()=>x((O??[]).filter(e=>"SWAP_SAME_DAY"===e.subscribed_as&&(0,c.ds)(e.actual_handover_date,new Date)),d.i9.csatSwapShownAt,t,A),[O,t,A]),C=(0,l.useMemo)(()=>x((O??[]).filter(e=>(0,c.t7)(e.actual_handover_date,new Date)),d.i9.csatVehicleShownAt,t,A),[O,t,A]),R=(0,l.useMemo)(()=>{let e=[...O??[]].sort(S);return e[e.length-1]?.id??null},[O]),V=(0,l.useMemo)(()=>{if(!I||j||!R||((e,t,r)=>{let n=(0,c.CN)(e,d.i9.trustpilotEligibilityChecked,null,t);if("string"!=typeof n)return!1;let a=Date.parse(n);return!Number.isNaN(a)&&r.getTime()-a<864e5})(t,A,new Date))return!1;let e=[{id:"retention-followup",priority:1,eligible:(T?.length??0)>0,settingKey:d.i9.retentionFollowupShownAt,dealId:null},{id:"csat-handover",priority:2,eligible:void 0!==E,settingKey:d.i9.csatHandoverShownAt,dealId:E?.id??null},{id:"csat-swap",priority:3,eligible:void 0!==$,settingKey:d.i9.csatSwapShownAt,dealId:$?.id??null},{id:"nps",priority:4,eligible:(O?.length??0)>0,settingKey:d.i9.npsShownAt(r),dealId:null},{id:"trustpilot-review",priority:5,eligible:!0,settingKey:d.i9.trustpilotReviewShownAt,dealId:R}],n=(0,c.T4)(e,t,{impersonationMode:A,now:new Date});return n?.id==="trustpilot-review"},[I,j,R,T,E,$,O,r,t,A]),F=(({activeDeals:e,surveysEnabled:t,inContention:r,impersonationMode:i,recordSetting:o})=>{let s=(0,n.t6)(),u=(0,l.useMemo)(()=>e.map(e=>e.id),[e]),c=t&&r,{results:g}=((e,t)=>{let r=[...e].sort().join(","),{data:n}=(0,p.Ay)(t&&r?`/portal/api/bff/trustpilot/eligibility?dealIds=${encodeURIComponent(r)}`:null,e=>fetch(e).then(e=>e.ok?e.json():{data:{results:[]}}),{revalidateOnFocus:!1,shouldRetryOnError:!1});return{results:n?.data?.results??[]}})(u,c),h=(0,l.useRef)(!1);return(0,l.useEffect)(()=>{if(!c||h.current)return;h.current=!0;let e=new Date;o({key:(0,d.a4)(d.i9.trustpilotEligibilityChecked,{impersonationMode:i}),dealId:null,value:e.toISOString(),expiresAt:new Date(e.getTime()+864e5).toISOString()})},[c,o,i]),(0,l.useMemo)(()=>{let t=((e,t)=>{if(e.some(e=>"failed"===e.delayCheck))return null;let r=[...t].sort(m),n=r[r.length-1];if(!n)return null;let a=e.find(e=>e.dealId===n.id);return a?.eligible?n.id:null})(g,e);return{id:"trustpilot-review",priority:5,eligible:null!==t,settingKey:d.i9.trustpilotReviewShownAt,dealId:t,trackingName:"auto_pop_up_trustpilot_review",show:()=>
1(s(a.t.TRUSTPILOT_REVIEW_MODAL,{dealId:t??""}),!0)}},[g,e,s])})({activeDeals:O??[],surveysEnabled:I,inContention:V,impersonationMode:A,recordSetting:N});return(0,l.useMemo)(()=>{let t="success"===k&&"success"===M,n=[...O??[]].sort(S)[0],i=(t,r,n,a,i,l={})=>(0,g.T)({formId:t,hidden:{subscription_id:r?.id??"",contact_id:e??"",score_type:n,score_subtype:a,mode:"default",recipient_type:"customer",source:"customer_portal",...l},onClose:()=>{D(o.fC.MODAL_CLOSED,{name:i})}}),l={id:"retention-followup",priority:1,eligible:(T?.length??0)>0,settingKey:d.i9.retentionFollowupShownAt,dealId:null,suppressionTtlHours:24,trackingName:"auto_pop_up_extend_subscription_selector",show:()=>(P(a.t.RETENTION_MODAL_POPUP),!0)};return I?{candidates:[l,{id:"csat-handover",priority:2,eligible:void 0!==E,settingKey:d.i9.csatHandoverShownAt,dealId:E?.id??null,trackingName:v,show:()=>i(h,E,"CSAT","Handover",v)},{id:"csat-swap",priority:3,eligible:void 0!==$,settingKey:d.i9.csatSwapShownAt,dealId:$?.id??null,trackingName:b,show:()=>i(f,$,"CSAT","Swap",b)},{id:"nps",priority:4,eligible:(O?.length??0)>0,settingKey:d.i9.npsShownAt(r),dealId:null,trackingName:y,show:()=>i(w,n,"NPS","Active",y)},F,{id:"csat-vehicle",priority:6,eligible:void 0!==C,settingKey:d.i9.csatVehicleShownAt,dealId:C?.id??null,trackingName:_,show:()=>i("gAY8bSii",C,"CSAT","Vehicle",_,{oem:C?.car?.oem??"",model:C?.car?.model??""})}],isReady:t}:{candidates:[l],isReady:t}},[O,k,M,T,r,I,e,P,D,E,$,C,F])}},70994:(e,t,r)=>{r.d(t,{l:()=>s});var n=r(54568),a=r(60974),i=r(60233),o=r(58593),l=r(98782);let s=({title:e,description:t,badge:r,showBadge:s=!0,children:u,contentClassName:d,buttonLabel:c=(0,l.h)("step_layout.default_button",{defaultMessage:"Weiter"},{noTags:!0}),buttonDisabled:g=!1,buttonLoading:p=!1,footerNote:m,onNext:h,footerClassName:f})=>(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(i.rQ,{className:"space-y-6",children:[s&&r?(0,n.jsx)(i.L$,{children:r}):null,(0,n.jsx)(i.wt,{children:e}),t?"string"==typeof t?(0,n.jsx)(i.Wn,{children:t}):t:null]}),d?(0,n.jsx)("div",{className:d,children:u}):u,m,(0,n.jsx)(i.jl,{className:(0,o.cn)("!p-0",f),variant:"small",children:(0,n.jsx)(a.$,{disabled:g,loading:p,onClick:h,variant:"primary",children:c})})]})},77049:(e,t,r)=>{r.d(t,{s:()=>o});var n=r(54568),a=r(765),i=r(7620);let o=()=>{let[e,t]=(0,i.useState)(!1);return((0,i.useEffect)(()=>{t("true"===(0,a.gp)(a.cY.IMPERSONATION_ACTIVE))},[]),e)?(0,n.jsx)("div",{className:"z-popover border-red bg-red fixed top-1 left-1 rounded-lg border px-2 py-1 text-white shadow-lg",children:(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)("div",{className:"size-3 animate-pulse rounded-full bg-white"}),(0,n.jsx)("span",{className:"body-12-semibold",children:"Impersonating"})]})}):null}},86483:(e,t,r)=>{r.d(t,{i:()=>l});var n=r(54568),a=r(34188),i=r(51744),o=r(65379);let l=({className:e})=>{let t=(0,i.t)();return!0!==(0,o.h0)()?null:(0,n.jsx)(a.E,{variant:"monochromeBlue",withStroke:!0,className:e,children:t.formatMessage("general.octoberSwapDiscountBadge",{defaultMessage:"-10€ pro Monat"},{noTags:!0})})}},91736:(e,t,r)=>{r.d(t,{v:()=>el});var n=r(54568),a=r(60974),i=r(60233),o=r(66866),l=r(98782),s=r(25895),u=r(98382),d=r(97437),c=r(23601),g=r(42584),p=r(34188),m=r(8828),h=r(3556),f=r(57706),w=r(51744),v=r(86401),b=r(11375),_=r(1956),y=r(28461),S=r.n(y),x=r(7620),A=r(70994),N=r(18672),j=r(27063),I=r(59770),O=r(70642);let k=(e,t)=>{let r=e?.gross;if(void 0!==r)return t?Math.round(e?.net??(0,f.so)(r,!0)):r},T=["early_main_driver_surcharge","early_additional_driver_surcharge",I.t0,"young_additional_driver_surcharge",I.E1,"old_additional_driver_surcharge"],M=[I.sk,I.CE],P=/^(\d+(?:[,.]\d+)?)(\s*\/\s*)?/,D=/kostenfrei.*treuelevel\s+black/i,E=(e,t)=>t(e,{style:"currency",currency:"EUR",minimumFractionDigits:0,maximumFractionDigits:0}),$=({originalValue:e,value:t})=>(0,n.jsxs)("span",{className:"flex items-center justify-end gap-1",children:[e?(0,n.jsx)("span",{className:"text-iron body-14-regular inline-flex items-center line-through before:hidden after:hidden",children:e}):null,(0,n.jsx)("span",{className:"body-14-semibold inline-flex items-center before:hidden after:hidden",children:t})]});var C=r(89718),R=r(67371),V=r(86103),F=r(62109),K=r.n(F),W=r(4572),B=r.
1n(W),Y=r(49017);function L(e,t){return e&&t&&!(t<=e)?Math.floor((1-e/t)*100):0}S().extend(B()),S().extend(K());let U="Europe/Berlin";function H(e){if(!e?.minimum_commitment_end_date)return;let t=S()(e.minimum_commitment_end_date).tz(U);if(!t.isValid())return;let r=S()().tz(U);return t.isBefore(r,"day")?r.add(1,"day"):t.add(1,"day")}let z=({label:e,value:t,badge:r,originalValue:a,subValue:i})=>(0,n.jsxs)(h.Jr,{children:[(0,n.jsxs)(h.bP,{className:"min-w-0 gap-1.5",children:[(0,n.jsx)("span",{children:e}),r?(0,n.jsx)(p.E,{withStroke:!0,variant:"monochromeBlue",children:r}):null]}),(0,n.jsxs)(h.bP,{className:a?"min-w-0 flex-col items-end justify-center gap-1 text-right before:hidden after:hidden":"min-w-0 flex-col items-end justify-center gap-1 text-right",children:[a?(0,n.jsx)($,{originalValue:a,value:t}):(0,n.jsx)("span",{children:t}),i?(0,n.jsx)("span",{className:"text-iron body-12-regular",children:i}):null]})]});var G=r(89532),q=r(17217),J=r(55481),Q=r(18367),Z=r(33400);let X=["selection","overview"];var ee=r(23941);let et=ee.Ik({term:ee.ai(),price:ee.ai(),original_price:ee.ai().optional()}),er=ee.Ik({term:et.optional(),is_confirmed:ee.eu(!0,{errorMap:()=>({message:"Dies ist ein Pflichtfeld."})})}),en=e=>{let t=(0,g.mN)({mode:"onChange",resolver:(0,c.u)(er)});return(0,n.jsx)(g.Op,{...t,children:(0,n.jsx)(ea,{...e})})},ea=e=>{let t=(0,Z.Y)({steps:X,uncountedStep:""});return(0,n.jsx)(d.d,{location:"prolongation",open:e.open,onClose:e.onClose,canGoBack:t.canGoBack,onBack:t.goToPreviousStep,variant:"small",children:(0,n.jsx)(eo,{navigation:t})})},ei={selection:({navigation:e})=>{let t=(0,o.$w)("prolongation")?.dealId,r=(0,u.V)()||t,{data:a,isLoading:i}=(0,Q.S)(r),{data:d}=(0,s.AI)(r??null),{setValue:c,control:m}=(0,g.xW)(),f=(0,g.FH)({name:"term",control:m}),_=(0,v.S)()===b.q.B2B,y=function(e){if(!e||(0,Y.g)(e)||e.followup_subscription_id||e.subscribed_to)return!1;let t=H(e);return!!t&&t.startOf("day").diff(S()().tz(U).startOf("day"),"day")>=30}(d),N=(0,w.t)();(0,x.useEffect)(()=>{a?.prolongation_options?.length&&!f&&c("term",a.prolongation_options[0],{shouldValidate:!0})},[a?.prolongation_options,f,c]);let j=L(f?.price,f?.original_price);return(0,n.jsxs)(A.l,{title:(0,l.h)("prolongation.selection.title",{defaultMessage:"Abo-Verl\xe4ngerung"},{noTags:!0}),description:_?(0,l.h)("prolongation.selection.description_b2b",{defaultMessage:"Bitte w\xe4hlen Sie einen der folgenden m\xf6glichen Zeitr\xe4ume zur Verl\xe4ngerung Ihres Vertrags aus."},{noTags:!0}):(0,l.h)("prolongation.selection.description",{defaultMessage:"Bitte w\xe4hle einen der folgenden m\xf6glichen Zeitr\xe4ume zur Verl\xe4ngerung deines Vertrags aus."},{noTags:!0}),badge:`${e.getCurrentStepNumber()} von ${e.getTotalSteps()}`,buttonDisabled:!f||i,footerNote:y?(0,n.jsx)("div",{children:(0,n.jsx)(q.Hi,{children:(0,n.jsx)(q.Ty,{children:_?(0,l.h)("prolongation.selection.cancellation_note_b2b",{defaultMessage:"Sie k\xf6nnen die Verl\xe4ngerung bis 30 Tage vor Ende Ihres laufenden Abos kostenlos \xfcber unser Account Management stornieren."},{noTags:!0}):(0,l.h)("prolongation.selection.cancellation_note_b2c",{defaultMessage:"Du kannst die Verl\xe4ngerung bis 30 Tage vor Ende deines laufenden Abos kostenlos stornieren."},{noTags:!0})})})},"footer-note"):void 0,onNext:()=>e.goToNextStep(),children:[(0,n.jsx)(J.d,{title:(0,l.h)("prolongation.selection.term_toggle_title_b2b",{defaultMessage:"Vertragslaufzeit, Monate"},{noTags:!0}),value:f?String(f.term):"",onValueChange:e=>{let t=a?.prolongation_options?.find(t=>String(t.term)===e);t&&c("term",t,{shouldValidate:!0})},cols:5,children:a?.prolongation_options?.map(e=>(0,n.jsx)(G.s,{value:String(e.term),variant:"regular",className:"h-12 w-16",renderCustomContent:()=>(0,n.jsx)("span",{className:"body-16-regular",children:e.term})},e.term))}),f?(0,n.jsx)(h.t2,{size:"small",children:(0,n.jsx)(h.fZ,{children:(0,n.jsxs)(h.Jr,{className:"items-center",children:[(0,n.jsxs)(h.bP,{className:"min-w-0 gap-1.5",children:[(0,l.h)("prolongation.selection.monthly_rate_label",{defaultMessage:"Monatliche Rate"},{noTags:!0}),j>0?(0,n.jsx)(p.E,{withStroke:!0,variant:"monochromeBlue",children:(0,l.h)(_?"prolongation.selection.discount_badge_b2b":"prolongation.selection.discount_badge",{defaultMessage:_?"{discount}% Discount":"{discount}% Rabatt",discount:j},{noTags:!0})}):null]}),(0,n.jsx)(h.iD,{className:"flex min-w-0 items-center justify-end text-right before:hidden after:hidden",children:(0,n.jsx)($,{originalValue:j>0&&f?.original_price!==void 0?N.formatNumber(f.original_price,{style:"currency",currency:"EUR",maximumFractionDigits:0}):void 0,value:N.formatNumber(f?.price??0,{style:"currency",currency:"EUR",maximumFractionDigits:0})})})]})})}):null]})},overview:({navigation:e})=>{let t=(0,o.$w)("prolongation")?.dealId,r=(0,u.V)()||t,{data:a}=(0,s.AI)(r||""),{data:i}=(0,N.XM)({vehicleId:a?.car?.external_product_id??"",dealId:r??""}),d=(0,w.t)(),c=(0,v.S)()===b.q.B2B,{control:p}=(0,g.xW)(),y=(0,g.FH)({name:"term",control:p}),I=(0,g.FH)({name:"is_confirmed",control:p}),{handleSubmit:$}=(()=>{let e=(0,o.$w)("prolongation")?.dealId,t=(0,u.V)()||e,{data:r}=(0,s.AI)(t||""),n=(0,v.S)(),{locale:a}=(0,C.n)(),i=(0,o.t6)(),l=(0,o.Hl)();return{handleSubmit:(0,x.useCallback)(async e=>{let o=e?.term;try{if(!e?.is_confirmed)throw Error("Prolongation terms not confirmed");(0,R.sx)("Prolongation Submitted",{dealId:t,term:o?.term,price:o?.price});let i=r?.mileage_package,l=await V.A.post(`/portal/api/bff/deals/${t}/prolongation`,{term:Number(o?.term),amount:o?.price,mileage_package:i,dealId:t},{validateStatus:e=>200===e});if(!l.data.data.dealId)throw Error("Deal ID not found in response");if(n===b.q.B2B){let e=S()(r?.minimum_commitment_end_date).add(Number(o?.term),"month").toISOString();window.location.href=`/car/${t}/prolongation/success?endDate=${e}&price=${o?.price}&kmPackage=${i}&term=${o?.term}`}else window.location.href=`/${a}/checkout/thank_you/${l.data.data.contactId}/${l.data.data.dealId}`}catch(e){l("prolongation"),i("prolongation-failed-modal",void 0,{exclusive:!0}),(0,R.sx)("Prolongation Submit Failed",{dealId:t,error:String(e),term:o?.term,price:o?.price})}},[t,l,i,a,n,r?.mileage_package,r?.minimum_commitment_end_date])}})(),[F,K]=(0,x.useState)(!1),{insurance_type:W,insurance_amount:B}=(0,j.j)({addonsData:i,deal:a,formatNumber:d.formatNumber}),Y=H(a)??S()().tz(U),G=Y.add(y?.term||0,"month"),q=L(y?.price,y?.original_price),J=async()=>{K(!0);try{await $({term:y,is_confirmed:I})}finally{K(!1)}},Q=((e,t)=>{let r=(0,O.cM)(e)?.pricing?.amount;if(r?.gross)return k(r,t)})(i,c),Z=(e=>{if("number"==typeof e)return e;if("string"!=typeof e)return;let t=e.match(P);if(!t)return;let r=Number(t[1].replace(",","."));return Number.isNaN(r)?void 0:r}
1)(B),X=c&&void 0!==Z?(0,f.so)(Z,!0,{round:!0}):Z,ee=(({insuranceAmount:e,isB2B:t,formatNumber:r})=>{if("number"==typeof e)return E(e,r);if("string"!=typeof e)return e??"";if(t&&D.test(e)&&!e.match(P))return"Kostenfrei";let n=e.match(P);if(!n)return e;let a=Number(n[1].replace(",","."));if(Number.isNaN(a))return e;let i=E(a,r);return t?i:e.replace(P,(e,t,r)=>r?`${i}${r}`:i)})({insuranceAmount:Q??(c?X??B:B),isB2B:c,formatNumber:d.formatNumber}),et=(i?.appliedAddons?.groups??[]).filter(e=>!M.includes(e.group?.group_id)).flatMap(e=>(e.addons??[]).filter(e=>!T.includes(e.addon_id)&&e.pricing?.billing_frequency==="monthly"&&(e.pricing?.amount?.gross??0)!==0).map(t=>({key:`${e.group?.group_id}_${t.addon_id}`,label:t.display_info?.title??"",amount:k(t.pricing?.amount,c)??0}))),er=y?.price!==void 0?(({termPrice:e,insuranceAmount:t,carriedOverAddons:r})=>e+(t??0)+r.reduce((e,t)=>e+t.amount,0))({termPrice:y.price,insuranceAmount:Q??X,carriedOverAddons:et}):void 0,en=e=>d.formatNumber(e,{style:"currency",currency:"EUR",maximumFractionDigits:0}),ea=e=>c?(0,l.h)("prolongation.overview.vat_note_b2b",{defaultMessage:"exkl. MwSt."},{noTags:!0}):void 0!==e?(0,l.h)("prolongation.overview.vat_note",{defaultMessage:"davon MwSt. {amount}",amount:d.formatNumber(function(e,t=.19){return e-e/(1+t)}(e),{style:"currency",currency:"EUR"})},{noTags:!0}):void 0,ei=y&&!c?ea(y.price):void 0,eo=void 0!==er?ea(er):void 0;return(0,n.jsxs)(A.l,{title:(0,l.h)("prolongation.overview.title",{defaultMessage:"Verl\xe4ngerung best\xe4tigen"},{noTags:!0}),badge:`${e.getCurrentStepNumber()} von ${e.getTotalSteps()}`,buttonLabel:(0,l.h)("prolongation.overview.button_label",{defaultMessage:"Verl\xe4ngerung best\xe4tigen"},{noTags:!0}),buttonDisabled:!I||F,buttonLoading:F,onNext:J,children:[(0,n.jsx)(h.t2,{size:"small",children:(0,n.jsxs)(h.fZ,{children:[(0,n.jsx)(z,{label:(0,l.h)("prolongation.overview.vehicle_label",{defaultMessage:"Fahrzeug"},{noTags:!0}),value:`${a?.car?.oem??""} ${a?.car?.model??""}`}),c?(0,n.jsx)(z,{label:(0,l.h)("prolongation.overview.driver_label",{defaultMessage:"Fahrerin / Fahrer"},{noTags:!0}),value:`${a?.handover_firstname??""} ${a?.handover_lastname??""}`}):null,(0,n.jsx)(z,{label:(0,l.h)("prolongation.overview.duration_label",{defaultMessage:"Verl\xe4ngerungsdauer"},{noTags:!0}),value:y?(0,l.h)("prolongation.overview.months_value",{defaultMessage:"{term} Monate",term:y.term},{noTags:!0}):""}),(0,n.jsx)(z,{label:(0,l.h)("prolongation.overview.mileage_label",{defaultMessage:"Inklusivkilometer"},{noTags:!0}),value:a?.mileage_package?d.formatNumber(a.mileage_package,{style:"unit",unit:"kilometer",maximumFractionDigits:0}):""}),(0,n.jsx)(z,{label:(0,l.h)("prolongation.overview.start_date_label",{defaultMessage:"Startdatum"},{noTags:!0}),value:Y.format("DD.MM.YYYY")}),(0,n.jsx)(z,{label:(0,l.h)("prolongation.overview.end_date_label",{defaultMessage:"Enddatum"},{noTags:!0}),value:G.format("DD.MM.YYYY")}),(0,n.jsx)(z,{label:W??"",value:ee}),et.map(e=>(0,n.jsx)(z,{label:e.label,value:en(e.amount)},e.key)),(0,n.jsx)(z,{label:(0,l.h)("prolongation.overview.monthly_rate_label",{defaultMessage:"Monatliche Rate"},{noTags:!0}),badge:q>0?(0,l.h)(c?"prolongation.overview.discount_badge_b2b":"prolongation.overview.discount_badge",{defaultMessage:c?"{discount}% Discount":"{discount}% Rabatt",discount:q},{noTags:!0}):void 0,originalValue:q>0&&y?.original_price!==void 0?en(y.original_price):void 0,value:y?.price!==void 0?en(y.price):"",subValue:ei}),void 0!==er?(0,n.jsx)(z,{label:(0,l.h)("prolongation.overview.total_label",{defaultMessage:"Gesamt pro Monat"},{noTags:!0}),value:en(er),subValue:eo}):null]})}),(0,n.jsx)(g.xI,{name:"is_confirmed",control:p,render:({field:e,fieldState:t})=>(0,n.jsx)(m.S,{id:"is_confirmed",checked:e.value??!1,onCheckedChange:e.onChange,error:!!t.error,label:(0,_.Kk)((0,l.h)("prolongation.overview.terms_label_v2",{defaultMessage:'Durch die Best\xe4tigung der Verl\xe4ngerung stimme ich den <a target="_blank" rel="noopener noreferrer" href="https://www.finn.com/de-DE/terms">AGB</a> zu. Ich habe das <a target="_blank" rel="noopener noreferrer" href="https://www.finn.com/public-files/Gebuehrenkatalog_FINN.pdf">Preis- und Leistungsverzeichnis</a> zur Kenntnis genommen.'},{noTags:!0})),labelClassName:"body-14-light [&_p]:body-14-light"})})]})}},eo=({navigation:e})=>{let t=ei[e.currentStep];return t?(0,n.jsx)(t,{navigation:e}):null},el=()=>{let e=(0,o.$w)("prolongation")?.dealId,t=(0,u.V)()||e,{data:r}=(0,s.AI)(t||""),a=r?.subscribed_to==="PROLONGATION";return(0,n.jsx)(o.Bs,{modalKey:"prolongation",renderModal:(e,r)=>t?a?(0,n.jsx)(d.d,{open:e,onClose:r,location:"prolongation",children:(0,n.jsx)(es,{})}):(0,n.jsx)(en,{open:e,onClose:r}):(0,n.jsx)("div",{})})},es=()=>(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(i.rQ,{className:"space-y-6",children:[(0,n.jsx)(i.wt,{children:(0,l.h)("prolongation.already_prolonged.title",{defaultMessage:"Vielen Dank f\xfcr deine Verl\xe4ngerung"},{noTags:!0})}),(0,n.jsx)("span",{className:"body-16-light",children:(0,l.h)("prolongation.already_prolonged.description",{defaultMessage:"Du hast dein Abo bereits erfolgreich verl\xe4ngert. Viel Spa\xdf beim Weiterfahren!"},{noTags:!0})})]}),(0,n.jsx)(i.jl,{children:(0,n.jsx)(a.$,{variant:"primary",href:"mycars",children:(0,l.h)("prolongation.already_prolonged.button_label",{defaultMessage:"Zu meinen Abos"},{noTags:!0})})})]})},94301:(e,t,r)=>{r.d(t,{m:()=>v});var n=r(54568),a=r(57392),i=r(765),o=r(79748),l=r(18658),s=r(96971),u=r(36299);let d=/^\d{4}Q[1-4]$/,c=e=>{try{return window.localStorage.getItem(e)}catch{return null}},g=e=>{try{window.localStorage.removeItem(e)}catch{}},p=async({contactId:e,settings:t,recordSetting:r})=>{let n=[...(e=>{let t=`b2c_typeform_quarterly_survey_${e}_`,r=[],n=[];try{n=Object.keys(window.localStorage)}catch{return r}for(let e of n){if(!e.startsWith(t))continue;let n=e.slice(t.length);if(!d.test(n))continue;if("shown"!==c(e)){g(e);continue}let a=u.i9.npsShownAt(n);
1r.push({settingKey:a,value:new Date().toISOString(),shouldWrite:e=>void 0===e.user[a],cleanup:()=>g(e)})}return r})(e),(()=>{let e=c(i.cY.PORTAL_AUTO_POPUP_SHOWN);if(!e)return null;let t={};try{t=JSON.parse(e)}catch{return g(i.cY.PORTAL_AUTO_POPUP_SHOWN),null}let r="number"==typeof t.expiry&&Date.now()>t.expiry;if("true"!==t.value||r)return g(i.cY.PORTAL_AUTO_POPUP_SHOWN),null;let n="number"==typeof t.expiry?new Date(t.expiry-864e5):new Date;return{settingKey:u.i9.lastAutoPopupShownAt,value:n.toISOString(),expiresAt:new Date(n.getTime()+864e5).toISOString(),shouldWrite:e=>{let t=e.user[u.i9.lastAutoPopupShownAt];if("string"!=typeof t)return!0;let r=Date.parse(t);return Number.isNaN(r)||r<n.getTime()},cleanup:()=>g(i.cY.PORTAL_AUTO_POPUP_SHOWN)}})(),(()=>{if(!(0,s.MW)(s.$K.RETENTION_POPUP_SHOWED))return null;let e=u.i9.retentionFollowupShownAt;return{settingKey:e,value:new Date().toISOString(),expiresAt:new Date(Date.now()+864e5).toISOString(),shouldWrite:t=>void 0===t.user[e],cleanup:()=>(0,s.d5)(s.$K.RETENTION_POPUP_SHOWED)}})()].filter(e=>null!==e),a=!1;for(let e of n){if(!e.shouldWrite(t)){e.cleanup();continue}await r({key:e.settingKey,dealId:null,value:e.value,expiresAt:e.expiresAt})&&(e.cleanup(),a=!0)}return a};var m=r(9119),h=r(39588),f=r(67684);let w=e=>e.includes("/checkout/"),v=({suppressed:e=!1,surveysEnabled:t=!0})=>{let[r,s]=(0,a.wV)(),u=r?.user?.hs_contact_id,d=(0,o.useSearchParams)(),c=!!d?.get("modalName"),g=(0,h._8)(),v="true"===(0,i.gp)(i.cY.IMPERSONATION_ACTIVE),b="yes"===(0,i.gp)(i.cY.ALLOW_IMPERSONATION_POPUPS),{candidates:_,isReady:y}=(0,f.rb)({contactId:u,settings:g.settings,quarterKey:(0,m.Ow)(new Date),impersonationMode:v&&b,recordSetting:g.recordSetting,suppressed:e||c,surveysEnabled:t});return(0,n.jsx)(l.W,{userId:u,isUserLoading:s,candidates:_,candidatesReady:y,settingsSource:g,suppressed:e||c,isExcludedPathname:w,runLegacyMigration:({userId:e,settingsSource:t})=>p({contactId:e,settings:t.settings,recordSetting:t.recordSetting})})}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.