PageSourceSearch

https://besthomepageever.com/assets/CompoundInterestCalculator-BFATyxOd-v4.8.9.js

js besthomepageever.com collected 2026-09-24 12:08:29 UTC 8,518 bytes, 1 lines download raw bytes

1import{A as B,D as l,Dt as w,E as S,Ft as g,Ht as u,I as X,N as _,O as $,P as e,Rt as Z,V as ee,at as te,ht as a,k as le,pt as ae,rt as h,x as ne,xt as re}from"./vendor-vue-CzpiaCWp-v4.8.9.js";import{D as oe,P as se,St as q,at as c,et as D,it as v,rt as ie,tt as i,u as ue,yt as de,z as x}from"./vendor-vuetify-Cre8B4kd-v4.8.9.js";import{Dt as me,Ji as ce,rt as ve,yt as pe}from"./vendor-ui-Cuxfda1c-v4.8.9.js";import{t as fe}from"./_plugin-vue_export-helper-K9rsuiWd-v4.8.9.js";ee();re(),Z();var ye={class:"results-section mt-6"},_e={class:"text-title-large mb-4 d-flex align-center justify-space-between"},be={class:"d-flex align-center"},ge={class:"text-center"},he={class:"text-body-small mb-1"},xe={class:"text-headline-small font-weight-bold"},Ve={class:"text-center"},Ce={class:"text-headline-small font-weight-bold"},Ie={class:"text-center"},Fe={class:"text-title-large font-weight-bold"},we={class:"text-center"},qe={class:"text-title-large font-weight-bold"},De={class:"text-center"},Re={class:"text-title-large font-weight-bold"},Ne={class:"text-body-large font-weight-bold mb-3 d-flex align-center"},ke={class:"yearly-table-wrapper"},Pe={class:"yearly-table"},Te={class:"text-right font-weight-bold"},Me={class:"text-right text-blue"},Be={class:"text-right text-orange"},Se={class:"text-right text-green"},$e=X({__name:"CompoundInterestCalculator",setup(Ue){const r=w({initialInvestment:1e4,monthlyContribution:500,annualReturn:8,years:20,compoundingFrequency:12}),b=w(!1),V=w(localStorage.getItem("compoundCalcInfoDismissed")!=="1");ae(V,o=>{o||localStorage.setItem("compoundCalcInfoDismissed","1")});const U=[{title:"Annually",value:1},{title:"Semi-Annually",value:2},{title:"Quarterly",value:4},{title:"Monthly",value:12},{title:"Daily",value:365}],d={required:o=>!b.value||o!=null&&o!==""||"This field is required",positive:o=>!b.value||o>0||"Value must be positive",nonNegative:o=>!b.value||o>=0||"Value cannot be negative"},A=S(()=>r.value.initialInvestment>=0&&r.value.monthlyContribution>=0&&(r.value.initialInvestment>0||r.value.monthlyContribution>0)&&r.value.annualReturn>=0&&r.value.years>0&&r.value.compoundingFrequency>0),s=S(()=>
1{if(!A.value)return null;try{return E(r.value)}catch{return null}}),E=o=>{const{initialInvestment:t,monthlyContribution:n,annualReturn:O,years:Y,compoundingFrequency:G}=o,N=O/100,k=G,L=N/k,j=k/12,P=[];let p=t,f=t,y=0;for(let F=1;F<=Y;F++){const Q=y;for(let T=1;T<=12;T++){if(N>0){const W=Math.pow(1+L,j),M=p*(W-1);p+=M,y+=M}p+=n,f+=n}const K=y-Q;P.push({year:F,balance:p,totalContributions:f,totalInterest:y,yearInterest:K})}const C=p,I=y,H=f>0?I/f*100:0,J=C>0?I/C*100:0;return{futureValue:C,totalContributions:f,interestEarned:I,totalReturnPercent:H,interestPercentOfTotal:J,yearlyBreakdown:P}},z=()=>{b.value=!1,r.value={initialInvestment:0,monthlyContribution:0,annualReturn:8,years:20,compoundingFrequency:12}},m=o=>new Intl.NumberFormat("en-US",{minimumFractionDigits:0,maximumFractionDigits:0}).format(o),R=o=>new Intl.NumberFormat("en-US",{style:"percent",minimumFractionDigits:1,maximumFractionDigits:1}).format(o);return(o,t)=>(h(),$(v,{class:"compound-interest-card glass-morphism",variant:"outlined",elevation:"2",theme:"dark"},{default:a(()=>[e(c,{class:"pa-4"},{default:a(()=>[e(ue,null,{default:a(()=>[e(D,null,{default:a(()=>[e(i,{cols:"12",md:"6"},{default:a(()=>[e(x,{modelValue:r.value.initialInvestment,"onUpdate:modelValue":t[0]||(t[0]=n=>r.value.initialInvestment=n),modelModifiers:{number:!0},label:"Initial Investment",type:"number",step:"1000",min:"0",variant:"outlined",density:"compact",prefix:"$",color:"teal",rules:[d.required,d.nonNegative]},null,8,["modelValue","rules"])]),_:1}),e(i,{cols:"12",md:"6"},{default:a(()=>[e(x,{modelValue:r.value.monthlyContribution,"onUpdate:modelValue":t[1]||(t[1]=n=>r.value.monthlyContribution=n),modelModifiers:{number:!0},label:"Monthly Contribution",type:"number",step:"100",min:"0",variant:"outlined",density:"compact",prefix:"$",color:"teal",rules:[d.nonNegative]},null,8,["modelValue","rules"])]),_:1}),e(i,{cols:"12",md:"4"},{default:a(()=>[e(x,{modelValue:r.value.annualReturn,"onUpdate:modelValue":t[2]||(t[2]=n=>r.value.annualReturn=n),modelModifiers:{number:!0},label:"Annual Return Rate",type:"number",step:"0.1",min:"0",max:"50",variant:"outlined",density:"compact",suffix:"%",color:"teal",rules:[d.required,d.nonNegative]},null,8,["modelValue","rules"])]),_:1}),e(i,{cols:"12",md:"4"},{default:a(()=>[e(x,{modelValue:r.value.years,"onUpdate:modelValue":t[3]||(t[3]=n=>r.value.years=n),modelModifiers:{number:!0},label:"Investment Period",type:"number",step:"1",min:"1",max:"100",variant:"outlined",density:"compact",suffix:"years",color:"teal",rules:[d.required,d.positive]},null,8,["modelValue","rules"])]),_:1}),e(i,{cols:"12",md:"4"},{default:a(()=>[e(se,{modelValue:r.value.compoundingFrequency,"onUpdate:modelValue":t[4]||(t[4]=n=>r.value.compoundingFrequency=n),items:U,label:"Compounding Frequency",variant:"outlined",density:"compact",color:"teal"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),l("div",ye,[e(ie,{class:"mb-4 border-opacity-20"}),l("h6",_e,[l("div",be,[e(q,{icon:g(me),class:"mr-2",color:"teal"},null,8,["icon"]),t[6]||(t[6]=_(" Investment Growth Summary ",-1))]),e(de,{variant:"text",size:"small",class:"clear-btn-discreet",onClick:z},{default:a(()=>[...t[7]||(t[7]=[_(" Clear ",-1)])]),_:1})]),e(D,null,{default:a(()=>[e(i,{cols:"12",md:"6"},{default:a(()=>[e(v,{variant:"tonal",color:"teal",class:"result-card"},{default:a(()=>[e(c,{class:"pa-3"},{default:a(()=>[l("div",ge,[l("p",he,[t[8]||(t[8]=_(" Future Value ",-1)),e(q,{icon:g(pe),size:"20",color:"teal"},null,8,["icon"])]),l("p",xe," $"+u(s.value?m(s.value.futureValue):"0"),1)])]),_:1})]),_:1})]),_:1}),e(i,{cols:"12",md:"6"},{default:a(()=>[e(v,{variant:"tonal",color:"green",class:"result-card"},{default:a(()=>[e(c,{class:"pa-3"},{default:a(()=>[l("div",Ve,[t[9]||(t[9]=l("p",{class:"text-body-small mb-1"}," Total Return ",-1)),l("p",Ce,u(s.value?R(s.value.totalReturnPercent/100):"0%"),1)])]),_:1})]),_:1})]),_:1}),e(i,{cols:"12",md:"4"},{default:a(()=>[e(v,{variant:"tonal",color:"blue",class:"result-card"},{default:a(()=>[e(c,{class:"pa-2"},{default:a(()=>[l("div",Ie,[t[10]||(t[10]=l("p",{class:"text-body-small mb-1"}," Total Contributions ",-1)),l("p",Fe," $"+u(s.value?m(s.value.totalContributions):"0"),1)])]),_:1})]),_:1})]),_:1}),e(i,{cols:"12",md:"4"},{default:a(()=>[e(v,{variant:"tonal",color:"orange",class:"result-card"},{default:a(()=>[e(c,{class:"pa-2"},{default:a(()=>[l("div",we,[t[11]||(t[11]=l("p",{class:"text-body-small mb-1"}," Interest Earned ",-1)),l("p",qe," $"+u(s.value?m(s.value.interestEarned):"0"),1)])]),_:1})]),_:1})]),_:1}),e(i,{cols:"12",md:"4"},{default:a(()=>[e(v,{variant:"tonal",color:"purple",class:"result-card"},{default:a(()=>[e(c,{class:"pa-2"},{default:a(()=>[l("div",De,[t[12]||(t[12]=l("p",{class:"text-body-small mb-1"}," Interest % of Total ",-1)),l("p",Re,u(s.value?R(s.value.interestPercentOfTotal/100):"0%"),
11)])]),_:1})]),_:1})]),_:1})]),_:1}),s.value&&s.value.yearlyBreakdown.length>0?(h(),$(D,{key:0,class:"mt-2"},{default:a(()=>[e(i,{cols:"12"},{default:a(()=>[e(v,{variant:"tonal",color:"grey",class:"result-card"},{default:a(()=>[e(c,{class:"pa-3"},{default:a(()=>[l("h6",Ne,[e(q,{icon:g(ve),class:"mr-2",color:"teal",size:"20"},null,8,["icon"]),t[13]||(t[13]=_(" Year-by-Year Growth ",-1))]),l("div",ke,[l("table",Pe,[t[14]||(t[14]=l("thead",null,[l("tr",null,[l("th",null,"Year"),l("th",{class:"text-right"}," Balance "),l("th",{class:"text-right"}," Contributions "),l("th",{class:"text-right"}," Interest Earned "),l("th",{class:"text-right"}," Year's Interest ")])],-1)),l("tbody",null,[(h(!0),B(ne,null,te(s.value.yearlyBreakdown,n=>(h(),B("tr",{key:n.year},[l("td",null,u(n.year),1),l("td",Te," $"+u(m(n.balance)),1),l("td",Me," $"+u(m(n.totalContributions)),1),l("td",Be," $"+u(m(n.totalInterest)),1),l("td",Se," $"+u(m(n.yearInterest)),1)]))),128))])])])]),_:1})]),_:1})]),_:1})]),_:1})):le("",!0),e(oe,{modelValue:V.value,"onUpdate:modelValue":t[5]||(t[5]=n=>V.value=n),type:"info",variant:"tonal",class:"mt-4",icon:g(ce),closable:""},{text:a(()=>[...t[15]||(t[15]=[l("strong",null,"Note:",-1),_(" This calculator assumes a fixed annual return rate compounded at the selected frequency. Actual investment returns will vary year to year. Monthly contributions are added at the end of each month. ",-1)])]),_:1},8,["modelValue","icon"])])]),_:1})]),_:1}))}}),Ye=fe($e,[["__scopeId","data-v-6e4a99a7"]]);export{Ye 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.