import {calculate} from './engines.mjs'; const m=JSON.parse(document.querySelector('#calculator-model').textContent),form=document.querySelector('#calcForm'),state=document.querySelector('#calc-status'),res=document.querySelector('#calc-results'); const nf=new Intl.NumberFormat('en-IN',{maximumFractionDigits:2}); const read=()=>Object.fromEntries(m.fields.map(f=>[f.key,form.elements.namedItem(f.key).value])); function format(kind,v){if(v===null)return 'Not attainable';if(kind==='boolean')return v===1?'Yes':'No';if(kind==='money')return '₹'+nf.format(v);if(kind==='pct')return nf.format(v)+'%';return nf.format(v);} function draw(){try{let x=read(),o=calculate(m.id,x);res.replaceChildren();for(const [key,title,kind] of m.outputs){let e=document.createElement('div'),s=document.createElement('span'),v=document.createElement('strong');e.className='metric'+(m.highlights.includes(key)?' featured':'');s.textContent=title;v.textContent=format(kind,o[key]);e.append(s,v);res.append(e);}window.__finin2minLast={input:x,output:o};state.textContent='Results use your assumptions, not official current tariffs. Check any break-even feasibility warning.';state.className='success';}catch(e){res.replaceChildren();window.__finin2minLast=null;state.textContent=e.message;state.className='error';}} form.addEventListener('submit',e=>{e.preventDefault();draw()});document.querySelector('#resetInputs').addEventListener('click',()=>{for(const f of m.fields)form.elements.namedItem(f.key).value=f.value;draw()}); document.querySelector('#csvExport').addEventListener('click',()=>{if(!window.__finin2minLast){state.textContent='Enter valid inputs first.';return}const {input,output}=window.__finin2minLast;let rows=[['Finin2min','Scenario'],['Input','Value'],...m.fields.map(f=>[f.label,input[f.key]]),['',''],['Output','Value'],...m.outputs.map(f=>[f[1],output[f[0]]??'Not attainable'])];let csv='\ufeff'+rows.map(r=>r.map(v=>'"'+String(v).replaceAll('"','""')+'"').join(',')).join('\r\n');let u=URL.createObjectURL(new Blob([csv],{type:'text/csv;charset=utf-8'})),a=document.createElement('a');a.href=u;a.download=m.slug+'-scenario.csv';document.body.append(a);a.click();a.remove();setTimeout(()=>URL.revokeObjectURL(u),1000)}); draw();