1import{u as Ya,f as Ha,c as za,g as Xa}from"./useAffordability-PYb0f1Le.js";import{g as Ja}from"./ssd-iZOtVz90.js";import{a as Qa}from"./bsdAbsd-DL3673rr.js";import{u as Za,a as et}from"./useHipUser-DE9s0Lpo.js";import{u as at}from"./useProgressiveTimeline-DgnrVnHi.js";import{_ as tt}from"./AppLayout.vue_vue_type_script_setup_true_lang-sYMe53Cw.js";import{i as lt,p as B,j as ut,e as ea,w as aa,a as ta,b as de,o as la,u as fe,n as u,B as l,s as Re,A as nt}from"./app-mFI3VYmo.js";import"./debounce-DvcxFQhK.js";import{_ as rt}from"./ModalDialog.vue_vue_type_script_setup_true_lang-C-SMl-Bg.js";import{f}from"./FormatNumber-DtJYAcXm.js";import{_ as ot}from"./ListModalDialog.vue_vue_type_script_setup_true_lang-D-dKjxUq.js";import{_ as st}from"./Applicant.vue_vue_type_script_setup_true_lang-AeFWRy0v.js";import{_ as it}from"./ProgressiveTimeline.vue_vue_type_script_setup_true_lang-D4xGz1AV.js";import{_ as vt}from"./PaymentBreakdownCard.vue_vue_type_script_setup_true_lang-ByjZBnjt.js";import"./HuttonsLogo-BWFvgf73.js";import"./_plugin-vue_export-helper-DlAUqK2U.js";import"./Button.vue_vue_type_script_setup_true_lang-k3cvwrGg.js";import"./Spinner.vue_vue_type_script_setup_true_lang-CpQlG5al.js";import"./FormInput.vue_vue_type_script_setup_true_lang-Bd0O0_MO.js";import"./FormLabel.vue_vue_type_script_setup_true_lang-CaK9M24a.js";import"./Notification.vue_vue_type_script_setup_true_lang-BudQsNki.js";import"./FullwidthContainer.vue_vue_type_script_setup_true_lang-CfII7n0c.js";import"./QuickShareTemplate.vue_vue_type_script_setup_true_lang-DFspPHlS.js";import"./Card.vue_vue_type_script_setup_true_lang-Be3n1fxU.js";import"./Heading.vue_vue_type_script_setup_true_lang-BrV_tX0v.js";import"./FormatDateTime-DEivd2nb.js";import"./Charts.vue_vue_type_script_setup_true_lang-DUZ--prt.js";import"./DividerWithLabel.vue_vue_type_script_setup_true_lang-BqWjne_a.js";/* empty css */import"./portal-DKmILsax.js";import"./keyboard-DKN2DtMa.js";import"./Toggle.vue_vue_type_script_setup_true_lang-Dy-_DvGE.js";import"./TabBar.vue_vue_type_script_setup_true_lang-C5DRzsGt.js";import"./AssessableMonthlyCommitments.vue_vue_type_script_setup_true_lang-BGBFN_SW.js";import"./AssessableMonthlyIncome.vue_vue_type_script_setup_true_lang-BF30irUz.js";import"./SuperPalExplainAssessableIncome.vue_vue_type_script_setup_true_lang-CRdZacyr.js";import"./LinkIcon.vue_vue_type_script_setup_true_lang-D1PuBQoA.js";import"./SuperPal.vue_vue_type_script_setup_true_lang-BwTIxwLp.js";import"./FormDateInlineEdit.vue_vue_type_script_setup_true_lang-BSyVBT7-.js";import"./FormDatePicker.vue_vue_type_script_setup_true_lang-BSmYiTbI.js";import"./Slider-BwC22c_4.js";const ct={class:"flex flex-col gap-y-6"},mt={class:"p-4"},Q=30,Z=90,dt=5.5,ee=2.18,ae=55,te=30,pe="New Launch Purchase | Executive Condo",tl=lt({__name:"index",setup(ft){const r=u(0),p=u(ee),g=u(!0),q=u(!1),L=u(ae),M=u(te),N=u(0),he=u(1),be=u(4),_=u(!1),ge=u(!1),x=Ya(),{buyers:m,purchaseMode:Ne}=x,ua=l(()=>(x.sessions?.value?.length??0)>0),{incomeWeightedAverageAge:k}=Xa(m),Ie=l(()=>m.value.reduce((e,a)=>e+(a.assessableIncome||0),0)),Fe=l(()=>m.value.reduce((e,a)=>e+(a.carLoan||0)+(a.housingLoan||0)+(a.creditCards||0)+(a.otherLoans||0),0)),le=l(()=>k.value?Ha("HDB",k.value):Q),K=l(()=>Q),D=l(()=>Math.min(N.value,K.value));B(le,(e,a)=>{const t=e||Q,n=N.value;(n<=0&&a==null||n===(a||0)||n>K.value)&&(N.value=t)},{immediate:!0});const G=l(()=>{const a=k.value+D.value;return za(0,a,D.value)}),y=u(0),E=u(!1),h=u(null),j=u(!1),ue=u(0),C=l(()=>Z),W=l(()=>Math.max(0,Math.min(Number(y.value||0),C.value)));B(G,e=>{const a=Math.max(0,Math.min(Number(e||0),Z)),t=Number(y.value||0);!E.value&&t!==a&&(y.value=a)},{immediate:!0}),B(C,(e,a)=>{const t=Number(y.value||0),n=a!==void 0&&t===Number(a),o=t>Number(e),c=n&&Number(e)>Number(a);(o||c)&&(y.value=Number(e),E.value=!1,j.value=!1,ue.value++)},{immediate:!0});const ne=e=>{y.value=Math.max(0,Math.min(Number(e||0),C.value))},na=e=>{ne(Number(e||0)),h.value=null,E.value=!0},ra=e=>{ne(Number(e||0)),h.value=null,E.value=!0,j.value=!1,ue.value++},Be=()=>{ne(Number(G.value||0)),h.value=null,E.value=!1,j.value=!1,ue.value++},re=e=>{const a=Number(e||0),t=Number.isNaN(a)?0:Math.max(0,Math.floor(a)),n=r.value;if(!n){h.value=0,y.value=0;return}const o=Math.floor(n*(C.value/100)),c=Math.max(0,Math.min(t,o));h.value=c,ne(Math.round(c/n*100)),E.value=!0},oa=l(()=>Math.floor(r.value*(W.value/100))),_e=u(!1),oe=u(!1),se=u(!1),ye=u(!1),Pe=u(!1),ie=u(!1),Se=u(!1),ke=u(!1),sa=u(!1),Le=u(0),Me=u(0),Ge=u(0),Ue=u(0),Oe=u(0),Te=u(0),i=u(0),R=u(!1),xe=l(()=>{if(!A.value)return 0;const e=Math.max(A.value-i.value,0);return e<1e3?0:e}),U=l(()=>A.value<=0?Math.floor(r.value):Math.floor(r.value-A.value)),Ve=l(()=>Math.max(0,Math.round(100-Number(W.value||0)))),Ee=l(()=>Number(W.value||0)<=55?10:5),Y=l(()=>Math.floor(r.value*(Ee.value/100))),ve=l(()=>Math.max(U.value-Y.value,0)),ia=l(()=>{const e=i.value,a=p.value/100/12,t=D.value*12;if(!e||!a||!t)return 0;const n=Math.pow(1+a,t);return e*a*n/(n-1)}),va=l(()=>k.value?`${k.value}`:"-"),ca=l(()=>Math.floor(Ie.value*(Number(L.value||0)/100))),ma=l(()=>Math.max(ca.value-Fe.value,0)),da=l(()=>Math.floor(Ie.value*(Number(M.value||0)/100))),fa=l(()=>Math.max(da.value-Fe.value,0)),A=l(()=>{if(!g.value||!r.value||W.value<=0)return 0;const e=oa.value||0;return h.value===null?e:Math.max(0,Math.min(Math.floor(h.value),Math.floor(r.value*(C.value/100))))}),H=l(()=>{if(!g.value||!r.value)return 0;const e=Math.max(0,Math.min(Number(G.value||0),C.value));return e<=0?0:Math.floor(r.value*(e/100))});B([r,C],([e,a])=>{if(h.value===null)return;if(!e||a<=0){h.value=0;return}const t=Math.floor(e*(a/100));h.value=Math.max(0,Math.min(Math.floor(h.value),t))}),B(A,e=>{if(!R.value){i.value=e;return}i.value>e&&(i.value=e)},{immediate:!0});const pa=l(()=>`${Number(L.value||0)}%`),ha=l(()=>`${Number(M.value||0)}%`),ba=l(()=>`S$${f(ma.value??0,{decimalPoints:0,locale:"en-SG"})}<sup>*</sup>`),ga=l(()=>`S$${f(fa.value??0,{decimalPoints:0,locale:"en-SG"})}<sup>*</sup>`),O=u(void 0),V=u(void 0),Na=l(()=>`S$${f(A.value??0,{decimalPoints:0,locale:"en-SG"})}`),ya=l(()=>D.value?`${D.value} years`:"-"),Pa=l(()=>m.value.map(e=>{const a=Math.max(0,Number(e.existingProperties??e.existingLoans??0));return a===0?"FIRST":a===1?"SECOND":"THIRD_PLUS"})),qe=l(()=>m.value.map(e=>e?.nationality).filter(e=>e==="SINGAPOREAN"||e==="PR"||e==="FOREIGN")),d=l(()=>{const e=Number(r.value||0);return e<=0?{bsd:0,absd:0,total:0}:Qa(e,qe.value.length?qe.value:["SINGAPOREAN"],Pa.value,{foreignFtaEligible:m.value.map(a=>!!(a.isForeignFtaEligible??!1)),marriedToSingaporeCitizen:m.value.map(a=>!!(a.isMarriedToSingaporeCitizen??!1)),purchaseMode:Ne.value})}),Ke=l(()=>`S$${f(d.value.bsd??0,{decimalPoints:0,locale:"en-SG"})}`),je=l(()=>`S$${f(d.value.absd??0,{decimalPoints:0,locale:"en-SG"})}`),ce=l(()=>d.value.absd??0),Ae=l(()=>!r.value||!ce.value?0:Math.round(ce.value/r.value*100)),P=u(0);B(r,e=>{e>0&&P.value===0&&(P.value=3e3)}),B(r,()=>{R.value=!1});const $=u(0),I=u(!0),T=u(!1),We=u("ec"),{timeline:z}=at({price:()=>r.value,buyerStampDuty:()=>d.value.bsd??0,foundationBeforeSP:T,propertyType:We}),S=l(()=>{const e=z.value??[];if(e.length<3)return e;const a=e[1],t=e[2];
1if(!(String(a?.stage??"").includes("Exercise S&P")&&String(t?.stage??"").includes("S&P Completion")))return e;const o={...t,stage:"Exercise S&P (15%)",displayDate:"S&P + 8 weeks"};let c=[e[0],o,...e.slice(3)];return c=c.flatMap(s=>{const v=String(s?.stage??"");if(v.includes("Foundation Complete"))return[{...s,stage:"Upon Foundation (10%)"}];if(v.includes("Reinforced Concrete Framework Complete"))return[{...s,stage:"Upon Concrete Framework (10%)"}];if(v.includes("Partition Walls Complete"))return[{...s,stage:"Upon Brick Wall (5%)"}];if(v.includes("Roofing / Ceiling Complete"))return[{...s,stage:"Upon Ceiling (5%)"}];if(v.includes("Door, Window, Electrical Complete")){const b=Number(s?.amount??0)/2;return[{...s,stage:"Upon Interior, Electrical Plant / AC (5%)",amount:b}]}return v.includes("Car Park, Road & Drains Complete")?[{...s,stage:"Upon Roads / Drains / Carpark (5%)"}]:v.includes("Legal Completion Date")?[{...s,stage:"Legal Completion Date (CSC) (15%)",amount:Number(s?.amount??0)*1.5}]:[s]}),c}),Sa=e=>{if(z.value?.length&&e?.length){const a=[...z.value];a[0]={...a[0],date:e[0]?.date??a[0]?.date},z.value=a;return}z.value=[...e]},Ye=l(()=>!g.value||A.value<=0?r.value+(d.value.bsd||0)+(d.value.absd||0)+P.value+$.value:Y.value+ve.value+xe.value+(d.value.bsd||0)+(d.value.absd||0)+P.value+$.value),X=l(()=>{const e=Math.round(Ye.value??0);return`S$${f(e,{decimalPoints:0,locale:"en-SG"})}`}),La=l(()=>{const e=Math.round(r.value??0);return`S$${f(e,{decimalPoints:0,locale:"en-SG"})}`}),He=l(()=>`${W.value??0}%`),Ma=l(()=>`S$${f(ia.value??0,{decimalPoints:0,locale:"en-SG"})}`),{getAgentSignature:Ta}=Za(),{user:xa,fetchUser:Ea}=et(),$e=async()=>{const e=Re().current();e&&await x.fetchSessions(e)},Aa=()=>{const e=m.value??[];if(e.length!==1)return;const a=e[0];Number(a?.age??21)===21&&(a?.nationality??"SINGAPOREAN")==="SINGAPOREAN"&&Number(a?.income??0)===0&&Number(a?.variableIncome??0)===0&&Number(a?.carLoan??0)===0&&Number(a?.housingLoan??0)===0&&Number(a?.creditCards??0)===0&&Number(a?.otherLoans??0)===0&&Number(a?.ordinaryAccount??0)===0&&Number(a?.existingLoans??0)===0&&Number(a?.existingProperties??0)===0&&!(a?.isForeignFtaEligible??!1)&&m.value.splice(0,m.value.length)};ut(async()=>{await Ea(),await $e(),Aa()});const ze=l(()=>!m.value.some(a=>Number(a?.age??21)!==21||(a?.nationality??"SINGAPOREAN")!=="SINGAPOREAN"||Number(a?.income??0)>0||Number(a?.variableIncome??0)>0||Number(a?.assessableIncome??0)>0||Number(a?.carLoan??0)>0||Number(a?.housingLoan??0)>0||Number(a?.creditCards??0)>0||Number(a?.otherLoans??0)>0||Number(a?.ordinaryAccount??0)>0||Number(a?.existingLoans??0)>0||Number(a?.existingProperties??0)>0||!!(a?.isForeignFtaEligible??!1)||!!(a?.isMarriedToSingaporeCitizen??!1))&&Ne.value==="INDIVIDUAL"&&r.value===0&&g.value===!0&&p.value===ee&&L.value===ae&&M.value===te&&N.value===le.value&&y.value===Math.max(0,Math.min(Number(G.value||0),Z))&&i.value===0&&P.value===0&&$.value===0&&O.value===void 0&&V.value===void 0&&I.value===!0&&T.value===!1),me=e=>{if(!e)return null;const a=e.split("/");if(a.length===3){const n=Number(a[0]),o=Number(a[1])-1,c=Number(a[2]),s=new Date(c,o,n);if(!Number.isNaN(s.getTime()))return s}const t=new Date(e);return Number.isNaN(t.getTime())?null:t},$a=l(()=>{const e=me(O.value),a=me(V.value);if(!e||!a||a<e)return null;const t=1e3*60*60*24;return Math.floor((a.getTime()-e.getTime())/t)}),De=l(()=>{const e=me(O.value),a=me(V.value);return!e||!a?null:Ja(e,a)}),Xe=l(()=>!r.value||r.value<=0||De.value===null?null:r.value*De.value),J=l(()=>(r.value??0)>0),Da=l(()=>{if(!J.value)return;const e=we.value.map(a=>{if(a.title==="Progressive Schedule"){const n=a.rows.map(o=>`${o.label} 2${o.value}`).join(` 3 4`);return`${a.title}: 5${n}`}const t=a.rows.map(n=>`${n.label}: ${n.value}`).join(` 6`);return`${a.title}: 7${t}`}).join(` 8 9`);return`${pe} 10 11Initial Total Cash Outlay: ${X.value} 12 13${e} 14 15${Ta()}`}),Ca=l(()=>{if(!J.value)return;const e=we.value.map(a=>{if(a.title==="Progressive Schedule"){const n=a.rows.map(o=>`${o.label} 16${o.value}`).join(` 17 18`);return`${a.title}: 19${n}`}const t=a.rows.map(n=>`${n.label}: ${n.value}`).join(` 20`);return`${a.title}: 21${t}`}).join(` 22 23`);return`${pe} 24 25Initial Total Cash Outlay: ${X.value} 26 27${e}`}),Ce=e=>{if(!e)return"";const a=new Date(e);return Number.isNaN(a.getTime())?"":a.toLocaleDateString("en-SG",{day:"numeric",month:"short",year:"numeric"})},wa=(e,a)=>
27!I.value||T.value&&a===2&&e.stage.includes("Foundation Complete")?"":e.stage.includes("S&P Completion")?T.value?Ce(S.value[a]?.date):e.displayDate||Ce(S.value[a]?.date):e.displayDate?e.displayDate:Ce(S.value[a]?.date),Ra=e=>{let a=Number(U.value??0);for(let t=0;t<=e;t++){const n=Number(S.value[t]?.amount??0);if(a>0){const o=Math.min(a,n);if(a-=o,t===e)return o}else if(t===e)return 0}return 0},Ia=e=>{let a=Number(U.value??0),t=0;for(let v=0;v<=e;v++){const b=Number(S.value[v]?.amount??0);if(a>0){const F=Math.min(a,b);a-=F,F<b&&(t+=b-F)}else t+=b}const n=S.value.reduce((v,b)=>v+Number(b?.amount??0),0),o=Math.max(0,n-Number(U.value??0)),c=Math.max(0,Number(i.value??0)),s=c>0?c:o;return Math.min(t,s)},Fa=(e,a)=>{if(!e)return 0;const t=Number(p.value??0)/100/12,n=Number(D.value??0)*12;if(!t||!n)return 0;const o=Number(S.value.reduce((b,F)=>b+Number(F?.amount??0),0))-Number(U.value??0),c=Math.max(0,Number(i.value??0)),s=c>0?c:o;if(s<=0)return 0;const v=s*t*Math.pow(1+t,n)/(Math.pow(1+t,n)-1);return a<S.value.length-1?e/s*v:v},w=e=>{const a=Number(e??0);return a?`S$${f(a,{decimalPoints:0,locale:"en-SG"})}`:"-"},Ba=l(()=>S.value.filter((e,a)=>!(T.value&&a===2&&e.stage.includes("Foundation Complete"))).map(e=>{const a=S.value.findIndex(F=>F===e),t=wa(e,a),n=w(Number(e.amount??0)),o=Ia(a),c=Fa(o,a),s=e.stage.includes("Exercise S&P"),v=(a===0?[]:[`Payment ${w(Number(e.amount??0))}`,...s?[`Buyer Stamp Duty ${w(d.value.bsd??0)}`,...(d.value.absd??0)>0?[`Additional Buyer Stamp Duty ${w(d.value.absd??0)}`]:[]]:[],...a===1?[]:[`Cash ${w(Ra(a))}`,...g.value?[`Loan ${w(o)}`,`Installment ${w(c)}`]:[]]]).join(` 28`),b=[`${a+1}. ${e.stage}`];return t&&b.push(t),v&&b.push(v),{label:b.join(` 29`),value:n}})),_a=l(()=>{const e=[];return g.value&&A.value>0?(e.push({label:`${Ve.value}% Down Payment`,value:`S$${f(Y.value+ve.value,{decimalPoints:0,locale:"en-SG"})}`}),e.push({label:`Cash (${Ee.value}%)`,value:`S$${f(Y.value,{decimalPoints:0,locale:"en-SG"})}`}),e.push({label:"Remaining Down Payment (Cash / CPF)",value:`S$${f(ve.value,{decimalPoints:0,locale:"en-SG"})}`}),xe.value>0&&e.push({label:"Cash Top-up",value:`S$${f(xe.value,{decimalPoints:0,locale:"en-SG"})}`})):e.push({label:"Full Cash Payment",value:`S$${f(r.value??0,{decimalPoints:0,locale:"en-SG"})}`}),e.push({label:"Stamp Duty",value:`S$${f(d.value.total??0,{decimalPoints:0,locale:"en-SG"})}`}),e.push({label:"BSD",value:Ke.value}),(d.value.absd??0)>0&&e.push({label:`ABSD (${Ae.value}%)`,value:je.value}),e.push({label:"Resale Levy",value:w($.value)}),e.push({label:"Legal Fee",value:`S$${f(P.value,{decimalPoints:0,locale:"en-SG"})}`}),e.push({label:"Total",value:X.value}),e}),we=l(()=>[{title:"Initial Cash Outlay",rows:_a.value},...g.value?[{title:"Bank Loan",rows:[{label:"Property Price",value:`S$${f(r.value??0,{decimalPoints:0,locale:"en-SG"})}`},{label:"Loan To Value (LTV)",value:He.value},{label:"Interest Rate (p.a)",value:`${Number(p.value||0).toFixed(2)}%`},{label:"Loan Tenure",value:ya.value},{label:"Loan Amount",value:Na.value}]}]:[],{title:"Progressive Schedule",rows:Ba.value}]),ka=l(()=>J.value?{title:"Initial Total Cash Outlay",resultLabel:"Initial Total Cash Outlay",resultValue:X.value,pageTitle:pe,sections:we.value,agent:xa.value??void 0}:null),Je=l(()=>({propertyPrice:r.value,bankFloorRate:p.value,bankLoanEnabled:g.value,hideSlider:q.value,requestedTdsrPercent:L.value,requestedMsrPercent:M.value,requestedTenureYear:N.value,requestedLtvPercent:y.value,isUserAdjustingLtv:E.value,manualMaxLoanAmount:h.value,selectedLoanAmount:i.value,legalFee:P.value,resaleLevy:$.value,showDates:I.value,foundationBeforeSP:T.value,otpPercent:he.value,exercisePercent:be.value,purchaseDate:O.value,saleDate:V.value,buyers:JSON.parse(JSON.stringify(x.buyers.value)),buyerCount:x.buyers.value.length,purchaseMode:Ne.value,result:Xe.value!==null?{ssdAmount:Xe.value,ssdRate:De.value,holdingPeriodInDays:$a.value}:null})),Ga=async e=>{const a=await nt.post(Re("api.calculator.v1.sessions.save"),{RouteName:Re().current(),Snapshot:Je.value,Version:"v1",Title:e.title,AccessPassword:e.accessPassword,NeverExpires:e.neverExpires});return await $e(),a},Ua=e=>{e&&(r.value=e.propertyPrice??0,p.value=e.bankFloorRate??ee,g.value=e.bankLoanEnabled??!0,q.value=e.hideSlider??!1,L.value=e.requestedTdsrPercent??ae,M.value=e.requestedMsrPercent??te,N.value=e.requestedTenureYear??(le.value||Q),y.value=e.requestedLtvPercent??Math.max(0,Math.min(Number(G.value||0),Z)),E.value=e.isUserAdjustingLtv??!1,h.value=e.manualMaxLoanAmount??null,i.value=e.selectedLoanAmount??0,P.value=e.legalFee??0,$.value=e.resaleLevy??0,I.value=e.showDates??!0,T.value=e.foundationBeforeSP??!1,he.value=e.otpPercent??1,be.value=e.exercisePercent??4,O.value=e.purchaseDate??void 0,V.value=e.saleDate??void 0,x.loadSnapsh
29ot(e),(!Array.isArray(e?.buyers)||e.buyers.length===0)&&m.value.splice(0,m.value.length))},Oa=e=>{x.loadProfileSnapshot(e)},Qe=e=>{Oa(e),_.value=!0},Va=()=>{x.addBuyer(),_.value=!0},qa=()=>{if((m.value?.length??0)>0){_.value=!0;return}_.value=!0},Ka=()=>{ge.value=!0},Ze=()=>{x.reset(),r.value=0,p.value=ee,g.value=!0,q.value=!1,L.value=ae,M.value=te,N.value=le.value||Q,y.value=Math.max(0,Math.min(Number(G.value||0),Z)),E.value=!1,h.value=null,i.value=0,P.value=0,$.value=0,I.value=!0,T.value=!1,he.value=1,be.value=4,O.value=void 0,V.value=void 0,m.value.splice(0,m.value.length)},ja=l(()=>({propertyPrice:r.value,applicantCount:m.value.length,bankLoanEnabled:g.value,hideSlider:q.value,incomeWeightedAverageAge:k.value,formattedIwaa:va.value,isEditingPropertyPrice:_e.value,isEditingLoanToValue:j.value,loanToValueEditorKey:ue.value,requestedLtvPercent:y.value,currentLtvCap:C.value,isEditingTdsr:oe.value,tdsrEditorKey:Le.value,requestedTdsrPercent:L.value,formattedTdsr:pa.value,formattedTdsrAmount:ba.value,isEditingMsr:se.value,msrEditorKey:Me.value,requestedMsrPercent:M.value,formattedMsrPercent:ha.value,formattedMsrAmount:ga.value,isEditingLoanTenure:Pe.value,loanTenureEditorKey:Ge.value,requestedTenureYear:N.value,maxTenureYear:K.value,isEditingInterestRate:ye.value,interestRateEditorKey:Ue.value,bankFloorRate:p.value,formattedMaxPropertyPrice:La.value,formattedLtv:He.value,isEditingMaxLoan:ie.value,maxLoanEditorKey:Te.value,maxLoanAmount:A.value,bankLoanCapAmount:H.value,defaultMaxLoanAmount:H.value,isEditingBankLoan:Se.value,bankLoanEditorKey:Oe.value,selectedLoanAmount:i.value,formattedMonthlyInstallment:Ma.value,downpaymentPercent:Ve.value,minimumCashPercent:Ee.value,downpaymentCash:Y.value,downpaymentCpf:ve.value,stampDutyTotal:d.value.total??0,formattedBsd:Ke.value,absdAmount:ce.value,absdRate:Ae.value,formattedAbsd:je.value,isEditingResaleLevy:sa.value,resaleLevy:$.value,isEditingLegalFee:ke.value,legalFee:P.value,formattedInitialOutlay:X.value,totalInitialOutlay:Ye.value})),Wa={updatePropertyPrice:e=>{r.value=Number(e)},addApplicant:()=>{Va()},openApplicants:()=>{qa()},loadProfile:()=>{Ka()},setEditingPropertyPrice:e=>{_e.value=e},toggleBankLoan:e=>{g.value=e},toggleHideSlider:e=>{q.value=e},updateLtv:e=>{na(e)},setEditingLoanToValue:e=>{j.value=e},updateLtvSlider:e=>{ra(e)},resetLtv:()=>{Be()},updateMaxLoan:e=>{re(e),Te.value++,ie.value=!1,R.value=!1},resetMaxLoan:()=>{Be(),Te.value++,ie.value=!1,R.value=!1},setEditingMaxLoan:e=>{ie.value=e},updateTdsr:e=>{L.value=Math.max(0,Math.min(Number(e||0),100))},setEditingTdsr:e=>{oe.value=e},updateTdsrSlider:e=>{L.value=Number(e),oe.value=!1,Le.value++},resetTdsr:()=>{L.value=ae,oe.value=!1,Le.value++},updateMsr:e=>{M.value=Math.max(0,Math.min(Number(e||0),100))},setEditingMsr:e=>{se.value=e},updateMsrSlider:e=>{M.value=Number(e),se.value=!1,Me.value++},resetMsr:()=>{M.value=te,se.value=!1,Me.value++},updateTenure:e=>{if(e===""||e===null||e===void 0){N.value=0;return}const a=Number(e);if(Number.isNaN(a)){N.value=0;return}const t=Math.max(0,Math.floor(a));N.value=Math.min(t,K.value)},setEditingLoanTenure:e=>{Pe.value=e},updateTenureSlider:e=>{N.value=Number(e),Pe.value=!1,Ge.value++},resetTenure:()=>{N.value=K.value},updateInterestRate:e=>{if(e===""||e===null||e===void 0){p.value=0;return}const a=Number(e);if(Number.isNaN(a)){p.value=0;return}p.value=Math.min(Math.max(a,0),dt)},setEditingInterestRate:e=>{ye.value=e},updateInterestRateSlider:e=>{p.value=Number(e),ye.value=!1,Ue.value++},resetInterestRate:()=>{p.value=ee},updateSelectedLoan:e=>{const a=Math.max(0,Number(H.value||0)),t=Math.max(0,Math.min(Number(e||0),a));i.value=Number.isNaN(t)?0:t,re(i.value),R.value=!0},setEditingBankLoan:e=>{Se.value=e},updateSelectedLoanSlider:e=>{const a=Math.max(0,Number(H.value||0)),t=Math.max(0,Math.min(Number(e||0),a));i.value=Number.isNaN(t)?0:t,re(i.value),R.value=!0,Se.value=!1,Oe.value++},resetSelectedLoan:()=>{i.value=Math.max(0,Number(H.value||0)),re(i.value),R.value=!1},updateLegalFee:e=>{P.value=Number(e)},setEditingLegalFee:e=>{ke.value=e}};return(e,a)=>(la(),ea(fe(tt),{askIncludeProfileOnExport:!0,askIncludeProfileOnShare:!0,exportDisabled:!J.value,exportPayload:ka.value,newDisabled:ze.value,newHandler:Ze,onSessionLoaded:Ua,openDisabled:!ua.value,saveDisabled:ze.value,saveHandler:Ga,saveResetHandler:Ze,saveStateSnapshot:Je.value,shareDisabled:!J.value,sharePayload:Da.value,sharePayloadWithoutProfile:Ca.value,title:pe,onRefreshSessions:$e},{default:aa(()=>[ta("div",ct,[de(vt,{actions:Wa,"show-applicant-actions":!0,"show-cash-topup":!0,showResaleLevy:!0,state:ja.value},null,8,["state"]),(la(),ea(fe(it),{key:`${p.value}-${D.value}`,absdAmount:ce.value,absdRate:Ae.value,bankLoan:g.value,buyerStampDuty:d.value.bsd??0,downPaymentAmount:U.value,foundationBeforeSP:T.value,hideBreakdownForSecondStep:!0,hideCashForFirstStep:!0,hidePaymentForFirstStep:!0,interestRate:p.value,loanAmount:i.value,loanTenure:D.value,propertyType:We.value,showDates:I.value,showLoanInstallmentForFirstStep:!1,timeline:S.value,"onUpdate:timeline":Sa,"onUpdate:showDates":a[0]||(a[0]=t=>I.value=t),"onUpdate:foundationBeforeSP":a[1]||(a[1]=t=>T.value=t)},null,8,["absdAmount","absdRate","bankLoan","buyerStampDuty","downPaymentAmount","foundationBeforeSP","interestRate","loanAmount","loanTenure","propertyType","showDates","timeline"]))]),de(rt,{value:_.value,"onUpdate:value":a[2]||(a[2]=t=>_.value=t),closeButtonText:"Close",header:"Applicant Profiles",height:"max-h-[90vh] sm:max-h-[95vh]",width:"w-full max-w-5xl"},{default:aa(()=>[ta("div",mt,[de(fe(st),{"show-action-buttons":!1,onLoaded:Qe})])]),_:1},8,["value"]),de(fe(ot),{value:ge.value,"onUpdate:value":a[3]||(a[3]=t=>ge.value=t),"route-name":"calculator.profiles",onLoaded:Qe},null,8,["value"])]),_:1},8,["exportDisabled","exportPayload","newDisabled","openDisabled","saveDisabled","saveStateSnapshot","shareDisabled","sharePayload","sharePayloadWithoutProfile"]))}});
29export{tl as default};
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.