1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7654],{27654:function(e,n,t){"use strict";t.r(n),t.d(n,{InvoiceForm:function(){return ev}});var i,a,r=t(52322),o=t(47235),l=t(2784),c=t(63955),s=t(41929),d=t(7922),u=t(50796),m=t(82145),v=t(23643),_=t(14058),p=t.n(_);let h=e=>{let{control:n,previewUrl:t,fileInputRef:i,onLogoUpload:a,onRemoveLogo:o}=e;return(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{className:p().logoUpload,children:[(0,r.jsx)("input",{ref:i,type:"file",accept:".png,.jpg,.jpeg,.svg,image/png,image/jpeg,image/svg+xml",onChange:a,className:p().logoInput,id:"logo-upload"}),t?(0,r.jsxs)("div",{className:p().logoPreviewContainer,children:[(0,r.jsx)("img",{src:t,alt:"Business Logo Preview",className:p().logoPreview}),(0,r.jsxs)("div",{className:p().logoActions,children:[(0,r.jsx)(v.z,{styleType:"secondary",onClick:()=>{var e;return null===(e=i.current)||void 0===e?void 0:e.click()},children:"Change logo"}),(0,r.jsx)(v.z,{styleType:"secondary",onClick:e=>{e.preventDefault(),o()},children:"Remove"})]})]}):(0,r.jsxs)("label",{htmlFor:"logo-upload",className:p().logoUploadLabel,children:[(0,r.jsx)("div",{className:p().logoUploadIcon,children:"+"}),(0,r.jsx)("span",{className:p().mainText,children:"Add business logo"}),(0,r.jsx)("span",{className:p().subtitle,children:"Supports PNG, JPG or SVG (max. 5MB)"})]})]}),(0,r.jsx)("div",{children:(0,r.jsx)(c.Qr,{name:"businessDetails",control:n,render:e=>{var n;let{field:t,fieldState:i}=e;return(0,r.jsx)(u.Z,{...t,value:t.value||"",label:"Your business details",placeholder:"Your business name and address",invalid:i.invalid,errorText:null===(n=i.error)||void 0===n?void 0:n.message})}})}),(0,r.jsx)("div",{children:(0,r.jsx)(c.Qr,{name:"businessEmail",control:n,rules:{pattern:{value:/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}$/i,message:"Please enter a valid email address"}},render:e=>{var n;let{field:t,fieldState:i}=e;return(0,r.jsx)(m.Z,{...t,label:"Your business email",type:"email",invalid:i.invalid,errorText:null===(n=i.error)||void 0===n?void 0:n.message,placeholder:"e.g. [email protected]",fullWidth:!0})}})}),(0,r.jsx)("div",{children:(0,r.jsx)(c.Qr,{name:"vatNumber",control:n,render:e=>{var n;let{field:t,fieldState:i}=e;return(0,r.jsx)(m.Z,{...t,label:"Your VAT number (optional)",invalid:i.invalid,errorText:null===(n=i.error)||void 0===n?void 0:n.message,fullWidth:!0})}})})]})};var x=t(34633),g=t(79130),y=t.n(g),b=t(65826),I=t(34341),f=t.n(I);let j=y().bind(f()),T=(0,l.forwardRef)((e,n)=>{let{label:t,disabled:i,invalid:a,required:o,showRequiredIndicator:c=!1,placeholder:s,fullWidth:d,errorText:u,hintText:m,value:v="",className:_,labelBelow:p,setValue:h,onChange:x,onBlur:g,max:y,min:I,...T}=e,[C]=(0,l.useContext)(b.N),N=(0,l.useId)(),D=!!(u||m),P="".concat(_," ").concat(j({DateInput:!0,dark:C.darkMode,light:!C.darkMode})),w=j({inputContainer:!0,fullWidth:d}),B=j({nestedInput:!0});return(0,r.jsx)("div",{className:f().datepickerContainer,children:(0,r.jsxs)("label",{className:P,children:[c?(0,r.jsxs)("div",{className:f().labelWithRequiredIndicator,children:[(0,r.jsx)("span",{children:t}),(0,r.jsx)("span",{"aria-hidden":!0,children:"*"})]}):(0,r.jsx)(r.Fragment,{children:t}),(0,r.jsx)("div",{className:"".concat(f().horizontalContainer," ").concat(w),children:(0,r.jsx)("div",{className:"".concat(f().input," ").concat(f().horizontalContainer),children:(0,r.jsx)("input",{ref:n,...T,type:"date",disabled:i,"aria-invalid":a,"aria-describedby":D?N:void 0,required:o,placeholder:s,className:B,value:v,onChange:e=>{!i&&(h(e.target.value),x&&x(e))},onBlur:e=>{!i&&g&&g(e)},max:y,min:I})})}),D&&(0,r.jsx)("p",{id:N,className:"".concat(u?f().error:f().hint),children:u||m}),(0,r.jsx)("p",{className:"".concat(f().labelBelow),children:p})]})})});var C=t(7729);let N=e=>{let{control:n}=e;return(0,r.jsxs)("div",{children:[(0,r.jsx)("h1",{className:p().heading,children:"Invoice"}),(0,r.jsx)("div",{children:(0,r.jsx)(c.Qr,{name:"invoiceNumber",control:n,render:e=>{var n;let{field:t,fieldState:i}=e;return(0,r.jsx)(m.Z,{...t,label:"Invoice number",invalid:i.invalid,errorText:null===(n=i.error)||void 0===n?void 0:n.message,fullWidth:!0})}})}),(0,r.jsxs)("div",{className:p().dateFieldsContainer,children:[(0,r.jsx)(c.Qr,{name:"invoiceDate",control:n,render:e=>{var n;let{field:t,fieldState:i}=e;return(0,r.jsx)(T,{...t,label:"Invoice date",setValue:t.onChange,invali
1d:i.invalid,errorText:null===(n=i.error)||void 0===n?void 0:n.message,fullWidth:!0})}}),(0,r.jsx)(c.Qr,{name:"dueDate",control:n,render:e=>{var n;let{field:t,fieldState:i}=e;return(0,r.jsx)(T,{...t,label:"Due date",setValue:t.onChange,invalid:i.invalid,errorText:null===(n=i.error)||void 0===n?void 0:n.message,fullWidth:!0})}}),(0,r.jsx)(c.Qr,{name:"supplyDate",control:n,render:e=>{var n;let{field:t,fieldState:i}=e;return(0,r.jsx)(T,{...t,label:"Supply date",setValue:t.onChange,invalid:i.invalid,errorText:null===(n=i.error)||void 0===n?void 0:n.message,fullWidth:!0})}})]}),(0,r.jsx)("div",{children:(0,r.jsx)(c.Qr,{name:"billTo",control:n,rules:{required:"Please add a customer"},render:e=>{var n;let{field:t,fieldState:i}=e;return(0,r.jsx)(u.Z,{...t,label:"Bill to",invalid:i.invalid,errorText:null===(n=i.error)||void 0===n?void 0:n.message,placeholder:"Add customer's name, email and address",fullWidth:!0})}})}),(0,r.jsx)(c.Qr,{name:"invoiceSummary",control:n,render:e=>{var n;let{field:t,fieldState:i}=e;return(0,r.jsx)(m.Z,{...t,label:"Invoice summary",placeholder:"Description for your customer",invalid:i.invalid,errorText:null===(n=i.error)||void 0===n?void 0:n.message,fullWidth:!0})}}),(0,r.jsx)("div",{children:(0,r.jsx)(c.Qr,{name:"currency",control:n,render:e=>{var n;let{field:t,fieldState:i}=e;return(0,r.jsx)(C.Z,{...t,label:"Currency",options:Object.entries(x.DE()).map(e=>{let[n,t]=e;return{value:n,label:"".concat(t.name," (").concat(n,")")}}),invalid:i.invalid,errorText:null===(n=i.error)||void 0===n?void 0:n.message,fullWidth:!0})}})})]})};var D=t(31763),P=t.n(D),w=t(10477);let B=(e,n)=>{if(!e&&0!==e)return 0;try{let t=String(e);return x.eG(n,t).majorUnitsDecimal.toNumber()}catch(e){return 0}},F=(e,n,t)=>{if(!e&&0!==e)return!0;try{let i=String(e),a=x.Wh("".concat(n," ").concat(i));if(a||(a=x.eG(n,i)),a.majorUnitsDecimal.lessThan(0))return"".concat(t," cannot be negative");return!0}catch(e){return"Please enter a valid ".concat(t.toLowerCase())}},R=function(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"GBP";return e.reduce((e,t)=>e+(Number(t.quantity)||0)*B(t.unitPrice,n),0)},k=function(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"GBP";return e.reduce((e,t)=>{let i=Number(t.quantity)||0;return e+i*B(t.unitPrice,n)*(Number(t.taxPercentage)||0)/100},0)},S=function(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"GBP";return e.reduce((e,t)=>e+B(t.discount,n),0)};var W=t(90082),A=t.n(W);let M='<svg viewBox="0 0 112 21" width="3.6rem" height="0.675rem" role="img"><title>Generated by Monzo</title><path fill="#ff4f40" d="'.concat("M0 19.3V.7h4.958v2.493a5.505 5.505 0 0 1 5.063-2.84 5.671 5.671 0 0 1 5.166 2.98c1.941-2.045 3.432-2.98 5.756-2.98 4.195 0 6.553 2.354 6.553 6.686V19.3h-5.34V9.222c0-2.598-.554-3.776-2.6-3.776-2.08 0-3.19 1.281-3.19 3.776V19.3h-5.374V9.222c0-2.598-.555-3.776-2.601-3.776-2.08 0-3.19 1.281-3.19 3.776V19.3H0ZM33.82 3.124a9.832 9.832 0 0 1 16.816 6.76 9.47 9.47 0 0 1-2.808 6.997 9.655 9.655 0 0 1-7.074 2.91 9.208 9.208 0 0 1-7.038-2.98 9.716 9.716 0 0 1-2.74-6.859 9.528 9.528 0 0 1 2.844-6.828Zm6.969 11.467a4.6 4.6 0 0 0 4.387-2.701 4.59 4.59 0 0 0-3.234-6.381 4.602 4.602 0 0 0-4.776 1.933 4.592 4.592 0 0 0-.78 2.577 4.487 4.487 0 0 0 4.403 4.572ZM54.118 19.3V.7h5.2l-.068 2.494a5.788 5.788 0 0 1 5.34-2.84c3.848 0 6.344 2.424 6.344 6.685V19.3h-5.478V9.222c0-2.598-.555-3.776-2.67-3.776-2.15 0-3.294 1.281-3.294 3.776V19.3h-5.374ZM94.18 3.122A9.832 9.832 0 0 1 104.835.916a9.822 9.822 0 0 1 6.16 8.965 9.47 9.47 0 0 1-2.808 6.997 9.664 9.664 0 0 1-7.074 2.91 9.208 9.208 0 0 1-7.038-2.98 9.716 9.716 0 0 1-2.74-6.858 9.529 9.529 0 0 1 2.843-6.828Zm6.97 11.467a4.602 4.602 0 0 0 4.387-2.702 4.59 4.59 0 0 0-.879-5.073 4.598 4.598 0 0 0-5.04-1.073 4.598 4.598 0 0 0-2.871 4.276 4.488 4.488 0 0 0 4.403 4.572ZM74.926 19.3V15.42l7.663-9.91h-7.663V.699h13.835v4.4l-6.762 9.388h6.9v4.812H74.927Z",'"></path></svg>');function U(e){return e.replaceAll("&","&").replaceAll("<","<").replaceAll(">",">").replaceAll('"',""").replaceAll("'","'")}function z(e,n){return new Intl.NumberFormat("en-GB",{minimumFractionDigits:2,...n&&{style:"currency",currency:n,currencyDisplay:"narrowSymbol"}}).format(e)}function V(e){return new Date(e).toLocaleDateString("en-GB",{day:"numeric",month:"long",year:"numeric"})}var Z=t(28981),L=t(54561),q=t.n(L);let Q=(e,n,t)=>{let{value:i}=e.target;if(""!==i)try{let e=x.eG(n,i);
1t(e.formatAmount({useCurrencySeparators:!0,hideFractionalWhenZero:!1}))}catch(e){return}},G=(e,n,t)=>{let{value:i}=e.target;return i.length>12?null:""===i||(!0===n?/^-?[\d,]*[.]?[\d]*$/:/^[\d,]*[.]?[\d]*$/).test(i)?void(t&&t(e)):null},E=e=>{var n,t;return null!==(t=null===(n=x.DE()[e])||void 0===n?void 0:n.symbol)&&void 0!==t?t:null},H=y().bind(q()),Y=(0,l.forwardRef)((e,n)=>{let{label:t,disabled:i,invalid:a,required:o,showRequiredIndicator:c=!1,placeholder:s,fullWidth:d,errorText:u,hintText:m,value:v="",className:_,labelBelow:p,currencyCode:h="GBP",allowNegative:g=!1,setValue:y,clearButtonAccessibleLabel:I,onClear:f,onChange:j,onBlur:T,max:C,min:N,maxLength:D,...P}=e,[w]=(0,l.useContext)(b.N),B=E(h),F=f&&!i&&v,R=(0,l.useId)(),k=!!(u||m),S="".concat(_," ").concat(H({CurrencyInput:!0,dark:w.darkMode,light:!w.darkMode})),W=H({inputContainer:!0,fullWidth:d}),A=H({nestedInput:!0,withCurrencySymbol:!!B}),M=s||x.eG(h,g?"-0":"0").formatAmount({useCurrencySeparators:!0,hideFractionalWhenZero:!1});return(0,r.jsxs)("label",{className:S,children:[c?(0,r.jsxs)("div",{className:q().labelWithRequiredIndicator,children:[(0,r.jsx)("span",{children:t}),(0,r.jsx)("span",{"aria-hidden":!0,children:"*"})]}):(0,r.jsx)(r.Fragment,{children:t}),(0,r.jsx)("div",{className:"".concat(q().horizontalContainer," ").concat(W),children:(0,r.jsxs)("div",{className:"".concat(q().input," ").concat(q().horizontalContainer),children:[B&&(0,r.jsx)("span",{className:q().currencySymbol,"aria-hidden":"true",children:B}),(0,r.jsx)("input",{ref:n,...P,type:"text",inputMode:"numeric",disabled:i,"aria-invalid":a,"aria-describedby":k?R:void 0,required:o,placeholder:M,className:A,value:v,onChange:e=>{i||null===G(e,g,j)||y(e.target.value)},onBlur:e=>{!i&&(Q({...e,target:e.target},h,y),T&&T(e))},max:C,min:N,maxLength:D}),F&&(0,r.jsx)("button",{type:"button","aria-label":I,className:q().clearButton,onClick:f,children:(0,r.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",children:(0,r.jsx)("path",{d:"M6.758 17.243L12.001 12m5.243-5.243L12 12m0 0L6.758 6.757M12.001 12l5.243 5.243",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})})]})}),k&&(0,r.jsx)("p",{id:R,className:"".concat(u?q().error:q().hint),children:u||m}),(0,r.jsx)("p",{className:"".concat(q().labelBelow),children:p})]})}),O=[{value:"item",label:"Item"},{value:"hour",label:"Hour"},{value:"day",label:"Day"},{value:"flat_rate",label:"Flat Rate"}],X=e=>{let{control:n,index:t,onRemove:i,currency:a,itemData:o}=e,l=(0,c.qo)({control:n,name:"items.".concat(t)})||o,s=(null==l?void 0:l.billingUnit)==="flat_rate"?1:Number(null==l?void 0:l.quantity)||1,d=B(null==l?void 0:l.unitPrice,a),u=Number(null==l?void 0:l.taxPercentage)||0,_=B(null==l?void 0:l.discount,a),h=s*d;return(0,r.jsxs)("div",{className:p().itemRow,children:[(0,r.jsx)(c.Qr,{name:"items.".concat(t,".description"),control:n,rules:{required:"Description is required",minLength:{value:2,message:"Please provide a description"}},render:e=>{var n;let{field:t,fieldState:i}=e;return(0,r.jsx)(m.Z,{...t,label:"Description",invalid:i.invalid,errorText:null===(n=i.error)||void 0===n?void 0:n.message,fullWidth:!0})}}),(0,r.jsx)(c.Qr,{name:"items.".concat(t,".quantity"),control:n,rules:{required:"Quantity is required",min:{value:1,message:"Quantity must be at least 1"},validate:e=>{let n=Number(e);return isNaN(n)?"Please enter a valid number":!(n<=0)||"Quantity must be greater than 0"}},render:e=>{var n;let{field:t,fieldState:i}=e;return(0,r.jsx)(m.Z,{...t,type:"number",label:"Qty",min:1,disabled:(null==l?void 0:l.billingUnit)==="flat_rate",invalid:i.invalid,errorText:null===(n=i.error)||void 0===n?void 0:n.message,fullWidth:!0})}}),(0,r.jsx)(c.Qr,{name:"items.".concat(t,".unitPrice"),control:n,rules:{validate:e=>F(e,a,"Unit price")},render:e=>{var n;let{field:t,fieldState:i}=e;return(0,r.jsx)(Y,{...t,label:"Unit price",currencyCode:a,invalid:i.invalid,errorText:null===(n=i.error)||void 0===n?void 0:n.message,setValue:t.onChange})}}),(0,r.jsx)(c.Qr,{name:"items.".concat(t,".billingUnit"),control:n,render:e=>{var n;let{field:t,fieldState:i}=e;
1return(0,r.jsx)(C.Z,{...t,label:"Bill by",options:O,invalid:i.invalid,errorText:null===(n=i.error)||void 0===n?void 0:n.message,fullWidth:!0})}}),(0,r.jsx)(c.Qr,{name:"items.".concat(t,".taxPercentage"),control:n,rules:{min:{value:0,message:"Tax percentage cannot be negative"},max:{value:100,message:"Tax percentage cannot exceed 100%"},validate:e=>!e&&0!==e||!isNaN(Number(e))||"Please enter a valid percentage"},render:e=>{var n;let{field:t,fieldState:i}=e;return(0,r.jsx)(m.Z,{...t,type:"number",label:"VAT (%)",min:0,max:100,step:.01,invalid:i.invalid,errorText:null===(n=i.error)||void 0===n?void 0:n.message,fullWidth:!0})}}),(0,r.jsx)(c.Qr,{name:"items.".concat(t,".discount"),control:n,rules:{validate:e=>F(e,a,"Discount")},render:e=>{var n;let{field:t,fieldState:i}=e;return(0,r.jsx)(Y,{...t,label:"Discount",currencyCode:a,invalid:i.invalid,errorText:null===(n=i.error)||void 0===n?void 0:n.message,setValue:t.onChange})}}),(0,r.jsx)("output",{children:(0,r.jsx)("div",{className:p().totalColumn,children:(0,r.jsx)(Y,{label:"Total",currencyCode:a,value:(h+u/100*h-_).toFixed(2),disabled:!0,setValue:()=>void 0})})}),(0,r.jsx)("div",{className:p().removeButtonWrapper,children:(0,r.jsx)(v.z,{icon:{icon:"close",type:"builtin",color:Z.PD.Transparent},styleType:"link",onClick:i,ariaLabel:"Delete item"})})]})},K=e=>{let{control:n,currency:t}=e,{fields:i,append:a,remove:o}=(0,c.Dq)({control:n,name:"items"});return(0,r.jsx)("div",{className:p().fullWidth,children:(0,r.jsxs)("div",{children:[i.map((e,i)=>(0,r.jsx)(X,{control:n,index:i,onRemove:()=>o(i),currency:t,itemData:e},e.id)),(0,r.jsx)("div",{className:p().addItemButton,children:(0,r.jsx)(v.z,{icon:{icon:"plus",type:"builtin",color:Z.PD.Secondary},onClick:()=>{a({description:"",quantity:1,unitPrice:0,billingUnit:"item",taxPercentage:0,discount:0})},styleType:"primary",children:"Add item"})})]})})},J=e=>{let{control:n}=e;return(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{children:(0,r.jsx)(c.Qr,{name:"notes",control:n,render:e=>{var n;let{field:t,fieldState:i}=e;return(0,r.jsx)(u.Z,{...t,label:"Notes",invalid:i.invalid,errorText:null===(n=i.error)||void 0===n?void 0:n.message,placeholder:"Add terms and conditions, payment reference and payment terms e.g. payment due within 14 days"})}})}),(0,r.jsx)("div",{children:(0,r.jsx)(c.Qr,{name:"bankAccountDetails",control:n,render:e=>{var n;let{field:t,fieldState:i}=e;return(0,r.jsx)(u.Z,{...t,label:"Bank account details",invalid:i.invalid,errorText:null===(n=i.error)||void 0===n?void 0:n.message,placeholder:"Add the bank details that you'd like to be paid into"})}})})]})};var $=t(92967);let ee=e=>{let{isSubmitted:n,isAnimating:t}=e;return(0,r.jsx)("div",{className:p().actions,children:(0,r.jsxs)("div",{className:"".concat(p().submitButtonContainer," ").concat(t?p().animating:""," ").concat(n?p().submitted:""),children:[(0,r.jsx)(v.z,{type:"submit",styleType:"primary",className:"".concat(p().submitButton," ").concat(n?p().hidden:""),children:"Create invoice"}),(0,r.jsxs)("div",{className:"".concat(p().successIcon," ").concat(p().animatedSuccessIcon," ").concat(n?p().visible:""),children:[(0,r.jsx)($.Z,{children:"Invoice successfully submitted"}),"â"]})]})})};var en=t(38275),et=t.n(en);(i=a||(a={})).currencySymbol="currencySymbol",i.major="major",i.minor="minor";let ei=e=>{switch(e){case"currency":case"minusSign":case"plusSign":return"currencySymbol";case"integer":case"group":return"major";case"decimal":case"fraction":return"minor"}},ea=e=>e.reduce((e,n)=>{let t=ei(n.type);return{...e,...t&&{[t]:"".concat(e[t]).concat(n.value)}}},{currencySymbol:"",major:"",minor:""}),er=e=>{let{amount:n,currencyCode:t,options:i={}}=e,{currencySymbol:a,major:o,minor:l}=ea(new Intl.NumberFormat("en-GB",{minimumFractionDigits:2,...t&&{style:"currency",currency:t,currencyDisplay:"narrowSymbol"}}).formatToParts(n/100)),c=!!l&&(!(null==i?void 0:i.removeTrailingZeroes)||".00"!==l);return(0,r.jsxs)("span",{className:et().money,children:[!!a&&a,(0,r.jsx)("em",{children:o}),c&&l]})},eo=e=>{let{subtotal:n,discountAmount:t,vatAmount:i,total:a,currency:o}=e;return(0,r.jsxs)("dl",{className:p().totalsBreakdown,children:[(0,r.jsxs)("div",{className:p().totalItem,children:[(0,r.jsx)("dt",{children:"Subtotal:"}),(0,r.jsx)("dd",{children:(0,r.jsx)("output",{children:(0,r.jsx)(er,{amount:100*n,currencyCode:o})})})]}),(0,r.jsxs)("div",{className:p().totalItem,children:[(0,r.jsx)("dt",{children:"Discounts:"}),(0,r.jsx)("dd",{children:(0,r.jsx)("output",{children:(0,r.jsx)(er,{amount:-(100*t),currencyCode:o})})})]}),(0,r.jsxs)("div",{className:p().totalItem,children:[(0,r.jsx)("dt",{children:"VAT:"}),(0,r.jsx)("dd",{children:(0,r.jsx)("output",{children:(0,r.jsx)(er,{amount:100*i,currencyCode:o})})})]}),(0,r.jsxs)("div",{className:"".concat(p().totalItem," ").concat(p().final),children:[(0,r.jsx)("dt",{children:"Total:"}),(0,r.jsx)("dd",{children:(0,r.jsx)("output",{children:(0,r.jsx)(er,{amount:100*a,currencyCode:o})})})]})]})};var el=t(33604),ec=t(41592),es=t.n(ec);let ed=e=>{let{isOpen:n,onDismiss:t,onSignUpClick:i}=e;return(0,r.jsx)(el.Z,{isOpen:n,onDismiss:t,ariaLabel:"Upgrade to Monzo Business",size:"medium",children:(0,r.jsxs)("div",{className:es().content,children:[(0,r.jsx)("div",{className:es().imageContainer,children:(0,r.jsx)("img",{src:"https://images.ctfassets.net/ro61k101ee59/7oEXX4PbRe3WGUD24YRMBv/ce24fc33a60538931cecce8146ca5e73/invoice-upsell-1x.png",srcSet:"https://images.ctfassets.net/ro61k101ee59/7oEXX4PbRe3WGUD24YRMBv/ce24fc33a60538931cecce8146ca5e73/invoice-upsell-1x.png 1x, https://images.ctfassets.net/ro61k101ee59/6EjynPLIwtPYOjGOe21D2a/e31f11538708f60227ba5156b53c11e6/invoice-upsell-2x.png 2x",alt:"Monzo Business invoicing illustration",className:es().upsellImage})}),(0,r.jsxs)("div",{className:es().textContent,children:[(0,r.jsx)("h2",{className:es().title,children:"Want an easier way to keep track of all your invoices?"}),(0,r.jsx)("p",{className:es().description,children:"To access the full benefits of Monzo invoices, including saving time on repetitive admin, getting paid faster with payment links and auto-reconciliation, sign-up to Monzo Business. Invoices are available on Pro and Team starting from \xa39 per month."}),(0,r.jsx)("p",{className:es().terms,children:"Only sole traders or limited company directors in the UK can apply. Ts&Cs apply."})]}),(0,r.jsx)("div",{className:es().buttonContainer,children:(0,r.jsx)(v.z,{styleType:"primary",fullWidth:!0,onClick:i,analytics:{action:"invoice-generator-upsell-signup",category:"upsell-modal",label:"Apply for a business account"},children:"Apply for a business account"})})]})})},eu="monzo_free_invoice_count",em={invoiceNumber:"",invoiceDate:"",dueDate:(0,o.Z)(new Date,"yyyy-MM-dd"),supplyDate:"",billTo:"",invoiceSummary:"",currency:"GBP",businessDetail
1s:"",businessEmail:"",vatNumber:"",notes:"",bankAccountDetails:"",items:[{description:"",quantity:1,unitPrice:0,billingUnit:"item",taxPercentage:0,discount:0}]},ev=()=>{let[e,n]=l.useState(!1),[t,i]=l.useState(!1),[a,o]=l.useState(null),[u,m]=l.useState(null),[v,_]=l.useState(!1),x=l.useRef(null),g=l.useRef(null),{control:y,handleSubmit:b,reset:I,setValue:f,watch:j}=(0,c.cI)({defaultValues:em,mode:"onBlur",reValidateMode:"onChange"}),T=j(),C=l.useRef(T.currency);l.useEffect(()=>{T.currency!==C.current&&(f("items",[{description:"",quantity:1,unitPrice:0,billingUnit:"item",taxPercentage:0,discount:0}]),C.current=T.currency)},[T.currency,f]);let D=()=>{I(),o(null),x.current&&(x.current.value="")};l.useEffect(()=>{if(!e||!t)return;let a=()=>{setTimeout(()=>{n(!1),i(!1)},0)};return document.addEventListener("input",a),document.addEventListener("change",a),()=>{document.removeEventListener("input",a),document.removeEventListener("change",a)}},[e,t]);let F=R(T.items,T.currency),W=S(T.items,T.currency),Z=k(T.items,T.currency);return(0,r.jsxs)("form",{className:p().form,onSubmit:b(e=>{let t=e.items.filter(n=>{let t=n.description.trim().length>0,i=B(n.unitPrice,e.currency);return t&&i>0});if(0===t.length){m("Please add at least one item with a description and price"),setTimeout(()=>{var e;return null===(e=g.current)||void 0===e?void 0:e.focus()},100);return}
1!function(e,n){n(null);let t=function(e){let n=R(e.items),t=S(e.items),i=k(e.items),a=navigator.userAgent,r=/android/i.test(a)||/iPad|iPhone|iPod/.test(a)?"".concat(A().invoiceContainer," ").concat(A().mobileOptimized):A().invoiceContainer;return'<div class="'.concat(r,'">\n ').concat(function(e){var n,t,i;let a=(null!==(n=e.businessDetails)&&void 0!==n?n:"").split("\n");return'\n <div class="'.concat(A().invoiceDetailsSection,'">\n <div class="').concat(A().invoiceDetails,'">\n <h1>').concat(U(null!==(t=null==e?void 0:e.invoiceSummary)&&void 0!==t?t:""),'</h1>\n <dl class="').concat(A().invoiceProperties,'">\n <div class="').concat(A().invoicePropertiesRow,'">\n <dt class="').concat(A().invoicePropertiesKey,'">Invoice Number:</dt>\n <dd class="').concat(A().invoicePropertiesValue,'">\n ').concat(U(null!==(i=null==e?void 0:e.invoiceNumber)&&void 0!==i?i:""),"\n </dd>\n </div>\n ").concat((null==e?void 0:e.invoiceDate)?'\n <div class="'.concat(A().invoicePropertiesRow,'">\n <dt class="').concat(A().invoicePropertiesKey,'">Invoice Date:</dt>\n <dd class="').concat(A().invoicePropertiesValue,'">\n ').concat(U(V(e.invoiceDate)),"\n </dd>\n </div>"):"","\n ").concat((null==e?void 0:e.dueDate)?'\n <div class="'.concat(A().invoicePropertiesRow,'">\n <dt class="').concat(A().invoicePropertiesKey,'">Due Date:</dt>\n <dd class="').concat(A().invoicePropertiesValue,'">\n ').concat(U(V(e.dueDate)),"\n </dd>\n </div>"):"","\n ").concat((null==e?void 0:e.supplyDate)?'\n <div class="'.concat(A().invoicePropertiesRow,'">\n <dt class="').concat(A().invoicePropertiesKey,'">Supply Date:</dt>\n <dd class="').concat(A().invoicePropertiesValue,'">\n ').concat(U(V(e.supplyDate)),"\n </dd>\n </div>"):"","\n </dl>\n </div>\n ").concat(e.businessLogo?'<div class="'.concat(A().logoSection,'">\n <img class="').concat(A().logo,'" src="').concat(e.businessLogo,'" alt="Business Logo" />\n </div>'):"<div></div>",'\n <div class="').concat(A().customerDetails,'">\n <h2>Billed to:</h2>\n <p>').concat((e.billTo||"").split("\n").map(U).join("<br />"),'</p>\n </div>\n <div class="').concat(A().businessDetails,'">\n <h2>').concat(U(a[0]||""),"</h2>\n <p>").concat(a.slice(1).map(U).join("<br />"),"</p>\n <p>\n ").concat(e.businessEmail?U(e.businessEmail):"","<br />\n ").concat(e.vatNumber?"VAT: ".concat(U(e.vatNumber),"<br />"):"","\n </p>\n </div>\n </div>")}(e),"\n ").concat(function(e,n){let{subtotal:t,discountAmount:i,vatAmount:a,totalDue:r}=n,o=i>0;return'\n <table class="'.concat(A().invoiceItems,'">\n <thead>\n <tr>\n <th>Items</th>\n <th class="').concat(A().alignRight,'">Quantity</th>\n <th class="').concat(A().alignRight,'">Unit</th>\n <th class="').concat(A().alignRight,'">Tax</th>\n ').concat(o?'<th class="'.concat(A().alignRight,'">Discount</th>'):"",'\n <th class="').concat(A().alignRight,'">Total</th>\n </tr>\n </thead>\n <tbody>').concat(e.items.map(n=>{let t=Number(n.quantity)||0,i=B(n.unitPrice,e.currency),a=B(n.discount,e.currency),r=Number(n.taxPercentage)||0,l=t*i;return"<tr><td><strong>".concat(U(n.description),'</strong></td><td class="').concat(A().alignRight,'">').concat(U("".concat(t)),'</td><td class="').concat(A().alignRight,'">').concat(U(z(i,e.currency)),'</td><td class="').concat(A().alignRight,'">').concat(U("".concat(r)),"%</td>").concat(o?'<td class="'.concat(A().alignRight,'">').concat(U(z(-a,e.currency)),"</td>"):"",'<td class="').concat(A().alignRight,'">').concat(U(z(l+r/100*l-a,e.currency)),"</td></tr>")}).join(""),'</tbody>\n </table>\n <div class="').concat(A().paymentTotalSection,'">\n <div class="').concat(A().paymentDetails,'">\n <h2>Payment Details</h2>\n <dl class="').concat(A().invoiceProperties,'">\n ').concat(e.bankAccountDetails.split("\n").map(U).join("<br />"),'\n </dl>\n </div>\n <div class="').concat(A().totalDetails,'">\n <dl>\n <div class="').concat(A().totalsRow,'">\n <dt>\n Subtotal\n ').concat(o?'<span class="'.concat(A().subtitle,'">Including discount</span>'):"",'\n </dt>\n <dd class="').concat(A().totalsValue," ").concat(A().subtotal,'">\n ').concat(U(z(t,e.currency)),"\n </dd>\n </div>\n ").concat(o?'<div class="'.concat(A().totalsRow,'">\n <dt>Discount</dt>\n <dd class="').concat(A().totalsValue,'">\n ').concat(U(z(-i,e.currency)),"\n </dd>\n </div>"):"",'\n <div class="').concat(A().totalsRow,'">\n <dt>Tax</dt>\n <dd class="').concat(A().totalsValue,'">\n ').concat(U(z(a,e.currency)),'\n </dd>\n </div>\n <div class="').concat(A().totalsRow," ").concat(A().total,'">\n <dt>Total</dt>\n <dd class="').concat(A().totalsValue,'">').concat(U(z(r,e.currency)),"</dd>\n </div>\n </dl>\n </div>\n </div>\n ").concat(e.notes?'<div class="'.concat(A().paymentTotalSection,'">\n <div class="').concat(A().paymentDetails,'">\n <h2>Notes</h2>\n <dl class="').concat(A().invoiceProperties,'">').concat(U(e.notes),"</dl>\n </div>\n </div>"):"",'\n <div class="').concat(A().totalBanner,'">\n <div class="').concat(A().totalDue,'">\n ').concat(U(z(r,e.currency))).concat(e.dueDate?" due ".concat(U(V(e.dueDate))):"",'\n </div>\n </div>\n <footer class="').concat(A().footer,'">
1\n Generated by\n ').concat(M,'\n |\n <span class="').concat(A().cta,"\">Try out Monzo's free invoice template</span>\n </footer>")}(e,{subtotal:n,discountAmount:t,vatAmount:i,totalDue:n-t+i}),"\n </div>")}(e),i=document.createElement("div");i.style.position="fixed",i.style.left="-9999px",i.style.top="0",i.style.width="210mm",i.innerHTML=t,document.body.appendChild(i),P()(i,{scale:2,useCORS:!0,width:i.scrollWidth,height:i.scrollHeight}).then(n=>{let t=n.toDataURL("image/png"),i=new w.kH("p","mm","a4"),a=i.getImageProperties(t),r=210*a.height/a.width;if(r<=297)i.addImage(t,"PNG",0,0,210,r),i.link(55,r-6,60,3,{url:"https://monzo.com/invoice-generator/"});else{let e=0,n=r;for(i.addImage(t,"PNG",0,e,210,r),n-=297;n>0;)e-=297,i.addPage(),i.addImage(t,"PNG",0,e,210,r),n-=297;i.link(75,291,130,3,{url:"https://monzo.com/invoice-generator/"})}i.save("Monzo_invoice_".concat(e.invoiceNumber))}).catch(()=>{n("Failed to generate PDF. Please try again.")}).finally(()=>{document.body.removeChild(i)})}(e,a=>{if(!a){let a=function(){try{let e=function(){try{let e=window.localStorage.getItem(eu);if(!e)return 0;let n=Number(e);return isNaN(n)?0:n}catch(e){return 0}}()+1;return window.localStorage.setItem(eu,e.toString()),e}catch(e){return 0}}();(0,d.F$)({name:"invoice_generated",type:"conversion",params:{total_invoices_generated:a.toString(),currency:e.currency,item_count:t.length.toString()}}),a>0&&a%3==0&&_(!0),i(!0),n(!0),setTimeout(()=>{D()},200)}m(a)})}),children:[(0,r.jsxs)("div",{className:p().formGrid,children:[(0,r.jsx)(N,{control:y}),(0,r.jsx)(h,{control:y,previewUrl:a,fileInputRef:x,onLogoUpload:e=>{var n;let t=null===(n=e.target.files)||void 0===n?void 0:n[0];if(t){let e=new FileReader;e.onload=()=>{"string"==typeof e.result&&(o(e.result),f("businessLogo",e.result))},e.readAsDataURL(t)}},onRemoveLogo:()=>{f("businessLogo",void 0),o(null),x.current&&(x.current.value="")}}),(0,r.jsx)(K,{control:y,currency:T.currency}),(0,r.jsx)(J,{control:y}),(0,r.jsx)(eo,{subtotal:F,discountAmount:W,vatAmount:Z,total:F-W+Z,currency:T.currency}),u&&(0,r.jsx)("div",{ref:g,role:"alert",tabIndex:-1,className:p().formError,children:u}),(0,r.jsx)(ee,{isSubmitted:e,isAnimating:t})]}),(0,r.jsx)(ed,{isOpen:v,onDismiss:()=>{_(!1)},onSignUpClick:()=>{window.open(s.to,"_blank"),_(!1)}})]})}},33604:function(e,n,t){"use strict";t.d(n,{Z:function(){return i.xgs}});var i=t(65481)},7729:function(e,n,t){"use strict";t.d(n,{Z:function(){return i.Zic}});var i=t(65481)},50796:function(e,n,t){"use strict";var i=t(52322),a=t(79130),r=t.n(a),o=t(2784),l=t(65826),c=t(34534),s=t.n(c);let d=r().bind(s()),u=(0,o.forwardRef)((e,n)=>{let{label:t,disabled:a,invalid:r,required:c,placeholder:u,fullWidth:m,errorText:v,hintText:_,value:p,onChange:h}=e,[x]=(0,o.useContext)(l.N),g=d({TextArea:!0,dark:x.darkMode,light:!x.darkMode}),y=d({input:!0,fullWidth:m});return(0,i.jsxs)("label",{className:g,children:[t,(0,i.jsx)("textarea",{ref:n,onChange:h,disabled:a,"aria-invalid":r,required:c,placeholder:u,className:y,value:p}),(0,i.jsx)("p",{className:"".concat(v?s().error:s().hint),children:v||_})]})});n.Z=u},82145:function(e,n,t){"use strict";var i=t(52322),a=t(79130),r=t.n(a),o=t(2784),l=t(65826),c=t(3906),s=t.n(c);let d=r().bind(s()),u=(0,o.forwardRef)((e,n)=>{let{type:t="text",label:a,disabled:r,invalid:c,required:u,showRequiredIndicator:m=!1,placeholder:v,fullWidth:_,errorText:p,hintText:h,suffix:x,value:g="",prefix:y,className:b,labelBelow:I,...f}=e,[j]=(0,o.useContext)(l.N),T="".concat(b," ").concat(d({TextInput:!0,dark:j.darkMode,light:!j.darkMode})),C=d({fullWidth:_});return(0,i.jsxs)("label",{className:T,children:[m?(0,i.jsxs)("div",{className:s().labelWithRequiredIndicator,children:[(0,i.jsx)("span",{children:a}),(0,i.jsx)("span",{"aria-hidden":!0,children:"*"})]}):(0,i.jsx)(i.Fragment,{children:a}),(0,i.jsxs)("div",{className:"".concat(s().horizontalContainer," ").concat(C),children:[(0,i.jsxs)("div",{className:"".concat(s().input," ").concat(s().horizontalContainer),children:[y&&(0,i.jsx)("p",{className:s().prefix,children:y}),(0,i.jsx)("input",{ref:n,...f,type:t,disabled:r,"aria-invalid":c,required:u,placeholder:v,className:s().nestedInput,value:g})]}),x&&(0,i.jsx)("p",{className:s().suffix,children:x})]}),(0,i.jsx)("p",{className:"".concat(p?s().error:s().hint),children:p||h}),(0,i.jsx)("p",{className:"".concat(s().labelBelow),children:I})]})});n.Z=u},54561:function(e){e.exports={CurrencyInput:"CurrencyInput_CurrencyInput__1l1kq",dark:"CurrencyInput_dark__FUxzP",input:"CurrencyInput_input__61I0h",error:"CurrencyInput_error__YgIlc",hint:"CurrencyInput_hint__puqKU",light:"CurrencyInput_light__Dx006",labelBelow:"CurrencyInput_labelBelow__Ljya8",fullWidth:"CurrencyInput_fullWidth__9sw62",horizontalContainer:"CurrencyInput_horizontalContainer__PqUt1",prefix:"CurrencyInput_prefix__6uX75",suffix:"CurrencyInput_suffix__C5G34",nestedInput
1:"CurrencyInput_nestedInput__1Ire3",withCurrencySymbol:"CurrencyInput_withCurrencySymbol__hK_la",labelWithRequiredIndicator:"CurrencyInput_labelWithRequiredIndicator__EXPpH",currencySymbol:"CurrencyInput_currencySymbol__Y7HpR",inputContainer:"CurrencyInput_inputContainer__EunnS",clearButton:"CurrencyInput_clearButton__2JUlc"}},34341:function(e){e.exports={DateInput:"DateInput_DateInput__ud3ZP",dark:"DateInput_dark__0_Zwa",input:"DateInput_input__Rm18O",error:"DateInput_error__Zuwjv",hint:"DateInput_hint__ZG485",light:"DateInput_light__qJkQR",labelBelow:"DateInput_labelBelow__qNeBC",fullWidth:"DateInput_fullWidth__1aby_",horizontalContainer:"DateInput_horizontalContainer__BQ5FF",prefix:"DateInput_prefix__06Qn_",suffix:"DateInput_suffix__useBr",nestedInput:"DateInput_nestedInput__iCp1e",labelWithRequiredIndicator:"DateInput_labelWithRequiredIndicator__W5_S1",inputContainer:"DateInput_inputContainer__r7hIT",datepickerContainer:"DateInput_datepickerContainer__L6cHb"}},14058:function(e){e.exports={form:"InvoiceForm_form__WeQ5v",formGrid:"InvoiceForm_formGrid__i3sFH",heading:"InvoiceForm_heading__eNCgj",fullWidth:"InvoiceForm_fullWidth__XRJph",dateFieldsContainer:"InvoiceForm_dateFieldsContainer__u1A5l",logoInput:"InvoiceForm_logoInput__mGaQP",logoUpload:"InvoiceForm_logoUpload__uIue_",logoUploadLabel:"InvoiceForm_logoUploadLabel__KuQjF",mainText:"InvoiceForm_mainText__BV9Rj",subtitle:"InvoiceForm_subtitle__2_LCO",logoUploadIcon:"InvoiceForm_logoUploadIcon__QXB79",logoPreviewContainer:"InvoiceForm_logoPreviewContainer__3fvA_",logoPreview:"InvoiceForm_logoPreview__NG_cM",logoActions:"InvoiceForm_logoActions__1XdjR",itemRow:"InvoiceForm_itemRow__lAV8h",addItemButton:"InvoiceForm_addItemButton__SVha0",removeButtonWrapper:"InvoiceForm_removeButtonWrapper__zM8bJ",totalsBreakdown:"InvoiceForm_totalsBreakdown__I7cgW",totalItem:"InvoiceForm_totalItem__X__AU",final:"InvoiceForm_final__Kngct",totalColumn:"InvoiceForm_totalColumn__5olt0",actions:"InvoiceForm_actions__cm4PM",successContainer:"InvoiceForm_successContainer__NYJVH",successIcon:"InvoiceForm_successIcon__6veI4",submitButtonContainer:"InvoiceForm_submitButtonContainer__ZmBhl",submitButton:"InvoiceForm_submitButton__D_xoD",hidden:"InvoiceForm_hidden__q0tYI",animatedSuccessIcon:"InvoiceForm_animatedSuccessIcon__7MvUH",visible:"InvoiceForm_visible__i8v67",secondaryActions:"InvoiceForm_secondaryActions__6_JV1",formError:"InvoiceForm_formError__m_rmB"}},90082:function(e){e.exports={invoiceContainer:"InvoiceTemplate_invoiceContainer__wI_1g",spacingBelow:"InvoiceTemplate_spacingBelow__2cYsy",overlay:"InvoiceTemplate_overlay___zAwZ",invoiceDetailsSection:"InvoiceTemplate_invoiceDetailsSection__26zXS",invoiceDetails:"InvoiceTemplate_invoiceDetails__0kc9k",logoSection:"InvoiceTemplate_logoSection__Bs9F1",logo:"InvoiceTemplate_logo__lW3cn",invoiceProperties:"InvoiceTemplate_invoiceProperties__5xHHn",invoicePropertiesRow:"InvoiceTemplate_invoicePropertiesRow__sLRtn",invoicePropertiesKey:"InvoiceTemplate_invoicePropertiesKey__XygUu",invoicePropertiesValue:"InvoiceTemplate_invoicePropertiesValue__7wW9_",totalBanner:"InvoiceTemplate_totalBanner__aE5ee",bannerDescription:"InvoiceTemplate_bannerDescription__HZEfo",totalDue:"InvoiceTemplate_totalDue__ezO2_",payInvoiceButton:"InvoiceTemplate_payInvoiceButton__Ti7T3",alignRight:"InvoiceTemplate_alignRight__V_1re",invoiceItems:"InvoiceTemplate_invoiceItems__2FPRV",mobileOptimized:"InvoiceTemplate_mobileOptimized__PfnWq",continued:"InvoiceTemplate_continued__ET_TF",paymentTotalSection:"InvoiceTemplate_paymentTotalSection__4pLCU",paymentDetails:"InvoiceTemplate_paymentDetails__bMRYJ",totalDetails:"InvoiceTemplate_totalDetails__Ymb0A",totalsRow:"InvoiceTemplate_totalsRow__tm0Di",total:"InvoiceTemplate_total__nc_5T",totalsValue:"InvoiceTemplate_totalsValue__mf4F9",subtotal:"InvoiceTemplate_subtotal__r4kYr",subtitle:"InvoiceTemplate_subtitle__sDYwD",discountLabel:"InvoiceTemplate_discountLabel__UfBB2",secondPage:"InvoiceTemplate_secondPage__Litsg",footer:"InvoiceTemplate_footer__x9EwM",cta:"InvoiceTemplate_cta__oFlce"}},41592:function(e){e.exports={content:"InvoiceUpsellModal_content___z_ng",imageContainer:"InvoiceUpsellModal_imageContainer__Jah8D",upsellImage:"InvoiceUpsellModal_upsellImage__baRWZ",textContent:"InvoiceUpsellModal_textContent__4RdHz",title:"InvoiceUpsellModal_title__FIP_r",description:"InvoiceUpsellModal_description__tWcwz",terms:"InvoiceUpsellModal_terms__xAxkX",buttonContainer:"InvoiceUpsellModal_buttonContainer__MVbsN"}},38275:function(e){e.exports={money:"Money_money__79B6L"}},34534:function(e){e.exports={TextArea:"TextArea_TextArea__3zlU_",dark:"TextArea_dar
1k__2NBlZ",input:"TextArea_input__IHFJ8",error:"TextArea_error__05qFq",hint:"TextArea_hint__Yv2TY",light:"TextArea_light__MG201",labelBelow:"TextArea_labelBelow__WZFoL",fullWidth:"TextArea_fullWidth__eLbML",horizontalContainer:"TextArea_horizontalContainer__vWnfa",prefix:"TextArea_prefix__6PtA_",suffix:"TextArea_suffix__Xeh2m"}},3906:function(e){e.exports={TextInput:"TextInput_TextInput__ZYEm6",dark:"TextInput_dark__vQbw3",input:"TextInput_input__Hot8j",error:"TextInput_error__h_y2b",hint:"TextInput_hint__QS3qF",light:"TextInput_light__qNtTN",labelBelow:"TextInput_labelBelow__Pfjhm",fullWidth:"TextInput_fullWidth__mlySF",horizontalContainer:"TextInput_horizontalContainer___lWH_",prefix:"TextInput_prefix___CHe7",suffix:"TextInput_suffix__z_OjI",nestedInput:"TextInput_nestedInput__rpWWg",labelWithRequiredIndicator:"TextInput_labelWithRequiredIndicator__2LBxz"}}}]);
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.