(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[598],{3093:(e,t,r)=>{Promise.resolve().then(r.bind(r,9138))},5405:(e,t,r)=>{"use strict";r.d(t,{bg:()=>n,TI:()=>a,si:()=>x,KX:()=>d,tN:()=>m,cR:()=>f,X4:()=>u});let a=.155,n=25,o=[{quarter:1,cumulativePct:.1,portionPct:.1,dueMonth:3,dueDay:25},{quarter:2,cumulativePct:.35,portionPct:.25,dueMonth:6,dueDay:25},{quarter:3,cumulativePct:.65,portionPct:.3,dueMonth:9,dueDay:25},{quarter:4,cumulativePct:1,portionPct:.35,dueMonth:12,dueDay:20}],l=[{from:0,to:100,rate:0},{from:100,to:300,rate:.2},{from:300,to:1e3,rate:.25},{from:1e3,to:2e3,rate:.3},{from:2e3,to:3e3,rate:.35},{from:3e3,to:null,rate:.4}],s=[{from:0,to:2600,rate:0},{from:2600,to:7800,rate:.2},{from:7800,to:26e3,rate:.25},{from:26e3,to:52e3,rate:.3},{from:52e3,to:78e3,rate:.35},{from:78e3,to:null,rate:.4}];function u(e){return Math.round((e+Number.EPSILON)*100)/100}function i(e,t){if(!Number.isFinite(e)||e<0)throw RangeError("".concat(t," must be a non-negative finite number, got ").concat(e))}let c={standard:.155,zero:0,exempt:0};function d(e,t){i(e,"netAmount");let r=c[t],a=u(e),n=u(a*r);return{net:a,vat:n,gross:u(a+n),rate:r,code:t}}function m(e,t){i(e,"grossAmount");let r=c[t],a=u(e),n=u(a/(1+r));return{net:n,vat:u(a-n),gross:a,rate:r,code:t}}function x(e,t){i(e,"grossMonthly");let r=u(e),a=u(function(e,t){let r=0;for(let a of t){if(e<=a.from)break;r+=((null===a.to?e:Math.min(e,a.to))-a.from)*a.rate}return r}(r,"USD"===t?l:s)),n=u(.03*a),o=u(a+n);return{gross:r,currency:t,tax:a,aidsLevy:n,totalPaye:o,effectiveRate:0===r?0:u(o/r)}}function f(e){return[1,2,3,4].map(t=>(function(e,t){i(e,"annualEstimate");let r=o.find(e=>e.quarter===t);if(!r)throw RangeError("quarter must be 1, 2, 3 or 4, got ".concat(t));let a=u(e*r.cumulativePct),n=u(e*r.portionPct);return{quarter:t,annualEstimate:u(e),cumulativeDue:a,paymentDue:n,dueMonth:r.dueMonth,dueDay:r.dueDay}})(e,t))}},9138:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>s});var a=r(9621),n=r(8929),o=r(5405);let l="rounded-lg border border-gray-300 px-3 py-2 outline-none focus:border-kura focus:ring-2 focus:ring-kura/30";function s(){let[e,t]=(0,n.useState)(1e3),[r,s]=(0,n.useState)("add"),[i,c]=(0,n.useState)("standard"),d=(0,n.useMemo)(()=>{let t=Number(e)||0;return"add"===r?(0,o.KX)(t,i):(0,o.tN)(t,i)},[e,r,i]);return(0,a.jsxs)("section",{className:"flex flex-col gap-6",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("h1",{className:"text-2xl font-bold",children:"Zimbabwe VAT calculator"}),(0,a.jsxs)("p",{className:"text-sm text-gray-500",children:["Standard rate ",(100*o.TI).toFixed(1),"% (2026)."]})]}),(0,a.jsxs)("div",{className:"flex flex-col gap-4 rounded-2xl bg-white p-6 shadow-sm ring-1 ring-gray-100",children:[(0,a.jsxs)("label",{className:"flex flex-col gap-1 text-sm font-medium",children:["Amount",(0,a.jsx)("input",{type:"number",min:0,step:"0.01",value:e,onChange:e=>t(Number(e.target.value)),className:l})]}),(0,a.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,a.jsxs)("label",{className:"flex flex-col gap-1 text-sm font-medium",children:["This amount is",(0,a.jsxs)("select",{value:r,onChange:e=>s(e.target.value),className:l,children:[(0,a.jsx)("option",{value:"add",children:"VAT-exclusive (add VAT)"}),(0,a.jsx)("option",{value:"extract",children:"VAT-inclusive (extract VAT)"})]})]}),(0,a.jsxs)("label",{className:"flex flex-col gap-1 text-sm font-medium",children:["VAT treatment",(0,a.jsxs)("select",{value:i,onChange:e=>c(e.target.value),className:l,children:[(0,a.jsx)("option",{value:"standard",children:"Standard 15.5%"}),(0,a.jsx)("option",{value:"zero",children:"Zero-rated"}),(0,a.jsx)("option",{value:"exempt",children:"Exempt"})]})]})]})]}),(0,a.jsxs)("div",{className:"grid grid-cols-3 gap-3 text-center",children:[(0,a.jsx)(u,{label:"Net",value:d.net}),(0,a.jsx)(u,{label:"VAT",value:d.vat,accent:!0}),(0,a.jsx)(u,{label:"Gross",value:d.gross})]})]})}function u(e){let{label:t,value:r,accent:n}=e;return(0,a.jsxs)("div",{className:"rounded-xl bg-white p-4 shadow-sm ring-1 ring-gray-100",children:[(0,a.jsx)("p",{className:"text-xs uppercase tracking-wide text-gray-400",children:t}),(0,a.jsx)("p",{className:"mt-1 text-xl font-bold ".concat(n?"text-kura-dark":"text-ink"),children:r.toFixed(2)})]})}}},e=>{e.O(0,[976,785,358],()=>e(e.s=3093)),_N_E=e.O()}]);