@actual-app/web 22.10.25 → 23.1.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/build/asset-manifest.json +15 -15
  2. package/build/index.html +1 -1
  3. package/build/kcab/kcab.worker.23b27ae2569ade5c8b6a.js +31 -0
  4. package/build/kcab/kcab.worker.23b27ae2569ade5c8b6a.js.map +1 -0
  5. package/build/kcab/{xfo.kcab.worker.f4a8ab06d7e2c88f7f6e.js → xfo.kcab.worker.23b27ae2569ade5c8b6a.js} +1 -1
  6. package/build/precache-manifest.6fe4d0d632bdeec60ba5984d5bfdf996.js +46 -0
  7. package/build/service-worker.js +1 -1
  8. package/build/static/css/{3.a6a0524b.chunk.css → 3.9c684ae6.chunk.css} +1 -1
  9. package/build/static/css/3.9c684ae6.chunk.css.map +1 -0
  10. package/build/static/js/{1.657c2a9a.chunk.js → 1.4d133bfd.chunk.js} +2 -2
  11. package/build/static/js/{1.657c2a9a.chunk.js.map → 1.4d133bfd.chunk.js.map} +1 -1
  12. package/build/static/js/{2.50af9f75.chunk.js → 2.9748b50f.chunk.js} +2 -2
  13. package/build/static/js/{2.50af9f75.chunk.js.map → 2.9748b50f.chunk.js.map} +1 -1
  14. package/build/static/js/3.7e99af7c.chunk.js +2 -0
  15. package/build/static/js/3.7e99af7c.chunk.js.map +1 -0
  16. package/build/static/js/{browser-server.fa9d8cca.worker.js → browser-server.9a112312.worker.js} +1 -1
  17. package/build/static/js/browser-server.9a112312.worker.js.map +1 -0
  18. package/build/static/js/main.d501832e.chunk.js +2 -0
  19. package/build/static/js/main.d501832e.chunk.js.map +1 -0
  20. package/build/static/js/{runtime~main.428bbd96.js → runtime~main.ef310954.js} +2 -2
  21. package/build/static/js/{runtime~main.428bbd96.js.map → runtime~main.ef310954.js.map} +1 -1
  22. package/package.json +10 -2
  23. package/build/kcab/kcab.worker.f4a8ab06d7e2c88f7f6e.js +0 -31
  24. package/build/kcab/kcab.worker.f4a8ab06d7e2c88f7f6e.js.map +0 -1
  25. package/build/precache-manifest.b814e5af3be037d43659e47b2d36bef5.js +0 -46
  26. package/build/static/css/3.a6a0524b.chunk.css.map +0 -1
  27. package/build/static/js/3.fdb32b25.chunk.js +0 -2
  28. package/build/static/js/3.fdb32b25.chunk.js.map +0 -1
  29. package/build/static/js/browser-server.fa9d8cca.worker.js.map +0 -1
  30. package/build/static/js/main.ea66fd56.chunk.js +0 -2
  31. package/build/static/js/main.ea66fd56.chunk.js.map +0 -1
@@ -0,0 +1,2 @@
1
+ (window.webpackJsonp=window.webpackJsonp||[]).push([[0],{1:function(e,t,n){"use strict";(function(e){n.d(t,"z",function(){return W}),n.d(t,"C",function(){return $}),n.d(t,"c",function(){return G}),n.d(t,"g",function(){return Y}),n.d(t,"r",function(){return K}),n.d(t,"b",function(){return Q}),n.d(t,"i",function(){return Z}),n.d(t,"e",function(){return J}),n.d(t,"d",function(){return X}),n.d(t,"f",function(){return re}),n.d(t,"n",function(){return le}),n.d(t,"o",function(){return ue}),n.d(t,"w",function(){return fe}),n.d(t,"h",function(){return he}),n.d(t,"s",function(){return Pe}),n.d(t,"a",function(){return Ie}),n.d(t,"v",function(){return Re}),n.d(t,"t",function(){return qe}),n.d(t,"u",function(){return Ke}),n.d(t,"m",function(){return Qe}),n.d(t,"j",function(){return Je}),n.d(t,"l",function(){return Xe}),n.d(t,"k",function(){return et}),n.d(t,"q",function(){return nt});var r=n(0),a=n.n(r),o=n(298),l=n(299),i=n.n(l),c=n(32),s=n(48),u=n(179),d=n(12),f=n(118),p=(n(9),n(134)),m=n(2),y=n(112),g=n(67),h=n(84),b=n(90),O=n(184),w=n(45);n.d(t,"B",function(){return w.a}),n.d(t,"y",function(){return b.a});var E=n(284);n.d(t,"x",function(){return E.a});var v=n(166);n.d(t,"p",function(){return v.a}),n.d(t,"A",function(){return v.b}),n.d(t,"D",function(){return v.c});const j=["children","centered"],S=["style","innerRef"],x=["children"],C=["style","children"],k=["asAnchor","children"],P=["history","staticContext","to","style","activeStyle","match","location"],A=["children","pressed","primary","hover","bare","style","disabled","hoveredStyle","activeStyle","as"],D=["loading","children"],B=["style","inputRef","onEnter","onUpdate","focused"],I=["leftContent","rightContent","inputStyle","style","getStyle"],T=["style","children"],M=["left","right","style","leftStyle","rightStyle","truncate"],R=["style","isLast","children"];function _(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return L(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return L(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function L(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function N(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function F(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?N(Object(n),!0).forEach(function(t){U(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):N(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function U(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function z(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function W(e){let t=e.children,n=(e.centered,z(e,j));return a.a.createElement(b.a,Object.assign({numberOfLines:1},n),t)}const $=e=>{const t=Object(r.useRef)(),n=Object(r.useCallback)((...e)=>t.current(...e),[]);return Object(r.useLayoutEffect)(()=>{t.current=e}),n};function G(e){e.style;const t=e.innerRef,n=z(e,S);return a.a.createElement("div",Object.assign({},n,{ref:t,className:`${e.className||""} ${Object(d.css)(e.style)}`}))}var H={marginTop:15,marginLeft:5,marginRight:5,borderRadius:6,backgroundColor:"white",borderColor:m.a.p3,boxShadow:"0 1px 2px #9594A8"},q={borderRadius:6,overflow:"hidden"};const Y=a.a.forwardRef((e,t)=>{let n=e.children,r=z(e,x);return a.a.createElement(w.a,Object.assign({},r,{ref:t,style:[H,r.style]}),a.a.createElement(w.a,{style:q},n))});var V={textDecoration:"none",color:m.c.textColor,backgroundColor:"transparent",border:0,cursor:"pointer",padding:0,font:"inherit",":hover":{textDecoration:"underline"}};function K(e){let t=e.style,n=e.children,r=z(e,C);return a.a.createElement(X,Object.assign({},Object(d.css)(V,m.c.smallText,t),r),n)}function Q({to:e,exact:t,style:n,activeStyle:r,children:o}){let l=Object(c.j)({path:e,exact:!0});return a.a.createElement(s.b,Object.assign({to:e,exact:t},Object(d.css)([m.c.smallText,n,l?r:null])),o)}const Z=a.a.forwardRef((e,t)=>{let n=e.asAnchor,r=e.children,o=z(e,k);function l(e){e.preventDefault(),window.Actual.openURLInBrowser(o.href)}return n?a.a.createElement("a",Object.assign({ref:t},o,{onClick:l}),r):a.a.createElement(X,Object.assign({ref:t,bare:!0},o,{onClick:l}),r)});const J=Object(c.k)(function(e){let t=e.history,n=(e.staticContext,e.to),r=e.style,o=e.activeStyle,l=(e.match,e.location,z(e,P));return a.a.createElement(c.b,{path:n,children:({match:e})=>a.a.createElement(X,Object.assign({style:[r,e?o:null]},l,{onClick:e=>{l.onClick&&l.onClick(e),t.push(n)}}))})}),X=a.a.forwardRef((e,t)=>{let n=e.children,r=e.pressed,o=e.primary,l=e.hover,i=e.bare,c=e.style,s=e.disabled,u=e.hoveredStyle,f=e.activeStyle,p=e.as,y=void 0===p?"button":p,g=z(e,A);u=[i?{backgroundColor:"rgba(100, 100, 100, .15)"}:F({},m.c.shadow),u],f=[i?{backgroundColor:"rgba(100, 100, 100, .25)"}:{transform:"translateY(1px)",boxShadow:!i&&(o?"0 1px 4px 0 rgba(0,0,0,0.3)":"0 1px 4px 0 rgba(0,0,0,0.2)"),transition:"none"},f];let h=y,b=[F({alignItems:"center",justifyContent:"center",flexShrink:0,padding:i?"5px":"5px 10px",margin:0,overflow:"hidden",display:"flex",borderRadius:4,backgroundColor:i?"transparent":o?s?m.a.n7:m.a.p5:"white",border:i?"none":"1px solid "+(o?s?m.a.n7:m.a.p5:m.a.n9),color:o?"white":s?m.a.n6:m.a.n1,transition:"box-shadow .25s"},m.c.smallText),{":hover":!s&&u},{":active":!s&&f},l&&u,r&&f,c];return a.a.createElement(h,Object.assign({ref:t},"string"===typeof y?Object(d.css)(b):{style:b},{disabled:s},g),n)});var ee={position:"relative"},te={position:"absolute",top:0,left:0,right:0,bottom:0,alignItems:"center",justifyContent:"center"},ne={width:20,height:20,color:"currentColor"};const re=a.a.forwardRef((e,t)=>{let n=e.loading,r=e.children,o=z(e,D);return a.a.createElement(X,Object.assign({},o,{style:[ee,o.style]}),n&&a.a.createElement(w.a,{style:te},a.a.createElement(g.a,{color:"currentColor",style:ne})),a.a.createElement(w.a,{style:{opacity:n?0:1,flexDirection:"row",alignItems:"center"}},r))}),ae={outline:0,backgroundColor:"white",margin:0,padding:5,borderRadius:4,border:"1px solid #d0d0d0"};var oe={":focus":{border:"1px solid "+m.a.b5,boxShadow:"0 1px 1px "+m.a.b7},"::placeholder":{color:m.a.n7}};function le(e){let t=e.style,n=e.inputRef,l=e.onEnter,i=e.onUpdate,c=e.focused,s=z(e,B),u=Object(r.useRef)();return Object(O.b)(u,c),a.a.createElement("input",Object.assign({ref:n?Object(o.a)([n,u]):u},Object(d.css)(ae,oe,m.c.smallText,t),s,{onKeyDown:e=>{13===e.keyCode&&l&&l(e),s.onKeyDown&&s.onKeyDown(e)},onChange:e=>{i&&i(e.target.value),s.onChange&&s.onChange(e)}}))}var ie={padding:0,flex:1,flexDirection:"row",alignItems:"center"},ce={border:"1px solid "+m.a.b5,boxShadow:"0 1px 1px "+m.a.b7},se={flex:1,"&, &:focus, &:hover":{border:0,backgroundColor:"transparent",boxShadow:"none",color:"inherit"}};function ue(e){let t=e.leftContent,n=e.rightContent,o=e.inputStyle,l=e.style,i=e.getStyle,c=z(e,I),s=_(Object(r.useState)(!1),2),u=s[0],d=s[1];return a.a.createElement(w.a,{style:[ae,ie,u&&ce,l,i&&i(u)]},t,a.a.createElement(le,Object.assign({},c,{style:[o,se],onFocus:e=>{d(!0),c.onFocus&&c.onFocus(e)},onBlur:e=>{d(!1),c.onBlur&&c.onBlur(e)}})),n)}m.a.n3,m.a.p6;var de={backgroundColor:"transparent",height:28,fontSize:14,flex:1,border:"1px solid #d0d0d0",borderRadius:4,color:m.a.n1,":focus":{border:"1px solid "+m.a.b5,boxShadow:"0 1px 1px "+m.a.b7,outline:"none"}};const fe=a.a.forwardRef((e,t)=>{let n=e.style,r=e.children,o=z(e,T);return a.a.createElement("select",Object.assign({ref:t},Object(d.css)(de,n),o),r)});var pe={lineHeight:"1em"},me={borderWidth:0,padding:5,borderRadius:4},ye={width:7,height:7,paddingTop:3},ge={zIndex:1e4,outline:0,borderRadius:4};function he({options:e,value:t,onChange:n,style:r}){return a.a.createElement(u.b,{value:t,onChange:n,style:pe},a.a.createElement(u.a,Object.assign({},Object(d.css)([me,r]),{arrow:a.a.createElement(p.a,{style:ye})})),a.a.createElement(u.e,{style:ge},a.a.createElement(u.c,null,e.map(([e,t])=>a.a.createElement(u.d,{key:e,value:e},t)))))}var be={fontSize:10,color:m.a.n6};function Oe({keyName:e}){return a.a.createElement(b.a,{style:be},e)}var we={outline:"none",borderRadius:4,overflow:"hidden"},Ee={margin:"3px 0px"},ve={borderTop:"1px solid "+m.a.n10},je={color:m.a.n6,fontSize:11,lineHeight:"1em",textTransform:"uppercase",margin:"3px 9px"},Se={color:m.a.n7},xe={backgroundColor:m.a.n10},Ce={lineHeight:0},ke={flex:1};function Pe({header:e,footer:t,items:n,onMenuSelect:o}){let l=Object(r.useRef)(null),i=n.filter(e=>e),c=_(Object(r.useState)(null),2),s=c[0],u=c[1];return Object(r.useEffect)(()=>{l.current.focus();let e=e=>{let t=i.filter(e=>e&&e!==Pe.line&&e.type!==Pe.label),n=t.indexOf(i[s]),r=e=>i.indexOf(t[e]);switch(e.keyCode){case 38:e.preventDefault(),u(null===s?0:r(Math.max(n-1,0)));break;case 40:e.preventDefault(),u(null===s?0:r(Math.min(n+1,t.length-1)));break;case 13:e.preventDefault(),null!==s&&o&&o(i[s].name)}};return l.current.addEventListener("keydown",e),()=>{l.current.removeEventListener("keydown",e)}},[s]),a.a.createElement(w.a,{style:we,tabIndex:1,innerRef:l},e,i.map((e,t)=>{if(e===Pe.line)return a.a.createElement(w.a,{key:t,style:Ee},a.a.createElement(w.a,{style:ve}));if(e.type===Pe.label)return a.a.createElement(b.a,{style:je},e.name);let n=i[t-1];return a.a.createElement(w.a,{key:e.name,style:[{cursor:"default",padding:"9px 10px",marginTop:0===t||n===Pe.line||n.type===Pe.label?0:-3,flexDirection:"row",alignItems:"center"},e.disabled&&Se,!e.disabled&&s===t&&xe],onMouseEnter:()=>u(t),onMouseLeave:()=>u(null),onClick:t=>!e.disabled&&o&&o(e.name)},a.a.createElement(b.a,{style:Ce},e.icon&&a.a.createElement(e.icon,{width:e.iconSize||10,height:e.iconSize||10,style:{marginRight:7,width:10}})),a.a.createElement(b.a,null,e.text),a.a.createElement(w.a,{style:ke}),e.key&&a.a.createElement(Oe,{keyName:e.key}))}),t)}Pe.line=Symbol("menu-line"),Pe.label=Symbol("menu-label");var Ae={flexDirection:"row",alignItems:"center"},De={marginRight:10},Be={flex:1,textAlign:"right"};function Ie(e){let t=e.left,n=e.right,r=e.style,o=e.leftStyle,l=e.rightStyle,i=e.truncate,c=void 0===i?"left":i,s=z(e,M);const u={textOverflow:"ellipsis",whiteSpace:"nowrap",overflow:"hidden"};return a.a.createElement(w.a,Object.assign({style:[Ae,r]},s),a.a.createElement(G,{style:[De,"left"===c&&u,o]},t),a.a.createElement(G,{style:[Be,"right"===c&&u,l]},n))}var Te={marginBottom:15},Me={lineHeight:"1.5em"};function Re(e){let t=e.style,n=e.isLast,r=e.children,o=z(e,R);return a.a.createElement("div",Object.assign({},o,Object(d.css)(!n&&Te,t,Me)),r)}var _e={display:"none"};function Le({style:e,size:t,noAnimation:n,isCurrent:o,stackIndex:l,children:i}){let c=Object(r.useRef)(null),s=Object(r.useRef)(!1),u=Object(r.useRef)(10*Math.random()-5);return Object(r.useLayoutEffect)(()=>{function e(){o?(c.current.style.transform="translateY(0px) scale(1)",c.current.style.pointerEvents="auto"):(c.current.style.transform=`translateY(-40px) scale(.95) rotate(${u.current}deg)`,c.current.style.pointerEvents="none")}null!=c.current&&(s.current?e():n?(c.current.style.opacity=1,c.current.style.transform="translateY(0px) scale(1)",setTimeout(()=>{c.current&&(c.current.style.transition="opacity .1s, transform .1s cubic-bezier(.42, 0, .58, 1)")},0)):(c.current.style.opacity=0,c.current.style.transform="translateY(10px) scale(1)",setTimeout(()=>{c.current&&(s.current=!0,c.current.style.transition="opacity .1s, transform .1s cubic-bezier(.42, 0, .58, 1)",c.current.style.opacity=1,e())},0)))},[n,o,l]),a.a.createElement(w.a,{innerRef:c,style:[e,t&&{width:t.width,height:t.height},n&&!o&&_e]},i)}var Ne={padding:20,position:"relative",flexShrink:0},Fe={color:m.a.n2,flex:1,alignSelf:"center",textAlign:"center",width:"calc(100% - 40px)"},Ue={fontSize:25,fontWeight:700,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},ze={position:"absolute",right:0,top:0,bottom:0,justifyContent:"center",alignItems:"center"},We={flexDirection:"row",marginRight:15},$e={padding:"10px 10px"},Ge={position:"absolute",top:0,left:0,right:0,bottom:0,backgroundColor:"rgba(255, 255, 255, .6)",alignItems:"center",justifyContent:"center",zIndex:1e3},He={width:20,height:20};function qe({title:t,isCurrent:n,isHidden:o,size:l,padding:c=20,showHeader:s=!0,showTitle:u=!0,showClose:d=!0,showOverlay:p=!0,loading:O=!1,noAnimation:E=!1,focusAfterClose:v=!0,stackIndex:j,parent:S,style:x,contentStyle:C,overlayStyle:k,children:P,onClose:A}){return Object(r.useEffect)(()=>{let e=f.a.getScope();return f.a.setScope("modal"),()=>f.a.setScope(e)},[]),a.a.createElement(i.a,{isOpen:!0,onRequestClose:A,shouldCloseOnOverlayClick:!1,shouldFocusAfterRender:!e.IS_DESIGN_MODE,shouldReturnFocusAfterClose:v,appElement:document.querySelector("#root"),parentSelector:S&&(()=>S),style:{content:F({top:0,left:0,right:0,bottom:0,display:"flex",justifyContent:"center",alignItems:"center",overflow:"visible",border:0,fontSize:14,backgroundColor:"transparent",padding:0,pointerEvents:"auto"},C),overlay:F(F({zIndex:3e3,backgroundColor:p&&0===j?"rgba(0, 0, 0, .1)":"none",pointerEvents:p?"auto":"none"},k),S?{position:"absolute",top:0,left:0,right:0,bottom:0}:{})}},a.a.createElement(Le,{noAnimation:E,isCurrent:n,size:l,style:[{willChange:"opacity, transform",minWidth:"100%",minHeight:0,borderRadius:4,backgroundColor:"white",opacity:o?0:1,[`@media (min-width: ${h.a.breakpoint_narrow})`]:{minWidth:h.a.breakpoint_narrow}},m.c.shadowLarge,x,m.c.lightScrollbar]},s&&a.a.createElement(w.a,{style:Ne},u&&a.a.createElement(w.a,{style:Fe},a.a.createElement(b.a,{style:Ue},t)),a.a.createElement(w.a,{style:ze},a.a.createElement(w.a,{style:We},d&&a.a.createElement(X,{bare:!0,onClick:e=>A(),style:$e},a.a.createElement(y.a,{width:10}))))),a.a.createElement(w.a,{style:{padding:c,paddingTop:0,flex:1}},"function"===typeof P?P():P),O&&a.a.createElement(w.a,{style:Ge},a.a.createElement(g.a,{style:He,color:m.a.n1}))))}var Ye={flexDirection:"row",marginTop:30},Ve={flex:1};function Ke({style:e,leftContent:t,focusButton:n=!1,children:o}){let l=Object(r.useRef)(null);return Object(r.useEffect)(()=>{if(n&&l.current){let e=l.current.querySelector("button:not([data-hidden])");e&&e.focus()}},[n]),a.a.createElement(w.a,{innerRef:l,style:[Ye,e]},t,a.a.createElement(w.a,{style:Ve}),o)}function Qe({label:e,labelWidth:t,children:n,width:r,style:o}){return a.a.createElement("label",Object(d.css)({display:"flex",flexDirection:"row",alignItems:"center",margin:"7px 0",width:r},o),a.a.createElement("div",{style:{width:t||75,textAlign:"right",paddingRight:10}},e,":"),n)}var Ze={color:"red",fontSize:13};function Je({style:e,children:t}){return a.a.createElement(w.a,{style:[Ze,e]},t)}function Xe({children:t}){let n=Object(r.useRef)(null);return Object(r.useEffect)(()=>{n.current&&!e.IS_DESIGN_MODE&&setTimeout(()=>{n.current&&(n.current.focus(),n.current.setSelectionRange(0,1e4))},0)},[]),"function"===typeof t?t(n):a.a.cloneElement(t,{inputRef:n})}class et extends a.a.Component{constructor(...e){super(...e),this.state={hovered:!1},this.onMouseEnter=(()=>{this.props.disabled||this.setState({hovered:!0})}),this.onMouseLeave=(()=>{this.props.disabled||this.setState({hovered:!1})})}componentDidUpdate(e){this.props.disabled&&this.state.hovered&&this.setState({hovered:!1})}render(){let e=this.props,t=e.style,n=e.contentStyle,r=e.children,o=e.renderContent;return a.a.createElement(w.a,{style:t},a.a.createElement(w.a,{onMouseEnter:this.onMouseEnter,onMouseLeave:this.onMouseLeave,style:n},r),this.state.hovered&&o())}}var tt={color:m.a.n2,textAlign:"right",fontSize:12,marginBottom:2};function nt({title:e,style:t}){return a.a.createElement(b.a,{style:[m.c.text,tt,t]},e)}}).call(this,n(17))},101:function(e,t,n){"use strict";n.d(t,"a",function(){return k});var r=n(0),a=n.n(r),o=n(385),l=n(196),i=n(595),c=n(596),s=n(585),u=n(382),d=n(416),f=n.n(d),p=(n(525),n(4)),m=n(2),y=n(1),g=n(417),h=n.n(g),b=n(418),O=n.n(b);function w(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return E(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return E(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function E(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}let v={"& .pika-single.actual-date-picker":{color:m.a.n11,background:m.a.n1,border:"none",boxShadow:"0 0px 4px rgba(0, 0, 0, .25)",borderRadius:4},"& .actual-date-picker":{"& .pika-lendar":{float:"none",width:"auto"},"& .pika-label":{backgroundColor:m.a.n1},"& .pika-prev":{backgroundImage:`url(${h.a})`},"& .pika-next":{backgroundImage:`url(${O.a})`},"& .pika-table th":{color:m.a.n11,"& abbr":{textDecoration:"none"}},"& .pika-button":{backgroundColor:m.a.n2,color:m.a.n11},"& .is-today .pika-button":{textDecoration:"underline"},"& .is-selected .pika-button":{backgroundColor:m.a.n5,boxShadow:"none"}}};var j={flex:1};let S=a.a.forwardRef(({value:e,dateFormat:t,onUpdate:n,onSelect:s},u)=>{let d=Object(r.useRef)(null),p=Object(r.useRef)(null);return Object(r.useImperativeHandle)(u,()=>({handleInputKeyDown(e){let t=null;switch(e.keyCode){case 37:e.preventDefault(),t=o.a(d.current.getDate(),1);break;case 38:e.preventDefault(),t=o.a(d.current.getDate(),7);break;case 39:e.preventDefault(),t=l.a(d.current.getDate(),1);break;case 40:e.preventDefault(),t=l.a(d.current.getDate(),7)}t&&(d.current.setDate(t,!0),n&&n(t))}}),[]),Object(r.useLayoutEffect)(()=>(d.current=new f.a({theme:"actual-date-picker",keyboardInput:!1,defaultDate:e?i.a(e,t,new Date):new Date,setDefaultDate:!0,toString:e=>c.a(e,t),parse:e=>i.a(e,t,new Date),onSelect:s}),p.current.appendChild(d.current.el),()=>{d.current.destroy()}),[]),Object(r.useEffect)(()=>{d.current.getDate()!==e&&d.current.setDate(i.a(e,t,new Date),!0)},[e,t]),a.a.createElement(y.B,{style:[v,j],innerRef:p})});function x(e){return 13===e.keyCode}var C={padding:0,minWidth:225};function k({containerProps:e,inputProps:t,tooltipStyle:n,value:o,isOpen:l,embedded:d,dateFormat:f="yyyy-MM-dd",focused:m,openOnFocus:g=!0,inputRef:h,shouldSaveFromKey:b=x,tableBehavior:O,onUpdate:E,onSelect:v}){let j=Object(r.useMemo)(()=>{if(o){let e=s.a(o);if(u.a(e))return c.a(e,f)}return null},[o,f]),k=Object(r.useRef)(null),P=w(Object(r.useState)(j||""),2),A=P[0],D=P[1],B=w(Object(r.useState)(d||l||!1),2),I=B[0],T=B[1],M=Object(r.useRef)(null);Object(r.useLayoutEffect)(()=>{h&&(h.current=M.current)},[]);let R=w(Object(r.useState)(A),2),_=R[0],L=R[1],N=Object(r.useRef)(_);Object(r.useEffect)(()=>{N.current=A},[A]),Object(r.useEffect)(()=>D(j),[j]),Object(r.useEffect)(()=>{if(Object(p.i)(f).test(A)){let e=i.a(A,Object(p.h)(f),new Date);u.a(e)&&(E&&E(c.a(e,"yyyy-MM-dd")),L(c.a(e,f)))}else if(Object(p.n)(f).test(A)){let e=i.a(A,Object(p.m)(f),new Date);u.a(e)&&(E&&E(c.a(e,"yyyy-MM-dd")),L(c.a(e,f)))}else{let e=i.a(A,f,new Date);if(u.a(e)){let t=c.a(e,"yyyy-MM-dd");E&&E(t),L(A)}}},[A]);return a.a.createElement(y.B,e,a.a.createElement(y.n,Object.assign({focused:m},t,{inputRef:M,value:A,onKeyDown:function(e){if(e.keyCode>=37&&e.keyCode<=40&&!e.shiftKey&&!e.metaKey&&!e.altKey&&I)k.current.handleInputKeyDown(e);else if(27===e.keyCode)D(j),L(j),j===A?I&&(d||e.stopPropagation(),T(!1)):(T(!0),E&&E(o));else if(b(e)){D(_),T(!1);let n=i.a(_,f,new Date);v(c.a(n,"yyyy-MM-dd")),I&&N.current!==_&&(e.stopPropagation(),e.preventDefault());let r=(t||{}).onKeyDown;r&&r(e)}else I||(T(!0),M.current&&M.current.setSelectionRange(0,1e4))},onChange:function(e){D(e.target.value)},onFocus:e=>{!d&&g&&T(!0),t&&t.onFocus&&t.onFocus(e)},onBlur:e=>{if(d||T(!1),t&&t.onBlur&&t.onBlur(e),!O)if(""===A)L(null),v(null);else{D(_||"");let e=i.a(_,f,new Date);e instanceof Date&&!isNaN(e)&&v(c.a(e,"yyyy-MM-dd"))}}})),I&&(F=a.a.createElement(S,{ref:k,value:_,dateFormat:f,onUpdate:e=>{L(c.a(e,f)),E&&E(c.a(e,"yyyy-MM-dd"))},onSelect:e=>{D(c.a(e,f)),v(c.a(e,"yyyy-MM-dd")),T(!1)}}),d?F:a.a.createElement(y.A,{position:"bottom-left",offset:2,style:[C,n]},F)));var F}},102:function(e,t,n){"use strict";var r=n(0),a=n.n(r);function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach(function(t){i(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}t.a=(e=>a.a.createElement("svg",Object.assign({},e,{viewBox:"0 0 20 20",style:l({color:"#242134"},e.style)}),a.a.createElement("path",{d:"M10 12a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm0-6a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm0 12a2 2 0 1 1 0-4 2 2 0 0 1 0 4z",fill:"currentColor"})))},104:function(e,t,n){"use strict";function r(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return a(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return a(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach(function(t){i(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}n.d(t,"b",function(){return s}),n.d(t,"a",function(){return u});class c{constructor(e){this.state=l({filterExpressions:e.filterExpressions||[],selectExpressions:e.selectExpressions||[],groupExpressions:e.groupExpressions||[],orderExpressions:e.orderExpressions||[],calculation:!1,rawMode:!1,withDead:!1,validateRefs:!0,limit:null,offset:null},e)}filter(e){return new c(l(l({},this.state),{},{filterExpressions:[...this.state.filterExpressions,e]}))}unfilter(e){let t=new Set(e);return new c(l(l({},this.state),{},{filterExpressions:this.state.filterExpressions.filter(e=>!t.has(Object.keys(e)[0]))}))}select(e=[]){Array.isArray(e)||(e=[e]);let t=new c(l(l({},this.state),{},{selectExpressions:e}));return t.state.calculation=!1,t}calculate(e){let t=this.select({result:e});return t.state.calculation=!0,t}groupBy(e){return Array.isArray(e)||(e=[e]),new c(l(l({},this.state),{},{groupExpressions:[...this.state.groupExpressions,...e]}))}orderBy(e){return Array.isArray(e)||(e=[e]),new c(l(l({},this.state),{},{orderExpressions:[...this.state.orderExpressions,...e]}))}limit(e){return new c(l(l({},this.state),{},{limit:e}))}offset(e){return new c(l(l({},this.state),{},{offset:e}))}raw(){return new c(l(l({},this.state),{},{rawMode:!0}))}withDead(){return new c(l(l({},this.state),{},{withDead:!0}))}withoutValidatedRefs(){return new c(l(l({},this.state),{},{validateRefs:!1}))}options(e){return new c(l(l({},this.state),{},{tableOptions:e}))}serialize(){return this.state}}function s(e,t){let n=e.serialize().orderExpressions;if(0===n.length)return t?l({order:"asc"},t):null;let a=n[0];if("string"===typeof a)return{field:a,order:"asc"};let o=r(Object.keys(a),1)[0];return{field:o,order:a[o]}}function u(e){return new c({table:e})}},105:function(e,t,n){"use strict";n.d(t,"b",function(){return l}),n.d(t,"d",function(){return i}),n.d(t,"a",function(){return c}),n.d(t,"c",function(){return s});var r=n(3),a=n(11),o=n(16);function l(){return async(e,t)=>{let n=await Object(r.send)("load-prefs"),l=t().prefs.local;return n&&n.id&&!l&&e(Object(o.a)()),e({type:a.a.SET_PREFS,prefs:n,globalPrefs:await Object(r.send)("load-global-prefs")}),n}}function i(e){return async t=>{await Object(r.send)("save-prefs",e),t({type:a.a.MERGE_LOCAL_PREFS,prefs:e})}}function c(){return async(e,t)=>{let n=await Object(r.send)("load-global-prefs");return e({type:a.a.SET_PREFS,prefs:t().prefs.local,globalPrefs:n}),n}}function s(e){return async t=>{await Object(r.send)("save-global-prefs",e),t({type:a.a.MERGE_GLOBAL_PREFS,globalPrefs:e})}}},106:function(e,t,n){"use strict";n.d(t,"b",function(){return o}),n.d(t,"a",function(){return l});var r=n(0),a=n.n(r);const o=e=>t=>{return class extends a.a.Component{componentDidMount(){l(e)}componentDidUpdate(){l(e)}render(){return a.a.createElement(t,this.props)}}};function l(e){[...document.getElementsByTagName("meta")].find(e=>"theme-color"===e.name).setAttribute("content",e)}},11:function(e,t,n){"use strict";t.a={LOAD_TRANSACTIONS:"LOAD_TRANSACTIONS",SET_NEW_TRANSACTIONS:"SET_NEW_TRANSACTIONS",UPDATE_NEW_TRANSACTIONS:"UPDATE_NEW_TRANSACTIONS",SET_LAST_TRANSACTION:"SET_LAST_TRANSACTION",MARK_ACCOUNT_READ:"MARK_ACCOUNT_READ",LOAD_ACCOUNTS:"LOAD_ACCOUNTS",UPDATE_ACCOUNT:"UPDATE_ACCOUNT",LOAD_CATEGORIES:"LOAD_CATEGORIES",ADD_CATEGORY:"ADD_CATEGORY",DELETE_CATEGORY:"DELETE_CATEGORY",LOAD_PAYEES:"LOAD_PAYEES",LOAD_BANKS:"LOAD_BANKS",SET_PROFILE:"SET_PROFILE",SET_PREFS:"SET_PREFS",MERGE_LOCAL_PREFS:"MERGE_LOCAL_PREFS",MERGE_GLOBAL_PREFS:"MERGE_GLOBAL_PREFS",SET_BUDGETS:"SET_BUDGETS",SET_REMOTE_FILES:"SET_REMOTE_FILES",SET_ALL_FILES:"SET_ALL_FILES",SET_AVAILABLE_IMPORTS:"SET_AVAILABLE_IMPORTS",CLOSE_BUDGET:"CLOSE_BUDGET",SET_APP_STATE:"SET_APP_STATE",DEBUG_CELL:"DEBUG_CELL",PUSH_MODAL:"PUSH_MODAL",REPLACE_MODAL:"REPLACE_MODAL",HIDE_MODALS:"HIDE_MODALS",SHOW_MODALS:"SHOW_MODALS",CLOSE_MODAL:"CLOSE_MODAL",POP_MODAL:"POP_MODAL",ADD_NOTIFICATION:"ADD_NOTIFICATION",REMOVE_NOTIFICATION:"REMOVE_NOTIFICATION",GET_USER_DATA:"GET_USER_DATA",SET_LAST_UNDO_STATE:"SET_LAST_UNDO_STATE",SET_LAST_SPLIT_STATE:"SET_LAST_SPLIT_STATE",SET_ACCOUNTS_SYNCING:"SET_ACCOUNTS_SYNCING",ACCOUNT_SYNC_STATUS:"ACCOUNT_SYNC_STATUS",ACCOUNT_SYNC_FAILURES:"ACCOUNT_SYNC_FAILURES",SIGN_OUT:"SIGN_OUT",SET_TUTORIAL_STAGE:"SET_TUTORIAL_STAGE",DEACTIVATE_TUTORIAL:"DEACTIVATE_TUTORIAL"}},111:function(e,t,n){"use strict";n.d(t,"a",function(){return i}),n.d(t,"b",function(){return c}),n.d(t,"c",function(){return s});var r=n(3),a=n(11),o=n(61),l=n(105);function i(){return async e=>{const t=await Object(r.send)("subscribe-get-user");return e({type:a.a.GET_USER_DATA,data:t}),t}}function c(){return async e=>{await e(i()),e(Object(o.i)())}}function s(){return async e=>{await Object(r.send)("subscribe-sign-out"),e(i()),e(Object(l.a)()),e(Object(o.b)()),e({type:a.a.SIGN_OUT})}}},112:function(e,t,n){"use strict";var r=n(0),a=n.n(r),o=n(12);const l=["width","height","style","color"];function i(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}t.a=function(e){let t=e.width,n=e.height,r=e.style,c=e.color,s=void 0===c?"currentColor":c,u=i(e,l);return a.a.createElement("svg",Object.assign({width:t,height:n},u,Object(o.css)(r),{viewBox:"0 0 24 24",version:"1.1",xmlns:"http://www.w3.org/2000/svg"}),a.a.createElement("line",{fill:"none",stroke:s,className:"path",strokeWidth:"4",strokeLinecap:"round",strokeMiterlimit:"10",x1:"2",y1:"2",x2:"22",y2:"22"}),a.a.createElement("line",{fill:"none",stroke:s,className:"path",strokeWidth:"4",strokeLinecap:"round",strokeMiterlimit:"10",x1:"22",y1:"2",x2:"2",y2:"22"}))}},122:function(e,t,n){"use strict";n.d(t,"b",function(){return c}),n.d(t,"a",function(){return s}),n.d(t,"c",function(){return u});var r=n(11);function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach(function(t){l(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const i=n(152);function c(e){return{type:r.a.ADD_NOTIFICATION,notification:o(o({},e),{},{id:e.id||i.v4Sync()})}}function s(){return c({type:"error",message:"Something internally went wrong. You may want to restart the app if anything looks wrong. We have been notified of the issue and will try to fix it soon."})}function u(e){return{type:r.a.REMOVE_NOTIFICATION,id:e}}},125:function(e,t,n){"use strict";function r(){return"true"===String(Object({NODE_ENV:"production",PUBLIC_URL:"",REACT_APP_ACTUAL_VERSION:"23.1.12",REACT_APP_BACKEND_WORKER_HASH:"23b27ae2569ade5c8b6a",REACT_APP_RELEASE_TYPE:""}).REACT_APP_NETLIFY)}function a(){return!1}n.d(t,"b",function(){return r}),n.d(t,"a",function(){return a})},133:function(e,t,n){"use strict";function r({reason:e,meta:t}){switch(e){case"unauthorized":return"You are not logged in.";case"encrypt-failure":return t.isMissingKey?"Encrypting your file failed because you are missing your encryption key. Create your key in the next step.":"Encrypting the file failed. You have the correct key so this is an internal bug. To fix this, generate a new key in the next step.";case"file-has-reset":return"Something went wrong while resetting your file. Please try again.";case"file-has-new-key":return"Unable to encrypt your data because you are missing the key. Create the latest key in the next step.";case"network":return"Uploading the file failed. Check your network connection.";case"beta-version":return"You cannot perform this action in the beta version (resetting sync, deleting a file, etc).";default:return`An internal error occurred, sorry! Contact help@actualbudget.com for support. (ref: ${e})`}}function a({reason:e,meta:t,fileName:n}){switch(e){case"network":case"download-failure":return"Downloading the file failed. Check your network connection.";case"invalid-zip-file":case"invalid-meta-file":return"Downloaded file is invalid, sorry! Contact help@actualbudget.com for support.";case"decrypt-failure":return"Unable to decrypt file "+(n||"(unknown)")+". To change your key, first download this file with the proper password.";case"out-of-sync-migrations":return"This budget cannot be loaded with this version of the app. Make sure the app is up-to-date.";default:return"Something went wrong trying to download that file, sorry! Contact help@actualbudget.com for support. "+(t&&t.fileId?`(fileId: ${t.fileId})`:"")}}function o(e){return r(e)}function l({reason:e}){switch(e){case"network":return"Unable to connect to the server. We need to access our server to get some information about your keys.";case"old-key-style":return"This file is encrypted with an old unsupported key style. Recreate the key on a device where the file is available, or use an older version of Actual to download it.";case"decrypt-failure":return"Unable to decrypt file with this password. Please try again.";default:return"Something went wrong trying to create a key, sorry! Contact help@actualbudget.com for support."}}n.d(t,"d",function(){return r}),n.d(t,"b",function(){return a}),n.d(t,"a",function(){return o}),n.d(t,"c",function(){return l})},134:function(e,t,n){"use strict";var r=n(0),a=n.n(r),o=n(12);const l=["width","height","style","color"];function i(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}t.a=function(e){let t=e.width,n=e.height,r=e.style,c=e.color,s=void 0===c?"currentColor":c,u=i(e,l);return a.a.createElement("svg",Object.assign({width:t,height:n},u,Object(o.css)(r),{viewBox:"0 0 25 15",version:"1.1",xmlns:"http://www.w3.org/2000/svg"}),a.a.createElement("path",{fill:s,className:"path",d:"M24.4825085,0.57623494 C24.1741468,0.24939759 23.8086177,0.0861144578 23.3862628,0.0861144578 L1.55921502,0.0861144578 C1.13668942,0.0861144578 0.771416382,0.24939759 0.462798635,0.57623494 C0.154180887,0.903433735 0,1.29027108 0,1.73746988 C0,2.18457831 0.154180887,2.57141566 0.462798635,2.89834337 L11.3763652,14.4562048 C11.6853242,14.7830422 12.0505973,14.9466867 12.4727816,14.9466867 C12.8949659,14.9466867 13.2605802,14.7830422 13.568942,14.4562048 L24.4825085,2.89825301 C24.790785,2.57141566 24.9455631,2.18457831 24.9455631,1.73737952 C24.9455631,1.29027108 24.790785,0.903433735 24.4825085,0.57623494 Z"}))}},136:function(e,t,n){"use strict";n.d(t,"a",function(){return i});var r=n(0),a=n(3);function o(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return l(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return l(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function i(){let e=o(Object(r.useState)(""),2),t=e[0],n=e[1];return Object(r.useEffect)(()=>{!async function(){let e=await Object(a.send)("get-server-url")||"";"https://not-configured/"===e&&(e=""),n(e)}()},[]),t}},14:function(e,t,n){"use strict";var r=n(3);var a=n(104);n.d(t,"f",function(){return o}),n.d(t,"d",function(){return l}),n.d(t,"e",function(){return i}),n.d(t,"a",function(){return c}),n.d(t,"b",function(){return s});t.c=a.a;async function o(e){return Object(r.send)("query",e.serialize())}function l(e,t,n){let r=new c(e,t,n);return r.run(),r}function i(e,t,n){let r=new s(e,t,n);return r.run(),r}class c{constructor(e,t,n={}){this.onData=((e,t)=>{for(let n=0;n<this.listeners.length;n++)this.listeners[n](e,t)}),this.onUpdate=(e=>{(null==this.dependencies||e.find(e=>this.dependencies.has(e)))&&this.run()}),this.run=(()=>(this.subscribe(),this._fetchData(()=>o(this.query)))),this._fetchData=(async e=>{let t=Math.random();this.inflightRequestId=t;let n=await e(),r=n.data,a=n.dependencies;if(null==this.dependencies&&(this.dependencies=new Set(a)),this.inflightRequestId===t&&this._unsubscribe){let e=this.mappedData;this.data=r,this.mappedData=this.mapData(r),this.onData(this.mappedData,e),this.inflightRequestId=null}}),this.subscribe=(()=>{null==this._unsubscribe&&(this._unsubscribe=Object(r.listen)("sync-event",({type:e,tables:t})=>{-1!==(this.onlySync?["success"]:["applied","success"]).indexOf(e)&&this.onUpdate(t)}))}),this.unsubscribe=(()=>{this._unsubscribe&&(this._unsubscribe(),this._unsubscribe=null)}),this.mapData=(e=>this.mapper?this.mapper(e):e),this.getQuery=(()=>this.query),this.getData=(()=>this.mappedData),this.getNumListeners=(()=>this.listeners.length),this.isRunning=(()=>null!=this._unsubscribe),this._optimisticUpdate=((e,t)=>{this.data=e(this.data),this.mappedData=t(this.mappedData)}),this.optimisticUpdate=((e,t)=>{let n=this.mappedData;this._optimisticUpdate(e,t),this.onData(this.mappedData,n)}),this.error=new Error,this.query=e,this.data=null,this.mappedData=null,this.dependencies=null,this.mapper=n.mapper,this.onlySync=n.onlySync,this.listeners=[],this.inflight=!1,this.restart=!1,t&&this.addListener(t)}addListener(e){return this.listeners.push(e),()=>{this.listeners=this.listeners.filter(t=>t!==e)}}}class s extends c{constructor(e,t,n={}){super(e,t,n),this._fetchCount=(()=>o(this.query.calculate({$count:"*"})).then(({data:e})=>{this.totalCount=e})),this.run=(()=>(this.subscribe(),this.runPromise=this._fetchData(async()=>(this.done=!1,this._fetchCount(),o(this.query.limit(null==this.data?this.pageCount:Math.max(this.data.length,this.pageCount))))),this.runPromise)),this.refetchUpToRow=(async(e,t)=>(this.runPromise=this._fetchData(async()=>{this.done=!1,this._fetchCount();let n=Object(a.b)(this.query,t);if(null==n)throw new Error("refetchUpToRow requires a query with orderBy");let r=n.field,l=n.order,i=await o(this.query.filter({id:e}).select(r));if(0===i.data.length)return;let c=i.data[0],s=(i=await o(this.query.filter({[r]:{["asc"===l?"$lte":"$gte"]:c[r]}}))).data;return i=await o(this.query.filter({[r]:{["asc"===l?"$gt":"$lt"]:c[r]}}).limit(this.pageCount)),{data:s.concat(i.data),dependencies:i.dependencies}}),this.runPromise)),this._fetchNext=(async()=>{for(;this.inflightRequestId;)await this.runPromise;let e=this.data;if(!this.done){let t=(await o(this.query.limit(this.pageCount).offset(e.length))).data;if(this.inflightRequestId||e!==this.data)return this._fetchNext();if(0===t.length)this.done=!0;else{this.done=t.length<this.pageCount,this.data=this.data.concat(t);let e=this.mappedData,n=this.mapData(t);this.mappedData=this.mappedData.concat(n),this.onPageData(n),this.onData(this.mappedData,e)}}}),this.fetchNext=function(e){let t=null;return(...n)=>t||(t=e(...n).finally(()=>{t=null}))}(this._fetchNext),this.isFinished=(()=>this.done),this.getTotalCount=(()=>this.totalCount),this.optimisticUpdate=((e,t)=>{let n=this.data,r=this.mappedData;this._optimisticUpdate(e,t),this.totalCount+=this.data.length-n.length,this.onData(this.mappedData,r)}),this.totalCount=null,this.pageCount=n.pageCount||500,this.runPromise=null,this.done=!1,this.onPageData=n.onPageData||(()=>{})}}},152:function(e,t,n){const r=n(340);e.exports={v4:function(){return Promise.resolve(r.v4())},v4Sync:function(){return r.v4()}}},16:function(e,t,n){"use strict";n.d(t,"d",function(){return a}),n.d(t,"e",function(){return o}),n.d(t,"b",function(){return l}),n.d(t,"f",function(){return i}),n.d(t,"c",function(){return c}),n.d(t,"a",function(){return s});var r=n(11);function a(e,t){return{type:r.a.PUSH_MODAL,name:e,options:t}}function o(e,t){return{type:r.a.REPLACE_MODAL,name:e,options:t}}function l(){return{type:r.a.HIDE_MODALS}}function i(){return{type:r.a.SHOW_MODALS}}function c(){return{type:r.a.POP_MODAL}}function s(){return{type:r.a.CLOSE_MODAL}}},166:function(e,t,n){"use strict";n.d(t,"a",function(){return m}),n.d(t,"c",function(){return y}),n.d(t,"b",function(){return g});var r=n(0),a=n.n(r),o=n(21),l=n.n(o),i=n(12),c=n(2);function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function u(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?s(Object(n),!0).forEach(function(t){d(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):s(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function d(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function f(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return p(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return p(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function p(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}const m=a.a.createContext();function y(){let e=f(Object(r.useState)(!1),2),t=e[0],n=e[1];return{getOpenEvents:(e={})=>({onClick:t=>{t.stopPropagation(),e.onClick&&e.onClick(t),n(!0)}}),isOpen:t,close:()=>n(!1)}}class g extends a.a.Component{constructor(e){super(e),this.state={position:null},this.position=e.position||"bottom-right",this.contentRef=a.a.createRef()}setup(){this.layout();let e=e=>{let t=e.target;for(;t&&t!==document.documentElement&&"tooltip"!==t.dataset.testid&&null==t.dataset.reachPopover;)t=t.parentNode;t===document.documentElement&&this.props.onClose&&this.props.onClose()};window.document.addEventListener("mousedown",e,!1),this.contentRef.current.addEventListener("keydown",e=>{27===e.keyCode&&this.props.onClose&&this.props.onClose()},!1),this.cleanup=(()=>{window.document.removeEventListener("mousedown",e)})}componentDidMount(){this.getContainer()?this.setup():this.forceUpdate(()=>{this.getContainer()?this.setup():console.log("Warning: could not mount tooltip, container missing")})}componentDidUpdate(e){(e.targetRect!==this.props.targetRect||e.forceTop!==this.props.forceTop||this.props.forceLayout)&&this.layout()}getContainer(){let e=this.props.ignoreBoundary;return!(void 0!==e&&e)&&this.context?this.context.current:document.body}getBoundsContainer(){let e=this.getContainer();return e.parentNode&&"auto"===e.parentNode.style.overflow?e.parentNode:e}layout(){let e=this.props,t=e.targetRect,n=e.offset,r=void 0===n?0:n,a=this.contentRef.current;if(!a)return;let o=a.getBoundingClientRect(),l=this.target.parentNode,i=t||l.getBoundingClientRect();i={top:i.top,left:i.left,width:i.width,height:i.height};let c=this.getBoundsContainer();if(!c)return;let s=c.getBoundingClientRect();if(i.left-=s.left,i.top-=s.top,this.props.forceTop)i.top=this.props.forceTop;else{let e=o.height+r,t=i.top-e,n=i.top+i.height+e;(-1!==this.position.indexOf("top")&&t<s.top||-1!==this.position.indexOf("bottom")&&n>s.height&&t>0)&&(this.position=this.getOppositePosition(this.position)),i.top+=c.scrollTop}const u=this.getStyleForPosition(this.position,o,i,this.getContainer().getBoundingClientRect(),r);a.style.top=u.top,a.style.bottom=u.bottom,a.style.left=u.left,a.style.right=u.right,a.style.width=u.width}componentWillUnmount(){this.cleanup&&this.cleanup()}getOppositePosition(e){switch(e){case"top":case"top-left":return"bottom";case"top-right":return"bottom-right";case"bottom":case"bottom-left":return"top";case"bottom-right":return"top-right";case"bottom-stretch":return"top-stretch";case"top-stretch":return"bottom-stretch";case"bottom-center":return"top-center";case"top-center":return"bottom-center";case"right":return"right"}}getStyleForPosition(e,t,n,r,a){const o={top:"inherit",bottom:"inherit",left:"inherit",right:"inherit"};if("top"===e||"top-right"===e||"top-left"===e)o.top=n.top-t.height-a+"px",o.left="top-right"===e?n.left+(n.width-t.width)+"px":n.left+"px";else if("bottom"===e||"bottom-right"===e||"bottom-left"===e)o.top=n.top+n.height+a+"px",o.left="bottom-right"===e?n.left+(n.width-t.width)+"px":n.left+"px";else if("bottom-center"===e)o.top=n.top+n.height+a+"px",o.left=n.left-(t.width-n.width)/2+"px";else if("top-center"===e)o.top=n.top-t.height-a+"px",o.left=n.left-(t.width-n.width)/2+"px";else if("left-center"===e)o.top=n.top-(t.height-n.height)/2+"px",o.left=n.left-t.width+"px";else if("top-stretch"===e)o.bottom=r.height-n.top+a+"px",o.left=n.left+"px",o.width=n.width+"px";else if("bottom-stretch"===e)o.top=n.top+n.height+a+"px",o.left=n.left+"px",o.width=n.width+"px";else{if("right"!==e)throw new Error("Invalid position for Tooltip: "+e);o.top=n.top+"px",o.left=n.left+n.width+a+"px"}return o}render(){const e=this.props,t=e.children,n=e.width,r=e.style,o=u(u({position:"absolute",zIndex:3e3,padding:5,width:n},c.c.shadowLarge),{},{borderRadius:4,backgroundColor:"white"});return this.getContainer()?a.a.createElement("div",{ref:e=>this.target=e},l.a.createPortal(a.a.createElement("div",Object.assign({},Object(i.css)(o,r,c.c.darkScrollbar),{ref:this.contentRef,"data-testid":"tooltip",onClick:e=>{e.stopPropagation()}}),t),this.getContainer())):null}}g.contextType=m},167:function(e,t,n){"use strict";n.d(t,"a",function(){return l});var r=n(3),a=n(64),o=n(16);function l(){return(e,t)=>{return!t().prefs.global.seenTutorial&&(Object(r.send)("set-tutorial-seen"),"web"===a.a.env)&&(setTimeout(()=>{e(Object(o.d)("welcome-screen"))},500),!0)}}},184:function(e,t,n){"use strict";n.d(t,"a",function(){return l}),n.d(t,"b",function(){return i});var r=n(0),a=n.n(r);let o=a.a.createContext(null);function l({children:e}){let t=Object(r.useRef)(null),n=Object(r.useMemo)(()=>({keyRef:t,onKeyChange:e=>{t.current=e}}),[t]);return a.a.createElement(o.Provider,{value:n},e)}function i(e,t){let n=Object(r.useContext)(o),a=Object(r.useRef)(null);Object(r.useLayoutEffect)(()=>{let r=a.current,o=e.current;if(o&&t&&(null===r||!1===r)){let e="input,button,div[tabindex]",r=o.matches(e)?o:o.querySelector(e);t&&r&&function(e,t){if(t){let n=function(e){let t=e;for(let n=0;n<10&&t;n++){let e=t.dataset&&t.dataset.focusKey;if(e)return e;t=t.parentNode}return null}(e);e.focus({preventScroll:n&&n===t.keyRef.current}),t.onKeyChange(n)}else e.focus();"INPUT"===e.tagName&&e.setSelectionRange(0,1e4)}(r,n)}a.current=t},[t])}},185:function(e,t,n){"use strict";n.d(t,"a",function(){return a});var r=n(84);function a(e){return(e||window.innerWidth)<parseInt(r.a.breakpoint_medium)}},19:function(e,t,n){"use strict";n.d(t,"a",function(){return d}),n.d(t,"k",function(){return f}),n.d(t,"d",function(){return p}),n.d(t,"g",function(){return m}),n.d(t,"v",function(){return y}),n.d(t,"n",function(){return g}),n.d(t,"o",function(){return h}),n.d(t,"e",function(){return b}),n.d(t,"w",function(){return O}),n.d(t,"h",function(){return w}),n.d(t,"l",function(){return E}),n.d(t,"m",function(){return v}),n.d(t,"f",function(){return j}),n.d(t,"j",function(){return S}),n.d(t,"u",function(){return x}),n.d(t,"c",function(){return C}),n.d(t,"p",function(){return k}),n.d(t,"b",function(){return P}),n.d(t,"r",function(){return A}),n.d(t,"i",function(){return D}),n.d(t,"s",function(){return M}),n.d(t,"t",function(){return R}),n.d(t,"q",function(){return _});var r=n(259),a=n.n(r),o=n(3),l=n(11),i=n(16),c=n(122);const s=["categories"];function u(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function d(e,t,n){return async function(){switch(t){case"budget-amount":await Object(o.send)("budget/budget-amount",{month:e,category:n.category,amount:n.amount});break;case"copy-last":await Object(o.send)("budget/copy-previous-month",{month:e});break;case"set-zero":await Object(o.send)("budget/set-zero",{month:e});break;case"set-3-avg":await Object(o.send)("budget/set-3month-avg",{month:e});break;case"hold":await Object(o.send)("budget/hold-for-next-month",{month:e,amount:n.amount});break;case"reset-hold":await Object(o.send)("budget/reset-hold",{month:e});break;case"cover":await Object(o.send)("budget/cover-overspending",{month:e,to:n.to,from:n.from});break;case"transfer-available":await Object(o.send)("budget/transfer-available",{month:e,amount:n.amount,category:n.category});break;case"transfer-category":await Object(o.send)("budget/transfer-category",{month:e,amount:n.amount,from:n.from,to:n.to});break;case"carryover":await Object(o.send)("budget/set-carryover",{startMonth:e,category:n.category,flag:n.flag})}}}function f(){return async function(e){const t=await Object(o.send)("get-categories");return e({type:l.a.LOAD_CATEGORIES,categories:t}),t}}function p(e,t,n){return async function(r){let a=await Object(o.send)("category-create",{name:e,groupId:t,isIncome:n});return r(f()),a}}function m(e,t){return async function(n,r){let a=(await Object(o.send)("category-delete",{id:e,transferId:t})).error;if(a){switch(a){case"category-type":n(Object(c.b)({type:"error",message:"A category must be transferred to another of the same type (expense or income)"}));break;default:n(Object(c.a)())}throw new Error(a)}n(f()),n(E())}}function y(e){return async t=>{await Object(o.send)("category-update",e),t(f())}}function g(e,t,n){return async(r,a)=>{await Object(o.send)("category-move",{id:e,groupId:t,targetId:n}),await r(f())}}function h(e,t){return async n=>{await Object(o.send)("category-group-move",{id:e,targetId:t}),await n(f())}}function b(e){return async t=>{let n=await Object(o.send)("category-group-create",{name:e});return t(f()),n}}function O(e){e.categories;const t=u(e,s);return async e=>{await Object(o.send)("category-group-update",t),await e(f())}}function w(e,t){return async function(n,r){await Object(o.send)("category-group-delete",{id:e,transferId:t}),await n(f()),await n(E())}}function E(){return async function(e){let t=await Object(o.send)("payees-get");return e({type:l.a.LOAD_PAYEES,payees:t}),t}}function v(){return async function(e,t){if(0===t().queries.payees.length)return e(E())}}function j(e){return async t=>Object(o.send)("payee-create",{name:e.trim()})}function S(){return async function(e){const t=await Object(o.send)("accounts-get");return e({type:l.a.LOAD_ACCOUNTS,accounts:t}),t}}function x(e){return async function(t){t({type:l.a.UPDATE_ACCOUNT,account:e}),await Object(o.send)("account-update",e)}}function C(e,t,n,r){return async function(a){let l=await Object(o.send)("account-create",{name:e,type:t,balance:n,offBudget:r});return await a(S()),await a(E()),l}}function k(e){return async function(t,n){const r=await Object(o.send)("account-properties",{id:e}),a=r.balance,l=r.numTransactions,c=n().queries.accounts.find(t=>t.id===e);t(Object(i.d)("close-account",{account:c,balance:a,canDelete:0===l}))}}function P(e,t,n,r){return async function(a){await Object(o.send)("account-close",{id:e,transferAccountId:t,categoryId:n,forced:r}),a(S())}}function A(e){return async function(t){await Object(o.send)("account-reopen",{id:e}),t(S())}}function D(e){return P(e,null,null,!0)}let B=a()(()=>Object(o.send)("undo"),100),I=a()(()=>Object(o.send)("redo"),100),T=!0;function M(e){T=e}function R(){return async()=>{T&&B()}}function _(){return async()=>{T&&I()}}},2:function(e,t,n){"use strict";n.d(t,"a",function(){return o}),n.d(t,"c",function(){return l}),n.d(t,"b",function(){return u});var r=n(64),a=n(84);const o={y1:"#733309",y2:"#87540d",y3:"#B88115",y4:"#D4A31C",y5:"#E6BB20",y6:"#F2D047",y7:"#F5E35D",y8:"#FCF088",y9:"#FFF7C4",y10:"#FFFBEA",y11:"#FFFEFA",r1:"#610316",r2:"#8A041A",r3:"#AB091E",r4:"#CF1124",r5:"#E12D39",r6:"#EF4E4E",r7:"#F86A6A",r8:"#FF9B9B",r9:"#FFBDBD",r10:"#FFE3E3",r11:"#FFF1F1",b1:"#034388",b2:"#0B5FA3",b3:"#1271BF",b4:"#1980D4",b5:"#2B8FED",b6:"#40A5F7",b7:"#66B5FA",b8:"#8BCAFD",b9:"#B3D9FF",b10:"#E3F0FF",b11:"#F5FCFF",n1:"#102A43",n2:"#243B53",n3:"#334E68",n4:"#486581",n5:"#627D98",n6:"#829AB1",n7:"#9FB3C8",n8:"#BCCCDC",n9:"#D9E2EC",n10:"#E8ECF0",n11:"#F7FAFC",g1:"#014D40",g2:"#0C6B58",g3:"#147D64",g4:"#199473",g5:"#27AB83",g6:"#3EBD93",g7:"#65D6AD",g8:"#8EEDC7",g9:"#C6F7E2",g10:"#EFFCF6",g11:"#FAFFFD",p1:"#44056E",p2:"#580A94",p3:"#690CB0",p4:"#7A0ECC",p5:"#8719E0",p6:"#9446ED",p7:"#A368FC",p8:"#B990FF",p9:"#DAC4FF",p10:"#F2EBFE",p11:"#F9F6FE"};o.border=o.n10,o.hover="#fafafa",o.selected=o.b9,o.resolve=((e,t)=>{switch(e){case"border":return o["n"+(8+t)]}throw new Error("Unknown color name: "+e)});const l={veryLargeText:{fontSize:30,fontWeight:600},largeText:{fontSize:20,fontWeight:700,letterSpacing:.5},mediumText:{fontSize:15,fontWeight:500},smallText:{fontSize:13,[`@media (min-width: ${a.a.breakpoint_medium})`]:{}},verySmallText:{fontSize:13},page:{paddingTop:8,minWidth:360,flex:1,[`@media (min-width: ${a.a.breakpoint_medium})`]:{minWidth:500,paddingTop:36}},pageHeader:{fontSize:25,borderBottomWidth:5,borderColor:o.purple2,borderStyle:"solid",display:"inline",flex:0,color:o.grey4,marginTop:40,marginBottom:20,paddingBottom:5},pageContent:{paddingLeft:2,paddingRight:2,[`@media (min-width: ${a.a.breakpoint_medium})`]:{paddingLeft:20,paddingRight:20}},settingsPageContent:{padding:20,[`@media (min-width: ${a.a.breakpoint_medium})`]:{padding:"inherit"}},staticText:{cursor:"default",userSelect:"none"},shadow:{boxShadow:"0 2px 4px 0 rgba(0,0,0,0.1)"},shadowLarge:{boxShadow:"0 15px 30px 0 rgba(0,0,0,0.11), 0 5px 15px 0 rgba(0,0,0,0.08)"},tnum:{fontFeatureSettings:'"tnum"'},notFixed:{fontFeatureSettings:""},header:{headerStyle:{backgroundColor:"white",borderBottomWidth:1,borderBottomColor:o.n9,elevation:0},headerTintColor:o.n1,headerTitleStyle:{color:o.n1,fontSize:15,fontWeight:600},headerBackTitle:null},text:{fontSize:16},textColor:o.n1};let i=!1;function c(){l.lightScrollbar=!i&&{"& ::-webkit-scrollbar":{width:11,backgroundColor:"rgba(200, 200, 200, .2)"},"& ::-webkit-scrollbar-thumb":{width:7,borderRadius:30,backgroundClip:"padding-box",border:"2px solid rgba(0, 0, 0, 0)"},"& ::-webkit-scrollbar-thumb:vertical":{backgroundColor:"#d0d0d0"}},l.darkScrollbar=!i&&{"& ::-webkit-scrollbar":{width:7,backgroundColor:"rgba(0, 0, 0, 0)"},"& ::-webkit-scrollbar-thumb:vertical":{backgroundColor:"rgba(200, 200, 200, .5)"}},l.scrollbarWidth=i?0:13}if("web"===r.a.env){function s(){let e=document.createElement("div");e.innerHTML='<div style="width:100px;height:100px;overflow:scroll;position:absolute;top:-9999px;"/>',document.body.appendChild(e);let t=e.childNodes[0];return t.offsetWidth===t.clientWidth}i=s(),c(),window.addEventListener("focus",()=>{i=s(),c()})}const u=()=>i},211:function(e,t,n){"use strict";n.d(t,"a",function(){return c});var r=n(0),a=n.n(r),o=n(118);let l=a.a.createContext("app");function i({keyName:e,eventType:t="keydown",handler:n}){let a=Object(r.useContext)(l);if("keyup"!==t&&"keydown"!==t)throw new Error("KeyHandler: unknown event type: "+t);return Object(r.useEffect)(()=>{function r(e,r){if(e.preventDefault(),e.type===t&&n)return n(e,r)}return Object(o.a)(e,{scope:a,keyup:!0},r),()=>{o.a.unbind({key:e,scope:a,method:r})}},[e,n,a]),null}function c({eventType:e,keys:t={}}){return Object.keys(t).map(n=>a.a.createElement(i,{key:n,keyName:n,eventType:e,handler:t[n]}))}o.a.filter=(e=>{var t=e.target||e.srcElement,n=t.tagName;return!!(e.metaKey||!t.isContentEditable&&("INPUT"!==n&&"TEXTAREA"!==n&&"SELECT"!==n||t.readOnly))})},212:function(e,t,n){"use strict";var r=n(0),a=n.n(r);function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach(function(t){i(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}t.a=(e=>a.a.createElement("svg",Object.assign({},e,{viewBox:"0 0 20 20",style:l({color:"#242134"},e.style)}),a.a.createElement("path",{d:"M0 11l2-2 5 5L18 3l2 2L7 18z",fill:"currentColor"})))},213:function(e,t,n){"use strict";n.d(t,"a",function(){return a});var r=n(0);function a(e){let t=Object(r.useRef)(null);return t.current||(t.current=new ResizeObserver(t=>{e(t[0].contentRect)})),Object(r.useCallback)(e=>{t.current.disconnect(),e&&t.current.observe(e,{box:"border-box"})},[])}},219:function(e,t,n){"use strict";var r=n(0),a=n.n(r),o=n(10),l=n(32),i=n(29),c=n(1),s=n(2),u=n(136);function d(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return f(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return f(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function f(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var p={color:s.a.n5,fontStyle:"italic"},m={flexDirection:"row",alignItems:"center"},y={padding:0};t.a=Object(o.b)(e=>({userData:e.user.data,files:e.budgets.allFiles,budgetId:e.prefs.local&&e.prefs.local.id}),i)(Object(l.k)(function({files:e,budgetId:t,userData:n,getUserData:o,setAppState:l,signOut:i,pushModal:s,closeBudget:f,style:g,color:h}){let b=d(Object(r.useState)(!0),2),O=b[0],w=b[1],E=d(Object(r.useState)(!1),2),v=E[0],j=E[1];const S=Object(u.a)();return Object(r.useEffect)(()=>{o().then(()=>w(!1))},[]),O?a.a.createElement(c.y,{style:[p,g]},"Loading account..."):n?n.offline?a.a.createElement(c.B,{style:[{color:h},g]},"Offline"):a.a.createElement(c.B,{style:[m,g]},a.a.createElement(c.d,{bare:!0,onClick:async function(){S?j(!0):(await f(),window.__history.push("/config-server"))},style:{color:h}},S?"Server":"No server"),v&&a.a.createElement(c.A,{position:"bottom-right",style:y,onClose:()=>j(!1)},a.a.createElement(c.s,{onMenuSelect:function(e){switch(j(!1),e){case"change-password":!async function(){await f(),window.__history.push("/change-password")}();break;case"sign-out":i()}},items:[{name:"change-password",text:"Change password"},{name:"sign-out",text:"Sign out"}]}))):a.a.createElement(c.B,{style:[{color:h},g]},"Not logged in")}))},22:function(e,t,n){function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach(function(t){o(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const l=n(152);let i=40,c=[],s={url:null,openModal:null,selectedItems:null};e.exports={setUndoState:function(e,t){s[e]=t,s.id=l.v4Sync()},getUndoState:function(e){return s[e]},getTaggedState:function(e){return c.find(t=>t.id===e)},snapshot:function(){let e=a(a({},s),{},{id:l.v4Sync()});return c.unshift(e),c=c.slice(0,i),e.id},gc:function(e){c=c.filter(t=>t.id!==e)}}},221:function(e,t,n){"use strict";var r=n(0),a=n.n(r),o=n(2),l=n(1),i=n(7),c={flex:1,maxHeight:200,overflow:"auto"},s={cursor:"pointer"},u={paddingLeft:20};class d extends a.a.Component{constructor(...e){super(...e),this.state={hoveredBackup:null},this.onHover=(e=>{this.setState({hoveredBackup:e})})}render(){const e=this.props,t=e.backups,n=e.onSelect,r=this.state.hoveredBackup;return a.a.createElement(l.B,{style:c,onMouseLeave:()=>this.onHover(null)},t.map((e,t)=>a.a.createElement(i.h,{key:e.id,collapsed:0!==t,focused:r===e.id,onMouseEnter:()=>this.onHover(e.id),onClick:()=>n(e.id),style:s},a.a.createElement(i.a,{width:"flex",value:e.date?e.date:"Revert to Latest",valueStyle:u}))))}}var f={flex:0},p={marginBottom:30},m={margin:20,marginTop:0,marginBottom:15,lineHeight:1.5},y={marginBottom:10},g={fontWeight:600},h={alignItems:"flex-start"},b={marginBottom:10},O={fontWeight:600},w={color:o.a.n6,marginLeft:20};t.a=function({budgetId:e,backups:t,backupDisabled:n,actions:r,modalProps:o}){const i=t.find(e=>e.isLatest),c=t.filter(e=>!e.isLatest);return a.a.createElement(l.t,Object.assign({title:"Load Backup",padding:0},o,{style:f}),()=>a.a.createElement(l.B,{style:p},a.a.createElement(l.B,{style:m},i?a.a.createElement(l.c,null,a.a.createElement(l.c,{style:y},a.a.createElement(l.y,{style:g},"You are currently working from a backup.")," ","You can load a different backup or revert to the original version below."),a.a.createElement(l.d,{primary:!0,onClick:()=>r.loadBackup(e,i.id)},"Revert to original version")):a.a.createElement(l.B,{style:h},a.a.createElement(l.c,{style:b},"Select a backup to load. After loading a backup, you will have a chance to revert to the current version in this screen."," ",a.a.createElement(l.y,{style:O},"If you use a backup, you will have to setup all your devices to sync from the new budget.")),a.a.createElement(l.d,{primary:!0,disabled:n,onClick:()=>r.makeBackup()},"Backup Now"))),0===c.length?a.a.createElement(l.c,{style:w},"No backups available"):a.a.createElement(d,{backups:c,onSelect:t=>r.loadBackup(e,t)})))}},222:function(e,t,n){"use strict";n.d(t,"a",function(){return j});var r=n(0),a=n.n(r),o=n(12),l=n(3),i=n(133),c=n(1),s=n(2);function u(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return d(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return d(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var f={width:600},p={marginTop:5},m={marginTop:0,"& li":{marginBottom:8}},y={marginTop:5},g={alignItems:"center"},h={fontWeight:600,marginBottom:3},b={color:s.a.r4,textAlign:"center",fontSize:13,marginBottom:3},O={width:300},w={marginTop:5},E={userSelect:"none"},v={marginTop:20};function j({modalProps:e,actions:t,budgetId:n,options:s={}}){let d=u(Object(r.useState)(""),2),j=d[0],S=d[1],x=u(Object(r.useState)(!1),2),C=x[0],k=x[1],P=u(Object(r.useState)(""),2),A=P[0],D=P[1],B=u(Object(r.useState)(!1),2),I=B[0],T=B[1],M=s.recreate;return a.a.createElement(c.t,Object.assign({},e,{style:f,title:M?"Generate new key":"Enable encryption",onClose:()=>t.popModal()}),()=>a.a.createElement(a.a.Fragment,null,M?a.a.createElement(a.a.Fragment,null,a.a.createElement(c.v,{style:y},"This will generate a new key for encrypting your data."," ",a.a.createElement("strong",null,"This requires a sync reset")," and all other devices will have to revert to this version of your data. Actual will take you through that process on those devices."," ",a.a.createElement(c.i,{asAnchor:!0,href:"https://actualbudget.github.io/docs/Getting-Started/sync#end-to-end-encryption"},"Learn more")),a.a.createElement(c.v,null,"Key generation is randomized. The same password will create different keys, so this will change your key regardless of the password being different.")):a.a.createElement(a.a.Fragment,null,a.a.createElement(c.v,{style:p},"To enable end-to-end encryption, you need to create a key. We will generate a key based on a password and use it to encrypt from now on. ",a.a.createElement("strong",null,"This requires a sync reset")," and all other devices will have to revert to this version of your data."," ",a.a.createElement(c.i,{asAnchor:!0,href:"https://actualbudget.github.io/docs/Getting-Started/sync#end-to-end-encryption"},"Learn more")),a.a.createElement(c.v,null,a.a.createElement("ul",Object(o.css)(m),a.a.createElement("li",null,a.a.createElement("strong",null,"Important:")," if you forget this password"," ",a.a.createElement("em",null,"and")," you don't have any local copies of your data, you will lose access to all your data. We cannot decrypt your data."),a.a.createElement("li",null,"This key only applies to this file. You will need to generate a new key for each file you want to encrypt."),a.a.createElement("li",null,"If you've already downloaded your data on other devices, you will need to reset them. Actual will automatically take you through this process.")))),a.a.createElement("form",{onSubmit:e=>{e.preventDefault(),async function(){if(""!==j&&!C){k(!0),D(null);let e=await Object(l.send)("key-make",{password:j});if(e.error)return k(null),void D(Object(i.a)(e.error));t.loadGlobalPrefs(),t.loadAllFiles(),t.sync(),k(!1),t.popModal()}}()}},a.a.createElement(c.B,{style:g},a.a.createElement(c.y,{style:h},"Password"),A&&a.a.createElement(c.B,{style:b},A),a.a.createElement(c.l,null,a.a.createElement(c.n,{type:I?"text":"password",style:O,onChange:e=>S(e.target.value)})),a.a.createElement(c.y,{style:w},a.a.createElement("label",{style:E},a.a.createElement("input",{type:"checkbox",onClick:()=>T(!I)})," ","Show password"))),a.a.createElement(c.u,{style:v},a.a.createElement(c.f,{loading:C,primary:!0},"Enable")))))}},223:function(e,t,n){"use strict";n.d(t,"a",function(){return v});var r=n(0),a=n.n(r),o=n(3),l=n(133),i=n(1),c=n(2);function s(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return u(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return u(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var d={width:600},f={flex:1},p={fontSize:25,fontWeight:700,color:c.a.n2,margin:"20px 0"},m={marginTop:15,flexDirection:"column",alignItems:"center"},y={fontWeight:600,marginBottom:5},g={color:c.a.r4,textAlign:"center",fontSize:13,marginBottom:3},h={width:"50%"},b={marginTop:5},O={userSelect:"none"},w={marginTop:20},E={marginRight:10};function v({modalProps:e,actions:t,options:n={}}){let c=n.hasExistingKey,u=n.cloudFileId,v=n.onSuccess,j=s(Object(r.useState)(""),2),S=j[0],x=j[1],C=s(Object(r.useState)(""),2),k=C[0],P=C[1],A=s(Object(r.useState)(!1),2),D=A[0],B=A[1],I=s(Object(r.useState)(!1),2),T=I[0],M=I[1];async function R(){if(""!==S&&!D){B(!0),P(null);let e=(await Object(o.send)("key-test",{password:S,fileId:u})).error;if(e)return P(Object(l.c)(e)),void B(!1);t.popModal(),v&&v()}}return a.a.createElement(i.t,Object.assign({},e,{showHeader:!1,style:d}),()=>a.a.createElement(i.B,{style:f},a.a.createElement(i.y,{style:p},c?"Unable to decrypt file":"This file is encrypted"),c?a.a.createElement(i.v,null,"This file was encrypted with a different key than you are currently using. This probably means you changed your password. Enter your current password to update your key."," ",a.a.createElement(i.i,{asAnchor:!0,href:"https://actualbudget.github.io/docs/Getting-Started/sync#end-to-end-encryption"},"Learn more")):a.a.createElement(i.v,null,"We don","'","t have a key that encrypts or decrypts this file. Enter the password for this file to create the key for encryption."," ",a.a.createElement(i.i,{asAnchor:!0,href:"https://actualbudget.github.io/docs/Getting-Started/sync#end-to-end-encryption"},"Learn more")),a.a.createElement("form",{onSubmit:e=>{e.preventDefault(),R()}},a.a.createElement(i.B,{style:m},a.a.createElement(i.y,{style:y},"Password")," ",k&&a.a.createElement(i.B,{style:g},k),a.a.createElement(i.l,null,a.a.createElement(i.n,{type:T?"text":"password",style:h,onChange:e=>x(e.target.value)})),a.a.createElement(i.y,{style:b},a.a.createElement("label",{style:O},a.a.createElement("input",{type:"checkbox",onClick:()=>M(!T)})," ","Show password"))),a.a.createElement(i.u,{style:w},a.a.createElement(i.d,{style:E,onClick:()=>e.onBack(),type:"button"},"Back"),a.a.createElement(i.f,{loading:D,primary:!0,onClick:R},c?"Update key":"Create key")))))}},224:function(e,t,n){"use strict";var r=n(0),a=n.n(r),o=n(10),l=n(47),i=n(29),c=n(1),s=n(2),u=n(112),d=n(67);function f(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function p(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?f(Object(n),!0).forEach(function(t){m(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):f(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function m(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function y(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return g(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return g(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function g(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var h={lineHeight:"1.4em"};var b={fontWeight:700,marginBottom:10},O={flexShrink:0,color:"currentColor"},w={width:9,height:9,color:"currentColor"},E={position:"absolute",top:0,left:0,right:0,bottom:0,backgroundColor:"rgba(250, 250, 250, .75)",alignItems:"center",justifyContent:"center"},v={width:20,height:20,color:"currentColor"};function j({notification:e,onRemove:t}){let n=e.type,o=e.title,l=e.message,i=e.messageActions,f=e.sticky,m=e.internal,g=e.button,j=y(Object(r.useState)(!1),2),S=j[0],x=j[1],C=y(Object(r.useState)(!1),2),k=C[0],P=C[1];Object(r.useEffect)(()=>{"error"===n&&m&&console.error("Internal error:",m),f||setTimeout(t,6500)},[]);let A="message"===n,D="error"===n,B=Object(r.useMemo)(()=>(function(e,t,n,r){return a.a.createElement(c.x,{spacing:2},e.split(/\n\n/).map((e,o)=>{let l=e.split(/(\[[^\]]*\]\([^)]*\))/g);return a.a.createElement(c.y,{key:o,style:h},l.map((e,o)=>{let l=e.match(/\[([^\]]*)\]\(([^)]*)\)/);if(l){let e=y(l,3),i=(e[0],e[1]),s=e[2];if("#"===s[0]){let e=s.slice(1);return a.a.createElement("a",{href:"#",onClick:async a=>{a.preventDefault(),t[e]&&(n(!0),await t[e](),r())}},i)}return a.a.createElement(c.i,{key:o,asAnchor:!0,href:l[2]},l[1])}return a.a.createElement(c.y,{key:o},e)}))}))})(l,i,P,t),[l,i]);return a.a.createElement(c.B,{style:{marginTop:10,color:A?s.a.g3:D?s.a.r3:s.a.y2}},a.a.createElement(c.x,{align:"center",direction:"row",style:p(p({padding:"14px 14px",fontSize:14,backgroundColor:A?s.a.g11:D?s.a.r11:s.a.y10,borderTop:`3px solid ${A?s.a.g5:D?s.a.r5:s.a.y4}`},s.c.shadowLarge),{},{maxWidth:550,"& a":{color:"currentColor"}})},a.a.createElement(c.x,{align:"flex-start"},o&&a.a.createElement(c.B,{style:b},o),a.a.createElement(c.B,null,B),g&&a.a.createElement(c.f,{bare:!0,loading:S,onClick:async()=>{x(!0),await g.action(),t(),x(!1)},style:{backgroundColor:"transparent",border:`1px solid ${A?s.a.g5:D?s.a.r4:s.a.y3}`,color:"currentColor",fontSize:14,flexShrink:0,"&:hover, &:active":{backgroundColor:A?s.a.g9:D?s.a.r10:s.a.y9}}},g.title)),f&&a.a.createElement(c.d,{bare:!0,style:O,onClick:t},a.a.createElement(u.a,{style:w}))),k&&a.a.createElement(c.B,{style:E},a.a.createElement(d.a,{color:"currentColor",style:v})))}var S={position:"absolute",bottom:20,right:13,zIndex:1e4};t.a=Object(o.b)(e=>({notifications:e.notifications.notifications}),e=>Object(l.b)(i,e))(function({notifications:e,removeNotification:t,style:n}){return a.a.createElement(c.B,{style:[S,n]},e.map(e=>a.a.createElement(j,{key:e.id,notification:e,onRemove:()=>{e.onClose&&e.onClose(),t(e.id)}})))})},227:function(e,t,n){"use strict";var r=n(0),a=n(3);function o(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return l(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return l(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}t.a=function(){let e=o(Object(r.useState)(""),2),t=e[0],n=e[1];return Object(r.useEffect)(()=>{(async()=>{const e=await Object(a.send)("get-server-version"),t=e.error,r=e.version;n(t?"":r)})()},[]),t?`v${t}`:"N/A"}},240:function(e,t,n){"use strict";var r=n(0),a=n.n(r),o=n(12),l=n(1),i=n(2),c=n(67),s=n(300),u={position:"absolute",top:0,bottom:0,left:0,right:0,background:`url(${n.n(s).a}) no-repeat center center fixed`,backgroundSize:"100% 100%"};var d=function({selected:e}){return a.a.createElement("div",Object(o.css)(u))},f={position:"absolute",top:0,left:0,right:0,padding:50,paddingTop:200,color:i.a.n1,alignItems:"center"},p={marginBottom:20,fontSize:18};t.a=function({initializing:e,loadingText:t}){return a.a.createElement(a.a.Fragment,null,a.a.createElement(d,null),(null!=t||e)&&a.a.createElement(l.B,Object(o.css)(f),a.a.createElement(l.c,{style:p},t),a.a.createElement(c.a,{width:25,color:i.a.n1})))}},284:function(e,t,n){"use strict";var r=n(0),a=n.n(r),o=n(90),l=n(45);const i=a.a.forwardRef(({direction:e="column",align:t,justify:n,spacing:r=3,children:i,debug:c,style:s},u)=>{const d=e.endsWith("reverse"),f=e.startsWith("row"),p=function e(t,n){return a.a.Children.toArray(n).reduce((n,r)=>r?r.type===a.a.Fragment?n.concat(e(r.key,r.props.children)):(n.push({key:t+r.key,child:r}),n):n,[])}("",i);return a.a.createElement(l.a,{style:[{flexDirection:e,alignItems:t,justifyContent:n},s],innerRef:u},p.map(({key:e,child:t},n)=>{let l,i=p.length===n+1;return l=f?d?"marginLeft":"marginRight":d?"marginTop":"marginBottom",a.a.cloneElement("string"===typeof t?a.a.createElement(o.a,null,t):t,{key:e,style:[c&&{borderWidth:1,borderColor:"red"},i?null:{[l]:5*r},t.props?t.props.style:null]})}))});t.a=i},29:function(e,t,n){"use strict";n.r(t);var r=n(19),a=n(3),o=n(11),l=n(122);function i(e){return{type:o.a.SET_ACCOUNTS_SYNCING,name:e}}function c(e,t,n){return{type:"ACCOUNT_SYNC_STATUS",id:e,failed:!0,errorType:t,errorCode:n}}function s(e){return{type:"ACCOUNT_SYNC_STATUS",id:e,failed:!1}}function u(e){return{type:"ACCOUNT_SYNC_FAILURES",syncErrors:e}}function d(e){return async t=>{await Object(a.send)("account-unlink",{id:e}),t(s(e)),t(Object(r.j)())}}function f(e,t,n,o){return async l=>{await Object(a.send)("accounts-link",{institution:e,publicToken:t,accountId:n,upgradingId:o}),await l(Object(r.l)()),await l(Object(r.j)())}}function p(e,t,n,o){return async l=>{let i=await Object(a.send)("accounts-connect",{institution:e,publicToken:t,accountIds:n,offbudgetIds:o});return await l(Object(r.l)()),await l(Object(r.j)()),i}}function m(e){return async(t,n)=>{if(n().account.accountsSyncing)return!1;if(e){let r=n().queries.accounts.find(t=>t.id===e);t(i(r.name))}else t(i("__all"));const r=await Object(a.send)("accounts-sync",{id:e}),d=r.errors,f=r.newTransactions,p=r.matchedTransactions,m=r.updatedAccounts;if(t(i(null)),e){let n=d.find(t=>t.accountId===e);n?"SyncError"===n.type&&t(c(e,n.category,n.code)):t(s(e))}else t(u(d.filter(e=>"SyncError"===e.type).map(e=>({id:e.accountId,type:e.category,code:e.code}))));return d.forEach(e=>{"SyncError"===e.type?t(Object(l.b)({type:"error",message:e.message})):t(Object(l.b)({type:"error",message:e.message,internal:e.internal}))}),t({type:o.a.SET_NEW_TRANSACTIONS,newTransactions:f,matchedTransactions:p,updatedAccounts:m}),f.length>0||p.length>0}}function y(e){return{type:o.a.SET_LAST_TRANSACTION,transaction:e}}function g(e,t){return async n=>await Object(a.send)("transactions-parse-file",{filepath:e,options:t})}function h(e,t){return async n=>{let r=await Object(a.send)("transactions-import",{accountId:e,transactions:t}),i=r.errors,c=void 0===i?[]:i,s=r.added,u=r.updated;return c.forEach(e=>{n(Object(l.b)({type:"error",message:e.message,internal:e.internal}))}),n({type:o.a.SET_NEW_TRANSACTIONS,newTransactions:s,matchedTransactions:u,updatedAccounts:s.length>0?[e]:[]}),s.length>0||u.length>0}}function b(e){return{type:o.a.UPDATE_NEW_TRANSACTIONS,changedId:e}}function O(e){return{type:o.a.MARK_ACCOUNT_READ,accountId:e}}function w(){return async e=>{e({type:o.a.LOAD_BANKS,banks:await Object(a.send)("banks")})}}function E(e,t){return{type:o.a.DEBUG_CELL,sheet:e,name:t}}var v=n(16),j=n(105),S=n(61),x=n(87),C=n(167);function k(e,t){return async(n,r)=>{const o=r().prefs.local;o&&o.id&&await n(Object(S.b)()),await Object(a.send)("backup-load",{id:e,backupId:t}),n(Object(S.j)(e))}}function P(){return async(e,t)=>{const n=t().prefs.local;n&&n.id&&await Object(a.send)("backup-make",{id:n.id})}}var A=n(133);function D(){return async e=>{const t=await Object(a.send)("unregister");e({type:o.a.SET_PROFILE,profile:t})}}function B(){return async(e,t)=>{let n=(await Object(a.send)("sync-reset")).error;n?(alert(Object(A.d)(n)),"encrypt-failure"===n.reason&&n.meta.isMissingKey||"file-has-new-key"===n.reason?e(Object(v.d)("fix-encryption-key",{onSuccess:()=>{e(B())}})):"encrypt-failure"===n.reason&&e(Object(v.d)("create-encryption-key",{recreate:!0}))):(await e(I()),await e(Object(j.b)()))}}function I(){return async(e,t)=>{const n=t().prefs.local;if(n&&n.id){return{error:(await Object(a.send)("sync")).error}}}}function T(e){return async(t,n)=>{let r=await t(I());if(r.error)return{error:r.error};let a=await t(m(e));if(a){let e=await t(I());return!e.error||{error:e.error}}return{hasUpdated:a||r.updated}}}var M=n(111);n.d(t,"applyBudgetAction",function(){return r.a}),n.d(t,"getCategories",function(){return r.k}),n.d(t,"createCategory",function(){return r.d}),n.d(t,"deleteCategory",function(){return r.g}),n.d(t,"updateCategory",function(){return r.v}),n.d(t,"moveCategory",function(){return r.n}),n.d(t,"moveCategoryGroup",function(){return r.o}),n.d(t,"createGroup",function(){return r.e}),n.d(t,"updateGroup",function(){return r.w}),n.d(t,"deleteGroup",function(){return r.h}),n.d(t,"getPayees",function(){return r.l}),n.d(t,"initiallyLoadPayees",function(){return r.m}),n.d(t,"createPayee",function(){return r.f}),n.d(t,"getAccounts",function(){return r.j}),n.d(t,"updateAccount",function(){return r.u}),n.d(t,"createAccount",function(){return r.c}),n.d(t,"openAccountCloseModal",function(){return r.p}),n.d(t,"closeAccount",function(){return r.b}),n.d(t,"reopenAccount",function(){return r.r}),n.d(t,"forceCloseAccount",function(){return r.i}),n.d(t,"setUndoEnabled",function(){return r.s}),n.d(t,"undo",function(){return r.t}),n.d(t,"redo",function(){return r.q}),n.d(t,"setAccountsSyncing",function(){return i}),n.d(t,"markAccountFailed",function(){return c}),n.d(t,"markAccountSuccess",function(){return s}),n.d(t,"setFailedAccounts",function(){return u}),n.d(t,"unlinkAccount",function(){return d}),n.d(t,"linkAccount",function(){return f}),n.d(t,"connectAccounts",function(){return p}),n.d(t,"syncAccounts",function(){return m}),n.d(t,"setLastTransaction",function(){return y}),n.d(t,"parseTransactions",function(){return g}),n.d(t,"importTransactions",function(){return h}),n.d(t,"updateNewTransactions",function(){return b}),n.d(t,"markAccountRead",function(){return O}),n.d(t,"getBanks",function(){return w}),n.d(t,"debugCell",function(){return E}),n.d(t,"pushModal",function(){return v.d}),n.d(t,"replaceModal",function(){return v.e}),n.d(t,"hideModals",function(){return v.b}),n.d(t,"showModals",function(){return v.f}),n.d(t,"popModal",function(){return v.c}),n.d(t,"closeModal",function(){return v.a}),n.d(t,"addNotification",function(){return l.b}),n.d(t,"addGenericErrorNotification",function(){return l.a}),n.d(t,"removeNotification",function(){return l.c}),n.d(t,"loadPrefs",function(){return j.b}),n.d(t,"savePrefs",function(){return j.d}),n.d(t,"loadGlobalPrefs",function(){return j.a}),n.d(t,"saveGlobalPrefs",function(){return j.c}),n.d(t,"updateStatusText",function(){return S.m}),n.d(t,"loadBudgets",function(){return S.k}),n.d(t,"loadRemoteFiles",function(){return S.l}),n.d(t,"loadAllFiles",function(){return S.i}),n.d(t,"loadBudget",function(){return S.j}),n.d(t,"closeBudget",function(){return S.b}),n.d(t,"closeBudgetUI",function(){return S.c}),n.d(t,"deleteBudget",function(){return S.e}),n.d(t,"createBudget",function(){return S.d}),n.d(t,"importBudget",function(){return S.h}),n.d(t,"uploadBudget",function(){return S.n}),n.d(t,"closeAndDownloadBudget",function(){return S.a}),n.d(t,"downloadBudget",function(){return S.f}),n.d(t,"getYNAB4Imports",function(){return S.g}),n.d(t,"setAppState",function(){return x.b}),n.d(t,"updateApp",function(){return x.d}),n.d(t,"setLastUndoState",function(){return x.c}),n.d(t,"uploadFile",function(){return x.e}),n.d(t,"focused",function(){return x.a}),n.d(t,"startTutorialFirstTime",function(){return C.a}),n.d(t,"loadBackup",function(){return k}),n.d(t,"makeBackup",function(){return P}),n.d(t,"unregister",function(){return D}),n.d(t,"resetSync",function(){return B}),n.d(t,"sync",function(){return I}),n.d(t,"syncAndDownload",function(){return T}),n.d(t,"getUserData",function(){return M.a}),n.d(t,"loggedIn",function(){return M.b}),n.d(t,"signOut",function(){return M.c})},295:function(e,t,n){"use strict";function r(){return new Worker(n.p+"static/js/browser-server.9a112312.worker.js")}n.d(t,"a",function(){return r})},296:function(e,t,n){"use strict";(function(e){var r=n(0),a=n.n(r),o=n(10),l=n(12),i=n(29),c=n(3),s=n(2),u=n(297),d=n(240),f=n(301),p=n(518),m=n(519),y=n(514),g=n(324),h={height:"100%",backgroundColor:"#E8ECF0",overflow:"hidden"};t.a=Object(o.b)(e=>({budgetId:e.prefs.local&&e.prefs.local.id,cloudFileId:e.prefs.local&&e.prefs.local.cloudFileId,loadingText:e.app.loadingText}),i)(class extends a.a.Component{constructor(...e){super(...e),this.state={fatalError:null,initializing:!0,hiddenScrollbars:Object(s.b)()}}async init(){const t=await e.Actual.getServerSocket();try{await Object(c.init)(t)}catch(r){if("app-init-failure"===r.type)return void this.setState({initializing:!1,fatalError:r});throw r}await this.props.loadGlobalPrefs();const n=await Object(c.send)("get-last-opened-backup");n&&(await this.props.loadBudget(n),Object(c.send)("get-remote-files").then(e=>{if(e){let t=e.find(e=>e.fileId===this.props.cloudFileId);t&&t.deleted&&this.props.closeBudget()}}))}async componentDidMount(){await Promise.all([Object(u.a)(),this.init()]),this.setState({initializing:!1});let e=()=>{this.state.hiddenScrollbars!==Object(s.b)()&&this.setState({hiddenScrollbars:Object(s.b)()})};window.addEventListener("focus",e),this.cleanup=(()=>window.removeEventListener("focus",e))}componentDidCatch(e,t){window.SentryClient.captureException(e,{extra:t}),this.setState({fatalError:e})}componentDidUpdate(t){this.props.budgetId!==t.budgetId&&e.Actual.updateAppMenu(!!this.props.budgetId)}render(){const e=this.props,t=e.budgetId,n=e.loadingText,r=this.state,o=r.fatalError,i=r.initializing,c=r.hiddenScrollbars;return a.a.createElement("div",Object.assign({key:c?"hidden-scrollbars":"scrollbars"},Object(l.css)([h,s.c.lightScrollbar])),o?a.a.createElement(a.a.Fragment,null,a.a.createElement(d.a,null),a.a.createElement(f.a,{error:o,buttonText:"Restart app"})):i?a.a.createElement(d.a,{initializing:i,loadingText:n}):t?a.a.createElement(p.a,null):a.a.createElement(a.a.Fragment,null,a.a.createElement(d.a,{initializing:i,loadingText:n}),a.a.createElement(m.a,null)),a.a.createElement(g.a,null),a.a.createElement(y.a,null))}})}).call(this,n(17))},297:function(e,t,n){"use strict";async function r(){if("ResizeObserver"in window===!1){const e=await n.e(2).then(n.bind(null,572));window.ResizeObserver=e.ResizeObserver}}n.d(t,"a",function(){return r})},3:function(e,t,n){const r=n(339),a=r.captureException,o=r.captureBreadcrumb,l=n(152),i=n(22);let c=new Map,s=new Map,u=[],d=null;class f extends Error{constructor(e,t,n,r,a){super(e),this.name=this.constructor.name,this.message=e,Object.defineProperty(this,"stack",{get:function(){return"extended "+this._stack},set:function(e){this._stack=e}}),this.stack=t,this.url=n,this.line=r,this.column=a}}function p(e,t,n){d=e,e.addEventListener("message",r=>{let l=r.data;"connect"===l.type?(u.length>0&&(u.forEach(t=>e.postMessage(t)),u=[]),t()):"app-init-failure"===l.type?n(l):"capture-exception"===l.type?(a(l.stack?new f(l.message,l.stack,l.url,l.line,l.column):l.exc),l.message&&l.message.includes("indexeddb-quota-error")&&alert("We hit a limit on the local storage available. Edits may not be saved. Please contact help@actualbudget.com to help debug this.")):"capture-breadcrumb"===l.type?o(l.data):function(e){if("error"===e.type){const t=e.id;c.delete(t)}else if("reply"===e.type){const t=e.id,n=e.result,r=e.mutated,a=e.undoTag,o=c.get(t);o&&(c.delete(t),r||i.gc(a),o.resolve(n))}else if("push"===e.type){const t=e.name,n=e.args,r=s.get(t);if(r)for(let e=0;e<r.length&&!0!==r[e](n);e++);}else if(!e.type.startsWith("__"))throw new Error("Unknown message type: "+JSON.stringify(e))}(l)}),e instanceof MessagePort&&e.start()}e.exports.init=async function(e){return new Promise((t,n)=>p(e,t,n))},e.exports.send=function(e,t,{catchErrors:n=!1}={}){return new Promise((r,a)=>{l.v4().then(o=>{c.set(o,{resolve:r,reject:a}),d?d.postMessage({id:o,name:e,args:t,undoTag:i.snapshot(),catchErrors:n}):u.push({id:o,name:e,args:t,undoTag:i.snapshot(),catchErrors:n})})})},e.exports.sendCatch=function(t,n){return e.exports.send(t,n,{catchErrors:!0})},e.exports.listen=function(e,t){return s.get(e)||s.set(e,[]),s.get(e).push(t),()=>{let n=s.get(e);s.set(e,n.filter(e=>e!==t))}},e.exports.unlisten=function(e){s.set(e,[])}},300:function(e,t,n){e.exports=n.p+"static/media/bg.ad9dce3b.svg"},301:function(e,t,n){"use strict";var r=n(0),a=n.n(r),o=n(1),l=n(2),i={alignItems:"center",justifyContent:"center",height:"100%"},c={paddingBottom:100,maxWidth:500,color:l.a.r4,lineHeight:"1.5em",fontSize:15,"& a":{color:l.a.r4}},s={maxWidth:500},u={color:l.a.p4},d={fontSize:11},f={color:l.a.p4},p={marginTop:5,height:100,overflow:"auto"};t.a=class extends a.a.Component{constructor(...e){super(...e),this.state={showError:!1}}renderSimple(e){let t;return t=e.IDBFailure?a.a.createElement(o.y,null,"Your browser doesn","'","t support IndexedDB in this environment, a feature that Actual requires to run. This might happen if you are in private browsing mode. Please try a different browser or turn off private browsing."):a.a.createElement(o.y,null,"There was a problem loading the app in this browser version. If this continues to be a problem, you can"," ",a.a.createElement("a",{href:"https://github.com/actualbudget/releases"},"download the desktop app"),"."),a.a.createElement(o.B,{style:i},a.a.createElement(o.x,{style:c},a.a.createElement(o.y,null,t),a.a.createElement(o.y,null,"Contact"," ",a.a.createElement("a",{href:"mailto:help@actualbudget.com"},"help@actualbudget.com")," for support")))}render(){const e=this.props,t=e.buttonText,n=e.error,r=this.state.showError;return"app-init-failure"===n.type?this.renderSimple(n):a.a.createElement(o.t,{isCurrent:!0,showClose:!1,title:"Fatal Error"},()=>a.a.createElement(o.B,{style:s},a.a.createElement(o.v,null,"There was an unrecoverable error in the UI. Sorry! This error has been reported and hopefully will be fixed soon."),a.a.createElement(o.v,null,"If you want to talk about what happened or give any feedback, send an email to"," ",a.a.createElement("a",{href:"mailto:help@actualbudget.com",style:u},"help@actualbudget.com"),"."),a.a.createElement(o.v,null,a.a.createElement(o.d,{onClick:()=>window.Actual.relaunch()},t)),a.a.createElement(o.v,{isLast:!0,style:d},a.a.createElement(o.r,{onClick:()=>this.setState({showError:!0}),style:f},"Show Error"),r&&a.a.createElement(o.c,{style:p},n.stack))))}}},303:function(e,t,n){"use strict";(function(e){n.d(t,"a",function(){return o});var r=n(3),a=n(64);function o(t,n,o){Object(r.send)("get-upgrade-notifications").then(n=>{n.forEach(n=>{switch(n){case"schedules":{let n="Track bills and subscriptions and much more with scheduled transactions. We can search all your existing transactions and try to find existing schedules.\n\n"+(e.IS_BETA?"NOTE: You are using the beta version, and this will not reset your sync data. This is safe to do.":"");"mobile"===a.a.env&&(n="Track bills and subscriptions and much more with scheduled transactions. Upcoming transactions will be shown in the accounts screen. Use the desktop app to create schedules."),t({type:"message",title:"Scheduled transactions are now available!",message:n,sticky:!0,id:"find-schedules",button:"mobile"!==a.a.env&&{title:"Find schedules",action:async()=>{__history&&__history.push("/schedule/discover",{locationPtr:__history.location})}},onClose:()=>{Object(r.send)("seen-upgrade-notification",{type:"schedules"})}});break}case"repair-splits":o&&t({type:"message",title:"Split transactions now support transfers & payees",message:"The payee field is now available on split transactions, allowing you to perform transfers on individual split transactions.\n\nAll existing split transactions have a blank payee and we recommend using the tool below to set the payee from the parent. [View a video walkthrough](https://actualbudget.com/blog/split-transactions-transfer)",sticky:!0,id:"repair-splits",button:{title:"Repair splits...",action:()=>o.push("/tools/fix-splits",{locationPtr:o.location})},onClose:()=>{Object(r.send)("seen-upgrade-notification",{type:"repair-splits"})}})}})})}}).call(this,n(17))},304:function(e,t,n){"use strict";n.d(t,"a",function(){return g});var r=n(0),a=n.n(r),o=n(49),l=n(1),i=n(213);function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?c(Object(n),!0).forEach(function(t){u(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):c(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function u(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function d(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return f(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return f(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function f(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}const p=150,m=(e,t)=>e;function y({onResize:e,children:t}){return t(Object(i.a)(e))}class g extends a.a.PureComponent{constructor(e){super(e),this._outerRef=void 0,this._resetIsScrollingTimeoutId=null,this.setRowAnimation=(e=>{this.animationEnabled=e;let t=this._outerRef;t&&(this.animationEnabled?t.classList.add("animated"):t.classList.remove("animated"))}),this.onHeaderResize=(e=>{}),this.getItemOffset=(e=>e*this.props.itemSize),this.getItemSize=(e=>this.props.itemSize),this.getEstimatedTotalSize=(()=>this.props.itemSize*this.props.itemCount),this.getOffsetForIndexAndAlignment=((e,t,n)=>{const r=this.props.height,a=Math.max(0,this.props.itemCount*this.props.itemSize-r),o=Math.min(a,e*this.props.itemSize),l=Math.max(0,e*this.props.itemSize-r+this.props.itemSize);switch("smart"===t&&(t=n>=l-r&&n<=o+r?"auto":"center"),t){case"start":return o;case"end":return l;case"center":{const e=Math.round(l+(o-l)/2);return e<Math.ceil(r/2)?0:e>a+Math.floor(r/2)?a:e}case"auto":default:return n>=l&&n<=o?n:n<l?l:o}}),this.getStartIndexForOffset=(e=>Math.max(0,Math.min(this.props.itemCount-1,Math.floor(e/this.props.itemSize)))),this.getStopIndexForStartIndex=((e,t)=>{const n=e*this.props.itemSize,r=this.props.width,a=Math.ceil((r+t-n)/this.props.itemSize);return Math.max(0,Math.min(this.props.itemCount-1,e+a-1))}),this._callOnItemsRendered=Object(o.a)((e,t,n,r)=>this.props.onItemsRendered({overscanStartIndex:e,overscanStopIndex:t,visibleStartIndex:n,visibleStopIndex:r})),this._callOnScroll=Object(o.a)((e,t,n)=>this.props.onScroll({scrollDirection:e,scrollOffset:t,scrollUpdateWasRequested:n})),this._getItemStyle=(e=>{const t=this.props,n=t.direction,r=t.itemSize,a=t.layout,o=this._getItemStyleCache(r,a,n);let l;if(o.hasOwnProperty(e))l=o[e];else{const t=this.getItemOffset(e),n=this.getItemSize(e);o[e]=l={position:"absolute",left:0,top:t,height:n,width:"100%"}}return l}),this._getItemStyleCache=Object(o.a)((e,t,n)=>({})),this._onScrollVertical=(e=>{let t=e.currentTarget.scrollTop;this.setState(e=>{if(e.scrollOffset===t)return null;let n=t;return{isScrolling:!0,scrollDirection:e.scrollOffset<n?"forward":"backward",scrollOffset:n,scrollUpdateWasRequested:!1}},this._resetIsScrollingDebounced)}),this._outerRefSetter=(e=>{const t=this.props.outerRef;this._outerRef=e,"function"===typeof t?t(e):null!=t&&"object"===typeof t&&t.hasOwnProperty("current")&&(t.current=e)}),this._resetIsScrollingDebounced=(()=>{null!==this._resetIsScrollingTimeoutId&&clearTimeout(this._resetIsScrollingTimeoutId),this._resetIsScrollingTimeoutId=setTimeout(this._resetIsScrolling,p)}),this._resetIsScrolling=(()=>{this._resetIsScrollingTimeoutId=null,this.setState({isScrolling:!1},()=>{this._getItemStyleCache(-1,null)})}),this.lastPositions=a.a.createRef(),this.lastPositions.current=new Map,this.needsAnimationRerender=a.a.createRef(),this.needsAnimationRerender.current=!1,this.animationEnabled=!1,this.state={instance:this,isScrolling:!1,scrollDirection:"forward",scrollOffset:"number"===typeof this.props.initialScrollOffset?this.props.initialScrollOffset:0,scrollUpdateWasRequested:!1}}scrollTo(e){e=Math.max(0,e),this.setState(t=>t.scrollOffset===e?null:(this.requestScrollUpdateHandled=!1,{scrollDirection:t.scrollOffset<e?"forward":"backward",scrollOffset:e,scrollUpdateWasRequested:!0}),this._resetIsScrollingDebounced)}scrollToItem(e,t="auto"){const n=this.props.itemCount,r=this.state.scrollOffset;e=Math.max(0,Math.min(e,n-1)),this.scrollTo(this.getOffsetForIndexAndAlignment(e,t,r))}componentDidMount(){const e=this.props.initialScrollOffset;if("number"===typeof e&&null!=this._outerRef){let t=this._outerRef;(t=this._outerRef).scrollTop=e}this._callPropsCallbacks()}getAnchoredScrollPos(){if(this.anchored&&this.props.indexForKey&&null!=this._outerRef){let e=this.props.indexForKey(this.anchored.key);return this.getOffsetForIndexAndAlignment(e,"start")+this.anchored.offset}return null}componentDidUpdate(){const e=this.state,t=e.scrollOffset,n=e.scrollUpdateWasRequested;let r=this.getAnchoredScrollPos();if(null!=r){this._outerRef.scrollTop=r}else if(n&&!this.requestScrollUpdateHandled&&null!=this._outerRef){this.requestScrollUpdateHandled=!0,this._outerRef.scrollTop=t}this.needsAnimationRerender.current&&(this.needsAnimationRerender.current=!1,this.rerenderTimeout=setTimeout(()=>{this.forceUpdate()},10)),this._callPropsCallbacks()}componentWillUnmount(){null!==this._resetIsScrollingTimeoutId&&clearTimeout(this._resetIsScrollingTimeoutId)}render(){const e=this.props,t=e.className,n=e.height,r=e.header,o=e.innerRef,i=e.innerElementType,c=e.innerTagName,u=e.itemCount,f=e.renderRow,p=e.itemKey,g=void 0===p?m:p,h=e.outerElementType,b=e.outerTagName,O=e.style,w=e.useIsScrolling,E=e.width,v=this.state.isScrolling,j=d(this._getRangeToRender(),2),S=j[0],x=j[1],C=new Map,k=[];if(u>0)for(let a=S;a<=x;a++){let e=g(a),t=this._getItemStyle(a),n=this.lastPositions.current.get(e),r=!1;C.set(e,t.top),this.animationEnabled&&null!=n&&n!==t.top&&(t=s(s({},t),{},{top:n}),this.needsAnimationRerender.current=!0,r=!0),k.push(f({index:a,key:e,style:t,isScrolling:w?v:void 0,isAnimating:r}))}this.lastPositions.current=C;let P=this.getEstimatedTotalSize(),A=h||b||"div",D=i||c||"div";var B=s({height:n,width:E,overflow:"auto"},O),I={position:"relative",height:P,width:"100%",pointerEvents:v?"none":void 0};return a.a.createElement(y,{onResize:this.onHeaderResize},e=>a.a.createElement(A,{className:t,onScroll:this._onScrollVertical,ref:this._outerRefSetter,style:B},a.a.createElement(l.B,{innerRef:e},r),a.a.createElement(D,{ref:o,style:I},k)))}anchor(){let e=this.props.itemKey||m,t=this._outerRef,n=t?t.scrollTop:0,r=this.getStartIndexForOffset(n),a=e(r);this.anchored={key:a,offset:n-this.getItemOffset(r)}}unanchor(){this.anchored=null}isAnchored(){return null!=this.anchored}_callPropsCallbacks(){if("function"===typeof this.props.onItemsRendered){if(this.props.itemCount>0){const e=d(this._getRangeToRender(),4),t=e[0],n=e[1],r=e[2],a=e[3];this._callOnItemsRendered(t,n,r,a)}}if("function"===typeof this.props.onScroll){const e=this.state,t=e.scrollDirection,n=e.scrollOffset,r=e.scrollUpdateWasRequested;this._callOnScroll(t,n,r)}}_getRangeToRender(){let e=this.props,t=e.itemCount,n=e.overscanCount,r=this.state,a=r.isScrolling,o=r.scrollDirection,l=r.scrollOffset,i=this.getAnchoredScrollPos();if(null!=i&&(l=i),0===t)return[0,0,0,0];const c=this.getStartIndexForOffset(l),s=this.getStopIndexForStartIndex(c,l),u=a&&"backward"!==o?1:Math.max(1,n),d=a&&"forward"!==o?1:Math.max(1,n);return[Math.max(0,c-u),Math.max(0,Math.min(t-1,s+d)),c,s]}}g.defaultProps={direction:"ltr",renderRow:void 0,layout:"vertical",overscanCount:2,useIsScrolling:!1,headerHeight:0}},324:function(e,t,n){"use strict";var r=n(0),a=n.n(r),o=n(10),l=n(47),i=n(29),c=n(1),s=n(2);function u(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function d(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?u(Object(n),!0).forEach(function(t){f(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):u(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function f(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var p=e=>a.a.createElement("svg",Object.assign({},e,{viewBox:"0 0 20 20",style:d({color:"#242134"},e.style)}),a.a.createElement("path",{d:"M10 8.586L2.929 1.515 1.515 2.929 8.586 10l-7.071 7.071 1.414 1.414L10 11.414l7.071 7.071 1.414-1.414L11.414 10l7.071-7.071-1.414-1.414L10 8.586z",fill:"currentColor"}));var m={position:"absolute",bottom:0,right:0,margin:"15px 17px",backgroundColor:s.a.p6,color:"white",padding:"7px 10px",borderRadius:4,zIndex:1e4,maxWidth:450},y={flexDirection:"row",alignItems:"center"},g={marginRight:10,fontWeight:700},h={flex:1},b={marginTop:-1},O={color:"white",textDecoration:"underline"},w={color:"white",textDecoration:"underline"},E={display:"inline",padding:"1px 7px 2px 7px"},v={color:"white"},j={marginTop:10,fontWeight:500};t.a=Object(o.b)(e=>({updateInfo:e.app.updateInfo,showUpdateNotification:e.app.showUpdateNotification}),e=>Object(l.b)(i,e))(function({updateInfo:e,showUpdateNotification:t,updateApp:n,setAppState:r}){if(e&&t){let t=e.releaseNotes;return a.a.createElement(c.B,{style:m},a.a.createElement(c.B,{style:y},a.a.createElement(c.B,{style:g},a.a.createElement(c.y,null,"App updated to ",e.version)),a.a.createElement(c.B,{style:h}),a.a.createElement(c.B,{style:b},a.a.createElement(c.y,null,a.a.createElement(c.r,{onClick:n,style:O},"Restart")," ","(",a.a.createElement(c.r,{style:w,onClick:()=>window.Actual.openURLInBrowser("https://actualbudget.com/blog/"+e.version)},"notes"),")",a.a.createElement(c.d,{bare:!0,style:E,onClick:()=>(function(e){e({updateInfo:null,showUpdateNotification:!1})})(r)},a.a.createElement(p,{width:9,style:v}))))),t&&a.a.createElement(c.B,{style:j},t))}return null})},331:function(e,t,n){"use strict";(function(e){var t=n(294),r=n(295);let a,o=!1,l=null!=Object({NODE_ENV:"production",PUBLIC_URL:"",REACT_APP_ACTUAL_VERSION:"23.1.12",REACT_APP_BACKEND_WORKER_HASH:"23b27ae2569ade5c8b6a",REACT_APP_RELEASE_TYPE:""}).PERF_BUILD,i="23.1.12";function c(){a=new r.a,Object(t.a)(a),a.postMessage({type:"init",version:i,isDev:o,hash:"23b27ae2569ade5c8b6a"}),(o||l)&&(a.addEventListener("message",e=>{if("__actual:backend-running"===e.data.type){let e=document.querySelector(".debugger .activity");if(e){let t=window.getComputedStyle(e)["background-color"];e.style.transition="none",e.style.backgroundColor="#3EBD93",setTimeout(()=>{e.style.transition="background-color 1s",e.style.backgroundColor=t},100)}}}),Promise.resolve().then(function(){var e=new Error("Cannot find module 'perf-deets/frontend'");throw e.code="MODULE_NOT_FOUND",e}).then(({listenForPerfData:e})=>{e(a)}))}c(),(o||l)&&Promise.resolve().then(function(){var e=new Error("Cannot find module 'perf-deets/frontend'");throw e.code="MODULE_NOT_FOUND",e}).then(({listenForPerfData:t})=>{t(window),e.__startProfile=(()=>{window.postMessage({type:"__perf-deets:start-profile"}),a.postMessage({type:"__perf-deets:start-profile"})}),e.__stopProfile=(()=>{window.postMessage({type:"__perf-deets:stop-profile"}),a.postMessage({type:"__perf-deets:stop-profile"})})}),e.Actual={IS_DEV:o,ACTUAL_VERSION:i,IS_FAKE_WEB:!0,IS_BETA:!1,logToTerminal:(...e)=>{console.log(...e)},relaunch:()=>{window.location.reload()},openFileDialog:async({filters:e=[],properties:t})=>new Promise(t=>{let n=document.createElement("input");n.type="file";let r=e.find(e=>e.extensions);r&&(n.accept=r.extensions.map(e=>"."+e).join(",")),n.style.position="absolute",n.style.top="0px",n.style.left="0px",n.dispatchEvent(new MouseEvent("click",{view:window,bubbles:!0,cancelable:!0})),n.addEventListener("change",e=>{let n=e.target.files[0],r=n.name.replace(/.*(\.[^.]*)/,"file$1");if(n){var a=new FileReader;a.readAsArrayBuffer(n),a.onload=async function(e){let n=`/uploads/${r}`;window.__actionsForMenu.uploadFile(r,e.target.result).then(()=>t([n]))},a.onerror=function(e){alert("Error reading file")}}})}),saveFile:(e,t,n)=>{const r=document.createElement("a");r.style="display: none",r.download=t,r.rel="noopener";const a=new Blob([e]);r.href=URL.createObjectURL(a),r.dispatchEvent(new MouseEvent("click"))},openURLInBrowser:e=>{window.open(e,"_blank")},onEventFromMain:(e,t)=>{},applyAppUpdate:()=>{},updateAppMenu:e=>{},ipcConnect:()=>{},getServerSocket:async()=>a},o&&(e.Actual.reloadBackend=(()=>{a.postMessage({type:"__actual:shutdown"}),c()})),document.addEventListener("keydown",e=>{(e.metaKey||e.ctrlKey)&&(79===e.keyCode?(e.preventDefault(),window.__actionsForMenu.closeBudget()):90===e.keyCode&&(e.shiftKey?window.__actionsForMenu.redo():window.__actionsForMenu.undo()))})}).call(this,n(17))},339:function(e,t,n){"use strict";function r(e){console.log("[Exception]",e),SentryClient.captureException(e)}function a(e){SentryClient.addBreadcrumb(e)}n.r(t),n.d(t,"captureException",function(){return r}),n.d(t,"captureBreadcrumb",function(){return a})},4:function(e,t,n){"use strict";(function(e){n.d(t,"t",function(){return m}),n.d(t,"s",function(){return y}),n.d(t,"e",function(){return g}),n.d(t,"d",function(){return h}),n.d(t,"c",function(){return b}),n.d(t,"u",function(){return O}),n.d(t,"b",function(){return w}),n.d(t,"y",function(){return E}),n.d(t,"a",function(){return v}),n.d(t,"x",function(){return j}),n.d(t,"r",function(){return S}),n.d(t,"v",function(){return C}),n.d(t,"f",function(){return P}),n.d(t,"k",function(){return A}),n.d(t,"o",function(){return D}),n.d(t,"j",function(){return B}),n.d(t,"q",function(){return I}),n.d(t,"p",function(){return T}),n.d(t,"w",function(){return M}),n.d(t,"g",function(){return R}),n.d(t,"h",function(){return _}),n.d(t,"i",function(){return L}),n.d(t,"l",function(){return N}),n.d(t,"m",function(){return F}),n.d(t,"n",function(){return U});var r=n(596),a=n(241),o=n(521),l=n(196),i=n(385),c=n(386),s=n(568),u=(n(569),n(570),n(49));function d(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return f(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return f(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function f(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function p(e){if("string"===typeof e){let t=d(e.split("-"),3),n=t[0],r=t[1],a=t[2];return null!=a?new Date(parseInt(n),parseInt(r)-1,parseInt(a),12):null!=r?new Date(parseInt(n),parseInt(r)-1,1,12):new Date(parseInt(n),0,1,12)}return e}const m=p;function y(e){return r.a(p(e),"yyyy-MM")}function g(e){return r.a(p(e),"yyyy-MM-dd")}function h(){return e.IS_TESTING?"2017-01":r.a(new Date,"yyyy-MM")}function b(){return e.IS_TESTING?"2017-01-01":r.a(new Date,"yyyy-MM-dd")}function O(e){return r.a(o.a(p(e),1),"yyyy-MM")}function w(e,t){return r.a(a.a(p(e),t),"yyyy-MM")}function E(e,t){return r.a(o.a(p(e),t),"yyyy-MM")}function v(e,t){return r.a(l.a(p(e),t),"yyyy-MM-dd")}function j(e,t){return r.a(i.a(p(e),t),"yyyy-MM-dd")}function S(e,t){return s.a(p(e),p(t))}function x(e,t,n){const r=[];let a=y(e);for(;c.a(p(a),p(t));)r.push(a),a=w(a,1);return n&&r.push(a),r}function C(e,t){return x(e,t,!0)}function k(e,t,n){const r=[];let a=e;for(;c.a(p(a),p(t));)r.push(a),a=v(a,1);return n&&r.push(a),r}function P(e,t){return k(e,t,!0)}function A(e){return parseInt(e.slice(5,7))-1}function D(e){return e.slice(0,4)}function B(e){return e.slice(0,7)}function I(e){return D(e)+"-01"}function T(e){return D(e)+"-12"}function M(e){return"budget"+e.replace("-","")}function R(e,t){return r.a(p(e),t)}Object(u.a)(e=>new RegExp(e.replace(/d+/g,"\\d{1,2}").replace(/M+/g,"\\d{1,2}").replace(/y+/g,"\\d{4}")));const _=Object(u.a)(e=>e.replace(/y+/g,"").replace(/[^\w]$/,"").replace(/^[^\w]/,"")),L=Object(u.a)(e=>{let t=e.replace(/y+/g,"").replace(/[^\w]$/,"").replace(/^[^\w]/,"").replace(/d+/g,"\\d{1,2}").replace(/M+/g,"\\d{1,2}");return new RegExp("^"+t+"$")}),N=Object(u.a)(e=>e.replace(/d+/g,"").replace(/[^\w]$/,"").replace(/^[^\w]/,"").replace(/\/\//,"/").replace(/\.\./,".").replace(/--/,"-")),F=(Object(u.a)(e=>{let t=e.replace(/d+/g,"").replace(/[^\w]$/,"").replace(/^[^\w]/,"").replace(/\/\//,"/").replace(/M+/g,"\\d{1,2}").replace(/y+/g,"\\d{2,4}");return new RegExp("^"+t+"$")}),Object(u.a)(e=>e.replace(/y+/g,"yy"))),U=Object(u.a)(e=>{let t=e.replace(/[^\w]$/,"").replace(/^[^\w]/,"").replace(/d+/g,"\\d{1,2}").replace(/M+/g,"\\d{1,2}").replace(/y+/g,"\\d{2}");return new RegExp("^"+t+"$")})}).call(this,n(17))},417:function(e,t,n){e.exports=n.p+"static/media/DateSelect.left.1ae92674.png"},418:function(e,t,n){e.exports=n.p+"static/media/DateSelect.right.2a470dc0.png"},42:function(e,t,n){"use strict";n.d(t,"c",function(){return y}),n.d(t,"d",function(){return b}),n.d(t,"e",function(){return O}),n.d(t,"a",function(){return w}),n.d(t,"b",function(){return E});var r=n(0),a=n.n(r),o=n(10),l=n(3),i=n(22),c=n(88);function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function u(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?s(Object(n),!0).forEach(function(t){d(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):s(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function d(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function f(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return p(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return p(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function p(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function m(e,t){let n=Math.min(e.start,e.end),r=Math.max(e.start,e.end);for(let a=n;a<=r;a++)t(a)}function y(e,t,n){let a=f(Object(r.useReducer)((e,n)=>{switch(n.type){case"select":{let r=e.selectedRange,a=new Set(e.selectedItems),o=n.id;if(Object(c.a)("shift")&&r){let n,l,i=t.findIndex(e=>e.id===o),c=t.findIndex(e=>e.id===r.start),s=t.findIndex(e=>e.id===r.end);return-1===s?n={start:c,end:i}:s<c?i<=c?(n={start:c,end:i},i>s&&(l={start:i-1,end:s})):n={start:s,end:i}:i>=c?(n={start:c,end:i},i<s&&(l={start:i+1,end:s})):n={start:s,end:i},m(n,e=>a.add(t[e].id)),l&&m(l,e=>a.delete(t[e].id)),u(u({},e),{},{selectedItems:a,selectedRange:{start:t[n.start].id,end:t[n.end].id}})}{let t=null;return a.delete(o)||(a.add(o),t={start:o,end:null}),u(u({},e),{},{selectedItems:a,selectedRange:t})}}case"select-none":return u(u({},e),{},{selectedItems:new Set});case"select-all":return u(u({},e),{},{selectedItems:new Set(n.ids||t.map(e=>e.id)),selectedRange:n.ids&&1===n.ids.length?{start:n.ids[0],end:null}:null});default:throw new Error("Unexpected action: "+n.type)}},null,()=>({selectedItems:new Set(n||[]),selectedRange:n&&1===n.length?{start:n[0],end:null}:null})),2),s=a[0],d=a[1],p=Object(r.useRef)(t);Object(r.useEffect)(()=>{if(s.selectedItems.size>0){let e=new Set(t.map(e=>e.id));if(!(p.current.length===t.length&&p.current.every(t=>e.has(t.id)))){let t=[...s.selectedItems],n=t.filter(t=>e.has(t));t.length!==n.length&&d({type:"select-all",ids:n})}}p.current=t},[t,s.selectedItems]),Object(r.useEffect)(()=>{let t=i.getUndoState("selectedItems");return i.setUndoState("selectedItems",{name:e,items:s.selectedItems}),()=>i.setUndoState("selectedItems",t)},[s.selectedItems]);let y=Object(o.d)(e=>e.app.lastUndoState);return Object(r.useEffect)(()=>{function t({messages:t,undoTag:n}){let r=i.getTaggedState(n),a=new Set(t.filter(e=>"tombstone"===e.column&&1===e.value).map(e=>e.row));r&&r.selectedItems&&r.selectedItems.name===e&&d({type:"select-all",ids:[...r.selectedItems.items].filter(e=>!a.has(e))})}return y&&y.current&&t(y.current),Object(l.listen)("undo-event",t)},[]),{items:s.selectedItems,setItems:s.setSelectedItems,dispatch:d}}let g=a.a.createContext(null),h=a.a.createContext(null);function b(){return Object(r.useContext)(g)}function O(){return Object(r.useContext)(h)}function w({instance:e,fetchAllIds:t,children:n}){let o=Object(r.useRef)(null);Object(r.useEffect)(()=>{o.current=e.items},[e.items]);let l=Object(r.useCallback)(async n=>"select-all"===n.type?o.current&&o.current.size>0?e.dispatch({type:"select-none"}):t?e.dispatch({type:"select-all",ids:await t()}):e.dispatch({type:"select-all"}):e.dispatch(n),[e.dispatch,t]);return a.a.createElement(h.Provider,{value:e.items},a.a.createElement(g.Provider,{value:l},n))}function E({name:e,items:t,initialSelectedIds:n,fetchAllIds:o,registerDispatch:l,children:i}){let c=y(e,t,n);return Object(r.useEffect)(()=>{l&&l(c.dispatch)},[l]),a.a.createElement(w,{instance:c,fetchAllIds:o,children:i})}},45:function(e,t,n){"use strict";var r=n(0),a=n.n(r),o=n(12);const l=["style","nativeStyle","innerRef"];function i(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}t.a=function(e){e.style;const t=e.nativeStyle,n=e.innerRef,r=i(e,l);return a.a.createElement("div",Object.assign({},r,{ref:n,style:t,className:`view ${e.className||""} ${Object(o.css)(e.style)}`}))}},46:function(e,t,n){"use strict";n.d(t,"a",function(){return a});var r=n(9);function a(e,t="string"){switch(t){case"string":const n=JSON.stringify(e);return'"'===n.charAt(0)&&'"'===n.charAt(n.length-1)?n.slice(1,-1):n;case"number":return""+e;case"financial-with-sign":let o=a(e,"financial");return e>=0?"+"+o:o;case"financial":if(null==e||""===e)return Object(r.k)(0);if("string"===typeof e){const t=parseFloat(e);e=isNaN(t)?0:t}if("number"!==typeof e)throw new Error("Value is not a number ("+typeof e+"): "+e);return Object(r.k)(e);default:throw new Error("Unknown format type: "+t)}}},514:function(e,t,n){"use strict";n.d(t,"a",function(){return E});var r=n(0),a=n.n(r),o=n(10),l=n(29),i=n(1),c=n(59),s=n(2),u=n(185);function d(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return f(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return f(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function f(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function p(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function m(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}let y={border:0,fontSize:15,padding:"10px 13px"};var g=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?p(Object(n),!0).forEach(function(t){m(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):p(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}({position:"absolute",bottom:0,left:0,right:0,backgroundColor:s.a.n1,color:"white",padding:10,margin:10,borderRadius:6,zIndex:1e4,fontSize:15},s.c.shadowLarge),h={lineHeight:"1.5em"},b={gap:16,marginTop:20,justifyContent:"center"},O={alignItems:"center",flexDirection:"row",justifyContent:"flex-end"},w={userSelect:"none"};function E(){const e=Object(o.d)(e=>e.prefs.local&&e.prefs.local.hideMobileMessage||!0);let t=d(Object(r.useState)(Object(u.a)()&&!e&&!document.cookie.match(/hideMobileMessage=true/)),2),n=t[0],s=t[1],f=d(Object(r.useState)(!1),2),p=f[0],m=f[1],E=Object(o.c)();return n?a.a.createElement(i.B,{style:g},a.a.createElement(i.y,{style:h},a.a.createElement("strong",null,"Actual features are limited on small screens."),a.a.createElement("br",null),a.a.createElement("span",null,"While we work to improve this experience, you may find the full Actual feature set on devices with larger screens.")),a.a.createElement(i.B,{style:b},a.a.createElement(i.d,{style:y,onClick:function(){if(s(!1),p)E(Object(l.savePrefs)({hideMobileMessage:!0}));else{let e=new Date;e.setTime(e.getTime()+3e5),document.cookie="hideMobileMessage=true;path=/;expires="+e.toGMTString()}}},"Try it anyway"),a.a.createElement(i.B,{style:O},a.a.createElement(c.a,{id:"dont_remind_me",checked:p,onChange:()=>{m(!p)}}),a.a.createElement("label",{htmlFor:"dont_remind_me",style:w},"Don't remind me again")))):null}},515:function(e,t,n){"use strict";(function(e){n.d(t,"a",function(){return l});var r=n(516),a=n(3),o=n(22);function l(t,n){e.Actual.onEventFromMain("update-downloaded",(e,n)=>{t.setAppState({updateInfo:n})}),e.Actual.onEventFromMain("update-error",e=>{}),Object(a.listen)("server-error",e=>{t.addGenericErrorNotification()}),Object(a.listen)("update-loading-status",e=>{switch(e){case"updating":t.updateStatusText("Updating...")}}),Object(a.listen)("orphaned-payees",({orphanedIds:e,updatedPayeeIds:n})=>{t.pushModal("merge-unused-payees",{payeeIds:e,targetPayeeId:n[0]})}),Object(a.listen)("schedules-offline",({payees:e})=>{let t=window.__history;t&&t.push("/schedule/posts-offline-notification",{locationPtr:t.location,payees:e})}),Object(a.listen)("sync-event",async({type:e,tables:r})=>{let a=n.getState().prefs.local;a&&a.id&&"applied"===e&&(r.includes("payees")||r.includes("payee_mapping"))&&t.getPayees()}),Object(a.listen)("sync-event",async({type:e})=>{"unauthorized"===e&&t.addNotification({type:"warning",message:"Unable to authenticate with server",sticky:!0,id:"auth-issue"})}),r.a(t,n),Object(a.listen)("undo-event",e=>{let r=e.tables,a=e.undoTag,l=[];(r.includes("categories")||r.includes("category_groups")||r.includes("category_mapping"))&&l.push(t.getCategories()),r.includes("accounts")&&l.push(t.getAccounts());let i=o.getTaggedState(a);i&&Promise.all(l).then(()=>{if(t.setLastUndoState(e),i.openModal){let e=n.getState().modals.modalStack;0!==e.length&&e[e.length-1].name===i.openModal||t.replaceModal(i.openModal)}else if(t.closeModal(),window.location.href!==i.url)return window.location.href=i.url,!0})}),Object(a.listen)("fallback-write-error",()=>{t.addNotification({type:"error",title:"Unable to save changes",sticky:!0,message:"This browser only supports using the app in one tab at a time, and another tab has opened the app. No changes will be saved from this tab; please close it and continue working in the other one."})}),Object(a.listen)("start-load",()=>{t.closeBudgetUI(),t.setAppState({loadingText:""})}),Object(a.listen)("finish-load",()=>{t.closeModal(),t.setAppState({loadingText:null}),t.loadPrefs()}),Object(a.listen)("start-import",()=>{t.closeBudgetUI(),t.setAppState({loadingText:"Importing..."})}),Object(a.listen)("finish-import",()=>{t.closeModal(),t.setAppState({loadingText:null}),t.loadPrefs()}),Object(a.listen)("show-budgets",()=>{t.closeBudgetUI(),t.setAppState({loadingText:null})})}}).call(this,n(17))},516:function(e,t,n){"use strict";n.d(t,"a",function(){return l});var r=n(3);function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){let n=!1;Object(r.listen)("sync-event",l=>{let i=l.type,c=l.subtype,s=l.meta,u=l.tables,d=t.getState().prefs.local;if(d&&d.id)if("success"===i)n&&(n=!1,e.addNotification({title:"Syncing has been fixed!",message:"Happy budgeting!",type:"message"})),u.includes("prefs")&&e.loadPrefs(),(u.includes("categories")||u.includes("category_groups")||u.includes("category_mapping"))&&e.getCategories(),(u.includes("payees")||u.includes("payee_mapping"))&&e.getPayees(),u.includes("accounts")&&e.getAccounts();else if("error"===i){let l=null,i="[Learn more](https://actualbudget.github.io/docs/Getting-Started/sync#debugging-sync-issues)";switch(c){case"out-of-sync":l=n?{title:"Your data is still out of sync",message:"We were unable to repair your sync state, sorry! You need to reset your sync state. "+i,sticky:!0,id:"reset-sync",button:{title:"Reset sync",action:e.resetSync}}:{title:"Your data is out of sync",message:"There was a problem syncing your data. We can try to repair your sync state to fix it. "+i,type:"warning",sticky:!0,id:"repair-sync",button:{title:"Repair",action:async()=>{n=!0,await Object(r.send)("sync-repair"),e.sync()}}};break;case"file-old-version":l={title:"Actual has updated the syncing format",message:"This happens rarely (if ever again). The internal syncing format has changed and you need to reset sync. This will upload data from this device and revert all other devices. [Learn more about what this means](https://actualbudget.github.io/docs/Getting-Started/sync#what-does-resetting-sync-mean).\n\nOld encryption keys are not migrated. If using encryption, [reset encryption here](#makeKey).",messageActions:{makeKey:()=>e.pushModal("create-encryption-key")},sticky:!0,id:"old-file",button:{title:"Reset sync",action:e.resetSync}};break;case"file-key-mismatch":l={title:"Your encryption key need to be reset",message:"Something went wrong when registering your encryption key id. You need to recreate your key. "+i,sticky:!0,id:"invalid-key-state",button:{title:"Reset key",action:()=>e.pushModal("create-encryption-key")}};break;case"file-not-found":l={title:"This file is not a cloud file",message:"You need to register it to take advantage of syncing which allows you to use it across devices and never worry about losing your data. "+i,type:"warning",sticky:!0,id:"register-file",button:{title:"Register",action:async()=>{await e.uploadBudget(),e.sync(),e.loadPrefs()}}};break;case"file-needs-upload":l={title:"File needs upload",message:"Something went wrong when creating this cloud file. You need to upload this file to fix it. "+i,sticky:!0,id:"upload-file",button:{title:"Upload",action:e.resetSync}};break;case"file-has-reset":case"file-has-new-key":let a=t.getState().prefs.local.cloudFileId;l={title:"Syncing has been reset on this cloud file",message:"You need to revert it to continue syncing. Any unsynced data will be lost. If you like, you can instead [upload this file](#upload) to be the latest version. "+i,messageActions:{upload:e.resetSync},sticky:!0,id:"needs-revert",button:{title:"Revert",action:()=>e.closeAndDownloadBudget(a)}};break;case"encrypt-failure":case"decrypt-failure":l=s.isMissingKey?{title:"Missing encryption key",message:"Unable to encrypt your data because you are missing the key. Create your key to sync your data.",sticky:!0,id:"encrypt-failure-missing",button:{title:"Create key",action:()=>e.pushModal("fix-encryption-key",{onSuccess:()=>e.sync()})}}:{message:"Unable to encrypt your data. You have the correct key so this is likely an internal failure. To fix this, reset your sync data with a new key.",sticky:!0,id:"encrypt-failure",button:{title:"Reset key",action:()=>e.pushModal("create-encryption-key",{onSuccess:()=>e.sync()})}};break;case"invalid-schema":l={title:"Update required",message:"We couldn't apply changes from the server. This probably means you need to update the app to support the latest database.",type:"warning"};break;case"apply-failure":l={message:"We couldn't apply that change to the database. This is a bug, and it has been reported."};break;case"beta-version":case"network":break;default:l={message:"We had problems syncing your changes. This is a bug, and it has been reported."}}l&&e.addNotification(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach(function(t){o(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}({type:"error"},l))}})}},518:function(e,t,n){"use strict";var r={};n.r(r),n.d(r,"BudgetSummary",function(){return og}),n.d(r,"BudgetTotalsMonth",function(){return mg}),n.d(r,"IncomeHeaderMonth",function(){return bg}),n.d(r,"GroupMonth",function(){return jg}),n.d(r,"CategoryMonth",function(){return Tg}),n.d(r,"ExpenseGroupMonth",function(){return Mg}),n.d(r,"ExpenseCategoryMonth",function(){return Rg}),n.d(r,"IncomeGroupMonth",function(){return _g}),n.d(r,"IncomeCategoryMonth",function(){return Lg});var a={};n.r(a),n.d(a,"BudgetSummary",function(){return Ih}),n.d(a,"BudgetTotalsMonth",function(){return Qh}),n.d(a,"IncomeHeaderMonth",function(){return Xh}),n.d(a,"ExpenseGroupMonth",function(){return ab}),n.d(a,"ExpenseCategoryMonth",function(){return fb}),n.d(a,"IncomeGroupMonth",function(){return yb}),n.d(a,"IncomeCategoryMonth",function(){return wb});var o=n(0),l=n.n(o),i=n(591),c=n(520),s=n(10),u=n(32),d=n(48),f=n(208),p=n(66),m=n(118),y=n(29),g=n(14),h=n(82);function b(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return O(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return O(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function O(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}let w=l.a.createContext(null);function E({children:e}){let t=function(){let e=b(Object(o.useState)(null),2),t=e[0],n=e[1];return Object(o.useEffect)(()=>{let e=Object(g.d)(Object(g.c)("accounts").select("*"),async t=>{e&&n(t)});return()=>{e.unsubscribe(),e=null}},[]),t}();return l.a.createElement(w.Provider,{value:t,children:e})}function v({children:e,idKey:t}){return e(j({idKey:t}))}function j({idKey:e}={}){let t=Object(o.useContext)(w);return e&&t?Object(h.b)(t):t}function S(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return x(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return x(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function x(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}let C=l.a.createContext(null);function k({children:e}){let t=function(){let e=S(Object(o.useState)(null),2),t=e[0],n=e[1];return Object(o.useEffect)(()=>{let e=Object(g.d)(Object(g.c)("payees").select("*"),async t=>{e&&n(t)});return()=>{e.unsubscribe(),e=null}},[]),t}();return l.a.createElement(C.Provider,{value:t,children:e})}function P({children:e,idKey:t}){return e(A({idKey:t}))}function A({idKey:e}={}){let t=Object(o.useContext)(C);return e&&t?Object(h.e)(t):t}var D=n(302),B=n.n(D),I=n(89),T=n(3);function M({children:e}){let t=Object(o.useMemo)(()=>(function(){const e={},t=new B.a({max:1200}),n={};let r=!1;return new class{observeCell(t,r){return e[t]||(e[t]=[]),e[t].push(r),()=>{e[t]=e[t].filter(e=>e!==r),0===e[t].length&&(n[t]=null)}}disableObservers(){r=!0}enableObservers(){r=!1}prewarmCache(e,n){t.set(e,n)}listen(){return Object(T.listen)("cells-changed",function(a){r||a.forEach(r=>{const a=e[r.name];a&&(a.forEach(e=>e(r)),n[r.name]=Promise.resolve(r),t.set(r.name,r))})})}bind(e="__global",r,a,o){let l=`${e}!${(r="string"===typeof r?{name:r,value:null}:r).name}`,i=this.observeCell(l,o);if(t.has(l)&&o(t.get(l)),null!=n[l])n[l].then(o);else{const i=this.get(e,r.name,a);n[l]=i,i.then(e=>{n[l]===i&&(t.set(l,e),o(e))})}return i}get(e,t){return Object(T.send)("getCell",{sheetName:e,name:t})}getCellNames(e){return Object(T.send)("getCellNamesInSheet",{sheetName:e})}createQuery(e,t,n){return Object(T.send)("create-query",{sheetName:e,name:t,query:n.serialize()})}}})(),[]);return Object(o.useEffect)(()=>t.listen(),[t]),l.a.createElement(I.a.Provider,{value:t},e)}var R=n(303),_=n(22);function L(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return N(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return N(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function N(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}let F=l.a.createContext();function U({children:e}){let t=L(Object(o.useState)(1),2),n=t[0],r=t[1];return l.a.createElement(F.Provider,{value:{displayMax:n,setDisplayMax:r}},e)}function z(){return Object(o.useContext)(F)}var W=n(1),$=n(2);function G(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function H(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?G(Object(n),!0).forEach(function(t){q(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):G(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function q(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Y=e=>l.a.createElement("svg",Object.assign({},e,{viewBox:"0 0 20 20",style:H({color:"#242134"},e.style)}),l.a.createElement("path",{d:"M3.94 6.5L2.22 3.64l1.42-1.42L6.5 3.94c.52-.3 1.1-.54 1.7-.7L9 0h2l.8 3.24c.6.16 1.18.4 1.7.7l2.86-1.72 1.42 1.42-1.72 2.86c.3.52.54 1.1.7 1.7L20 9v2l-3.24.8c-.16.6-.4 1.18-.7 1.7l1.72 2.86-1.42 1.42-2.86-1.72c-.52.3-1.1.54-1.7.7L11 20H9l-.8-3.24c-.6-.16-1.18-.4-1.7-.7l-2.86 1.72-1.42-1.42 1.72-2.86c-.3-.52-.54-1.1-.7-1.7L0 11V9l3.24-.8c.16-.6.4-1.18.7-1.7zM10 13a3 3 0 1 0 0-6 3 3 0 0 0 0 6z",fill:"currentColor"}));function V(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function K(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?V(Object(n),!0).forEach(function(t){Q(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):V(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Q(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Z=e=>l.a.createElement("svg",Object.assign({},e,{viewBox:"0 0 20 20",style:K({color:"#242134"},e.style)}),l.a.createElement("g",{clipPath:"url(#piggy-bank_svg__clip0)"},l.a.createElement("path",{d:"M1.857 7.612H.98a.98.98 0 0 0-.98.98v2.224c0 .449.184.857.51 1.163.612.551 1.816 1.49 3.735 2.368a.571.571 0 0 1 .306.346l.939 3.286a.484.484 0 0 0 .469.347h1.47a.479.479 0 0 0 .469-.367l.47-1.817a.262.262 0 0 1 .326-.183c.571.122 1.183.163 1.795.163.613 0 1.225-.061 1.796-.163.143-.02.286.06.327.183l.47 1.817a.502.502 0 0 0 .468.367h1.47a.484.484 0 0 0 .47-.347l1.224-4.245a.487.487 0 0 1 .122-.224c.919-.98 1.53-2.163 1.735-3.47h.49c.53 0 .959-.448.938-.979-.02-.51-.47-.918-.98-.918h-.448C18.06 4.673 14.632 2 10.489 2c-1.775 0-3.428.49-4.755 1.326-.591-.408-1.469-.734-2.693-.632-.49.04-.715.612-.388.959.408.429.796 1 .877 1.735L1.857 7.612zm3.122.98a.862.862 0 0 1-.857-.858c0-.469.388-.857.857-.857.47 0 .858.388.858.857 0 .47-.388.858-.858.858z",fill:"currentColor"})),l.a.createElement("defs",null,l.a.createElement("clipPath",{id:"piggy-bank_svg__clip0"},l.a.createElement("path",{fill:"currentColor",d:"M0 0h20v20H0z"}))));function J(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function X(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?J(Object(n),!0).forEach(function(t){ee(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):J(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function ee(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var te=e=>l.a.createElement("svg",Object.assign({},e,{viewBox:"0 0 20 20",style:X({color:"#242134"},e.style)}),l.a.createElement("path",{d:"M0 4c0-1.1.9-2 2-2h15a1 1 0 0 1 1 1v1H2v1h17a1 1 0 0 1 1 1v10a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V4zm16.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3z",fill:"currentColor"})),ne=n(185);function re(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function ae(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?re(Object(n),!0).forEach(function(t){oe(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):re(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function oe(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}let le=Date.now();function ie(e,t){return e.state&&e.state._version===le?t?e.state[t]:e.state:null}var ce=n(113),se=n.n(ce),ue=n(47),de=n(4),fe=n(104);function pe(e,t,n){let r=de.c();return t?"completed":n?"paid":e===r?"due":e>r&&e<=de.a(r,7)?"upcoming":e<r?"missed":"scheduled"}function me(e){return de.g(new Date(2020,0,e,12),"do")}function ye(e){return{SU:"Sunday",MO:"Monday",TU:"Tuesday",WE:"Wednesday",TH:"Thursday",FR:"Friday",SA:"Saturday"}[e]}function ge(e){let t=e.interval||1;switch(e.frequency){case"weekly":{let n="Every ";return n+=1!==t?`${t} weeks`:"week",n+=" on "+de.g(e.start,"EEEE")}case"monthly":{let n="Every ";if(n+=1!==t?`${t} months`:"month",e.patterns&&e.patterns.length>0){let t=[...e.patterns].sort((e,t)=>{let n=("day"===e.type?1:0)-("day"===t.type?1:0),r=e.value-t.value;return 0===n?r:n}).filter(e=>-1!==e.value);t=t.concat(e.patterns.filter(e=>-1===e.value)),n+=" on the ";let r=[],a=new Set(t.map(e=>e.type)),o=1===a.length&&!a.has("day");for(let e of t)if("day"===e.type)-1===e.value?r.push("last day"):r.push(me(e.value));else{let t=o?"":" "+ye(e.type);-1===e.value?r.push("last"+t):r.push(me(e.value)+t)}r.length>2?(n+=r.slice(0,r.length-1).join(", "),n+=", and ",n+=r[r.length-1]):n+=r.join(" and "),o&&(n+=" "+ye(t[0].type))}else n+=" on the "+de.g(e.start,"do");return n}case"yearly":{let n="Every ";return n+=1!==t?`${t} years`:"year",n+=" on "+de.g(e.start,"LLL do")}default:return"Recurring error"}}function he(e){return{payee:e.find(e=>"is"===e.op&&"payee"===e.field)||e.find(e=>"is"===e.op&&"description"===e.field)||null,account:e.find(e=>"is"===e.op&&"account"===e.field)||e.find(e=>"is"===e.op&&"acct"===e.field)||null,amount:e.find(e=>("is"===e.op||"isapprox"===e.op||"isbetween"===e.op)&&"amount"===e.field)||null,date:e.find(e=>("is"===e.op||"isapprox"===e.op)&&"date"===e.field)||null}}function be(e){return e&&"number"!==typeof e?Math.round((e.num1+e.num2)/2):e}function Oe(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return we(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return we(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function we(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Ee(e,t){return Object(g.d)(function(e){let t=e.map(e=>{let t=e._conditions.find(e=>"date"===e.field);return{$and:{schedule:e.id,date:{$gte:t&&"is"===t.op?e.next_date:de.x(e.next_date,2)}}}});return Object(fe.a)("transactions").filter({$or:t}).orderBy({date:"desc"}).groupBy("schedule").select(["schedule","date"])}(e),t,{mapper:t=>{let n=new Set(t.filter(Boolean).map(e=>e.schedule));return new Map(e.map(e=>[e.id,pe(e.next_date,e.completed,n.has(e.id))]))}})}function ve({transform:e}={}){let t=Oe(Object(o.useState)(null),2),n=t[0],r=t[1];return Object(o.useEffect)(()=>{let t,n,a=Object(g.c)("schedules").select("*");return t=Object(g.d)(e?e(a):a,async e=>{t&&(n&&n.unsubscribe(),n=Ee(e,t=>r({schedules:e,statuses:t})))}),()=>{t&&t.unsubscribe(),n&&n.unsubscribe()}},[e]),n}let je=l.a.createContext(null);function Se({transform:e,children:t}){let n=ve({transform:e});return l.a.createElement(je.Provider,{value:n,children:t})}function xe(){return Object(o.useContext)(je)}var Ce=n(595),ke=n(382),Pe=n(9);function Ae(e,t="account"){return e?"budgeted"===e?{[`${t}.offbudget`]:!1,[`${t}.closed`]:!1}:"offbudget"===e?{[`${t}.offbudget`]:!0,[`${t}.closed`]:!1}:"uncategorized"===e?{[`${t}.offbudget`]:!1,category:null,is_parent:!1,$or:[{"payee.transfer_acct.offbudget":!0,"payee.transfer_acct":null}]}:{[t]:e}:null}function De(e){let t=Object(fe.a)("transactions").options({splits:"grouped"}),n=Ae(e);return n&&(t=t.filter(n)),t}function Be(e,t,n){let r,a=Object(Pe.d)(t);return r=Object(de.i)(n).test(t)?Object(Ce.a)(t,Object(de.h)(n),new Date):Object(de.n)(n).test(t)?Object(Ce.a)(t,Object(de.m)(n),new Date):Object(Ce.a)(t,n,new Date),e.filter({$or:{"payee.name":{$like:`%${t}%`},notes:{$like:`%${t}%`},"category.name":{$like:`%${t}%`},"account.name":{$like:`%${t}%`},$or:[Object(ke.a)(r)&&{date:Object(de.e)(r)},null!=a&&{amount:{$transform:"$abs",$eq:Object(Pe.b)(a)}},null!=a&&Number.isInteger(a)&&{amount:{$transform:{$abs:{$idiv:["$",100]}},$eq:a}}].filter(Boolean)}})}function Ie(e){return{name:`balance-${e.id}`,query:Object(fe.a)("transactions").filter({account:e.id}).options({splits:"none"}).calculate({$sum:"$amount"})}}function Te(){return{query:Object(fe.a)("transactions").filter({"account.closed":!1}).calculate({$sum:"$amount"}),name:"accounts-balance"}}function Me(){return{name:"budgeted-accounts-balance",query:Object(fe.a)("transactions").filter({"account.offbudget":!1,"account.closed":!1}).calculate({$sum:"$amount"})}}function Re(){return{name:"offbudget-accounts-balance",query:Object(fe.a)("transactions").filter({"account.offbudget":!0,"account.closed":!1}).calculate({$sum:"$amount"})}}let _e=Object(fe.a)("transactions").filter({"account.offbudget":!1,category:null,$or:[{"payee.transfer_acct.offbudget":!0,"payee.transfer_acct":null}]});const Le={incomeAvailable:"available-funds",lastMonthOverspent:"last-month-overspent",forNextMonth:"buffered",totalBudgeted:"total-budgeted",toBudget:"to-budget",fromLastMonth:"from-last-month",totalIncome:"total-income",totalSpent:"total-spent",totalBalance:"total-leftover",groupSumAmount:e=>`group-sum-amount-${e}`,groupIncomeReceived:"total-income",groupBudgeted:e=>`group-budget-${e}`,groupBalance:e=>`group-leftover-${e}`,catBudgeted:e=>`budget-${e}`,catSumAmount:e=>`sum-amount-${e}`,catBalance:e=>`leftover-${e}`,catCarryover:e=>`carryover-${e}`},Ne={totalBudgetedExpense:"total-budgeted",totalBudgetedIncome:"total-budget-income",totalBudgetedSaved:"total-saved",totalIncome:"total-income",totalSpent:"total-spent",totalSaved:"real-saved",totalLeftover:"total-leftover",groupSumAmount:e=>`group-sum-amount-${e}`,groupIncomeReceived:"total-income",groupBudgeted:e=>`group-budget-${e}`,groupBalance:e=>`group-leftover-${e}`,catBudgeted:e=>`budget-${e}`,catSumAmount:e=>`sum-amount-${e}`,catBalance:e=>`leftover-${e}`,catCarryover:e=>`carryover-${e}`},Fe=["subtransactions"];function Ue(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function ze(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function We(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ze(Object(n),!0).forEach(function(t){$e(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ze(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function $e(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const Ge=n(152);function He(e){return"number"===typeof e?e:0}function qe(e,t){return{type:"SplitTransactionError",version:1,difference:He(t.amount)-e}}function Ye(e,t){let n="temp"===e.id?"temp":"";return We(We({amount:0},t),{},{payee:t.payee||e.payee,id:t.id?t.id:n+Ge.v4Sync(),account:e.account,date:e.date,cleared:null!=e.cleared?e.cleared:null,starting_balance_flag:null!=e.starting_balance_flag?e.starting_balance_flag:null,is_child:!0,parent_id:e.id,error:null})}function Ve(e){const t=e.subtransactions.reduce((e,t)=>e+He(t.amount),0);return We(We({},e),{},{error:t===He(e.amount)?null:qe(t,e)})}function Ke(e,t){let n=[e[t]],r=t+1;for(;r<e.length&&e[r].is_child;)n.push(e[r]),r++;return n}function Qe(e){return e.reduce((e,t)=>{let n=t.subtransactions,r=Ue(t,Fe);n=n||[],e.push(r);for(let a=0;a<n.length;a++)e.push(n[a]);return e},[])}function Ze(e){return We(We({},e[0]),{},{subtransactions:e.slice(1)})}function Je(e){return null==e?null:Qe([e])}function Xe(e,t,n){let r=e.findIndex(e=>e.id===t),a=e[r],o=[...e];if(-1===r)throw new Error("Tried to edit unknown transaction id: "+t);if(a.is_parent||a.is_child){let t=function(e,t){for(;t>=0;){if(e[t].is_parent)return t;t--}return null}(e,r);if(null==t)return console.log("Cannot find parent index"),{diff:{deleted:[],updated:[]}};let a,l=Ke(e,t),i=n(Ze(l)),c=Je(i);return null==c?(a={deleted:[{id:l[0].id}],updated:[]},i={id:l[0].id,_deleted:!0},o.splice(t,l.length)):(a=Object(Pe.f)(l,c),o.splice(t,l.length,...c)),{data:o,newTransaction:i,diff:a}}{let e=n(a),t=Je(e)||[];return e&&(e.subtransactions=e.subtransactions||[]),o.splice(r,1,...t),{data:o,newTransaction:e||{id:a.id,_deleted:!0},diff:Object(Pe.f)([a],t)}}}function et(e,t){return Xe(e,t,e=>{if(!e.is_parent)return e;let t=Object(Pe.l)(e.subtransactions);return e.subtransactions.push(Ye(e,{amount:0,sort_order:He(t&&t.sort_order)-1})),e})}function tt(e,t){return Xe(e,t.id,e=>{if(e.is_parent){let n=e.id===t.id?t:e,r=e.subtransactions.map(r=>{let a=r;return e.id===t.id?a=We(We({},r),{},{payee:r.payee===e.payee?t.payee:r.payee}):r.id===t.id&&(a=t),Ye(n,a)});return Ve(We(We({},n),{},{subtransactions:r}))}return t})}function nt(e,t){return Xe(e,t,e=>{if(e.is_parent){if(e.id===t)return null;if(1===e.subtransactions.length)return We(We({},e),{},{subtransactions:null,is_parent:!1,error:null});{let n=e.subtransactions.filter(e=>e.id!==t);return Ve(We(We({},e),{},{subtransactions:n}))}}return null})}function rt(e,t){return Xe(e,t,e=>e.is_parent||e.is_child?e:We(We({},e),{},{is_parent:!0,error:0===He(e.amount)?null:qe(0,e),subtransactions:[Ye(e,{amount:0,sort_order:-1})]}))}function at(e){let t=e.find(e=>!e.is_child);t=We(We({},t),{},{id:Ge.v4Sync()});let n=e.filter(e=>e.is_child);return[t,...n.map(e=>We(We({},e),{},{id:Ge.v4Sync(),parent_id:t.id}))]}var ot=n(211),lt=n(12);function it(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return ct(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ct(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ct(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function st(e,t,n){let r=new n(e,null,t),a=l.a.createContext(null);return{Provider:function({children:e}){let t=it(Object(o.useState)(r.getData()),2),n=t[0],i=t[1],c=Object(o.useMemo)(()=>({data:n,query:r}),[n,r]);return Object(o.useEffect)(()=>{if(0!==r.getNumListeners())throw new Error("Query already has listeners. You cannot use the same query context `Provider` twice");let e=r.addListener(e=>i(e));return r.isRunning()||r.run(),i(r.getData()),()=>{e(),r.unsubscribe()}},[]),l.a.createElement(a.Provider,{value:c,children:e})},useQuery:function(){let e=Object(o.useContext)(a);if(null==e)throw new Error("`useQuery` tried to access a query that hasn't been run. You need to put its `Provider` in a parent component");return e}}}function ut(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function dt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ut(Object(n),!0).forEach(function(t){ft(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ut(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function ft(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var pt=e=>l.a.createElement("svg",Object.assign({},e,{viewBox:"0 0 19 24",style:dt({color:"#242134"},e.style)}),l.a.createElement("path",{d:"M17 24H2a2 2 0 0 1-2-2V2a2 2 0 0 1 2-2h9a1 1 0 0 1 .707.293l7 7A1 1 0 0 1 19 8v14a2 2 0 0 1-2 2zM2 21.5a.5.5 0 0 0 .5.5h14a.5.5 0 0 0 .5-.5V9a.5.5 0 0 0-.5-.5h-4a2 2 0 0 1-2-2v-4A.5.5 0 0 0 10 2H2.5a.5.5 0 0 0-.5.5v19z",fill:"currentColor"}));function mt(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return yt(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return yt(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function yt(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var gt={border:"1px solid "+$.a.border,minWidth:300,minHeight:120,outline:"none"};function ht({defaultNotes:e,position:t="bottom-left",onClose:n}){let r=mt(Object(o.useState)(e),2),a=r[0],i=r[1],c=l.a.createRef();return Object(o.useEffect)(()=>{c.current.focus()},[]),l.a.createElement(W.A,{position:t,onClose:()=>n(a)},l.a.createElement("textarea",Object.assign({ref:c},Object(lt.css)(gt),{value:a||"",onChange:e=>i(e.target.value)})))}var bt={flexShrink:0},Ot={"& button, & .hover-visible":{display:"flex",opacity:1,color:$.a.n1}},wt={"& button, & .hover-visible":{display:"flex",opacity:1}};function Et({id:e,width:t=12,height:n=12,defaultColor:r=$.a.n8,tooltipPosition:a,style:i}){let c=Object(W.D)(),s=function(e,t){let n=it(Object(o.useState)(null),2),r=n[0],a=n[1];return Object(o.useEffect)(()=>{let n=Object(g.d)(e,async e=>{n&&a(e)},t);return()=>{n.unsubscribe(),n=null}},[e]),{data:r}}(Object(o.useMemo)(()=>Object(g.c)("notes").filter({id:e}).select("*"),[e])).data,u=s&&s.length>0?s[0].note:null,d=u&&""!==u;return l.a.createElement(W.B,{style:[bt,c.isOpen&&Ot,d&&wt]},l.a.createElement(W.d,Object.assign({bare:!0,className:"hover-visible",style:[{color:r},i]},c.getOpenEvents()),l.a.createElement(pt,{style:{width:t,height:n,color:"currentColor"}})),c.isOpen&&l.a.createElement(ht,{defaultNotes:u,position:a,onClose:function(t){Object(T.send)("notes-save",{id:e,note:t}),c.close()}}))}var vt=n(90),jt=n(46),St=n(98);var xt=function({binding:e,type:t,formatter:n,style:r,getStyle:a,debug:o}){return l.a.createElement(St.a,{binding:e,debug:o},({name:e,value:o})=>l.a.createElement(vt.a,{style:["financial"===t&&$.c.tnum,r,a&&a(o)],numberOfLines:1,"data-testid":e,"data-cellname":e},n?n(o):Object(jt.a)(o,t)))},Ct=n(60),kt=n(7),Pt=n(42);function At(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Dt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?At(Object(n),!0).forEach(function(t){Bt(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):At(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Bt(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var It=e=>l.a.createElement("svg",Object.assign({},e,{viewBox:"0 0 24 24",style:Dt({color:"#242134"},e.style)}),l.a.createElement("path",{fill:"currentColor",className:"path",d:"M23 11.5a1.5 1.5 0 0 1-1.5 1.5h-20a1.5 1.5 0 0 1 0-3h20a1.5 1.5 0 0 1 1.5 1.5z"}),l.a.createElement("path",{fill:"currentColor",className:"path",d:"M11.5 23a1.5 1.5 0 0 1-1.5-1.5v-20a1.5 1.5 0 0 1 3 0v20a1.5 1.5 0 0 1-1.5 1.5z"})),Tt=n(67),Mt=n(102);function Rt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function _t(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Rt(Object(n),!0).forEach(function(t){Lt(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Rt(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Lt(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Nt=e=>l.a.createElement("svg",Object.assign({},e,{viewBox:"0 0 24 24",style:_t({color:"#242134"},e.style)}),l.a.createElement("path",{d:"M13.584 12a2.643 2.643 0 0 1-.775 1.875l-9.541 9.541a1.768 1.768 0 0 1-2.5-2.5l8.739-8.739a.25.25 0 0 0 0-.354L.768 3.084a1.768 1.768 0 0 1 2.5-2.5l9.541 9.541A2.643 2.643 0 0 1 13.584 12z",fill:"currentColor"}),l.a.createElement("path",{d:"M23.75 12a2.643 2.643 0 0 1-.775 1.875l-9.541 9.541a1.768 1.768 0 0 1-2.5-2.5l8.739-8.739a.25.25 0 0 0 0-.354l-8.739-8.739a1.768 1.768 0 0 1 2.5-2.5l9.541 9.541A2.643 2.643 0 0 1 23.75 12z",fill:"currentColor"}));function Ft(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Ut(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ft(Object(n),!0).forEach(function(t){zt(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ft(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function zt(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Wt=e=>l.a.createElement("svg",Object.assign({},e,{viewBox:"0 0 24 24",fill:"none",style:Ut({color:"#242134"},e.style)}),l.a.createElement("path",{d:"M19.611 2.571h-3.754a1.286 1.286 0 1 1 0-2.571h6.857A1.286 1.286 0 0 1 24 1.286v6.857a1.286 1.286 0 0 1-2.571 0V4.39L15.48 10.34a1.286 1.286 0 0 1-1.817-1.817l5.948-5.95zM1.286 14.571a1.286 1.286 0 0 1 1.285 1.286v3.754l5.949-5.946a1.286 1.286 0 0 1 1.817 1.817L4.39 21.429h3.753a1.285 1.285 0 1 1 0 2.571H1.286A1.286 1.286 0 0 1 0 22.714v-6.857a1.286 1.286 0 0 1 1.286-1.286z",fill:"currentColor"}));function $t(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Gt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?$t(Object(n),!0).forEach(function(t){Ht(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):$t(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Ht(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var qt=e=>l.a.createElement("svg",Object.assign({},e,{viewBox:"0 0 24 24",fill:"none",style:Gt({color:"#242134"},e.style)}),l.a.createElement("path",{d:"M14.143 1.714A1.286 1.286 0 0 1 15.429 3v3.753L21.806.377a1.286 1.286 0 0 1 1.817 1.817l-6.376 6.377H21a1.286 1.286 0 1 1 0 2.572h-6.857a1.286 1.286 0 0 1-1.286-1.286V3a1.286 1.286 0 0 1 1.286-1.286zM9.857 22.286A1.285 1.285 0 0 1 8.571 21v-3.753l-6.377 6.376a1.286 1.286 0 0 1-1.817-1.817l6.376-6.377H3a1.286 1.286 0 0 1 0-2.572h6.857a1.286 1.286 0 0 1 1.286 1.286V21a1.286 1.286 0 0 1-1.286 1.286z",fill:"currentColor"}));function Yt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Vt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Yt(Object(n),!0).forEach(function(t){Kt(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Yt(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Kt(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Qt=e=>l.a.createElement("svg",Object.assign({},e,{viewBox:"0 0 24 24",style:Vt({color:"#242134"},e.style)}),l.a.createElement("path",{d:"M12 0a12 12 0 1 0 12 12A12.014 12.014 0 0 0 12 0zm6.927 8.2l-6.845 9.289a1.011 1.011 0 0 1-1.43.188l-4.888-3.908a1 1 0 1 1 1.25-1.562l4.076 3.261 6.227-8.451a1 1 0 1 1 1.61 1.183z",fill:"currentColor"}));function Zt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Jt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Zt(Object(n),!0).forEach(function(t){Xt(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Zt(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Xt(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var en=e=>l.a.createElement("svg",Object.assign({},e,{viewBox:"0 0 24 24",style:Jt({color:"#242134"},e.style)}),l.a.createElement("path",{d:"M8.616 1.741A1.455 1.455 0 0 1 10.07.287h3.392a1.455 1.455 0 0 1 1.453 1.454v8.228a.25.25 0 0 0 .25.25h2.9a1.138 1.138 0 0 1 .827 2l-6.1 6.1a1.489 1.489 0 0 1-2.056 0l-6.1-6.1a1.137 1.137 0 0 1 .827-2h2.9a.249.249 0 0 0 .25-.25z",fill:"currentColor"}),l.a.createElement("path",{d:"M0 19.677a4.039 4.039 0 0 0 4.035 4.035h15.93A4.039 4.039 0 0 0 24 19.677V17.8a1.225 1.225 0 0 0-2.449 0v1.874a1.588 1.588 0 0 1-1.586 1.586H4.035a1.588 1.588 0 0 1-1.586-1.586V17.8A1.225 1.225 0 0 0 0 17.8z",fill:"currentColor"}));function tn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function nn(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?tn(Object(n),!0).forEach(function(t){rn(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):tn(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function rn(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var an=e=>l.a.createElement("svg",Object.assign({},e,{viewBox:"0 0 24 24",style:nn({color:"#242134"},e.style)}),l.a.createElement("path",{d:"M15.067 3.986a.5.5 0 0 0-.354-.148.5.5 0 0 0-.354.147L3.437 14.91a.5.5 0 0 0 0 .707l4.948 4.948a.5.5 0 0 0 .707 0L20.009 9.648a.5.5 0 0 0 0-.706zM2.43 16.8a.5.5 0 0 0-.489-.127.5.5 0 0 0-.351.364L.084 23.314a.5.5 0 0 0 .133.47.507.507 0 0 0 .47.132l6.272-1.5a.5.5 0 0 0 .237-.84zM23.2 2.924L21.077.8a2.5 2.5 0 0 0-3.532 0l-1.418 1.417a.5.5 0 0 0 0 .707l4.95 4.949a.5.5 0 0 0 .707 0L23.2 6.454a2.5 2.5 0 0 0 0-3.53z",fill:"currentColor"}));function on(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function ln(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?on(Object(n),!0).forEach(function(t){cn(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):on(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function cn(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var sn=e=>l.a.createElement("svg",Object.assign({},e,{viewBox:"0 0 24 24",style:ln({color:"#242134"},e.style)}),l.a.createElement("path",{d:"M23.384 21.619l-6.529-6.529a9.284 9.284 0 1 0-1.768 1.768l6.529 6.529a1.266 1.266 0 0 0 1.768 0 1.251 1.251 0 0 0 0-1.768zM2.75 9.5a6.75 6.75 0 1 1 6.75 6.75A6.758 6.758 0 0 1 2.75 9.5z",fill:"currentColor"}));function un(e,t,{onSuccess:n,onClose:r}){e("plaid-external-msg",{onMoveExternal:async()=>{let e=await Object(T.send)("create-web-token"),n="http://link.actualbudget.com/?token="+e;t&&(n=n+"&plaidToken="+t),window.Actual.openURLInBrowser(n);let r=await Object(T.send)("poll-web-token",{token:e});return{error:r.error,data:r.data}},onClose:r,onSuccess:n})}async function dn(e,{upgradingId:t}={}){un(e,null,{onSuccess:async n=>{e("select-linked-accounts",{institution:n.metadata.institution,publicToken:n.publicToken,accounts:n.metadata.accounts,upgradingId:t})}})}let fn=l.a.createContext(null);function pn({location:e,children:t}){return l.a.createElement(fn.Provider,{value:e,children:t})}function mn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function yn(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?mn(Object(n),!0).forEach(function(t){gn(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):mn(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function gn(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var hn=e=>l.a.createElement("svg",Object.assign({},e,{viewBox:"0 0 20 20",style:yn({color:"#242134"},e.style)}),l.a.createElement("path",{d:"M10 3v2a5 5 0 0 0-3.54 8.54l-1.41 1.41A7 7 0 0 1 10 3zm4.95 2.05A7 7 0 0 1 10 17v-2a5 5 0 0 0 3.54-8.54l1.41-1.41zM10 20l-4-4 4-4v8zm0-12V0l4 4-4 4z",fill:"currentColor"}));function bn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function On(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?bn(Object(n),!0).forEach(function(t){wn(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):bn(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function wn(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}let En=lt.css.keyframes({"0%":{transform:"rotateZ(0deg)"},"100%":{transform:"rotateZ(360deg)"}});function vn({animating:e,iconStyle:t}){return l.a.createElement(W.B,{style:[{animation:e?`${En} 1s infinite linear`:null}]},l.a.createElement(hn,{width:14,height:14,style:On({color:"currentColor"},t)}))}var jn=n(596),Sn=n(257),xn=n.n(Sn);const Cn=["error","inputKey"];function kn(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function Pn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function An(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Pn(Object(n),!0).forEach(function(t){Dn(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Pn(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Dn(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const Bn={date:{ops:["is","isapprox","gt","gte","lt","lte"],nullable:!1},id:{ops:["is","contains","oneOf"],nullable:!0},string:{ops:["is","contains","oneOf"],nullable:!1},number:{ops:["is","isapprox","isbetween","gt","gte","lt","lte"],nullable:!1},boolean:{ops:["is"],nullable:!1}},In=new Map(Object.entries({imported_payee:"string",payee:"id",date:"date",notes:"string",amount:"number",amountInflow:"number",amountOutfow:"number",category:"id",account:"id",cleared:"boolean"}));function Tn(e,t){switch(t=t||{},e){case"imported_payee":return"imported payee";case"amount":return t.inflow?"amount (inflow)":t.outflow?"amount (outflow)":"amount";case"amount-inflow":return"amount (inflow)";case"amount-outflow":return"amount (outflow)";default:return e}}function Mn(e,t){switch(e){case"oneOf":return"one of";case"is":return"is";case"isapprox":return"is approx";case"isbetween":return"is between";case"contains":return"contains";case"gt":return"date"===t?"is after":"is greater than";case"gte":return"date"===t?"is after or equals":"is greater than or equals";case"lt":return"date"===t?"is before":"is less than";case"lte":return"date"===t?"is before or equals":"is less than or equals";case"true":return"is true";case"false":return"is false";case"set":return"set";case"link-schedule":return"link schedule";default:return""}}function Rn(e){switch(e){case"date-format":return"Invalid date format";case"no-null":case"no-empty-array":case"no-empty-string":return"Value cannot be empty";case"not-number":return"Value must be a number";case"invalid-field":return"Please choose a valid field for this type of rule";default:return"Internal error, sorry! Contact help@actualbudget.com"}}function _n(e){switch(e.type){case"number":{let t=e.value;return"amount"===e.field&&"isbetween"!==e.op&&(t=Object(Pe.j)(t)),An(An({},e),{},{value:t})}case"string":{let t=null==e.value?"":e.value;return An(An({},e),{},{value:t})}}return An(An({},e),{},{error:null})}function Ln(e){e.error,e.inputKey;let t=kn(e,Cn);switch(t.type){case"number":{let e=t.value;return"amount"===t.field&&"isbetween"!==t.op&&(e=Object(Pe.b)(e)),An(An({},t),{},{value:e})}case"string":{let e=null==t.value?"":t.value;return An(An({},t),{},{value:e})}}return t}function Nn(e,t){switch(t.type){case"number":if("isbetween"!==t.op)return An(An({},t),{},{error:null,value:e&&Object(Pe.d)(e)||0})}return An(An({},t),{},{error:null,value:e})}var Fn=n(112);function Un(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function zn(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Un(Object(n),!0).forEach(function(t){Wn(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Un(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Wn(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var $n=e=>l.a.createElement("svg",Object.assign({},e,{viewBox:"0 0 24 24",style:zn({color:"#242134"},e.style)}),l.a.createElement("path",{d:"M4.5 17.5h6.646a3.5 3.5 0 0 0 6.708 0H19.5a1 1 0 0 0 0-2h-1.646a3.5 3.5 0 0 0-6.708 0H4.5a1 1 0 0 0 0 2zm10-2.5a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3zM19.5 6.5h-6.646a3.5 3.5 0 0 0-6.708 0H4.5a1 1 0 0 0 0 2h1.646a3.5 3.5 0 0 0 6.708 0H19.5a1 1 0 1 0 0-2zM9.5 9a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z",fill:"currentColor"})),Gn=n(585),Hn=n(16),qn=n(19);const Yn=["width","height","style","color"];function Vn(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var Kn=function(e){let t=e.width,n=e.height,r=e.style,a=e.color,o=void 0===a?"black":a,i=Vn(e,Yn);return l.a.createElement("svg",Object.assign({width:t,height:n},i,Object(lt.css)(r),{viewBox:"0 0 91 51",version:"1.1",xmlns:"http://www.w3.org/2000/svg"}),l.a.createElement("path",{fill:o,className:"path",d:"M63.0035243,0.00287814875 C61.7906378,0.0600658892 60.7317989,0.842666173 60.3212412,1.985385 C59.9106836,3.12810382 60.2293609,4.40562012 61.1285243,5.22162815 L79.4410243,22.0341281 L3.15977426,22.0341281 C3.05570186,22.0291281 2.95134666,22.0291281 2.84727426,22.0341281 C1.27629006,22.1156281 -0.078297035,23.6193781 0.00352426499,25.1903781 C0.085345265,26.7612781 1.58881846,28.1162281 3.15977426,28.0341281 L79.4410243,28.0341281 L61.1285243,44.8153781 C60.2782139,45.5247824 59.8877978,46.6448836 60.1129217,47.7291351 C60.3380455,48.8133866 61.142102,49.6854787 62.204541,49.9977376 C63.2669799,50.3099965 64.4150384,50.0116459 65.1910243,49.2216281 L89.1910243,27.2216281 C89.8053452,26.6537206 90.1546504,25.8551089 90.1546504,25.0185031 C90.1546504,24.1818974 89.8053452,23.3832857 89.1910243,22.8153781 L65.1910243,0.815378149 C64.6013672,0.2604644 63.812455,-0.0325601255 63.0035243,0.00287814875 Z"}))};const Qn=["data","navigator","loadMore","style","onHoverLeave","children"];function Zn(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function Jn(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return Xn(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Xn(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Xn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}let er=st(Object(g.c)("schedules").select("*"),tr,g.a);var tr,nr={color:$.a.p4},rr={color:$.a.p4},ar={color:$.a.n3},or={color:$.a.p4},lr={color:$.a.p4},ir={color:$.a.p4,textDecoration:"none",":hover":{textDecoration:"underline"}},cr={color:$.a.p4},sr={color:$.a.p4},ur={color:$.a.p4};function dr({value:e,field:t,inline:n=!1,data:r,describe:a=(e=>e.name)}){let i=Object(s.d)(e=>{let n;if(r)n=r;else switch(t){case"payee":n=e.queries.payees;break;case"category":n=e.queries.categories.list;break;case"account":n=e.queries.accounts;break;default:n=[]}return{data:n,dateFormat:e.prefs.local.dateFormat||"MM/dd/yyyy"}}),c=i.data,u=i.dateFormat,d=Jn(Object(o.useState)(!1),2),f=d[0],p=d[1];function m(e){if(null==e||""===e)return"(nothing)";if("boolean"===typeof e)return e?"true":"false";if("amount"===t)return Object(Pe.k)(e);if("date"===t)return e?e.frequency?ge(e):Object(jn.a)(Object(Gn.a)(e),u):null;if("month"===t)return e?Object(jn.a)(Object(Gn.a)(e),Object(de.l)(u)):null;if("year"===t)return e?Object(jn.a)(Object(Gn.a)(e),"yyyy"):null;{let t=e;if(c){let n=c.find(t=>t.id===e);n&&(t=a(n))}return t}}if(Array.isArray(e)){if(0===e.length)return l.a.createElement(W.y,{style:nr},"(empty)");if(1===e.length)return l.a.createElement(W.y,null,"[",l.a.createElement(W.y,{style:rr},m(e[0])),"]");let t=e;!f&&e.length>4&&(t=e.slice(0,3));let r=e.length-t.length;return l.a.createElement(W.y,{style:ar},"[",t.map((t,r)=>{let a,o=l.a.createElement(W.y,{style:or},m(t));return a=n?0!==r?" ":"":l.a.createElement(l.a.Fragment,null,0===r&&l.a.createElement("br",null),"\xa0\xa0"),l.a.createElement(W.y,{key:r},a,o,r===e.length-1?"":",",!n&&l.a.createElement("br",null))}),r>0&&l.a.createElement(W.y,{style:lr},"\xa0\xa0",l.a.createElement("a",Object.assign({href:"#",onClick:function(e){e.preventDefault(),p(!0)}},Object(lt.css)(ir)),r," more items..."),!n&&l.a.createElement("br",null)),"]")}return e&&null!=e.num1&&null!=e.num2?l.a.createElement(W.y,null,l.a.createElement(W.y,{style:cr},m(e.num1))," and"," ",l.a.createElement(W.y,{style:sr},m(e.num2))):l.a.createElement(W.y,{style:ur},m(e))}var fr={display:"block",maxWidth:"100%",backgroundColor:$.a.n10,borderRadius:4,padding:"3px 5px",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},pr={color:$.a.p4},mr={color:$.a.n3};function yr({field:e,op:t,value:n,options:r,stage:a,style:o}){return l.a.createElement(W.B,{style:[fr,o]},l.a.createElement(W.y,{style:pr},Tn(e,r))," ",l.a.createElement(W.y,{style:mr},Mn(t))," ",l.a.createElement(dr,{value:n,field:e}))}function gr({value:e}){let t=Object(s.d)(e=>e.queries.payees),n=Object(h.e)(t),r=er.useQuery().data;return l.a.createElement(dr,{value:e,field:"rule",data:r,describe:e=>{let t=e._payee;return t?`${n[t].name} (${e.next_date})`:`Next: ${e.next_date}`}})}var hr={display:"block",maxWidth:"100%",backgroundColor:$.a.n10,borderRadius:4,padding:"3px 5px",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},br={color:$.a.n3},Or={color:$.a.p4},wr={color:$.a.n3},Er={color:$.a.n3};function vr({field:e,op:t,value:n,options:r,style:a}){return l.a.createElement(W.B,{style:[hr,a]},"set"===t?l.a.createElement(l.a.Fragment,null,l.a.createElement(W.y,{style:br},Mn(t))," ",l.a.createElement(W.y,{style:Or},Tn(e,r))," ",l.a.createElement(W.y,{style:wr},"to "),l.a.createElement(dr,{value:n,field:e})):"link-schedule"===t?l.a.createElement(l.a.Fragment,null,l.a.createElement(W.y,{style:Er},Mn(t))," ",l.a.createElement(gr,{value:n})):null)}var jr={color:$.a.n5},Sr={alignSelf:"flex-start",margin:5,backgroundColor:$.a.b10,color:$.a.b1,borderRadius:4,padding:"3px 5px"},xr={padding:"15px 0"},Cr={flex:1,alignItems:"flex-start"},kr={marginTop:3},Pr={width:12,height:12},Ar={flex:1,alignItems:"flex-start"},Dr={marginTop:3},Br={padding:"0 15px",paddingLeft:5};let Ir=l.a.memo(({rule:e,hovered:t,selected:n,editing:r,focusedField:a,onHover:o,onEdit:i,onEditRule:c})=>{let s=Object(Pt.d)(),u=n?$.a.b8:$.a.border,d=t||"select"===a;return l.a.createElement(kt.h,{height:"auto",borderColor:u,backgroundColor:n?$.a.selected:d?$.a.hover:"white",style:{fontSize:13,zIndex:r||n?101:"auto"},collapsed:"true",onMouseEnter:()=>o&&o(e.id),onMouseLeave:()=>o&&o(null)},l.a.createElement(kt.i,{exposed:t||n||r,focused:"select"===a,onSelect:()=>{s({type:"select",id:e.id})},onEdit:()=>i(e.id,"select"),selected:n}),l.a.createElement(kt.a,{name:"stage",width:50,plain:!0,style:jr},e.stage&&l.a.createElement(W.B,{style:Sr},e.stage)),l.a.createElement(kt.e,{width:"flex",style:xr,truncate:!1},l.a.createElement(W.x,{direction:"row",align:"center"},l.a.createElement(W.B,{style:Cr},e.conditions.map((t,n)=>l.a.createElement(yr,{key:n,field:t.field,op:t.op,value:t.value,options:t.options,stage:e.stage,style:0!==n&&kr}))),l.a.createElement(W.y,null,l.a.createElement(Kn,{color:$.a.n4,style:Pr})),l.a.createElement(W.B,{style:Ar},e.actions.map((e,t)=>l.a.createElement(vr,{key:t,field:e.field,op:e.op,value:e.value,options:e.options,style:0!==t&&Dr}))))),l.a.createElement(kt.a,{name:"edit",focused:"edit"===a,plain:!0,style:Br},l.a.createElement(W.d,{as:kt.b,onSelect:()=>c(e),onEdit:()=>i(e.id,"edit")},"Edit")))});var Tr={flex:1,outline:"none","& .animated .animated-row":{transition:".25s transform"}},Mr={maxWidth:"100%",overflow:"auto"};let Rr=l.a.forwardRef((e,t)=>{let n=e.data,r=e.navigator,a=e.loadMore,i=e.style,c=e.onHoverLeave,s=e.children,u=Zn(e,Qn),d=Object(o.useRef)(),f=Object(o.useRef)(),p=Object(o.useRef)(),m=r.getNavigatorProps;return Object(o.useEffect)(()=>{d.current?f.current=d.current.getBoundingClientRect().height:f.current=null},[d.current,n]),l.a.createElement(W.B,Object.assign({style:[Tr,i],tabIndex:"1"},m(u)),l.a.createElement(W.B,{innerRef:p,style:Mr,onScroll:function(e){null!=f.current&&a&&e.target.scrollTop>f.current-750&&a()}},l.a.createElement("div",{ref:d,onMouseLeave:c},s)))});var _r={};function Lr(){let e=Object(Pt.e)(),t=Object(Pt.d)();return l.a.createElement(kt.m,{version:"v2",style:_r},l.a.createElement(kt.i,{exposed:!0,focused:!1,selected:e.size>0,onSelect:()=>t({type:"select-all"})}),l.a.createElement(kt.a,{value:"Stage",width:50}),l.a.createElement(kt.a,{value:"Rule",width:"flex"}))}function Nr({rules:e,selectedItems:t,navigator:n,hoveredRule:r,collapsed:a,onHover:o,onCollapse:i,onEditRule:c}){return 0===e.length?null:l.a.createElement(W.B,null,e.map(e=>{let a=r===e.id,i=t.has(e.id),s=n.editingId===e.id;return l.a.createElement(Ir,{key:e.id,rule:e,hovered:a,selected:i,editing:s,focusedField:s&&n.focusedField,onHover:o,onEdit:n.onEdit,onEditRule:c})}))}var Fr={color:$.a.n4,flexDirection:"row",alignItems:"center",width:"50%"},Ur={color:$.a.n4},zr={flex:1},Wr={overflow:"hidden"},$r={flex:1},Gr={marginBottom:-1};function Hr({isModal:e,payeeId:t,setLoading:n=(()=>{})}){let r=Jn(Object(o.useState)(null),2),a=r[0],i=r[1],c=Jn(Object(o.useState)(null),2),u=c[0],d=c[1],f=Object(s.c)(),p=Object(kt.o)(u,["select","edit"]),m=Object(Pt.c)("manage-rules",a,[]),y=Jn(Object(o.useState)(null),2),g=y[0],h=y[1],b=Object(o.useRef)(null);async function O(){n(!0);let e=null;return e=t?await Object(T.send)("payees-get-rules",{id:t}):await Object(T.send)("rules-get"),i(e),e}Object(o.useEffect)(()=>{return _.setUndoState("openModal","manage-rules"),async function(){let e=await O();d(e.slice(0,100)),n(!1),await f(Object(qn.m)())}(),()=>{_.setUndoState("openModal",null)}},[]);let w=Object(o.useCallback)(e=>{f(Object(Hn.d)("edit-rule",{rule:e,onSave:async e=>{let t=await O();d(n=>{let r=t.findIndex(t=>t.id===e.id);return r>n.length?t.slice(0,r+75):t.slice(0,n.length)}),n(!1)}}))},[]);let E=Object(o.useCallback)(e=>{h(e)},[]);if(null===u)return null;let v=l.a.createElement(W.B,{style:{flexDirection:"row",alignItems:"center",padding:e?"13px 15px":"0 0 15px",borderTop:"1px solid "+$.a.border}},l.a.createElement(W.B,{style:Fr},l.a.createElement(W.y,null,"Rules are always run in the order that you see them."," ",l.a.createElement(W.i,{asAnchor:!0,href:"https://actualbudget.github.io/docs/Budgeting/rules/",style:Ur},"Learn more"))),l.a.createElement(W.B,{style:zr}),l.a.createElement(W.x,{direction:"row",align:"center",justify:"flex-end",spacing:2},m.items.size>0&&l.a.createElement(W.d,{onClick:async function(){n(!0),(await Object(T.send)("rule-delete-all",[...m.items])).someDeletionsFailed&&alert("Some rules were not deleted because they are linked to schedules");let e=await O();d(t=>e.slice(0,t.length)),m.dispatch({type:"select-none"}),n(!1)}},"Delete ",m.items.size," rules"),l.a.createElement(W.d,{primary:!0,onClick:function(){f(Object(Hn.d)("edit-rule",{rule:{stage:null,conditions:[{op:"is",field:"payee",value:null,type:"id"}],actions:[{op:"set",field:"category",value:null,type:"id"}]},onSave:async e=>{let t=await O();p.onEdit(e.id,"edit"),d(n=>{let r=t.findIndex(t=>t.id===e.id);return t.slice(0,r+75)}),n(!1)}}))}},"Create new rule")));return l.a.createElement(er.Provider,null,l.a.createElement(Pt.a,{instance:m},l.a.createElement(W.B,{style:Wr},!e&&v,l.a.createElement(W.B,{style:$r},l.a.createElement(Lr,null),l.a.createElement(Rr,{ref:b,data:u,navigator:p,loadMore:function(){d(u.concat(a.slice(u.length,u.length+50)))},style:Gr},l.a.createElement(Nr,{rules:u,selectedItems:m.items,navigator:p,hoveredRule:g,onHover:E,onEditRule:w}))),e&&v)))}var qr=n(123),Yr=n.n(qr),Vr=n(130);function Kr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Qr(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Kr(Object(n),!0).forEach(function(t){Zr(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Kr(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Zr(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Jr=e=>l.a.createElement("svg",Object.assign({},e,{viewBox:"0 0 24 24",style:Qr({color:"#242134"},e.style)}),l.a.createElement("path",{d:"M.439 21.44a1.5 1.5 0 0 0 2.122 2.121l9.262-9.261a.25.25 0 0 1 .354 0l9.262 9.263a1.5 1.5 0 1 0 2.122-2.121L14.3 12.177a.25.25 0 0 1 0-.354l9.263-9.262A1.5 1.5 0 0 0 21.439.44L12.177 9.7a.25.25 0 0 1-.354 0L2.561.44A1.5 1.5 0 0 0 .439 2.561L9.7 11.823a.25.25 0 0 1 0 .354z",fill:"currentColor"}));const Xr=["value","onSelect","suggestions","strict"],ea=["multi"];function ta(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return na(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return na(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function na(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function ra(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function aa(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function oa(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?aa(Object(n),!0).forEach(function(t){la(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):aa(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function la(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ia(e,t,n){if(e){let e=t.findIndex(e=>e.id===n);return-1===e?null:t[e]}return n}function ca(e){return null==e?"":"string"===typeof e?e:e.name||""}function sa(e){return"string"===typeof e?e:e?e.id:null}function ua({props:{value:e,suggestions:t,embedded:n,isOpen:r=!1,strict:a,initialFilterSuggestions:o}}){let l=ia(a,t,e),i=o?o(t,e):null;return{selectedItem:l,value:l?ca(l):"",originalItem:l,filteredSuggestions:i,highlightedIndex:null,isOpen:n||r}}function da(e,t){return ca(e).toLowerCase().includes(t.toLowerCase())}function fa(e,t){return e.filter(e=>da(e,t))}function pa(e,t,n,r,a){let o=null;if(t)if(null==r){let e=n.find(e=>e.id===a);e&&(o=e.id)}else r<n.length&&(o=n[r].id);else o=a;e&&e(o)}function ma({props:{suggestions:e,onUpdate:t,multi:n,highlightFirst:r,strict:a,filterSuggestions:o=fa,getHighlightedIndex:l},state:{isOpen:i}},c,s){if(!document.hasFocus())return;if(s.type===Vr.a.stateChangeTypes.controlledPropUpdatedSelectedItem)return;const u=o(e,c);if(""===c)return s.type!==Vr.a.stateChangeTypes.clickItem&&pa(t,a,u,null,null),{value:c,filteredSuggestions:u,highlightedIndex:null};{let e=e=>r&&e.length?0:null,n=(l||e)(u);return s.type!==Vr.a.stateChangeTypes.clickItem&&pa(t,a,u,n,c),{value:c,filteredSuggestions:u,highlightedIndex:n}}}function ya({props:e,state:t,inst:n},r,a){if(e.tableBehavior&&r.type===Vr.a.stateChangeTypes.mouseUp)return;const o={};return"highlightedIndex"in r&&(o.highlightedIndex=r.highlightedIndex),"isOpen"in r&&(o.isOpen=!!e.embedded||r.isOpen),"selectedItem"in r&&(o.selectedItem=r.selectedItem),!t.isOpen||r.type!==Vr.a.stateChangeTypes.keyDownArrowUp&&r.type!==Vr.a.stateChangeTypes.keyDownArrowDown||pa(e.onUpdate,e.strict,t.filteredSuggestions||e.suggestions,null!=o.highlightedIndex?o.highlightedIndex:t.highlightedIndex,t.value),n.lastChangeType=r.type,o}function ga({props:{onSelect:e,clearAfterSelect:t,suggestions:n},inst:r},a){return e&&setTimeout(()=>{e(sa(a))},0),ha(n,t,r)}function ha(e,t,n){if(t)return{value:"",selectedItem:null,highlightedIndex:null,filteredSuggestions:e};n.input&&n.input.setSelectionRange(0,1e4)}function ba({props:{inputProps:e}},t){const n=(e||{}).onChange;n&&n(t.target.value)}function Oa({props:{suggestions:e,clearAfterSelect:t,initialFilterSuggestions:n,embedded:r,onUpdate:a,onSelect:o,inputProps:l,shouldSaveFromKey:i=va,strict:c},state:{selectedItem:s,filteredSuggestions:u,highlightedIndex:d,originalItem:f,isNulled:p,isOpen:m,value:y},inst:g},h){let b=(l||{}).onKeyDown;if(m)if(13===h.keyCode)if(null!=d)g.lastChangeType===Vr.a.stateChangeTypes.itemMouseEnter?h.preventDefault():h.stopPropagation();else{if(!c)return h.stopPropagation(),o(y),ha(e,t,g);h.preventDefault(),b&&b(h)}else i(h)&&(h.preventDefault(),b&&b(h));if(27===h.keyCode){h.preventDefault(),r||h.stopPropagation();let t=n?n(e,ca(f)):null;return pa(a,c,e,null,sa(f)),{value:ca(f),selectedItem:ia(c,e,f),filteredSuggestions:t,highlightedIndex:null,isOpen:!!r}}}function wa(e){return l.a.createElement(W.n,e)}function Ea(e,t,n){return l.a.createElement("div",null,e.map((e,r)=>{let a=ca(e);return l.a.createElement("div",Object.assign({},t({item:e}),{key:a},Object(lt.css)({padding:5,cursor:"default",backgroundColor:n===r?$.a.n4:null})),a)}))}function va(e){return 13===e.keyCode}function ja({inst:e,props:{inputProps:t={},openOnFocus:n=!0}},r){if(t.onFocus&&t.onFocus(r),n)return{isOpen:!0}}function Sa({inst:e,props:t,state:{selectedItem:n}},r){let a=t.inputProps,o=void 0===a?{}:a,l=t.onSelect;if(r.preventDownshiftDefault=!0,o.onBlur&&o.onBlur(r),t.tableBehavior)return{isOpen:!1};{if(""===r.target.value)return l&&l(null),{selectedItem:null,originalValue:null,isOpen:!1};let e=n?sa(n):null;return ua({props:oa(oa({},t),{},{value:e,originalValue:e})})}}function xa(e){return e?ca(e):""}var Ca={display:"flex"},ka={marginTop:5};const Pa=Yr()(function({props:{focused:e,embedded:t,containerProps:n,inputProps:r,children:a,suggestions:o,tooltipStyle:i,onItemClick:c,strict:s,tooltipProps:u,renderInput:d=wa,renderItems:f=Ea,itemToString:p=xa},state:{value:m,selectedItem:y,filteredSuggestions:g,highlightedIndex:h,isOpen:b},updater:O,inst:w}){var E=oa({padding:0,backgroundColor:$.a.n1,color:"white"},i);const v=g||o;return l.a.createElement(Vr.a,{onSelect:O(ga),highlightedIndex:h,selectedItem:y||null,itemToString:p,inputValue:m,isOpen:b,onInputValueChange:O(ma),onStateChange:O(ya)},({getInputProps:a,getItemProps:o,getRootProps:i,isOpen:c,inputValue:s,selectedItem:p,highlightedIndex:m})=>l.a.createElement("div",Object.assign({className:"view "+Object(lt.css)(Ca).toString()},n),d(a(oa(oa({focused:e},r),{},{onFocus:O(ja),onBlur:O(Sa),onKeyDown:O(Oa),onChange:O(ba)}))),c&&v.length>0&&(t?l.a.createElement(W.B,{style:ka,"data-testid":"autocomplete"},f(v,o,m,s)):l.a.createElement(W.A,Object.assign({position:"bottom-stretch",offset:2,style:E},u,{"data-testid":"autocomplete"}),f(v,o,m,s)))))},{getInitialState:ua,componentWillReceiveProps:function(e,t){let n=t.strict,r=t.suggestions,a=t.filterSuggestions,o=void 0===a?fa:a,l=t.initialFilterSuggestions,i=t.value,c=t.itemToString,s=void 0===c?xa:c,u=e.state.value,d=null;function f(){let e=ia(n,r,i);e&&((d=d||{}).value=s(e),d.selectedItem=e)}if(e.props.value!==i&&f(),e.props.suggestions!==r){let t=null;t=null!=e.state.highlightedIndex?o(r,u):l?l(r,u):null,d=d||{},f(),d.filteredSuggestions=t}return d}});var Aa={alignItems:"center",flexDirection:"row",backgroundColor:$.a.b9,padding:"2px 4px",margin:"2px",borderRadius:4},Da={marginLeft:1},Ba={width:8,height:8};function Ia({name:e,onRemove:t}){return l.a.createElement(W.B,{style:Aa},e,l.a.createElement(W.d,{type:"button",bare:!0,style:Da,onClick:t},l.a.createElement(Jr,{style:Ba})))}var Ta={display:"flex",flexWrap:"wrap",flexDirection:"row",alignItems:"center",backgroundColor:"white",borderRadius:4,border:"1px solid #d0d0d0"},Ma={border:"1px solid "+$.a.b5,boxShadow:"0 1px 1px "+$.a.b7},Ra={flex:1,minWidth:30,border:0,":focus":{border:0,boxShadow:"none"}};function _a(e){let t=e.value,n=e.onSelect,r=e.suggestions,a=e.strict,i=ra(e,Xr),c=ta(Object(o.useState)(!1),2),s=c[0],u=c[1],d=Object(o.useRef)();function f(e){let r=t.filter(t=>t!==e);n(r)}return Object(o.useEffect)(()=>{d.current=t}),l.a.createElement(Ga,Object.assign({},i,{value:null,suggestions:r.filter(e=>!t.includes(sa(e))),onSelect:function(e){e&&(e=e.trim(),n([...t,e],e))},clearAfterSelect:!0,highlightFirst:!0,strict:a,tooltipProps:{forceLayout:d.current!==t},renderInput:e=>l.a.createElement(W.B,{style:[Ta,s&&Ma]},t.map((e,t)=>(e=ia(a,r,e))&&l.a.createElement(Ia,{key:sa(e)||t,name:ca(e),onRemove:()=>f(sa(e))})),l.a.createElement(W.n,Object.assign({},e,{onKeyDown:n=>(function(e,n){"Backspace"===e.key&&""===e.target.value&&f(t[t.length-1]),n&&n(e)})(n,e.onKeyDown),onFocus:t=>{u(!0),e.onFocus(t)},onBlur:t=>{u(!1),e.onBlur(t)},style:[Ra,e.style]})))}))}var La={fontSize:12,color:$.a.n10,backgroundColor:"transparent",borderColor:$.a.n5},Na={backgroundColor:"rgba(200, 200, 200, .25)"};function Fa({title:e,style:t,hoveredStyle:n,onClick:r}){return l.a.createElement(W.d,{style:[La,t],hoveredStyle:[Na,n],onClick:r},e)}var Ua={flexShrink:0},za={paddingTop:5},Wa={padding:5};function $a({show:e=!0,embedded:t,children:n}){return e&&l.a.createElement(W.B,{style:[Ua,t?za:Wa],onMouseDown:e=>e.preventDefault()},n)}function Ga(e){let t=e.multi,n=ra(e,ea);return t?l.a.createElement(_a,n):l.a.createElement(Pa,n)}const Ha=["embedded","includeClosedAccounts"];function qa(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var Ya={overflow:"auto",padding:"5px 0"},Va={maxHeight:175},Ka={color:$.a.y9,padding:"4px 9px"};function Qa({items:e,getItemProps:t,highlightedIndex:n,embedded:r}){let a=null;return l.a.createElement(W.B,null,l.a.createElement(W.B,{style:[Ya,!r&&Va]},e.map((e,o)=>{const i=!a||e.offbudget!==a.offbudget,c=e.offbudget?"Off Budget":"For Budget";return a=e,[i?l.a.createElement("div",{key:c,style:Ka,"data-testid":"account-item-group"},c):null,l.a.createElement("div",Object.assign({},t?t({item:e}):null,{key:e.id,style:{backgroundColor:n===o?$.a.n4:"transparent",padding:4,paddingLeft:20,borderRadius:r?4:0},"data-testid":"account-item"+(n===o?"-highlighted":"")}),e.name)]})))}function Za(e){let t=e.embedded,n=e.includeClosedAccounts,r=void 0===n||n,a=qa(e,Ha),o=j()||[];return l.a.createElement(Ga,Object.assign({strict:!0,highlightFirst:!0,embedded:t,suggestions:r?o:o.filter(e=>!1===e.closed),renderItems:(e,n,r)=>l.a.createElement(Qa,{items:e,getItemProps:n,highlightedIndex:r,embedded:t})},a))}const Ja=["width","height","style","color"];function Xa(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var eo=function(e){let t=e.width,n=e.height,r=e.style,a=e.color,o=void 0===a?"currentColor":a,i=Xa(e,Ja);return l.a.createElement("svg",Object.assign({width:t,height:n},i,Object(lt.css)(r),{viewBox:"0 0 32 32",fill:"none",xmlns:"http://www.w3.org/2000/svg"}),l.a.createElement("path",{d:"M30 9L26 5",stroke:o,className:"path",strokeWidth:"3.5",strokeMiterlimit:"10",strokeLinecap:"round"}),l.a.createElement("path",{d:"M30 9L26 13",stroke:o,className:"path",strokeWidth:"3.5",strokeMiterlimit:"10",strokeLinecap:"round"}),l.a.createElement("path",{d:"M6 5L2 9",stroke:o,className:"path",strokeWidth:"3.5",strokeMiterlimit:"10",strokeLinecap:"round"}),l.a.createElement("path",{d:"M2 9L6 13",stroke:o,className:"path",strokeWidth:"3.5",strokeMiterlimit:"10",strokeLinecap:"round"}),l.a.createElement("path",{d:"M10 9H3",stroke:o,className:"path",strokeWidth:"3.5",strokeMiterlimit:"10",strokeLinecap:"round"}),l.a.createElement("path",{d:"M22 9H29",stroke:o,className:"path",strokeWidth:"3.5",strokeMiterlimit:"10",strokeLinecap:"round"}),l.a.createElement("path",{d:"M16 15L22 9",stroke:o,className:"path",strokeWidth:"3.5",strokeMiterlimit:"10",strokeLinecap:"round"}),l.a.createElement("path",{d:"M16 15L10 9",stroke:o,className:"path",strokeWidth:"3.5",strokeMiterlimit:"10",strokeLinecap:"round"}),l.a.createElement("path",{d:"M16 28L16 15",stroke:o,className:"path",strokeWidth:"3.5",strokeMiterlimit:"10",strokeLinecap:"round"}))};const to=["categoryGroups","emptyLabel"],no=["categoryGroups","showSplitOption","embedded","onSplit"];function ro(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function ao(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ro(Object(n),!0).forEach(function(t){oo(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ro(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function oo(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function lo(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}const io=l.a.forwardRef((e,t)=>{let n=e.categoryGroups,r=e.emptyLabel,a=lo(e,to);return l.a.createElement(W.w,Object.assign({},a,{ref:t}),l.a.createElement("option",{value:""},r||"Select category..."),n.map(e=>l.a.createElement("optgroup",{key:e.id,label:e.name},e.categories.map(e=>l.a.createElement("option",{key:e.id,value:e.id},e.name)))))});var co={overflow:"auto",padding:"5px 0"},so={maxHeight:175},uo={lineHeight:0},fo={marginRight:5},po={color:$.a.y9,padding:"4px 9px"};function mo({items:e,getItemProps:t,highlightedIndex:n,embedded:r,footer:a}){let o=null;return l.a.createElement(W.B,null,l.a.createElement(W.B,{style:[co,!r&&so]},e.map((e,a)=>{if("split"===e.id)return l.a.createElement(W.B,Object.assign({key:"split"},t?t({item:e}):null,{style:{backgroundColor:n===a?$.a.n4:"transparent",borderRadius:r?4:0,flexShrink:0,flexDirection:"row",alignItems:"center",fontSize:11,fontWeight:500,color:$.a.g8,padding:"6px 8px"},"data-testid":"split-transaction-button"}),l.a.createElement(W.y,{style:uo},l.a.createElement(eo,{width:10,height:10,style:fo})),"Split Transaction");const i=e.cat_group!==o;return o=e.cat_group,l.a.createElement(l.a.Fragment,{key:e.id},i&&l.a.createElement("div",{style:po,"data-testid":"category-item-group"},e.groupName),l.a.createElement("div",Object.assign({},t?t({item:e}):null,{style:{backgroundColor:n===a?$.a.n4:"transparent",padding:4,paddingLeft:20,borderRadius:r?4:0},"data-testid":"category-item"+(n===a?"-highlighted":"")}),e.name))})),a)}function yo(e){let t=e.categoryGroups,n=e.showSplitOption,r=e.embedded,a=(e.onSplit,lo(e,no)),i=Object(o.useMemo)(()=>t.reduce((e,t)=>e.concat(t.categories.map(e=>ao(ao({},e),{},{groupName:t.name}))),n?[{id:"split",name:""}]:[]),[t]);return l.a.createElement(Ga,Object.assign({strict:!0,highlightFirst:!0,embedded:r,getHighlightedIndex:e=>0===e.length?null:"split"===e[0].id?e.length>1?1:null:0,filterSuggestions:(e,t)=>e.filter(e=>"split"===e.id||da(e,t)||e.groupName.toLowerCase().includes(t.toLowerCase())),suggestions:i,renderItems:(e,t,n)=>l.a.createElement(mo,{items:e,embedded:r,getItemProps:t,highlightedIndex:n})},a))}var go=n(101);const ho=["value","inputProps","showMakeTransfer","showManagePayees","defaultFocusTransferPayees","tableBehavior","embedded","onUpdate","onSelect","onManagePayees"];function bo(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Oo(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?bo(Object(n),!0).forEach(function(t){wo(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):bo(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function wo(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Eo(e,t){return ko(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||xo(e,t)||So()}function vo(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function jo(e){return ko(e)||function(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||xo(e)||So()}function So(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function xo(e,t){if(e){if("string"===typeof e)return Co(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Co(e,t):void 0}}function Co(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function ko(e){if(Array.isArray(e))return e}function Po(e,t,n){let r=n?Object(h.c)(e,n):e;return t&&r&&(r=r.filter(e=>!!e.transfer_acct)),r||[]}function Ao(e,t){return"new"!==e||t.current.startsWith("new:")?e:"new:"+t.current}function Do(e){return"string"===typeof e&&e.startsWith("new:")?"new":e}var Bo={overflow:"auto",padding:"5px 0"},Io={maxHeight:175},To={display:"block",color:$.a.g8,borderRadius:4,fontSize:11,fontWeight:500},Mo={color:$.a.g8,marginRight:5,display:"inline-block"},Ro={color:$.a.y9,padding:"4px 9px"},_o={fontSize:11,padding:5,color:$.a.n5,textAlign:"center"};function Lo({items:e,getItemProps:t,highlightedIndex:n,embedded:r,inputValue:a,footer:o}){let i=e.filtered,c=null;if("new"===(e=[...e])[0].id){let t=jo(e),n=t[0],r=t.slice(1);c=n,e=r}let s=c?1:0,u=null;return l.a.createElement(W.B,null,l.a.createElement(W.B,{style:[Bo,!r&&Io]},c&&l.a.createElement(W.B,Object.assign({},t?t({item:c}):null,{style:{flexShrink:0,padding:"6px 9px",backgroundColor:0===n?$.a.n4:"transparent",borderRadius:r?4:0}}),l.a.createElement(W.B,{style:To},l.a.createElement(It,{width:8,height:8,style:Mo}),'Create Payee "',a,'"')),e.map((a,o)=>{let c,d=a.transfer_acct?"account":"payee";"payee"===d&&u!==d?c="Payees":"account"===d&&u!==d&&(c="Transfer To/From");let f=o===e.length-1&&i;return u=d,l.a.createElement(l.a.Fragment,{key:a.id},c&&l.a.createElement("div",{key:"title-"+o,style:Ro},c),l.a.createElement("div",Object.assign({},t?t({item:a}):null,{key:a.id,style:{backgroundColor:n===o+s?$.a.n4:"transparent",borderRadius:r?4:0,padding:4,paddingLeft:20}}),a.name),f&&l.a.createElement("div",{style:_o},"More payees are available, search to find them"))})),o)}var No={marginBottom:5},Fo={backgroundColor:$.a.y8,color:$.a.g2,borderColor:$.a.y8},Uo={backgroundColor:$.a.y8,colors:$.a.y2};function zo(e){let t=e.value,n=e.inputProps,r=e.showMakeTransfer,a=void 0===r||r,i=e.showManagePayees,c=void 0!==i&&i,u=e.defaultFocusTransferPayees,d=void 0!==u&&u,f=e.tableBehavior,p=e.embedded,m=e.onUpdate,y=e.onSelect,g=e.onManagePayees,h=vo(e,ho),b=A(),O=j(),w=Eo(Object(o.useState)(d),2),E=w[0],v=w[1],S=Object(o.useMemo)(()=>[{id:"new",name:""},...Po(b,E,O)],[b,E,O]),x=Object(o.useRef)(""),C=Object(s.c)();return l.a.createElement(Ga,Object.assign({key:E?"transfers":"all",strict:!0,embedded:p,value:Do(t),suggestions:S,tableBehavior:f,itemToString:e=>e?"new"===e.id?x.current:e.name:"",inputProps:Oo(Oo({},n),{},{onChange:e=>x.current=e}),onUpdate:e=>m&&m(Ao(e,x)),onSelect:async function(e){if(f)y&&y(Ao(e,x));else{let t=()=>C(Object(qn.f)(x.current));Array.isArray(e)?e=await Promise.all(e.map(e=>"new"===e?t():e)):"new"===e&&(e=await t()),y&&y(e)}},getHighlightedIndex:e=>e.length>1&&"new"===e[0].id?1:0,filterSuggestions:(e,t)=>{let n=e.filter((e,n)=>"new"===e.id?!(!t||""===t||E):da(e,t));n.sort((e,n)=>{let r=e.name.toLowerCase().startsWith(t.toLowerCase()),a=n.name.toLowerCase().startsWith(t.toLowerCase()),o=e.name.toLowerCase()===t.toLowerCase(),l=n.name.toLowerCase()===t.toLowerCase();return"new"===e.id?-1:"new"===n.id?1:o&&!l?-1:!o&&l?1:r===a?0:r&&!a?-1:1});let r=n.length>100;return(n=n.slice(0,100)).filtered=r,n.length>=2&&"new"===n[0].id&&n[1].name.toLowerCase()===t.toLowerCase()?n.slice(1):n},initialFilterSuggestions:e=>{let t=!1,n=e.filter((e,n)=>"new"!==e.id&&(!(n>=100&&!e.transfer_acct)||(t=!0,!1)));return t&&(n.filtered=!0),n},renderItems:(e,t,n,r)=>l.a.createElement(Lo,{items:e,getItemProps:t,highlightedIndex:n,inputValue:r,embedded:p,footer:l.a.createElement($a,{embedded:p},a&&l.a.createElement(Fa,{title:"Make Transfer",style:[c&&No,E&&Fo],hoveredStyle:E&&Uo,onClick:()=>{m&&m(null),v(!E)}}),c&&l.a.createElement(Fa,{title:"Manage Payees",onClick:()=>g()}))})},h))}var Wo=n(166);const $o=["width","height","style","color"];function Go(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var Ho=function(e){let t=e.width,n=e.height,r=e.style,a=e.color,o=void 0===a?"black":a,i=Go(e,$o);return l.a.createElement("svg",Object.assign({width:t,height:n},i,Object(lt.css)(r),{viewBox:"0 0 24 24",version:"1.1",xmlns:"http://www.w3.org/2000/svg"}),l.a.createElement("path",{fill:o,className:"path",d:"M23,11.5 L23,11.5 L23,11.5 C23,12.3284271 22.3284271,13 21.5,13 L1.5,13 L1.5,13 C0.671572875,13 1.01453063e-16,12.3284271 0,11.5 L0,11.5 L0,11.5 C-1.01453063e-16,10.6715729 0.671572875,10 1.5,10 L21.5,10 L21.5,10 C22.3284271,10 23,10.6715729 23,11.5 Z"}),l.a.createElement("path",{fill:o,className:"path",d:"M11.5,23 C10.6715729,23 10,22.3284271 10,21.5 L10,1.5 C10,0.671572875 10.6715729,1.52179594e-16 11.5,0 C12.3284271,-1.52179594e-16 13,0.671572875 13,1.5 L13,21.5 C13,22.3284271 12.3284271,23 11.5,23 Z"}))};const qo=["width","height","style","color"];function Yo(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var Vo=function(e){let t=e.width,n=e.height,r=e.style,a=e.color,o=void 0===a?"black":a,i=Yo(e,qo);return l.a.createElement("svg",Object.assign({width:t,height:n},i,Object(lt.css)(r),{viewBox:"0 0 24 24",version:"1.1",xmlns:"http://www.w3.org/2000/svg"}),l.a.createElement("path",{fill:o,className:"path",d:"M23,11.5 L23,11.5 L23,11.5 C23,12.3284271 22.3284271,13 21.5,13 L1.5,13 L1.5,13 C0.671572875,13 1.01453063e-16,12.3284271 0,11.5 L0,11.5 L0,11.5 C-1.01453063e-16,10.6715729 0.671572875,10 1.5,10 L21.5,10 L21.5,10 C22.3284271,10 23,10.6715729 23,11.5 Z"}))};function Ko(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return Qo(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Qo(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Qo(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Zo(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Jo(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Zo(Object(n),!0).forEach(function(t){Xo(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Zo(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Xo(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const el=5,tl=[{id:"weekly",name:"Weeks"},{id:"monthly",name:"Months"},{id:"yearly",name:"Years"}],nl=[...Array(31).keys()].map(e=>e+1),rl=[{id:"SU",name:"Sunday"},{id:"MO",name:"Monday"},{id:"TU",name:"Tuesday"},{id:"WE",name:"Wednesday"},{id:"TH",name:"Thursday"},{id:"FR",name:"Friday"},{id:"SA",name:"Saturday"}];function al(e){return e||{start:de.c(),interval:1,frequency:"monthly",patterns:[ll(de.c())]}}function ol(e){return Jo(Jo({},e),{},{interval:fl(e.interval)})}function ll(e){return{value:parseInt(de.g(e,"d")),type:"day"}}function il(e,t){switch(t.type){case"replace-config":return Jo(Jo({},e),{},{config:t.config});case"change-field":return Jo(Jo({},e),{},{config:Jo(Jo({},e.config),{},{[t.field]:t.value,patterns:"monthly"!==e.config.frequency?[]:e.config.patterns})});case"update-recurrence":return Jo(Jo({},e),{},{config:Jo(Jo({},e.config),{},{patterns:e.config.patterns.map(e=>e===t.recurrence?Jo(Jo({},t.recurrence),function({field:e,value:t,recurrence:n}){return"value"===e&&"day"!==n.type&&t>el||"type"===e&&"day"!==t&&n.value>el?{[e]:t,value:el}:{[e]:t}}(t)):e)})});case"add-recurrence":return Jo(Jo({},e),{},{config:Jo(Jo({},e.config),{},{patterns:[...e.config.patterns||[],ll(e.config.start)]})});case"remove-recurrence":return Jo(Jo({},e),{},{config:Jo(Jo({},e.config),{},{patterns:e.config.patterns.filter(e=>e!==t.recurrence)})});default:return e}}var cl={fontWeight:600},sl={marginTop:10},ul={marginTop:15,color:$.a.n4};function dl({previewDates:e}){if(!e)return null;let t=Object(s.d)(e=>e.prefs.local.dateFormat||"MM/dd/yyyy");t=t.replace("MM","M").replace("dd","d");let n=null;return n="string"===typeof e?l.a.createElement(W.y,null,e):l.a.createElement(W.B,null,l.a.createElement(W.y,{style:cl},"Upcoming dates"),l.a.createElement(W.x,{direction:"row",spacing:4,style:sl},e.map(e=>l.a.createElement(W.B,null,l.a.createElement(W.y,null,de.g(e,t)),l.a.createElement(W.y,null,de.g(e,"EEEE")))))),l.a.createElement(l.a.Fragment,null,l.a.createElement(W.x,{direction:"column",spacing:1,style:ul},n))}function fl(e){const t=parseInt(e);return Number.isInteger(t)&&t>0?t:1}var pl={marginTop:10},ml={display:"flex",flexDirection:"row"},yl={marginRight:10},gl={marginRight:10},hl={padding:7},bl={width:8,height:8},Ol={padding:7,marginLeft:5},wl={width:10,height:10};function El({config:e,dispatch:t}){let n=(e,n,r)=>t({type:"update-recurrence",recurrence:e,field:n,value:r});return l.a.createElement(W.x,{spacing:2,style:pl},e.patterns.map((e,r)=>l.a.createElement(W.B,{key:r,style:ml},l.a.createElement(W.w,{style:yl,value:e.value,onChange:t=>n(e,"value",function(e){return"last"===e?-1:Number(e)}(t.target.value))},l.a.createElement("option",{value:-1},"Last"),l.a.createElement("option",{disabled:!0},"---"),nl.map(e=>l.a.createElement("option",{key:e,value:e},e))),l.a.createElement(W.w,{style:gl,value:e.type,onChange:t=>n(e,"type",t.target.value)},l.a.createElement("option",{value:"day"},"Day"),l.a.createElement("option",{disabled:!0},"---"),rl.map(e=>l.a.createElement("option",{key:e.id,value:e.id},e.name))),l.a.createElement(W.d,{bare:!0,style:hl,onClick:()=>t({type:"remove-recurrence",recurrence:e})},l.a.createElement(Vo,{style:bl})),l.a.createElement(W.d,{bare:!0,style:Ol,onClick:()=>t({type:"add-recurrence"})},l.a.createElement(Ho,{style:wl})))))}var vl={padding:10,width:380},jl={display:"flex",alignItems:"center"},Sl={marginRight:5},xl={marginTop:10},Cl={whiteSpace:"nowrap"},kl={width:40},Pl={flex:0},Al={display:"flex",marginTop:15,justifyContent:"flex-end"},Dl={marginLeft:10};function Bl({config:e,onClose:t,onSave:n}){let r=Ko(Object(o.useState)(null),2),a=r[0],i=r[1],c=Ko(Object(o.useReducer)(il,{config:al(e)}),2),u=c[0],d=c[1],f=Object(s.d)(e=>e.prefs.local.dateFormat||"MM/dd/yyyy");Object(o.useEffect)(()=>{d({type:"replace-config",config:al(e)})},[e]);let p=u.config,m=(e,t)=>d({type:"change-field",field:e,value:t});return Object(o.useEffect)(()=>{!async function(){let e=await Object(T.sendCatch)("schedule/get-upcoming-dates",{config:ol(p),count:4}),t=e.data,n=e.error;i(n?"Invalid rule":t)}()},[p]),null==a?null:l.a.createElement(W.A,{style:vl,offset:1,position:"bottom-left",onClose:t},l.a.createElement("div",{style:jl},l.a.createElement("label",{htmlFor:"start",style:Sl},"Starts:"),l.a.createElement(go.a,{id:"start",inputProps:{placeholder:"Start Date"},value:p.start,onSelect:e=>m("start",e),containerProps:{style:{width:100}},dateFormat:f})),l.a.createElement(W.x,{direction:"row",align:"center",justify:"flex-start",style:xl,spacing:2},l.a.createElement(W.y,{style:Cl},"Repeat every"),l.a.createElement(W.n,{id:"interval",style:kl,type:"text",onBlur:e=>m("interval",e.target.value),onEnter:e=>m("interval",e.target.value),defaultValue:p.interval||1}),l.a.createElement(W.w,{onChange:e=>m("frequency",e.target.value),value:p.frequency,style:Pl},tl.map(e=>l.a.createElement("option",{key:e.id,value:e.id},e.name))),"monthly"!==p.frequency||null!=p.patterns&&0!==p.patterns.length?null:l.a.createElement(W.d,{onClick:()=>d({type:"add-recurrence"})},"Add specific days")),"monthly"===p.frequency&&p.patterns&&p.patterns.length>0&&l.a.createElement(El,{config:p,dispatch:d}),l.a.createElement(dl,{previewDates:a}),l.a.createElement("div",{style:Al},l.a.createElement(W.d,{onClick:t},"Cancel"),l.a.createElement(W.d,{onClick:()=>n(ol(p)),primary:!0,style:Dl},"Apply")))}var Il={textAlign:"left"};function Tl({value:e,buttonStyle:t,onChange:n}){let r=Object(Wo.c)(),a=r.isOpen,o=r.close,i=r.getOpenEvents;return l.a.createElement(W.B,null,l.a.createElement(W.d,Object.assign({},i(),{style:[Il,t]}),e?ge(e):"No recurring date"),a&&l.a.createElement(Bl,{config:e,onClose:o,onSave:function(e){n(e),o()}}))}function Ml(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Rl(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ml(Object(n),!0).forEach(function(t){_l(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ml(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function _l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Ll={justifyContent:"flex-start"},Nl={flex:1};function Fl({field:e,subfield:t,type:n,multi:r,value:a,inputRef:o,style:i,onChange:c}){let u=Object(s.d)(e=>({payees:e.queries.payees,accounts:e.queries.accounts,categoryGroups:e.queries.categories.grouped,dateFormat:e.prefs.local.dateFormat||"MM/dd/yyyy"})),d=u.payees,f=u.accounts,p=u.categoryGroups,m=u.dateFormat;if(r&&!Array.isArray(a))a=[];else if(!r&&Array.isArray(a))return null;let y,g=!r||0===a.length;switch(n){case"id":switch(e){case"payee":d.length>0&&(y=l.a.createElement(zo,{payees:d,accounts:f,multi:r,showMakeTransfer:!1,openOnFocus:!1,value:a,onSelect:c,inputProps:Rl({inputRef:o},g?{placeholder:"nothing"}:null)}));break;case"account":y=l.a.createElement(Za,{accounts:f,value:a,multi:r,openOnFocus:!1,onSelect:c,inputProps:Rl({inputRef:o},g?{placeholder:"nothing"}:null)});break;case"category":y=l.a.createElement(yo,{categoryGroups:p,value:a,multi:r,openOnFocus:!1,onSelect:c,inputProps:Rl({inputRef:o},g?{placeholder:"nothing"}:null)})}break;case"date":switch(t){case"month":y=l.a.createElement(W.n,{inputRef:o,defaultValue:a||"",placeholder:Object(de.l)(m).toLowerCase(),onEnter:e=>c(e.target.value),onBlur:e=>c(e.target.value)});break;case"year":y=l.a.createElement(W.n,{inputRef:o,defaultValue:a||"",placeholder:"yyyy",onEnter:e=>c(e.target.value),onBlur:e=>c(e.target.value)});break;default:y=a&&a.frequency?l.a.createElement(Tl,{value:a,buttonStyle:Ll,onChange:c}):l.a.createElement(go.a,{value:a,dateFormat:m,openOnFocus:!1,inputRef:o,inputProps:{placeholder:m.toLowerCase()},onSelect:c})}break;default:y=r?l.a.createElement(Ga,{multi:!0,suggestions:[],value:a,inputProps:{inputRef:o},onSelect:c}):l.a.createElement(W.n,{inputRef:o,defaultValue:a||"",placeholder:"nothing",onEnter:e=>c(e.target.value),onBlur:e=>c(e.target.value)})}return l.a.createElement(W.B,{style:[Nl,i]},y)}function Ul(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function zl(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ul(Object(n),!0).forEach(function(t){Wl(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ul(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Wl(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function $l(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return Gl(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Gl(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Gl(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}let Hl=["date","account","payee","notes","category","amount","cleared"].map(e=>[e,Tn(e)]);function ql(e,t){switch(e){case"amount":switch(t){case"amount-inflow":return{inflow:!0};case"amount-outflow":return{outflow:!0};default:return null}case"date":switch(t){case"month":return{month:!0};case"year":return{year:!0};default:return null}default:return null}}function Yl({children:e}){let t=Object(o.useRef)();return Object(o.useEffect)(()=>{t.current.focus()},[]),l.a.createElement("div",{ref:t,tabIndex:-1,onKeyDown:function(e){9===e.keyCode&&xn()(t.current,e)}},e)}var Vl={backgroundColor:$.a.n10,marginBottom:5},Kl={color:"white","&,:hover,:active":{backgroundColor:$.a.b4}};function Ql({op:e,selected:t,style:n,onClick:r}){return l.a.createElement(W.d,{bare:!0,style:[Vl,n,t&&Kl],onClick:r},Mn(e))}var Zl={padding:15},Jl={marginBottom:10},Xl={borderWidth:1},ei={flexWrap:"wrap"},ti={marginTop:10},ni={marginTop:15};function ri({field:e,op:t,value:n,dispatch:r,onApply:a}){let i=$l(Object(o.useState)(e),2),c=i[0],s=i[1],u=Object(o.useRef)(),d=Object(o.useRef)(null);Object(o.useEffect)(()=>{d.current!==t&&u.current&&u.current.focus(),d.current=t},[t]);let f=In.get(e),p=Bn[f].ops;return"month"!==c&&"year"!==c||(p=["is"]),l.a.createElement(W.A,{position:"bottom-left",style:Zl,width:300,onClose:()=>r({type:"close"})},l.a.createElement(Yl,null,l.a.createElement(W.B,{style:Jl},"amount"===e||"date"===e?l.a.createElement(W.h,{options:"amount"===e?[["amount","Amount"],["amount-inflow","Amount (inflow)"],["amount-outflow","Amount (outflow)"]]:"date"===e?[["date","Date"],["month","Month"],["year","Year"]]:null,value:c,onChange:e=>{s(e),"month"!==e&&"year"!==e||r({type:"set-op",op:"is"})},style:Xl}):Object(Pe.p)(Tn(e))),l.a.createElement(W.x,{direction:"row",align:"flex-start",spacing:1,style:ei},"boolean"===f?[l.a.createElement(Ql,{op:"true",selected:!0===n,onClick:()=>{r({type:"set-op",op:"is"}),r({type:"set-value",value:!0})}}),l.a.createElement(Ql,{op:"false",selected:!1===n,onClick:()=>{r({type:"set-op",op:"is"}),r({type:"set-value",value:!1})}})]:p.map(e=>l.a.createElement(Ql,{op:e,selected:e===t,onClick:()=>r({type:"set-op",op:e})}))),l.a.createElement("form",{action:"#"},"boolean"!==f&&l.a.createElement(Fl,{inputRef:u,field:e,subfield:c,type:"id"===f&&"contains"===t?"string":f,value:n,multi:"oneOf"===t,style:ti,onChange:e=>r({type:"set-value",value:e})}),l.a.createElement(W.B,null,l.a.createElement(W.d,{primary:!0,style:ni,onClick:r=>{r.preventDefault(),a({field:e,op:t,value:n,options:ql(e,c)})}},"Apply")))))}var ai={width:16,height:16,color:"inherit",marginRight:5},oi={padding:0};function li({onApply:e}){let t=Object(s.d)(e=>({dateFormat:e.prefs.local.dateFormat||"MM/dd/yyyy"})).dateFormat,n=$l(Object(o.useReducer)((e,t)=>{switch(t.type){case"select-field":return zl(zl({},e),{},{fieldsOpen:!0,condOpen:!1});case"configure":{let n=function(e){return"amount-inflow"===e?{field:"amount",options:{inflow:!0}}:"amount-outflow"===e?{field:"amount",options:{outflow:!0}}:{field:e}}(t.field).field,r=In.get(n),a=Bn[r].ops;return zl(zl({},e),{},{fieldsOpen:!1,condOpen:!0,field:t.field,op:a[0],value:"boolean"===r||null})}case"set-op":{let n=In.get(e.field),r=e.value;return"id"===n&&"contains"===t.op&&(r=null),zl(zl({},e),{},{op:t.op,value:r})}case"set-value":let n=Nn(t.value,{type:In.get(e.field)}).value;return zl(zl({},e),{},{value:n});case"close":return{fieldsOpen:!1,condOpen:!1,value:null};default:throw new Error("Unknown action: "+t.type)}},{fieldsOpen:!1,condOpen:!1,field:null,value:null}),2),r=n[0],a=n[1];return l.a.createElement(W.B,null,l.a.createElement(W.d,{bare:!0,onClick:()=>a({type:"select-field"})},l.a.createElement($n,{style:ai})," ","Filter"),r.fieldsOpen&&l.a.createElement(W.A,{position:"bottom-left",style:oi,onClose:()=>a({type:"close"})},l.a.createElement(W.s,{onMenuSelect:e=>{a({type:"configure",field:e})},items:Hl.map(([e,t])=>({name:e,text:Object(Pe.p)(t)}))})),r.condOpen&&l.a.createElement(ri,{field:r.field,op:r.op,value:r.value,dispatch:a,onApply:async function(n){if("date"===(n=Ln(zl(zl({},n),{},{type:In.get(n.field)}))).type&&n.options)if(n.options.month){let e=Object(Ce.a)(n.value,Object(de.l)(t),new Date);if(!Object(ke.a)(e))return void alert("Invalid date format");n.value=Object(jn.a)(e,"yyyy-MM")}else if(n.options.year){let e=Object(Ce.a)(n.value,"yyyy",new Date);if(!Object(ke.a)(e))return void alert("Invalid date format");n.value=Object(jn.a)(e,"yyyy")}let r=(await Object(T.send)("rule-validate",{conditions:[n],actions:[]})).error;if(r&&r.conditionErrors.length>0){let e=Object(Pe.p)(Tn(n.field));alert(e+": "+Rn(r.conditionErrors[0]))}else e(n),a({type:"close"})}}))}var ii={backgroundColor:$.a.n10,borderRadius:4,flexDirection:"row",alignItems:"center",padding:5,paddingLeft:10,marginBottom:10,marginRight:10},ci={color:$.a.p4},si={color:$.a.p4},ui={color:$.a.n3},di={marginLeft:3},fi={width:8,height:8,color:$.a.n4};function pi({field:e,customName:t,op:n,value:r,options:a,stage:o,style:i,onDelete:c}){let s=e;return"date"===In.get(e)&&(7===r.length?s="month":4===r.length&&(s="year")),l.a.createElement(W.B,{style:[ii,i]},l.a.createElement("div",null,t?l.a.createElement(W.y,{style:ci},t):l.a.createElement(l.a.Fragment,null,l.a.createElement(W.y,{style:si},Tn(s,a))," ",l.a.createElement(W.y,{style:ui},Mn(n))," ",l.a.createElement(dr,{value:r,field:s,inline:!0}))),l.a.createElement(W.d,{bare:!0,style:di,onClick:c},l.a.createElement(Fn.a,{style:fi})))}var mi={flexDirection:"row",alignItems:"center",flexWrap:"wrap",marginTop:10,marginBottom:-5};function yi({filters:e,editingFilter:t,onDelete:n}){return l.a.createElement(W.B,{style:mi},e.map((e,r)=>l.a.createElement(pi,{customName:e.customName,field:e.field,op:e.op,value:e.value,options:e.options,editing:t===e,onDelete:()=>n(e)})))}function gi(e,t){throw new Error(t+": "+JSON.stringify(e.str.slice(e.index,10)))}function hi(e){return e.str[e.index]}function bi(e){if(e.index>=e.str.length)return null;let t=hi(e);return e.index++,t}function Oi(e,t){return hi(e)===t&&(bi(e),!0)}function wi(e){if("("===hi(e)){bi(e);let t=Ei(e);return")"!==hi(e)&&gi(e,"Unbalanced parentheses"),bi(e),t}return function(e){let t="-"===hi(e);t&&bi(e),"$"===hi(e)&&bi(e);let n="";for(;hi(e)&&hi(e).match(/[0-9,.]/);){let t=","===Object(Pe.h)().separator?".":",";hi(e)===t?bi(e):n+=bi(e)}""===n&&gi(e,"Unexpected character");let r=parseFloat(n.replace(Object(Pe.h)().separator,"."));return t?-r:r}(e)}let Ei=function(...e){return e.reduce((e,t)=>n=>{let r=e(n);for(;Oi(n,t);)r={op:t,left:r,right:e(n)};return r},wi)}("^","/","*","-","+");function vi(e,t=null){if(""===e)return t;let n;try{n=function e(t){if("number"===typeof t)return t;let n=t.left,r=t.right,a=t.op;switch(a){case"+":return e(n)+e(r);case"-":return e(n)-e(r);case"*":return e(n)*e(r);case"/":return e(n)/e(r);case"^":return Math.pow(e(n),e(r));default:throw new Error("Unknown operator: "+a)}}(function(e){let t={str:e.replace(/\s/g,""),index:0};return Ei(t)}(e))}catch(r){return t}return isNaN(n)?t:n}const ji=["width","height","style","color"];function Si(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var xi=function(e){let t=e.width,n=e.height,r=e.style,a=e.color,o=void 0===a?"black":a,i=Si(e,ji);return l.a.createElement("svg",Object.assign({width:t,height:n},i,Object(lt.css)(r),{viewBox:"0 0 91 51",version:"1.1",xmlns:"http://www.w3.org/2000/svg"}),l.a.createElement("path",{fill:o,className:"path",d:"M30.2563657,48.6143861 C30.2183019,47.790406 29.8626205,47.0158388 29.2674654,46.4614308 L10.8027839,29.0634209 L87.7179501,29.0634209 C87.8228144,29.068595 87.9281828,29.068595 88.0330471,29.0634209 C89.6171025,28.9790826 90.9828587,27.4229632 90.9004294,25.7972517 C90.818,24.1715403 89.3017535,22.7693512 87.7179501,22.8544657 L10.8027839,22.8544657 L29.2674654,5.48879403 C30.5505402,4.39032637 30.7227091,2.43243582 29.6523878,1.11587861 C28.5820665,-0.200678607 26.6743435,-0.377892537 25.3915208,0.720575124 C25.3146371,0.786286567 25.2410305,0.855878607 25.171205,0.929092537 L0.971759003,23.6952617 C-0.255102493,24.8594408 -0.330221607,26.8235403 0.803875346,28.0826647 C0.857567867,28.1424259 0.913781163,28.1998587 0.971759003,28.2549632 L25.171205,51.0211323 C25.7656039,51.5954607 26.5614127,51.8986647 27.3768837,51.8619284 C29.0458892,51.7812119 30.3347618,50.3270229 30.2563657,48.6143861 Z"}))};function Ci(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function ki(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ci(Object(n),!0).forEach(function(t){Pi(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ci(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Pi(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Ai=e=>l.a.createElement("svg",Object.assign({},e,{viewBox:"0 0 20 20",style:ki({color:"#242134"},e.style)}),l.a.createElement("path",{d:"M9.293 12.95l.707.707L15.657 8l-1.414-1.414L10 10.828 5.757 6.586 4.343 8z",fill:"currentColor"}));function Di(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Bi(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Di(Object(n),!0).forEach(function(t){Ii(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Di(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Ii(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Ti=e=>l.a.createElement("svg",Object.assign({},e,{viewBox:"0 0 24 24",style:Bi({color:"#242134"},e.style)}),l.a.createElement("g",{fill:"#000"},l.a.createElement("path",{d:"M23.962 17.457l-.82-3.297a1.287 1.287 0 0 0-1.56-.934l-3.294.823a1.286 1.286 0 0 0-.343 2.35L19 17.03A9.538 9.538 0 0 1 12 20.604a8.652 8.652 0 0 1-8.085-5.667 1.286 1.286 0 0 0-2.415.884A11.232 11.232 0 0 0 12 23.175a12.108 12.108 0 0 0 9.214-4.8l.839.503a1.286 1.286 0 0 0 1.91-1.415zM2.422 10.774l3.295-.823a1.286 1.286 0 0 0 .352-2.35l-.972-.583A9.588 9.588 0 0 1 12 3.396a8.652 8.652 0 0 1 8.085 5.667A1.286 1.286 0 0 0 22.5 8.18 11.232 11.232 0 0 0 12 .825 12.242 12.242 0 0 0 2.866 5.68l-.919-.552a1.286 1.286 0 0 0-1.91 1.414l.82 3.297a1.287 1.287 0 0 0 1.246.974 1.311 1.311 0 0 0 .32-.04z",fill:"currentColor"})));function Mi(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Ri(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Mi(Object(n),!0).forEach(function(t){_i(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Mi(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function _i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Li=e=>l.a.createElement("svg",Object.assign({},e,{viewBox:"0 0 24 24",style:Ri({color:"#242134"},e.style)}),l.a.createElement("path",{d:"M21.5 3h-2.75a.25.25 0 0 1-.25-.25V1a1 1 0 0 0-2 0v4.75a.75.75 0 0 1-.75.75.75.75 0 0 1-.75-.75V3.5a.5.5 0 0 0-.5-.5H8.25A.25.25 0 0 1 8 2.751V1a1 1 0 1 0-2 0v4.75a.75.75 0 0 1-.75.75.75.75 0 0 1-.75-.75V3.5A.5.5 0 0 0 4 3H2.5a2 2 0 0 0-2 2v17a2 2 0 0 0 2 2h19a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2zM21 22H3a.5.5 0 0 1-.5-.5v-12A.5.5 0 0 1 3 9h18a.5.5 0 0 1 .5.5v12a.5.5 0 0 1-.5.5z",fill:"currentColor"}));function Ni(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Fi(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ni(Object(n),!0).forEach(function(t){Ui(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ni(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Ui(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var zi=e=>l.a.createElement("svg",Object.assign({},e,{viewBox:"0 0 24 24",style:Fi({color:"#242134"},e.style)}),l.a.createElement("path",{d:"M12.406 14.905a1 1 0 0 0-.543 1.307 1 1 0 0 1-.217 1.09l-2.828 2.829a2 2 0 0 1-2.828 0L3.868 18.01a2 2 0 0 1 0-2.829L6.7 12.353a1.013 1.013 0 0 1 1.091-.217 1 1 0 0 0 .763-1.849 3.034 3.034 0 0 0-3.268.652l-2.832 2.828a4.006 4.006 0 0 0 0 5.657l2.122 2.121a4 4 0 0 0 5.656 0l2.829-2.828a3.008 3.008 0 0 0 .651-3.27 1 1 0 0 0-1.306-.542z",fill:"currentColor"}),l.a.createElement("path",{d:"M7.757 16.241a1.011 1.011 0 0 0 1.414 0l7.779-7.778a1 1 0 0 0-1.414-1.414l-7.779 7.778a1 1 0 0 0 0 1.414z",fill:"currentColor"}),l.a.createElement("path",{d:"M21.546 4.574l-2.121-2.121a4.006 4.006 0 0 0-5.657 0l-2.829 2.828a3.006 3.006 0 0 0-.651 3.269 1 1 0 1 0 1.849-.764 1 1 0 0 1 .217-1.086l2.828-2.828a2 2 0 0 1 2.829 0l2.121 2.121a2 2 0 0 1 0 2.829L17.3 11.645a1.015 1.015 0 0 1-1.091.217 1 1 0 0 0-.765 1.849 3.026 3.026 0 0 0 3.27-.651l2.828-2.828a4.007 4.007 0 0 0 .004-5.658z",fill:"currentColor"}));function Wi(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function $i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Wi(Object(n),!0).forEach(function(t){Gi(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Wi(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Gi(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Hi=e=>l.a.createElement("svg",Object.assign({},e,{viewBox:"0 0 24 24",style:$i({color:"#242134"},e.style)}),l.a.createElement("path",{d:"M23.119 20L13.772 2.15a2 2 0 0 0-3.543 0L.881 20a2 2 0 0 0 1.772 2.928h18.694A2 2 0 0 0 23.119 20zM11 8.423a1 1 0 0 1 2 0v6a1 1 0 1 1-2 0zm1.05 11.51h-.028a1.528 1.528 0 0 1-1.522-1.47 1.476 1.476 0 0 1 1.448-1.53h.028A1.527 1.527 0 0 1 13.5 18.4a1.475 1.475 0 0 1-1.45 1.533z",fill:"currentColor"}));function qi(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Yi(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?qi(Object(n),!0).forEach(function(t){Vi(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):qi(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Vi(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Ki=e=>l.a.createElement("svg",Object.assign({},e,{viewBox:"0 0 24 24",style:Yi({color:"#242134"},e.style)}),l.a.createElement("path",{d:"M 12 0 C 1.3084197 0 -4.0435475 12.925204 3.515625 20.484375 C 11.074797 28.043547 24 22.69158 24 12 C 23.992285 5.3757944 18.624205 0.0077147446 12 0 z M 12.009766 1.9882812 C 17.531104 1.9947115 22.005288 6.4688953 22.011719 11.990234 C 22.011719 20.90177 11.238144 25.363144 4.9375 19.0625 C -1.3631434 12.761856 3.0982293 1.9882812 12.009766 1.9882812 z M 18.244141 6.5761719 A 1 1 0 0 0 17.316406 7.0175781 L 11.089844 15.46875 L 7.0136719 12.207031 A 1.0004882 1.0004882 0 1 0 5.7636719 13.769531 L 10.652344 17.677734 A 1.011 1.011 0 0 0 12.082031 17.488281 L 18.927734 8.1992188 A 1 1 0 0 0 18.244141 6.5761719 z ",fill:"currentColor"}));function Qi(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Zi(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Qi(Object(n),!0).forEach(function(t){Ji(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Qi(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Ji(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Xi=e=>l.a.createElement("svg",Object.assign({},e,{viewBox:"0 0 24 24",style:Zi({color:"#242134"},e.style)}),l.a.createElement("path",{d:"M12 0a10.286 10.286 0 0 0-6.243 18.45 1.714 1.714 0 0 1 .672 1.36v1.619A2.571 2.571 0 0 0 9 24a1.714 1.714 0 0 0 1.714-1.714V21a1.286 1.286 0 0 1 2.572 0v1.286A1.714 1.714 0 0 0 15 24a2.571 2.571 0 0 0 2.571-2.571V19.81a1.714 1.714 0 0 1 .672-1.36A10.286 10.286 0 0 0 12 0zM7.714 12.429a2.143 2.143 0 1 1 2.143-2.143 2.143 2.143 0 0 1-2.143 2.143zm8.572 0a2.143 2.143 0 1 1 2.143-2.143 2.143 2.143 0 0 1-2.143 2.143z",fill:"currentColor"}));function ec(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function tc(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ec(Object(n),!0).forEach(function(t){nc(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ec(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function nc(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var rc=e=>l.a.createElement("svg",Object.assign({},e,{viewBox:"0 0 24 24",style:tc({color:"#242134"},e.style)}),l.a.createElement("path",{d:"M23.91 9.113a1.785 1.785 0 0 0-1.453-1.227l-6.132-.926-2.714-5.506a1.863 1.863 0 0 0-3.222 0l-2.78 5.552-6.066.88a1.798 1.798 0 0 0-1 3.068l4.428 4.361-1.028 6.055a1.797 1.797 0 0 0 2.607 1.895l5.488-2.865 5.429 2.858a1.797 1.797 0 0 0 2.607-1.895l-1.011-6.128 4.394-4.286a1.786 1.786 0 0 0 .454-1.836z",fill:"currentColor"}));function ac(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function oc(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ac(Object(n),!0).forEach(function(t){lc(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ac(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function lc(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var ic=e=>l.a.createElement("svg",Object.assign({},e,{viewBox:"0 0 24 24",style:oc({color:"#242134"},e.style)}),l.a.createElement("path",{d:"M7.176 22.5a4.111 4.111 0 0 1-3.17-1.486l-3.62-4.6a1.8 1.8 0 1 1 2.828-2.228l3.6 4.56a.384.384 0 0 0 .379.152.52.52 0 0 0 .408-.197L20.794 2.177a1.8 1.8 0 1 1 2.812 2.246L10.39 20.964A4.12 4.12 0 0 1 7.2 22.5z",fill:"currentColor"}));function cc(e){let t,n,r;switch(e){case"missed":t=$.a.r1,n=$.a.r10,r=Xi;break;case"due":t=$.a.y1,n=$.a.y9,r=Hi;break;case"upcoming":t=$.a.p1,n=$.a.p10,r=Li;break;case"paid":t=$.a.g2,n=$.a.g10,r=ic;break;case"completed":t=$.a.n4,n=$.a.n11,r=rc;break;case"pending":t=$.a.g4,n=$.a.g11,r=Li;break;case"scheduled":t=$.a.n1,n=$.a.n11,r=Li;break;case"cleared":t=$.a.g5,n=$.a.n11,r=Qt;break;default:t=$.a.n1,n=$.a.n11,r=Ki}return{color:t,backgroundColor:n,Icon:r}}var sc={width:13,height:13,color:"inherit",marginRight:7},uc={lineHeight:"1em"};function dc({status:e,style:t}){let n=cc(e),r=n.color,a=n.backgroundColor,o=n.Icon;return l.a.createElement(W.B,{style:[{color:r,backgroundColor:a,padding:"6px 8px",borderRadius:4,flexDirection:"row",alignItems:"center",flexShrink:0},t]},l.a.createElement(o,{style:sc}),l.a.createElement(W.y,{style:uc},Object(Pe.p)(e)))}const fc=["debit","credit","date"];function pc(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return mc(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return mc(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function mc(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function yc(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function gc(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function hc(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?gc(Object(n),!0).forEach(function(t){bc(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):gc(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function bc(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Oc(e,t,n){let r=e.amount,a=e.date;is(e.id)&&(r=be(r));let o=r<0?-r:null,l=r>0?r:null;return 0===r&&(t?l=0:o=0),Object(ke.a)(Object(Gn.a)(a))||(a=null),hc(hc({},e),{},{date:a,debit:null!=o?Object(Pe.k)(o):"",credit:null!=l?Object(Pe.k)(l):""})}function wc(e,t){let n=e[t],r=t;for(;r>=0;){if(e[r].id===n.parent_id)return e[r];r--}return null}function Ec(e,t){let n=e[t];return n&&n.is_child&&(null==e[t+1]||e[t+1].parent_id!==n.parent_id)}let vc=l.a.createContext(null);function jc(){let e=Object(o.useContext)(vc);return Object(o.useMemo)(()=>hc(hc({},e),{},{expanded:t=>"collapse"===e.state.mode?!e.state.ids.has(t):e.state.ids.has(t)}),[e])}function Sc({children:e,initialMode:t="expand"}){let n=Object(s.d)(e=>e.app.lastSplitState),r=Object(s.c)(),a=pc(Object(o.useReducer)((e,t)=>{switch(t.type){case"toggle-split":{let n=new Set([...e.ids]),r=t.id;return n.has(r)?n.delete(r):n.add(r),hc(hc({},e),{},{ids:n})}case"open-split":{let n=new Set([...e.ids]),r=t.id;return"collapse"===e.mode?n.delete(r):n.add(r),hc(hc({},e),{},{ids:n})}case"set-mode":return hc(hc({},e),{},{mode:t.mode,ids:new Set,transitionId:null});case"switch-mode":return null!=e.transitionId?e:hc(hc({},e),{},{mode:"expand"===e.mode?"collapse":"expand",transitionId:t.id,ids:new Set});case"finish-switch-mode":return hc(hc({},e),{},{transitionId:null});default:throw new Error("Unknown action type: "+t.type)}},n.current||{ids:new Set,mode:t}),2),i=a[0],c=a[1];Object(o.useEffect)(()=>{null!=i.transitionId&&setTimeout(()=>{c({type:"finish-switch-mode"})},250)},[i.transitionId]),Object(o.useEffect)(()=>{null==i.transitionId&&r({type:"SET_LAST_SPLIT_STATE",splitState:i})},[i]);let u=Object(o.useMemo)(()=>({state:i,dispatch:c}),[i,c]);return l.a.createElement(vc.Provider,{value:u},e)}var xc={color:$.a.n4,fontWeight:300,zIndex:200};const Cc=l.a.memo(({hasSelected:e,showAccount:t,showCategory:n,showBalance:r})=>{let a=Object(Pt.d)();return l.a.createElement(kt.h,{borderColor:$.a.n9,backgroundColor:"white",style:xc},l.a.createElement(kt.i,{exposed:!0,focused:!1,selected:e,width:20,onSelect:()=>a({type:"select-all"})}),l.a.createElement(kt.a,{value:"Date",width:110}),t&&l.a.createElement(kt.a,{value:"Account",width:"flex"}),l.a.createElement(kt.a,{value:"Payee",width:"flex"}),l.a.createElement(kt.a,{value:"Notes",width:"flex"}),n&&l.a.createElement(kt.a,{value:"Category",width:"flex"}),l.a.createElement(kt.a,{value:"Payment",width:80,textAlign:"right"}),l.a.createElement(kt.a,{value:"Deposit",width:80,textAlign:"right"}),r&&l.a.createElement(kt.a,{value:"Balance",width:85,textAlign:"right"}),l.a.createElement(kt.e,{width:21,truncate:!1}),l.a.createElement(kt.a,{value:"",width:15+$.c.scrollbarWidth}))});var kc={flexDirection:"row",alignItems:"center"},Pc={marginRight:5,flexShrink:0};var Ac={padding:1},Dc={visibility:"hidden"};function Bc({id:e,focused:t,selected:n,status:r,isChild:a,onEdit:o,onUpdate:i}){let c="cleared"===r||null==r,s=cc(r),u={color:"cleared"===r?$.a.g5:"missed"===r?$.a.r6:"due"===r?$.a.y5:n?$.a.b7:$.a.n7};return l.a.createElement(kt.a,{name:"cleared",width:"auto",focused:t,style:Ac,plain:!0},l.a.createElement(kt.b,{style:[{padding:3,border:"1px solid transparent",borderRadius:50,":focus":{border:"1px solid "+u.color,boxShadow:`0 1px 2px ${u.color}`},cursor:c?"pointer":"default"},a&&Dc],onEdit:()=>o(e,"cleared"),onSelect:function(){c&&i("cleared",!("cleared"===r))}},l.a.createElement(s.Icon,{style:{width:13,height:13,color:u.color,marginTop:"due"===r?-1:0}})))}var Ic={color:$.a.n8};function Tc({id:e,payeeId:t,focused:n,inherited:r,payees:a,accounts:i,valueStyle:c,transaction:s,payee:u,transferAcct:d,importedPayee:f,isPreview:p,onEdit:m,onUpdate:y,onCreatePayee:g,onManagePayees:h}){let b=Object(o.useRef)(!1);return l.a.createElement(kt.c,{width:"flex",name:"payee",value:t,valueStyle:[c,r&&Ic],formatter:e=>(function(e,t,n){let r=e.payee;if(n){const t=e.amount>0?xi:Kn;return l.a.createElement(W.B,{style:kc},l.a.createElement(t,{width:10,height:8,style:Pc}),l.a.createElement("div",null,n.name))}return t&&!t.transfer_acct?t.name:r&&r.startsWith("new:")?r.slice("new:".length):""})(s,u,d),exposed:n,title:f||t,onExpose:!p&&(t=>m(e,t)),onUpdate:async e=>{if(y("payee",e),e&&e.startsWith("new:")&&!b.current){b.current=!0;let t=await g(e.slice("new:".length));y("payee",t),b.current=!1}}},({onBlur:e,onKeyDown:n,onUpdate:r,onSave:o,shouldSaveFromKey:c,inputStyle:u})=>l.a.createElement(l.a.Fragment,null,l.a.createElement(zo,{payees:a,accounts:i,value:t,shouldSaveFromKey:c,inputProps:{onBlur:e,onKeyDown:n,style:u},showManagePayees:!0,tableBehavior:!0,defaultFocusTransferPayees:s.is_child,focused:!0,onUpdate:r,onSelect:o,onManagePayees:()=>h(t)})))}var Mc={flex:1,flexDirection:"row",alignItems:"stretch"};function Rc({scheduleId:e,children:t}){let n=xe().schedules.find(t=>t.id===e);if(null==n)return t;let r=n._date&&!!n._date.frequency,a={width:13,height:13,marginLeft:5,marginRight:3,color:"inherit"};var o=hc(hc({},a),{},{transform:"translateY(-1px)"});return l.a.createElement(W.B,{style:Mc},l.a.createElement(kt.a,{exposed:!0},()=>r?l.a.createElement(Ti,{style:a}):l.a.createElement(Li,{style:o})),t)}var _c={color:$.a.n5,fontStyle:"italic"},Lc={opacity:.5},Nc={width:110,backgroundColor:$.a.n11,borderBottomWidth:0},Fc={flex:1,backgroundColor:$.a.n11,opacity:0},Uc={borderLeftWidth:1},zc={lineHeight:0},Wc={borderLeftWidth:1},$c={width:13,height:13,color:$.a.n7},Gc={alignItems:"flex-start"},Hc={padding:0},qc={alignSelf:"flex-start",color:$.a.n6,borderRadius:4,transition:"none","&:hover":{backgroundColor:"rgba(100, 100, 100, .15)",color:$.a.n5}},Yc={flexDirection:"row",alignItems:"center",alignSelf:"stretch",borderRadius:4,flex:1,padding:4},Vc={fontStyle:"italic",userSelect:"none"},Kc={fontStyle:"italic",color:"#c0c0c0",fontWeight:300},Qc={fontStyle:"italic",fontWeight:300,color:$.a.p8},Zc={fontStyle:"italic"},Jc={fontStyle:"italic"};const Xc=l.a.memo(function(e){let t=e.transaction,n=e.editing,r=e.backgroundColor,a=void 0===r?"white":r,i=e.showAccount,c=e.showBalance,s=e.showZeroInDeposit,u=e.style,d=e.hovered,f=e.selected,p=e.highlighted,m=e.added,y=e.matched,g=e.expanded,b=e.inheritedFields,O=e.focusedField,w=e.categoryGroups,E=e.payees,v=e.accounts,j=e.balance,S=e.dateFormat,x=void 0===S?"MM/dd/yyyy":S,C=e.onSave,k=e.onEdit,P=e.onHover,A=e.onDelete,D=e.onSplit,B=e.onManagePayees,I=e.onCreatePayee,T=e.onToggleSplit,M=Object(Pt.d)(),R=pc(Object(o.useState)(s),2),_=R[0],L=R[1],N=pc(Object(o.useState)(t),2),F=N[0],U=N[1],z=pc(Object(o.useState)(Oc(t,s)),2),G=z[0],H=z[1],q=is(G.id);function Y(e,n){if(G[e]!==n){let r=hc(hc({},G),{},{[e]:n});if("account"===e&&n&&Object(h.b)(v)[n].offbudget&&(r.category=null),"credit"===e?r.debit="":"debit"===e&&(r.credit=""),"payee"===e&&n&&n.startsWith("new:"))H(r);else{let e=function(e,t,n){let r,a=e.debit,o=e.credit,l=e.date,i=yc(e,fc);if(""!==a){let e=vi(a,null);r=null!=e?-e:null}else r=vi(o,null);return r=null!=r?Object(Pe.b)(r):t.amount,null==l&&(l=t.date||Object(de.c)()),hc(hc({},i),{},{date:l,amount:r})}(r,t);H(Oc(e,s)),C(e)}}}t===F&&s===_||(H(Oc(t,s)),U(t),L(s));let V=G.id,K=G.debit,Q=G.credit,Z=G.payee,J=G.imported_payee,X=G.notes,ee=G.date,te=G.account,ne=G.category,re=G.cleared,ae=G.is_parent,oe=G._unmatched,le=void 0!==oe&&oe,ie=E&&Z&&Object(h.e)(E)[Z],ce=v&&te&&Object(h.b)(v)[te],se=ie&&ie.transfer_acct&&Object(h.b)(v)[ie.transfer_acct],ue=G.is_child,fe=f?$.a.b8:$.a.border,pe=se&&0===se.offbudget,me=ce&&1===ce.offbudget,ye=m?{fontWeight:600}:null,ge=d||"select"===O;var he={color:"missed"===X?$.a.r6:"due"===X?$.a.y4:f?$.a.b5:$.a.n6,backgroundColor:"missed"===X?$.a.r10:"due"===X?$.a.y9:f?$.a.b8:$.a.n10,margin:"0 5px",padding:"3px 7px",borderRadius:4};return l.a.createElement(kt.h,{borderColor:fe,backgroundColor:f?$.a.selected:ge?$.a.hover:q?"#fcfcfc":a,highlighted:p,style:[u,q&&_c,le&&Lc],onMouseEnter:()=>P&&P(G.id)},ue&&l.a.createElement(kt.e,{borderColor:"transparent",width:110,style:Nc}),ue&&i&&l.a.createElement(kt.e,{borderColor:"transparent",style:Fc}),ls(G.id)?ue?l.a.createElement(kt.d,{onDelete:()=>A&&A(G.id),exposed:d||n,style:[ue&&Uc,zc]}):l.a.createElement(kt.a,{width:20}):l.a.createElement(kt.i,{exposed:d||f||n,focused:"select"===O,onSelect:()=>{M({type:"select",id:G.id})},onEdit:()=>k(V,"select"),selected:f,style:[ue&&Wc],value:y&&l.a.createElement(zi,{style:$c})}),!ue&&l.a.createElement(kt.c,{name:"date",width:110,exposed:"date"===O,value:ee,valueStyle:ye,formatter:e=>e?Object(jn.a)(Object(Gn.a)(e),x):"",onExpose:!q&&(e=>k(V,e)),onUpdate:e=>{Y("date",e)}},({onBlur:e,onKeyDown:t,onUpdate:n,onSave:r,shouldSaveFromKey:a,inputStyle:o})=>l.a.createElement(go.a,{value:ee||"",dateFormat:x,inputProps:{onBlur:e,onKeyDown:t,style:o},shouldSaveFromKey:a,tableBehavior:!0,onUpdate:n,onSelect:r})),!ue&&i&&l.a.createElement(kt.c,{name:"account",width:"flex",value:te,formatter:e=>{let t=e&&Object(h.b)(v)[e];return t?t.name:""},valueStyle:ye,exposed:"account"===O,onExpose:!q&&(e=>k(V,e)),onUpdate:async e=>{e&&Y("account",e)}},({onBlur:e,onKeyDown:t,onUpdate:n,onSave:r,shouldSaveFromKey:a,inputStyle:o})=>l.a.createElement(Za,{value:te,accounts:v,shouldSaveFromKey:a,tableBehavior:!0,focused:!0,inputProps:{onBlur:e,onKeyDown:t,style:o},onUpdate:n,onSelect:r})),(()=>{let e=l.a.createElement(Tc,{id:V,payeeId:Z,focused:"payee"===O,inherited:b&&b.has("payee"),payees:E,accounts:v,valueStyle:ye,transaction:G,payee:ie,transferAcct:se,importedPayee:J,isPreview:q,onEdit:k,onUpdate:Y,onCreatePayee:I,onManagePayees:B});return G.schedule?l.a.createElement(Rc,{scheduleId:G.schedule},e):e})(),q?l.a.createElement(kt.a,{name:"notes",width:"flex"}):l.a.createElement(kt.f,{width:"flex",name:"notes",exposed:"notes"===O,focused:"notes"===O,value:X||"",valueStyle:ye,onExpose:!q&&(e=>k(V,e)),inputProps:{value:X||"",onUpdate:Y.bind(null,"notes")}}),q?l.a.createElement(kt.a,{width:"flex",style:Gc,exposed:!0},()=>l.a.createElement(W.B,{style:he},Object(Pe.p)(X))):ae?l.a.createElement(kt.a,{name:"category",width:"flex",focused:"category"===O,style:Hc,plain:!0},l.a.createElement(kt.b,{style:qc,disabled:ls(G.id),onEdit:()=>k(V,"category"),onSelect:()=>T(V)},l.a.createElement(W.B,{style:Yc},ae&&l.a.createElement(Ai,{style:{width:14,height:14,color:"currentColor",transition:"transform .08s",transform:g?"rotateZ(0)":"rotateZ(-90deg)"}}),l.a.createElement(W.y,{style:Vc},"Split")))):pe||me||q?l.a.createElement(kt.f,{name:"category",width:"flex",exposed:"category"===O,focused:"category"===O,onExpose:!q&&(e=>k(V,e)),value:ae?"Split":me?"Off Budget":pe?"Transfer":"",valueStyle:ye,style:Kc,inputProps:{readOnly:!0,style:{fontStyle:"italic"}}}):l.a.createElement(kt.c,{name:"category",width:"flex",value:ne,formatter:e=>e?function(e,t){return e?e[t]:""}(Object(h.d)(w)[e],"name"):G.id?"Categorize":"",exposed:"category"===O,onExpose:e=>k(V,e),valueStyle:ne?ye:Qc,onUpdate:async e=>{"split"===e?D(G.id):Y("category",e)}},({onBlur:e,onKeyDown:t,onUpdate:n,onSave:r,shouldSaveFromKey:a,inputStyle:o})=>l.a.createElement(yo,{categoryGroups:w,value:ne,focused:!0,tableBehavior:!0,showSplitOption:!ue&&!ae,shouldSaveFromKey:a,inputProps:{onBlur:e,onKeyDown:t,style:o},onUpdate:n,onSelect:r})),l.a.createElement(kt.f,{type:"input",width:80,name:"debit",exposed:"debit"===O,focused:"debit"===O,value:null==K?"":K,valueStyle:ye,textAlign:"right",title:K,onExpose:!q&&(e=>k(V,e)),style:[ae&&Zc,$.c.tnum],inputProps:{value:K,onUpdate:Y.bind(null,"debit")}}),l.a.createElement(kt.f,{type:"input",width:80,name:"credit",exposed:"credit"===O,focused:"credit"===O,value:null==Q?"":Q,valueStyle:ye,textAlign:"right",title:Q,onExpose:!q&&(e=>k(V,e)),style:[ae&&Jc,$.c.tnum],inputProps:{value:Q,onUpdate:Y.bind(null,"credit")}}),c&&l.a.createElement(kt.a,{name:"balance",value:null==j||ue||q?"":Object(Pe.k)(j),valueStyle:{color:j<0?$.a.r4:$.a.g4},style:$.c.tnum,width:85,textAlign:"right"}),l.a.createElement(Bc,{id:V,focused:"cleared"===O,selected:f,isPreview:q,status:q?X:re?"cleared":null,isChild:ue,onEdit:k,onUpdate:Y}),l.a.createElement(kt.a,{width:15}))});var es={flexDirection:"row",alignItems:"center",padding:"0 5px"},ts={fontWeight:500},ns={flex:1},rs={marginLeft:15,padding:"4px 10px"};function as({error:e,isDeposit:t,onAddSplit:n,style:r}){switch(e.type){case"SplitTransactionError":if(1===e.version)return l.a.createElement(W.B,{style:[es,r],"data-testid":"transaction-error"},l.a.createElement(W.y,null,"Amount left:"," ",l.a.createElement(W.y,{style:ts},Object(Pe.k)(t?e.difference:-e.difference))),l.a.createElement(W.B,{style:ns}),l.a.createElement(W.d,{style:rs,primary:!0,onClick:n},"Add Split"));break;default:return null}}function os(e,t){return[{id:"temp",date:t||Object(de.c)(),account:e||null,cleared:!1,amount:0}]}function ls(e){return-1!==e.indexOf("temp")}function is(e){return-1!==e.indexOf("preview/")}var cs={borderBottom:"1px solid #ebebeb",paddingBottom:6,backgroundColor:"white"},ss={marginTop:-1},us={flexDirection:"row",alignItems:"center",justifyContent:"flex-end",marginTop:6,marginRight:20},ds={marginRight:10,padding:"4px 10px"},fs={padding:"4px 10px"};function ps({transactions:e,accounts:t,currentAccountId:n,categoryGroups:r,payees:a,editingTransaction:o,hoveredTransaction:i,focusedField:c,showAccount:s,showCategory:u,showBalance:d,dateFormat:f,onHover:p,onClose:m,onSplit:y,onEdit:g,onDelete:h,onSave:b,onAdd:O,onAddSplit:w,onManagePayees:E,onCreatePayee:v}){const j=e[0].error,S=e[0].amount>0;return l.a.createElement(W.B,{style:cs,"data-testid":"new-transaction",onKeyDown:e=>{27===e.keyCode&&m()},onMouseLeave:()=>p(null)},e.map((e,n)=>l.a.createElement(Xc,{key:e.id,editing:o===e.id,hovered:i===e.id,transaction:e,showAccount:s,showCategory:u,showBalance:d,focusedField:o===e.id&&c,showZeroInDeposit:S,accounts:t,categoryGroups:r,payees:a,dateFormat:f,expanded:!0,onHover:p,onEdit:g,onSave:b,onSplit:y,onDelete:h,onAdd:O,onManagePayees:E,onCreatePayee:v,style:ss})),l.a.createElement(W.B,{style:us},l.a.createElement(W.d,{style:ds,onClick:()=>m(),"data-testid":"cancel-button"},"Cancel"),j?l.a.createElement(as,{error:j,isDeposit:S,onAddSplit:()=>w(e[0].id)}):l.a.createElement(W.d,{style:fs,primary:!0,onClick:O,"data-testid":"add-button"},"Add")))}var ms={transform:"translate(-5px, 2px)"},ys={flex:1,cursor:"default"},gs={flex:1,overflow:"hidden"},hs={position:"absolute",top:-20,left:0,right:0,height:20,backgroundColor:"red",boxShadow:"0 0 6px rgba(0, 0, 0, .20)"};class bs extends l.a.Component{constructor(...e){super(...e),this.container=l.a.createRef(),this.state={highlightedRows:null},this.renderRow=(({item:e,index:t,position:n,editing:r,focusedFied:a,onEdit:o})=>{const i=this.state.highlightedRows,c=this.props,s=c.transactions,u=c.selectedItems,d=c.hoveredTransaction,f=c.accounts,p=c.categoryGroups,m=c.payees,y=c.showAccount,g=c.showCategory,h=c.balances,b=c.dateFormat,O=void 0===b?"MM/dd/yyyy":b,w=c.tableNavigator,E=c.isNew,v=c.isMatched,j=c.isExpanded;let S=e,x=d===S.id,C=u.has(S.id),k=!C&&!!i&&i.has(S.id),P=this.getParent(S,t),A=P&&P.amount>0,D=j&&j((P||S).id),B=D&&P&&P.error||S.error;return l.a.createElement(l.a.Fragment,null,(!D||Ec(s,t))&&B&&"SplitTransactionError"===B.type&&l.a.createElement(W.A,{position:"bottom-right",width:250,forceTop:n,forceLayout:!0,style:ms},l.a.createElement(as,{error:B,isDeposit:A,onAddSplit:()=>this.props.onAddSplit(S.id)})),l.a.createElement(Xc,{editing:r,transaction:S,showAccount:y,showCategory:g,showBalance:!!h,hovered:x,selected:C,highlighted:k,added:E&&E(S.id),expanded:j&&j(S.id),matched:v&&v(S.id),showZeroInDeposit:A,balance:h&&h[S.id]&&h[S.id].balance,focusedField:r&&w.focusedField,accounts:f,categoryGroups:p,payees:m,inheritedFields:P&&P.payee===S.payee?new Set(["payee"]):new Set,dateFormat:O,onHover:this.props.onHover,onEdit:w.onEdit,onSave:this.props.onSave,onDelete:this.props.onDelete,onSplit:this.props.onSplit,onManagePayees:this.props.onManagePayees,onCreatePayee:this.props.onCreatePayee,onToggleSplit:this.props.onToggleSplit}))})}componentDidMount(){this.highlight=(e=>{this.setState({highlightedRows:new Set(e)},()=>{this.setState({highlightedRows:null})})})}componentWillReceiveProps(e){!this.props.isAdding&&e.isAdding&&this.props.newNavigator.onEdit("temp","date")}componentDidUpdate(){this._cachedParent=null}getParent(e,t){let n=this.props.transactions;return this._cachedParent&&this._cachedParent.id===e.parent_id?this._cachedParent:e.parent_id?(this._cachedParent=wc(n,t),this._cachedParent):null}render(){let e=this.props,t=e.tableNavigator,n=e.tableRef,r=e.dateFormat,a=void 0===r?"MM/dd/yyyy":r,o=e.newNavigator,i=e.renderEmpty,c=e.onHover,s=e.onScroll;return l.a.createElement(W.B,{innerRef:this.container,style:[ys,e.style]},l.a.createElement(W.B,null,l.a.createElement(Cc,{hasSelected:e.selectedItems.size>0,showAccount:e.showAccount,showCategory:e.showCategory,showBalance:!!e.balances}),e.isAdding&&l.a.createElement(W.B,o.getNavigatorProps({onKeyDown:t=>e.onCheckNewEnter(t)}),l.a.createElement(ps,{transactions:e.newTransactions,editingTransaction:o.editingId,hoveredTransaction:e.hoveredTransaction,focusedField:o.focusedField,accounts:e.accounts,currentAccountId:e.currentAccountId,categoryGroups:e.categoryGroups,payees:this.props.payees||[],showAccount:e.showAccount,showCategory:e.showCategory,showBalance:!!e.balances,dateFormat:a,onClose:e.onCloseAddTransaction,onAdd:this.props.onAddTemporary,onAddSplit:this.props.onAddSplit,onSplit:this.props.onSplit,onEdit:o.onEdit,onSave:this.props.onSave,onDelete:this.props.onDelete,onHover:this.props.onHover,onManagePayees:this.props.onManagePayees,onCreatePayee:this.props.onCreatePayee}))),l.a.createElement(W.B,{style:[gs],"data-testid":"transaction-table",onMouseLeave:()=>c(null)},l.a.createElement(kt.l,{navigator:t,ref:n,items:e.transactions,renderItem:this.renderRow,renderEmpty:i,loadMore:e.loadMoreTransactions,isSelected:t=>e.selectedItems.has(t),onKeyDown:t=>e.onCheckEnter(t),onScroll:s}),e.isAdding&&l.a.createElement("div",{key:"shadow",style:hs})))}}let Os=l.a.forwardRef((e,t)=>{let n=pc(Object(o.useState)(null),2),r=n[0],a=n[1],i=pc(Object(o.useState)(e.hoveredTransaction),2),c=i[0],s=i[1],u=pc(Object(o.useState)(!1),2),d=u[0],f=u[1],p=jc(),m=Object(o.useRef)(null),y=Object(o.useRef)(null),g=function(e,t){return Object(o.useMemo)(()=>(function(n){[e,t].forEach(e=>{"function"===typeof e?e(n):null!=e&&(e.current=n)})}),[e,t])}(y,t),h=Object(o.useMemo)(()=>{let t;if(null!=p.state.transitionId){let n=e.transactions.findIndex(e=>e.id===p.state.transitionId);t=e.transactions.filter((e,t)=>{if(e.parent_id){if(t>=n)return p.expanded(e.parent_id);if(m.current)return m.current.expanded(e.parent_id)}return!0})}else m.current&&null!=m.current.state.transitionId&&(y.current.anchor(),y.current.setRowAnimation(!1)),m.current=p,t=e.transactions.filter(e=>!e.parent_id||p.expanded(e.parent_id));return m.current=p,t},[e.transactions,p]);Object(o.useEffect)(()=>{y.current.isAnchored()&&(y.current.unanchor(),y.current.setRowAnimation(!0))},[m.current]);let b=Object(kt.o)(r,k),O=Object(kt.o)(h,k),w=Object(o.useRef)(!1),E=Object(o.useRef)({newTransactions:r,newNavigator:b,tableNavigator:O}),v=Object(o.useRef)(!1),j=Object(o.useRef)(!1),S=pc(Object(o.useState)({}),2),x=(S[0],S[1]),C=Object(Pt.e)();function k(t){let n=["select","date","account","payee","notes","category","debit","credit","cleared"];return n=t.is_child?["select","payee","notes","category","debit","credit"]:n.filter(t=>(e.showAccount||"account"!==t)&&(e.showCategory||"category"!==t)),is(t.id)&&(n=["select","cleared"]),ls(t.id)&&(n=n.slice(1)),n}function P(t){v.current?j.current=t:t(e)}Object(o.useLayoutEffect)(()=>{E.current={newTransactions:r,newNavigator:b,tableNavigator:O,transactions:e.transactions}}),d!==e.isAdding&&(!d&&e.isAdding&&a(os(e.currentAccountId)),f(e.isAdding)),Object(o.useEffect)(()=>{if(w.current){if(null==r[0].account)e.addNotification({type:"error",message:"Account is a required field"}),b.onEdit("temp","account");else{let t=E.current.newTransactions,n=t.length>0?t[0].date:null;a(os(e.currentAccountId,n)),b.onEdit("temp","date"),e.onAdd(t)}w.current=!1}}),Object(o.useEffect)(()=>{v.current&&j.current&&(j.current(e),j.current=null),v.current=!1},[r,e.transactions]);let A=Object(o.useCallback)(()=>{w.current=!0,x({})},[e.onAdd,b.onEdit]),D=Object(o.useCallback)(async t=>{if(v.current=!0,ls(t.id)){e.onApplyRules&&(t=await e.onApplyRules(t));let n=E.current.newTransactions;a(tt(n,t).data)}else e.onSave(t)},[e.onSave]),B=Object(o.useCallback)(e=>{s(e)},[]),I=Object(o.useCallback)(e=>{if(ls(e)){let t=E.current.newTransactions;if(e===t[0].id)return;a(nt(t,e).data)}},[]),T=Object(o.useMemo)(()=>t=>{if(ls(t)){let e=E.current.newNavigator,n=rt(E.current.newTransactions,t),r=n.data,o=n.diff;a(r),e.onEdit(o.added[0].id,E.current.newNavigator.focusedField)}else{let n=E.current.transactions.find(e=>e.id===t),r=e.onSplit(t);p.dispatch({type:"open-split",id:n.id});let a=E.current.tableNavigator;null==n.amount?a.onEdit(n.id,"debit"):a.onEdit(r,a.focusedField)}},[e.onSplit,p.dispatch]),M=Object(o.useCallback)(t=>{if(ls(t)){let e=et(E.current.newTransactions,t),n=e.data,r=e.diff;a(n),b.onEdit(r.added[0].id,E.current.newNavigator.focusedField)}else{let n=e.onAddSplit(t);O.onEdit(n,E.current.tableNavigator.focusedField)}},[e.onAddSplit]);let R=Object(o.useCallback)(e=>p.dispatch({type:"toggle-split",id:e}),[p.dispatch]);return l.a.createElement(bs,Object.assign({tableRef:g},e,{transactions:h,selectedItems:C,hoveredTransaction:c,isExpanded:p.expanded,onHover:B,onSave:D,onDelete:I,onSplit:T,onCheckNewEnter:function(e){if(13===e.keyCode)if(e.metaKey)e.stopPropagation(),A();else if(!e.shiftKey){function t(e){let t=e.current.newTransactions;return t[t.length-1]}b.editingId===t(E).id&&e.stopPropagation(),P(()=>{let e=t(E),n=e.parent_id||e.is_parent;E.current.newTransactions[0].error&&b.editingId===e.id?M(e.id):"debit"!==b.focusedField&&"credit"!==b.focusedField&&"cleared"!==b.focusedField||b.editingId!==e.id||n&&e.error||A()})}},onCheckEnter:function(e){if(13===e.keyCode&&!e.shiftKey){let t=O.editingId,n=O.focusedField;P(r=>{let a=E.current.transactions,o=a.findIndex(e=>e.id===t),l=wc(a,o);Ec(a,o)&&l&&l.error&&"select"!==n&&(e.stopPropagation(),M(t))})}},onAddTemporary:A,onAddSplit:M,onCloseAddTransaction:function(){a(os(e.currentAccountId)),e.onCloseAddTransaction()},onToggleSplit:R,newTransactions:r,tableNavigator:O,newNavigator:b}))});function ws(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Es(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ws(Object(n),!0).forEach(function(t){vs(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ws(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function vs(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}async function js(e){let t=await Object(T.send)("transactions-batch-update",Es(Es({},e),{},{learnCategories:!0}));return t.length>0?{updates:t}:{}}async function Ss(e,t,n){let r=await js(e);n(function(e,t){return Ze(Object(Pe.c)(t,Je(e)))}(t.newTransaction,r),Object(Pe.c)(r,t.data))}var xs={backgroundColor:"white"};function Cs({tableRef:e,transactions:t,allTransactions:n,loadMoreTransactions:r,account:a,accounts:i,categoryGroups:c,payees:s,balances:d,showAccount:f,headerContent:p,animated:m,isAdding:y,isNew:g,isMatched:h,isFiltered:b,dateFormat:O,addNotification:w,renderEmpty:E,onChange:v,onRefetch:j,onCloseAddTransaction:S,onCreatePayee:x}){let C=Object(o.useRef)(),k=Object(u.g)();Object(o.useLayoutEffect)(()=>{C.current=t},[t]);let P=Object(o.useCallback)(async e=>{e=at(e),await js({added:e}),j()},[]),A=Object(o.useCallback)(async e=>{let t=tt(C.current,e);if(t.diff.updated.length>0){!!t.diff.updated[0].date?(t.diff.updated[0].sort_order=Date.now(),await js(t.diff),j()):(v(t.newTransaction,t.data),Ss(t.diff,t,v))}},[]),D=Object(o.useCallback)(e=>{const t=et(C.current,e);return v(t.newTransaction,t.data),Ss(t.diff,t,v),t.diff.added[0].id},[]),B=Object(o.useCallback)(e=>{const t=rt(C.current,e);return v(t.newTransaction,t.data),Ss(t.diff,t,v),t.diff.added[0].id},[]),I=Object(o.useCallback)(async e=>{let t=await Object(T.send)("rules-run",{transaction:e}),n=Object(Pe.g)(e,t),r=Es({},e);return n&&Object.keys(n).forEach(e=>{null!=r[e]&&""!==r[e]&&0!==r[e]||(r[e]=n[e])}),r},[]),M=Object(o.useCallback)(e=>{k.push("/payees",{selectedPayee:e})},[k]);return l.a.createElement(Os,{ref:e,transactions:n,loadMoreTransactions:r,accounts:i,categoryGroups:c,payees:s,balances:d,showAccount:f,showCategory:!0,animated:m,currentAccountId:a&&a.id,isAdding:y,isNew:g,isMatched:h,isFiltered:b,dateFormat:O,addNotification:w,headerContent:p,renderEmpty:E,onSave:A,onApplyRules:I,onSplit:B,onCloseAddTransaction:S,onAdd:P,onAddSplit:D,onManagePayees:M,onCreatePayee:x,style:xs})}function ks(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return Ps(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Ps(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ps(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function As(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Ds(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?As(Object(n),!0).forEach(function(t){Bs(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):As(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Bs(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Is={backgroundColor:"white",flex:1,alignItems:"center",borderTopWidth:1,borderColor:$.a.n9},Ts={width:550,marginTop:75,fontSize:15,alignItems:"center"},Ms={textAlign:"center",lineHeight:"1.4em"},Rs={marginTop:20},_s={marginTop:20,fontSize:13,color:$.a.n5};function Ls({onAdd:e}){return l.a.createElement(W.B,{style:Is},l.a.createElement(W.B,{style:Ts},l.a.createElement(W.y,{style:Ms},"For Actual to be useful, you need to ",l.a.createElement("strong",null,"add an account"),". You can link an account to automatically download transactions, or manage it locally yourself."),l.a.createElement(W.d,{primary:!0,style:Rs,onClick:e},"Add account"),l.a.createElement(W.B,{style:_s},"In the future, you can add accounts from the sidebar.")))}var Ns=Ds(Ds({flexDirection:"row",alignSelf:"center",backgroundColor:"white"},$.c.shadow),{},{borderRadius:4,marginTop:5,marginBottom:15,padding:10}),Fs={flexDirection:"row",alignItems:"center"},Us={color:$.a.g4,flex:1,flexDirection:"row",alignItems:"center",justifyContent:"center"},zs={width:13,height:13,color:$.a.g5,marginRight:3},Ws={color:$.a.n3},$s={fontStyle:"italic",textAlign:"center"},Gs={fontWeight:700},Hs={marginLeft:15},qs={marginLeft:15};function Ys({balanceQuery:e,targetBalance:t,onDone:n,onCreateTransaction:r}){let a=Object(Ct.a)({name:e.name+"-cleared",value:0,query:e.query.filter({cleared:!0})}),o=t-a;return l.a.createElement(W.B,{style:Ns},l.a.createElement(W.B,{style:Fs},0===o?l.a.createElement(W.B,{style:Us},l.a.createElement(Qt,{style:zs}),"All reconciled!"):l.a.createElement(W.B,{style:Ws},l.a.createElement(W.y,{style:$s},"Your cleared balance"," ",l.a.createElement("strong",null,Object(jt.a)(a,"financial"))," needs"," ",l.a.createElement("strong",null,(o>0?"+":"")+Object(jt.a)(o,"financial"))," ","to match",l.a.createElement("br",null)," your bank","'","s balance of"," ",l.a.createElement(W.y,{style:Gs},Object(jt.a)(t,"financial")))),l.a.createElement(W.B,{style:Hs},l.a.createElement(W.d,{primary:!0,onClick:n},"Done Reconciling")),0!==o&&l.a.createElement(W.B,{style:qs},l.a.createElement(W.d,{onClick:()=>r(o)},"Create Reconciliation Transation"))))}var Vs={padding:"5px 8px"},Ks={margin:"7px 0"};function Qs({account:e,onReconcile:t,onClose:n}){let r=Object(Ct.a)(Ie(e));return l.a.createElement(W.A,{position:"bottom-right",width:275,onClose:n},l.a.createElement(W.B,{style:Vs},l.a.createElement(W.y,null,"Enter the current balance of your bank account that you want to reconcile with:"),l.a.createElement("form",{onSubmit:function(e){let a=e.target.elements[0],o=Object(Pe.e)(a.value);t(null==o?r:o),n()}},null!=r&&l.a.createElement(W.l,null,l.a.createElement(W.n,{defaultValue:Object(jt.a)(r,"financial"),style:Ks})),l.a.createElement(W.d,{primary:!0},"Reconcile"))))}var Zs={color:"inherit",transform:"rotateZ(90deg)"};function Js({onClick:e}){return l.a.createElement(W.d,{bare:!0,onClick:e},l.a.createElement(Mt.a,{width:15,height:15,style:Zs}))}var Xs={padding:0};function eu({onClose:e,children:t}){return l.a.createElement(W.A,{position:"bottom-right",width:200,style:Xs,onClose:e},t)}function tu({account:e,canSync:t,syncEnabled:n,showBalances:r,canShowBalances:a,onClose:i,onReconcile:c,onMenuSelect:s}){let u=ks(Object(o.useState)("default"),2),d=u[0],f=u[1];return"reconcile"===d?l.a.createElement(Qs,{account:e,onClose:i,onReconcile:c}):l.a.createElement(eu,{onClose:i},l.a.createElement(W.s,{onMenuSelect:e=>{"reconcile"===e?f("reconcile"):s(e)},items:[a&&{name:"toggle-balance",text:(r?"Hide":"Show")+" Running Balance"},{name:"export",text:"Export"},{name:"reconcile",text:"Reconcile"},n&&e&&!e.closed&&(t?{name:"unlink",text:"Unlink Account"}:{name:"link",text:"Link Account"}),e.closed?{name:"reopen",text:"Reopen Account"}:{name:"close",text:"Close Account"}].filter(e=>e)}))}function nu({onClose:e,onMenuSelect:t}){return l.a.createElement(eu,{onClose:e},l.a.createElement(W.s,{onMenuSelect:e=>{t(e)},items:[{name:"export",text:"Export"}]}))}var ru={marginLeft:15,backgroundColor:$.a.n10,borderRadius:4,padding:"4px 6px",color:$.a.n5},au={fontWeight:600};function ou({name:e,balance:t}){return l.a.createElement(W.y,{style:ru},e," ",l.a.createElement(W.y,{style:au},Object(jt.a)(t,"financial")))}function lu({selectedItems:e}){let t=ks(Object(o.useState)(null),2),n=t[0],r=t[1];return Object(o.useEffect)(()=>{!async function(){let t=(await Object(g.f)(Object(g.c)("transactions").filter({id:{$oneof:[...e]},parent_id:{$oneof:[...e]}}).select("id"))).data,n=new Set(t.map(e=>e.id)),a=[...e].filter(e=>!n.has(e)),o=(await Object(g.f)(Object(g.c)("transactions").filter({id:{$oneof:a}}).options({splits:"all"}).calculate({$sum:"$amount"}))).data;r(o)}()},[e]),null==n?null:l.a.createElement(ou,{name:"Selected balance:",balance:n})}var iu={flexDirection:"row"};function cu({balanceQuery:e}){let t=Object(Ct.a)({name:e.name+"-cleared",query:e.query.filter({cleared:!0})}),n=Object(Ct.a)({name:e.name+"-uncleared",query:e.query.filter({cleared:!1})});return l.a.createElement(W.B,{style:iu},l.a.createElement(ou,{name:"Cleared total:",balance:t}),l.a.createElement(ou,{name:"Uncleared total:",balance:n}))}var su={flexDirection:"row",alignItems:"center",marginTop:-5,marginLeft:-5},uu={fontSize:22,fontWeight:400};function du({balanceQuery:e,showExtraBalances:t,onToggleExtraBalances:n}){let r=Object(Pt.e)();return l.a.createElement(W.B,{style:su},l.a.createElement(W.d,{bare:!0,onClick:n,style:{"& svg":{opacity:r.size>0||t?1:0},"&:hover svg":{opacity:1}}},l.a.createElement(xt,{binding:Ds(Ds({},e),{},{value:0}),type:"financial",style:uu,getStyle:e=>({color:e<0?$.a.r5:e>0?$.a.g5:$.a.n8})}),l.a.createElement(Nt,{style:{width:10,height:10,marginLeft:10,color:$.a.n5,transform:t?"rotateZ(180deg)":"rotateZ(0)"}})),t&&l.a.createElement(cu,{balanceQuery:e}),r.size>0&&l.a.createElement(lu,{selectedItems:r}))}function fu({style:e,getTransaction:t,onShow:n,onDelete:r,onEdit:a,onUnlink:i,onScheduleAction:c}){let s=Object(Pt.e)(),d=Object(u.g)(),f=Object(o.useMemo)(()=>{let e=[...s];return{preview:!!e.find(e=>is(e)),trans:!!e.find(e=>!is(e))}},[s]),p=Object(o.useMemo)(()=>!f.preview&&[...s].every(e=>{let n=t(e);return n&&n.schedule}),[f.preview,s,t]);return l.a.createElement(kt.j,{name:"transactions",keyHandlers:f.trans&&{f:()=>n([...s]),d:()=>r([...s]),a:()=>a("account",[...s]),p:()=>a("payee",[...s]),n:()=>a("notes",[...s]),c:()=>a("category",[...s]),l:()=>a("cleared",[...s])},items:[...f.trans?[{name:"show",text:"Show",key:"F"},{name:"delete",text:"Delete",key:"D"},...p?[{name:"view-schedule",text:"View schedule",disabled:s.size>1},{name:"unlink-schedule",text:"Unlink schedule"}]:[{name:"link-schedule",text:"Link schedule"}],W.s.line,{type:W.s.label,name:"Edit field"},{name:"date",text:"Date"},{name:"account",text:"Account",key:"A"},{name:"payee",text:"Payee",key:"P"},{name:"notes",text:"Notes",key:"N"},{name:"category",text:"Category",key:"C"},{name:"amount",text:"Amount"},{name:"cleared",text:"Cleared",key:"L"}]:[{name:"view-schedule",text:"View schedule"},{name:"post-transaction",text:"Post transaction"},{name:"skip",text:"Skip scheduled date"}]],onSelect:e=>{switch(e){case"show":n([...s]);break;case"delete":r([...s]);break;case"post-transaction":case"skip":c(e,s);break;case"view-schedule":let o,l=[...s][0];if(is(l)){o=l.split("/")[1]}else{let e=t(l);o=e&&e.schedule}o&&d.push(`/schedule/edit/${o}`,{locationPtr:d.location});break;case"link-schedule":d.push("/schedule/link",{locationPtr:d.location,transactionIds:[...s]});break;case"unlink-schedule":i([...s]);break;default:a(e,[...s])}}})}var pu={paddingBottom:10,flexShrink:0},mu={marginTop:2,alignItems:"flex-start"},yu={fontSize:25,fontWeight:500,marginTop:-5,marginBottom:-2,marginLeft:-5},gu={flexDirection:"row",alignItems:"center",gap:3,"& .hover-visible":{opacity:0,transition:"opacity .25s"},"&:hover .hover-visible":{opacity:1}},hu={fontSize:25,fontWeight:500,marginRight:5,marginBottom:5},bu={width:11,height:11,color:$.a.n8},Ou={fontSize:25,fontWeight:500,marginBottom:5},wu={marginTop:12},Eu={color:"currentColor",marginRight:4},vu={color:"currentColor",marginRight:4},ju={color:"inherit",marginRight:3},Su={backgroundColor:"transparent",borderWidth:0,boxShadow:"none",transition:"color .15s","& input::placeholder":{color:$.a.n1,transition:"color .25s"}},xu={boxShadow:"0 0 0 2px "+$.a.b5},Cu={color:$.a.p4},ku={width:16,height:16},Pu={padding:6},Au={width:14,height:14,color:"inherit"},Du={width:14,height:14,color:"inherit"};const Bu=l.a.memo(({tableRef:e,editingName:t,isNameEditable:n,workingHard:r,accountName:a,account:i,accountsSyncing:c,accounts:s,transactions:u,syncEnabled:d,showBalances:f,showExtraBalances:p,showEmptyMessage:m,balanceQuery:y,reconcileAmount:g,canCalculateBalance:h,search:b,filters:O,savePrefs:w,onSearch:E,onAddTransaction:v,onShowTransactions:j,onDoneReconciling:S,onCreateReconciliationTransaction:x,onToggleExtraBalances:C,onSaveName:k,onExposeName:P,onSync:A,onImport:D,onMenuSelect:B,onReconcile:I,onBatchDelete:T,onBatchEdit:M,onBatchUnlink:R,onApplyFilter:_,onDeleteFilter:L,onScheduleAction:N})=>{let F=ks(Object(o.useState)(!1),2),U=F[0],z=F[1],G=Object(o.useRef)(null),H=jc(),q=d&&i&&i.account_id;return i||(q=!!s.find(e=>!!e.account_id)),l.a.createElement(l.a.Fragment,null,l.a.createElement(ot.a,{keys:{"mod+f":()=>{G.current&&G.current.focus()}}}),l.a.createElement(W.B,{style:[$.c.pageContent,pu]},l.a.createElement(W.B,{style:mu},l.a.createElement(W.B,null,t?l.a.createElement(W.l,null,l.a.createElement(W.n,{defaultValue:a,onEnter:e=>k(e.target.value),onBlur:()=>P(!1),style:yu})):n?l.a.createElement(W.B,{style:gu},l.a.createElement(W.B,{style:hu},a),l.a.createElement(Et,{id:`account-${i.id}`}),l.a.createElement(W.d,{bare:!0,className:"hover-visible",onClick:()=>P(!0)},l.a.createElement(an,{style:bu}))):l.a.createElement(W.B,{style:Ou},a))),l.a.createElement(du,{balanceQuery:y,showExtraBalances:p,onToggleExtraBalances:C}),l.a.createElement(W.x,{spacing:2,direction:"row",align:"center",style:wu},(i&&!i.closed||q)&&l.a.createElement(W.d,{bare:!0,onClick:q?A:D},q?l.a.createElement(l.a.Fragment,null,l.a.createElement(vn,{width:13,height:13,animating:i&&c===i.name||"__all"===c,style:Eu})," ","Sync"):l.a.createElement(l.a.Fragment,null,l.a.createElement(en,{width:13,height:13,style:vu})," ","Import")),!m&&l.a.createElement(W.d,{bare:!0,onClick:v},l.a.createElement(It,{width:10,height:10,style:ju})," ","Add New"),l.a.createElement(W.B,null,l.a.createElement(li,{onApply:_})),l.a.createElement(W.o,{leftContent:l.a.createElement(sn,{style:{width:13,height:13,flexShrink:0,color:b?$.a.p7:"inherit",margin:5,marginRight:0}}),inputRef:G,value:b,placeholder:"Search",getStyle:e=>[Su,e&&xu,!e&&""!==b&&Cu],onChange:e=>E(e.target.value)}),r?l.a.createElement(W.B,null,l.a.createElement(Tt.a,{color:$.a.n1,style:ku})):l.a.createElement(fu,{getTransaction:e=>u.find(t=>t.id===e),onShow:j,onDelete:T,onEdit:M,onUnlink:R,onScheduleAction:N}),l.a.createElement(W.d,{bare:!0,disabled:""!==b||O.length>0,style:Pu,onClick:function(){e.current&&(H.dispatch({type:"switch-mode",id:e.current.getScrolledItem()}),w({"expand-splits":!("expand"===H.state.mode)}))},title:"collapse"===H.state.mode?"Collapse split transactions":"Expand split transactions"},"collapse"===H.state.mode?l.a.createElement(qt,{style:Au}):l.a.createElement(Wt,{style:Du})),i?l.a.createElement(W.B,null,l.a.createElement(Js,{onClick:()=>z(!0)}),U&&l.a.createElement(tu,{account:i,canSync:q,syncEnabled:d,canShowBalances:h(),showBalances:f,onMenuSelect:e=>{z(!1),B(e)},onReconcile:I,onClose:()=>z(!1)})):l.a.createElement(W.B,null,l.a.createElement(Js,{onClick:()=>z(!0)}),U&&l.a.createElement(nu,{onMenuSelect:e=>{z(!1),B(e)},onClose:()=>z(!1)}))),O&&O.length>0&&l.a.createElement(yi,{filters:O,onDelete:L})),null!=g&&l.a.createElement(Ys,{targetBalance:g,balanceQuery:y,onDone:S,onCreateTransaction:x}))});function Iu({transactions:e,filtered:t,children:n}){let r=xe(),a=Object(o.useMemo)(()=>r?r.schedules.filter(e=>!e.completed&&["due","upcoming","missed"].includes(r.statuses.get(e.id))):[],[r]),l=Object(o.useMemo)(()=>a.map(e=>({id:"preview/"+e.id,payee:e._payee,account:e._account,amount:e._amount,date:e.next_date,notes:r.statuses.get(e.id),schedule:e.id})),[a]),i=Object(o.useMemo)(()=>!t&&l.length>0?l.concat(e):e,[t,l,e]);return n(null==r?null:i)}var Tu={backgroundColor:$.a.n11},Mu={flex:1},Ru={marginTop:20,textAlign:"center",fontStyle:"italic"};class _u extends l.a.PureComponent{constructor(e){super(e),this.fetchAllIds=(async()=>{return(await Object(g.f)(this.paged.getQuery().select("id"))).data.reduce((e,t)=>(e.push(t.id),t.subtransactions.forEach(t=>e.push(t.id)),e),[])}),this.refetchTransactions=(async()=>{this.paged&&this.paged.run()}),this.fetchTransactions=(()=>{let e=this.makeRootQuery();this.rootQuery=this.currentQuery=e,this.updateQuery(e),this.props.accountId&&this.props.markAccountRead(this.props.accountId)}),this.makeRootQuery=(()=>{let e=this.props.location.state,t=this.props.accountId;return e&&e.filter?Object(g.c)("transactions").options({splits:"grouped"}).filter(Ds({"account.offbudget":!1},e.filter)):De(t)}),this.onSearch=(e=>{this.paged.unsubscribe(),this.setState({search:e},this.onSearchDone)}),this.onSearchDone=Object(ce.debounce)(()=>{""===this.state.search?this.updateQuery(this.currentQuery,this.state.filters.length>0):this.updateQuery(Be(this.currentQuery,this.state.search,this.props.dateFormat),!0)},150),this.onSync=(async()=>{const e=this.props.accountId,t=this.props.accounts.find(t=>t.id===e);await this.props.syncAndDownload(t?t.id:null)}),this.onImport=(async()=>{const e=this.props.accountId;if(this.props.accounts.find(t=>t.id===e)){const t=await window.Actual.openFileDialog({filters:[{name:"Financial Files",extensions:["qif","ofx","qfx","csv"]}]});t&&this.props.pushModal("import-transactions",{accountId:e,filename:t[0],onImported:e=>{e&&this.fetchTransactions()}})}}),this.onExport=(async e=>{let t=await Object(T.send)("transactions-export-query",{query:this.currentQuery.serialize()}),n=`${e&&e.replace(/[()]/g,"").replace(/\s+/g,"-")||"transactions"}.csv`;window.Actual.saveFile(t,n,"Export Transactions")}),this.onTransactionsChange=((e,t)=>{this.paged.optimisticUpdate(t=>e._deleted?t.filter(t=>t.id!==e.id):t.map(t=>t.id===e.id?e:t),e=>t),this.props.updateNewTransactions(e.id)}),this.canCalculateBalance=(()=>{let e=this.props.accountId;return this.props.accounts.find(t=>t.id===e)&&""===this.state.search&&0===this.state.filters.length}),this.onAddTransaction=(()=>{this.setState({isAdding:!0})}),this.onExposeName=(e=>{this.setState({editingName:e})}),this.onSaveName=(e=>{const t=this.props.accountId,n=this.props.accounts.find(e=>e.id===t);this.props.updateAccount(Ds(Ds({},n),{},{name:e})),this.setState({editingName:!1})}),this.onToggleExtraBalances=(()=>{let e=this.props,t=e.accountId,n=e.showExtraBalances,r="show-extra-balances-"+t;this.props.savePrefs({[r]:!n})}),this.onMenuSelect=(async e=>{const t=this.props.accountId,n=this.props.accounts.find(e=>e.id===t);switch(e){case"link":dn(this.props.pushModal,{upgradingId:t});break;case"unlink":this.props.unlinkAccount(t);break;case"close":this.props.openAccountCloseModal(t);break;case"reopen":this.props.reopenAccount(t);break;case"export":const r=this.getAccountTitle(n,t);this.onExport(r);break;case"toggle-balance":this.state.showBalances?(this.props.savePrefs({["show-balances-"+t]:!1}),this.setState({showBalances:!1,balances:[]})):(this.props.savePrefs({["show-balances-"+t]:!0}),this.setState({showBalances:!0}),this.calculateBalances())}}),this.isNew=(e=>this.props.newTransactions.includes(e)),this.isMatched=(e=>this.props.matchedTransactions.includes(e)),this.onCreatePayee=(e=>{return""!==e.trim()?this.props.createPayee(e):null}),this.onReconcile=(e=>{this.setState({reconcileAmount:e})}),this.onDoneReconciling=(()=>{this.setState({reconcileAmount:null})}),this.onCreateReconciliationTransaction=(async e=>{const t=at([{id:"temp",account:this.props.accountId,cleared:!0,amount:e,date:Object(de.c)(),notes:"Reconciliation balance adjustment"}]);this.setState({transactions:[...this.state.transactions,...t]}),await Object(T.send)("transactions-batch-update",{added:t}),await this.refetchTransactions()}),this.onShowTransactions=(async e=>{this.onApplyFilter({customName:"Selected transactions",filter:{id:{$oneof:e}}})}),this.onBatchEdit=(async(e,t)=>{let n=async(e,n)=>{this.setState({workingHard:!0});let r=Qe((await Object(g.f)(Object(g.c)("transactions").filter({id:{$oneof:t}}).select("*").options({splits:"grouped"}))).data),a={deleted:[],updated:[]};"cleared"===e&&(n=!!r.find(e=>!e.cleared));const o=new Set(t);r.forEach(t=>{if(!o.has(t.id))return;let l=tt(r,Ds(Ds({},t),{},{[e]:n})).diff;r=Object(Pe.c)(l,r),a.deleted=a.deleted?a.deleted.concat(l.deleted):l.deleted,a.updated=a.updated?a.updated.concat(l.updated):l.updated,a.added=a.added?a.added.concat(l.added):l.added}),await Object(T.send)("transactions-batch-update",a),await this.refetchTransactions(),this.table.current&&this.table.current.edit(r[0].id,"select",!1)};"cleared"===e?n("cleared",null):this.props.pushModal("edit-field",{name:e,onSubmit:n})}),this.onBatchDelete=(async e=>{this.setState({workingHard:!0});let t=Qe((await Object(g.f)(Object(g.c)("transactions").filter({id:{$oneof:e}}).select("*").options({splits:"grouped"}))).data),n=new Set(e),r={deleted:[],updated:[]};t.forEach(e=>{let a=e.parent_id;if(!n.has(e.id)||a&&n.has(a))return;let o=nt(t,e.id).diff;t=Object(Pe.c)(o,t),r.deleted=o.deleted?r.deleted.concat(o.deleted):o.deleted,r.updated=o.updated?r.updated.concat(o.updated):o.updated}),await Object(T.send)("transactions-batch-update",r),await this.refetchTransactions()}),this.onBatchUnlink=(async e=>{await Object(T.send)("transactions-batch-update",{updated:e.map(e=>({id:e,schedule:null}))}),await this.refetchTransactions()}),this.onDeleteFilter=(e=>{this.applyFilters(this.state.filters.filter(t=>t!==e))}),this.onApplyFilter=(async e=>{let t=this.state.filters;e.customName&&(t=t.filter(t=>t.customName!==e.customName)),this.applyFilters([...t,e])}),this.onScheduleAction=(async(e,t)=>{switch(e){case"post-transaction":for(let e of t){let t=e.split("/");await Object(T.send)("schedule/post-transaction",{id:t[1]})}this.refetchTransactions();break;case"skip":for(let e of t){let t=e.split("/");await Object(T.send)("schedule/skip-next-date",{id:t[1]})}}}),this.applyFilters=(async e=>{if(e.length>0){let t=e.filter(e=>!!e.customName).map(e=>e.filter),n=(await Object(T.send)("make-filters-from-conditions",{conditions:e.filter(e=>!e.customName)})).filters;this.currentQuery=this.rootQuery.filter({$and:[...n,...t]}),this.updateQuery(this.currentQuery,!0),this.setState({filters:e,search:""})}else this.setState({transactions:[],transactionCount:0}),this.fetchTransactions(),this.setState({filters:e,search:""})}),this.paged=null,this.table=l.a.createRef(),this.animated=!0,this.state={search:"",filters:[],loading:!0,workingHard:!1,reconcileAmount:null,transactions:[],transactionsCount:0,showBalances:e.showBalances,balances:[],editingName:!1,isAdding:!1,latestDate:null}}async componentDidMount(){let e=e=>{if(e.includes("transactions")||e.includes("category_mapping")||e.includes("payee_mapping"))return this.refetchTransactions()},t=async({tables:t,messages:n,undoTag:r})=>{let a;if(await e(t),n.every(e=>"transactions"===e.dataset)&&!n.find(e=>"tombstone"===e.column)){let e=n.filter(e=>"transactions"===e.dataset&&!("tombstone"===e.column));a=1===e.length?e[0].row:null}this.table.current&&(this.table.current.edit(null),a&&this.table.current.scrollTo(a)),this.props.setLastUndoState(null)},n=[Object(T.listen)("undo-event",t)];this.unlisten=(()=>{n.forEach(e=>e())}),0===this.props.categoryGroups.length&&await this.props.getCategories(),await this.props.initiallyLoadPayees(),await this.fetchTransactions(),this.props.lastUndoState&&this.props.lastUndoState.current&&t(this.props.lastUndoState.current)}componentDidUpdate(e){e.modalShowing&&!this.props.modalShowing&&setTimeout(()=>{this.refetchTransactions()},100)}componentWillUnmount(){this.unlisten&&this.unlisten(),this.paged&&this.paged.unsubscribe()}updateQuery(e,t){this.paged&&this.paged.unsubscribe(),this.paged=Object(g.e)(e.select("*"),async(e,n)=>{const r=null==n;r&&(this.table.current&&this.table.current.setRowAnimation(!1),t?this.props.splitsExpandedDispatch({type:"set-mode",mode:"collapse"}):this.props.splitsExpandedDispatch({type:"set-mode",mode:this.props.expandSplits?"expand":"collapse"})),this.setState({transactions:e,transactionCount:this.paged.getTotalCount(),transactionsFiltered:t,loading:!1,workingHard:!1},()=>{this.state.showBalances&&this.calculateBalances(),r&&this.table.current&&this.table.current.scrollToTop(),setTimeout(()=>{this.table.current&&this.table.current.setRowAnimation(!0)},0)})},{pageCount:150,onlySync:!0,mapper:Qe})}componentWillReceiveProps(e){this.props.match!==e.match&&this.setState({editingName:!1,loading:!0,search:"",showBalances:e.showBalances,balances:[]},()=>{this.fetchTransactions()})}async calculateBalances(){if(!this.canCalculateBalance())return;let e=(await Object(g.f)(this.paged.getQuery().options({splits:"none"}).select([{balance:{$sumOver:"$amount"}}]))).data;this.setState({balances:Object(Pe.i)(e)})}getAccountTitle(e,t){let n=(this.props.location.state||{}).filterName;return n||(e?(e.closed?"Closed: ":"")+e.name:"budgeted"===t?"Budgeted Accounts":"offbudget"===t?"Off Budget Accounts":"uncategorized"===t?"Uncategorized":t?null:"All Accounts")}getBalanceQuery(e,t){return{name:`balance-query-${t}`,query:this.makeRootQuery().calculate({$sum:"$amount"})}}render(){let e=this.props,t=e.accounts,n=e.categoryGroups,r=e.payees,a=e.syncEnabled,o=e.dateFormat,i=e.addNotification,c=e.accountsSyncing,s=e.replaceModal,d=e.showExtraBalances,f=e.accountId,p=this.state,m=p.transactions,y=p.loading,g=p.workingHard,h=p.reconcileAmount,b=p.transactionsFiltered,O=p.editingName,w=p.showBalances,E=p.balances,v=t.find(e=>e.id===f);const j=this.getAccountTitle(v,f);if(!j&&!y)return l.a.createElement(u.a,{to:"/accounts"});let S=!y&&!f&&0===t.length,x=f&&"budgeted"!==f&&"offbudget"!==f&&"uncategorized"!==f,C=this.getBalanceQuery(v,f);return l.a.createElement(Iu,{transactions:m,filtered:b},e=>null==e?null:l.a.createElement(Pt.b,{name:"transactions",items:e,fetchAllIds:this.fetchAllIds,registerDispatch:e=>this.dispatchSelected=e},l.a.createElement(W.B,{style:[$.c.page,Tu]},l.a.createElement(Bu,{tableRef:this.table,editingName:O,isNameEditable:x,workingHard:g,account:v,accountName:j,accountsSyncing:c,accounts:t,transactions:m,showBalances:w,showExtraBalances:d,showEmptyMessage:S,balanceQuery:C,syncEnabled:a,canCalculateBalance:this.canCalculateBalance,reconcileAmount:h,search:this.state.search,filters:this.state.filters,savePrefs:this.props.savePrefs,onSearch:this.onSearch,onShowTransactions:this.onShowTransactions,onMenuSelect:this.onMenuSelect,onAddTransaction:this.onAddTransaction,onToggleExtraBalances:this.onToggleExtraBalances,onSaveName:this.onSaveName,onExposeName:this.onExposeName,onReconcile:this.onReconcile,onDoneReconciling:this.onDoneReconciling,onCreateReconciliationTransaction:this.onCreateReconciliationTransaction,onSync:this.onSync,onImport:this.onImport,onBatchDelete:this.onBatchDelete,onBatchEdit:this.onBatchEdit,onBatchUnlink:this.onBatchUnlink,onDeleteFilter:this.onDeleteFilter,onApplyFilter:this.onApplyFilter,onScheduleAction:this.onScheduleAction}),l.a.createElement(W.B,{style:Mu},l.a.createElement(Cs,{tableRef:this.table,account:v,transactions:m,allTransactions:e,animated:this.animated,loadMoreTransactions:()=>this.paged&&this.paged.fetchNext(),accounts:t,categoryGroups:n,payees:r,balances:w&&this.canCalculateBalance()?E:null,showAccount:!f||"offbudget"===f||"budgeted"===f||"uncategorized"===f,isAdding:this.state.isAdding,isNew:this.isNew,isMatched:this.isMatched,isFiltered:""!==this.state.search||this.state.filters.length>0,dateFormat:o,addNotification:i,renderEmpty:()=>S?l.a.createElement(Ls,{onAdd:()=>s(a?"add-account":"add-local-account")}):y?null:l.a.createElement(W.B,{style:Ru},"No transactions"),onChange:this.onTransactionsChange,onRefetch:this.refetchTransactions,onRefetchUpToRow:e=>this.paged.refetchUpToRow(e,{field:"date",order:"desc"}),onCloseAddTransaction:()=>this.setState({isAdding:!1}),onCreatePayee:this.onCreatePayee})))))}}function Lu(e){let t=jc().dispatch;return l.a.createElement(_u,Object.assign({},e,{splitsExpandedDispatch:t}))}function Nu(e){let t=Object(s.d)(t=>({newTransactions:t.queries.newTransactions,matchedTransactions:t.queries.matchedTransactions,accounts:t.queries.accounts,failedAccounts:t.account.failedAccounts,categoryGroups:t.queries.categories.grouped,syncEnabled:t.prefs.local["flags.syncAccount"],dateFormat:t.prefs.local.dateFormat||"MM/dd/yyyy",expandSplits:e.match&&t.prefs.local["expand-splits"],showBalances:e.match&&t.prefs.local["show-balances-"+e.match.params.id],showExtraBalances:e.match&&t.prefs.local["show-extra-balances-"+e.match.params.id],payees:t.queries.payees,modalShowing:t.modals.modalStack.length>0,accountsSyncing:t.account.accountsSyncing,lastUndoState:t.app.lastUndoState,tutorialStage:t.tutorial.stage})),n=Object(s.c)(),r=Object(o.useMemo)(()=>Object(ue.b)(y,n),[n]),a=Object(u.i)(),i=Object(u.h)(),c=Object(o.useContext)(fn),d=Object(o.useMemo)(()=>{let e=Ae(a.id,"_account");return(i.state&&i.state.filter||"uncategorized"===a.id)&&(e={id:null}),t=>(t=t.filter({$and:[e,{"_account.closed":!1}]})).orderBy({next_date:"desc"})},[a.id]);return l.a.createElement(Se,{transform:d},l.a.createElement(Sc,{initialMode:t.expandSplits?"collapse":"expand"},l.a.createElement(Lu,Object.assign({},t,r,{modalShowing:t.modalShowing||!(!c.state||!c.state.locationPtr),accountId:a.id,location:e.location}))))}var Fu=n(5),Uu=n(49),zu=n(106);function Wu(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return $u(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return $u(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function $u(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Gu({onSync:e,children:t}){let n=Wu(Object(o.useState)(!1),2),r=n[0],a=n[1];return t({refreshing:r,onRefresh:async function(){a(!0),await e(),a(!1)}})}function Hu(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function qu(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Hu(Object(n),!0).forEach(function(t){Yu(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Hu(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Yu(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Vu=e=>l.a.createElement("svg",Object.assign({},e,{viewBox:"0 0 20 20",style:qu({color:"#242134"},e.style)}),l.a.createElement("path",{d:"M7.05 9.293L6.343 10 12 15.657l1.414-1.414L9.172 10l4.242-4.243L12 4.343z",fill:"currentColor"})),Ku=n(175),Qu=n(506),Zu=n(36),Ju=n(124),Xu=n(325);const ed=["children","style"];function td(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function nd(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function rd(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?nd(Object(n),!0).forEach(function(t){ad(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):nd(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function ad(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}let od=Object(Uu.a)(e=>Object(Pe.i)(e)),ld=Object(Uu.a)(e=>Object(Pe.i)(e));function id(e){return-1!==e.indexOf("preview/")}$.a.n10,$.a.n9,$.a.n4;function cd({status:e}){let t,n;switch(e){case"missed":t=$.a.r3,n=Xi;break;case"due":t=$.a.y3,n=Hi;break;case"upcoming":t=$.a.n4,n=Ti}return l.a.createElement(W.y,{style:{fontSize:11,color:t,fontStyle:"italic"}},Object(Pe.p)(e))}var sd={flex:1,height:60,padding:"5px 10px"},ud={backgroundColor:$.a.n11},dd={flex:1},fd={flexDirection:"row",alignItems:"center"},pd={color:$.a.n6,fontStyle:"italic"},md={flexDirection:"row",alignItems:"center",marginTop:3},yd={marginLeft:25,marginRight:5,fontSize:14};class gd extends l.a.PureComponent{render(){const e=this.props,t=e.transaction,n=e.accounts,r=e.categories,a=e.payees,o=e.showCategory,i=e.added,c=(e.onSelect,e.style);let s=t.id,u=t.payee,d=t.amount,f=t.category,p=t.cleared,m=t.is_parent,y=t.notes,g=t.schedule;id(s)&&(d=be(d));let h=f?function(e,t){return e.find(e=>e.id===t).name}(r,f):null,b=a&&u&&od(a)[u],O=b&&b.transfer_acct&&ld(n)[b.transfer_acct],w=function(e,t,n){let r=e.amount;return n?`Transfer ${r>0?"from":"to"} ${n.name}`:t?t.name:""}(t,b,O),E=O?"Transfer":m?"Split":h,v=id(s),j=v&&{fontStyle:"italic",color:$.a.n5};return l.a.createElement(Ad,{style:[sd,v&&ud,c]},l.a.createElement(W.B,{style:[dd]},l.a.createElement(W.B,{style:fd},g&&l.a.createElement(Ti,{style:{width:12,height:12,marginRight:5,color:j.color||$.a.n1}}),l.a.createElement(W.z,{style:[$.c.text,j,{fontSize:14,fontWeight:i?"600":"400"},""===w&&pd]},w||"Empty")),v?l.a.createElement(cd,{status:y}):l.a.createElement(W.B,{style:md},l.a.createElement(Qt,{style:{width:11,height:11,color:p?$.a.g6:$.a.n8,marginRight:5}}),o&&l.a.createElement(W.z,{style:{fontSize:11,marginTop:1,fontWeight:"400",color:E?$.a.n3:$.a.p7,fontStyle:E?null:"italic",textAlign:"left"}},E||"Uncategorized"))),l.a.createElement(W.y,{style:[$.c.text,j,yd]},Object(Pe.k)(d)))}}var hd={flex:"1 auto",height:"100%",overflowY:"auto"},bd={display:"flex",justifyContent:"center",width:"100%"},Od={fontSize:15};class wd extends l.a.Component{constructor(...e){super(...e),this.makeData=Object(Uu.a)(e=>{const t=[];return e.forEach(e=>{if(0===t.length||e.date!==t[t.length-1].date){let n=t[t.length-1];if(n&&n.data.length>0){let e=n.data;e[e.length-1].isLast=!0}t.push({id:e.date,date:e.date,data:[]})}e.is_child||t[t.length-1].data.push(e)}),t})}render(){const e=this.props,t=e.transactions,n=e.scrollProps,r=void 0===n?{}:n,a=e.onLoadMore,o=this.makeData(t);return l.a.createElement(l.a.Fragment,null,r.ListHeaderComponent,l.a.createElement(vd,Object.assign({},r,{"aria-label":"transaction list",label:"",loadMore:a,selectionMode:"none",style:hd}),0===o.length?l.a.createElement(Ju.b,null,l.a.createElement(Ju.a,null,l.a.createElement("div",{style:bd},l.a.createElement(W.y,{style:Od},"No transactions")))):null,o.map(e=>l.a.createElement(Ju.b,{title:de.g(e.date,"MMMM dd, yyyy"),key:e.id},e.data.map((e,t,n)=>l.a.createElement(Ju.a,{key:e.id,style:{fontSize:t===n.length-1?98:"inherit"},textValue:e.id},l.a.createElement(gd,{transaction:e,categories:this.props.categories,accounts:this.props.accounts,payees:this.props.payees,showCategory:this.props.showCategory,added:this.props.isNew(e.id),onSelect:()=>{}})))))))}}var Ed={padding:0,listStyle:"none",margin:0,overflowY:"auto",width:"100%"};function vd(e){let t=Object(Xu.a)(e),n=l.a.useRef(),r=Object(Qu.a)(e,t,n),a=r.listBoxProps,i=r.labelProps;return Object(o.useEffect)(()=>{function t(){Math.abs(n.current.scrollHeight-n.current.clientHeight-n.current.scrollTop)<n.current.clientHeight&&e.loadMore()}return n.current.addEventListener("scroll",t),()=>{n.current&&n.current.removeEventListener("scroll",t)}},[t.collection]),l.a.createElement(l.a.Fragment,null,l.a.createElement("div",i,e.label),l.a.createElement("ul",Object.assign({},a,{ref:n,style:Ed}),[...t.collection].map(e=>l.a.createElement(Cd,{key:e.key,section:e,state:t}))))}var jd={width:"100%"},Sd=rd(rd({},$.c.smallText),{},{backgroundColor:$.a.n10,borderBottom:`1px solid ${$.a.n9}`,borderTop:`1px solid ${$.a.n9}`,color:$.a.n4,display:"flex",justifyContent:"center",paddingBottom:4,paddingTop:4,position:"sticky",top:"0",width:"100%",zIndex:10}),xd={padding:0,listStyle:"none"};function Cd({section:e,state:t}){let n=Object(Qu.b)({heading:e.rendered,"aria-label":e["aria-label"]}),r=n.itemProps,a=n.headingProps,o=n.groupProps;return l.a.createElement(l.a.Fragment,null,l.a.createElement("li",Object.assign({},r,{style:jd}),e.rendered&&l.a.createElement("div",Object.assign({},a,{style:Sd}),e.rendered),l.a.createElement("ul",Object.assign({},o,{style:xd}),[...e.childNodes].map((e,n,r)=>l.a.createElement(kd,{key:e.key,item:e,state:t,isLast:n===r.length-1})))))}function kd({isLast:e,item:t,state:n}){let r=l.a.useRef(),a=Object(Qu.c)({key:t.key},n,r),o=a.optionProps,i=a.isSelected,c=(a.isDisabled,Object(Ku.c)()),s=c.isFocusVisible,u=c.focusProps;return l.a.createElement("li",Object.assign({},Object(Zu.g)(o,u),{ref:r,style:rd({background:i?"blueviolet":"transparent",color:i?"white":null,outline:s?"2px solid orange":"none"},!e&&{borderBottom:`1px solid ${$.a.border}`})}),t.rendered)}var Pd={height:50,flexDirection:"row",alignItems:"center",paddingLeft:10,paddingRight:10};const Ad=l.a.forwardRef((e,t)=>{let n=e.children,r=e.style,a=td(e,ed);return l.a.createElement(W.B,Object.assign({style:[Pd,r],ref:t},a),n)});function Dd(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Bd(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Dd(Object(n),!0).forEach(function(t){Id(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Dd(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Id(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Td={flexDirection:"row",alignItems:"center",backgroundColor:$.a.n11,margin:"11px auto 4px",borderRadius:4,padding:10,width:"100%"},Md={backgroundColor:$.a.n11,border:`1px solid ${$.a.n9}`,fontSize:15,flex:1,height:32,marginLeft:4,padding:8};class Rd extends l.a.Component{constructor(...e){super(...e),this.state={text:""},this.performSearch=(()=>{this.props.onSearch(this.state.text)}),this.onChange=(e=>{this.setState({text:e},this.performSearch)})}render(){const e=this.props.accountName,t=this.state.text;return l.a.createElement(W.B,{style:Td},l.a.createElement(W.o,{leftContent:l.a.createElement(sn,{style:{width:13,height:13,flexShrink:0,color:t?$.a.p7:"inherit",margin:5,marginRight:0}}),value:t,onUpdate:this.onChange,placeholder:`Search ${e}`,style:Md}))}}var _d={flex:1,backgroundColor:$.a.n11,overflowY:"hidden",width:"100%"},Ld={alignItems:"center",backgroundColor:$.a.n11,flexShrink:0,overflowY:"hidden",paddingTop:20,top:0,width:"100%"},Nd={alignItems:"center",flexDirection:"row",justifyContent:"space-between",width:"100%"},Fd={alignItems:"center",display:"flex",textDecoration:"none",width:70},Ud={color:$.a.b5,width:32,height:32},zd=Bd(Bd({},$.c.text),{},{color:$.a.b5,fontWeight:500}),Wd={fontSize:16,fontWeight:500},$d={visibility:"hidden"},Gd={justifyContent:"center",width:70},Hd={marginTop:10},qd={fontSize:18,fontWeight:"500"};function Yd({account:e,prependTransactions:t,transactions:n,accounts:r,categories:a,payees:i,balance:c,isNewTransaction:s,onLoadMore:u,onSearch:f,onSelectTransaction:p}){let m=Object(o.useMemo)(()=>t.concat(n),[t,n]);return l.a.createElement(W.B,{style:_d},l.a.createElement(W.B,{style:Ld},l.a.createElement(W.B,{style:Nd},l.a.createElement(d.a,{to:"/accounts",style:Fd},l.a.createElement(Vu,{style:Ud}),l.a.createElement(vt.a,{style:zd},"Back")),l.a.createElement(W.B,{style:Wd},e.name),l.a.createElement(d.a,{to:"transaction/new",style:$d},l.a.createElement(W.d,{bare:!0,style:Gd},l.a.createElement(It,{width:20,height:20})))),l.a.createElement(W.q,{title:"BALANCE",style:Hd}),l.a.createElement(xt,{binding:c,type:"financial",debug:!0,style:qd,getStyle:e=>({color:e<0?$.a.r4:$.a.p5})}),l.a.createElement(Rd,{accountName:e.name,onSearch:f})),l.a.createElement(wd,{transactions:m,categories:a,accounts:r,payees:i,showCategory:!e.offbudget,isNew:s,onLoadMore:u,onSelect:p}))}function Vd(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return Kd(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Kd(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Kd(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}const Qd=Object(Uu.a)((e,t)=>{let n=Ae(e,"_account");return t&&(n={id:null}),e=>(e=e.filter({$and:[n,{"_account.closed":!1}]})).orderBy({next_date:"desc"})});function Zd({accountId:e,children:t}){let n=xe();return t(null==n?null:n.schedules.filter(e=>!e.completed&&["due","upcoming","missed"].includes(n.statuses.get(e.id))).map(e=>({id:"preview/"+e.id,payee:e._payee,account:e._account,amount:e._amount,date:e.next_date,notes:n.statuses.get(e.id),schedule:e.id})))}let Jd;var Xd=Object(s.b)(e=>({accounts:e.queries.accounts,newTransactions:e.queries.newTransactions,updatedAccounts:e.queries.updatedAccounts,categories:e.queries.categories.list,prefs:e.prefs.local}),y)(Object(zu.b)($.a.n11)(function(e){Object(Fu.j)();const t=Vd(Object(o.useState)([]),2),n=t[0],r=t[1],a=Vd(Object(o.useState)(""),2),i=a[0],c=a[1],u=Vd(Object(o.useState)(),2),d=u[0],f=u[1];let p=Object(s.d)(e=>({payees:e.queries.payees,newTransactions:e.queries.newTransactions,categories:e.queries.categories.list,prefs:e.prefs.local,dateFormat:e.prefs.local.dateFormat||"MM/dd/yyyy"})),m=Object(s.c)(),h=Object(o.useMemo)(()=>Object(ue.b)(y,m),[m]);const b=e.match.params.id,O=e=>{Jd&&Jd.unsubscribe(),Jd=Object(g.e)(e.options({splits:"grouped"}).select("*"),e=>r(e),{pageCount:150,mapper:Qe})},w=async()=>{let t=De((e.match.params||{}).id);f(t),O(t)};Object(o.useEffect)(()=>{let t;return async function(){t=Object(T.listen)("sync-event",({type:e,tables:t})=>{"applied"===e&&((t.includes("transactions")||t.includes("category_mapping")||t.includes("payee_mapping"))&&Jd&&Jd.run(),(t.includes("payees")||t.includes("payee_mapping"))&&h.getPayees())}),0===p.categories.length&&await h.getCategories(),0===e.accounts.length&&await h.getAccounts(),await h.initiallyLoadPayees(),await w(),h.markAccountRead(b)}(),()=>t()},[]);const E=se()(()=>{""===i&&d?O(d):i&&d&&O(Be(d,i,p.dateFormat))},150);if(Object(o.useEffect)(E,[i,d,p.dateFormat]),!e.accounts||!e.accounts.length||!e.match)return null;const v=e.accounts.find(e=>e.id===b),j=e=>p.newTransactions.includes(e),S=async e=>{Jd.unsubscribe(),c(e)};let x=Ie(v),C=p.prefs.numberFormat||"comma-dot";return l.a.createElement(Gu,{onSync:async()=>{await e.syncAndDownload()}},({refreshing:t,onRefresh:r})=>l.a.createElement(Se,{transform:Qd(b,""!==i)},l.a.createElement(Zd,{accountId:e.accountId},t=>null==t?null:l.a.createElement(Yd,Object.assign({},p,h,{key:C,account:v,accounts:e.accounts,categories:p.categories,payees:p.payees,transactions:n,prependTransactions:t||[],balance:x,isNewTransaction:j,onLoadMore:()=>{Jd&&Jd.fetchNext()},onSearch:S,onSelectTransaction:()=>{}})))))}));function ef(e,t){switch(e){case"brokerage":case"investment":return"investment";case"credit":return"credit";case"loan":return"debt";case"other":return"other";case"depository":default:switch(t){case"money market":case"savings":return"savings";case"cd":return"cd";default:return"checking"}}}function tf(e){switch(e){case"checking":return"Checking";case"savings":return"Savings";case"cd":return"CD";case"investment":return"Investment";case"credit":return"Credit Card";case"mortgage":return"Mortgage";case"debt":return"Debt";case"other":default:return"Other"}}function nf(e){switch(e){case"investment":case"mortgage":case"debt":case"other":return!0}return!1}var rf={flexDirection:"row",marginTop:28,marginBottom:10},af={flex:1},of={textTransform:"uppercase",color:$.a.n5,fontSize:13},lf={color:$.a.n5,fontSize:13};function cf({name:e,amount:t}){return l.a.createElement(W.B,{style:rf},l.a.createElement(W.B,{style:af},l.a.createElement(W.y,{style:[$.c.text,of],"data-testid":"name"},e)),l.a.createElement(xt,{binding:t,style:[$.c.text,lf],type:"financial"}))}var sf={flex:"1 0 auto",flexDirection:"row",backgroundColor:"white",boxShadow:`0 1px 1px ${$.a.n7}`,borderRadius:6,marginTop:10},uf={flexDirection:"row",flex:1,alignItems:"center",borderRadius:6,"&:active":{opacity:.1}},df={flex:"1 auto",height:52,marginTop:10},ff={flexDirection:"row",alignItems:"center"},pf={backgroundColor:$.a.g5,marginLeft:"-23px",width:8,height:8,borderRadius:8},mf={flexDirection:"row",alignItems:"center",marginTop:"4px"},yf={color:$.a.n5},gf={width:15,height:15,color:$.a.n9,marginLeft:8,marginBottom:2},hf={fontSize:16,color:$.a.n3},bf={color:$.a.r4};function Of({account:e,updated:t,getBalanceQuery:n,onSelect:r}){return l.a.createElement(W.B,{style:sf},l.a.createElement(W.d,{onMouseDown:()=>r(e.id),style:uf},l.a.createElement(W.B,{style:df},l.a.createElement(W.B,{style:ff},l.a.createElement(W.z,{style:[$.c.text,{fontSize:17,fontWeight:600,color:t?$.a.b2:$.a.n2,paddingRight:30}]},e.name),e.bankId&&l.a.createElement(W.B,{style:pf})),l.a.createElement(W.B,{style:mf},l.a.createElement(W.y,{style:[$.c.smallText,yf]},tf(e.type)),l.a.createElement(te,{style:gf}))),l.a.createElement(xt,{binding:n(e),type:"financial",style:hf,getStyle:e=>e<0&&bf})))}var wf={flex:1,padding:30},Ef={marginTop:20,alignSelf:"center"},vf={marginTop:20,color:$.a.n5};function jf({onAdd:e}){return l.a.createElement(W.B,{style:wf},l.a.createElement(W.y,{style:$.c.text},"For Actual to be useful, you need to add an account. You can link an account to automatically download transactions, or manage it locally yourself."),l.a.createElement(W.d,{primary:!0,style:Ef,onClick:()=>alert("Account creation is not supported on mobile on the self-hosted service yet")},"Add Account"),l.a.createElement(W.y,{style:vf},"In the future, you can add accounts using the add button in the header."))}var Sf={overflowY:"auto"},xf={alignItems:"center",backgroundColor:$.a.b2,color:"white",flexDirection:"row",flex:"1 0 auto",fontSize:18,fontWeight:500,height:50,justifyContent:"center",overflowY:"auto"},Cf={backgroundColor:$.a.n10,overflowY:"auto",padding:10},kf={flex:1};class Pf extends l.a.Component{constructor(...e){super(...e),this.isNewTransaction=(e=>this.props.newTransactions.includes(e))}render(){const e=this.props,t=e.accounts,n=e.updatedAccounts,r=(e.transactions,e.categories,e.getBalanceQuery),a=e.getOnBudgetBalance,o=e.getOffBudgetBalance,i=e.onAddAccount,c=e.onSelectAccount,s=(e.onSelectTransaction,e.refreshControl,t.filter(e=>0===e.offbudget)),u=t.filter(e=>1===e.offbudget);if(0===t.length)return l.a.createElement(jf,{onAdd:i});const d=l.a.createElement(W.B,{style:Sf},l.a.createElement(W.B,{style:xf},"Accounts"),l.a.createElement(W.B,{style:Cf},l.a.createElement(cf,{name:"Budgeted",amount:a()}),s.map((e,t)=>l.a.createElement(Of,{account:e,key:e.id,updated:n.includes(e.id),getBalanceQuery:r,onSelect:c})),l.a.createElement(cf,{name:"Off budget",amount:o()}),u.map((e,t)=>l.a.createElement(Of,{account:e,key:e.id,updated:n.includes(e.id),getBalanceQuery:r,onSelect:c}))));return l.a.createElement(W.B,{style:kf},d)}}var Af={flex:1};var Df=Object(s.b)(e=>({accounts:e.queries.accounts,newTransactions:e.queries.newTransactions,updatedAccounts:e.queries.updatedAccounts,categories:e.queries.categories.list,prefs:e.prefs.local}),y)(Object(zu.b)($.a.b2)(function(e){const t=Object(o.useState)({}),n=Object(Fu.j)();Object(o.useEffect)(()=>{(async()=>{0===e.categories.length&&await e.getCategories(),e.getAccounts()})()},[]),e.navigation;let r=e.accounts,a=e.categories,i=(e.payees,e.newTransactions),c=e.updatedAccounts,s=e.prefs.numberFormat||"comma-dot";return l.a.createElement(W.B,{style:Af},l.a.createElement(Pf,{key:s,accounts:r.filter(e=>!e.closed),categories:a,transactions:t||[],updatedAccounts:c,newTransactions:i,getBalanceQuery:Ie,getOnBudgetBalance:Me,getOffBudgetBalance:Re,onAddAccount:()=>{},onSelectAccount:e=>{n(`/accounts/${e}`)},onSelectTransaction:e=>{n(`/transaction/${e}`)}}))})),Bf=n(262);function If(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Tf(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Mf={position:"absolute",top:0,left:0,right:0,marginTop:5,alignItems:"center",zIndex:501},Rf=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?If(Object(n),!0).forEach(function(t){Tf(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):If(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}({borderRadius:4,backgroundColor:$.a.b9,color:$.a.b1,padding:"5px 13px",flexDirection:"row",alignItems:"center"},$.c.shadow),_f={color:$.a.b1};var Lf=Object(s.b)(e=>({accountsSyncing:e.account.accountsSyncing}),y)(function({accountsSyncing:e}){let t=e?"__all"===e?"accounts":e:null;const n=Object(Bf.b)(t,null,{from:{opacity:0,transform:"translateY(-100px)"},enter:{opacity:1,transform:"translateY(0)"},leave:{opacity:0,transform:"translateY(-100px)"},unique:!0});return l.a.createElement(W.B,{style:Mf},n.map(({item:e,key:t,props:n})=>e&&l.a.createElement(Bf.a.div,{key:t,style:n},l.a.createElement(W.B,{style:Rf},l.a.createElement(vn,{animating:!0,iconStyle:_f}),l.a.createElement(W.y,null,"Syncing ",e)))))});function Nf(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Ff(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Nf(Object(n),!0).forEach(function(t){Uf(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Nf(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Uf(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function zf(e,t){return e.map(e=>(e.id===t.cat_group&&(e.categories=[t,...e.categories]),Ff({},e)))}function Wf(e,t){return e.map(e=>(e.id===t.cat_group&&(e.categories=e.categories.map(e=>e.id===t.id?Ff(Ff({},e),t):e)),e))}function $f(e,t,n,r){if(t===r)return e;let a=e.reduce((e,n)=>e||n.categories.find(e=>e.id===t),null);return a=Ff(Ff({},a),{},{cat_group:n}),e.map(e=>(e.id===n?(e.categories=e.categories.reduce((e,n)=>(n.id===r?(e.push(a),e.push(n)):n.id!==t&&e.push(n),e),[]),r||e.categories.push(a)):e.categories=e.categories.filter(e=>e.id!==t),Ff({},e)))}function Gf(e,t,n){if(t===n)return e;let r=e.find(e=>e.id===t);return e=e.reduce((e,a)=>(a.id===n?(e.push(r),e.push(a)):a.id!==t&&e.push(a),e),[]),n||e.push(r),e}function Hf(e,t){return e.map(e=>(e.categories=e.categories.filter(e=>e.id!==t),e))}function qf(e,t){return[...e,t]}function Yf(e,t){return e.map(e=>e.id===t.id?Ff(Ff({},e),t):e)}function Vf(e,t){return e.filter(e=>e.id!==t)}var Kf=n(169);let Qf=l.a.createContext([]);function Zf(e){return[{id:"to-be-budgeted",name:"To Be Budgeted",categories:[{id:"to-be-budgeted",name:"To Be Budgeted"}]},...e]}function Jf(e){return 0===e||"0"===e||""===e?{color:$.a.n10}:null}function Xf(e){const t=Jf(e);return t||(e<0?{color:$.a.r4}:void 0)}function ep(e){return{color:e<0?$.a.r4:0===e?$.a.n10:$.a.g4}}function tp(e,t,n){if("top"===t)return{targetId:n};{let t=e.findIndex(e=>e.id===n);if(-1===t)throw new Error("findSort: item not found: "+n);let r=t+1;return r<e.length-1?{targetId:e[r].id}:{targetId:null}}}var np=n(134);function rp(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function ap(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?rp(Object(n),!0).forEach(function(t){op(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):rp(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function op(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var lp=e=>l.a.createElement("svg",Object.assign({},e,{viewBox:"0 0 20 20",style:ap({color:"#242134"},e.style)}),l.a.createElement("path",{d:"M3.828 9l6.071-6.071-1.414-1.414L0 10l.707.707 7.778 7.778 1.414-1.414L3.828 11H20V9H3.828z",fill:"currentColor"}));function ip(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function cp(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ip(Object(n),!0).forEach(function(t){sp(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ip(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function sp(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var up=e=>l.a.createElement("svg",Object.assign({},e,{viewBox:"0 0 20 20",style:cp({color:"#242134"},e.style)}),l.a.createElement("path",{d:"M16.172 9l-6.071-6.071 1.414-1.414L20 10l-.707.707-7.778 7.778-1.414-1.414L16.172 11H0V9z",fill:"currentColor"}));function dp(e,t){const n=e.getBoundingClientRect();return t.find(e=>null!=e.width&&n.width<e.width||null!=e.height&&n.height<e.height)||t[t.length-1]}var fp=Yr()(function({props:{children:e},state:{matched:t},inst:n}){return e(t,e=>n.element=e)},{getInitialState:()=>({matched:null}),componentDidMount({inst:e,props:t,setState:n}){e.observer=new ResizeObserver(r=>{r.forEach(r=>{n({matched:dp(e.element,t.sizes)})})}),e.observer.observe(e.element)},componentWillUnmount({inst:e}){e.observer.disconnect()}}),pp=n(598),mp=n(599);function yp(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return gp(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return gp(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function gp(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function hp({item:e,type:t,makePreview:n,children:r,canDrag:a,onDragChange:l}){let i=Object(o.useRef)(l);const c=yp(Object(pp.a)({item:{type:t,item:e},collect:e=>({isDragging:e.isDragging()}),begin(n){i.current({state:"start-preview",type:t,item:e}),setTimeout(()=>{i.current({state:"start"})},0)},end(e,n){i.current({state:"end",type:t,item:e})},canDrag:()=>a}),2),s=(c[0].isDragging,c[1]);return Object(o.useLayoutEffect)(()=>{i.current=l}),{dragRef:s}}function bp({types:e,id:t,onDrop:n,onLongHover:r}){let a=Object(o.useRef)(null),l=yp(Object(o.useState)(null),2),i=l[0],c=l[1],s=yp(Object(mp.a)({accept:e,drop({item:e},r){n(e.id,i,t)},hover({item:e,type:t},n){let r=a.current.getBoundingClientRect(),o=(r.bottom-r.top)/2,l=n.getClientOffset().y-r.top;c(l<o?"top":"bottom")},collect:e=>({isOver:e.isOver()})}),2),u=s[0].isOver,d=s[1];return Object(o.useEffect)(()=>{let e;return r&&u&&(e=setTimeout(r,700)),()=>e&&clearTimeout(e)},[u]),{dropRef:(f=d,p=a,Object(o.useMemo)(()=>(function(e){[f,p].forEach(t=>{"function"===typeof t?t(e):null!=t&&(t.current=e)})}),[f,p])),dropPos:u?i:null};var f,p}const Op=l.a.createContext(null);var wp={position:"absolute",left:2,right:2,borderRadius:3,height:3,background:`linear-gradient(90deg, ${$.a.b4} 0%, ${$.a.b5} 100%)`,zIndex:1e4,pointerEvents:"none"};function Ep({pos:e,offset:t={}}){if(null==e)return null;let n=Object(o.useContext)(Op),r=("first"===n?2:0)+(t.top||0),a=("last"===n?2:0)+(t.bottom||0),i="top"===e?{top:-2+r}:{bottom:-1+a};return l.a.createElement(W.B,{style:[wp,i]})}var vp=n(86),jp=n(305),Sp=n(213);function xp(e,t,n){return{start:t<e.start?e.start:t,end:n>e.end?e.end:n}}let Cp=l.a.createContext();function kp({startMonth:e,numMonths:t,monthBounds:n,type:r,children:a}){let o=xp(n,e,de.b(e,t-1)),i=de.v(o.start,o.end);return l.a.createElement(Cp.Provider,{value:{months:i,type:r}},a)}function Pp(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return Ap(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Ap(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ap(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var Dp={flex:1,overflow:"hidden"},Bp={marginLeft:-4,marginRight:-4},Ip={paddingLeft:4,paddingRight:4};function Tp({SummaryComponent:e}){let t=Object(o.useContext)(Cp).months,n=Pp(Object(o.useState)(0),2),r=n[0],a=n[1],i=Object(o.useRef)(null),c=Object(Sp.a)(Object(o.useCallback)(e=>{a(e.width)},[])),s=Object(o.useRef)(),u=Object(o.useRef)(t[0]),d=[...t];d.unshift(de.y(t[0],1)),d.push(de.b(t[t.length-1],1));let f=r/t.length;Object(o.useLayoutEffect)(()=>{if(!s.current)return;i.current||(i.current=new jp.a({stiffness:600,damping:80,mass:3,fromValue:-f}),i.current.onUpdate(e=>{s.current&&(s.current.style.transform="translateX("+e.currentValue+"px)")}));let e=u.current,n=e>t[0],r=f,a=n?2*-r:0;e!==d[0]&&e!==d[2]&&(a=-r);let o=-r;i.current.updateConfig({fromValue:a,toValue:o}).start()},[t[0]]),Object(o.useLayoutEffect)(()=>{u.current=t[0]},[t[0]]),Object(o.useLayoutEffect)(()=>{s.current.style.transform=`translateX(${-f}px)`},[f]);var p={flex:`0 0 ${f}px`};return l.a.createElement("div",Object.assign({},Object(lt.css)([Dp,1===t.length&&Bp]),{ref:c}),l.a.createElement(W.B,{style:{flexDirection:"row",width:r,willChange:"transform"},innerRef:s},d.map((t,n)=>l.a.createElement(W.B,{key:t,style:[p,Ip]},l.a.createElement(e,{month:t})))))}const Mp="0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24)";function Rp(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return _p(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _p(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _p(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Lp(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Np(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Lp(Object(n),!0).forEach(function(t){Fp(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Lp(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Fp(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Up(){return Math.max($.c.scrollbarWidth-2,0)}var zp={flex:1},Wp={"& ::-webkit-scrollbar":{backgroundColor:"transparent"},"& ::-webkit-scrollbar-thumb:vertical":{backgroundColor:"white"}},$p={flexDirection:"row",overflow:"hidden",flexShrink:0,paddingLeft:5,paddingRight:5+Up()},Gp={width:200},Hp={overflowY:"scroll",overflowAnchor:"none",flex:1,paddingLeft:5,paddingRight:5};class qp extends l.a.Component{constructor(e){super(e),this.onEditMonth=((e,t)=>{this.setState({editing:e?{id:e,cell:t}:null})}),this.onEditName=(e=>{this.setState({editing:e?{id:e,cell:"name"}:null})}),this.onReorderCategory=((e,t,n)=>{let r=this.props.categoryGroups;if(!!r.find(e=>e.id===n)){let a=function(e,t,n){if("bottom"===t)return{targetId:n};{let t=e.findIndex(e=>e.id===n);if(-1===t)throw new Error("findSort: item not found: "+n);let r=t-1;return r>=0?{targetId:e[r].id}:{targetId:null}}}(r,t,n).targetId,o=r.find(e=>e.id===a);if(o){let n=o.categories;this.props.onReorderCategory({id:e,groupId:o.id,targetId:0===n.length||"top"===t?null:n[0].id})}}else{let a;for(let e of r)if(e.categories.find(e=>e.id===n)){a=e;break}this.props.onReorderCategory(Np({id:e,groupId:a.id},tp(a.categories,t,n)))}}),this.onReorderGroup=((e,t,n)=>{let r=this.props.categoryGroups;this.props.onReorderGroup(Np({id:e},tp(r,t,n)))}),this.moveVertically=(e=>{let t=this.state.editing,n=this.props,r=n.type,a=n.categoryGroups,o=n.collapsed;const l=a.reduce((e,t)=>o.includes(t.id)?e.concat({id:t.id,isGroup:!0}):e.concat([{id:t.id,isGroup:!0},...t.categories]),[]);if(t){let n=l.findIndex(e=>e.id===t.id)+e;for(;n>=0&&n<l.length;){const a=l[n];if(!a.isGroup){if("report"!==r&&a.is_income)break;return void this.onEditMonth(a.id,t.cell)}n+=e}}}),this.onKeyDown=(e=>{if(!this.state.editing)return null;13!==e.keyCode&&9!==e.keyCode||(e.preventDefault(),this.moveVertically(e.shiftKey?-1:1))}),this.onShowActivity=((e,t,n)=>{this.props.onShowActivity(e,t,this.resolveMonth(n))}),this.onBudgetAction=((e,t,n)=>{this.props.onBudgetAction(this.resolveMonth(e),t,n)}),this.resolveMonth=(e=>de.b(this.props.startMonth,e)),this.budgetCategoriesRef=l.a.createRef(),this.state={editing:null,draggingState:null}}clearEditing(){this.setState({editing:null})}render(){let e=this.props,t=e.type,n=e.categoryGroups,r=e.prewarmStartMonth,a=e.startMonth,o=e.numMonths,i=e.monthBounds,c=e.collapsed,s=e.setCollapsed,u=e.newCategoryForGroup,d=e.dataComponents,f=e.isAddingGroup,p=e.onSaveCategory,m=e.onSaveGroup,y=e.onDeleteCategory,g=e.onDeleteGroup,h=e.onShowNewCategory,b=e.onHideNewCategory,O=e.onShowNewGroup,w=e.onHideNewGroup,E=this.state,v=E.editing,j=E.draggingState;return l.a.createElement(W.B,{style:[zp,$.c.lightScrollbar&&Wp]},l.a.createElement(W.B,{style:$p},l.a.createElement(W.B,{style:Gp}),l.a.createElement(kp,{startMonth:r,numMonths:o,monthBounds:i,type:t},l.a.createElement(Tp,{SummaryComponent:d.SummaryComponent}))),l.a.createElement(kp,{startMonth:a,numMonths:o,monthBounds:i,type:t},l.a.createElement(Sm,{MonthComponent:d.BudgetTotalsComponent}),l.a.createElement(W.p.Provider,{value:this.budgetCategoriesRef},l.a.createElement(W.B,{style:Hp,innerRef:this.budgetCategoriesRef},l.a.createElement(W.B,{style:{opacity:j?.5:1,flexShrink:0},onKeyDown:this.onKeyDown,innerRef:e=>this.budgetDataNode=e},l.a.createElement(_m,{categoryGroups:n,newCategoryForGroup:u,isAddingGroup:f,editingCell:v,collapsed:c,setCollapsed:s,dataComponents:d,onEditMonth:this.onEditMonth,onEditName:this.onEditName,onSaveCategory:p,onSaveGroup:m,onDeleteCategory:y,onDeleteGroup:g,onReorderCategory:this.onReorderCategory,onReorderGroup:this.onReorderGroup,onShowNewCategory:h,onHideNewCategory:b,onShowNewGroup:O,onHideNewGroup:w,onBudgetAction:this.onBudgetAction,onShowActivity:this.onShowActivity}))))))}}var Yp={flexDirection:"row",alignItems:"center",userSelect:"none",WebkitUserSelect:"none"},Vp={textOverflow:"ellipsis",whiteSpace:"nowrap",overflow:"hidden",minWidth:0},Kp={flexShrink:0,marginLeft:5},Qp={color:"currentColor",padding:3},Zp={color:"currentColor"},Jp={padding:0},Xp={flex:1},em={color:"currentColor"},tm={width:200,"& button":{display:"none"}},nm={"&:hover button":{display:"flex",color:$.a.n1}},rm={color:$.a.n8},am={backgroundColor:"white",zIndex:1e4,borderRadius:6,overflow:"hidden"},om={paddingLeft:13},lm={borderBottomWidth:0};function im({innerRef:e,category:t,dragPreview:n,dragging:r,editing:a,style:i,borderColor:c=$.a.border,isLast:s,onDragChange:u,onEditMonth:d,onEditName:f,onSave:p,onDelete:m,onHideNewCategory:y}){const g="new"===t.id,h=Rp(Object(o.useState)(!1),2),b=h[0],O=h[1],w=l.a.createElement(W.B,{style:Yp},l.a.createElement("div",{style:Vp},t.name),l.a.createElement(W.B,{style:Kp},l.a.createElement(W.d,{bare:!0,onClick:e=>{e.stopPropagation(),O(!0)},style:Qp},l.a.createElement(Ai,{width:14,height:14,style:Zp})),b&&l.a.createElement(W.A,{position:"bottom-left",width:200,style:Jp,onClose:()=>O(!1)},l.a.createElement(W.s,{onMenuSelect:e=>{"rename"===e?f(t.id):m(t.id),O(!1)},items:[{name:"rename",text:"Rename"},{name:"delete",text:"Delete"}]}))),l.a.createElement(W.B,{style:Xp}),l.a.createElement(Et,{id:t.id,style:r&&em}));return l.a.createElement(W.B,{innerRef:e,style:[tm,!r&&!n&&nm,r&&rm,n&&am,i],onKeyDown:e=>{13===e.keyCode&&(f(null),e.stopPropagation())}},l.a.createElement(kt.f,{value:t.name,formatter:e=>w,width:"flex",exposed:a||g,borderColor:n?"transparent":c,onUpdate:e=>{g?""===e?y():""!==e&&p(Np(Np({},t),{},{name:e})):e!==t.name&&p(Np(Np({},t),{},{name:e}))},onBlur:()=>f(null),style:[om,s&&lm],inputProps:{placeholder:g?"New Category Name":""}}))}var cm={flexDirection:"row",alignItems:"center",userSelect:"none",WebkitUserSelect:"none"},sm={textOverflow:"ellipsis",whiteSpace:"nowrap",overflow:"hidden",minWidth:0},um={fontWeight:500},dm={marginLeft:5,flexShrink:0},fm={padding:3},pm={padding:0},mm={flex:1},ym={width:200,backgroundColor:$.a.n11,"& button":{display:"none"},"&:hover button":{display:"flex",color:$.a.n1}},gm={paddingLeft:10,zIndex:1e4,borderRadius:6,overflow:"hidden"},hm={fontWeight:600};function bm({group:e,editing:t,collapsed:n,dragPreview:r,innerRef:a,style:i,borderColor:c=$.a.border,onEdit:s,onSave:u,onDelete:d,onShowNewCategory:f,onHideNewGroup:p,onToggleCollapse:m}){const y="new"===e.id,g=Rp(Object(o.useState)(!1),2),h=g[0],b=g[1],O=l.a.createElement(W.B,{style:cm,onClick:t=>{m(e.id)}},!r&&l.a.createElement(np.a,{width:8,height:8,style:{marginRight:5,marginLeft:5,flexShrink:0,transition:"transform .1s",transform:n?"rotate(-90deg)":""}}),l.a.createElement("div",{style:sm},r&&l.a.createElement(W.y,{style:um},"Group: "),e.name),!r&&l.a.createElement(l.a.Fragment,null,l.a.createElement(W.B,{style:dm},l.a.createElement(W.d,{bare:!0,onClick:e=>{e.stopPropagation(),b(!0)},style:fm},l.a.createElement(Ai,{width:14,height:14})),h&&l.a.createElement(W.A,{position:"bottom-left",width:200,style:pm,onClose:()=>b(!1)},l.a.createElement(W.s,{onMenuSelect:t=>{"rename"===t?s(e.id):"add-category"===t?f(e.id):d(e.id),b(!1)},items:[{name:"add-category",text:"Add category"},{name:"rename",text:"Rename"},d&&{name:"delete",text:"Delete"}]}))),l.a.createElement(W.B,{style:mm}),l.a.createElement(Et,{id:e.id})));return l.a.createElement(W.B,{innerRef:a,style:[i,ym,r&&gm],onKeyDown:e=>{13===e.keyCode&&(s(null),e.stopPropagation())}},l.a.createElement(kt.f,{value:e.name,formatter:e=>O,width:"flex",exposed:t,borderColor:$.a.border,onUpdate:t=>{y?""===t?p():""!==t&&u({id:e.id,name:t}):u({id:e.id,name:t})},onBlur:()=>s(null),style:hm,inputProps:{style:{marginLeft:20},placeholder:y?"New Group Name":""}}))}var Om={flex:1},wm={borderLeft:"1px solid "+$.a.border};function Em({component:e,editingIndex:t,args:n,style:r}){let a=Object(o.useContext)(Cp),i=a.months,c=a.type;return i.map((a,o)=>{let i=t===o;return l.a.createElement(vp.a.Provider,{key:o,value:de.w(a,c)},l.a.createElement(W.B,{style:[Om,wm,r]},l.a.createElement(e,Object.assign({monthIndex:o,editing:i},n))))})}var vm={backgroundColor:"white",flexDirection:"row",flexShrink:0,boxShadow:Mp,marginLeft:5,marginRight:5+Up(),borderRadius:"4px 4px 0 0",borderBottom:"1px solid "+$.a.border},jm={width:200,color:$.a.n4,justifyContent:"center",paddingLeft:18};const Sm=l.a.memo(function({MonthComponent:e}){return l.a.createElement(W.B,{style:vm},l.a.createElement(W.B,{style:jm},"Category"),l.a.createElement(Em,{component:e}))});var xm={fontWeight:600};function Cm({group:e,collapsed:t,editingCell:n,dragState:r,itemPos:a,MonthComponent:o,onEditName:i,onSave:c,onDelete:s,onDragChange:u,onReorderGroup:d,onReorderCategory:f,onToggleCollapse:p,onShowNewCategory:m}){let y=r&&r.item===e,g=hp({type:"group",onDragChange:u,item:e,canDrag:null===n}).dragRef,h=bp({types:"group",id:e.id,onDrop:d}),b=h.dropRef,O=h.dropPos,w=bp({types:"category",id:e.id,onDrop:f,onLongHover:()=>{t&&p(e.id)}}),E=w.dropRef,v=w.dropPos;return l.a.createElement(kt.h,{collapsed:!0,backgroundColor:$.a.n11,style:xm},r&&!r.preview&&"group"===r.type&&l.a.createElement(W.B,{innerRef:b,style:{position:"absolute",left:0,right:0,height:t?kt.g-1:(1+e.categories.length)*(kt.g-1)+1,zIndex:1e4}},l.a.createElement(Ep,{pos:O,offset:{top:1}})),l.a.createElement(Ep,{pos:v,offset:{top:1}}),l.a.createElement(W.B,{innerRef:E,style:{flex:1,flexDirection:"row",opacity:y&&!r.preview?.3:1}},l.a.createElement(bm,{innerRef:g,group:e,editing:n&&"name"===n.cell&&n.id===e.id,dragPreview:y&&r.preview,collapsed:t,onToggleCollapse:p,onEdit:i,onSave:c,onDelete:s,onShowNewCategory:m}),l.a.createElement(Em,{component:o,args:{group:e}})))}var km={flex:1,flexDirection:"row"};function Pm({cat:e,budgetArray:t,editingCell:n,dragState:r,MonthComponent:a,onEditName:o,onEditMonth:i,onSave:c,onDelete:s,onBudgetAction:u,onShowActivity:d,onDragChange:f,onReorder:p}){let m=r&&r.item===e;r&&r.item.id===e.cat_group&&(m=!0);let y=hp({type:"category",onDragChange:f,item:e,canDrag:null===n}).dragRef,g=bp({types:"category",id:e.id,onDrop:p}),h=g.dropRef,b=g.dropPos;return l.a.createElement(kt.h,{innerRef:h,collapsed:!0,backgroundColor:"transparent"},l.a.createElement(Ep,{pos:b,offset:{top:1}}),l.a.createElement(W.B,{style:[km]},l.a.createElement(im,{innerRef:y,category:e,dragPreview:m&&r.preview,dragging:m&&!r.preview,editing:n&&"name"===n.cell&&n.id===e.id,onEditName:o,onSave:c,onDelete:s,onDragChange:f}),l.a.createElement(Em,{component:a,editingIndex:n&&n.id===e.id&&n.cell,args:{category:e,onEdit:i,onBudgetAction:u,onShowActivity:d}})))}var Am={fontWeight:600};function Dm({group:e,editingCell:t,collapsed:n,MonthComponent:r,onEditName:a,onSave:o,onToggleCollapse:i,onShowNewCategory:c}){return l.a.createElement(kt.h,{collapsed:!0,backgroundColor:$.a.n11,style:Am},l.a.createElement(bm,{group:e,collapsed:n,editing:t&&"name"===t.cell&&t.id===e.id,onEdit:a,onSave:o,onToggleCollapse:i,onShowNewCategory:c}),l.a.createElement(Em,{component:r,args:{group:e}}))}function Bm({cat:e,isLast:t,editingCell:n,MonthComponent:r,onEditName:a,onEditMonth:o,onSave:i,onDelete:c,onDragChange:s,onBudgetAction:u,onReorder:d,onShowActivity:f}){let p=hp({type:"income-category",onDragChange:s,item:e,canDrag:null===n}).dragRef,m=bp({types:"income-category",id:e.id,onDrop:d}),y=m.dropRef,g=m.dropPos;return l.a.createElement(kt.h,{innerRef:y,collapsed:!0,backgroundColor:"transparent"},l.a.createElement(Ep,{pos:g,offset:{top:1}}),l.a.createElement(im,{innerRef:p,category:e,isLast:t,editing:n&&"name"===n.cell&&n.id===e.id,onEditName:a,onSave:i,onDelete:c}),l.a.createElement(Em,{component:r,editingIndex:n&&n.id===e.id&&n.cell,args:{category:e,onEdit:o,isLast:t,onShowActivity:f,onBudgetAction:u}}))}var Im={marginBottom:10,backgroundColor:"white",overflow:"hidden",boxShadow:Mp,borderRadius:"0 0 4px 4px",flex:1},Tm={backgroundColor:$.a.n11},Mm={height:70,backgroundColor:"white"},Rm={":hover":{backgroundColor:"#fcfcfc"}};const _m=l.a.memo(({categoryGroups:e,newCategoryForGroup:t,isAddingGroup:n,editingCell:r,collapsed:a,setCollapsed:i,dataComponents:c,onBudgetAction:s,onShowActivity:u,onEditName:d,onEditMonth:f,onSaveCategory:p,onSaveGroup:m,onDeleteCategory:y,onDeleteGroup:g,onReorderCategory:h,onReorderGroup:b,onShowNewCategory:O,onHideNewCategory:w,onShowNewGroup:E,onHideNewGroup:v})=>{let j=Object(o.useMemo)(()=>{let r=Rp(function(e){return[e.filter(e=>!e.is_income),e.find(e=>e.is_income)]}(e),2),o=r[0],l=r[1],i=Array.prototype.concat.apply([],o.map(e=>{let n=[{type:"expense-group",value:e}];return t===e.id&&n.push({type:"new-category"}),[...n,...(a.includes(e.id)?[]:e.categories).map(e=>({type:"expense-category",value:e}))]}));return n&&i.push({type:"new-group"}),l&&(i=i.concat([{type:"income-separator"},{type:"income-group",value:l},t===l.id&&{type:"new-category"},...(a.includes(l.id)?[]:l.categories).map(e=>({type:"income-category",value:e}))].filter(e=>e))),i},[e,a,t,n]),S=Rp(Object(o.useState)(null),2),x=S[0],C=S[1],k=Rp(Object(o.useState)(null),2),P=k[0],A=k[1];function D(e){let t=e.state;"start-preview"===t?C({type:e.type,item:e.item,preview:!0}):"start"===t?x&&(C(Np(Np({},x),{},{preview:!1})),A(a)):"hover"===t?C(Np(Np({},x),{},{hoveredId:e.id,hoveredPos:e.pos})):"end"===t&&(C(null),i(P))}function B(e){a.includes(e)?i(a.filter(t=>t!==e)):i([...a,e])}return l.a.createElement(W.B,{style:Im},j.map((n,o)=>{let i;switch(n.type){case"new-group":i=l.a.createElement(kt.h,{style:Tm},l.a.createElement(bm,{group:{id:"new",name:""},editing:!0,onSave:m,onHideNewGroup:v,onEdit:d}));break;case"new-category":i=l.a.createElement(kt.h,null,l.a.createElement(im,{category:{name:"",cat_group:t,is_income:t===e.find(e=>e.is_income).id,id:"new"},editing:!0,onSave:p,onHideNewCategory:w,onEditName:d}));break;case"expense-group":i=l.a.createElement(Cm,{group:n.value,editingCell:r,collapsed:a.includes(n.value.id),MonthComponent:c.ExpenseGroupComponent,dragState:x,onEditName:d,onSave:m,onDelete:g,onDragChange:D,onReorderGroup:b,onReorderCategory:h,onToggleCollapse:B,onShowNewCategory:O});break;case"expense-category":i=l.a.createElement(Pm,{cat:n.value,editingCell:r,MonthComponent:c.ExpenseCategoryComponent,dragState:x,onEditName:d,onEditMonth:f,onSave:p,onDelete:y,onDragChange:D,onReorder:h,onBudgetAction:s,onShowActivity:u});break;case"income-separator":i=l.a.createElement(W.B,{style:Mm},l.a.createElement(zm,{MonthComponent:c.IncomeHeaderComponent,onShowNewGroup:E}));break;case"income-group":i=l.a.createElement(Dm,{group:n.value,editingCell:r,MonthComponent:c.IncomeGroupComponent,collapsed:a.includes(n.value.id),onEditName:d,onSave:m,onToggleCollapse:B,onShowNewCategory:O});break;case"income-category":i=l.a.createElement(Bm,{cat:n.value,editingCell:r,isLast:o===j.length-1,MonthComponent:c.IncomeCategoryComponent,onEditName:d,onEditMonth:f,onSave:p,onDelete:y,onDragChange:D,onReorder:h,onBudgetAction:s,onShowActivity:u});break;default:throw new Error("Unknown item type: "+n.type)}let S=0===o?"first":o===j.length-1?"last":null;return l.a.createElement(Op.Provider,{key:n.value?n.value.id:"income-separator"===n.type?"separator":o,value:S},l.a.createElement(W.B,{style:!x&&Rm},i))}))});var Lm={flexDirection:"row",flex:1},Nm={width:200,alignItems:"flex-start",justifyContent:"flex-start"},Fm={fontSize:12,margin:10},Um={border:0,justifyContent:"flex-end"};function zm({MonthComponent:e,onShowNewGroup:t}){return l.a.createElement(W.B,{style:Lm},l.a.createElement(W.B,{style:Nm},l.a.createElement(W.d,{onClick:t,style:Fm},"Add Group")),l.a.createElement(Em,{component:e,style:Um}))}var Wm={marginLeft:205,flexShrink:0},$m={marginRight:5+Up()},Gm={paddingTop:5};const Hm=l.a.memo(({startMonth:e,onMonthSelect:t,numMonths:n,monthBounds:r,style:a})=>{return l.a.createElement(W.B,{style:Wm},l.a.createElement(W.B,{style:$m},l.a.createElement(ny,{startMonth:e,numDisplayed:n,monthBounds:r,style:Gm,onSelect:e=>t(function(e){let t=r.start,a=de.y(r.end,n-1);return e<t?t:e>a?a:e}(e))})))});var qm={flexDirection:"row",alignItems:"center",justifyContent:"space-between"},Ym={padding:"3px 0px",margin:"3px 0",fontWeight:"bold",fontSize:14,flex:"0 0 40px"},Vm={flexDirection:"row",flex:1,alignItems:"center",justifyContent:"center"},Km={color:$.a.n7},Qm={backgroundColor:$.a.p6,color:"white",borderRadius:0},Zm={borderTopLeftRadius:2,borderBottomLeftRadius:2},Jm={borderTopRightRadius:2,borderBottomRightRadius:2},Xm={marginRight:0,borderRight:"solid 1px",borderColor:$.a.p6},ey={textDecoration:"underline"},ty={flexDirection:"row",alignItems:"center",flex:"0 0 50px",justifyContent:"flex-end"};const ny=Object(qr.scope)(e=>{function t(e,t){return de.o(e)===de.o(t)?de.g(t,"MMM"):null}return e(function({state:{monthNames:e,currentMonthName:t},props:{startMonth:n,numDisplayed:r,monthBounds:a,style:o,onSelect:i}}){const c=de.o(n),s=de.k(n);return l.a.createElement(W.B,{style:[qm,o]},l.a.createElement(W.B,{style:Ym},de.g(c,"yyyy")),l.a.createElement(fp,{sizes:[{width:320,size:"small"},{width:400,size:"medium"},{size:"big"}]},(n,o)=>l.a.createElement(W.B,{innerRef:o,style:Vm},e.map((e,o)=>{const u=s+r,d=o>=s&&o<u,f=e===t,p=function(e,t){return de.b(e,t)}(c,o),m=p>=a.start&&p<=a.end;return l.a.createElement(W.B,{key:e,style:[{marginRight:1,padding:n&&"big"===n.size?"3px 5px":"3px 3px",textAlign:"center",cursor:"default",borderRadius:2,":hover":m&&{backgroundColor:$.a.p6,color:"white"}},!m&&Km,$.c.smallText,d&&Qm,o===s&&Zm,o===u-1&&Jm,o>=s&&o<u-1&&Xm,f&&ey],onClick:()=>i(p)},n&&"small"===n.size?e[0]:e)}))),l.a.createElement(W.B,{style:ty},l.a.createElement(W.d,{onClick:()=>i(de.y(n,1)),bare:!0},l.a.createElement(lp,{width:12,height:12})),l.a.createElement(W.d,{onClick:()=>i(de.b(n,1)),bare:!0},l.a.createElement(up,{width:12,height:12}))))},{getInitialState:function({props:{startMonth:e,monthBounds:n}}){const r=de.d();var a;return{monthNames:(a=r,de.v(de.q(a),de.p(a))).map(e=>de.g(e,"MMM")),currentMonthName:t(e,r)}},componentWillReceiveProps:function({props:e},n){if(de.o(e.startMonth)!==de.o(n.startMonth))return{currentMonthName:t(n.startMonth,de.d())}}})}),ry=["width","height","categoryGroups","prewarmStartMonth","startMonth","maxMonths","monthBounds","onMonthSelect","onPreload"];function ay(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}const oy=l.a.forwardRef((e,t)=>{let n=e.width,r=e.height,a=e.categoryGroups,i=e.prewarmStartMonth,c=e.startMonth,s=e.maxMonths,u=void 0===s?3:s,d=e.monthBounds,f=e.onMonthSelect,p=(e.onPreload,ay(e,ry)),m=z().setDisplayMax,y=function(e){let t=e-200;return t<500?1:t<750?2:t<1e3?3:t<1250?4:t<1500?5:6}(n),g=Math.min(y,u),h=200+500*g;return Object(o.useEffect)(()=>{m(y)},[y]),l.a.createElement(Qf.Provider,{value:a},l.a.createElement(W.B,{style:{width:n,height:r,alignItems:"center",opacity:n<=0||r<=0?0:1}},l.a.createElement(W.B,{style:{width:"100%",maxWidth:h}},l.a.createElement(Hm,{startMonth:i,numMonths:g,monthBounds:d,onMonthSelect:function(e){f(e,g)}}),l.a.createElement(qp,Object.assign({ref:t,categoryGroups:a,prewarmStartMonth:i,startMonth:c,numMonths:g,monthBounds:d},p)))))});var ly=l.a.forwardRef((e,t)=>l.a.createElement(Kf.a,null,({width:n,height:r})=>l.a.createElement(oy,Object.assign({ref:t,width:n,height:r},e))));function iy(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function cy(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?iy(Object(n),!0).forEach(function(t){sy(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):iy(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function sy(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var uy={textAlign:"right"},dy={cursor:"pointer",":hover":{textDecoration:"underline"}},fy={alignSelf:"center",marginLeft:2,position:"absolute",right:-4,top:0,bottom:0,justifyContent:"center"};function py({carryover:e,balance:t,category:n,disabled:r}){let a=Object(Ct.a)(e),o=Object(Ct.a)(t);return l.a.createElement(l.a.Fragment,null,l.a.createElement(xt,{binding:t,type:"financial",getStyle:Xf,style:[uy,!r&&dy]}),!0===a&&l.a.createElement(W.B,{style:fy},l.a.createElement(up,{width:7,height:7,style:cy({},Xf(o))})))}function my(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function yy(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?my(Object(n),!0).forEach(function(t){gy(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):my(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function gy(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var hy=e=>l.a.createElement("svg",Object.assign({},e,{viewBox:"0 0 24 24",style:yy({color:"#242134"},e.style)}),l.a.createElement("path",{d:"M12 13.584a2.643 2.643 0 0 1-1.875-.775L.584 3.268a1.768 1.768 0 0 1 2.5-2.5l8.739 8.739a.25.25 0 0 0 .354 0L20.916.768a1.768 1.768 0 0 1 2.5 2.5l-9.541 9.541a2.643 2.643 0 0 1-1.875.775z",fill:"currentColor"}),l.a.createElement("path",{d:"M12 23.75a2.643 2.643 0 0 1-1.875-.775L.584 13.434a1.768 1.768 0 0 1 2.5-2.5l8.739 8.739a.25.25 0 0 0 .354 0l8.739-8.739a1.768 1.768 0 0 1 2.5 2.5l-9.541 9.541A2.643 2.643 0 0 1 12 23.75z",fill:"currentColor"}));function by(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Oy(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?by(Object(n),!0).forEach(function(t){wy(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):by(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function wy(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Ey=e=>l.a.createElement("svg",Object.assign({},e,{viewBox:"0 0 24 24",style:Oy({color:"#242134"},e.style)}),l.a.createElement("path",{d:"M12 10.416a2.643 2.643 0 0 1 1.875.775l9.541 9.541a1.768 1.768 0 0 1-2.5 2.5l-8.739-8.739a.25.25 0 0 0-.354 0l-8.739 8.739a1.768 1.768 0 0 1-2.5-2.5l9.541-9.541A2.643 2.643 0 0 1 12 10.416z",fill:"currentColor"}),l.a.createElement("path",{d:"M12 .25a2.643 2.643 0 0 1 1.875.775l9.541 9.541a1.768 1.768 0 0 1-2.5 2.5l-8.739-8.739a.25.25 0 0 0-.354 0l-8.739 8.739a1.768 1.768 0 0 1-2.5-2.5l9.541-9.541A2.643 2.643 0 0 1 12 .25z",fill:"currentColor"}));let vy=l.a.createContext(null);function jy({summaryCollapsed:e,onBudgetAction:t,onToggleSummaryCollapse:n,children:r}){let a=de.d();return l.a.createElement(vy.Provider,{value:{currentMonth:a,summaryCollapsed:e,onBudgetAction:t,onToggleSummaryCollapse:n},children:r})}function Sy(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return xy(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return xy(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function xy(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Cy({style:e,progress:t,color:n,backgroundColor:r}){let a=2*Math.PI*4,o=t*a,i=a;return l.a.createElement("svg",{viewBox:"0 0 20 20",style:e},l.a.createElement("circle",{r:"10",cx:"10",cy:"10",fill:r}),l.a.createElement("circle",{r:4,cx:"10",cy:"10",fill:"none",stroke:n,strokeWidth:8,strokeDasharray:`${o} ${i}`,transform:"rotate(-90) translate(-20)"})," ")}function ky(e,t){return 0===t?e>0?1:0:e/t}var Py={width:20,height:20};function Ay({current:e,target:t}){let n=Object(Ct.a)(e)||0,r=!1;n<0&&(r=!0,n=-n);let a=ky(n,Object(Ct.a)(t)||0);return l.a.createElement(Cy,{progress:a,color:r?$.a.r7:$.a.g5,backgroundColor:r?$.a.r10:$.a.n10,style:Py})}var Dy={width:20,height:20};function By({current:e,target:t}){let n,r=Object(Ct.a)(e)||0,a=Object(Ct.a)(t)||0,o=!1;return(r=Math.max(-r,0))>a?(n=(r-a)/a,o=!0):n=ky(r,a),l.a.createElement(Cy,{progress:n,color:o?$.a.r7:$.a.g5,backgroundColor:o?$.a.r10:$.a.n10,style:Dy})}var Iy={lineHeight:1.5,flexDirection:"row",alignItems:"center",fontSize:14},Ty={marginLeft:10},My={color:$.a.n4},Ry={color:$.a.n6,fontStyle:"italic"};function _y({title:e,current:t,target:n,ProgressComponent:r,style:a}){return l.a.createElement(W.B,{style:[Iy,a]},l.a.createElement(r,{current:t,target:n}),l.a.createElement(W.B,{style:Ty},l.a.createElement(W.B,null,l.a.createElement(W.y,{style:My},e)),l.a.createElement(W.y,null,l.a.createElement(xt,{binding:t,type:"financial"}),l.a.createElement(W.y,{style:Ry}," of ",l.a.createElement(xt,{binding:n,type:"financial",style:$.c.notFixed})))))}function Ly({projected:e,style:t}){return l.a.createElement(_y,{title:"Income",current:Ne.totalIncome,target:Ne.totalBudgetedIncome,ProgressComponent:Ay,style:t})}function Ny({style:e}){return l.a.createElement(_y,{title:"Expenses",current:Ne.totalSpent,target:Ne.totalBudgetedExpense,ProgressComponent:By,style:e})}var Fy={alignItems:"center",fontSize:14},Uy={color:$.a.n4},zy={color:$.a.n4},Wy={padding:10,fontSize:14};function $y({projected:e,style:t}){let n=Object(Ct.a)(Ne.totalBudgetedSaved)||0,r=Object(Ct.a)(Ne.totalSaved)||0,a=e?n:r,o=a<0;return l.a.createElement(W.B,{style:[Fy,t]},e?l.a.createElement(W.y,{style:Uy},"Projected Savings:"):l.a.createElement(W.B,{style:zy},o?"Overspent:":"Saved:"),l.a.createElement(W.k,{renderContent:()=>{if(!e){let e=r-n;return l.a.createElement(W.A,{position:"bottom-center",style:Wy},l.a.createElement(W.a,{left:"Projected Savings:",right:l.a.createElement(W.y,{style:[ep(n),$.c.tnum]},Object(jt.a)(n,"financial-with-sign"))}),l.a.createElement(W.a,{left:"Difference:",right:l.a.createElement(W.y,{style:[ep(e),$.c.tnum]},Object(jt.a)(e,"financial-with-sign"))}))}return null}},l.a.createElement(W.B,Object(lt.css)([{fontSize:25,color:e?$.a.y3:o?$.a.r4:$.a.p5}]),Object(jt.a)(a,"financial"))))}var Gy={backgroundColor:"white",boxShadow:Mp,borderRadius:6,marginLeft:0,marginRight:0,marginTop:5,flex:1,cursor:"default",marginBottom:5,overflow:"hidden","& .hover-visible":{opacity:0,transition:"opacity .25s"},"&:hover .hover-visible":{opacity:1}},Hy={padding:"0 13px"},qy={margin:"10px 0"},Yy={marginTop:16},Vy={position:"absolute",left:10,top:0},Ky={color:$.a.n6,margin:1},Qy={textAlign:"center",marginTop:3,fontSize:18,fontWeight:500,textDecorationSkip:"ink"},Zy={textDecoration:"underline"},Jy={position:"absolute",right:10,top:0,flexDirection:"row",alignItems:"center"},Xy={userSelect:"none"},eg={color:$.a.n5},tg={padding:0},ng={alignSelf:"center",backgroundColor:$.a.n11,borderRadius:4,padding:"10px 15px",marginTop:13},rg={alignItems:"center",padding:"10px 20px",justifyContent:"space-between",backgroundColor:$.a.n11,borderTop:"1px solid "+$.a.n10},ag={marginTop:13,marginBottom:20},og=l.a.memo(function({month:e}){let t=Object(o.useContext)(vy),n=t.currentMonth,r=t.summaryCollapsed,a=t.onBudgetAction,i=t.onToggleSummaryCollapse,c=Sy(Object(o.useState)(!1),2),s=c[0],u=c[1];function d(e){u(!1)}let f=r?hy:Ey;return l.a.createElement(W.B,{style:Gy},l.a.createElement(vp.a.Provider,{value:de.w(e,"report")},l.a.createElement(W.B,{style:[Hy,r?qy:Yy]},l.a.createElement(W.B,{style:Vy},l.a.createElement(W.d,{className:"hover-visible",bare:!0,onClick:i},l.a.createElement(f,{width:13,height:13,style:Ky}))),l.a.createElement("div",Object(lt.css)([Qy,n===e&&Zy]),de.g(e,"MMMM")),l.a.createElement(W.B,{style:Jy},l.a.createElement(W.B,null,l.a.createElement(Et,{id:`budget-${e}`,width:15,height:15,tooltipPosition:"bottom-right",defaultColor:$.a.n6})),l.a.createElement(W.B,{style:Xy},l.a.createElement(W.d,{bare:!0,onClick:function(e){u(!0)}},l.a.createElement(Mt.a,{width:15,height:15,style:eg})),s&&l.a.createElement(W.A,{position:"bottom-right",width:200,style:tg,onClose:d},l.a.createElement(W.s,{onMenuSelect:t=>{d(),a(e,t)},items:[{name:"copy-last",text:"Copy last month's budget"},{name:"set-zero",text:"Set budgets to zero"},{name:"set-3-avg",text:"Set budgets to 3 month avg"}]}))))),!r&&l.a.createElement(W.x,{spacing:2,style:ng},l.a.createElement(Ly,null),l.a.createElement(Ny,null)),r?l.a.createElement(W.B,{style:rg},l.a.createElement($y,{projected:e>=n})):l.a.createElement($y,{projected:e>=n,style:ag})))});let lg={flex:1,padding:"0 5px",textAlign:"right"};var ig={flex:1,flexDirection:"row",marginRight:5,paddingTop:10,paddingBottom:10},cg={color:$.a.n4},sg={color:$.a.n4,fontWeight:600},ug={color:$.a.n4},dg={color:$.a.n4,fontWeight:600},fg={color:$.a.n4},pg={color:$.a.n4,fontWeight:600};const mg=l.a.memo(function(){return l.a.createElement(W.B,{style:ig},l.a.createElement(W.B,{style:lg},l.a.createElement(W.y,{style:cg},"Budgeted"),l.a.createElement(xt,{binding:Ne.totalBudgetedExpense,type:"financial",style:sg,formatter:e=>Object(jt.a)(parseFloat(e||"0"),"financial")})),l.a.createElement(W.B,{style:lg},l.a.createElement(W.y,{style:ug},"Spent"),l.a.createElement(xt,{binding:Ne.totalSpent,type:"financial",style:dg})),l.a.createElement(W.B,{style:lg},l.a.createElement(W.y,{style:fg},"Balance"),l.a.createElement(xt,{binding:Ne.totalLeftover,type:"financial",style:pg})))});var yg={flexDirection:"row",marginRight:5,paddingBottom:5},gg={color:$.a.n4},hg={color:$.a.n4};function bg(){return l.a.createElement(W.B,{style:yg},l.a.createElement(W.B,{style:lg},l.a.createElement(W.y,{style:gg},"Budgeted")),l.a.createElement(W.B,{style:lg},l.a.createElement(W.y,{style:hg},"Received")))}var Og={flex:1,flexDirection:"row"},wg={fontWeight:600},Eg={fontWeight:600},vg={fontWeight:600,paddingRight:5};const jg=l.a.memo(function({group:e}){let t=$.a.border,n=e.id;return l.a.createElement(W.B,{style:Og},l.a.createElement(kt.k,{name:"budgeted",width:"flex",borderColor:t,textAlign:"right",style:[wg,$.c.tnum],valueProps:{binding:Ne.groupBudgeted(n),type:"financial"}}),l.a.createElement(kt.k,{name:"spent",width:"flex",textAlign:"right",borderColor:t,style:[Eg,$.c.tnum],valueProps:{binding:Ne.groupSumAmount(n),type:"financial"}}),!e.is_income&&l.a.createElement(kt.k,{name:"balance",width:"flex",borderColor:t,textAlign:"right",style:[vg,$.c.tnum],valueProps:{binding:Ne.groupBalance(n),type:"financial"}}))});var Sg={padding:0};function xg({categoryId:e,tooltip:t,monthIndex:n,onBudgetAction:r}){let a=Object(Ct.a)(Ne.catCarryover(e));return l.a.createElement(W.A,{position:"bottom-right",width:200,style:Sg,onClose:t.close},l.a.createElement(W.s,{onMenuSelect:o=>{r(n,"carryover",{category:e,flag:!a}),t.close()},items:[{name:"carryover",text:a?"Remove overspending rollover":"Rollover overspending"}]}))}var Cg={flex:1,flexDirection:"row"},kg={zIndex:100},Pg={cursor:"default",margin:1,padding:"0 4px",borderRadius:4},Ag={":hover":{boxShadow:"inset 0 0 0 1px "+$.a.n7,backgroundColor:"white"}},Dg={textAlign:"right"},Bg={cursor:"pointer",":hover":{textDecoration:"underline"}},Ig={paddingRight:5,textAlign:"right"};const Tg=l.a.memo(function({monthIndex:e,category:t,budgeted:n,currentSum:r,balance:a,editing:o,onEdit:i,onBudgetAction:c,onShowActivity:s}){let u=$.a.border,d=Object(W.D)();return l.a.createElement(W.B,{style:Cg},l.a.createElement(kt.k,{name:"budget",sync:!0,exposed:o,width:"flex",borderColor:u,onExpose:()=>i(t.id,e),style:[o&&kg,$.c.tnum],textAlign:"right",valueStyle:[Pg,Ag],valueProps:{binding:Ne.catBudgeted(t.id),type:"financial",getValueStyle:Jf,formatExpr:e=>Object(Pe.k)(e),unformatExpr:e=>Object(Pe.b)(vi(e,0))},inputProps:{onBlur:()=>{i(null)}},onSave:n=>{c(e,"budget-amount",{category:t.id,amount:n})}}),l.a.createElement(kt.e,{name:"spent",width:"flex",borderColor:u,style:Dg},l.a.createElement("span",{onClick:()=>s(t.name,t.id,e)},l.a.createElement(xt,{binding:Ne.catSumAmount(t.id),type:"financial",getStyle:Jf,style:Bg}))),!t.is_income&&l.a.createElement(kt.e,{name:"balance",width:"flex",borderColor:u,style:Ig},l.a.createElement("span",t.is_income?{}:d.getOpenEvents(),l.a.createElement(py,{category:t,disabled:t.is_income,carryover:Ne.catCarryover(t.id),balance:Ne.catBalance(t.id)})),d.isOpen&&l.a.createElement(xg,{categoryId:t.id,tooltip:d,monthIndex:e,onBudgetAction:c})))}),Mg=jg,Rg=Tg,_g=jg,Lg=Tg;function Ng(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return Fg(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Fg(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Fg(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var Ug={padding:10},zg={marginBottom:5},Wg={margin:"10px 0 5px 0"},$g={alignItems:"flex-end",marginTop:10},Gg={fontSize:12,paddingTop:3,paddingBottom:3};function Hg({initialAmount:e,initialAmountName:t,showToBeBudgeted:n,tooltipProps:r,onSubmit:a,onClose:i}){let c=Object(o.useContext)(I.a),s=Object(o.useContext)(vp.a),u=Object(o.useContext)(Qf);u=u.filter(e=>!e.is_income),n&&(u=Zf(u));let d=Ng(Object(o.useState)(null),2),f=d[0],p=d[1],m=Ng(Object(o.useState)(null),2),y=m[0],g=m[1];function h(){let e=vi(f,null);e&&y&&(a(Object(Pe.b)(e),y),i())}return Object(o.useEffect)(()=>{(async()=>{if(t){const e=await c.get(s,t);p(Object(Pe.k)(Math.max(e.value,0)))}else p(Object(Pe.k)(Math.max(e,0)))})()},[]),null===f?null:l.a.createElement(W.A,Object.assign({position:"bottom-right",width:200,style:Ug},r,{onClose:i}),l.a.createElement(W.B,{style:zg},"Transfer this amount:"),l.a.createElement(W.B,null,l.a.createElement(W.l,null,l.a.createElement(W.n,{value:f,onChange:e=>p(e.target.value),onEnter:h}))),l.a.createElement(W.B,{style:Wg},"To:"),l.a.createElement(yo,{categoryGroups:u,value:null,openOnFocus:!1,onUpdate:e=>{},onSelect:e=>g(e),inputProps:{onKeyDown:e=>{13===e.keyCode&&h()}}}),l.a.createElement(W.B,{style:$g},l.a.createElement(W.d,{primary:!0,style:Gg,onClick:h},"Transfer")))}var qg=n(135);function Yg(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return Vg(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Vg(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Vg(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var Kg={padding:10},Qg={marginBottom:5},Zg={alignItems:"flex-end",marginTop:10},Jg={fontSize:12,paddingTop:3,paddingBottom:3};function Xg({onSubmit:e,onClose:t}){const n=Object(o.useContext)(I.a),r=Object(o.useContext)(vp.a),a=Yg(Object(o.useState)(null),2),i=a[0],c=a[1];function s(){const n=vi(i,null);n&&e(Object(Pe.b)(n)),t()}return Object(o.useEffect)(()=>{(async()=>{const e=await n.get(r,"to-budget");c(Object(Pe.k)(Math.max(e.value,0)))})()},[]),null===i?null:l.a.createElement(W.A,{position:"bottom-right",width:200,style:Kg,onClose:t},l.a.createElement(W.B,{style:Qg},"Hold this amount:"),l.a.createElement(W.B,null,l.a.createElement(W.l,null,l.a.createElement(W.n,{value:i,onChange:e=>c(e.target.value),onEnter:s}))),l.a.createElement(W.B,{style:Zg},l.a.createElement(W.d,{primary:!0,style:Jg,onClick:s},"Hold")))}let eh=l.a.createContext(null);function th({categoryGroups:e,summaryCollapsed:t,onBudgetAction:n,onToggleSummaryCollapse:r,children:a}){let o=de.d();return l.a.createElement(eh.Provider,{value:{currentMonth:o,categoryGroups:e,summaryCollapsed:t,onBudgetAction:n,onToggleSummaryCollapse:r},children:a})}function nh(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return rh(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return rh(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function rh(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var ah={flexDirection:"row",lineHeight:1.5,justifyContent:"center"},oh={padding:"5px 0",marginTop:17,backgroundColor:$.a.n11,borderTopWidth:1,borderBottomWidth:1,borderColor:$.a.n9},lh={padding:7},ih={textAlign:"right",marginRight:10,minWidth:50},ch={flexShrink:0},sh={lineHeight:1.5,padding:"6px 10px"},uh={fontWeight:600},dh={fontWeight:600},fh={fontWeight:600},ph={fontWeight:600};function mh({prevMonthName:e,collapsed:t}){return l.a.createElement(W.B,{style:[ah,!t&&oh,t&&lh,$.c.smallText]},l.a.createElement(W.B,{style:ih},l.a.createElement(W.k,{style:ch,renderContent:()=>l.a.createElement(W.A,{width:200,style:sh},l.a.createElement(W.a,{left:"Income:",right:l.a.createElement(xt,{binding:Le.totalIncome,type:"financial"})}),l.a.createElement(W.a,{left:"From Last Month:",right:l.a.createElement(xt,{binding:Le.fromLastMonth,type:"financial"})}))},l.a.createElement(xt,{binding:Le.incomeAvailable,type:"financial",style:uh})),l.a.createElement(xt,{binding:Le.lastMonthOverspent,formatter:e=>{let t=Object(jt.a)(e,"financial");return e>0?"+"+t:0===e?"-"+t:t},style:[dh,$.c.tnum]}),l.a.createElement(xt,{binding:Le.totalBudgeted,formatter:e=>{let t=Object(jt.a)(e,"financial");return e>0?"+"+t:0===e?"-"+t:t},style:[fh,$.c.tnum]}),l.a.createElement(xt,{binding:Le.forNextMonth,formatter:e=>{let t=parseInt(e)||0,n=Object(jt.a)(Math.abs(t),"financial");return t>=0?"-"+n:"+"+n},style:[ph,$.c.tnum]})),l.a.createElement(W.B,null,l.a.createElement(W.c,null,"Available Funds"),l.a.createElement(W.c,null,"Overspent in ",e),l.a.createElement(W.c,null,"Budgeted"),l.a.createElement(W.c,null,"For Next Month")))}var yh={alignItems:"center"},gh={padding:0};function hh({month:e,prevMonthName:t,collapsed:n,onBudgetAction:r}){return l.a.createElement(St.a,{binding:Le.toBudget,initialValue:0},a=>{const o=parseInt(a.value),i=isNaN(o)?0:o,c=i<0;var s={fontWeight:400,userSelect:"none",cursor:"pointer",color:c?$.a.r4:$.a.p5,marginBottom:-1,borderBottom:"1px solid transparent",":hover":{borderColor:c?$.a.r4:$.a.p5}};return l.a.createElement(W.B,{style:yh},l.a.createElement(W.c,null,c?"Overbudgeted:":"To Budget:"),l.a.createElement(qg.a,{initialState:{menuOpen:null}},({state:o,setState:c})=>l.a.createElement(W.B,null,l.a.createElement(W.k,{disabled:!n||o.menuOpen,renderContent:()=>l.a.createElement(W.A,{position:"bottom-center"},l.a.createElement(mh,{collapsed:!0,prevMonthName:t}))},l.a.createElement(W.c,Object.assign({onClick:()=>c({menuOpen:"actions"}),"data-cellname":a.name},Object(lt.css)([$.c.veryLargeText,s])),Object(jt.a)(i,"financial"))),"actions"===o.menuOpen&&l.a.createElement(W.A,{position:"bottom-center",width:200,style:gh,onClose:()=>c({menuOpen:null})},l.a.createElement(W.s,{onMenuSelect:t=>{"reset-buffer"===t?(r(e,"reset-hold"),c({menuOpen:null})):c({menuOpen:t})},items:[{name:"transfer",text:"Move to a category"},{name:"buffer",text:"Hold for next month"},{name:"reset-buffer",text:"Reset next month's buffer"}]})),"buffer"===o.menuOpen&&l.a.createElement(Xg,{onClose:()=>c({menuOpen:null}),onSubmit:t=>{r(e,"hold",{amount:t})}}),"transfer"===o.menuOpen&&l.a.createElement(Hg,{initialAmountName:"leftover",onClose:()=>c({menuOpen:null}),onSubmit:(t,n)=>{r(e,"transfer-available",{amount:t,category:n})}}))))})}var bh={backgroundColor:"white",boxShadow:Mp,borderRadius:6,marginLeft:0,marginRight:0,marginTop:5,flex:1,cursor:"default",marginBottom:5,overflow:"hidden","& .hover-visible":{opacity:0,transition:"opacity .25s"},"&:hover .hover-visible":{opacity:1}},Oh={padding:"0 13px"},wh={margin:"10px 0"},Eh={marginTop:16},vh={position:"absolute",left:10,top:0},jh={color:$.a.n6,margin:1},Sh={textAlign:"center",marginTop:3,fontSize:18,fontWeight:500,textDecorationSkip:"ink"},xh={textDecoration:"underline"},Ch={position:"absolute",right:10,top:0,flexDirection:"row",alignItems:"center"},kh={userSelect:"none",marginLeft:2},Ph={color:$.a.n5},Ah={padding:0},Dh={alignItems:"center",padding:"10px 20px",justifyContent:"space-between",backgroundColor:$.a.n11,borderTop:"1px solid "+$.a.n10},Bh={margin:"23px 0"},Ih=l.a.memo(function({month:e}){let t=Object(o.useContext)(eh),n=t.currentMonth,r=t.summaryCollapsed,a=t.onBudgetAction,i=t.onToggleSummaryCollapse,c=nh(Object(o.useState)(!1),2),s=c[0],u=c[1];function d(e){u(!1)}let f=de.g(de.u(e),"MMM"),p=r?hy:Ey;return l.a.createElement(W.B,{style:bh},l.a.createElement(vp.a.Provider,{value:de.w(e)},l.a.createElement(W.B,{style:[Oh,r?wh:Eh]},l.a.createElement(W.B,{style:vh},l.a.createElement(W.d,{className:"hover-visible",bare:!0,onClick:i},l.a.createElement(p,{width:13,height:13,style:jh}))),l.a.createElement("div",Object(lt.css)([Sh,n===e&&xh]),de.g(e,"MMMM")),l.a.createElement(W.B,{style:Ch},l.a.createElement(W.B,null,l.a.createElement(Et,{id:`budget-${e}`,width:15,height:15,tooltipPosition:"bottom-right",defaultColor:$.a.n6})),l.a.createElement(W.B,{style:kh},l.a.createElement(W.d,{bare:!0,onClick:function(e){u(!0)}},l.a.createElement(Mt.a,{width:15,height:15,style:Ph})),s&&l.a.createElement(W.A,{position:"bottom-right",width:200,style:Ah,onClose:d},l.a.createElement(W.s,{onMenuSelect:t=>{d(),a(e,t)},items:[{name:"copy-last",text:"Copy last month's budget"},{name:"set-zero",text:"Set budgets to zero"},{name:"set-3-avg",text:"Set budgets to 3 month avg"}]}))))),r?l.a.createElement(W.B,{style:Dh},l.a.createElement(hh,{collapsed:r,prevMonthName:f,month:e,onBudgetAction:a})):l.a.createElement(l.a.Fragment,null,l.a.createElement(mh,{prevMonthName:f}),l.a.createElement(W.B,{style:Bh},l.a.createElement(hh,{month:e,onBudgetAction:a})))))});function Th(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return Mh(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Mh(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Mh(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var Rh={padding:10},_h={marginBottom:5},Lh={alignItems:"flex-end",marginTop:10},Nh={fontSize:12,paddingTop:3};function Fh({showToBeBudgeted:e,inline:t,tooltipProps:n,onSubmit:r,onClose:a}){let i=Object(o.useContext)(Qf);i=Zf(i.filter(e=>!e.is_income));let c=Th(Object(o.useState)(null),2),s=c[0],u=c[1];function d(){s&&(r(s),a())}return l.a.createElement(W.A,Object.assign({position:"bottom-right",width:200,style:Rh},n,{onClose:a}),l.a.createElement(W.B,{style:_h},"Cover from category:"),l.a.createElement(W.l,null,e=>l.a.createElement(yo,{categoryGroups:i,value:null,openOnFocus:!1,onUpdate:e=>{},onSelect:e=>u(e),inputProps:{inputRef:e,onKeyDown:e=>{13===e.keyCode&&d()}}})),l.a.createElement(W.B,{style:Lh},l.a.createElement(W.d,{primary:!0,style:Nh,onClick:d},"Transfer")))}var Uh={padding:0};function zh({categoryId:e,tooltip:t,monthIndex:n,onBudgetAction:r}){let a=Object(Ct.a)(Le.catCarryover(e)),i=Object(Ct.a)(Le.catBalance(e)),c=Th(Object(o.useState)("menu"),2),s=c[0],u=c[1];return l.a.createElement(l.a.Fragment,null,"menu"===s&&l.a.createElement(W.A,{position:"bottom-right",width:200,style:Uh,onClose:t.close},l.a.createElement(W.s,{onMenuSelect:o=>{"carryover"===o?(r(n,"carryover",{category:e,flag:!a}),t.close()):u(o)},items:[{name:"transfer",text:"Transfer to another category"},{name:"carryover",text:a?"Remove overspending rollover":"Rollover overspending"},i<0&&{name:"cover",text:"Cover overspending"}].filter(e=>e)})),"transfer"===s&&l.a.createElement(Hg,{initialAmountName:Le.catBalance(e),showToBeBudgeted:!0,onClose:t.close,onSubmit:(t,a)=>{r(n,"transfer-category",{amount:t,from:e,to:a})}}),"cover"===s&&l.a.createElement(Fh,{showToBeBudgeted:!0,onClose:t.close,onSubmit:t=>{r(n,"cover",{to:e,from:t})}}))}let Wh={flex:1,padding:"0 5px",textAlign:"right"};var $h={flex:1,flexDirection:"row",marginRight:5,paddingTop:10,paddingBottom:10},Gh={color:$.a.n4},Hh={color:$.a.n4,fontWeight:600},qh={color:$.a.n4},Yh={color:$.a.n4,fontWeight:600},Vh={color:$.a.n4},Kh={color:$.a.n4,fontWeight:600};const Qh=l.a.memo(function(){return l.a.createElement(W.B,{style:$h},l.a.createElement(W.B,{style:Wh},l.a.createElement(W.y,{style:Gh},"Budgeted"),l.a.createElement(xt,{binding:Le.totalBudgeted,type:"financial",style:Hh,formatter:e=>Object(jt.a)(-parseFloat(e||"0"),"financial")})),l.a.createElement(W.B,{style:Wh},l.a.createElement(W.y,{style:qh},"Spent"),l.a.createElement(xt,{binding:Le.totalSpent,type:"financial",style:Yh})),l.a.createElement(W.B,{style:Wh},l.a.createElement(W.y,{style:Vh},"Balance"),l.a.createElement(xt,{binding:Le.totalBalance,type:"financial",style:Kh})))});var Zh={color:$.a.n4,alignItems:"center",paddingRight:10},Jh={flex:1,textAlign:"right"};function Xh(){return l.a.createElement(kt.h,{style:Zh},l.a.createElement(W.B,{style:Jh},"Received"))}var eb={flex:1,flexDirection:"row"},tb={fontWeight:600},nb={fontWeight:600},rb={fontWeight:600,paddingRight:5};const ab=l.a.memo(function({group:e}){let t=$.a.border,n=e.id;return l.a.createElement(W.B,{style:eb},l.a.createElement(kt.k,{name:"budgeted",width:"flex",borderColor:t,textAlign:"right",style:[tb,$.c.tnum],valueProps:{binding:Le.groupBudgeted(n),type:"financial"}}),l.a.createElement(kt.k,{name:"spent",width:"flex",textAlign:"right",borderColor:t,style:[nb,$.c.tnum],valueProps:{binding:Le.groupSumAmount(n),type:"financial"}}),l.a.createElement(kt.k,{name:"balance",width:"flex",borderColor:t,textAlign:"right",style:[rb,$.c.tnum],valueProps:{binding:Le.groupBalance(n),type:"financial"}}))});var ob={flex:1,flexDirection:"row"},lb={zIndex:100},ib={cursor:"default",margin:1,padding:"0 4px",borderRadius:4},cb={":hover":{boxShadow:"inset 0 0 0 1px "+$.a.n7,backgroundColor:"white"}},sb={textAlign:"right"},ub={cursor:"pointer",":hover":{textDecoration:"underline"}},db={paddingRight:5,textAlign:"right"};const fb=l.a.memo(function({monthIndex:e,category:t,editing:n,onEdit:r,onBudgetAction:a,onShowActivity:o}){let i=$.a.border,c=Object(W.D)();return l.a.createElement(W.B,{style:ob},l.a.createElement(kt.k,{name:"budget",sync:!0,exposed:n,width:"flex",borderColor:i,onExpose:()=>r(t.id,e),style:[n&&lb,$.c.tnum],textAlign:"right",valueStyle:[ib,cb],valueProps:{binding:Le.catBudgeted(t.id),type:"financial",getValueStyle:Jf,formatExpr:e=>Object(Pe.k)(e),unformatExpr:e=>Object(Pe.b)(vi(e,0))},inputProps:{onBlur:()=>{r(null)}},onSave:n=>{a(e,"budget-amount",{category:t.id,amount:n})}}),l.a.createElement(kt.e,{name:"spent",width:"flex",borderColor:i,style:sb},l.a.createElement("span",{onClick:()=>o(t.name,t.id,e)},l.a.createElement(xt,{binding:Le.catSumAmount(t.id),type:"financial",getStyle:Jf,style:ub}))),l.a.createElement(kt.e,{name:"balance",width:"flex",borderColor:i,style:db},l.a.createElement("span",c.getOpenEvents(),l.a.createElement(py,{category:t,carryover:Le.catCarryover(t.id),balance:Le.catBalance(t.id)})),c.isOpen&&l.a.createElement(zh,{categoryId:t.id,tooltip:c,monthIndex:e,onBudgetAction:a})))});var pb={flex:1},mb={fontWeight:600,paddingRight:5};function yb({group:e}){return l.a.createElement(W.B,{style:pb},l.a.createElement(kt.k,{name:"received",width:"flex",borderColor:$.a.border,textAlign:"right",style:[mb,$.c.tnum],valueProps:{binding:Le.groupIncomeReceived,type:"financial"}}))}var gb={flex:1},hb={paddingRight:5,textAlign:"right"},bb={borderBottomWidth:0},Ob={cursor:"pointer",":hover":{textDecoration:"underline"}};function wb({category:e,isLast:t,monthIndex:n,onShowActivity:r}){return l.a.createElement(W.B,{style:gb},l.a.createElement(kt.e,{name:"received",width:"flex",borderColor:$.a.border,style:[hb,t&&bb]},l.a.createElement("span",{onClick:()=>r(e.name,e.id,n)},l.a.createElement(xt,{binding:Le.catSumAmount(e.id),type:"financial",style:Ob}))))}var Eb=n(64);function vb(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function jb(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?vb(Object(n),!0).forEach(function(t){Sb(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):vb(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Sb(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var xb=e=>l.a.createElement("svg",Object.assign({},e,{viewBox:"0 0 20 20",style:jb({color:"#242134"},e.style)}),l.a.createElement("path",{d:"M3.828 9l6.071-6.071-1.414-1.414L0 10l.707.707 7.778 7.778 1.414-1.414L3.828 11H20V9H3.828z",fill:"currentColor"}));function Cb(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function kb(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Cb(Object(n),!0).forEach(function(t){Pb(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Cb(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Pb(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Ab=e=>l.a.createElement("svg",Object.assign({},e,{viewBox:"0 0 24 24",style:kb({color:"#242134"},e.style)}),l.a.createElement("rect",{x:.5,y:2.5,width:23,height:3,rx:1,ry:1,fill:"currentColor"}),l.a.createElement("rect",{x:.5,y:10.5,width:23,height:3,rx:1,ry:1,fill:"currentColor"}),l.a.createElement("rect",{x:.5,y:18.5,width:23,height:3,rx:1,ry:1,fill:"currentColor"})),Db=n(84),Bb=n(136);function Ib(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Tb(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ib(Object(n),!0).forEach(function(t){Mb(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ib(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Mb(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Rb=e=>l.a.createElement("svg",Object.assign({},e,{viewBox:"0 0 20 20",style:Tb({color:"#242134"},e.style)}),l.a.createElement("path",{d:"M2.93 17.07A10 10 0 1 1 17.07 2.93 10 10 0 0 1 2.93 17.07zm12.73-1.41A8 8 0 1 0 4.34 4.34a8 8 0 0 0 11.32 11.32zM9 5h2v6H9V5zm0 8h2v2H9v-2z",fill:"currentColor"}));function _b(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return Lb(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Lb(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Lb(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var Nb={flexDirection:"row",alignItems:"center",color:$.a.r5,backgroundColor:$.a.r10,padding:"4px 8px",borderRadius:4},Fb={width:14,height:14,marginRight:5,color:"currentColor"},Ub={fontSize:14,padding:15,maxWidth:400},zb={marginBottom:"1.15em"},Wb={marginBottom:"1.25em",color:$.a.r5},$b={justifyContent:"flex-end",flexDirection:"row"},Gb={marginLeft:5};var Hb=Object(s.b)(e=>({accounts:e.queries.accounts,failedAccounts:e.account.failedAccounts}),y)(function({id:e,accounts:t,failedAccounts:n,syncAndDownload:r,markAccountSuccess:a,unlinkAccount:i,pushModal:c,closeModal:s,getAccounts:u,addNotification:d}){if(!n)return null;let f=n.get(e);if(!f)return null;let p=_b(Object(o.useState)(!1),2),m=p[0],y=p[1],g=t.find(t=>t.id===e),h=f.type,b=f.code,O="ITEM_ERROR"===h&&"ITEM_LOGIN_REQUIRED"===b||"INVALID_INPUT"===h&&"INVALID_ACCESS_TOKEN"===b;async function w(){i(g.id),y(!1)}return l.a.createElement(W.B,null,l.a.createElement(W.d,{bare:!0,style:Nb,onClick:()=>y(!0)},l.a.createElement(Rb,{style:Fb})," ","This account is experiencing connection problems. Let","'","s fix it."),m&&l.a.createElement(W.A,{position:"bottom-left",onClose:()=>y(!1),style:Ub},l.a.createElement("div",{style:zb},"The server returned the following error:"),l.a.createElement("div",{style:Wb},function(e,t){switch(e.toUpperCase()){case"ITEM_ERROR":switch(t.toUpperCase()){case"NO_ACCOUNTS":return"No open accounts could be found. Did you close the account? If so, unlink the account.";case"ITEM_LOGIN_REQUIRED":return"Your password or something else has changed with your bank and you need to login again."}break;case"INVALID_INPUT":switch(t.toUpperCase()){case"INVALID_ACCESS_TOKEN":return"Item is no longer authorized. You need to login again."}break;case"API_ERROR":switch(t.toUpperCase()){case"PLANNED_MAINTENANCE":return"Our servers are currently undergoing maintenance and will be available again soon."}break;case"RATE_LIMIT_EXCEEDED":return"Rate limit exceeded for this item. Please try again later."}return"An internal error occurred. Try to login again, or contact help@actualbudget.com for support."}(f.type,f.code)),l.a.createElement(W.B,{style:$b},O?l.a.createElement(l.a.Fragment,null,l.a.createElement(W.d,{onClick:w},"Unlink"),l.a.createElement(W.d,{primary:!0,onClick:function(){y(!1),async function(e,t,n){let r=(await Object(T.send)("make-plaid-public-token",{bankId:t})).linkToken;return!!r&&(un(e,r,{onSuccess:n,onClose:n}),!0)}(c,g.bankId,()=>{s(),r(n.size>1?null:g.id)})||d({type:"error",message:"Unable to process this item, sorry!"})},style:Gb},"Reauthorize")):l.a.createElement(W.d,{onClick:w},"Unlink account"))))});function qb({color:e,onClick:t}){return l.a.createElement(Li,{style:{width:13,height:13,color:e,marginRight:5},onClick:t})}var Yb={flexDirection:"row",marginRight:20,marginTop:-1,"& svg":{transition:"transform .15s"},"& svg:hover":{transform:"scale(1.2)"}};function Vb({maxMonths:e,onChange:t}){let n=z().displayMax;if(n<=1)return null;let r=[];for(let a=1;a<=n;a++)r.push(l.a.createElement(qb,{key:a,color:e>=a?$.a.n5:$.a.n8,onClick:()=>t(a)}));return l.a.createElement(W.B,{style:Yb,title:"Choose the number of months shown at a time"},r)}var Kb=n(306),Qb=n(507),Zb=n(61);function Jb(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Xb(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Jb(Object(n),!0).forEach(function(t){eO(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Jb(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function eO(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var tO=e=>l.a.createElement("svg",Object.assign({},e,{viewBox:"0 0 20 20",style:Xb({color:"#242134"},e.style)}),l.a.createElement("path",{d:"M12.95 10.707l.707-.707L8 4.343 6.586 5.757 10.828 10l-4.242 4.243L8 15.657l4.95-4.95z",fill:"currentColor"}));function nO(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function rO(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?nO(Object(n),!0).forEach(function(t){aO(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):nO(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function aO(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var oO=e=>l.a.createElement("svg",Object.assign({},e,{viewBox:"0 0 20 20",style:rO({color:"#242134"},e.style)}),l.a.createElement("path",{d:"M17 12h-6v4h1v4H8v-4h1v-4H3v4h1v4H0v-4h1v-4a2 2 0 0 1 2-2h6V6H7V0h6v6h-2v4h6a2 2 0 0 1 2 2v4h1v4h-4v-4h1v-4z",fill:"currentColor"}));function lO(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function iO(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?lO(Object(n),!0).forEach(function(t){cO(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):lO(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function cO(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var sO=e=>l.a.createElement("svg",Object.assign({},e,{viewBox:"0 0 20 20",style:iO({color:"#242134"},e.style)}),l.a.createElement("path",{d:"M19 18h-1v-8c0-.6-.4-1-1-1s-1 .4-1 1v8h-3V1c0-.6-.4-1-1-1s-1 .4-1 1v17H8V7c0-.6-.4-1-1-1s-1 .4-1 1v11H3V3c0-.6-.4-1-1-1s-1 .4-1 1v15c-.6 0-1 .4-1 1s.4 1 1 1h18c.6 0 1-.4 1-1s-.4-1-1-1z",fill:"currentColor"}));function uO(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function dO(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?uO(Object(n),!0).forEach(function(t){fO(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):uO(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function fO(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var pO=e=>l.a.createElement("svg",Object.assign({},e,{viewBox:"0 0 20 20",style:dO({color:"#242134"},e.style)}),l.a.createElement("path",{d:"M18 9.87V20H2V9.87a4.25 4.25 0 0 0 3-.38V14h10V9.5a4.26 4.26 0 0 0 3 .37zM3 0h4l-.67 6.03A3.43 3.43 0 0 1 3 9C1.34 9 .42 7.73.95 6.15L3 0zm5 0h4l.7 6.3c.17 1.5-.91 2.7-2.42 2.7h-.56A2.38 2.38 0 0 1 7.3 6.3L8 0zm5 0h4l2.05 6.15C19.58 7.73 18.65 9 17 9a3.42 3.42 0 0 1-3.33-2.97L13 0z",fill:"currentColor"}));function mO(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function yO(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?mO(Object(n),!0).forEach(function(t){gO(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):mO(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function gO(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var hO=e=>l.a.createElement("svg",Object.assign({},e,{viewBox:"0 0 20 20",style:yO({color:"#242134"},e.style)}),l.a.createElement("path",{d:"M17 16v4h-2v-4h-2v-3h6v3h-2zM1 9h6v3H1V9zm6-4h6v3H7V5zM3 0h2v8H3V0zm12 0h2v12h-2V0zM9 0h2v4H9V0zM3 12h2v8H3v-8zm6-4h2v12H9V8z",fill:"currentColor"}));function bO(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function OO(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?bO(Object(n),!0).forEach(function(t){wO(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):bO(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function wO(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var EO=e=>l.a.createElement("svg",Object.assign({},e,{viewBox:"0 0 24 24",style:OO({color:"#242134"},e.style)}),l.a.createElement("path",{d:"M10.416 12a2.643 2.643 0 0 1 .775-1.875L20.732.584a1.768 1.768 0 0 1 2.5 2.5l-8.739 8.739a.25.25 0 0 0 0 .354l8.739 8.739a1.768 1.768 0 0 1-2.5 2.5l-9.541-9.541A2.643 2.643 0 0 1 10.416 12z",fill:"currentColor"}),l.a.createElement("path",{d:"M.25 12a2.643 2.643 0 0 1 .775-1.875L10.566.584a1.768 1.768 0 0 1 2.5 2.5l-8.739 8.739a.25.25 0 0 0 0 .354l8.739 8.739a1.768 1.768 0 0 1-2.5 2.5l-9.541-9.541A2.643 2.643 0 0 1 .25 12z",fill:"currentColor"}));function vO(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return jO(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return jO(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function jO(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function SO(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function xO(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?SO(Object(n),!0).forEach(function(t){CO(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):SO(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function CO(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const kO=240,PO=600;var AO={flexDirection:"row",alignItems:"center",height:20},DO={color:"inherit"},BO={marginLeft:8},IO={flex:1},TO={flexShrink:0},MO={marginTop:5};function RO({children:e,Icon:t,title:n,style:r,indent:a=0,to:o,exact:i,onClick:c,button:s,forceHover:u=!1,forceActive:d=!1}){const f={backgroundColor:$.a.n2},p={borderLeft:"4px solid "+$.a.p8,paddingLeft:19+a-4,color:$.a.p8},m=[xO(xO(xO({},$.c.mediumText),{},{paddingTop:9,paddingBottom:9,paddingLeft:19+a,paddingRight:10,textDecoration:"none",color:$.a.n9},u?f:{}),d?p:{}),{":hover":f}],y=l.a.createElement(W.B,{style:AO},l.a.createElement(t,{width:15,height:15,style:DO}),l.a.createElement(W.c,{style:BO},n),l.a.createElement(W.B,{style:IO}),s);return l.a.createElement(W.B,{style:[TO,r]},c?l.a.createElement(Qb.a,{onClick:c},l.a.createElement(W.B,{style:m},y)):l.a.createElement(W.b,{style:m,to:o,exact:i,activeStyle:p},y),e?l.a.createElement(W.B,{style:MO},e):null)}var _O={flexDirection:"row",alignItems:"center",height:16},LO={color:"inherit"},NO={flexShrink:0};function FO({Icon:e,title:t,style:n,to:r,exact:a,onClick:o,bold:i,indent:c=0}){const s={backgroundColor:$.a.n2},u={borderLeft:"4px solid "+$.a.p8,paddingLeft:10+c,color:$.a.p8,fontWeight:i?PO:null},d=[UO,{color:$.a.n9,paddingLeft:14+c,fontWeight:i?PO:null},{":hover":s}],f=l.a.createElement(W.B,{style:_O},e&&l.a.createElement(e,{width:12,height:12,style:LO}),l.a.createElement(W.c,{style:{marginLeft:e?8:0,color:"inherit"}},t));return l.a.createElement(W.B,{style:[NO,n]},o?l.a.createElement(Qb.a,{onClick:o},l.a.createElement(W.B,{style:d},f)):l.a.createElement(W.b,{style:d,to:r,exact:a,activeStyle:u},f))}let UO=[{marginTop:-2,marginBottom:2,paddingTop:4,paddingBottom:4,paddingRight:15,paddingLeft:10,textDecoration:"none",color:$.a.n9},{":hover":{backgroundColor:$.a.n2}},$.c.smallText];var zO={flexShrink:0},WO={position:"relative",borderLeft:"4px solid transparent"},$O={fontWeight:700},GO={position:"absolute",left:0,top:0,bottom:0,flexDirection:"row",alignItems:"center"};function HO({name:e,account:t,connected:n,failed:r,updated:a,to:o,query:i,style:c,outerStyle:s,onDragChange:u,onDrop:d}){let f=t?t.closed?"account-closed":t.offbudget?"account-offbudget":"account-onbudget":"title",p=hp({type:f,onDragChange:u,item:{id:t&&t.id},canDrag:null!=t}).dragRef,m=bp({types:t?[f]:[],id:t&&t.id,onDrop:d}),y=m.dropRef,g=m.dropPos;return l.a.createElement(W.B,{innerRef:y,style:[zO,s]},l.a.createElement(W.B,null,l.a.createElement(Ep,{pos:g}),l.a.createElement(W.B,{innerRef:p},l.a.createElement(W.b,{ref:p,to:o,style:[UO,c,WO,a&&$O],activeStyle:{borderColor:$.a.p8,color:$.a.p8,fontWeight:c&&c.fontWeight||"normal","& .dot":{backgroundColor:$.a.p8,transform:"translateX(-4.5px)"}}},l.a.createElement(W.B,{style:GO},l.a.createElement("div",Object.assign({className:"dot"},Object(lt.css)({marginRight:3,width:5,height:5,borderRadius:5,backgroundColor:r?$.a.r7:$.a.g5,marginLeft:2,transition:"transform .3s",opacity:n?1:0})))),l.a.createElement(W.a,{left:e,right:l.a.createElement(xt,{debug:!0,binding:i,type:"financial"})})))))}var qO={fontWeight:PO,marginTop:15},YO={fontWeight:PO,marginTop:13},VO={fontWeight:PO,marginTop:13},KO={marginTop:15},QO={marginTop:15,marginBottom:9};function ZO({accounts:e,failedAccounts:t,updatedAccounts:n,getAccountPath:r,allAccountsPath:a,budgetedAccountPath:i,offBudgetAccountPath:c,getBalanceQuery:s,getAllAccountBalance:u,getOnBudgetBalance:d,getOffBudgetBalance:f,showClosedAccounts:p,onAddAccount:m,onToggleClosedAccounts:y,onReorder:g}){let h=vO(Object(o.useState)(!1),2),b=h[0],O=h[1],w=Object(o.useMemo)(()=>e.filter(e=>0===e.closed&&1===e.offbudget),[e]),E=Object(o.useMemo)(()=>e.filter(e=>0===e.closed&&0===e.offbudget),[e]),v=Object(o.useMemo)(()=>e.filter(e=>1===e.closed),[e]);function j(e){O("start"===e.state)}let S=(e,t)=>0===e?{paddingTop:b?15:0,marginTop:b?-15:0}:null;return l.a.createElement(W.B,null,l.a.createElement(HO,{name:"All accounts",to:a,query:u(),style:qO}),E.length>0&&l.a.createElement(HO,{name:"For budget",to:i,query:d(),style:YO}),E.map((e,a)=>l.a.createElement(HO,{key:e.id,name:e.name,account:e,connected:!!e.bankId,failed:t&&t.has(e.id),updated:n&&n.includes(e.id),to:r(e),query:s(e),onDragChange:j,onDrop:g,outerStyle:S(a,E.length)})),w.length>0&&l.a.createElement(HO,{name:"Off budget",to:c,query:f(),style:VO}),w.map((e,a)=>l.a.createElement(HO,{key:e.id,name:e.name,account:e,connected:!!e.bankId,failed:t&&t.has(e.id),updated:n&&n.includes(e.id),to:r(e),query:s(e),onDragChange:j,onDrop:g,outerStyle:S(a,w.length)})),v.length>0&&l.a.createElement(FO,{style:KO,title:"Closed accounts"+(p?"":"..."),onClick:y,bold:!0}),p&&v.map((e,t)=>l.a.createElement(HO,{key:e.id,name:e.name,account:e,to:r(e),query:s(e),onDragChange:j,onDrop:g})),l.a.createElement(FO,{style:QO,onClick:m,Icon:It,title:"Add account"}))}var JO={flexShrink:0},XO={width:13,height:13,color:$.a.n5};function ew({style:e,onFloat:t}){return l.a.createElement(W.B,{className:"float",style:[e,JO]},l.a.createElement(W.d,{bare:!0,onClick:t},l.a.createElement(EO,{style:XO})))}var tw={color:$.a.n5,flexShrink:0},nw={color:$.a.p7},rw={color:"inherit",transform:"rotateZ(0deg)"},aw={padding:0};const ow=Object(u.k)(function({history:e}){let t=Object(s.c)(),n=vO(Object(o.useState)(!1),2),r=n[0],a=n[1];return l.a.createElement(W.d,{bare:!0,style:tw,activeStyle:nw,onClick:()=>a(!0)},l.a.createElement(Mt.a,{width:15,height:15,style:rw}),r&&l.a.createElement(W.A,{position:"bottom-right",style:aw,onClose:()=>a(!1)},l.a.createElement(W.s,{onMenuSelect:function(n){switch(a(!1),n){case"settings":e.push("/settings");break;case"help":window.open("https://actualbudget.github.io/docs","_blank");break;case"close":t(Object(Zb.b)())}},items:[{name:"settings",text:"Settings"},{name:"help",text:"Help"},{name:"close",text:"Close File"}]})))});var lw={flexShrink:0};function iw(){let e=vO(Object(o.useState)(!1),2),t=e[0],n=e[1],r=Object(o.useCallback)(()=>n(e=>!e),[]),a=Object(u.h)();const i=["/payees","/rules","/tools"].some(e=>a.pathname.startsWith(e));return Object(o.useEffect)(()=>{i&&n(!0)},[a.pathname]),l.a.createElement(W.B,{style:lw},l.a.createElement(RO,{title:"More",Icon:t?Ai:tO,onClick:r,style:{marginBottom:t?8:0},forceActive:!t&&i}),t&&l.a.createElement(l.a.Fragment,null,l.a.createElement(FO,{title:"Payees",Icon:pO,to:"/payees",indent:15}),l.a.createElement(FO,{title:"Rules",Icon:hO,to:"/rules",indent:15}),l.a.createElement(FO,{title:"Repair split transactions",Icon:oO,to:"/tools/fix-splits",indent:15})))}var cw={paddingTop:35,height:30,flexDirection:"row",alignItems:"center",margin:"0 8px 23px 20px",transition:"padding .4s"},sw={paddingTop:20,justifyContent:"flex-start"},uw={color:$.a.p7},dw={color:"inherit"},fw={flex:1,flexDirection:"row"},pw={overflow:"auto"},mw={height:1,backgroundColor:$.a.n3,marginTop:15,flexShrink:0};function yw({style:e,budgetName:t,accounts:n,failedAccounts:r,updatedAccounts:a,getBalanceQuery:o,getAllAccountBalance:i,getOnBudgetBalance:c,getOffBudgetBalance:s,showClosedAccounts:u,isFloating:d,onFloat:f,onAddAccount:p,onToggleClosedAccounts:m,onReorder:y}){let g=!Eb.a.isBrowser&&"mac"===Eb.a.OS;return l.a.createElement(W.B,{style:[{width:kO,color:$.a.n9,backgroundColor:$.a.n1,"& .float":{opacity:0,transition:"opacity .25s, width .25s",width:g?null:0},"&:hover .float":{opacity:1,width:g?null:"auto"}},e]},g&&l.a.createElement(ew,{style:[{height:d?0:36,alignItems:"flex-end",justifyContent:"center",overflow:"hidden",WebkitAppRegion:"drag",paddingRight:8}],onFloat:f}),l.a.createElement(W.B,{style:[cw,g&&sw]},t,!Eb.a.isBrowser&&l.a.createElement(W.e,{bare:!0,to:"/settings",style:{display:"inherit",color:$.a.n5,marginLeft:g?0:5,flexShrink:0},activeStyle:uw},l.a.createElement(Y,{width:15,height:15,style:dw})),l.a.createElement(W.B,{style:fw}),!g&&l.a.createElement(ew,{onFloat:f}),Eb.a.isBrowser&&l.a.createElement(ow,null)),l.a.createElement(W.B,{style:pw},l.a.createElement(RO,{title:"Budget",Icon:te,to:"/budget"}),l.a.createElement(RO,{title:"Reports",Icon:sO,to:"/reports"}),l.a.createElement(RO,{title:"Schedules",Icon:Li,to:"/schedules"}),l.a.createElement(iw,null),l.a.createElement(W.B,{style:mw}),l.a.createElement(ZO,{accounts:n,failedAccounts:r,updatedAccounts:a,getAccountPath:e=>`/accounts/${e.id}`,allAccountsPath:"/accounts",budgetedAccountPath:"/accounts/budgeted",offBudgetAccountPath:"/accounts/offbudget",getBalanceQuery:o,getAllAccountBalance:i,getOnBudgetBalance:c,getOffBudgetBalance:s,showClosedAccounts:u,onAddAccount:p,onToggleClosedAccounts:m,onReorder:y})))}function gw(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return hw(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return hw(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function hw(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var bw={width:160,fontSize:16,fontWeight:500},Ow={color:$.a.n9,fontSize:16,fontWeight:500,marginLeft:-5,flex:"0 auto"},ww={whiteSpace:"nowrap",overflow:"hidden"};function Ew({prefs:e,savePrefs:t}){const n=gw(Object(o.useState)(!1),2),r=n[0],a=n[1];return r?l.a.createElement(W.l,null,l.a.createElement(W.n,{style:bw,defaultValue:e.budgetName,onEnter:async e=>{""!==e.target.value.trim()&&(await t({budgetName:e.target.value}),a(!1))},onBlur:()=>a(!1)})):l.a.createElement(W.d,{bare:!0,style:Ow,onClick:()=>a(!0)},l.a.createElement(W.y,{style:ww},e.budgetName||"A budget has no name"))}var vw={flex:1};var jw=Object(u.k)(Object(s.b)(e=>({accounts:e.queries.accounts,failedAccounts:e.account.failedAccounts,updatedAccounts:e.queries.updatedAccounts,prefs:e.prefs.local,floatingSidebar:e.prefs.global.floatingSidebar}),e=>Object(ue.b)(y,e))(function({accounts:e,failedAccounts:t,updatedAccounts:n,replaceModal:r,prefs:a,floatingSidebar:i,savePrefs:c,saveGlobalPrefs:s,getAccounts:u}){return Object(o.useEffect)(()=>void u(),[u]),l.a.createElement(yw,{isFloating:i,budgetName:l.a.createElement(Ew,{prefs:a,savePrefs:c}),accounts:e,failedAccounts:t,updatedAccounts:n,getBalanceQuery:Ie,getAllAccountBalance:Te,getOnBudgetBalance:Me,getOffBudgetBalance:Re,onFloat:()=>s({floatingSidebar:!i}),onReorder:async function(t,n,r){if("bottom"===n){let t=e.findIndex(e=>e.id===r)+1;r=t<e.length?e[t].id:null}await Object(T.send)("account-move",{id:t,targetId:r}),await u()},onAddAccount:()=>r(a["flags.syncAccount"]?"add-account":"add-local-account"),showClosedAccounts:a["ui.showClosedAccounts"],onToggleClosedAccounts:()=>c({"ui.showClosedAccounts":!a["ui.showClosedAccounts"]}),style:[vw,$.c.darkScrollbar]})}));function Sw(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return xw(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return xw(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function xw(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}const Cw=l.a.createContext(null);function kw({children:e}){let t=Object(Kb.a)();return l.a.createElement(Cw.Provider,{value:{show:()=>t.emit("show"),hide:()=>t.emit("hide"),on:(e,n)=>(t.on(e,n),()=>t.off(e,n))}},e)}function Pw(){return Object(o.useContext)(Cw)}var Aw={position:"absolute",top:0,bottom:0,left:0};var Dw=Object(u.k)(Object(s.b)(e=>({floatingSidebar:e.prefs.global.floatingSidebar}),y)(function({floatingSidebar:e}){let t=Sw(Object(o.useState)(!0),2),n=t[0],r=t[1],a=Pw();return!e&&n&&r(!1),Object(o.useEffect)(()=>{let e=[a.on("show",()=>r(!1)),a.on("hide",()=>r(!0))];return()=>{e.forEach(e=>e())}},[a]),l.a.createElement(l.a.Fragment,null,e&&l.a.createElement(W.B,{onMouseOver:()=>r(!1),onMouseLeave:()=>r(!0),style:{position:"absolute",top:0,bottom:0,left:0,width:n?0:160,zIndex:999}}),l.a.createElement(W.B,{onMouseOver:e?e=>{e.stopPropagation(),r(!1)}:null,onMouseLeave:e?()=>r(!0):null,style:{position:"absolute",top:50,bottom:e?50:-50,zIndex:1001,borderRadius:"0 6px 6px 0",overflow:"hidden",boxShadow:!e||n?"none":"0 15px 30px 0 rgba(0,0,0,0.25), 0 3px 15px 0 rgba(0,0,0,.5)",transform:`translateY(${e?0:-50}px)\n translateX(${n?-kO:0}px)`,transition:"transform .5s, box-shadow .5s"}},l.a.createElement(jw,null)),l.a.createElement(W.B,{style:[{backgroundColor:$.a.n1,opacity:e?0:1,transform:`translateX(${e?-50:0}px)`,transition:"transform .4s, opacity .2s",width:kO},e&&Aw]}))})),Bw=n(219);function Iw(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return Tw(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Tw(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Tw(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}let Mw=l.a.createContext();function Rw({children:e}){let t=Object(o.useRef)([]);return l.a.createElement(Mw.Provider,{value:{sendEvent:function(e){t.current.forEach(t=>t(e))},subscribe:function(e){return t.current.push(e),()=>t.current=t.current.filter(t=>t!==e)}},children:e})}var _w={color:$.a.r5};function Lw(){return l.a.createElement(St.a,{binding:{name:"uncategorized-amount",query:_e.calculate({$count:"$id"})}},e=>{const t=e.value;return 0!==t&&l.a.createElement(W.e,{bare:!0,to:"/accounts/uncategorized",style:_w},t," uncategorized ",1===t?"transaction":"transactions")})}var Nw={color:"currentColor"},Fw={marginLeft:3};function Uw({localPrefs:e,style:t,onSync:n}){let r=Iw(Object(o.useState)(!1),2),a=r[0],i=r[1],c=Iw(Object(o.useState)(null),2),s=c[0],u=c[1];return Object(o.useEffect)(()=>{return Object(T.listen)("sync-event",({type:t,subtype:n,syncDisabled:r})=>{"start"===t?(i(!0),u(null)):setTimeout(()=>{i(!1)},200),"error"===t?"network"===n?u("offline"):e.cloudFileId?u("error"):u("local"):"success"===t&&u(r?"disabled":null)})},[]),l.a.createElement(W.d,{bare:!0,style:Object(lt.css)(t,{WebkitAppRegion:"none",color:"error"===s?$.a.r7:"disabled"===s||"offline"===s||"local"===s?$.a.n9:null},Object(lt.media)(`(min-width: ${Db.a.breakpoint_medium})`,{color:"error"===s?$.a.r4:"disabled"===s||"offline"===s||"local"===s?$.a.n6:null})),onClick:n},"error"===s?l.a.createElement(Hi,{width:13,style:Nw}):l.a.createElement(vn,{animating:a}),l.a.createElement(W.y,{style:Fw},"disabled"===s?"Disabled":"offline"===s?"Offline":"Sync"))}var zw={flexDirection:"row",alignItems:"center"},Ww={marginLeft:-5},$w={alignSelf:"flex-start",padding:"4px 7px"},Gw={padding:10,maxWidth:400},Hw={fontWeight:600},qw={color:$.a.n4,fontStyle:"italic"};function Yw({globalPrefs:e,saveGlobalPrefs:t,localPrefs:n}){let r=Object(o.useContext)(Mw).sendEvent,a=Iw(Object(o.useState)(!1),2),i=a[0],c=a[1],s=Iw(Object(o.useState)(!1),2),u=s[0],d=s[1],f=n["flags.reportBudget"];Object(o.useEffect)(()=>{c(!1)},[n.budgetType]);let p=n.budgetType;return l.a.createElement(W.B,{style:zw},l.a.createElement(Vb,{maxMonths:e.maxMonths||1,onChange:e=>t({maxMonths:e})}),f&&l.a.createElement(W.B,{style:Ww},l.a.createElement(W.d,{bare:!0,loading:i,style:$w,title:"Learn more about budgeting",onClick:()=>d(!0)},"report"===p?"Report budget":"Rollover budget"),u&&l.a.createElement(W.A,{position:"bottom-left",onClose:()=>d(!1),style:Gw},l.a.createElement(W.v,null,"You are currently using a"," ",l.a.createElement(W.y,{style:Hw},"report"===p?"Report budget":"Rollover budget",".")," ","Switching will not lose any data and you can always switch back."),l.a.createElement(W.v,null,l.a.createElement(W.f,{primary:!0,loading:i,onClick:function(){c(!0),i||r("budget/switch-type")}},"Switch to a"," ","report"===p?"Rollover budget":"Report budget")),l.a.createElement(W.v,{isLast:!0},l.a.createElement("a",{href:"#",style:qw},"How do these types of budgeting work?")))))}var Vw={flexDirection:"row",alignItems:"center",padding:"0 15px",height:36,pointerEvents:"none","& *":{pointerEvents:"auto"}},Kw={paddingLeft:80},Qw={marginRight:8,"& .arrow-right":{opacity:0,transition:"opacity .3s"},"& .menu":{opacity:1,transition:"opacity .3s"},"&:hover .arrow-right":{opacity:1},"&:hover .menu":{opacity:0}},Zw={width:15,height:15},Jw={width:13,height:13,color:$.a.n5,position:"absolute",top:1,left:1},Xw={width:15,height:15,color:$.a.n5,position:"absolute",top:0,left:0},eE={marginRight:5,color:"currentColor"},tE={flex:1},nE={marginLeft:10},rE={marginLeft:10};var aE=Object(u.k)(Object(s.b)(e=>({globalPrefs:e.prefs.global,localPrefs:e.prefs.local,userData:e.user.data,floatingSidebar:e.prefs.global.floatingSidebar}),y)(function({location:e,globalPrefs:t,saveGlobalPrefs:n,localPrefs:r,userData:a,floatingSidebar:o,syncError:i,setAppState:c,style:s,sync:d}){let f=Pw();const p=Object(Bb.a)();return l.a.createElement(W.B,{style:[Vw,!Eb.a.isBrowser&&"mac"===Eb.a.OS&&o&&Kw,s]},o&&l.a.createElement(W.d,{bare:!0,style:Qw,onMouseEnter:()=>f.show(),onMouseLeave:()=>f.hide(),onClick:()=>{n({floatingSidebar:!o})}},l.a.createElement(W.B,{style:Zw},l.a.createElement(Nt,{className:"arrow-right",style:Jw}),l.a.createElement(Ab,{className:"menu",style:Xw}))),l.a.createElement(u.d,null,l.a.createElement(u.b,{path:"/accounts",exact:!0,children:e=>(e.location.state||{}).goBack?l.a.createElement(W.d,{onClick:()=>e.history.goBack(),bare:!0},l.a.createElement(xb,{width:10,height:10,style:eE})," ","Back"):null}),l.a.createElement(u.b,{path:"/accounts/:id",exact:!0,children:e=>e.match&&l.a.createElement(Hb,{id:e.match.params.id})}),l.a.createElement(u.b,{path:"/budget",exact:!0,children:()=>l.a.createElement(Yw,{globalPrefs:t,saveGlobalPrefs:n,localPrefs:r})})),l.a.createElement(W.B,{style:tE}),l.a.createElement(Lw,null),p?l.a.createElement(Uw,{style:nE,localPrefs:r,onSync:d}):null,l.a.createElement(Bw.a,{style:rE}))}));function oE(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function lE(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?oE(Object(n),!0).forEach(function(t){iE(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):oE(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function iE(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}let cE=null;var sE={flex:1};class uE extends l.a.PureComponent{constructor(e){super(e),this.prewarmMonth=(async(e,t=null)=>{let n="report"===(t=t||this.props.budgetType)?"report-budget-month":"rollover-budget-month",r=await Object(T.send)(n,{month:e});for(let a of r)this.props.spreadsheet.prewarmCache(a.name,a)}),this.onMonthSelect=(async(e,t)=>{let n=this.state.startMonth;this.setState({prewarmStartMonth:e}),this.warmingMonth=e,e<n?await this.prewarmMonth(de.y(e,1)):e>n&&await this.prewarmMonth(de.b(e,t)),this.warmingMonth===e&&this.setState({startMonth:e})}),this.onShowNewCategory=(e=>{this.setState({newCategoryForGroup:e,collapsed:this.state.collapsed.filter(t=>t!==e)})}),this.onHideNewCategory=(()=>{this.setState({newCategoryForGroup:null})}),this.onShowNewGroup=(()=>{this.setState({isAddingGroup:!0})}),this.onHideNewGroup=(()=>{this.setState({isAddingGroup:!1})}),this.setCollapsed=(e=>{this.setState({collapsed:e})}),this.onSaveCategory=(async e=>{let t=this.state.categoryGroups;if("new"===e.id){let n=await this.props.createCategory(e.name,e.cat_group,e.is_income);this.setState({newCategoryForGroup:null,categoryGroups:zf(t,lE(lE({},e),{},{is_income:e.is_income?1:0,id:n}))})}else this.props.updateCategory(e),this.setState({categoryGroups:Wf(t,e)})}),this.onDeleteCategory=(async e=>{const t=await Object(T.send)("must-category-transfer",{id:e});let n=this.state.categoryGroups;t?this.props.pushModal("confirm-category-delete",{category:e,onDelete:t=>{e!==t&&(this.props.deleteCategory(e,t),this.setState({categoryGroups:Hf(n,e)}))}}):(this.props.deleteCategory(e),this.setState({categoryGroups:Hf(n,e)}))}),this.onSaveGroup=(async e=>{let t=this.state.categoryGroups;if("new"===e.id){let n=await this.props.createGroup(e.name);this.setState({isAddingGroup:!1,categoryGroups:qf(t,lE(lE({},e),{},{is_income:0,categories:e.categories||[],id:n}))})}else this.props.updateGroup(e),this.setState({categoryGroups:Yf(t,e)})}),this.onDeleteGroup=(async e=>{let t=this.state.categoryGroups,n=t.find(t=>t.id===e),r=!1;for(let a of n.categories)if(await Object(T.send)("must-category-transfer",{id:a.id})){r=!0;break}r?this.props.pushModal("confirm-category-delete",{group:e,onDelete:n=>{this.props.deleteGroup(e,n),this.setState({categoryGroups:Vf(t,e)})}}):(this.props.deleteGroup(e),this.setState({categoryGroups:Vf(t,e)}))}),this.onBudgetAction=((e,t,n)=>{this.props.applyBudgetAction(e,t,n)}),this.onShowActivity=((e,t,n)=>{this.props.history.push({pathname:"/accounts",state:{goBack:!0,filterName:`${e} (${de.g(n,"MMMM yyyy")})`,filter:{category:t,date:{$transform:"$month",$eq:n}}}})}),this.onReorderCategory=(async e=>{let t=this.state.categoryGroups;this.props.moveCategory(e.id,e.groupId,e.targetId),this.setState({categoryGroups:$f(t,e.id,e.groupId,e.targetId)})}),this.onReorderGroup=(async e=>{let t=this.state.categoryGroups;this.props.moveCategoryGroup(e.id,e.targetId),this.setState({categoryGroups:Gf(t,e.id,e.targetId)})}),this.onToggleCollapse=(()=>{let e=!this.state.summaryCollapsed;this.setState({summaryCollapsed:e}),this.props.savePrefs({"budget.summaryCollapsed":e})}),this.onTitlebarEvent=(async e=>{switch(e){case"budget/switch-type":{let e="rollover"===this.props.budgetType?"report":"rollover";this.props.spreadsheet.disableObservers(),await Object(T.send)("budget-set-type",{type:e}),await this.prewarmAllMonths(this.state.bounds,e),this.props.spreadsheet.enableObservers(),this.props.loadPrefs();break}}});const t=cE||de.d();this.state={initialized:!1,prewarmStartMonth:t,startMonth:t,newCategoryForGroup:null,isAddingGroup:!1,collapsed:e.collapsedPrefs||[],bounds:{start:t,end:t},categoryGroups:null,summaryCollapsed:e.summaryCollapsed}}async loadCategories(){let e=await this.props.getCategories();this.setState({categoryGroups:e.grouped})}async componentDidMount(){let e=this.props,t=e.titlebar,n=e.budgetType;this.loadCategories();let r=await Object(T.send)("get-budget-bounds"),a=r.start,o=r.end;this.setState({bounds:{start:a,end:o}}),this.prewarmAllMonths({start:a,end:o},n);let l=[Object(T.listen)("sync-event",({type:e,tables:t})=>{"success"===e&&(t.includes("categories")||t.includes("category_mapping")||t.includes("category_groups"))&&this.loadCategories()}),Object(T.listen)("undo-event",({tables:e})=>{this.table&&this.table.clearEditing(),e.includes("categories")&&this.loadCategories()}),t.subscribe(this.onTitlebarEvent)];this.cleanup=(()=>{l.forEach(e=>e())})}componentDidUpdate(e,t){t.collapsed!==this.state.collapsed&&this.props.savePrefs({"budget.collapsed":this.state.collapsed}),t.startMonth!==this.state.startMonth&&(cE=this.state.startMonth),this.props.match&&!e.match&&Object(T.send)("get-budget-bounds").then(({start:e,end:t})=>{let n=this.state.bounds;n.start===e&&n.end===t||this.setState({bounds:{start:e,end:t}})})}componentWillUnmount(){this.cleanup&&this.cleanup()}async prewarmAllMonths(e,t=null){let n=this.state.startMonth;e=xp(e,de.y(n,1),de.b(n,4));let r=de.v(e.start,e.end);await Promise.all(r.map(e=>this.prewarmMonth(e,t))),this.setState({initialized:!0})}onCopy(e){this.props.copyPreviousMonthInto(e,this.props.categories)}render(){let e,t=this.props,n=t.maxMonths,r=t.budgetType,a=t.reportComponents,o=t.rolloverComponents,i=this.state,c=i.initialized,s=i.categoryGroups,u=i.prewarmStartMonth,d=i.startMonth,f=i.newCategoryForGroup,p=i.isAddingGroup,m=i.collapsed,y=i.summaryCollapsed,g=i.bounds;return n=n||1,c&&s?(e="report"===r?l.a.createElement(jy,{summaryCollapsed:y,onBudgetAction:this.onBudgetAction,onToggleSummaryCollapse:this.onToggleCollapse},l.a.createElement(ly,{ref:e=>this.table=e,type:r,categoryGroups:s,prewarmStartMonth:u,startMonth:d,monthBounds:g,maxMonths:n,collapsed:m,setCollapsed:this.setCollapsed,newCategoryForGroup:f,isAddingGroup:p,dataComponents:a,onMonthSelect:this.onMonthSelect,onShowNewCategory:this.onShowNewCategory,onHideNewCategory:this.onHideNewCategory,onShowNewGroup:this.onShowNewGroup,onHideNewGroup:this.onHideNewGroup,onDeleteCategory:this.onDeleteCategory,onDeleteGroup:this.onDeleteGroup,onSaveCategory:this.onSaveCategory,onSaveGroup:this.onSaveGroup,onBudgetAction:this.onBudgetAction,onShowActivity:this.onShowActivity,onReorderCategory:this.onReorderCategory,onReorderGroup:this.onReorderGroup})):l.a.createElement(th,{categoryGroups:s,summaryCollapsed:y,onBudgetAction:this.onBudgetAction,onToggleSummaryCollapse:this.onToggleCollapse},l.a.createElement(ly,{ref:e=>this.table=e,type:r,categoryGroups:s,prewarmStartMonth:u,startMonth:d,monthBounds:g,maxMonths:n,collapsed:m,setCollapsed:this.setCollapsed,newCategoryForGroup:f,isAddingGroup:p,dataComponents:o,onMonthSelect:this.onMonthSelect,onShowNewCategory:this.onShowNewCategory,onHideNewCategory:this.onHideNewCategory,onShowNewGroup:this.onShowNewGroup,onHideNewGroup:this.onHideNewGroup,onDeleteCategory:this.onDeleteCategory,onDeleteGroup:this.onDeleteGroup,onSaveCategory:this.onSaveCategory,onSaveGroup:this.onSaveGroup,onBudgetAction:this.onBudgetAction,onShowActivity:this.onShowActivity,onReorderCategory:this.onReorderCategory,onReorderGroup:this.onReorderGroup})),l.a.createElement(W.B,{style:sE,innerRef:e=>this.page=e},e)):null}}var dE={paddingLeft:8,paddingRight:8,overflow:"hidden"};var fE=Object(s.b)(e=>({collapsedPrefs:e.prefs.local["budget.collapsed"],summaryCollapsed:e.prefs.local["budget.summaryCollapsed"],budgetType:e.prefs.local.budgetType||"rollover",maxMonths:e.prefs.global.maxMonths,categoryGroups:e.queries.categories.grouped}),y)(function(e){let t=Object(o.useContext)(I.a),n=Object(o.useContext)(Mw),i=Object(o.useMemo)(()=>({SummaryComponent:og,ExpenseCategoryComponent:Rg,ExpenseGroupComponent:Mg,IncomeCategoryComponent:Lg,IncomeGroupComponent:_g,BudgetTotalsComponent:mg,IncomeHeaderComponent:bg}),[r]),c=Object(o.useMemo)(()=>({SummaryComponent:Ih,ExpenseCategoryComponent:fb,ExpenseGroupComponent:ab,IncomeCategoryComponent:wb,IncomeGroupComponent:yb,BudgetTotalsComponent:Qh,IncomeHeaderComponent:Xh}),[a]);return l.a.createElement(W.B,{style:[$.c.page,dE]},l.a.createElement(uE,Object.assign({},e,{reportComponents:i,rolloverComponents:c,spreadsheet:t,titlebar:n})))});function pE(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function mE(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?pE(Object(n),!0).forEach(function(t){yE(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):pE(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function yE(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var gE=e=>l.a.createElement("svg",Object.assign({},e,{viewBox:"0 0 23 3",style:mE({color:"#242134"},e.style)}),l.a.createElement("path",{d:"M23 1.5A1.5 1.5 0 0 1 21.5 3h-20a1.5 1.5 0 0 1 0-3h20A1.5 1.5 0 0 1 23 1.5z",fillRule:"nonzero",fill:"currentColor"}));function hE(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function bE(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?hE(Object(n),!0).forEach(function(t){OE(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):hE(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function OE(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function wE(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return EE(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return EE(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function EE(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var vE={padding:"0 7px"},jE={width:8,height:8},SE={width:8,height:8},xE={paddingLeft:0};function CE({defaultValue:e=0,onChange:t,style:n}){let r=wE(Object(o.useState)(e<=0),2),a=r[0],i=r[1],c=wE(Object(o.useState)(Object(Pe.k)(Math.abs(e))),2),s=c[0],u=c[1];function d(e=a){let n=Object(Pe.e)(s);t(e?n<0?n:-n:n>0?n:-n)}return l.a.createElement(W.o,{leftContent:l.a.createElement(W.d,{bare:!0,style:vE,onClick:function(){i(!a),d(!a)}},a?l.a.createElement(gE,{style:jE}):l.a.createElement(It,{style:SE})),value:s,style:bE({flex:1,alignItems:"stretch"},n),inputStyle:xE,onChange:e=>u(e.target.value),onBlur:e=>d()})}var kE={flexDirection:"row",alignItems:"center"},PE={margin:"0 5px"};function AE({defaultValue:e,onChange:t}){let n=wE(Object(o.useState)(e.num1),2),r=n[0],a=n[1],i=wE(Object(o.useState)(e.num2),2),c=i[0],s=i[1];return l.a.createElement(W.B,{style:kE},l.a.createElement(CE,{defaultValue:r,onChange:e=>{a(e),t({num1:e,num2:c})}}),l.a.createElement(W.B,{style:PE},"and"),l.a.createElement(CE,{defaultValue:c,onChange:e=>{s(e),t({num1:r,num2:e})}}))}const DE=["children","style"];function BE(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}const IE=50;var TE={height:IE,borderBottomWidth:1,borderColor:$.a.border,flexDirection:"row",alignItems:"center",paddingLeft:10,paddingRight:10,zIndex:1};const ME=e=>{let t=e.children,n=e.style,r=BE(e,DE);return l.a.createElement(W.B,Object.assign({style:[TE,n]},r),t)};function RE(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function _E(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?RE(Object(n),!0).forEach(function(t){LE(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):RE(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function LE(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var NE={flexDirection:"column",alignItems:"flex-start"},FE={color:$.a.n1,flexShrink:0};function UE({toBudget:e,onClick:t}){return l.a.createElement(St.a,{binding:e},({value:e})=>l.a.createElement(W.d,{bare:!0,style:NE,onClick:t},l.a.createElement(W.q,{title:e<0?"OVERBUDGETED":"TO BUDGET",style:FE}),l.a.createElement(W.y,{style:[$.c.smallText,{fontWeight:"500",color:e<0?$.a.r4:$.a.n1}]},Object(jt.a)(e,"financial"))))}var zE={flexDirection:"column",alignItems:"flex-start"},WE={color:$.a.n1},$E={color:$.a.n1};function GE({projected:e}){let t=Object(Ct.a)(Ne.totalBudgetedSaved)||0,n=Object(Ct.a)(Ne.totalSaved)||0,r=e?t:n,a=r<0;return l.a.createElement(W.B,{style:zE},e?l.a.createElement(W.q,{title:"PROJECTED SAVINGS",style:WE}):l.a.createElement(W.q,{title:a?"OVERSPENT":"SAVED",style:$E}),l.a.createElement(W.y,{style:[$.c.smallText,{fontWeight:"500",color:e?$.a.y3:a?$.a.r4:$.a.n1}]},Object(jt.a)(r,"financial")))}class HE extends l.a.PureComponent{render(){const e=this.props,t=e.name,n=e.binding,r=e.editing,a=e.style,o=e.textStyle,i=e.categoryId,c=e.month,s=e.onBudgetAction;var u=_E({height:IE-4,transform:"translateX(6px)"},!r&&{opacity:0,position:"absolute",top:0}),d=_E({justifyContent:"center",height:IE-4},r&&{display:"none"});return l.a.createElement(St.a,{binding:n},e=>l.a.createElement(W.B,{style:a},l.a.createElement(CE,{value:Object(Pe.j)(e.value||0),style:u,focused:r,textStyle:[$.c.smallText,o],onChange:()=>{},onBlur:e=>{s(c,"budget-amount",{category:i,amount:Object(Pe.b)(e)})}}),l.a.createElement(W.B,{style:d},l.a.createElement(W.y,{style:[$.c.smallText,o],"data-testid":t},Object(jt.a)(e.value||0,"financial")))))}}var qE={flex:1},YE={width:90},VE={textAlign:"right"},KE={width:90,textAlign:"right"},QE={color:$.a.r4};class ZE extends l.a.PureComponent{constructor(e){super(e);let t=e.editMode,n=e.blank;this.opacity=t||n?0:1}render(){let e=this.props,t=e.category,n=e.editing,r=e.index,a=(e.gestures,e.editMode),o=e.style,i=e.month,c=e.onEdit,s=e.onBudgetAction,u=Le.catBudgeted(t.id),d=Le.catBalance(t.id),f=l.a.createElement(ME,{style:[{backgroundColor:n?$.a.p11:"transparent",borderBottomWidth:0,borderTopWidth:r>0?1:0},o],"data-testid":"row"},l.a.createElement(W.B,{style:qE},l.a.createElement(W.y,{style:$.c.smallText},t.name)),l.a.createElement(W.B,{style:{alignItems:"center",flexDirection:"row",opacity:this.opacity}},l.a.createElement(HE,{name:"budgeted",binding:u,editing:n,style:YE,textStyle:[$.c.smallText,VE],categoryId:t.id,month:i,onBudgetAction:s}),l.a.createElement(xt,{name:"balance",binding:d,style:[$.c.smallText,KE],getStyle:e=>e<0&&QE,type:"financial"})));return a?l.a.createElement("div",null,()=>f):l.a.createElement("div",{onClick:()=>c(t.id)},f)}}var JE={flexDirection:"row",alignItems:"center",backgroundColor:$.a.n11},XE={flex:1},ev={fontWeight:"500"},tv={width:90,fontWeight:"500",textAlign:"right"},nv={width:90,fontWeight:"500",textAlign:"right"},rv={padding:10};class av extends l.a.PureComponent{constructor(e){super(e);let t=e.editMode,n=e.blank;this.opacity=t||n?0:1}render(){let e=this.props,t=e.group,n=e.editMode,r=e.onAddCategory,a=l.a.createElement(ME,{style:JE,"data-testid":"totals"},l.a.createElement(W.B,{style:XE},l.a.createElement(W.y,{style:[$.c.smallText,ev],"data-testid":"name"},t.name)),l.a.createElement(W.B,{style:{flexDirection:"row",alignItems:"center",opacity:this.opacity}},l.a.createElement(xt,{binding:Le.groupBudgeted(t.id),style:[$.c.smallText,tv],type:"financial"}),l.a.createElement(xt,{binding:Le.groupBalance(t.id),style:[$.c.smallText,nv],type:"financial"})),n&&l.a.createElement(W.B,null,l.a.createElement(W.d,{onClick:()=>r(t.id),style:rv},l.a.createElement(It,{width:15,height:15,color:$.a.n1}))));return a}}var ov={flexDirection:"row",alignItems:"center",padding:10,backgroundColor:"transparent"},lv={flex:1},iv={width:90,textAlign:"right"},cv={width:90,textAlign:"right"};class sv extends l.a.PureComponent{render(){const e=this.props,t=e.name,n=e.budget,r=e.balance,a=e.style,o=e.nameTextStyle,i=e.amountTextStyle;return l.a.createElement(ME,{style:[ov,a]},l.a.createElement(W.B,{style:lv},l.a.createElement(W.y,{style:[$.c.smallText,o],"data-testid":"name"},t)),n&&l.a.createElement(xt,{binding:n,style:[$.c.smallText,iv,i],type:"financial"}),l.a.createElement(xt,{binding:r,style:[$.c.smallText,cv,i],type:"financial"}))}}var uv={marginTop:7,marginBottom:7};class dv extends l.a.PureComponent{render(){const e=this.props,t=e.group,n=(e.editingId,e.editMode),r=e.gestures,a=e.month,o=e.onEditCategory,i=e.onReorderCategory,c=(e.onReorderGroup,e.onAddCategory),s=e.onBudgetAction;return l.a.createElement(W.g,{style:uv},l.a.createElement(av,{group:t,budgeted:Le.groupBudgeted(t.id),balance:Le.groupBalance(t.id),editMode:n,onAddCategory:c,onReorderCategory:i}),t.categories.map((e,t)=>l.a.createElement(ZE,{key:e.id,index:t,category:e,editing:void 0,editMode:n,gestures:r,month:a,onEdit:o,onReorder:i,onBudgetAction:s})))}}var fv={flexDirection:"row",alignItems:"center",justifyContent:"flex-end",marginTop:50,marginBottom:5,marginRight:14},pv={width:90},mv={width:90},yv={marginTop:0},gv={fontWeight:"500"},hv={fontWeight:"500"},bv={backgroundColor:$.a.n11};class Ov extends l.a.Component{render(){const e=this.props,t=e.type,n=e.group;return l.a.createElement(W.B,null,l.a.createElement(W.B,{style:fv},"report"===t&&l.a.createElement(W.q,{title:"BUDGETED",style:pv}),l.a.createElement(W.q,{title:"RECEIVED",style:mv})),l.a.createElement(W.g,{style:yv},l.a.createElement(sv,{name:"Income",budget:"report"===t?Ne.groupBudgeted(n.id):null,balance:"report"===t?Ne.groupSumAmount(n.id):Le.groupSumAmount(n.id),nameTextStyle:gv,amountTextStyle:hv,style:bv}),n.categories.map((e,n)=>l.a.createElement(sv,{key:e.id,type:t,name:e.name,budget:"report"===t?Ne.catBudgeted(e.id):null,balance:"report"===t?Ne.catSumAmount(e.id):Le.catSumAmount(e.id),index:n}))))}}var wv={flex:"1 0 auto",overflowY:"auto",paddingBottom:15};class Ev extends l.a.Component{constructor(...e){super(...e),this.getGroups=Object(Uu.a)(e=>({incomeGroup:e.find(e=>e.is_income),expenseGroups:e.filter(e=>!e.is_income)}))}render(){const e=this.props,t=e.type,n=e.categoryGroups,r=e.editingId,a=(e.editMode,e.gestures),o=e.month,i=e.onEditCategory,c=e.onAddCategory,s=e.onReorderCategory,u=e.onReorderGroup,d=e.onBudgetAction,f=this.getGroups(n),p=f.incomeGroup,m=f.expenseGroups;return l.a.createElement(W.B,{"data-testid":"budget-groups",style:wv},m.map(e=>l.a.createElement(dv,{key:e.id,group:e,editingId:r,editMode:void 0,gestures:a,month:o,onEditCategory:i,onAddCategory:c,onReorderCategory:s,onReorderGroup:u,onBudgetAction:d})),p&&l.a.createElement(Ov,{type:t,group:p}))}}var vv={flex:1,overflowY:"hidden"},jv={flexDirection:"row",flex:"1 0 auto",padding:10,paddingRight:14,backgroundColor:"white",borderBottomWidth:1,borderColor:$.a.n9},Sv={flex:1},xv={width:90},Cv={color:$.a.n1},kv={color:$.a.n1,textAlign:"right",fontWeight:"500"},Pv={width:90},Av={color:$.a.n1},Dv={color:$.a.n1,textAlign:"right",fontWeight:"500"},Bv={overflowY:"auto"};class Iv extends l.a.Component{constructor(...e){super(...e),this.state={editingCategory:null},this.onEditCategory=(e=>{this.setState({editingCategory:e})})}render(){const e=this.props,t=e.type,n=e.categoryGroups,r=e.month,a=e.monthBounds,o=e.editMode,i=e.onPrevMonth,c=e.onNextMonth,s=e.onAddCategory,u=e.onReorderCategory,d=e.onReorderGroup,f=e.onShowBudgetDetails,p=e.onOpenActionSheet,m=e.onBudgetAction;let y=this.state.editingCategory,g=de.d();return l.a.createElement(vp.a.Provider,{value:de.w(r,t)},l.a.createElement(W.B,{style:vv,"data-testid":"budget-table"},l.a.createElement(Uv,{currentMonth:r,monthBounds:a,editMode:o,onDone:()=>this.props.onEditMode(!1),onOpenActionSheet:p,onPrevMonth:i,onNextMonth:c}),l.a.createElement(W.B,{style:jv},"report"===t?l.a.createElement(GE,{projected:r>=g}):l.a.createElement(UE,{toBudget:Le.toBudget,onClick:f}),l.a.createElement(W.B,{style:Sv}),l.a.createElement(W.B,{style:xv},l.a.createElement(W.q,{title:"BUDGETED",style:Cv}),l.a.createElement(xt,{binding:Ne.totalBudgetedExpense,type:"financial",style:[$.c.smallText,kv],formatter:e=>Object(jt.a)(-parseFloat(e||"0"),"financial")})),l.a.createElement(W.B,{style:Pv},l.a.createElement(W.q,{title:"BALANCE",style:Av}),l.a.createElement(xt,{binding:Le.totalBalance,type:"financial",style:[$.c.smallText,Dv]}))),l.a.createElement(W.B,{style:Bv},o?l.a.createElement(l.a.Fragment,null,l.a.createElement(W.B,null,l.a.createElement(Ev,{categoryGroups:n,editingId:y,editMode:o,gestures:this.gestures,onEditCategory:()=>{},onAddCategory:s,onReorderCategory:u,onReorderGroup:d}))):l.a.createElement(W.B,null,l.a.createElement(Ev,{type:t,categoryGroups:n,editingId:y,editMode:o,gestures:this.gestures,month:r,onEditCategory:this.onEditCategory,onAddCategory:s,onReorderCategory:u,onReorderGroup:d,onBudgetAction:m})))))}}var Tv={alignItems:"center",flexDirection:"row",flexShrink:0,height:50,justifyContent:"center",backgroundColor:$.a.p5},Mv={color:$.a.n11},Rv={marginTop:12,marginBottom:12,color:$.a.n11,textAlign:"center"},_v={position:"absolute",top:0,bottom:0,right:0},Lv={color:$.a.n11,fontSize:15,fontWeight:"500"},Nv={color:$.a.n11},Fv={color:"white",position:"absolute",top:0,bottom:0,right:0,backgroundColor:"transparent",paddingLeft:12,paddingRight:12};const Uv=Object(s.b)(e=>({localPrefs:e.prefs.local}),y)(function({currentMonth:e,monthBounds:t,editMode:n,onDone:r,onPrevMonth:a,onNextMonth:o,sync:i,localPrefs:c}){let s=e>t.start,u=e<de.y(t.end,1),d={paddingLeft:15,paddingRight:15,backgroundColor:"transparent"};return l.a.createElement(W.B,{style:Tv},!n&&l.a.createElement(W.d,{bare:!0,onClick:s&&a,style:[d,{left:0,opacity:s?1:.6,padding:"5px 30px 5px 0"}]},l.a.createElement(lp,{style:Mv,width:"15",height:"15"})),l.a.createElement(W.y,{style:[$.c.mediumText,Rv]},de.g(e,"MMMM ''yy")),n?l.a.createElement(W.d,{bare:!0,onClick:r,style:[d,_v],textStyle:Lv},"Done"):l.a.createElement(l.a.Fragment,null,l.a.createElement(W.d,{bare:!0,onClick:u&&o,style:[d,{opacity:u?1:.6}]},l.a.createElement(up,{style:Nv,width:"15",height:"15"})),l.a.createElement(Uw,{style:Fv,localPrefs:c,onSync:i})))});var zv={flex:1,backgroundColor:"white",alignItems:"center",justifyContent:"center",marginBottom:25};class Wv extends l.a.Component{constructor(e){super(e),this.prewarmMonth=(async(e,t=null)=>{let n="report"===(t=t||this.props.budgetType)?"report-budget-month":"rollover-budget-month",r=await Object(T.send)(n,{month:e});for(let a of r)this.props.spreadsheet.prewarmCache(a.name,a);this.state.initialized||this.setState({initialized:!0})}),this.onShowBudgetDetails=(()=>{this.props.pushModal("budget-summary",{month:this.state.currentMonth})}),this.onBudgetAction=(e=>{const t=this.state.currentMonth;this.props.applyBudgetAction(t,e,this.state.bounds)}),this.onAddCategory=(e=>{this.props.navigation.navigate("AddCategoryModal",{groupId:e,onAdd:async t=>{let n=await this.props.createCategory(t,e),r=this.state.categoryGroups;this.setState({categoryGroups:zf(r,{name:t,cat_group:e,is_income:0,id:n})})}})}),this.onReorderCategory=((e,{inGroup:t,aroundCategory:n})=>{let r,a,o=this.state.categoryGroups;if(t)r=t;else if(n){let e=n.id,t=n.position,l=o.find(t=>t.categories.find(t=>t.id===e));if("bottom"===t){let t=l.categories,n=t.findIndex(t=>t.id===e);e=n<t.length-1?t[n+1].id:null}r=l.id,a=e}this.props.moveCategory(e,r,a),this.setState({categoryGroups:$f(o,e,r,a)})}),this.onReorderGroup=((e,t,n)=>{let r=this.state.categoryGroups;if("bottom"===n){let e=r.findIndex(e=>e.id===t);t=e<r.length-1?r[e+1].id:null}this.props.moveCategoryGroup(e,t),this.setState({categoryGroups:Gf(r,e,t)})}),this.sync=(async()=>{const e=await this.props.sync(),t=e.updated;return e.error?"error":t?"updated":null}),this.onPrevMonth=(async()=>{let e=de.y(this.state.currentMonth,1);await this.prewarmMonth(e),this.setState({currentMonth:e})}),this.onNextMonth=(async()=>{let e=de.b(this.state.currentMonth,1);await this.prewarmMonth(e),this.setState({currentMonth:e})}),this.onOpenActionSheet=(()=>{let e=this.props.budgetType,t=["Edit Categories","Copy last month's budget","Set budgets to zero","Set budgets to 3 month average","report"===e&&"Apply to all future budgets","Cancel"].filter(Boolean);this.props.showActionSheetWithOptions({options:t,cancelButtonIndex:t.length-1,title:"Actions"},t=>{switch(t){case 0:this.setState({editMode:!0});break;case 1:this.onBudgetAction("copy-last");break;case 2:this.onBudgetAction("set-zero");break;case 3:this.onBudgetAction("set-3-avg");break;case 4:"report"===e&&this.onBudgetAction("set-all-future")}})}),this.summary=0;const t=de.d();this.state={bounds:{start:t,end:t},currentMonth:t,initialized:!1,editMode:!1,categoryGroups:null}}async loadCategories(){let e=await this.props.getCategories();this.setState({categoryGroups:e.grouped})}async componentDidMount(){this.loadCategories();const e=await Object(T.send)("get-budget-bounds"),t=e.start,n=e.end;this.setState({bounds:{start:t,end:n}}),this.prewarmMonth(this.state.currentMonth);let r=Object(T.listen)("sync-event",({type:e,tables:t})=>{"success"===e&&(t.includes("categories")||t.includes("category_mapping")||t.includes("category_groups"))&&this.loadCategories()});this.cleanup=(()=>{r()})}componentWillUnmount(){}render(){const e=this.state,t=e.currentMonth,n=e.bounds,r=e.editMode,a=e.initialized,o=(e.showBudgetDetails,this.props),i=o.categories,c=o.categoryGroups,s=o.prefs,u=o.budgetType,d=o.navigation,f=o.applyBudgetAction;let p=s.numberFormat||"comma-dot";return c&&a?l.a.createElement(Gu,{onSync:this.sync},({refreshing:e,onRefresh:a})=>l.a.createElement(Iv,{key:p,categories:i,categoryGroups:c,type:u,month:t,monthBounds:n,editMode:r,navigation:d,onEditMode:e=>this.setState({editMode:e}),onShowBudgetDetails:this.onShowBudgetDetails,onPrevMonth:this.onPrevMonth,onNextMonth:this.onNextMonth,onAddCategory:this.onAddCategory,onReorderCategory:this.onReorderCategory,onReorderGroup:this.onReorderGroup,onOpenActionSheet:()=>{},onBudgetAction:f})):l.a.createElement(W.B,{style:zv},l.a.createElement(Tt.a,{width:25,height:25}))}}var $v=Object(s.b)(e=>({categoryGroups:e.queries.categories.grouped,categories:e.queries.categories.list,budgetType:e.prefs.local.budgetType||"rollover",prefs:e.prefs.local,initialBudgetMonth:e.app.budgetMonth}),y)(Object(zu.b)($.a.p5)(function(e){let t=Object(o.useContext)(I.a);return l.a.createElement(Wv,Object.assign({},e,{spreadsheet:t}))}));var Gv=Object(u.k)(class extends l.a.Component{componentDidMount(){const e=e=>{if(!Eb.a.isBrowser&&e.metaKey){const t=this.props.history;switch(e.keyCode){case 49:t.push("/budget");break;case 50:t.push("/reports");break;case 51:t.push("/accounts");break;case 188:"mac"===Eb.a.OS&&t.push("/settings")}}};document.addEventListener("keydown",e),this.cleanupListeners=(()=>{document.removeEventListener("keydown",e)})}componentWillUnmount(){this.cleanupListeners()}render(){return null}});let Hv=l.a.createContext({type:"page"});function qv({type:e,current:t,children:n}){return l.a.createElement(Hv.Provider,{value:{type:e,current:t}},n)}function Yv(){return l.a.useContext(Hv)}var Vv={fontSize:25,fontWeight:500,marginBottom:15};function Kv({name:e}){return l.a.createElement(W.y,{style:Vv},e)}var Qv={paddingLeft:20,paddingRight:20,flex:1};function Zv({title:e,modalSize:t,children:n}){let r=Yv(),a=r.type,o=r.current,i=Object(u.g)();if("modal"===a){let r=t;return"string"===typeof t&&(r="medium"===t?{width:750,height:600}:{width:600}),l.a.createElement(W.t,{title:e,isCurrent:o,size:r,onClose:()=>i.goBack()},n)}return l.a.createElement(W.B,{style:[$.c.page,Qv]},l.a.createElement(Kv,{name:e}),n)}function Jv(){return l.a.createElement(Zv,{title:"Rules"},l.a.createElement(Hr,null))}var Xv={flexDirection:"row",justifyContent:"center",paddingTop:15,paddingBottom:15},ej={fontWeight:"600",textAlign:"right",marginRight:10},tj={display:"flex",flexDirection:"column",textAlign:"left"},nj={alignItems:"center",marginBottom:15},rj={flexDirection:"row",justifyContent:"center",paddingBottom:15},aj={marginRight:10};var oj=function({month:e,modalProps:t}){const n=de.g(de.u(e),"MMM");return l.a.createElement(W.t,Object.assign({title:"Budget Details"},t,{animate:!0}),()=>l.a.createElement(vp.a.Provider,{value:de.w(e)},l.a.createElement(W.B,{style:Xv},l.a.createElement(W.B,{style:[$.c.text,ej]},l.a.createElement(xt,{binding:Le.incomeAvailable,type:"financial"}),l.a.createElement(xt,{binding:Le.lastMonthOverspent,type:"financial"}),l.a.createElement(xt,{binding:Le.totalBudgeted,type:"financial"}),l.a.createElement(xt,{binding:Le.forNextMonth,type:"financial"})),l.a.createElement(W.B,{style:[$.c.text,tj]},l.a.createElement(W.y,null,"Available Funds"),l.a.createElement(W.y,null,"Overspent in ",n),l.a.createElement(W.y,null,"Budgeted"),l.a.createElement(W.y,null,"For Next Month"))),l.a.createElement(W.B,{style:nj},l.a.createElement(St.a,{binding:Le.toBudget},({value:e})=>l.a.createElement(l.a.Fragment,null,l.a.createElement(W.y,{style:$.c.text},e<0?"Overbudget:":"To budget:"),l.a.createElement(W.y,{style:[$.c.text,{fontWeight:"600",fontSize:22,color:e<0?$.a.r4:$.a.n1}]},Object(jt.a)(e,"financial"))))),l.a.createElement(W.B,{style:rj},l.a.createElement(W.d,{style:aj,onClick:t.onClose},"Close"))))},lj=n(220);const ij=["categoryGroups"];function cj(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return sj(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return sj(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function sj(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function uj(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function dj(e,t,n){const r=n.find(e=>e.id===t),a=r&&1===r.offbudget;return 0===e.offbudget&&a}function fj(e){let t=e.categoryGroups,n=uj(e,ij);return l.a.createElement(W.w,n,l.a.createElement("option",{value:""},"Select category..."),t.map(e=>l.a.createElement("optgroup",{key:e.id,label:e.name},e.categories.map(e=>l.a.createElement("option",{key:e.id,value:e.id},e.name)))))}var pj={flex:0},mj={width:200,marginBottom:15},yj={marginBottom:15},gj={marginBottom:15},hj={width:200},bj={marginBottom:15},Oj={fontSize:12},wj={color:$.a.r6},Ej={flexDirection:"row",justifyContent:"flex-end"},vj={marginRight:10};var jj=function({account:e,accounts:t,categoryGroups:n,balance:r,canDelete:a,actions:i,modalProps:c}){let s=cj(Object(o.useState)(!1),2),u=s[0],d=s[1],f=t.filter(t=>t.id!==e.id),p=f.filter(e=>0===e.offbudget),m=f.filter(e=>1===e.offbudget);return l.a.createElement(W.t,Object.assign({title:"Close Account"},c,{style:pj,loading:u}),()=>l.a.createElement(W.B,null,l.a.createElement(W.v,null,"Are you sure you want to close ",l.a.createElement("strong",null,e.name),"?"," ",a?l.a.createElement("span",null,"This account has no transactions so it will be permanently deleted."):l.a.createElement("span",null,"This account has transactions so we can","'","t permanently delete it.")),l.a.createElement(lj.a,{validateOnChange:!1,initialValues:{transfer:"",category:""},onSubmit:(n,{setErrors:a})=>{const o={};0!==r&&""===n.transfer&&(o.transfer="required"),dj(e,n.transfer,t)&&""===n.category&&(o.category="required"),a(o),0===Object.keys(o).length&&(d(!0),i.closeAccount(e.id,n.transfer||null,n.category||null).then(()=>{c.onClose()}))},render:({values:o,errors:s,touched:u,handleChange:f,handleBlur:y,handleSubmit:g,isSubmitting:h,setFieldValue:b})=>l.a.createElement("form",{onSubmit:g},0!==r&&l.a.createElement(W.B,null,l.a.createElement(W.v,null,"This account has a balance of"," ",l.a.createElement("strong",null,Object(Pe.k)(r)),". To close this account, select a different account to transfer this balance to:"),l.a.createElement(W.w,{name:"transfer",value:o.transfer,onChange:f,onBlur:y,style:mj},l.a.createElement("option",{value:""},"Select account..."),l.a.createElement("optgroup",{label:"For Budget"},p.map(e=>l.a.createElement("option",{key:e.id,value:e.id},e.name))),l.a.createElement("optgroup",{label:"Off Budget"},m.map(e=>l.a.createElement("option",{key:e.id,value:e.id},e.name)))),s.transfer&&l.a.createElement(W.j,{style:yj},"Transfer is required"),dj(e,o.transfer,t)&&l.a.createElement(W.B,{style:gj},l.a.createElement(W.v,null,"Since you are transferring the balance from a budgeted account to an off-budget account, this transaction must be categorized. Select a category:"),l.a.createElement(fj,{categoryGroups:n,name:"category",value:o.category,onChange:f,onBlur:y,style:hj}),s.category&&l.a.createElement(W.j,null,"Category is required"))),!a&&l.a.createElement(W.B,{style:bj},l.a.createElement(W.y,{style:Oj},"You can also ",l.a.createElement("a",{href:"#",onClick:t=>{t.preventDefault(),d(!0),i.forceCloseAccount(e.id).then(()=>c.onClose())},style:wj},"force close")," ","the account which will delete it and all its transactions permanently. Doing so may change your budget unexpectedly since money in it may vanish.")),l.a.createElement(W.B,{style:Ej},l.a.createElement(W.d,{type:"submit",style:vj,onClick:c.onClose},"Cancel"),l.a.createElement(W.d,{type:"submit",primary:!0},"Close Account")))})))},Sj=n(212);function xj(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return Cj(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Cj(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Cj(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function kj(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Pj(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?kj(Object(n),!0).forEach(function(t){Aj(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):kj(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Aj(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Dj(){return null}var Bj={marginBottom:8,flexShrink:0,userSelect:"none"},Ij=Pj(Pj({padding:12},$.c.shadow),{},{cursor:"pointer",transition:"transform .20s",fontSize:14,borderRadius:4,flexDirection:"row",alignItems:"center",border:"1px solid "+$.a.n10}),Tj={flex:1},Mj={fontWeight:600},Rj={fontSize:13,color:$.a.n5,flexDirection:"row"},_j={marginLeft:4},Lj={color:$.a.n8},Nj={width:15,height:15,color:$.a.g5},Fj={color:$.a.g5,marginLeft:5};function Uj({account:e,offbudget:t,onSelect:n}){return l.a.createElement(W.B,{style:[Bj,$.c.mediumText],onClick:n},l.a.createElement(W.B,{style:[Ij]},l.a.createElement(W.B,{style:Tj},l.a.createElement(W.B,{style:Mj},e.name),l.a.createElement(W.B,{style:Rj},tf(ef(e.type,e.subtype)),l.a.createElement(W.y,{style:_j},"...",e.mask))),t?l.a.createElement(W.y,{style:Lj},"Off budget"):l.a.createElement(l.a.Fragment,null,l.a.createElement(Sj.a,{style:Nj}),l.a.createElement(W.y,{style:Fj},"Budgeted"))))}var zj={maxWidth:500},Wj={fontSize:15,marginBottom:15,lineHeight:"1.4em"},$j={maxHeight:300,overflow:"auto",paddingLeft:5,paddingRight:5,marginLeft:-5,marginRight:-5},Gj={flexDirection:"row",justifyContent:"flex-end",marginTop:30},Hj={marginRight:10};function qj({institution:e,publicToken:t,upgradingId:n,modalProps:r,accounts:a,actions:i}){let c=xj(Object(o.useState)(()=>a.filter(e=>nf(ef(e.type))).map(e=>e.id)),2),s=c[0],u=c[1];async function d(){let n=await i.connectAccounts(e,t,a.map(e=>e.id),s);i.closeModal(),1===n.length?window.location.hash="/accounts/"+n[0]:n.length>0&&(window.location.hash="/accounts")}return l.a.createElement(W.t,Object.assign({title:n?"Link Account":"Link Accounts"},r),()=>l.a.createElement(W.B,{style:zj},l.a.createElement(W.y,{style:Wj},"A ",l.a.createElement("strong",null,"budgeted account")," is one where expenses and income affect the budget. Usually things like investments are off budget. We","'","ve chosen some defaults here, but you can change the status if you like."),l.a.createElement(W.B,{style:$j},l.a.createElement(W.B,null,0===a.length?l.a.createElement(Dj,null):a.map(e=>{let t=s.includes(e.id);return l.a.createElement(Uj,{key:e.id,account:e,offbudget:t,onSelect:()=>(function(e){s.includes(e)?u(s.filter(t=>t!==e)):u([...s,e])})(e.id)})}))),l.a.createElement(W.B,{style:Gj},l.a.createElement(W.d,{style:Hj,onClick:r.onBack},"Back"),l.a.createElement(W.d,{primary:!0,onClick:d},n?"Link Account":"Next"))))}var Yj={flex:1},Vj={marginLeft:75},Kj={marginLeft:75},Qj={width:"75%",flexDirection:"row",justifyContent:"flex-end"},Zj={userSelect:"none"},Jj={flex:1},Xj={marginLeft:75},eS={marginLeft:10};var tS=function({modalProps:e,actions:t,history:n}){return l.a.createElement(W.t,Object.assign({title:"Create Local Account"},e,{showBack:!1}),()=>l.a.createElement(W.B,null,l.a.createElement(lj.a,{validateOnChange:!1,initialValues:{name:"",type:"checking",balance:"0"},validate:()=>({}),onSubmit:async(r,{setErrors:a})=>{const o={};if(r.type||(o.type="required"),r.name||(o.name="required"),isNaN(parseFloat(r.balance))&&(o.balance="format"),a(o),0===Object.keys(o).length){e.onClose();let a=await t.createAccount(r.name,r.type,Object(Pe.q)(r.balance),r.offbudget);n.push("/accounts/"+a)}},render:({values:t,errors:n,touched:r,handleChange:a,handleBlur:o,handleSubmit:i,isSubmitting:c,setFieldValue:s})=>l.a.createElement("form",{onSubmit:i},l.a.createElement(W.m,{label:"Name",width:"75%"},l.a.createElement(W.l,null,l.a.createElement(W.n,{name:"name",value:t.name,onChange:a,onBlur:o,style:Yj}))),n.name&&l.a.createElement(W.j,{style:Vj},"Name is required"),l.a.createElement(W.m,{label:"Type",width:"75%"},l.a.createElement(W.w,{name:"type",value:t.type,onChange:e=>{s("offbudget",nf(e.target.value)),a(e)},onBlur:o},l.a.createElement("option",{value:"checking"},"Checking / Cash"),l.a.createElement("option",{value:"savings"},"Savings"),l.a.createElement("option",{value:"credit"},"Credit Card"),l.a.createElement("option",{value:"investment"},"Investment"),l.a.createElement("option",{value:"mortgage"},"Mortgage"),l.a.createElement("option",{value:"debt"},"Debt"),l.a.createElement("option",{value:"other"},"Other"))),n.type&&l.a.createElement(W.j,{style:Kj},"You must select a type"),l.a.createElement(W.B,{style:Qj},l.a.createElement("label",{style:Zj},l.a.createElement("input",{name:"offbudget",type:"checkbox",checked:!!t.offbudget,onChange:a,onBlur:o})," ","Off-budget")),l.a.createElement(W.m,{label:"Balance",width:"75%"},l.a.createElement(W.n,{name:"balance",value:t.balance,onChange:a,onBlur:o,style:Jj})),n.balance&&l.a.createElement(W.j,{style:Xj},"Balance must be a number"),l.a.createElement(W.u,null,l.a.createElement(W.d,{onClick:()=>e.onBack(),type:"button"},"Back"),l.a.createElement(W.d,{primary:!0,style:eS},"Create")))})))},nS=n(59),rS={flex:0,padding:"15px 10px",backgroundColor:$.a.n1,color:"white"},aS={alignSelf:"center",color:$.a.b10,marginBottom:10},oS={flex:1};var lS=Object(s.b)(e=>({dateFormat:e.prefs.local.dateFormat||"MM/dd/yyyy",categoryGroups:e.queries.categories.grouped,accounts:e.queries.accounts,payees:e.queries.payees}),y)(function({actions:e,modalProps:t,name:n,accounts:r,categoryGroups:a,payees:o,onSubmit:i,dateFormat:c,createPayee:s}){function u(e){"amount"===n&&(e=Object(Pe.b)(e)),i(n,e),t.onClose()}let d,f,p,m={":focus":{boxShadow:0}},y={inputProps:{style:m},containerProps:{style:{height:275}}};switch(n){case"date":{let e=Object(de.c)();d="Date",p=350,f=l.a.createElement(go.a,{value:Object(jn.a)(Object(Gn.a)(e),c),dateFormat:c,focused:!0,embedded:!0,onUpdate:()=>{},onSelect:e=>{u(Object(de.e)(Object(Ce.a)(e,"yyyy-MM-dd",new Date)))}});break}case"account":d="Account",f=l.a.createElement(Za,Object.assign({value:null,accounts:r,focused:!0,embedded:!0,onSelect:e=>{e&&u(e)}},y));break;case"payee":d="Payee",f=l.a.createElement(zo,Object.assign({payees:o,accounts:r,value:null,focused:!0,embedded:!0,showManagePayees:!1,onSelect:async e=>{e&&e.startsWith("new:")&&(e=await s(e.slice("new:".length))),u(e)}},y));break;case"notes":d="Notes",f=l.a.createElement(W.n,{focused:!0,onEnter:e=>u(e.target.value),style:m});break;case"category":d="Category",f=l.a.createElement(yo,Object.assign({categoryGroups:a,value:null,focused:!0,embedded:!0,showSplitOption:!1,onUpdate:()=>{},onSelect:e=>{u(e)}},y));break;case"amount":d="Amount",f=l.a.createElement(W.n,{focused:!0,onEnter:e=>u(e.target.value),style:m})}return l.a.createElement(W.t,Object.assign({noAnimation:!0,showHeader:!1,focusAfterClose:!1},t,{padding:0,style:[rS,p&&{minWidth:p}]}),()=>l.a.createElement(W.B,null,l.a.createElement(nS.d,{title:d,style:aS}),l.a.createElement(W.B,{style:oS},f)))});const iS=["inflow","outflow"];function cS(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function sS(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function uS(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?sS(Object(n),!0).forEach(function(t){dS(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):sS(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function dS(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function fS(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return pS(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return pS(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function pS(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}let mS=[{format:"yyyy mm dd",label:"YYYY MM DD"},{format:"yy mm dd",label:"YY MM DD"},{format:"mm dd yyyy",label:"MM DD YYYY"},{format:"mm dd yy",label:"MM DD YY"},{format:"dd mm yyyy",label:"DD MM YYYY"},{format:"dd mm yy",label:"DD MM YY"}];function yS(e,t){if("string"!==typeof e)return null;function n(e){return e&&1===e.length?"0"+e:e}const r=(e,t)=>n=>{const r=n.replace(/[^\d]/g,"");return[r.slice(0,e),r.slice(e,e+t),r.slice(e+t)]},a=r(4,2),o=r(2,2);let l,i,c,s;switch(t){case"dd mm yyyy":i=(l=o(e))[2],c=l[1],s=l[0];break;case"dd mm yy":i=`20${(l=o(e))[2]}`,c=l[1],s=l[0];break;case"yyyy mm dd":i=(l=a(e))[0],c=l[1],s=l[2];break;case"yy mm dd":i=`20${(l=o(e))[0]}`,c=l[1],s=l[2];break;case"mm dd yy":i=`20${(l=o(e))[2]}`,c=l[0],s=l[1];break;default:case"mm dd yyyy":i=(l=o(e))[2],c=l[0],s=l[1]}let u=`${i}-${n(c)}-${n(s)}`;return ke.a(Gn.a(u))?u:null}function gS(e,t){if(!e)return null;try{return Object(de.g)(e,t)}catch(n){}return null}function hS(e){let t=e.match(/\.([^.]*)$/);return t?t[1].toLowerCase():"ofx"}var bS={color:$.a.n4,fontStyle:"italic"};function OS({parseDateFormat:e,showParsed:t,dateFormat:n,date:r}){let a=r&&gS(e?yS(r,e):r,n);return l.a.createElement(W.y,null,l.a.createElement(W.y,null,r||l.a.createElement(W.y,{style:bS},"Empty")," ","\u2192"," "),l.a.createElement(W.y,{style:{color:a?$.a.g3:$.a.r4}},a||"Invalid"))}function wS(e,t){if(0===e.length||null==t.date)return"yyyy mm dd";let n=e[0][t.date],r=null==n?null:mS.find(e=>null!=yS(n,e.format));return r?r.format:"mm dd yyyy"}function ES(e){if(0===e.length)return{};let t=e[0],n=Object.entries(t);function r(e){return e?e[0]:null}let a=r(n.find(([e,t])=>e.toLowerCase().includes("date"))||n.find(([e,t])=>t.match(/^\d+[-/]\d+[-/]\d+$/))),o=r(n.find(([e,t])=>e.toLowerCase().includes("amount"))||n.find(([e,t])=>t.match(/^-?[.,\d]+$/))),l=r(n.find(([e,t])=>e!==a&&e!==o)),i=r(n.find(([e,t])=>e!==a&&e!==o&&e!==l));return{date:a,amount:o,payee:l,notes:i}}function vS(e,t){let n={};for(let a of Object.entries(t)){var r=fS(a,2);let t=r[0],o=r[1];"payee"===t&&(t="payee_name"),n[t]=e[o||t]}return n}function jS(e,t){if(null==e)return null;return t("string"===typeof e?Object(Pe.m)(e):e)}function SS(e,t,n){if(t){let t=jS(e.outflow,e=>-Math.abs(e)),n=t?0:jS(e.inflow,e=>Math.abs(e));return{amount:t||n,outflow:t,inflow:n}}return{amount:jS(e.amount,e=>n?-1*e:e),outflow:null,inflow:null}}var xS={backgroundColor:"white"},CS={textAlign:"right"},kS={textAlign:"right"},PS={textAlign:"right"};function AS({transaction:e,fieldMappings:t,showParsed:n,parseDateFormat:r,dateFormat:a,splitMode:i,flipAmount:c}){let s=Object(o.useMemo)(()=>t?vS(e,t):e,[e,t]),u=SS(s,i,c),d=u.amount,f=u.outflow,p=u.inflow;return d=Object(Pe.a)(d),f=Object(Pe.a)(f),p=Object(Pe.a)(p),l.a.createElement(kt.h,{style:xS},l.a.createElement(kt.e,{width:200,borderColor:$.a.border},n?l.a.createElement(OS,{parseDateFormat:r,dateFormat:a,date:s.date}):gS(s.date,a)),l.a.createElement(kt.e,{width:"flex",borderColor:$.a.border,title:s.imported_payee||s.payee_name},s.payee_name),l.a.createElement(kt.e,{width:"flex",borderColor:$.a.border,title:s.notes},s.notes),i?l.a.createElement(l.a.Fragment,null,l.a.createElement(kt.e,{width:90,borderColor:$.a.border,contentStyle:[CS,$.c.tnum],title:f},f),l.a.createElement(kt.e,{width:90,borderColor:$.a.border,contentStyle:[kS,$.c.tnum],title:p},p)):l.a.createElement(kt.e,{width:90,borderColor:$.a.border,contentStyle:[PS,$.c.tnum],title:d},d))}var DS={fontSize:13,marginBottom:3,color:$.a.n3};function BS({title:e}){return l.a.createElement(W.y,{style:DS},e)}function IS({width:e,style:t,options:n,value:r,onChange:a}){return l.a.createElement(W.w,{value:r,style:t,onChange:e=>a(e.target.value)},l.a.createElement("option",{value:""},"Choose field..."),n.map(e=>l.a.createElement("option",{key:e,value:e},e)))}var TS={width:120};function MS({transactions:e,fieldMappings:t,parseDateFormat:n,onChange:r}){let a="-";if(e.length>0&&t&&null!=t.date){let n=e[0][t.date],r=n&&n.match(/[/.,-/\\]/);a=r?r[0]:" "}return l.a.createElement(W.B,{style:TS},l.a.createElement(nS.d,{title:"Date format"}),l.a.createElement(W.w,{value:n||"",onChange:e=>r(e.target.value)},mS.map(e=>l.a.createElement("option",{key:e.format,value:e.format},e.label.replace(/ /g,a)))))}var RS={flex:1,flexDirection:"row",alignItems:"center",userSelect:"none"};function _S({value:e,disabled:t,onChange:n}){return l.a.createElement(W.B,{style:RS},l.a.createElement(nS.a,{id:"form_flip",checked:e,disabled:t,onChange:n}),l.a.createElement("label",{htmlFor:"form_flip",style:{userSelect:"none",color:t?$.a.n6:null}},"Flip amount"))}var LS={flex:1,flexDirection:"row",alignItems:"center",userSelect:"none"},NS={userSelect:"none"};function FS({value:e,onChange:t}){return l.a.createElement(W.B,{style:LS},l.a.createElement(nS.a,{id:"form_split",checked:e,onChange:t}),l.a.createElement("label",{htmlFor:"form_split",style:NS},"Split amount into separate inflow/outflow columns"))}var US={marginTop:5},zS={width:200},WS={marginRight:5},$S={flex:1},GS={marginRight:5},HS={flex:1},qS={marginRight:5},YS={width:90},VS={width:90},KS={width:90};function QS({transactions:e,mappings:t,onChange:n,splitMode:r}){if(0===e.length)return null;let a=Object.keys(e[0]);return t=t||{},l.a.createElement(W.B,null,l.a.createElement(nS.d,{title:"CSV FIELDS"}),l.a.createElement(W.x,{direction:"row",align:"flex-start",spacing:1,style:US},l.a.createElement(W.B,{style:zS},l.a.createElement(BS,{title:"Date"}),l.a.createElement(IS,{width:200,options:a,value:t.date||"",style:WS,onChange:e=>n("date",e)})),l.a.createElement(W.B,{style:$S},l.a.createElement(BS,{title:"Payee"}),l.a.createElement(IS,{width:"flex",options:a,value:t.payee||"",style:GS,onChange:e=>n("payee",e)})),l.a.createElement(W.B,{style:HS},l.a.createElement(BS,{title:"Notes"}),l.a.createElement(IS,{width:"flex",options:a,value:t.notes||"",style:qS,onChange:e=>n("notes",e)})),r?l.a.createElement(l.a.Fragment,null,l.a.createElement(W.B,{style:YS},l.a.createElement(BS,{title:"Outflow"}),l.a.createElement(IS,{width:90,options:a,value:t.outflow||"",onChange:e=>n("outflow",e)})),l.a.createElement(W.B,{style:VS},l.a.createElement(BS,{title:"Inflow"}),l.a.createElement(IS,{width:90,options:a,value:t.inflow||"",onChange:e=>n("inflow",e)}))):l.a.createElement(W.B,{style:KS},l.a.createElement(BS,{title:"Amount"}),l.a.createElement(IS,{width:90,options:a,value:t.amount||"",onChange:e=>n("amount",e)}))))}var ZS={width:800},JS={alignItems:"center",marginBottom:15},XS={marginRight:10,color:$.a.r4},ex={flex:"unset",height:300,border:"1px solid "+$.a.border},tx={backgroundColor:$.a.n11},nx={textAlign:"center",marginTop:25,color:$.a.n4,fontStyle:"italic"},rx={color:$.a.r4,alignItems:"center",marginTop:10},ax={maxWidth:450,marginBottom:15},ox={marginTop:25},lx={marginTop:25},ix={marginTop:5},cx={marginTop:10},sx={flexDirection:"row",marginTop:25},ux={marginLeft:25},dx={flex:1},fx={alignSelf:"flex-end",flexDirection:"row",alignItems:"center"};var px=Object(s.b)(e=>({dateFormat:e.prefs.local.dateFormat||"MM/dd/yyyy",prefs:e.prefs.local}),y)(function({modalProps:e,options:t,dateFormat:n="MM/dd/yyyy",prefs:r,parseTransactions:a,importTransactions:i,getPayees:c,savePrefs:s}){let u=fS(Object(o.useState)("parsing"),2),d=u[0],f=u[1],p=fS(Object(o.useState)(null),2),m=p[0],y=p[1],g=fS(Object(o.useState)(t.filename),2),h=g[0],b=g[1],O=fS(Object(o.useState)([]),2),w=O[0],E=O[1],v=fS(Object(o.useState)(null),2),j=v[0],S=v[1],x=fS(Object(o.useState)(null),2),C=x[0],k=x[1],P=fS(Object(o.useState)(!1),2),A=P[0],D=P[1],B=fS(Object(o.useState)(!1),2),I=B[0],T=B[1],M=t.accountId,R=t.onImported,_=fS(Object(o.useState)(r[`csv-delimiter-${M}`]||","),2),L=_[0],N=_[1],F=fS(Object(o.useState)(null),2),U=F[0],z=F[1];async function $(e,t){f("parsing");let n=await a(e,t),o=n.errors,l=n.transactions;if(f(null),y(null),o.length>0)y({parsed:!0,message:o[0].message||"Internal error"});else{let t=hS(e);if(b(e),S(t),"csv"!==t&&"qif"!==t||T(r[`flip-amount-${M}-${t}`]||!1),"csv"===t){let e=r[`csv-mappings-${M}`];e=e?JSON.parse(e):ES(l),k(e);let n=!(!e.outflow&&!e.inflow);D(n),z(r[`parse-date-${M}-${t}`]||wS(l,e))}else"qif"===t?z(r[`parse-date-${M}-${t}`]||wS(l,{date:"date"})):(k(null),z(null));E(l.reverse())}}Object(o.useEffect)(()=>{$(t.filename,"csv"===hS(t.filename)?{delimiter:L}:null)},[a,t.filename]);let G=[{name:"Date",width:200},{name:"Payee",width:"flex"},{name:"Notes",width:"flex"}];return A?(G.push({name:"Outflow",width:90,style:{textAlign:"right"}}),G.push({name:"Inflow",width:90,style:{textAlign:"right"}})):G.push({name:"Amount",width:90,style:{textAlign:"right"}}),l.a.createElement(W.t,Object.assign({title:"Import transactions"+(j?` (${j.toUpperCase()})`:"")},e,{loading:"parsing"===d,style:ZS}),m&&!m.parsed&&l.a.createElement(W.B,{style:JS},l.a.createElement(W.y,{style:XS},l.a.createElement("strong",null,"Error:")," ",m.message)),(!m||!m.parsed)&&l.a.createElement(W.B,{style:ex},l.a.createElement(kt.m,{headers:G}),l.a.createElement(kt.n,{items:w,fields:["payee","amount"],style:tx,getItemKey:e=>e,renderEmpty:()=>l.a.createElement(W.B,{style:nx},"No transactions found"),renderItem:({key:e,style:t,item:r,editing:a,focusedField:o})=>l.a.createElement(W.B,{key:e,style:t},l.a.createElement(AS,{transaction:r,showParsed:"csv"===j||"qif"===j,parseDateFormat:U,dateFormat:n,fieldMappings:C,splitMode:A,flipAmount:I}))})),m&&m.parsed&&l.a.createElement(W.B,{style:rx},l.a.createElement(W.y,{style:ax},l.a.createElement("strong",null,"Error:")," ",m.message),m.parsed&&l.a.createElement(W.d,{onClick:()=>(function(){const e=window.Actual.openFileDialog({filters:[{name:"Financial Files",extensions:["qif","ofx","qfx","csv"]}]});$(e[0],"csv"===hS(e[0])?{delimiter:L}:null)})()},"Select new file...")),"csv"===j&&l.a.createElement(W.B,{style:ox},l.a.createElement(QS,{transactions:w,onChange:function(e,t){k(uS(uS({},C),{},{[e]:""===t?null:t}))},mappings:C,splitMode:A})),("qif"===j||"csv"===j)&&l.a.createElement(W.B,{style:lx},l.a.createElement(nS.d,{title:"IMPORT OPTIONS"}),l.a.createElement(W.B,{style:ix},l.a.createElement(_S,{value:I,disabled:A,onChange:()=>{T(!I)}})),"csv"===j&&l.a.createElement(W.B,{style:cx},l.a.createElement(FS,{value:A,onChange:function(){if(null==C)return;let e=!A;D(e);let t=ES(w),n=e?{amount:null,outflow:t.amount,inflow:null}:{amount:t.amount,outflow:null,inflow:null};k(uS(uS({},C),n))}}))),l.a.createElement(W.B,{style:sx},("qif"===j||"csv"===j)&&l.a.createElement(MS,{transactions:w,fieldMappings:C,parseDateFormat:U,onChange:z}),"csv"===j&&l.a.createElement(W.B,{style:ux},l.a.createElement(nS.d,{title:"CSV DELIMITER"}),l.a.createElement(W.w,{value:L,onChange:e=>{N(e.target.value),$(h,{delimiter:e.target.value})}},l.a.createElement("option",{value:","},","),l.a.createElement("option",{value:";"},";"))),l.a.createElement(W.B,{style:dx}),l.a.createElement(W.B,{style:fx},l.a.createElement(W.f,{primary:!0,disabled:0===w.length,loading:"importing"===d,onClick:async function(){f("importing");let t,n=[];for(let e of w){e=C?vS(e,C):e;let r="qfx"===j||"ofx"===j?e.date:yS(e.date,U);if(null==r){t=`Unable to parse date ${e.date||"(empty)"} with given date format`;break}let a=SS(e,A,I).amount;if(null==a){t=`Transaction on ${e.date} has no amount`;break}let o=e,l=(o.inflow,o.outflow,cS(o,iS));n.push(uS(uS({},l),{},{date:r,amount:Object(Pe.b)(a)}))}if(t)return f(null),void y({parsed:!1,message:t});"ofx"!==j&&"qfx"!==j&&s({[`parse-date-${M}-${j}`]:U}),"csv"===j&&(s({[`csv-mappings-${M}`]:JSON.stringify(C)}),s({[`csv-delimiter-${M}`]:L})),"csv"!==j&&"qif"!==j||s({[`flip-amount-${M}-${j}`]:I});let r=await i(M,n);r&&await c(),R&&R(r),e.onClose()}},"Import ",w.length," transactions"))))}),mx=n(221);function yx(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function gx(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?yx(Object(n),!0).forEach(function(t){hx(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):yx(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function hx(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var bx=e=>l.a.createElement("svg",Object.assign({},e,{viewBox:"0 0 20 20",style:gx({color:"#242134"},e.style)}),l.a.createElement("path",{d:"M2.93 17.07A10 10 0 1 1 17.07 2.93 10 10 0 0 1 2.93 17.07zm12.73-1.41A8 8 0 1 0 4.34 4.34a8 8 0 0 0 11.32 11.32zM9 11V9h2v6H9v-4zm0-6h2v2H9V5z",fill:"currentColor"}));function Ox(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function wx(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ox(Object(n),!0).forEach(function(t){Ex(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ox(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Ex(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var vx={paddingLeft:2,paddingTop:".11em",alignSelf:"stretch",flexShrink:0,marginRight:5},jx={zIndex:1,lineHeight:1.5};function Sx({icon:e,color:t,backgroundColor:n,style:r,children:a}){return l.a.createElement(W.B,{style:[wx(wx({color:t,fontSize:13},$.c.shadow),{},{borderRadius:4,backgroundColor:n,padding:10,flexDirection:"row","& a, & a:active, & a:visited":{color:$.a.b3}}),r]},l.a.createElement(W.B,{style:vx},l.a.createElement(e,{width:13,style:{color:t,marginTop:2}})),l.a.createElement(W.y,{style:jx},a))}var xx={boxShadow:"none",padding:5};function Cx({style:e,children:t}){return l.a.createElement(Sx,{icon:bx,color:$.a.n4,backgroundColor:"transparent",style:[e,xx]},t)}function kx({style:e,children:t}){return l.a.createElement(Sx,{icon:Rb,color:$.a.r2,backgroundColor:$.a.r10,style:e},t)}function Px(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return Ax(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Ax(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ax(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var Dx={alignSelf:"center"};var Bx={flex:0},Ix={fontSize:15},Tx={alignItems:"center",marginTop:15},Mx={width:20,height:20},Rx={marginTop:10,color:$.a.n4},_x={padding:"10px 0",fontSize:15,fontWeight:600,marginTop:10,backgroundColor:$.a.g4,borderColor:$.a.g4},Lx={padding:"10px 0",fontSize:15,fontWeight:600,marginTop:10},Nx={color:$.a.n5,fontWeight:600},Fx={marginTop:10,color:$.a.n5,fontSize:13,"& a, & a:visited":{color:$.a.n5}},Ux={marginTop:10};function zx({modalProps:e,onMoveExternal:t,onSuccess:n,onClose:r}){let a=Px(Object(o.useState)(null),2),i=a[0],c=a[1],s=Px(Object(o.useState)(!1),2),u=s[0],d=s[1],f=Px(Object(o.useState)(null),2),p=f[0],m=f[1],y=Object(o.useRef)(null);async function g(){m(null),c("browser");let e=await t();if(e.error)return m(e.error),void c(null);y.current=e.data,c(null),d(!0)}async function h(){c("accounts"),await n(y.current),c(null)}var b={marginTop:i?30:35};return l.a.createElement(W.t,Object.assign({title:"Link Your Bank"},e,{onClose:function(){r&&r(),e.onClose()},style:Bx}),()=>l.a.createElement(W.B,null,l.a.createElement(W.v,{style:Ix},"To link your bank account, you will be moved to your browser for enhanced security. Click below and Actual will automatically resume when you have given your bank","'","s credentials."),p&&function(e){return l.a.createElement(kx,{style:Dx},"timeout"===e?"Timed out. Please try again.":"An error occurred while linking your account, sorry!")}(p),i?l.a.createElement(W.B,{style:Tx},l.a.createElement(Tt.a,{color:$.a.n1,style:Mx}),l.a.createElement(W.B,{style:Rx},"browser"===i?"Waiting on browser...":"accounts"===i?"Loading accounts...":null)):u?l.a.createElement(W.d,{primary:!0,style:_x,onClick:h},"Success! Click to continue \u2192"):l.a.createElement(W.d,{primary:!0,style:Lx,onClick:g},"Link bank in browser \u2192"),l.a.createElement("div",{style:b},l.a.createElement(W.y,{style:Nx},"Why not link it in the app?")),l.a.createElement(W.y,{style:Fx},"Typing your bank","'","s username and password is one of the most security-sensitive things you can do, and the browser is the most secure app in the world. Why not use it to make sure your information is safe?"," ",l.a.createElement("a",{href:"https://actualbudget.com/security-learn-more"},"Learn more about security")),l.a.createElement(W.u,{style:Ux},l.a.createElement(W.d,{onClick:()=>e.onBack()},"Back"))))}function Wx(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return $x(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return $x(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function $x(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Gx(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Hx(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Gx(Object(n),!0).forEach(function(t){qx(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Gx(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function qx(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}let Yx={color:$.a.n1};function Vx(){return null}var Kx={marginBottom:8,flexShrink:0,userSelect:"none"},Qx=Hx(Hx({padding:12},$.c.shadow),{},{cursor:"pointer",transition:"transform .20s",fontSize:14,borderRadius:4,flexDirection:"row",alignItems:"center",border:"1px solid "+$.a.n10,":hover":Yx}),Zx=Hx(Hx({},Yx),{},{borderColor:$.a.b9,backgroundColor:$.a.b10}),Jx={fontWeight:600,flex:1},Xx={fontSize:13,color:$.a.n5,flexDirection:"row"},eC={marginLeft:4};function tC({account:e,selected:t,onSelect:n}){return l.a.createElement(W.B,{style:[Kx,$.c.mediumText],onClick:n},l.a.createElement(W.B,{style:[Qx,t&&Zx]},l.a.createElement(W.B,null,l.a.createElement(W.B,{style:Jx},e.name),l.a.createElement(W.B,{style:Xx},tf(ef(e.type,e.subtype)),l.a.createElement(W.y,{style:eC},"...",e.mask)))))}var nC={maxWidth:500},rC={maxHeight:300,overflow:"auto",paddingLeft:5,paddingRight:5,marginLeft:-5,marginRight:-5},aC={flexDirection:"row",justifyContent:"flex-end",marginTop:30},oC={marginRight:10};function lC({institution:e,publicToken:t,upgradingId:n,modalProps:r,accounts:a,actions:i}){let c=Wx(Object(o.useState)([]),2),s=c[0],u=c[1];async function d(){s.length>0&&(n?(i.linkAccount(e,t,s[0],n),i.closeModal()):i.pushModal("configure-linked-accounts",{institution:e,publicToken:t,accounts:s.map(e=>a.find(t=>t.id===e))}))}return l.a.createElement(W.t,Object.assign({title:n?"Link Account":"Link Accounts"},r),()=>l.a.createElement(W.B,{style:nC},n?l.a.createElement(W.v,null,"We found the following accounts. Select the one you want to link with:"):l.a.createElement(W.v,null,"We found the following accounts. Select which ones you want to add:"),l.a.createElement(W.B,{style:rC},l.a.createElement(W.B,null,0===a.length?l.a.createElement(Vx,null):a.map(e=>{let t=s.includes(e.id);return l.a.createElement(tC,{key:e.id,account:e,selected:t,onSelect:()=>(function(e){n?u([e]):s.includes(e)?u(s.filter(t=>t!==e)):u([...s,e])})(e.id)})}))),l.a.createElement(W.B,{style:aC},l.a.createElement(W.d,{style:oC,onClick:r.onClose},"Cancel"),l.a.createElement(W.d,{primary:!0,onClick:d},n?"Link Account":"Next"))))}function iC(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function cC(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?iC(Object(n),!0).forEach(function(t){sC(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):iC(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function sC(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var uC={marginTop:15,color:$.a.r4},dC={flex:0},fC={lineHeight:1.5},pC={marginTop:20,flexDirection:"row",justifyContent:"flex-start",alignItems:"center"},mC={flex:1,marginLeft:10,marginRight:30};var yC=class extends l.a.Component{constructor(...e){super(...e),this.state={transferCategory:null,error:null},this.onDelete=(()=>{let e=this.state.transferCategory,t=this.props.onDelete;e?(t(e),this.props.modalProps.onClose()):this.setState({error:"required-transfer"})}),this.renderError=(e=>{let t;switch(e){case"required-transfer":t="You must select a category";break;default:t="Something bad happened, sorry!"}return l.a.createElement(W.y,{style:uC},t)})}componentDidMount(){setTimeout(()=>{this.input.focus()},200)}render(){const e=this.props,t=e.modalProps,n=e.category,r=e.group,a=e.categoryGroups,o=this.state,i=o.transferCategory,c=o.error,s=!!(n||r).is_income;return l.a.createElement(W.t,Object.assign({title:"Confirm Delete"},t,{style:dC}),()=>l.a.createElement(W.B,{style:fC},r?l.a.createElement(W.c,null,"Categories in the group ",l.a.createElement("strong",null,r.name)," are used by existing transaction",!s&&" or it has a positive leftover balance currently",". ",l.a.createElement("strong",null,"Are you sure you want to delete it?")," If so, you must select another category to transfer existing transactions and balance to."):l.a.createElement(W.c,null,l.a.createElement("strong",null,n.name)," is used by existing transactions",!s&&" or it has a positive leftover balance currently",". ",l.a.createElement("strong",null,"Are you sure you want to delete it?")," If so, you must select another category to transfer existing transactions and balance to."),c&&this.renderError(c),l.a.createElement(W.B,{style:pC},l.a.createElement(W.y,null,"Transfer to:"),l.a.createElement(W.B,{style:mC},l.a.createElement(io,{ref:e=>this.input=e,categoryGroups:r?a.filter(e=>e.id!==r.id&&!!e.is_income===s):a.filter(e=>!!e.is_income===s).map(e=>cC(cC({},e),{},{categories:e.categories.filter(e=>e.id!==n.id)})),name:"category",value:i,onChange:e=>this.setState({transferCategory:e.target.value})})),l.a.createElement(W.d,{primary:!0,onClick:()=>this.onDelete()},"Delete"))))}},gC={maxWidth:500},hC={marginBottom:10,lineHeight:"1.4em",fontSize:15},bC={padding:"10px 0",fontSize:15,fontWeight:600,marginTop:10},OC={marginTop:30,marginBottom:10,lineHeight:"1.4em",fontSize:15},wC={padding:"10px 0",fontSize:15,fontWeight:600,marginTop:10,color:$.a.n3};var EC=Object(s.b)(e=>({currentModal:e.modals.currentModal}),e=>Object(ue.b)(y,e))(class extends l.a.Component{constructor(...e){super(...e),this.onConnect=(async()=>{dn(this.props.pushModal)}),this.onCreateLocalAccount=(()=>{(0,this.props.pushModal)("add-local-account")})}render(){const e=this.props.modalProps;return l.a.createElement(W.t,Object.assign({title:"Add Account"},e),()=>l.a.createElement(W.B,{style:gC},l.a.createElement(W.y,{style:hC},l.a.createElement("strong",null,"Link your bank accounts")," to automatically download transactions. We offer hundreds of banks to sync with, and our service will provide reliable, up-to-date information."),l.a.createElement(W.d,{primary:!0,style:bC,onClick:this.onConnect},"Link bank account"),l.a.createElement(W.B,{style:OC},"You can also create a local account if you want to track transactions manually. You can add transactions manually or import QIF/OFX/QFX files."),l.a.createElement(W.d,{style:wC,onClick:this.onCreateLocalAccount},"Create local account")))}}),vC=n(222);function jC({type:e,id:t,noneColor:n=$.a.n8}){var r={color:n};let a;switch(e){case"payees":a=P;break;case"accounts":a=v;break;default:throw new Error("DisplayId: unknown object type: "+e)}return l.a.createElement(a,{idKey:!0},e=>{let n=e[t];return l.a.createElement(W.y,{style:null==n?r:null,title:n?n.name:"None"},n?n.name:"None")})}function SC(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function xC(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?SC(Object(n),!0).forEach(function(t){CC(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):SC(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function CC(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var kC={flexDirection:"row",alignItems:"center",justifyContent:"flex-start"},PC={width:13,height:13,margin:"0 5px"},AC={textAlign:"right"};const DC=l.a.memo(function({transaction:e,fields:t,payees:n,categories:r,accounts:a,selected:o}){let i=Object(h.d)(r)[e.category],c=Object(h.b)(a)[e.account],s=Object(Pt.d)();return l.a.createElement(kt.h,null,l.a.createElement(kt.i,{exposed:!0,focused:!1,onSelect:()=>{s({type:"select",id:e.id})},selected:o}),t.map((t,n)=>{switch(t){case"date":return l.a.createElement(kt.e,{key:n,width:100},e.date);case"imported_payee":return l.a.createElement(kt.e,{key:n,width:"flex"},e.imported_payee);case"payee":return l.a.createElement(kt.a,{key:n,width:"flex",exposed:!0,style:kC},()=>l.a.createElement(l.a.Fragment,null,e.schedule&&l.a.createElement(Ti,{style:PC}),l.a.createElement(jC,{type:"payees",id:e.payee})));case"category":return l.a.createElement(kt.e,{key:n,width:"flex",title:i&&i.name},i?i.name:"");case"account":return l.a.createElement(kt.e,{key:n,width:"flex",title:c.name},c.name);case"notes":return l.a.createElement(kt.e,{key:n,width:"flex",title:e.notes},e.notes);case"amount":return l.a.createElement(kt.e,{key:n,width:75,style:[AC,$.c.tnum]},Object(Pe.k)(e.amount));default:return null}}))});var BC={textAlign:"right"};function IC({transactions:e,schedules:t,fields:n=["date","payee","amount"],style:r}){let a=Object(s.d)(e=>({payees:e.queries.payees,accounts:e.queries.accounts,categories:e.queries.categories.grouped,dateFormat:e.prefs.local.dateFormat||"MM/dd/yyyy"})),i=a.payees,c=a.categories,u=a.accounts,d=a.dateFormat,f=Object(Pt.e)(),p=Object(Pt.d)(),m=Object(o.useMemo)(()=>n,[JSON.stringify(n)]),y=Object(o.useMemo)(()=>e.map(e=>(function(e,t){let n=e.date;return Object(ke.a)(Object(Gn.a)(n))||(n=null),xC(xC({},e),{},{date:n?Object(jn.a)(Object(Gn.a)(n),t):null})})(e,d)),[e]),g=Object(o.useCallback)(({item:e})=>l.a.createElement(DC,{transaction:e,payees:i,categories:c,accounts:u,fields:m,selected:f&&f.has(e.id)}),[i,c,m,f]);return l.a.createElement(kt.l,{style:r,items:y,headers:l.a.createElement(l.a.Fragment,null,l.a.createElement(kt.i,{exposed:!0,focused:!1,selected:f.size>0,width:20,onSelect:()=>p({type:"select-all"})}),n.map((e,t)=>{switch(e){case"date":return l.a.createElement(kt.e,{key:t,width:100},"Date");case"imported_payee":return l.a.createElement(kt.e,{key:t,width:"flex"},"Imported payee");case"payee":return l.a.createElement(kt.e,{key:t,width:"flex"},"Payee");case"category":return l.a.createElement(kt.e,{key:t,width:"flex"},"Category");case"account":return l.a.createElement(kt.e,{key:t,width:"flex"},"Account");case"notes":return l.a.createElement(kt.e,{key:t,width:"flex"},"Notes");case"amount":return l.a.createElement(kt.e,{key:t,width:75,style:BC},"Amount");default:return null}})),renderItem:g})}function TC(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return MC(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return MC(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function MC(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function RC(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function _C(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?RC(Object(n),!0).forEach(function(t){LC(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):RC(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function LC(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function NC(e,t,n){return e.map(e=>e===t?n():e)}function FC(e,t){return e.map((e,n)=>_C(_C({},e),{},{error:t[n]}))}function UC(e,t){let n=["date"];return e.find(e=>"imported_payee"===e.field)&&n.push("imported_payee"),n.push("payee"),t.find(e=>"category"===e.field)?n.push("category"):t.length>0&&!["payee","date","amount"].includes(t[0].field)&&n.push(t[0].field),n.push("amount"),n}var zC={color:$.a.p4};function WC({fields:e,style:t,value:n,onChange:r}){return l.a.createElement(W.B,{style:t},l.a.createElement(W.h,{options:e,value:n,onChange:e=>r("field",e),style:zC}))}function $C({ops:e,type:t,style:n,value:r,formatOp:a=Mn,onChange:o}){return"id"===t&&(e=e.filter(e=>"contains"!==e)),l.a.createElement(W.h,{options:e.map(e=>[e,a(e,t)]),value:r,onChange:e=>o("op",e),style:n})}var GC={padding:7},HC={width:8,height:8},qC={padding:7},YC={width:10,height:10};function VC({onAdd:e,onDelete:t,style:n}){return l.a.createElement(l.a.Fragment,null,t&&l.a.createElement(W.d,{bare:!0,onClick:t,style:GC},l.a.createElement(Vo,{style:HC})),e&&l.a.createElement(W.d,{bare:!0,onClick:e,style:qC},l.a.createElement(Ho,{style:YC})))}var KC={fontSize:12,textAlign:"center",color:$.a.r5,marginBottom:5};function QC({type:e}){return l.a.createElement(W.y,{style:KC},Rn(e))}var ZC={padding:"3px 5px"};function JC({error:e,style:t,children:n}){return l.a.createElement(W.B,{style:t},l.a.createElement(W.x,{direction:"row",align:"center",spacing:1,style:ZC},n),e&&l.a.createElement(QC,{type:e}))}var XC={flex:1};function ek({conditionFields:e,ops:t,condition:n,editorStyle:r,onChange:a,onDelete:o,onAdd:i}){let c,s=n.field,u=n.op,d=n.value,f=n.type,p=n.options,m=n.error;return"amount"===s&&p&&(p.inflow?s="amount-inflow":p.outflow&&(s="amount-outflow")),c="number"===f&&"isbetween"===u?l.a.createElement(AE,{defaultValue:d,onChange:e=>a("value",e)}):l.a.createElement(Fl,{field:s,type:f,value:d,multi:"oneOf"===u,onChange:e=>a("value",e)}),l.a.createElement(JC,{style:r,error:m},l.a.createElement(WC,{fields:e,value:s,onChange:a}),l.a.createElement($C,{ops:t,value:u,type:f,onChange:a}),l.a.createElement(W.B,{style:XC},c),l.a.createElement(W.x,{direction:"row"},l.a.createElement(VC,{onAdd:i,onDelete:o})))}var tk={flex:1},nk={flex:1,flexDirection:"row",alignItems:"center"},rk={marginRight:15,flexDirection:"row"},ak={whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},ok={margin:"0 5px"},lk={flexShrink:0},ik={margin:"0 5px"},ck={flexShrink:0};function sk({id:e}){let t=Object(s.d)(e=>e.prefs.local.dateFormat||"MM/dd/yyyy"),n=ve({transform:Object(o.useCallback)(t=>t.filter({id:e}),[])});if(null==n)return null;if(0===n.schedules.length)return l.a.createElement(W.B,{style:tk},e);let r=TC(n.schedules,1)[0],a=r&&n.statuses.get(r.id);return l.a.createElement(W.B,{style:nk},l.a.createElement(W.B,{style:rk},l.a.createElement(W.y,{style:ak},"Payee:"," ",l.a.createElement(jC,{type:"payees",id:r._payee,noneColor:$.a.n5})),l.a.createElement(W.y,{style:ok}," \u2014 "),l.a.createElement(W.y,{style:lk},"Amount: ",Object(Pe.k)(r._amount||0)),l.a.createElement(W.y,{style:ik}," \u2014 "),l.a.createElement(W.y,{style:ck},"Next: ",de.g(r.next_date,t))),l.a.createElement(dc,{status:a}))}let uk=["payee","notes","date","amount","category","account"].map(e=>[e,Tn(e)]);var dk={padding:"5px 10px",lineHeight:"1em"},fk={flex:1},pk={padding:"5px 10px",color:$.a.p4};function mk({ops:e,action:t,editorStyle:n,onChange:r,onDelete:a,onAdd:o}){let i=t.field,c=t.op,s=t.value,u=t.type,d=t.error,f=t.inputKey,p=void 0===f?"initial":f;return l.a.createElement(JC,{style:n,error:d},"set"===c?l.a.createElement(l.a.Fragment,null,l.a.createElement(W.B,{style:dk},Mn(c)),l.a.createElement(WC,{fields:uk,value:i,onChange:r}),l.a.createElement(W.B,{style:fk},l.a.createElement(Fl,{key:p,field:i,type:u,op:c,value:s,onChange:e=>r("value",e)}))):"link-schedule"===c?l.a.createElement(l.a.Fragment,null,l.a.createElement(W.B,{style:pk},Mn(c)),l.a.createElement(sk,{id:s||null})):null,l.a.createElement(W.x,{direction:"row"},l.a.createElement(VC,{onAdd:o,onDelete:"link-schedule"!==c&&a})))}var yk={position:"relative",marginLeft:5},gk={width:11,height:11,color:$.a.n4},hk={padding:10,color:$.a.n4,maxWidth:450,lineHeight:1.5};function bk(){let e=TC(Object(o.useState)(),2),t=e[0],n=e[1];return l.a.createElement(W.B,{style:yk},l.a.createElement(W.B,{onMouseEnter:()=>n(!0),onMouseLeave:()=>n(!1)},l.a.createElement(bx,{style:gk})),t&&l.a.createElement(W.A,{position:"bottom-left",style:hk},"The stage of a rule allows you to force a specific order. Pre rules always run first, and post rules always run last. Within each stage rules are automatically ordered from least to most specific."))}var Ok={fontSize:"inherit"},wk={backgroundColor:$.a.b9,":hover":{backgroundColor:$.a.b9}};function Ek({selected:e,children:t,style:n,onSelect:r}){return l.a.createElement(W.d,{bare:!0,style:[Ok,e&&wk,n],onClick:r},t)}function vk(e){return _C(_C({},e),{},{inputKey:""+Math.random()})}var jk={alignSelf:"flex-start"};function Sk({conditions:e,conditionFields:t,editorStyle:n,onChangeConditions:r}){function a(t){let n=[...e];n.splice(t+1,0,{type:In.get("payee"),field:"payee",op:"is",value:null}),r(n)}return 0===e.length?l.a.createElement(W.d,{style:jk,onClick:function(){a(-1)}},"Add condition"):l.a.createElement(W.x,{spacing:2},e.map((o,i)=>{let c=Bn[o.type].ops;return"date"===o.type&&o.value&&o.value.frequency?c=["is","isapprox"]:o.options&&(o.options.inflow||o.options.outflow)&&(c=c.filter(e=>"isbetween"!==e)),l.a.createElement(W.B,null,l.a.createElement(ek,{key:i,conditionFields:t,editorStyle:n,ops:c,condition:o,onChange:(t,n)=>{!function(t,n,a){r(NC(e,t,()=>{if("field"===n){let e={field:a};"amount-inflow"===a?(e.field="amount",e.options={inflow:!0}):"amount-outflow"===a&&(e.field="amount",e.options={outflow:!0}),e.type=In.get(e.field);let n=In.get(t.field);return"string"!==n&&"number"!==n||n!==e.type||"isbetween"===t.op?(e.op=Bn[e.type].ops[0],vk(Nn(null,e))):(e.op=t.op,vk(Nn(t.value,e)))}if("op"===n){let e=a;return"oneOf"!==t.op&&"oneOf"===e?vk(Nn(null!=t.value?[t.value]:[],_C(_C({},t),{},{op:a}))):"oneOf"===t.op&&"oneOf"!==e?vk(Nn(t.value.length>0?t.value[0]:null,_C(_C({},t),{},{op:a}))):"isbetween"!==t.op&&"isbetween"===e?Nn({num1:Object(Pe.b)(t.value),num2:Object(Pe.b)(t.value)},_C(_C({},t),{},{op:a})):"isbetween"===t.op&&"isbetween"!==e?Nn(Object(Pe.j)(t.value.num1||0),_C(_C({},t),{},{op:a})):_C(_C({},t),{},{op:a})}return"value"===n?Nn(a,t):t}))}(o,t,n)},onDelete:()=>(function(t){r(e.filter(e=>e!==t))})(o),onAdd:()=>a(i)}))}))}let xk=["account","imported_payee","payee","category","date","notes","amount"].map(e=>[e,Tn(e)]).concat([["amount-inflow",Tn("amount",{inflow:!0})],["amount-outflow",Tn("amount",{outflow:!0})]]);var Ck={flex:"inherit",maxWidth:"90%"},kk={maxWidth:"100%",width:900,height:"80vh",flexGrow:0,flexShrink:0,flexBasis:"auto",overflow:"hidden"},Pk={flexDirection:"row",alignItems:"center",marginBottom:15,padding:"0 20px"},Ak={color:$.a.n4,marginRight:15},Dk={borderBottom:"1px solid "+$.a.border,padding:20,overflow:"auto",maxHeight:"calc(100% - 300px)"},Bk={flexShrink:0},Ik={marginBottom:30},Tk={color:$.a.n4,marginBottom:15},Mk={color:$.a.n4,marginBottom:15},Rk={flex:1},_k={alignSelf:"flex-start"},Lk={padding:"20px",flex:1},Nk={flexDirection:"row",alignItems:"center",marginBottom:12},Fk={color:$.a.n4,marginBottom:0},Uk={flex:1},zk={border:"1px solid "+$.a.border},Wk={marginTop:20};function $k({history:e,modalProps:t,defaultRule:n,onSave:r}){let a=TC(Object(o.useState)(n.conditions.map(_n)),2),i=a[0],c=a[1],u=TC(Object(o.useState)(n.actions.map(_n)),2),d=u[0],f=u[1],p=TC(Object(o.useState)(n.stage),2),m=p[0],y=p[1],h=TC(Object(o.useState)([]),2),b=h[0],O=h[1],w=Object(s.c)(),E=Object(o.useRef)();Object(o.useEffect)(()=>(w(Object(qn.m)()),Object(qn.s)(!1),()=>Object(qn.s)(!0)),[]),Object(o.useEffect)(()=>{if(E.current){let e=E.current,t=e.scrollTop;e.scrollTop=t+1,e.scrollTop=t}!async function(){let e=(await Object(T.send)("make-filters-from-conditions",{conditions:i.map(Ln)})).filters;if(e.length>0){let t=(await Object(g.f)(Object(g.c)("transactions").filter({$and:e}).select("*"))).data;O(t)}else O([])}()},[d,i]);let v=Object(Pt.c)("transactions",b,[]);function j(){S(-1)}function S(e){let t=[...d];t.splice(e+1,0,{type:In.get("category"),field:"category",op:"set",value:null}),f(t)}function x(e){y(e)}function C(){Object(T.send)("rule-apply-actions",{transactionIds:[...v.items],actions:d}).then(()=>{f([...d])})}let k={backgroundColor:$.a.n10,borderRadius:4};return l.a.createElement(W.t,Object.assign({title:"Rule",padding:0},t,{style:[t.style,Ck]}),()=>l.a.createElement(W.B,{style:kk},l.a.createElement(W.B,{style:Pk},l.a.createElement(W.y,{style:Ak},"Stage of rule:"),l.a.createElement(W.x,{direction:"row",align:"center",spacing:1},l.a.createElement(Ek,{selected:"pre"===m,onSelect:()=>x("pre")},"Pre"),l.a.createElement(Ek,{selected:null===m,onSelect:()=>x(null)},"Default"),l.a.createElement(Ek,{selected:"post"===m,onSelect:()=>x("post")},"Post"),l.a.createElement(bk,null))),l.a.createElement(W.B,{innerRef:E,style:Dk},l.a.createElement(W.B,{style:Bk},l.a.createElement(W.B,{style:Ik},l.a.createElement(W.y,{style:Tk},"If all these conditions match:"),l.a.createElement(Sk,{conditions:i,conditionFields:xk,editorStyle:k,onChangeConditions:e=>c(e)})),l.a.createElement(W.y,{style:Mk},"Then apply these actions:"),l.a.createElement(W.B,{style:Rk},0===d.length?l.a.createElement(W.d,{style:_k,onClick:j},"Add action"):l.a.createElement(W.x,{spacing:2},d.map((e,t)=>l.a.createElement(W.B,null,l.a.createElement(mk,{key:t,ops:["set","link-schedule"],action:e,editorStyle:k,onChange:(t,n)=>{!function(e,t,n){f(NC(d,e,()=>{let r=_C({},e);return r[t]=n,"field"===t?(r.type=In.get(r.field),r.value=null,vk(r)):"op"===t?(r.value=null,r.inputKey=""+Math.random(),vk(r)):r}))}(e,t,n)},onDelete:()=>(function(e){f(d.filter(t=>t!==e))})(e),onAdd:()=>S(t)}))))))),l.a.createElement(Pt.a,{instance:v},l.a.createElement(W.B,{style:Lk},l.a.createElement(W.B,{style:Nk},l.a.createElement(W.y,{style:Fk},"This rule applies to these transactions:"),l.a.createElement(W.B,{style:Uk}),l.a.createElement(W.d,{disabled:0===v.items.size,onClick:C},"Apply actions (",v.items.size,")")),l.a.createElement(IC,{transactions:b,fields:UC(i,d),style:zk}),l.a.createElement(W.x,{direction:"row",justify:"flex-end",style:Wk},l.a.createElement(W.d,{onClick:()=>t.onClose()},"Cancel"),l.a.createElement(W.d,{primary:!0,onClick:()=>(async function(){let e=_C(_C({},n),{},{stage:m,conditions:i.map(Ln),actions:d.map(Ln)}),a=e.id?"rule-update":"rule-add",o=await Object(T.send)(a,e),l=o.error,s=o.id;l?(l.conditionErrors&&c(FC(i,l.conditionErrors)),l.actionErrors&&f(FC(d,l.actionErrors))):(s&&(e.id=s),r&&r(e),t.onClose())})()},"Save"))))))}var Gk=n(223),Hk=n(125);function qk(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return Yk(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Yk(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Yk(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var Vk={flex:1,maxWidth:"90%",maxHeight:"90%"};function Kk({modalProps:e,payeeId:t}){let n=qk(Object(o.useState)(!0),2),r=n[0],a=n[1];if((Object(Hk.a)()||Object(Hk.b)())&&"/payees"!==location.pathname)throw new Error(`Possibly invalid use of ManageRulesModal, add the current url '${location.pathname}' to the allowlist if you're confident the modal can never appear on top of the '/rules' page.`);return l.a.createElement(W.t,Object.assign({title:"Rules",padding:0,loading:r},e,{style:[e.style,Vk]}),()=>l.a.createElement(Hr,{isModal:!0,payeeId:t,setLoading:a}))}function Qk(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return Zk(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Zk(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Zk(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}let Jk={color:$.a.p5};var Xk={padding:20,maxWidth:500},eP={marginBottom:10,fontWeight:500},tP={margin:0,marginTop:10,maxHeight:140,overflow:"auto"},nP={fontSize:13,marginTop:10,color:$.a.n4,userSelect:"none",display:"flex",alignItems:"center",justifyContent:"center"},rP={marginLeft:3},aP={marginTop:20},oP={marginRight:10},lP={marginRight:10},iP={marginRight:10};function cP({history:e,modalProps:t,payeeIds:n,targetPayeeId:r}){let a=Object(s.d)(e=>({payees:e.queries.payees,modalStack:e.modals.modalStack})),i=a.payees,c=!!a.modalStack.find(e=>"edit-rule"===e.name),u=Object(s.c)(),d=Qk(Object(o.useState)(!0),2),f=d[0],p=d[1],m=Object(o.useRef)(null);Object(o.useEffect)(()=>{if(m.current){let e=m.current,t=e.scrollTop;e.scrollTop=t+1,e.scrollTop=t}},[m.current,!0]);let y=Qk(Object(o.useState)(()=>n.map(e=>i.find(t=>t.id===e))),1)[0],g=i.find(e=>e.id===r);if(!g)return null;async function h(){let e;if(await Object(T.send)("payees-merge",{targetId:g.id,mergeIds:y.map(e=>e.id)}),f&&!c){e=await Object(T.send)("rule-add-payee-rename",{fromNames:y.map(e=>e.name),to:g.id})}return t.onClose(),e}async function b(){let e=await h();if(e){let t=await Object(T.send)("rule-get",{id:e});u(Object(Hn.e)("edit-rule",{rule:t}))}}return l.a.createElement(W.t,Object.assign({title:"Merge payee?",padding:0,showHeader:!1},t,{style:t.style}),()=>l.a.createElement(W.B,{style:Xk},l.a.createElement(W.B,null,l.a.createElement(W.v,{style:eP},1===y.length?l.a.createElement(l.a.Fragment,null,"The payee ",l.a.createElement(W.y,{style:Jk},y[0].name)," ","is not used by transactions any more. Would like to merge it with ",l.a.createElement(W.y,{style:Jk},g.name),"?"):l.a.createElement(l.a.Fragment,null,"The following payees are not used by transactions any more. Would like to merge them with"," ",l.a.createElement(W.y,{style:Jk},g.name),"?",l.a.createElement("ul",{ref:m,style:tP},y.map(e=>l.a.createElement("li",null,l.a.createElement(W.y,{style:Jk},e.name)))))),l.a.createElement(Cx,null,"Merging will remove the payee and transfer any existing rules to the new payee. If checked below, a rule will be created to do this rename while importing transactions."),!c&&l.a.createElement("label",{style:nP},l.a.createElement("input",{type:"checkbox",checked:f,onChange:e=>p(e.target.checked)}),l.a.createElement(W.y,{style:rP},"Automatically rename"," ",1===y.length?"this payee":"these payees"," in the future")),l.a.createElement(W.u,{style:aP,focusButton:!0},l.a.createElement(W.d,{primary:!0,style:oP,onClick:h,type:"button"},"Merge"),!c&&l.a.createElement(W.d,{style:lP,onClick:b,type:"button"},"Merge and edit rule"),l.a.createElement(W.d,{style:iP,onClick:()=>t.onBack(),type:"button"},"Do nothing")))))}var sP={maxWidth:500,fontSize:15},uP={color:$.a.p5,fontWeight:600,"& a, & a:visited":{color:$.a.p5}};var dP=Object(s.b)(null,y)(function({modalProps:e,actions:t}){return l.a.createElement(W.t,Object.assign({title:"Welcome to Actual"},e),()=>l.a.createElement(W.B,{style:sP},l.a.createElement(W.v,null,"Actual is a personal finance tool that focuses on beautiful design and a slick user experience."," ",l.a.createElement("strong",null,"Editing your data should be as fast as possible.")," On top of that, we want to provide powerful tools to allow you to do whatever you want with your data."),l.a.createElement(W.v,null,"Currently Actual implements budgeting based on a"," ",l.a.createElement(W.i,{asAnchor:!0,href:"https://actualbudget.github.io/docs/Budgeting/howitworks"},"monthly envelope system"),"."),l.a.createElement(W.v,null,"In the future, we","'","ll support multiple ways to do budgeting. We","'","re also working hard on custom reports and a lot more things."),l.a.createElement(W.v,{style:uP},"Read the"," ",l.a.createElement(W.i,{asAnchor:!0,href:"https://actualbudget.github.io/docs/"},"documentation")," ","to get started and learn about"," ",l.a.createElement(W.i,{asAnchor:!0,href:"https://actualbudget.github.io/docs/Budgeting/howitworks"},"budgeting"),","," ",l.a.createElement(W.i,{asAnchor:!0,href:"https://actualbudget.github.io/docs/Accounts/overview"},"accounts")," ","and more.")))});var fP=Object(s.b)(e=>({modalStack:e.modals.modalStack,isHidden:e.modals.isHidden,accounts:e.queries.accounts,categoryGroups:e.queries.categories.grouped,categories:e.queries.categories.list,payees:e.queries.payees,budgetId:e.prefs.local&&e.prefs.local.id}),e=>({actions:Object(ue.b)(y,e)}))(function({history:e,modalStack:t,isHidden:n,accounts:r,categoryGroups:a,categories:o,payees:i,budgetId:c,actions:s}){return t.map(({name:i,options:d={}},f)=>{const m={onClose:s.popModal,onBack:s.popModal,showBack:f>0,isCurrent:f===t.length-1,isHidden:n,stackIndex:f};let y=Object(p.c)("/"+i);return l.a.createElement(u.d,{key:i,location:y},l.a.createElement(u.b,{path:"/import-transactions"},l.a.createElement(px,{modalProps:m,options:d})),l.a.createElement(u.b,{path:"/add-account"},l.a.createElement(EC,{modalProps:m,actions:s})),l.a.createElement(u.b,{path:"/add-local-account"},l.a.createElement(tS,{modalProps:m,actions:s,history:e})),l.a.createElement(u.b,{path:"/close-account"},l.a.createElement(jj,{modalProps:m,account:d.account,balance:d.balance,canDelete:d.canDelete,accounts:r.filter(e=>0===e.closed),categoryGroups:a,actions:s})),l.a.createElement(u.b,{path:"/select-linked-accounts"},l.a.createElement(lC,{modalProps:m,institution:d.institution,publicToken:d.publicToken,accounts:d.accounts,upgradingId:d.upgradingId,actions:s})),l.a.createElement(u.b,{path:"/configure-linked-accounts"},l.a.createElement(qj,{modalProps:m,institution:d.institution,publicToken:d.publicToken,accounts:d.accounts,upgradingId:d.upgradingId,actions:s})),l.a.createElement(u.b,{path:"/confirm-category-delete",render:()=>{const e=d.category,t=d.group,n=d.onDelete;return l.a.createElement(yC,{modalProps:m,actions:s,category:o.find(t=>t.id===e),group:a.find(e=>e.id===t),categoryGroups:a,onDelete:n})}}),l.a.createElement(u.b,{path:"/load-backup",render:()=>l.a.createElement(qg.a,{initialState:{backups:[]},didMount:async({setState:e})=>{e({backups:await Object(T.send)("backups-get",{id:c})}),Object(T.listen)("backups-updated",t=>{e({backups:t})})},willUnmount:()=>{Object(T.unlisten)("backups-updated")}},({state:e})=>l.a.createElement(mx.a,{budgetId:c,modalProps:m,actions:s,backups:e.backups}))}),l.a.createElement(u.b,{path:"/manage-rules",render:()=>l.a.createElement(Kk,{history:e,modalProps:m,payeeId:d.payeeId})}),l.a.createElement(u.b,{path:"/edit-rule",render:()=>l.a.createElement($k,{history:e,modalProps:m,defaultRule:d.rule,onSave:d.onSave})}),l.a.createElement(u.b,{path:"/merge-unused-payees",render:()=>l.a.createElement(cP,{history:e,modalProps:m,payeeIds:d.payeeIds,targetPayeeId:d.targetPayeeId})}),l.a.createElement(u.b,{path:"/plaid-external-msg",render:()=>l.a.createElement(zx,{modalProps:m,actions:s,onMoveExternal:d.onMoveExternal,onClose:()=>{d.onClose&&d.onClose(),Object(T.send)("poll-web-token-stop")},onSuccess:d.onSuccess})}),l.a.createElement(u.b,{path:"/create-encryption-key",render:()=>l.a.createElement(vC.a,{key:i,modalProps:m,actions:s,options:d})}),l.a.createElement(u.b,{path:"/fix-encryption-key",render:()=>l.a.createElement(Gk.a,{key:i,modalProps:m,actions:s,options:d})}),l.a.createElement(u.b,{path:"/edit-field",render:()=>l.a.createElement(lS,{key:i,modalProps:m,actions:s,name:d.name,onSubmit:d.onSubmit})}),l.a.createElement(u.b,{path:"/welcome-screen"},l.a.createElement(dP,{modalProps:m,actions:s})),l.a.createElement(u.b,{path:"/budget-summary"},l.a.createElement(oj,{key:i,modalProps:m,month:d.month,actions:s})))})}),pP=n(224);const mP=["width","height","style","color"];function yP(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var gP=function(e){let t=e.width,n=e.height,r=e.style,a=e.color,o=void 0===a?"currentColor":a,i=yP(e,mP);return l.a.createElement("svg",Object.assign({width:t,height:n},i,Object(lt.css)(r),{viewBox:"0 0 32 32",fill:"none",xmlns:"http://www.w3.org/2000/svg"}),l.a.createElement("path",{d:"M24 29H29.3333",stroke:o,className:"path",strokeWidth:"3.5",strokeMiterlimit:"10",strokeLinecap:"round"}),l.a.createElement("path",{d:"M8.00002 29H2.66669",stroke:o,className:"path",strokeWidth:"3.5",strokeMiterlimit:"10",strokeLinecap:"round"}),l.a.createElement("path",{d:"M16 21L8 29",stroke:o,className:"path",strokeWidth:"3.5",strokeMiterlimit:"10",strokeLinecap:"round"}),l.a.createElement("path",{d:"M16 21L24 29",stroke:o,className:"path",strokeWidth:"3.5",strokeMiterlimit:"10",strokeLinecap:"round"}),l.a.createElement("path",{d:"M16 2.66669V21.3334",stroke:o,className:"path",strokeWidth:"3.5",strokeMiterlimit:"10",strokeLinecap:"round"}),l.a.createElement("path",{d:"M16 2.66669L8 9.33335",stroke:o,className:"path",strokeWidth:"3.5",strokeMiterlimit:"10",strokeLinecap:"round"}),l.a.createElement("path",{d:"M16 2.66669L24 9.33335",stroke:o,className:"path",strokeWidth:"3.5",strokeMiterlimit:"10",strokeLinecap:"round"}))};const hP=["modalProps","payees","ruleCounts","categoryGroups","tableNavigatorOpts","initialSelectedIds","ruleActions","onBatchChange","onViewRules","onCreateRule"];function bP(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function OP(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return wP(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return wP(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function wP(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}let EP=Object(Uu.a)(e=>Object(Pe.i)(e));function vP(e,t,n){return 1===e?t:n}var jP={padding:"0 10px"},SP={borderRadius:4,padding:"3px 6px",backgroundColor:$.a.g9,border:"1px solid "+$.a.g9,color:$.a.g1,fontSize:12},xP={paddingRight:5},CP={width:8,height:8,color:$.a.g1};function kP({ruleCount:e,focused:t,onEdit:n,onClick:r}){return l.a.createElement(kt.a,{name:"rule-count",width:"auto",focused:t,style:jP,plain:!0},l.a.createElement(kt.b,{style:SP,onEdit:n,onSelect:r,onFocus:n},l.a.createElement(W.y,{style:xP},e>0?l.a.createElement(l.a.Fragment,null,e," associated ",vP(e,"rule","rules")):l.a.createElement(l.a.Fragment,null,"Create rule")),l.a.createElement(up,{style:CP})))}var PP={alignItems:"stretch"},AP={backgroundColor:$.a.b9,zIndex:100},DP={color:$.a.n7};let BP=l.a.memo(({style:e,payee:t,ruleCount:n,categoryGroups:r,selected:a,highlighted:o,hovered:i,editing:c,focusedField:s,onViewRules:u,onCreateRule:d,onHover:f,onEdit:p,onUpdate:m,ruleActions:y})=>{let g=t.id,h=Object(Pt.d)(),b=a?$.a.b8:$.a.border,O=i||"select"===s;return l.a.createElement(kt.h,{borderColor:b,backgroundColor:a?$.a.b9:O?$.a.hover:"white",highlighted:o,style:[PP,e,{backgroundColor:i?$.a.hover:null},a&&AP],"data-focus-key":t.id,onMouseEnter:()=>f&&f(t.id)},l.a.createElement(kt.i,{exposed:null==t.transfer_acct&&(i||a||c),focused:"select"===s,selected:a,onSelect:()=>{h({type:"select",id:t.id})}}),l.a.createElement(kt.f,{value:(t.transfer_acct?"Transfer: ":"")+t.name,valueStyle:!a&&t.transfer_acct&&DP,exposed:"name"===s,width:"flex",onUpdate:e=>!t.transfer_acct&&m(g,"name",e),onExpose:()=>p(g,"name"),inputProps:{readOnly:!!t.transfer_acct}}),l.a.createElement(kP,{ruleCount:n,focused:"rule-count"===s,onEdit:()=>p(g,"rule-count"),onClick:()=>n>0?u(t.id):d(t.id)}))});var IP={flex:1};const TP=l.a.forwardRef(({payees:e,ruleCounts:t,navigator:n,categoryGroups:r,highlightedRows:a,ruleActions:i,onUpdate:c,onViewRules:s,onCreateRule:u},d)=>{let f=OP(Object(o.useState)(null),2),p=f[0],m=f[1],y=Object(Pt.e)();Object(o.useLayoutEffect)(()=>{let e=[...y][0];d.current.scrollTo(e,"center"),n.onEdit(e,"select")},[]);let g=Object(o.useCallback)(e=>{m(e)},[]);return l.a.createElement(W.B,{style:[IP],onMouseLeave:()=>m(null)},l.a.createElement(kt.l,{ref:d,items:e,navigator:n,renderItem:({item:e,editing:n,focusedField:o,onEdit:i})=>l.a.createElement(BP,{payee:e,ruleCount:t.get(e.id)||0,categoryGroups:r,selected:y.has(e.id),highlighted:a&&a.has(e.id),editing:n,focusedField:o,hovered:p===e.id,onHover:g,onEdit:i,onUpdate:c,onViewRules:s,onCreateRule:u})}))});var MP={backgroundColor:"white",color:$.a.n4,zIndex:200,userSelect:"none"};function RP(){let e=$.a.border,t=Object(Pt.d)(),n=Object(Pt.e)();return l.a.createElement(W.B,null,l.a.createElement(kt.m,{borderColor:e,style:MP,collapsed:!0,version:"v2"},l.a.createElement(kt.i,{exposed:!0,focused:!1,selected:n.size>0,onSelect:()=>t({type:"select-all"})}),l.a.createElement(kt.a,{value:"Name",width:"flex"})))}var _P={textAlign:"center",color:$.a.n7,fontStyle:"italic",fontSize:13,marginTop:5};function LP({text:e,style:t}){return l.a.createElement(W.B,{style:[_P,t]},e)}var NP={padding:0},FP={padding:3,fontSize:11,fontStyle:"italic",color:$.a.n7};function UP({payeesById:e,selectedPayees:t,onDelete:n,onMerge:r,onClose:a}){let o=[...t].some(t=>null==e[t]||e[t].transfer_acct);return l.a.createElement(W.A,{position:"bottom",width:250,style:NP,onClose:a},l.a.createElement(W.s,{onMenuSelect:e=>{switch(a(),e){case"delete":n();break;case"merge":r()}},footer:l.a.createElement(W.B,{style:FP},[...t].slice(0,4).map(t=>e[t].name).join(", ")+(t.size>4?", and more":"")),items:[{icon:Fn.a,name:"delete",text:"Delete",disabled:o},{icon:gP,iconSize:9,name:"merge",text:"Merge",disabled:o||t.size<2},W.s.line]}))}var zP={height:"100%"},WP={flexDirection:"row",alignItems:"center",padding:"0 10px 5px"},$P={marginRight:10},GP={marginLeft:5},HP={flex:1},qP={width:350,borderColor:"transparent",backgroundColor:$.a.n11,":focus":{backgroundColor:"white","::placeholder":{color:$.a.n8}}},YP={flex:1,border:"1px solid "+$.a.border,borderRadius:4,overflow:"hidden"},VP={marginTop:15};const KP=l.a.forwardRef((e,t)=>{e.modalProps;let n=e.payees,r=e.ruleCounts,a=e.categoryGroups,i=e.tableNavigatorOpts,c=e.initialSelectedIds,s=(e.ruleActions,e.onBatchChange),u=e.onViewRules,d=e.onCreateRule,f=bP(e,hP),p=OP(Object(o.useState)(null),2),m=p[0],y=p[1],g=OP(Object(o.useState)(""),2),h=g[0],b=g[1],O=Object(o.useRef)(null),w=Object(o.useRef)(null),E=Object(o.useRef)(!1),v=Object(o.useMemo)(()=>""===h?n:n.filter(e=>e.name.toLowerCase().includes(h.toLowerCase())),[n,h]),j=Object(Pt.c)("payees",v,c);function S(e){h!==e&&(O.current&&O.current.setRowAnimation(!1),b(e),E.current=!0)}function x(e){S(""),w.current=e}Object(o.useEffect)(()=>{E.current&&(setTimeout(()=>{O.current&&O.current.setRowAnimation(!0)},0),E.current=!1)}),Object(o.useImperativeHandle)(t,()=>({selectRows:(e,t)=>{B.onEdit(null),j.dispatch({type:"select-all",ids:e}),y(null),t&&e.length>0&&x(e[0])},highlightRow:e=>{B.onEdit(null),y(new Set([e])),x(e)}})),Object(o.useEffect)(()=>{m&&y(null)},[m]),Object(o.useLayoutEffect)(()=>{w.current&&(O.current.scrollTo(w.current),w.current=null)});let C=Object(W.C)((e,t,r)=>{n.find(t=>t.id===e)[t]!==r&&s({updated:[{id:e,[t]:r}]})}),k=Object(o.useCallback)(()=>v.filter(e=>null==e.transfer_acct).map(e=>e.id),[v]);function P(){s({deleted:[...j.items].map(e=>({id:e}))}),j.dispatch({type:"select-none"})}async function A(){let e=[...j.items];await f.onMerge(e),B.onEdit(e[0],"name"),j.dispatch({type:"select-none"}),x(e[0])}let D=0===j.items.size,B=Object(kt.o)(v,e=>["select","name","rule-count"].filter(t=>{switch(t){case"select":return null==e.transfer_acct;default:return!0}}),i),I=EP(n);return l.a.createElement(W.B,{style:zP},l.a.createElement(W.B,{style:WP},l.a.createElement(qg.a,{initialState:{menuOpen:!1}},({state:e,setState:t})=>l.a.createElement(W.B,null,l.a.createElement(W.d,{bare:!0,style:$P,disabled:D,onClick:()=>t({menuOpen:!0})},D?"No payees selected":j.items.size+" "+vP(j.items.size,"payee","payees"),l.a.createElement(np.a,{width:8,height:8,style:GP})),e.menuOpen&&l.a.createElement(UP,{payeesById:I,selectedPayees:j.items,onClose:()=>t({menuOpen:!1}),onDelete:P,onMerge:A}))),l.a.createElement(W.B,{style:HP}),l.a.createElement(W.n,{placeholder:"Filter payees...",value:h,onChange:e=>{S(e.target.value),B.onEdit(null)},style:qP})),l.a.createElement(Pt.a,{instance:j,fetchAllIds:k},l.a.createElement(W.B,{style:YP},l.a.createElement(RP,null),0===v.length?l.a.createElement(LP,{text:"No payees",style:VP}):l.a.createElement(TP,{ref:O,payees:v,ruleCounts:r,categoryGroups:a,highlightedRows:m,navigator:B,onUpdate:C,onViewRules:u,onCreateRule:d}))))});function QP(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return ZP(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ZP(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ZP(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var JP=Object(s.b)(e=>({initialPayees:e.queries.payees,lastUndoState:e.app.lastUndoState,categoryGroups:e.queries.categories.grouped}),y)(function({modalProps:e,initialSelectedIds:t,lastUndoState:n,initialPayees:r,categoryGroups:a,initiallyLoadPayees:i,getPayees:c,setLastUndoState:s,pushModal:u}){let d=QP(Object(o.useState)(r),2),f=d[0],p=d[1],m=QP(Object(o.useState)({value:new Map}),2),y=m[0],g=m[1],h=Object(o.useRef)();async function b(){let e=await Object(T.send)("payees-get-rule-counts");e=new Map(Object.entries(e)),g({value:e})}async function O({tables:e,messages:t,meta:n,url:r},a=!1){(e.includes("payees")||e.includes("payee_mapping")||e.includes("payee_rules"))&&(p(await c()),(n&&n.targetId||t.find(e=>"rules"===e.dataset))&&b(),s(null))}return Object(o.useEffect)(()=>{!async function(){let e=await i();await new Promise(e=>setTimeout(e,100)),e&&p(e),b()}();let e=Object(T.listen)("sync-event",async({type:e,tables:t})=>{"applied"===e&&t.includes("rules")&&b()});return()=>{e()}},[]),Object(o.useEffect)(()=>(n.current&&O(n.current,!0),Object(T.listen)("undo-event",O)),[]),l.a.createElement(KP,{ref:h,modalProps:e,payees:f,ruleCounts:y.value,categoryGroups:a,initialSelectedIds:t,lastUndoState:n,onBatchChange:e=>{Object(T.send)("payees-batch-change",e),p(Object(Pe.c)(e,f))},onMerge:async([e,...t])=>{await Object(T.send)("payees-merge",{targetId:e,mergeIds:t});let n=f.filter(e=>!t.includes(e.id));t.forEach(t=>{let n=y.value.get(t)||0;y.value.set(e,(y.value.get(e)||0)+n)}),p(n),g({value:y.value})},onViewRules:function(e){u("manage-rules",{payeeId:e})},onCreateRule:function(e){let t={id:null,stage:null,conditions:[{field:"description",op:"is",value:f.find(t=>t.id===e).id,type:"id"}],actions:[]};u("edit-rule",{rule:t})}})});function XP(){let e=Object(u.h)();return l.a.createElement(Zv,{title:"Payees"},l.a.createElement(JP,{initialSelectedIds:e.state&&e.state.selectedPayee?[e.state.selectedPayee]:null}))}var eA=n(605);var tA=function({amount:e}){return l.a.createElement(W.c,{style:[$.c.smallText,{color:e<0?$.a.r5:$.a.g5}]},e>=0?"+":"",Object(Pe.k)(e))};function nA(e){return(...t)=>Object(o.useMemo)(()=>e(...t),t)}function rA(e){return e.slice(0,7)}function aA(e){return e}async function oA(e,t){t(await Promise.all(e.map(e=>Object(g.f)(e).then(({data:e})=>e))))}function lA(e,t,n){const r={};return e.forEach(e=>{r[n?n(e[t]):e[t]]=e}),r}function iA(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return cA(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return cA(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function cA(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function sA(e,t){return async(n,r)=>{function a(){return Object(g.c)("transactions").filter({$and:[{date:{$gte:e}},{date:{$lte:t}}],"account.offbudget":!1,$or:[{"payee.transfer_acct.offbudget":!0,"payee.transfer_acct":null}]}).calculate({$sum:"$amount"})}return oA([a().filter({amount:{$gt:0}}),a().filter({amount:{$lt:0}})],e=>{r({graphData:{income:e[0],expense:e[1]}})})}}function uA(e,t,n){return async(r,a)=>{function o(r){let a=Object(g.c)("transactions").filter({$and:[{date:{$transform:"$month",$gte:e}},{date:{$transform:"$month",$lte:t}}],"account.offbudget":!1,$or:[{"payee.transfer_acct.offbudget":!0,"payee.transfer_acct":null}]});return n?a.groupBy({$month:"$date"}).select([{date:{$month:"$date"}},{amount:{$sum:"$amount"}}]):a.groupBy("date").select(["date",{amount:{$sum:"$amount"}}])}return oA([Object(g.c)("transactions").filter({date:{$transform:"$month",$lt:e},"account.offbudget":!1}).calculate({$sum:"$amount"}),o().filter({amount:{$gt:0}}),o().filter({amount:{$lt:0}})],r=>{a(function(e,t,n,r){let a=iA(e,3),o=a[0],i=a[1],c=a[2];const s=r?de.v(de.j(t),de.j(n)):de.f(t,n),u=lA(i,"date",r?rA:aA),d=lA(c,"date",r?rA:aA);let f=o,p=0,m=0;const y=s.reduce((e,t)=>{let n=0,a=0;u[t]&&(n=u[t].amount),d[t]&&(a=d[t].amount),p+=a,m+=n,f+=n+a;const o=Gn.a(t),i=l.a.createElement("div",null,l.a.createElement("div",{style:dA},l.a.createElement("strong",null,jn.a(o,r?"MMMM yyyy":"MMMM d, yyyy"))),l.a.createElement("div",{style:fA},l.a.createElement(W.a,{left:"Income:",right:Object(Pe.k)(n)}),l.a.createElement(W.a,{left:"Expenses:",right:Object(Pe.k)(a)}),l.a.createElement(W.a,{left:"Change:",right:l.a.createElement("strong",null,Object(Pe.k)(n+a))}),l.a.createElement(W.a,{left:"Balance:",right:Object(Pe.k)(f)})));return e.income.push({x:o,y:Object(Pe.j)(n)}),e.expenses.push({x:o,y:Object(Pe.j)(a)}),e.balances.push({x:o,y:Object(Pe.j)(f),premadeLabel:i,amount:f}),e},{expenses:[],income:[],balances:[]}),g=y.balances;return{graphData:y,balance:g[g.length-1].amount,totalExpenses:p,totalIncome:m,totalChange:g[g.length-1].amount-g[0].amount}}(r,e,t,n))})}}var dA={marginBottom:10},fA={lineHeight:1.5};var pA=n(597),mA=n(593),yA=n(588),gA=n(602),hA=n(603),bA=n(567);function OA(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function wA(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?OA(Object(n),!0).forEach(function(t){EA(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):OA(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function EA(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const vA={fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", "Helvetica", "Arial", sans-serif',fontSize:13,letterSpacing:"normal",fill:$.a.n1,stroke:"transparent"};var jA={colors:wA(wA({},{blueFadeStart:"rgba(229, 245, 255, 1)",blueFadeEnd:"rgba(229, 245, 255, 0)",redFadeStart:"rgba(255, 243, 242, 1)",redFadeEnd:"rgba(255, 243, 242, 0)"}),{},{red:$.a.r7,blue:$.a.b6}),area:{style:{data:{stroke:$.a.b6,strokeWidth:2,strokeLinejoin:"round",strokeLinecap:"round"}}},axis:{style:{axis:{fill:"transparent",stroke:"none"},grid:{fill:"none",stroke:"none",pointerEvents:"none"},ticks:{fill:"transparent",size:1,stroke:"none"},tickLabels:vA}},dependentAxis:{style:{grid:{stroke:"rgba(0,0,0,.2)",strokeDasharray:"1,1"},tickLabels:{padding:5}}},independentAxis:{style:{axis:{stroke:"rgba(0,0,0,.2)"},tickLabels:{padding:10}}},bar:{style:{data:{fill:$.a.b6,stroke:"none"}}},line:{style:{data:{fill:"none",stroke:$.a.b6,strokeWidth:2,strokeLinejoin:"round",strokeLinecap:"round"}}},chart:{padding:{top:20,left:65,right:20,bottom:50}}},SA={height:300,position:"relative",flexShrink:0};var xA=class extends l.a.Component{render(){const e=this.props,t=e.style,n=e.children;return l.a.createElement(W.B,{style:[SA,t]},l.a.createElement("div",{ref:e=>this.portalHost=e}),l.a.createElement(Kf.a,null,({width:e,height:t})=>l.a.createElement("div",{style:{width:e,height:t}},n(e,t,this.portalHost))))}},CA=n(21),kA=n.n(CA),PA=n(606);class AA extends l.a.Component{render(){let e=this.props,t=e.active,n=e.x,r=e.y,a=e.scale,o=e.datum,i=e.portalHost,c=e.offsetX,s=void 0===c?0:c,u=e.offsetY,d=e.position,f=e.light,p=e.forceActive,m=e.style;const y=n-a.x.range()[0];return d||(d=o.labelPosition?o.labelPosition:y<150?"right":"left"),i&&(t||p)?(r=u?u(r):r,kA.a.createPortal(l.a.createElement("div",Object(lt.css)({position:"absolute",top:0,left:s,transform:"right"===d?`translate(calc(${n}px + 15px), calc(${r}px ${f?"":"- 50%"}))`:`translate(calc(${n}px - 100% - 15px), calc(${r}px ${f?"":"- 50%"}))`,zIndex:1e3,pointerEvents:"none",borderRadius:2,boxShadow:f?"none":"0 1px 6px rgba(0, 0, 0, .20)",backgroundColor:f?"transparent":$.a.n1,color:f?"inherit":"white",padding:10},!f&&Object(lt.before)({position:"absolute",display:"inline-block",borderTop:"7px solid transparent",borderBottom:"7px solid transparent",["right"===d?"borderRight":"borderLeft"]:"7px solid "+$.a.n1,["right"===d?"left":"right"]:-6,top:"calc(50% - 7px)",content:'" "'}),m),o.premadeLabel),i)):null}}AA.defaultEvents=PA.a.defaultEvents;var DA=AA,BA={data:{fill:jA.colors.red}},IA={data:{stroke:$.a.n5}};var TA=function({style:e,start:t,end:n,graphData:r,isConcise:a,compact:o}){return l.a.createElement(xA,null,(e,t,n)=>r&&l.a.createElement(pA.a,{scale:{x:"time"},theme:jA,domainPadding:10,width:e,height:t,containerComponent:l.a.createElement(mA.a,{voronoiDimension:"x"})},l.a.createElement(yA.a,null,l.a.createElement(gA.a,{data:r.expenses,style:BA}),l.a.createElement(gA.a,{data:r.income})),l.a.createElement(hA.a,{data:r.balances,labelComponent:l.a.createElement(DA,{portalHost:n}),labels:e=>e.premadeLabel,style:IA}),l.a.createElement(bA.a,{tickFormat:e=>jn.a(e,a?"MMM ''yy":"MMM d"),tickValues:r.balances.map(e=>e.x),tickCount:Math.min(5,r.balances.length),offsetY:50}),l.a.createElement(bA.a,{dependentAxis:!0,crossAxis:!1})))};function MA(e,t,n){const r=de.d();return n>r&&(n=r),t<e&&(t=e),[t,n]}function RA(e){const t=de.d();return[de.y(t,e),t]}var _A={padding:20,paddingTop:0,flexShrink:0},LA={marginBottom:"15",alignSelf:"flex-start"},NA={marginRight:5},FA={flexDirection:"row",alignItems:"center",marginTop:15},UA={flex:0,backgroundColor:"white"},zA={flex:0,backgroundColor:"white"},WA={marginLeft:15},$A={marginLeft:15},GA={marginLeft:15},HA={marginLeft:15},qA={marginLeft:15};var YA=function({title:e,start:t,end:n,show1Month:r,allMonths:a,onChangeDates:o}){return l.a.createElement(W.B,{style:_A},l.a.createElement(W.e,{to:"/reports",bare:!0,style:LA},l.a.createElement(xb,{width:10,height:10,style:NA})," Back"),l.a.createElement(W.B,{style:$.c.veryLargeText},e),l.a.createElement(W.B,{style:FA},l.a.createElement("div",null,l.a.createElement(W.w,{style:UA,onChange:e=>o(...function(e,t,n){const r=e[e.length-1].name;return n<t&&(n=de.b(t,6)),MA(r,t,n)}(a,e.target.value,n)),value:t},a.map(e=>l.a.createElement("option",{key:e.name,value:e.name},e.pretty)))," ","to"," ",l.a.createElement(W.w,{style:zA,onChange:e=>o(...function(e,t,n){const r=e[e.length-1].name;return t>n&&(t=de.y(n,6)),MA(r,t,n)}(a,t,e.target.value)),value:n},a.map(e=>l.a.createElement("option",{key:e.name,value:e.name},e.pretty)))),r&&l.a.createElement(W.d,{bare:!0,style:WA,onClick:()=>o(...RA(1))},"1 month"),l.a.createElement(W.d,{bare:!0,style:$A,onClick:()=>o(...RA(2))},"3 months"),l.a.createElement(W.d,{bare:!0,style:GA,onClick:()=>o(...RA(5))},"6 months"),l.a.createElement(W.d,{bare:!0,style:HA,onClick:()=>o(...RA(12))},"1 Year"),l.a.createElement(W.d,{bare:!0,style:qA,onClick:()=>o(...function(e){return[e[e.length-1].name,de.d()]}(a))},"All Time")))};function VA(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return KA(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return KA(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function KA(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var QA=function(e,t){const n=Object(o.useContext)(I.a),r=VA(Object(o.useState)(null),2),a=r[0],l=r[1];return Object(o.useEffect)(()=>{let e;return t(n,e=>l(e)).then(t=>{e=t}),()=>{e&&e()}},[t]),a};function ZA(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return JA(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return JA(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function JA(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var XA={minWidth:650,overflow:"hidden"},eD={backgroundColor:"white",paddingLeft:30,paddingRight:30,overflow:"auto"},tD={paddingTop:20,paddingRight:20,flexShrink:0,alignItems:"flex-end",color:$.a.n3},nD={marginBottom:5,minWidth:160},rD={fontWeight:600},aD={marginBottom:5,minWidth:160},oD={fontWeight:600},lD={fontWeight:600},iD={marginTop:30};var cD=function(){const e=ZA(Object(o.useState)(null),2),t=e[0],n=e[1],r=ZA(Object(o.useState)(de.y(de.d(),30)),2),a=r[0],i=r[1],c=ZA(Object(o.useState)(de.c()),2),s=c[0],u=c[1],d=ZA(Object(o.useState)(()=>eA.a(Gn.a(s),Gn.a(a))>93),2),f=d[0],p=d[1],m=QA("cash_flow",nA(uA)(a,s,f));if(Object(o.useEffect)(()=>{!async function(){const e=await Object(T.send)("get-earliest-transaction"),t=e?de.s(Gn.a(e.date)):de.d(),r=de.v(t,de.d()).map(e=>({name:e,pretty:de.g(e,"MMMM, yyyy")})).reverse();n(r)}()},[]),!t||!m)return null;const y=m.graphData,g=m.totalExpenses,h=m.totalIncome;return l.a.createElement(W.B,{style:[$.c.page,XA]},l.a.createElement(YA,{title:"Cash Flow",allMonths:t,start:de.j(a),end:de.j(s),show1Month:!0,onChangeDates:function(e,t){const n=eA.a(Gn.a(t),Gn.a(e))>93;let r=t+"-31";r>de.c()&&(r=de.c()),i(e+"-01"),u(r),p(n)}}),l.a.createElement(W.B,{style:eD},l.a.createElement(W.B,{style:tD},l.a.createElement(W.a,{style:nD,left:l.a.createElement(W.c,null,"Income:"),right:l.a.createElement(W.y,{style:rD},Object(Pe.k)(h))}),l.a.createElement(W.a,{style:aD,left:l.a.createElement(W.c,null,"Expenses:"),right:l.a.createElement(W.y,{style:oD},Object(Pe.k)(g))}),l.a.createElement(W.y,{style:lD},l.a.createElement(tA,{amount:h+g}))),l.a.createElement(TA,{start:a,end:s,graphData:y,isConcise:f}),l.a.createElement(W.B,{style:iD},l.a.createElement(W.v,null,l.a.createElement("strong",null,"How is cash flow calculated?")),l.a.createElement(W.v,null,'Cash flow shows the balance of your budgeted accounts over time, and the amount of expenses/income each day or month. Your budgeted accounts are considered to be "cash on hand", so this gives you a picture of how available money fluctuates.'))))};function sD(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return uD(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return uD(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function uD(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function dD(e,t,n){return async(r,a)=>{if(0===n.length)return null;a(function(e,t,n){const r=de.v(t,n),a=e.map(e=>{let t=e.starting;return r.map(n=>(e.balances[n]&&(t+=e.balances[n].amount),t))});let o=!1,i=0,c=0;return{graphData:{data:r.reduce((e,t,n)=>{let r=0,s=0,u=0;const d=0===e.length?null:e[e.length-1];a.forEach(e=>{const t=e[n];t<0?r+=-t:s+=t,u+=t}),u<0&&(o=!0);const f=Gn.a(t+"-01"),p=d?u-Object(Pe.b)(d.y):0,m=l.a.createElement("div",null,l.a.createElement("div",{style:fD},l.a.createElement("strong",null,jn.a(f,"MMMM yyyy"))),l.a.createElement("div",{style:pD},l.a.createElement(W.a,{left:"Assets:",right:Object(Pe.k)(s)}),l.a.createElement(W.a,{left:"Debt:",right:`-${Object(Pe.k)(r)}`}),l.a.createElement(W.a,{left:"Net worth:",right:l.a.createElement("strong",null,Object(Pe.k)(u))}),l.a.createElement(W.a,{left:"Change:",right:Object(Pe.k)(p)})));return 0===e.length&&(i=u),c=u,e.push({x:f,y:Object(Pe.j)(u),premadeLabel:m}),e},[]),hasNegative:o,start:t,end:n},netWorth:c,totalChange:c-i}}(await Promise.all(n.map(async n=>{let r=sD(await Promise.all([Object(g.f)(Object(g.c)("transactions").filter({account:n.id,date:{$lt:e+"-01"}}).calculate({$sum:"$amount"})).then(({data:e})=>e),Object(g.f)(Object(g.c)("transactions").filter({account:n.id,$and:[{date:{$gte:e+"-01"}},{date:{$lte:t+"-31"}}]}).groupBy({$month:"$date"}).select([{date:{$month:"$date"}},{amount:{$sum:"$amount"}}])).then(({data:e})=>e)]),2),a=r[0],o=r[1];return{id:n.id,balances:lA(o,"date"),starting:a}})),e,t))}}var fD={marginBottom:10},pD={lineHeight:1.5};var mD=n(604);function yD({start:e,end:t,data:n,style:r,scale:a,range:o}){const i=a.y(0),c=a.x(Gn.a(e+"-01")),s=a.x(Gn.a(t+"-01"));return c<0||s<0?null:l.a.createElement("svg",null,l.a.createElement("defs",null,l.a.createElement("clipPath",{id:"positive"},l.a.createElement("rect",{x:c,y:o.y[1],width:s-c,height:i-o.y[1]+1,fill:"#ffffff"})),l.a.createElement("clipPath",{id:"negative"},l.a.createElement("rect",{x:c,y:i+1,width:s-c,height:o.y[0]-i-1,fill:"#ffffff"})),l.a.createElement("linearGradient",{id:"positive-gradient",gradientUnits:"userSpaceOnUse",x1:0,y1:o.y[1],x2:0,y2:i},l.a.createElement("stop",{offset:"0%",stopColor:jA.colors.blueFadeStart}),l.a.createElement("stop",{offset:"100%",stopColor:jA.colors.blueFadeEnd})),l.a.createElement("linearGradient",{id:"negative-gradient",gradientUnits:"userSpaceOnUse",x1:0,y1:i,x2:0,y2:o.y[0]},l.a.createElement("stop",{offset:"0%",stopColor:jA.colors.redFadeEnd}),l.a.createElement("stop",{offset:"100%",stopColor:jA.colors.redFadeStart}))))}var gD={height:"auto"},hD={data:{clipPath:"url(#negative)",fill:"url(#negative-gradient)",stroke:jA.colors.red,strokeLinejoin:"round"}};var bD=function({style:e,start:t,end:n,graphData:r,compact:a}){const o=a?yA.a:pA.a;return l.a.createElement(xA,{style:[e,a&&gD]},(e,t,n)=>r&&l.a.createElement(o,{scale:{x:"time"},theme:jA,domainPadding:{x:0,y:10},width:e,height:t,containerComponent:l.a.createElement(mA.a,{voronoiDimension:"x"}),padding:a&&{top:0,bottom:0,left:0,right:0}},l.a.createElement(yD,{start:r.start,end:r.end,data:r.data}),l.a.createElement(1===r.data.length?gA.a:mD.a,{data:r.data,labelComponent:l.a.createElement(DA,{portalHost:n}),labels:e=>e.premadeLabel,style:{data:1===r.data.length?{width:50}:{clipPath:"url(#positive)",fill:"url(#positive-gradient)"}}}),r.data.length>1&&l.a.createElement(mD.a,{data:r.data,style:hD}),!a&&l.a.createElement(bA.a,{tickFormat:e=>jn.a(e,"MMM ''yy"),tickValues:r.data.map(e=>e.x),tickCount:Math.min(5,r.data.length),offsetY:50}),!a&&l.a.createElement(bA.a,{dependentAxis:!0,crossAxis:!r.hasNegative})))};function OD(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return wD(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return wD(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function wD(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var ED={minWidth:650,overflow:"hidden"},vD={backgroundColor:"white",padding:"30px",overflow:"auto"},jD={textAlign:"right",paddingRight:20,flexShrink:0},SD={fontWeight:400,marginBottom:5},xD={marginTop:30};var CD=Object(s.b)(e=>({accounts:e.queries.accounts}),e=>Object(ue.b)(y,e))(function({accounts:e}){const t=OD(Object(o.useState)(null),2),n=t[0],r=t[1],a=OD(Object(o.useState)(de.y(de.d(),5)),2),i=a[0],c=a[1],s=OD(Object(o.useState)(de.d()),2),u=s[0],d=s[1],f=QA("net_worth",nA(dD)(i,u,e));return Object(o.useEffect)(()=>{!async function(){const e=await Object(T.send)("get-earliest-transaction"),t=de.d();let n=e?de.s(Gn.a(rA(e.date))):t;const a=de.y(de.d(),12);n>a&&(n=a);const o=de.v(n,de.d()).map(e=>({name:e,pretty:de.g(e,"MMMM, yyyy")})).reverse();r(o)}()},[]),n&&f?l.a.createElement(W.B,{style:[$.c.page,ED]},l.a.createElement(YA,{title:"Net Worth",allMonths:n,start:i,end:u,onChangeDates:function(e,t){c(e),d(t)}}),l.a.createElement(W.B,{style:vD},l.a.createElement(W.B,{style:jD},l.a.createElement(W.B,{style:[$.c.largeText,SD]},Object(Pe.k)(f.netWorth)),l.a.createElement(tA,{amount:f.totalChange})),l.a.createElement(bD,{start:i,end:u,graphData:f.graphData}),l.a.createElement(W.B,{style:xD},l.a.createElement(W.v,null,l.a.createElement("strong",null,"How is net worth calculated?")),l.a.createElement(W.v,null,'Net worth shows the balance of all accounts over time, including all of your investments. Your "net worth" is considered to be the amount you\'d have if you sold all your assets and paid off as much debt as possible. If you hover over the graph, you can also see the amount of assets and debt individually.')))):null}),kD={color:$.a.n6};var PD=function({start:e,end:t}){let n;return e=Gn.a(e),t=Gn.a(t),n=e.getYear()!==t.getYear()?l.a.createElement("div",null,jn.a(e,"MMM yyyy")," - ",jn.a(t,"MMM yyyy")):e.getMonth()!==t.getMonth()?l.a.createElement("div",null,jn.a(e,"MMM")," - ",jn.a(t,"MMM yyyy")):jn.a(t,"MMMM yyyy"),l.a.createElement(W.c,{style:kD},n)};function AD({flex:e,to:t,style:n,children:r}){const a={flex:e,margin:15},o=l.a.createElement(W.B,{style:[{backgroundColor:"white",borderRadius:2,height:200,boxShadow:"0 2px 6px rgba(0, 0, 0, .15)",transition:"box-shadow .25s",":hover":t&&{boxShadow:"0 4px 6px rgba(0, 0, 0, .15)"}},t?null:a,n]},r);return t?l.a.createElement(W.b,{to:t,exact:!0,style:[{textDecoration:"none",flex:e},a]},o):o}var DD={flex:1},BD={flexDirection:"row",padding:20},ID={flex:1},TD={fontWeight:500,marginBottom:5},MD={textAlign:"right"},RD={fontWeight:500,marginBottom:5},_D={color:$.a.n6,fontWeight:300},LD={height:"auto",flex:1};function ND({accounts:e}){const t=de.d(),n=de.y(t,5),r=QA("net_worth",nA(dD)(n,t,e));return r?l.a.createElement(AD,{flex:2,to:"/reports/net-worth"},l.a.createElement(W.B,{style:DD},l.a.createElement(W.B,{style:BD},l.a.createElement(W.B,{style:ID},l.a.createElement(W.c,{style:[$.c.mediumText,TD]},"Net Worth"),l.a.createElement(PD,{start:n,end:t})),l.a.createElement(W.B,{style:MD},l.a.createElement(W.c,{style:[$.c.mediumText,RD]},Object(Pe.k)(r.netWorth)),l.a.createElement(tA,{amount:r.totalChange,style:_D}))),l.a.createElement(bD,{start:n,end:t,graphData:r.graphData,compact:!0,style:LD}))):null}var FD={flex:1},UD={flexDirection:"row",padding:20},zD={flex:1},WD={fontWeight:500,marginBottom:5},$D={textAlign:"right"},GD={color:$.a.n6,fontWeight:300},HD={height:"auto",flex:1},qD={padding:0},YD={textAlign:"right"};function VD(){const e=de.c(),t=de.d()+"-01",n=QA("cash_flow_simple",nA(sA)(t,e));if(!n)return null;const r=n.graphData,a=-(r.expense||0),o=r.income||0;return l.a.createElement(AD,{flex:1,to:"/reports/cash-flow"},l.a.createElement(W.B,{style:FD},l.a.createElement(W.B,{style:UD},l.a.createElement(W.B,{style:zD},l.a.createElement(W.c,{style:[$.c.mediumText,WD]},"Cash Flow"),l.a.createElement(PD,{start:t,end:e})),l.a.createElement(W.B,{style:$D},l.a.createElement(tA,{amount:o-a,style:GD}))),l.a.createElement(xA,{style:HD},(e,t,n)=>l.a.createElement(yA.a,{colorScale:[jA.colors.blue,jA.colors.red],width:100,height:t,theme:jA,domain:{x:[0,100],y:[0,Math.max(o,a,100)]},containerComponent:l.a.createElement(mA.a,{voronoiDimension:"x"}),labelComponent:l.a.createElement(DA,{portalHost:n,offsetX:(e-100)/2,offsetY:e=>e+40>t?t-40:e,light:!0,forceActive:!0,style:qD}),padding:{top:0,bottom:0,left:0,right:0}},l.a.createElement(gA.a,{data:[{x:30,y:Math.max(o,5),width:20,premadeLabel:l.a.createElement("div",{style:YD},l.a.createElement("div",null,"Income"),l.a.createElement("div",null,Object(Pe.k)(o))),labelPosition:"left"}],labels:e=>e.premadeLabel}),l.a.createElement(gA.a,{data:[{x:60,y:Math.max(a,5),width:20,premadeLabel:l.a.createElement("div",null,l.a.createElement("div",null,"Expenses"),l.a.createElement("div",null,Object(Pe.k)(a))),labelPosition:"right",fill:jA.colors.red}],labels:e=>e.premadeLabel})))))}var KD={paddingLeft:40,paddingRight:40,minWidth:700},QD={flexDirection:"row",flex:"0 0 auto"},ZD={flex:"0 0 auto",flexDirection:"row"},JD={color:"#a0a0a0",justifyContent:"center",alignItems:"center",width:200};var XD=Object(s.b)(e=>({accounts:e.queries.accounts}),e=>Object(ue.b)(y,e))(function({accounts:e}){return l.a.createElement(W.B,{style:[$.c.page,KD]},l.a.createElement(W.B,{style:QD},l.a.createElement(ND,{accounts:e}),l.a.createElement(VD,null)),l.a.createElement(W.B,{style:ZD},l.a.createElement(AD,{style:[JD,$.c.mediumText]},"More reports",l.a.createElement("br",null)," coming soon!")))}),eB={flex:1};var tB=class extends l.a.Component{render(){return l.a.createElement(W.B,{style:eB},l.a.createElement(u.b,{path:"/reports",exact:!0,component:XD}),l.a.createElement(u.b,{path:"/reports/net-worth",exact:!0,component:CD}),l.a.createElement(u.b,{path:"/reports/cash-flow",exact:!0,component:cD}))}};function nB(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function rB(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?nB(Object(n),!0).forEach(function(t){aB(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):nB(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function aB(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var oB=e=>l.a.createElement("svg",Object.assign({},e,{viewBox:"0 0 24 24",style:rB({color:"#242134"},e.style)}),l.a.createElement("path",{d:"M6.847 21.429a3.408 3.408 0 0 1-2.662-1.34l-3.76-4.273a1.714 1.714 0 0 1 2.572-2.263l3.522 4.01a.429.429 0 0 0 .631.014L21.036 3.105a1.715 1.715 0 1 1 2.486 2.362l-14.06 14.8a3.327 3.327 0 0 1-2.615 1.162z",fill:"currentColor"}));function lB(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return iB(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return iB(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function iB(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}let cB=43;var sB={color:"inherit",transform:"rotateZ(90deg)"},uB={padding:0};function dB({schedule:e,status:t,onAction:n}){let r=lB(Object(o.useState)(!1),2),a=r[0],i=r[1];return l.a.createElement(W.B,null,l.a.createElement(W.d,{bare:!0,onClick:e=>{e.stopPropagation(),i(!0)}},l.a.createElement(Mt.a,{width:15,height:15,style:sB})),a&&l.a.createElement(W.A,{position:"bottom-right",width:150,style:uB,onClose:()=>i(!1)},l.a.createElement(W.s,{onMenuSelect:t=>{n(t,e.id),i(!1)},items:["due"===t&&{name:"post-transaction",text:"Post transaction"},...e.completed?[{name:"restart",text:"Restart"}]:[{name:"skip",text:"Skip next date"},{name:"complete",text:"Complete"}],{name:"delete",text:"Delete"}]})))}var fB={textAlign:"right",flexDirection:"row",alignItems:"center",padding:"0 5px"},pB={textAlign:"left",color:$.a.n7,lineHeight:"1em",marginRight:10};function mB({amount:e,op:t}){let n=be(e),r=Object(Pe.k)(Math.abs(n||0)),a="isapprox"===t||"isbetween"===t;return l.a.createElement(kt.a,{width:100,plain:!0,style:fB},a&&l.a.createElement(W.B,{style:pB,title:(a?"Approximately ":"")+r},"~"),l.a.createElement(W.y,{style:{flex:1,color:n>0?$.a.g5:null,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},title:(a?"Approximately ":"")+r},n>0?`+${r}`:`${r}`))}var yB={cursor:"pointer",backgroundColor:"white",":hover":{backgroundColor:$.a.hover}},gB={alignItems:"flex-start"},hB={textAlign:"center"},bB={width:13,height:13},OB={cursor:"pointer",backgroundColor:"white",":hover":{backgroundColor:$.a.hover}},wB={fontStyle:"italic",textAlign:"center",color:$.a.n6},EB={textAlign:"right"},vB={textAlign:"center"},jB={flex:1,backgroundColor:"transparent"};function SB({schedules:e,statuses:t,minimal:n,allowCompleted:r,style:a,onSelect:i,onAction:c}){let u=Object(s.d)(e=>e.prefs.local.dateFormat||"MM/dd/yyyy"),d=lB(Object(o.useState)(!1),2),f=d[0],p=d[1],m=Object(o.useMemo)(()=>{if(!r)return e.filter(e=>!e.completed);if(f)return e;let t=e.filter(e=>!e.completed);return e.find(e=>e.completed)&&t.push({type:"show-completed"}),t},[e,f,r]);return l.a.createElement(l.a.Fragment,null,l.a.createElement(kt.m,{height:cB,inset:15,version:"v2"},l.a.createElement(kt.e,{width:"flex"},"Payee"),l.a.createElement(kt.e,{width:"flex"},"Account"),l.a.createElement(kt.e,{width:110},"Next date"),l.a.createElement(kt.e,{width:120},"Status"),l.a.createElement(kt.e,{width:100,style:EB},"Amount"),!n&&l.a.createElement(kt.e,{width:80,style:vB},"Recurring"),!n&&l.a.createElement(kt.e,{width:40})),l.a.createElement(kt.l,{rowHeight:cB,backgroundColor:"transparent",version:"v2",style:[jB,a],items:m,renderItem:function({item:e}){return"show-completed"===e.type?l.a.createElement(kt.h,{height:cB,inset:15,backgroundColor:"transparent",style:OB,onClick:()=>p(!0)},l.a.createElement(kt.e,{width:"flex",style:wB},"Show completed schedules")):function({item:e}){return l.a.createElement(kt.h,{height:cB,inset:15,backgroundColor:"transparent",onClick:()=>i(e.id),style:yB},l.a.createElement(kt.e,{width:"flex"},l.a.createElement(jC,{type:"payees",id:e._payee})),l.a.createElement(kt.e,{width:"flex"},l.a.createElement(jC,{type:"accounts",id:e._account})),l.a.createElement(kt.e,{width:110},e.next_date?de.g(e.next_date,u):null),l.a.createElement(kt.e,{width:120,style:gB},l.a.createElement(dc,{status:t.get(e.id)})),l.a.createElement(mB,{amount:e._amount,op:e._amountOp}),!n&&l.a.createElement(kt.e,{width:80,style:hB},e._date&&e._date.frequency&&l.a.createElement(oB,{style:bB})),!n&&l.a.createElement(kt.e,{width:40},l.a.createElement(dB,{schedule:e,status:t.get(e.id),onAction:c})))}({item:e})},renderEmpty:"No schedules",allowPopupsEscape:m.length<6}))}var xB={backgroundColor:"white"},CB={flexDirection:"row",justifyContent:"space-between",margin:"20px 0",flexShrink:0};function kB(){let e=Object(u.g)(),t=ve();if(null==t)return null;let n=t.schedules,r=t.statuses;return l.a.createElement(Zv,{title:"Schedules"},l.a.createElement(W.B,{style:{marginTop:20,flexBasis:(cB-1)*(Math.max(n.length,1)+1),overflow:"hidden"}},l.a.createElement(SB,{schedules:n,statuses:r,allowCompleted:!0,onSelect:function(t){e.push(`/schedule/edit/${t}`,{locationPtr:e.location})},onAction:async function(e,t){switch(e){case"post-transaction":await Object(T.send)("schedule/post-transaction",{id:t});break;case"skip":await Object(T.send)("schedule/skip-next-date",{id:t});break;case"complete":await Object(T.send)("schedule/update",{schedule:{id:t,completed:!0}});break;case"restart":await Object(T.send)("schedule/update",{schedule:{id:t,completed:!1},resetNextDate:!0});break;case"delete":await Object(T.send)("schedule/delete",{id:t})}},style:xB})),l.a.createElement(W.B,{style:CB},l.a.createElement(W.d,{onClick:function(){e.push("/schedule/discover",{locationPtr:e.location})}},"Find schedules"),l.a.createElement(W.d,{primary:!0,onClick:function(){e.push("/schedule/edit",{locationPtr:e.location})}},"Add new schedule")))}function PB(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return AB(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return AB(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function AB(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}let DB=43;var BB={flex:1.5},IB={flex:1},TB={flex:1.5},MB={textAlign:"right"};function RB({schedules:e,loading:t}){let n=Yv(),r=Object(Pt.e)(),a=Object(Pt.d)();return l.a.createElement(W.B,{style:IB},l.a.createElement(kt.m,{height:DB,inset:15,version:"v2"},l.a.createElement(kt.i,{exposed:!0,focused:!1,selected:r.size>0,onSelect:()=>a({type:"select-all"})}),l.a.createElement(kt.e,{width:"flex"},"Payee"),l.a.createElement(kt.e,{width:"flex"},"Account"),l.a.createElement(kt.e,{width:"auto",style:TB},"When"),l.a.createElement(kt.e,{width:100,style:MB},"Amount")),l.a.createElement(kt.l,{rowHeight:DB,version:"v2",backgroundColor:"modal"===n.type?"transparent":void 0,style:{flex:1,backgroundColor:"modal"===n.type?"transparent":void 0},items:e,loading:t,isSelected:e=>r.has(e),renderItem:function({item:e}){let t=r.has(e.id),n=e._conditions.find(e=>"amount"===e.field).op,o=ge(e.date);return l.a.createElement(kt.h,{height:DB,inset:15,backgroundColor:"transparent",onClick:()=>{a({type:"select",id:e.id})},borderColor:t?$.a.b8:$.a.border,style:{cursor:"pointer",backgroundColor:t?$.a.selected:"white",":hover":{backgroundColor:t?$.a.selected:$.a.hover}}},l.a.createElement(kt.i,{exposed:!0,focused:!1,selected:t,onSelect:()=>{a({type:"select",id:e.id})}}),l.a.createElement(kt.e,{width:"flex"},l.a.createElement(jC,{type:"payees",id:e.payee})),l.a.createElement(kt.e,{width:"flex"},l.a.createElement(jC,{type:"accounts",id:e.account})),l.a.createElement(kt.e,{width:"auto",title:o,style:BB},o),l.a.createElement(mB,{amount:e.amount,op:n}))},renderEmpty:"No schedules found"}))}function _B(){let e=Yv(),t=Object(u.g)(),n=PB(Object(o.useState)(),2),r=n[0],a=n[1],i=PB(Object(o.useState)(!1),2),c=i[0],s=i[1],d=Object(Pt.c)("discover-schedules",r,[]);return Object(o.useEffect)(()=>{!async function(){a(await Object(T.send)("schedule/discover"))}()},[]),l.a.createElement(Zv,{title:"Found schedules",modalSize:{width:850,height:650}},l.a.createElement(W.v,null,"We found some possible schedules in your current transactions. Select the ones you want to create."),l.a.createElement(W.v,null,"If you expected a schedule here and don't see it, it might be because the payees of the transactions don't match. Make sure you rename payees on all transactions for a schedule to be the same payee."),l.a.createElement(W.v,null,"You can always do this later from \u201cMore Tools\u201d \u2192 \u201cFind Schedules.\u201d"),l.a.createElement(Pt.a,{instance:d},l.a.createElement(RB,{loading:null==r,schedules:r})),l.a.createElement(W.x,{direction:"row",align:"center",justify:"flex-end",style:{paddingTop:20,paddingBottom:"modal"===e.type?0:20}},l.a.createElement(W.f,{primary:!0,loading:c,disabled:0===d.items.size,onClick:async function(){let e=r.filter(e=>d.items.has(e.id));s(!0);for(let t of e){let e=await Object(T.send)("schedule/create",{conditions:t._conditions}),n=(await Object(T.send)("make-filters-from-conditions",{conditions:t._conditions})).filters;if(n.length>0){let t=(await Object(g.f)(Object(g.c)("transactions").filter({$and:n}).select("id"))).data;await Object(T.send)("transactions-batch-update",{updated:t.map(t=>({id:t.id,schedule:e}))})}}s(!1),t.goBack()}},"Create schedules")))}function LB(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return NB(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return NB(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function NB(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function FB(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function UB(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?FB(Object(n),!0).forEach(function(t){zB(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):FB(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function zB(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function WB(e,t){let n=UB({},e);return t&&Object.keys(t).forEach(r=>{r in e&&(n[r]=t[r])}),n}function $B(e,t){let n=he(e._conditions),r=(e,t,n,r)=>e?UB(UB({},e),{},{value:r}):null!=r?{op:t,field:n,value:r}:null;return null==t.date?{error:"Date is required"}:null==t.amount?{error:"A valid amount is required"}:{conditions:[r(n.payee,"is","payee",t.payee),r(n.account,"is","account",t.account),r(n.date,"isapprox","date",t.date),{op:t.amountOp,field:"amount",value:t.amount}].filter(Boolean)}}var GB={marginTop:20},HB={flex:1},qB={flex:1},YB={flex:1},VB={marginBottom:3},KB={margin:0,flex:1},QB={padding:"0 10px",color:$.a.n5,fontSize:12},ZB={marginTop:20},JB={flex:1},XB={fontSize:13,marginTop:20},eI={color:$.a.n4,fontWeight:600},tI={marginTop:10,color:$.a.n4},nI={marginTop:5,flex:1,flexDirection:"row",alignItems:"center",userSelect:"none"},rI={userSelect:"none"},aI={alignItems:"flex-end",flex:1},oI={marginTop:5,flexDirection:"row",alignItems:"center",userSelect:"none",justifyContent:"flex-end"},lI={userSelect:"none"},iI={width:350,textAlign:"right",color:$.a.n4,marginTop:10,fontSize:13,lineHeight:"1.4em"},cI={marginTop:30},sI={color:$.a.b5,fontSize:13,textAlign:"right",width:350},uI={marginTop:30,flex:1},dI={flexDirection:"row",padding:"5px 0"},fI={color:$.a.n4},pI={flex:1},mI={color:$.a.n6},yI={flexDirection:"row",alignItems:"center"},gI={flex:1},hI={border:"1px solid "+$.a.border,borderRadius:4,overflow:"hidden",marginTop:5},bI={marginTop:20},OI={color:$.a.r4},wI={marginRight:10};function EI(){let e=Object(u.i)(),t=e.id,n=e.initialFields,r=null==t,a=A({idKey:!0}),i=Object(u.g)(),c=Object(s.c)(),d=Object(s.d)(e=>e.prefs.local.dateFormat||"MM/dd/yyyy"),f=LB(Object(o.useReducer)((e,t)=>{switch(t.type){case"set-schedule":{let n=t.schedule,r=he(n._conditions),a=new Set(Object.values(r)),o=n._conditions.find(e=>!a.has(e))||n._actions.find(e=>"link-schedule"!==e.op);return UB(UB({},e),{},{schedule:t.schedule,isCustom:o,fields:{payee:n._payee,account:n._account,amount:n._amount||0,amountOp:n._amountOp||"isapprox",date:n._date,posts_transaction:t.schedule.posts_transaction}})}case"set-field":if(!(t.field in e.fields))throw new Error("Unknown field: "+t.field);let n={[t.field]:t.value};return"amountOp"===t.field&&t.value!==e.fields.amountOp&&("isbetween"===t.value?n.amount="number"===typeof e.fields.amount?{num1:e.fields.amount,num2:e.fields.amount}:{num1:0,num2:0}:"isbetween"===e.fields.amountOp&&(n.amount="number"===typeof e.fields.amount?e.fields.amount:e.fields.amount.num1)),UB(UB({},e),{},{fields:UB(UB({},e.fields),n)});case"set-transactions":return UB(UB({},e),{},{transactions:t.transactions});case"set-repeats":return UB(UB({},e),{},{fields:UB(UB({},e.fields),{},{date:t.repeats?{frequency:"monthly",start:de.c(),patterns:[]}:de.c()})});case"set-upcoming-dates":return UB(UB({},e),{},{upcomingDates:t.dates});case"form-error":return UB(UB({},e),{},{error:t.error});case"switch-transactions":return UB(UB({},e),{},{transactionsMode:t.mode});default:throw new Error("Unknown action: "+t.type)}},{schedule:null,upcomingDates:null,error:null,fields:WB({payee:null,account:null,amount:null,amountOp:null,date:null,posts_transaction:!1},n),transactions:[],transactionsMode:r?"matched":"linked"}),2),p=f[0],m=f[1];async function y(){return(await Object(g.f)(Object(g.c)("schedules").filter({id:t}).select("*"))).data[0]}Object(o.useEffect)(()=>{!async function(){if(r){let e={start:de.c(),frequency:"monthly",patterns:[]};m({type:"set-schedule",schedule:{posts_transaction:!1,_date:e,_conditions:[{op:"isapprox",field:"date",value:e}],_actions:[]}})}else{let e=await y();e&&null==p.schedule&&m({type:"set-schedule",schedule:e})}}()},[]),Object(o.useEffect)(()=>{!async function(){let e=p.fields.date;if(null==e)m({type:"set-upcoming-dates",dates:null});else if(e.frequency){let t=(await Object(T.sendCatch)("schedule/get-upcoming-dates",{config:e,count:3})).data;m({type:"set-upcoming-dates",dates:t})}else{let t=de.c();e===t||de.r(e,t)?m({type:"set-upcoming-dates",dates:[e]}):m({type:"set-upcoming-dates",dates:null})}}()},[p.fields.date]),Object(o.useEffect)(()=>{if(p.schedule&&p.schedule.id&&"linked"===p.transactionsMode){return Object(g.d)(Object(g.c)("transactions").filter({schedule:p.schedule.id}).select("*").options({splits:"none"}),e=>m({type:"set-transactions",transactions:e})).unsubscribe}},[p.schedule,p.transactionsMode]),Object(o.useEffect)(()=>{let e,t=!0;if(p.schedule&&"matched"===p.transactionsMode){let n=$B(p.schedule,p.fields).conditions;m({type:"set-transactions",transactions:[]}),n=n.map(e=>"description"===e.field?UB(UB({},e),{},{field:"payee"}):"acct"===e.field?UB(UB({},e),{},{field:"account"}):e),Object(T.send)("make-filters-from-conditions",{conditions:n}).then(({filters:n})=>{if(t){let t=Object(g.d)(Object(g.c)("transactions").filter({$and:n}).select("*").options({splits:"none"}),e=>m({type:"set-transactions",transactions:e}));e=t.unsubscribe}})}return()=>{t=!1,e&&e()}},[p.schedule,p.transactionsMode,p.fields]);let h=Object(Pt.c)("transactions",p.transactions,[]);async function b(e,t){await Object(T.send)("transactions-batch-update",{updated:e.map(e=>({id:e,schedule:t||p.schedule.id}))}),h.dispatch({type:"select-none"})}if(null==p.schedule)return null;function O(e){m({type:"switch-transactions",mode:e}),h.dispatch({type:"select-none"})}let w=a?a[p.fields.payee]:null,E=!!p.fields.date&&!!p.fields.date.frequency;return l.a.createElement(Zv,{title:w?`Schedule: ${w.name}`:"Schedule",modalSize:"medium"},l.a.createElement(W.x,{direction:"row",style:GB},l.a.createElement(nS.b,{style:HB},l.a.createElement(nS.c,{title:"Payee"}),l.a.createElement(zo,{value:p.fields.payee,inputProps:{placeholder:"(none)"},onSelect:e=>m({type:"set-field",field:"payee",value:e})})),l.a.createElement(nS.b,{style:qB},l.a.createElement(nS.c,{title:"Account"}),l.a.createElement(Za,{includeClosedAccounts:!1,value:p.fields.account,inputProps:{placeholder:"(none)"},onSelect:e=>m({type:"set-field",field:"account",value:e})})),l.a.createElement(nS.b,{style:YB},l.a.createElement(W.x,{direction:"row",align:"center",style:VB},l.a.createElement(nS.c,{title:"Amount",style:KB}),l.a.createElement($C,{ops:["is","isapprox","isbetween"],value:p.fields.amountOp,formatOp:e=>{switch(e){case"is":return"is exactly";case"isapprox":return"is approximately";case"isbetween":return"is between";default:throw new Error("Invalid op for select: "+e)}},style:QB,onChange:(e,t)=>m({type:"set-field",field:"amountOp",value:t})})),"isbetween"===p.fields.amountOp?l.a.createElement(AE,{defaultValue:p.fields.amount,onChange:e=>m({type:"set-field",field:"amount",value:e})}):l.a.createElement(CE,{defaultValue:p.fields.amount,onChange:e=>m({type:"set-field",field:"amount",value:e})}))),l.a.createElement(W.B,{style:ZB},l.a.createElement(nS.c,{title:"Date"})),l.a.createElement(W.x,{direction:"row",align:"flex-start"},l.a.createElement(W.B,{style:JB},E?l.a.createElement(Tl,{value:p.fields.date,onChange:e=>m({type:"set-field",field:"date",value:e})}):l.a.createElement(go.a,{value:p.fields.date,onSelect:e=>m({type:"set-field",field:"date",value:e}),dateFormat:d}),p.upcomingDates&&l.a.createElement(W.B,{style:XB},l.a.createElement(W.y,{style:eI},"Upcoming dates"),l.a.createElement(W.x,{direction:"column",spacing:1,style:tI},p.upcomingDates.map(e=>l.a.createElement(W.B,null,de.g(e,`${d} EEEE`)))))),l.a.createElement(W.B,{style:nI},l.a.createElement(nS.a,{id:"form_repeats",checked:E,onChange:e=>{m({type:"set-repeats",repeats:e.target.checked})}}),l.a.createElement("label",{for:"form_repeats",style:rI},"Repeats")),l.a.createElement(W.B,{style:aI},l.a.createElement(W.B,{style:oI},l.a.createElement(nS.a,{id:"form_posts_transaction",checked:p.fields.posts_transaction,onChange:e=>{m({type:"set-field",field:"posts_transaction",value:e.target.checked})}}),l.a.createElement("label",{for:"form_posts_transaction",style:lI},"Automatically add transaction")),l.a.createElement(W.y,{style:iI},"If checked, the schedule will automatically create transactions for you in the specified account"),!r&&p.schedule.rule&&l.a.createElement(W.x,{direction:"row",align:"center",style:cI},p.isCustom&&l.a.createElement(W.y,{style:sI},"This schedule has custom conditions and actions"),l.a.createElement(W.d,{onClick:()=>(async function(e){let t=await Object(T.send)("rule-get",{id:e||p.schedule.rule});c(Object(Hn.d)("edit-rule",{rule:t,onSave:async()=>{let e=await y();m({type:"set-schedule",schedule:e})}}))})(),disabled:r},"Edit as rule")))),l.a.createElement(W.B,{style:uI},l.a.createElement(Pt.a,{instance:h},r?l.a.createElement(W.B,{style:dI},l.a.createElement(W.y,{style:fI},"These transactions match this schedule:"),l.a.createElement(W.B,{style:pI}),l.a.createElement(W.y,{style:mI},"Select transactions to link on save")):l.a.createElement(W.B,{style:yI},l.a.createElement(W.d,{bare:!0,style:{color:"linked"===p.transactionsMode?$.a.b4:$.a.n7,marginRight:10,fontSize:14},onClick:()=>O("linked")},"Linked transactions")," ",l.a.createElement(W.d,{bare:!0,style:{color:"matched"===p.transactionsMode?$.a.b4:$.a.n7,fontSize:14},onClick:()=>O("matched")},"Find matching transactions"),l.a.createElement(W.B,{style:gI}),l.a.createElement(kt.j,{name:"transactions",items:"linked"===p.transactionsMode?[{name:"unlink",text:"Unlink from schedule"}]:[{name:"link",text:"Link to schedule"}],onSelect:(e,t)=>{switch(e){case"link":b(t);break;case"unlink":!async function(e){await Object(T.send)("transactions-batch-update",{updated:e.map(e=>({id:e,schedule:null}))}),h.dispatch({type:"select-none"})}(t)}}})),l.a.createElement(IC,{transactions:p.transactions,fields:["date","payee","amount"],style:hI}))),l.a.createElement(W.x,{direction:"row",justify:"flex-end",align:"center",style:bI},p.error&&l.a.createElement(W.y,{style:OI},p.error),l.a.createElement(W.d,{style:wI,onClick:()=>i.goBack()},"Cancel"),l.a.createElement(W.d,{primary:!0,onClick:async function(){m({type:"form-error",error:null});let e=$B(p.schedule,p.fields),t=e.error,n=e.conditions;if(t)return void m({type:"form-error",error:t});let a=await Object(T.sendCatch)(r?"schedule/create":"schedule/update",{schedule:{id:p.schedule.id,posts_transaction:p.fields.posts_transaction},conditions:n});a.error?m({type:"form-error",error:"An error occurred while saving. Please contact help@actualbudget.com for support."}):(r&&await b([...h.items],a.data),i.goBack())}},r?"Add":"Save")))}var vI={marginBottom:20};function jI(){let e=Object(u.h)(),t=Object(u.g)(),n=ve(Object(o.useCallback)(e=>e.filter({completed:!1}),[]));if(null==n)return null;let r=n.schedules,a=n.statuses;return l.a.createElement(Zv,{title:"Link Schedule",modalSize:"medium"},l.a.createElement(W.y,{style:vI},"Choose a schedule to link these transactions to:"),l.a.createElement(SB,{schedules:r,statuses:a,minimal:!0,onSelect:async function(n){let r=e.state.transactionIds;r&&r.length>0&&await Object(T.send)("transactions-batch-update",{updated:r.map(e=>({id:e,schedule:n}))}),t.goBack()}}))}var SI={color:$.a.p4},xI={marginTop:20};function CI(){let e=Object(u.h)(),t=Object(u.g)(),n=e.state&&e.state.payees||[],r=n.length>1;return l.a.createElement(Zv,{title:"Post transactions?",modalSize:"small"},l.a.createElement(W.v,null,n.length>0?l.a.createElement(W.y,null,"The ",r?"payees ":"payee ",n.map((e,t)=>l.a.createElement(W.y,null,l.a.createElement(W.y,{style:SI},l.a.createElement(jC,{key:e,id:e,type:"payees"})),t===n.length-1?" ":t===n.length-2?", and ":", "))):l.a.createElement(W.y,null,"There ",r?"are payees ":"is a payee "," that "),l.a.createElement(W.y,null,r?"have ":"has "," schedules that are due today. Usually we automatically post transactions for these, but you are offline or syncing failed. In order to avoid duplicate transactions, we let you choose whether or not to create transactions for these schedules.")),l.a.createElement(W.v,null,"Be aware that other devices may have already created these transactions. If you have multiple devices, make sure you only do this on one device or you will have duplicate transactions."),l.a.createElement(W.v,null,'You can always manually post a transaction later for a due schedule by selecting the schedule and clicking "Post transaction" in the action menu.'),l.a.createElement(W.x,{direction:"row",justify:"flex-end",style:xI,spacing:2},l.a.createElement(W.d,{onClick:function(){t.goBack()}},"Decide later"),l.a.createElement(W.d,{primary:!0,onClick:async function(){await Object(T.send)("schedule/force-run-service"),t.goBack()}},"Post transactions")))}var kI=n(227);const PI=["title","children","style","titleProps"];function AI(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return DI(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return DI(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function DI(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function BI(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var II={gap:20,alignItems:"flex-start"},TI={fontSize:20,fontWeight:500,flexShrink:0};function MI(e){let t=e.title,n=e.children,r=e.style,a=e.titleProps,o=BI(e,PI);return l.a.createElement(W.B,Object.assign({style:[II,r]},o),l.a.createElement(W.B,Object.assign({style:[TI,a&&a.style]},a),t),n)}var RI={backgroundColor:$.a.n9,alignSelf:"flex-start",alignItems:"flex-start",padding:15,borderRadius:4,border:"1px solid "+$.a.n8,width:"100%"},_I={width:"auto"},LI={marginBottom:10,maxWidth:500,lineHeight:1.5,gap:10};function NI({button:e,children:t}){return l.a.createElement(W.B,Object(lt.css)(RI,Object(lt.media)(`(min-width: ${Db.a.breakpoint_medium})`,_I)),l.a.createElement(W.B,{style:LI},t),e)}var FI={marginBottom:25,width:"100%"},UI={width:"auto"},zI={flexShrink:0,alignSelf:"flex-start",color:$.a.p4,marginBottom:25};function WI({children:e}){let t=AI(Object(o.useState)(!1),2),n=t[0],r=t[1];return n?l.a.createElement(MI,Object.assign({title:"Advanced Settings"},Object(lt.css)(FI,Object(lt.media)(`(min-width: ${Db.a.breakpoint_medium})`,UI))),e):l.a.createElement(W.r,{onClick:()=>r(!0),style:zI},"Show advanced settings")}var $I={color:$.a.g4,fontWeight:600};function GI({prefs:e,pushModal:t}){return e.encryptKeyId?l.a.createElement(NI,{button:l.a.createElement(W.d,{onClick:function(){t("create-encryption-key",{recreate:!0})}},"Generate new key")},l.a.createElement(W.y,null,l.a.createElement(W.y,{style:$I},"End-to-end Encryption is turned on.")," ","Your data is encrypted with a key that only you have before sending it out to the cloud . Local data remains unencrypted so if you forget your password you can re-encrypt it.")):l.a.createElement(NI,{button:l.a.createElement(W.d,{onClick:()=>{alert("End-to-end encryption is not supported on the self-hosted service yet")}},"Enable encryption\u2026")},l.a.createElement(W.y,null,l.a.createElement("strong",null,"End-to-end encryption")," is not enabled. Any data on our servers is still stored safely and securely, but it's not end-to-end encrypted which means we have the ability to read it (but we won't). If you want, you can use a password to encrypt your data on our servers."))}function HI({prefs:e}){return l.a.createElement(NI,{button:l.a.createElement(W.d,{onClick:async function(){let t=await Object(T.send)("export-budget");window.Actual.saveFile(t,`${e.id}.zip`,"Export budget")}},"Export data")},l.a.createElement(W.y,null,l.a.createElement("strong",null,"Export")," your data as a zip file containing"," ",l.a.createElement("code",null,"db.sqlite")," and ",l.a.createElement("code",null,"metadata.json")," files. It can be imported into another Actual instance by clicking the \u201cImport file\u201d button and then choosing \u201cActual\u201d on the Files page."),e.encryptKeyId?l.a.createElement(W.y,null,"Even though encryption is enabled, the exported zip file will not have any encryption."):null)}let qI=[{value:"MM/dd/yyyy",label:"MM/DD/YYYY"},{value:"dd/MM/yyyy",label:"DD/MM/YYYY"},{value:"yyyy-MM-dd",label:"YYYY-MM-DD"},{value:"MM.dd.yyyy",label:"MM.DD.YYYY"},{value:"dd.MM.yyyy",label:"DD.MM.YYYY"}];var YI={marginLeft:5,fontSize:14},VI={marginLeft:5,fontSize:14};function KI({prefs:e,savePrefs:t}){let n=e.dateFormat||"MM/dd/yyyy",r=e.numberFormat||"comma-dot";return l.a.createElement(MI,{title:"Formatting"},l.a.createElement(W.y,null,l.a.createElement("label",{htmlFor:"settings-numberFormat"},"Number format: "),l.a.createElement("select",Object.assign({defaultValue:r,id:"settings-numberFormat"},Object(lt.css)(YI),{onChange:function(e){let n=e.target.value;t({numberFormat:n})}}),Pe.n.map(e=>l.a.createElement("option",{key:e.value,value:e.value},e.label)))),l.a.createElement(W.y,null,l.a.createElement("label",{htmlFor:"settings-dateFormat"},"Date format: "),l.a.createElement("select",Object.assign({defaultValue:n,id:"settings-dateFormat"},Object(lt.css)(VI),{onChange:function(e){let n=e.target.value;t({dateFormat:n})}}),qI.map(e=>l.a.createElement("option",{key:e.value,value:e.value},e.label)))))}function QI(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return ZI(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ZI(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ZI(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var JI={flexDirection:"row",alignItems:"center",overflow:"hidden"},XI={flexShrink:0},eT={backgroundColor:"white",padding:"7px 10px",borderRadius:4,marginLeft:5,overflow:"auto",whiteSpace:"nowrap","::-webkit-scrollbar":{display:"none"}},tT={fontSize:14,marginLeft:5,flexShrink:0,alignSelf:"flex-start"},nT={marginTop:10};function rT({globalPrefs:e,saveGlobalPrefs:t}){let n=QI(Object(o.useState)(!1),2),r=n[0],a=n[1],i=Object(o.useRef)(null);return Object(o.useEffect)(()=>{i.current&&i.current.scrollTo(1e4,0)},[]),l.a.createElement(MI,{title:"General"},l.a.createElement(W.B,{style:JI},l.a.createElement(W.y,{style:XI},"Store files here: "),l.a.createElement(W.y,{innerRef:i,style:eT},e.documentDir),l.a.createElement(W.d,{primary:!0,onClick:async function(){let e=await window.Actual.openFileDialog({properties:["openDirectory"]});e&&(t({documentDir:e[0]}),a(!0))},style:tT},"Change location")),r&&l.a.createElement(Cx,{style:nT},"A restart is required for this change to take effect"))}function aT(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return oT(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return oT(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function oT(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function lT(){let e=aT(Object(o.useState)(!1),2),t=e[0],n=e[1];return l.a.createElement(NI,{button:l.a.createElement(W.f,{loading:t,onClick:async function(){n(!0),await Object(T.send)("reset-budget-cache"),n(!1)}},"Reset budget cache")},l.a.createElement(W.y,null,l.a.createElement("strong",null,"Reset budget cache")," will clear all cached values for the budget and recalculate the entire budget. All values in the budget are cached for performance reasons, and if there is a bug in the cache you won't see correct values. There is no danger in resetting the cache. Hopefully you never have to do this."))}function iT({resetSync:e}){let t=aT(Object(o.useState)(!1),2),n=t[0],r=t[1];return l.a.createElement(NI,{button:l.a.createElement(W.f,{loading:n,onClick:async function(){r(!0),await e(),r(!1)}},"Reset sync")},l.a.createElement(W.y,null,l.a.createElement("strong",null,"Reset sync")," will remove all local data used to track changes for syncing, and create a fresh sync ID on our server. This file on other devices will have to be re-downloaded to use the new sync ID. Use this if there is a problem with syncing and you want to start fresh."))}var cT={gap:5};function sT(){const e=Object(kI.a)();return l.a.createElement(MI,{title:"About",style:cT},l.a.createElement(W.y,null,"Client version: v",window.Actual.ACTUAL_VERSION),l.a.createElement(W.y,null,"Server version: ",e))}var uT={color:$.a.n6};function dT({prefs:e}){return l.a.createElement(l.a.Fragment,null,l.a.createElement(W.y,null,"Budget ID: ",e.id),l.a.createElement(W.y,{style:uT},"Sync ID: ",e.groupId||"(none)"))}var fT={flexShrink:0,gap:30,maxWidth:600},pT={display:"none"},mT={color:"#999"};var yT=Object(zu.b)($.a.n10)(Object(s.b)(e=>({prefs:e.prefs.local,globalPrefs:e.prefs.global}),y)(function({loadPrefs:e,savePrefs:t,prefs:n,globalPrefs:r,pushModal:a,resetSync:i,closeBudget:c}){return Object(o.useEffect)(()=>{let t=Object(T.listen)("prefs-updated",()=>{e()});return e(),()=>t()},[e]),l.a.createElement(Zv,{title:"Settings"},l.a.createElement(W.B,{style:fT},l.a.createElement(MI,{title:"Budget",style:Object(lt.css)(Object(lt.media)(`(min-width: ${Db.a.breakpoint_medium})`,pT))},l.a.createElement(nS.b,null,l.a.createElement(nS.c,{title:"Name"}),l.a.createElement(W.n,{value:n.budgetName,disabled:!0,style:mT})),l.a.createElement(W.d,{onClick:c},"Close Budget")),l.a.createElement(sT,null),!Eb.a.isBrowser&&l.a.createElement(rT,{globalPrefs:r,saveGlobalPrefs:this.props.saveGlobalPrefs}),l.a.createElement(KI,{prefs:n,savePrefs:t}),l.a.createElement(GI,{prefs:n,pushModal:a}),l.a.createElement(HI,{prefs:n}),l.a.createElement(WI,null,l.a.createElement(dT,{prefs:n}),l.a.createElement(lT,null),l.a.createElement(iT,{resetSync:i}))))}));function gT(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return hT(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return hT(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function hT(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var bT={alignSelf:"center",color:$.a.g3},OT={alignSelf:"center",color:$.a.g3};var wT={alignItems:"flex-start"},ET={margin:0},vT={marginBottom:"1em"},jT={alignSelf:"center",margin:"15px 0"};function ST(){let e=gT(Object(o.useState)(!1),2),t=e[0],n=e[1],r=gT(Object(o.useState)(null),2),a=r[0],i=r[1];return l.a.createElement(Zv,{title:"Repair Split Transactions",modalSize:{width:650}},l.a.createElement(W.B,{style:wT},l.a.createElement(W.v,null,"This tool does two things:"),l.a.createElement(W.v,null,l.a.createElement("ul",{style:ET},l.a.createElement("li",{style:vT},"Ensures that deleted split transactions are fully deleted. In previous versions of the app, certain split transactions may appear deleted but not all of them are actually deleted. This causes the transactions list to look correct, but certain balances may be incorrect when filtering."),l.a.createElement("li",null,'Sync the payee and cleared flag of a split transaction to the main or "parent" transaction, if appropriate. The payee will only be set if it currently doesn\'t have one.'))),l.a.createElement(W.v,null,"If you see blank payees on splits or account balances (or any balances) are incorrect, this may fix it."),l.a.createElement(W.f,{primary:!0,loading:t,onClick:async function(){n(!0);let e=await Object(T.send)("tools/fix-split-transactions");i(e),n(!1)},style:jT},"Repair split transactions"),a&&function(e){let t=e.numBlankPayees,n=e.numCleared,r=e.numDeleted;if(0===t&&0===n&&0===r)return l.a.createElement(W.v,{style:bT},"No split transactions found needing repair.");let a="";return t>0&&(a+=`${t} split transactions with a blank payee`),n>0&&(""!==a&&(a+=", and "),a+=`${n} split transactions with the wrong cleared flag`),r>0&&(""!==a&&(a+=", and "),a+=`${r} split transactions that weren't properly deleted`),l.a.createElement(W.v,{style:OT},"Fixed ",a,".")}(a)))}function xT(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function CT(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?xT(Object(n),!0).forEach(function(t){kT(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):xT(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function kT(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function PT({path:e,component:t}){return l.a.createElement(u.b,{path:e,children:e=>l.a.createElement(W.B,{style:{flex:1,display:e.match?"flex":"none"}},l.a.createElement(t,e))})}function AT({isMobile:e,location:t}){return l.a.createElement(u.d,{location:t},l.a.createElement(u.b,{path:"/"},l.a.createElement(u.b,{path:"/",exact:!0,render:()=>l.a.createElement(u.a,{to:"/budget"})}),l.a.createElement(PT,{path:"/reports",component:tB}),l.a.createElement(PT,{path:"/budget",component:e?$v:fE}),l.a.createElement(u.b,{path:"/schedules",exact:!0,component:kB}),l.a.createElement(u.b,{path:"/schedule/edit",exact:!0,component:EI}),l.a.createElement(u.b,{path:"/schedule/edit/:id",component:EI}),l.a.createElement(u.b,{path:"/schedule/link",component:jI}),l.a.createElement(u.b,{path:"/schedule/discover",component:_B}),l.a.createElement(u.b,{path:"/schedule/posts-offline-notification",component:CI}),l.a.createElement(u.b,{path:"/rules",exact:!0,component:Jv}),l.a.createElement(u.b,{path:"/payees",exact:!0,component:XP}),l.a.createElement(u.b,{path:"/tools/fix-splits",exact:!0,component:ST}),l.a.createElement(u.b,{path:"/accounts/:id",exact:!0,children:t=>{const n=e?Xd:Nu;return t.match&&l.a.createElement(n,Object.assign({key:t.match.params.id},t))}}),l.a.createElement(u.b,{path:"/accounts",exact:!0,component:e?Df:Nu}),l.a.createElement(u.b,{path:"/settings",component:yT})))}function DT({isMobile:e}){let t=Object(u.h)(),n=ie(t,"locationPtr"),r=[t];for(;n;)r.unshift(n),n=ie(n,"locationPtr");let a=r[0],o=r.slice(1);return l.a.createElement(pn,{location:r[r.length-1]},l.a.createElement(AT,{location:a,isMobile:e}),o.map((t,n)=>l.a.createElement(qv,{key:t.key,type:"modal",current:n===o.length-1},l.a.createElement(AT,{location:t,isMobile:e}))))}var BT={alignItems:"center",color:"#8E8E8F",display:"flex",flexDirection:"column",textDecoration:"none"},IT={color:$.a.p5},TT={color:"inherit",marginBottom:"5px"};function MT({icon:e,name:t,path:n}){return l.a.createElement(d.b,{to:n,style:BT,activeStyle:IT},l.a.createElement(e,{width:22,height:22,style:TT}),t)}var RT=CT(CT({backgroundColor:"white",borderTop:`1px solid ${$.a.n10}`,bottom:0},$.c.shadow),{},{display:"flex",height:"80px",justifyContent:"space-around",paddingTop:10,width:"100%"});function _T(){return l.a.createElement("div",{style:RT},l.a.createElement(MT,{name:"Budget",path:"/budget",icon:te,isActive:!1}),l.a.createElement(MT,{name:"Accounts",path:"/accounts",icon:Z,isActive:!1}),l.a.createElement(MT,{name:"Settings",path:"/settings",icon:Y,isActive:!1}))}var LT={height:"100%",backgroundColor:$.a.n10},NT={flexDirection:"row",flex:1},FT={flex:1,display:"flex",flexDirection:"column",overflow:"hidden",position:"relative",width:"100%"},UT={WebkitAppRegion:"drag",position:"absolute",top:0,left:0,right:0,zIndex:1e3},zT={flex:1,display:"flex",overflow:"auto",position:"relative"};class WT extends l.a.Component{constructor(e){super(e),this.state={isMobile:Object(ne.a)(window.innerWidth)},this.history=Object(p.a)();let t=this.history.push;this.history.push=((e,n)=>t.call(this.history,e,function(e){return ae(ae({},e),{},{_version:le})}(n))),window.__history=this.history,_.setUndoState("url",window.location.href),this.cleanup=this.history.listen(e=>{_.setUndoState("url",window.location.href)}),this.handleWindowResize=this.handleWindowResize.bind(this)}handleWindowResize(){this.setState({isMobile:Object(ne.a)(window.innerWidth),windowWidth:window.innerWidth})}componentDidMount(){"/subscribe"===this.history.location.pathname&&this.history.push("/"),this.props.getAccounts().then(e=>{0===e.length&&this.history.push("/accounts")}),m.a.setScope("app"),setTimeout(async()=>{await this.props.sync(),Object(R.a)(this.props.addNotification,this.props.resetSync,this.history)},100),window.addEventListener("resize",this.handleWindowResize)}componentWillUnmount(){this.cleanup(),window.removeEventListener("resize",this.handleWindowResize)}render(){return l.a.createElement(u.c,{history:this.history},l.a.createElement(f.a,null,l.a.createElement(W.B,{style:LT},l.a.createElement(Gv,null),l.a.createElement(W.B,{style:NT},!this.state.isMobile&&l.a.createElement(Dw,null),l.a.createElement("div",{style:FT},!this.state.isMobile&&l.a.createElement(aE,{style:UT}),l.a.createElement("div",{style:zT},l.a.createElement(pP.a,null),l.a.createElement(Lf,null),l.a.createElement(DT,{isMobile:this.state.isMobile}),l.a.createElement(fP,{history:this.history})),this.state.isMobile&&l.a.createElement(u.d,null,l.a.createElement(u.b,{path:"/budget",component:_T}),l.a.createElement(u.b,{path:"/accounts",component:_T}),l.a.createElement(u.b,{path:"/settings",component:_T})))))))}}t.a=Object(s.b)(null,y)(function(e){let t=Object(o.useMemo)(()=>l.a.createElement(WT,e),[e]);return l.a.createElement(M,null,l.a.createElement(Rw,null,l.a.createElement(kw,null,l.a.createElement(U,null,l.a.createElement(k,null,l.a.createElement(E,null,l.a.createElement(i.a,{backend:c.a},t)))))))})},519:function(e,t,n){"use strict";var r=n(0),a=n.n(r),o=n(10),l=n(32),i=n(66),c=n(29),s=n(1),u=n(2),d=n(84),f=n(227),p=n(219),m=n(224),y=n(61),g=n(111),h=n(3),b=n(106);var O=n(125),w=n(136);function E(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function v(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?E(Object(n),!0).forEach(function(t){j(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):E(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function j(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function S(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return x(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return x(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function x(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function C(){let e=S(Object(r.useState)(!1),2),t=e[0],n=e[1],a=Object(l.g)(),o=Object(l.h)();return Object(r.useEffect)(()=>{!async function(){let e=e=>{o.pathname!==e?a.push(e):n(!0)};if(null==await Object(h.send)("get-server-url"))a.push("/config-server");else{let t=await Object(h.send)("subscribe-needs-bootstrap"),n=t.error,r=t.bootstrapped;n?a.push("/error",{error:n}):e(r?"/login":"/bootstrap")}}()},[a,o]),{checked:t}}var k={fontSize:40,fontWeight:700,color:u.a.p3,marginBottom:20};function P({text:e}){return a.a.createElement(s.y,{style:k},e)}var A=v(v({padding:10,fontSize:15,border:"none"},u.c.shadow),{},{":focus":v({border:"none"},u.c.shadow)});const D=a.a.forwardRef((e,t)=>a.a.createElement(s.n,Object.assign({},e,{style:[A,e.style]})));u.a.p4,u.a.n9,u.a.n9;u.a.n2;function B(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return I(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return I(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function I(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var T={maxWidth:500,marginTop:-30},M={fontSize:16,color:u.a.n2,lineHeight:1.5},R={marginTop:20,color:u.a.r4,borderRadius:4,fontSize:15},_={display:"flex",flexDirection:"row",marginTop:30},L={flex:1,marginRight:10},N={fontSize:15},F={fontSize:15,marginLeft:10},U={flexDirection:"row",flexFlow:"row wrap",justifyContent:"center",marginTop:15},z={color:u.a.n4},W={color:u.a.n4,margin:5,marginRight:15},$={color:u.a.n4,margin:5},G={marginLeft:15};function H(){var e;e=u.a.p5,Object(r.useEffect)(()=>{Object(b.a)(e)},[e,b.a]);let t=Object(o.c)(),n=Object(l.g)(),i=B(Object(r.useState)(""),2),c=i[0],d=i[1],f=Object(w.a)();Object(r.useEffect)(()=>{d(f)},[f]);let p=B(Object(r.useState)(!1),2),m=p[0],E=p[1],v=B(Object(r.useState)(null),2),j=v[0],S=v[1];async function x(){await Object(h.send)("set-server-url",{url:null}),await t(Object(g.b)()),n.push("/")}return a.a.createElement(a.a.Fragment,null,a.a.createElement(s.B,{style:T},a.a.createElement(P,{text:"Where's the server?"}),a.a.createElement(s.y,{style:M},f?a.a.createElement(a.a.Fragment,null,"Existing sessions will be logged out and you will log in to this server. We will validate that Actual is running at this URL."):a.a.createElement(a.a.Fragment,null,"There is no server configured. After running the server, specify the URL here to use the app. You can always change this later. We will validate that Actual is running at this URL.")),j&&a.a.createElement(s.y,{style:R},function(e){switch(e){case"network-failure":return"Server is not running at this URL. Make sure you have HTTPS set up properly.";default:return"Server does not look like an Actual server. Is it set up correctly?"}}(j)),a.a.createElement("form",{style:_,onSubmit:e=>{e.preventDefault(),async function(){if(""===c||m)return;S(null),E(!0);let e=(await Object(h.send)("set-server-url",{url:c})).error;if("network-failure"!==e||c.startsWith("http://")||c.startsWith("https://"))e?(E(!1),S(e)):(E(!1),await t(Object(g.c)()),n.push("/"));else{let e=(await Object(h.send)("set-server-url",{url:"https://"+c})).error;e?(d("https://"+c),S(e)):(await t(Object(g.c)()),n.push("/")),E(!1)}}()}},a.a.createElement(D,{autoFocus:!0,placeholder:"https://example.com",value:c,onChange:e=>d(e.target.value),style:L}),a.a.createElement(s.f,{primary:!0,loading:m,style:N},"OK"),f&&a.a.createElement(s.d,{bare:!0,type:"button",style:F,onClick:()=>n.goBack()},"Cancel")),a.a.createElement(s.B,{style:U},f?a.a.createElement(s.d,{bare:!0,style:z,onClick:x},"Stop using a server"):a.a.createElement(a.a.Fragment,null,a.a.createElement(s.d,{bare:!0,style:W,onClick:function(){d(window.location.origin)}},"Use ",window.location.origin.replace(/https?:\/\//,"")),a.a.createElement(s.d,{bare:!0,style:$,onClick:x},"Don't use a server"),(Object(O.a)()||Object(O.b)())&&a.a.createElement(s.d,{primary:!0,style:G,onClick:async function(){await Object(h.send)("set-server-url",{url:null}),await t(Object(y.d)({testMode:!0})),window.__history.push("/")}},"Create test file")))))}var q=n(135),Y=n(47),V=n(67);function K(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Q(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?K(Object(n),!0).forEach(function(t){Z(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):K(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Z(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var J=e=>a.a.createElement("svg",Object.assign({},e,{viewBox:"0 0 24 24",style:Q({color:"#242134"},e.style)}),a.a.createElement("path",{d:"M23.113 5.954L21.849 4.69l.881-.88a1.914 1.914 0 1 0-2.707-2.71L9.04 12.085a6.014 6.014 0 1 0 2.707 2.707l3.739-3.737.762.762a1.75 1.75 0 1 0 2.475-2.475l-.763-.762 1.416-1.417 1.264 1.263a1.788 1.788 0 0 0 2.473 0 1.751 1.751 0 0 0 0-2.472zm-16.737 8.5a3 3 0 1 1-3 3 3 3 0 0 1 3-2.998z",fill:"currentColor"}));function X(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function ee(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?X(Object(n),!0).forEach(function(t){te(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):X(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function te(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var ne=e=>a.a.createElement("svg",Object.assign({},e,{viewBox:"0 0 24 24",style:ee({color:"#242134"},e.style)}),a.a.createElement("path",{d:"M10.664 20.073a1.249 1.249 0 1 0-.507 2.447A10.739 10.739 0 1 0 2.4 16.1a.25.25 0 0 1-.084.3l-1 .726a1 1 0 0 0 .377 1.787l3.946.849a1.062 1.062 0 0 0 .21.022 1 1 0 0 0 .978-.79l.945-4.4a1 1 0 0 0-1.565-1.02l-1.361.989a.25.25 0 0 1-.386-.128 8.255 8.255 0 1 1 6.205 5.643z",fill:"currentColor"}));function re(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function ae(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?re(Object(n),!0).forEach(function(t){oe(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):re(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function oe(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var le=e=>a.a.createElement("svg",Object.assign({},e,{viewBox:"0 0 24 24",style:ae({color:"#242134"},e.style)}),a.a.createElement("path",{d:"M24 11.113a5.765 5.765 0 0 0-5.216-5.952.249.249 0 0 1-.191-.12 7.684 7.684 0 0 0-14.1 2.294.251.251 0 0 1-.227.2A4.643 4.643 0 0 0 .624 9.774 4.47 4.47 0 0 0 0 12.223a4.293 4.293 0 0 0 1.235 3.1 4.624 4.624 0 0 0 1.78 1.062.963.963 0 0 0 1.243-.86v-.026a.985.985 0 0 0-.658-1.033 2.58 2.58 0 0 1-.96-.572A2.374 2.374 0 0 1 2 12.109a2.588 2.588 0 0 1 2.586-2.588 2.7 2.7 0 0 1 .535.054.989.989 0 0 0 .811-.184 1 1 0 0 0 .392-.779c.085-5.736 8.293-7.372 10.818-2.044a.974.974 0 0 0 .941.57 3.733 3.733 0 0 1 3 1.309 3.888 3.888 0 0 1 .9 2.812 3.428 3.428 0 0 1-1.473 2.667.973.973 0 0 0-.4.964l.01.059a.968.968 0 0 0 1.525.608A5.4 5.4 0 0 0 24 11.113z",fill:"currentColor"}),a.a.createElement("path",{d:"M12.231 9.7a6.5 6.5 0 1 0 6.5 6.5 6.508 6.508 0 0 0-6.5-6.5zm3.124 4.155a.75.75 0 0 1 .15 1.05l-2.905 3.87a1.493 1.493 0 0 1-1.1.6h-.111a1.485 1.485 0 0 1-1.055-.443l-1.5-1.5a.75.75 0 0 1 1.066-1.06l1.3 1.3a.249.249 0 0 0 .376-.026L14.305 14a.751.751 0 0 1 1.05-.149z",fill:"currentColor"}));function ie(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function ce(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ie(Object(n),!0).forEach(function(t){se(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ie(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function se(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var ue=e=>a.a.createElement("svg",Object.assign({},e,{viewBox:"0 0 24 24",style:ce({color:"#242134"},e.style)}),a.a.createElement("path",{d:"M24 10.663A5.817 5.817 0 0 0 22.228 6.5a5.711 5.711 0 0 0-3.447-1.585.249.249 0 0 1-.191-.12 7.684 7.684 0 0 0-14.1 2.294.251.251 0 0 1-.227.2A4.59 4.59 0 0 0 0 11.859a4.324 4.324 0 0 0 1.236 3.21 5.529 5.529 0 0 0 3.605 1.377 1 1 0 0 0 .985-1.015 1.023 1.023 0 0 0-1.015-.985 3.3 3.3 0 0 1-2.172-.8A2.374 2.374 0 0 1 2 11.859a2.576 2.576 0 0 1 .954-2.007 2.6 2.6 0 0 1 2.167-.527 1 1 0 0 0 1.2-.919 5.686 5.686 0 0 1 10.82-2.088.959.959 0 0 0 .941.57 3.687 3.687 0 0 1 2.758 1.049A3.752 3.752 0 0 1 22 10.663a3.835 3.835 0 0 1-3.438 3.791 1 1 0 0 0 .132 1.992.961.961 0 0 0 .131-.009A5.807 5.807 0 0 0 24 10.663z",fill:"currentColor"}),a.a.createElement("path",{d:"M15.5 17.446h-1.75a.25.25 0 0 1-.25-.25v-7.25a1.5 1.5 0 1 0-3 0V17.2a.25.25 0 0 1-.25.25H8.5a1 1 0 0 0-.707 1.707l3.5 3.5a1 1 0 0 0 1.414 0l3.5-3.5a1 1 0 0 0-.707-1.707z",fill:"currentColor"})),de=n(102);function fe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function pe(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?fe(Object(n),!0).forEach(function(t){me(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):fe(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function me(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var ye=e=>a.a.createElement("svg",Object.assign({},e,{viewBox:"0 0 24 24",style:pe({color:"#242134"},e.style)}),a.a.createElement("path",{d:"M21.941 3.607L18.87.554A1.912 1.912 0 0 0 17.527 0H8.9A1.9 1.9 0 0 0 7 1.9V5H3.4a1.9 1.9 0 0 0-1.9 1.9v15.21A1.9 1.9 0 0 0 3.4 24h11.7a1.9 1.9 0 0 0 1.9-1.895V19h3.6a1.9 1.9 0 0 0 1.9-1.895V4.949a1.882 1.882 0 0 0-.559-1.342zM14.5 22H4a.5.5 0 0 1-.5-.5v-14A.5.5 0 0 1 4 7h7.784a.5.5 0 0 1 .35.143L14.85 9.8a.5.5 0 0 1 .15.357V21.5a.5.5 0 0 1-.5.5zm5.5-5h-2.75a.25.25 0 0 1-.25-.25v-6.8a1.892 1.892 0 0 0-.558-1.341L13.37 5.554A1.9 1.9 0 0 0 12.028 5H9.25A.25.25 0 0 1 9 4.75V2.5a.5.5 0 0 1 .5-.5l7.756-.026a.5.5 0 0 1 .351.143L20.35 4.8a.5.5 0 0 1 .15.357V16.5a.5.5 0 0 1-.5.5z",fill:"currentColor"}));function ge(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function he(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ge(Object(n),!0).forEach(function(t){be(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ge(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function be(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Oe=e=>a.a.createElement("svg",Object.assign({},e,{viewBox:"0 0 24 24",style:he({color:"#242134"},e.style)}),a.a.createElement("path",{d:"M3.566 15.457a1 1 0 0 0-.5-.844 2.248 2.248 0 0 1-.431-.329A2.371 2.371 0 0 1 2 12.5a2.588 2.588 0 0 1 2.585-2.588 2.645 2.645 0 0 1 .536.056A1 1 0 0 0 6.324 9c.081-5.754 8.3-7.363 10.818-2.045a.97.97 0 0 0 .941.571 3.7 3.7 0 0 1 3 1.3 3.874 3.874 0 0 1 .908 2.811 3.428 3.428 0 0 1-1.1 2.375 1.316 1.316 0 0 0-.42 1.089.912.912 0 0 0 1.476.628A5.408 5.408 0 0 0 24 11.418a5.763 5.763 0 0 0-5.22-5.866.25.25 0 0 1-.19-.12 7.685 7.685 0 0 0-14.1 2.3.251.251 0 0 1-.227.2 4.642 4.642 0 0 0-3.643 2.24A4.471 4.471 0 0 0 0 12.619a4.287 4.287 0 0 0 1.235 3.09 4.177 4.177 0 0 0 .852.645 1 1 0 0 0 1.478-.9z",fill:"currentColor"}),a.a.createElement("path",{d:"M18.5 15.8a6.5 6.5 0 1 0-6.5 6.5 6.508 6.508 0 0 0 6.5-6.5zm-7.25 1.25v-.55a1.257 1.257 0 0 1 .986-1.221 1.125 1.125 0 1 0-1.361-1.1.75.75 0 1 1-1.5 0 2.625 2.625 0 1 1 3.538 2.461.25.25 0 0 0-.163.234v.18a.75.75 0 0 1-1.5 0zM12 18.8a1 1 0 1 1-1 1 1 1 0 0 1 1-1z",fill:"currentColor"}));function we(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Ee(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?we(Object(n),!0).forEach(function(t){ve(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):we(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function ve(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function je(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return Se(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Se(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Se(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function xe(e){return"unknown"===e.state?"This is a cloud-based file but it's state is unknown because you are offline.":e.encryptKeyId?e.hasKey?"This file is encrypted and you have key to access it.":"This file is encrypted and you do not have the key for it.":null}function Ce({state:e,onDelete:t,onUpload:n,onClose:r,onDownload:o}){return a.a.createElement(s.s,{onMenuSelect:function(e){switch(r(),e){case"delete":t()}},items:[{name:"delete",text:"Delete"}]})}var ke={width:16,height:16},Pe={padding:0};function Ae({state:e,onDelete:t}){let n=je(Object(r.useState)(!1),2),o=n[0],l=n[1];return a.a.createElement(s.B,null,a.a.createElement(s.d,{bare:!0,onClick:e=>{e.stopPropagation(),l(!0)}},a.a.createElement(de.a,{style:ke})),o&&a.a.createElement(s.A,{position:"bottom-right",style:Pe,onClose:()=>l(!1)},a.a.createElement(Ce,{state:e,onDelete:t,onClose:()=>l(!1)})))}var De={width:18,height:18,color:"currentColor"},Be={marginLeft:5};function Ie({file:e}){let t,n,r;switch(e.state){case"unknown":t=Oe,n="Network unavailable",r=u.a.n7;break;case"remote":t=ue,n="Available for download";break;case"local":case"broken":t=ye,n="Local";break;default:t=le,n="Syncing"}return a.a.createElement(s.B,{style:{color:r,alignItems:"center",flexDirection:"row",marginTop:8}},a.a.createElement(t,{color:r,style:De}),a.a.createElement(s.y,{style:Be},n))}var Te=Ee(Ee({flexDirection:"row",justifyContent:"space-between",alignItems:"center"},u.c.shadow),{},{margin:10,padding:"12px 15px",backgroundColor:"white",borderRadius:6,flexShrink:0,cursor:"pointer",":hover":{backgroundColor:u.a.hover}}),Me={alignItems:"flex-start"},Re={fontSize:16,fontWeight:700},_e={flex:"0 0 auto",flexDirection:"row",alignItems:"center"};function Le({file:e,onSelect:t,onDelete:n}){let o=Object(r.useRef)(!1);return a.a.createElement(s.B,{onClick:()=>(async function(e){o.current||(o.current=!0,await t(e),o.current=!1)})(e),title:xe(e),style:[Te]},a.a.createElement(s.B,{style:Me},a.a.createElement(s.y,{style:[Re]},e.name),a.a.createElement(Ie,{file:e})),a.a.createElement(s.B,{style:_e},e.encryptKeyId&&a.a.createElement(J,{style:{width:13,height:13,marginRight:8,color:e.hasKey?u.a.b5:u.a.n8}}),a.a.createElement(Ae,{state:e.state,onDelete:()=>n(e)})))}var Ne={flex:1,maxHeight:310,overflow:"auto","& *":{userSelect:"none"}};class Fe extends a.a.Component{render(){const e=this.props,t=e.files,n=e.onSelect,r=e.onDelete;return a.a.createElement(s.B,{style:Ne},t.map((e,t)=>a.a.createElement(Le,{key:e.id||e.cloudFileId,file:e,onSelect:n,onDelete:r})))}}var Ue={padding:10,marginRight:5},ze={width:18,height:18,color:u.a.n1};function We({onRefresh:e}){let t=je(Object(r.useState)(!1),2),n=t[0],o=t[1];let l=n?V.a:ne;return a.a.createElement(s.d,{bare:!0,style:Ue,onClick:async function(){o(!0),await e(),o(!1)}},a.a.createElement(l,{color:u.a.n1,style:ze}))}var $e={boxShadow:"none",backgroundColor:"transparent"},Ge={flex:1},He={margin:20},qe={position:"absolute",right:0,top:0,bottom:0,justifyContent:"center",marginRight:5},Ye={flexDirection:"row",justifyContent:"flex-end",padding:25,paddingLeft:5},Ve={marginLeft:10,color:u.a.n4},Ke={marginLeft:15},Qe={marginLeft:15};var Ze=class extends a.a.Component{constructor(...e){super(...e),this.creating=!1,this.onCreate=(({testMode:e}={})=>{this.creating||(this.creating=!0,this.props.actions.createBudget({testMode:e}))})}render(){let e=this.props,t=e.modalProps,n=e.files,r=void 0===n?[]:n,o=e.actions,l=e.onDownload;return a.a.createElement(s.t,Object.assign({},t,{noAnimation:!0,showHeader:!1,showOverlay:!1,padding:0,style:$e}),()=>a.a.createElement(s.B,{style:Ge},a.a.createElement(s.B,null,a.a.createElement(s.y,{style:[u.c.veryLargeText,He]},"Files"),a.a.createElement(s.B,{style:qe},a.a.createElement(We,{onRefresh:()=>{o.getUserData(),o.loadAllFiles()}}))),a.a.createElement(Fe,{files:r,actions:o,onSelect:e=>{"remote"===e.state?l(e.cloudFileId):o.loadBudget(e.id)},onDelete:e=>o.pushModal("delete-budget",{file:e})}),a.a.createElement(s.B,{style:Ye},a.a.createElement(s.d,{bare:!0,style:Ve,onClick:e=>{e.preventDefault(),o.pushModal("import")}},"Import file"),a.a.createElement(s.d,{primary:!0,onClick:()=>this.onCreate(),style:Ke},"Create new file"),(Object(O.a)()||Object(O.b)())&&a.a.createElement(s.d,{primary:!0,onClick:()=>this.onCreate({testMode:!0}),style:Qe},"Create test file"))))}};function Je(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return Xe(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Xe(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Xe(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var et={padding:15,paddingTop:0,paddingBottom:25,width:500,lineHeight:"1.5em"},tt={backgroundColor:u.a.r4,alignSelf:"center",border:0,marginTop:10,padding:"10px 30px",fontSize:14},nt={marginTop:20},rt={alignSelf:"center",marginTop:10,padding:"10px 30px",fontSize:14},at={color:u.a.r4,borderColor:u.a.r4},ot={border:0,backgroundColor:u.a.r4};function lt({modalProps:e,actions:t,file:n}){let o=Je(Object(r.useState)(null),2),l=o[0],i=o[1];async function c(){i("cloud"),await t.deleteBudget(n.id,n.cloudFileId),i(null),e.onBack()}async function u(){i("local"),await t.deleteBudget(n.id),i(null),e.onBack()}let d=n.cloudFileId&&"broken"!==n.state;return a.a.createElement(s.t,Object.assign({},e,{title:"Delete "+n.name,padding:0,showOverlay:!1,onClose:e.onBack}),()=>a.a.createElement(s.B,{style:et},d&&a.a.createElement(a.a.Fragment,null,a.a.createElement(s.y,null,"This is a ",a.a.createElement("strong",null,"hosted file")," which we store to make it available for download on any device. You can delete it from our servers which will remove it from all of your devices."),a.a.createElement(s.f,{primary:!0,loading:"cloud"===l,style:tt,onClick:c},"Delete file from all devices")),n.id&&a.a.createElement(a.a.Fragment,null,a.a.createElement(s.y,{style:[d&&nt]},d?a.a.createElement(s.y,null,"You can also delete just the local copy. This will remove all local data and the file will be listed as available for download."):a.a.createElement(s.y,null,"broken"===n.state?a.a.createElement(s.y,null,"This is a ",a.a.createElement("strong",null,"hosted file")," but it was created by another user. You can only delete the local copy."):a.a.createElement(s.y,null,"This a ",a.a.createElement("strong",null,"local file")," which is not stored on our servers.")," ","Deleting it will remove it and all of its backup permanently.")),a.a.createElement(s.f,{primary:!d,loading:"local"===l,style:[rt,d?at:ot],onClick:u},"Delete file locally"))))}function it(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return ct(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ct(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ct(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var st={width:400},ut={lineHeight:1.5,marginTop:20},dt={color:u.a.r4,marginBottom:15},ft={fontSize:25,fontWeight:700,marginBottom:20},pt={fontWeight:700},mt={color:u.a.n5},yt={fontWeight:700},gt={color:u.a.n5},ht={fontWeight:700},bt={color:u.a.n5},Ot={flexDirection:"row",marginTop:20,alignItems:"center"},wt={flex:1},Et={marginRight:10};var vt=function({modalProps:e,actions:t}){const n=it(Object(r.useState)(!1),1)[0];function o(e){switch(e){case"ynab4":t.pushModal("import-ynab4");break;case"ynab5":t.pushModal("import-ynab5");break;case"actual":t.pushModal("import-actual")}}let l={padding:10,border:"1px solid "+u.a.border,borderRadius:6,marginBottom:10,display:"block"};return a.a.createElement(s.t,Object.assign({},e,{noAnimation:!0,showHeader:!1,showOverlay:!1,style:st}),()=>a.a.createElement(s.B,{style:[u.c.smallText,ut]},n&&a.a.createElement(s.c,{style:dt},function(e){switch(e){case"not-ynab4":return"This file is not valid. Please select a .ynab4 file";default:return"An unknown error occurred while importing. Sorry! We have been notified of this issue."}}(n)),a.a.createElement(s.B,null,a.a.createElement(s.B,{style:ft},"Import from:"),a.a.createElement(s.B,null,a.a.createElement(s.d,{style:l,onClick:()=>o("ynab4")},a.a.createElement("span",{style:pt},"YNAB4"),a.a.createElement(s.B,{style:mt},"The old unsupported desktop app")),a.a.createElement(s.d,{style:l,onClick:()=>o("ynab5")},a.a.createElement("span",{style:yt},"nYNAB"),a.a.createElement(s.B,{style:gt},a.a.createElement("div",null,"The newer web app"))),a.a.createElement(s.d,{style:l,onClick:()=>o("actual")},a.a.createElement("span",{style:ht},"Actual"),a.a.createElement(s.B,{style:bt},a.a.createElement("div",null,"Import a file exported from Actual"))))),a.a.createElement(s.B,{style:Ot},a.a.createElement(s.B,{style:wt}),a.a.createElement(s.d,{style:Et,onClick:()=>e.onBack()},"Back"))))};function jt(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return St(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return St(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function St(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var xt={width:400},Ct={lineHeight:1.5,marginTop:20},kt={color:u.a.r4,marginBottom:15},Pt={"& > div":{lineHeight:"1.7em"}},At={alignSelf:"center"},Dt={flexDirection:"row",marginTop:20,alignItems:"center"},Bt={flex:1},It={marginRight:10};var Tt=function({modalProps:e,availableImports:t}){const n=Object(o.c)(),l=jt(Object(r.useState)(!1),2),i=l[0],c=l[1],d=jt(Object(r.useState)(!1),2),f=d[0],p=d[1];async function m(){const e=await window.Actual.openFileDialog({properties:["openFile"],filters:[{name:"actual",extensions:["zip"]}]});if(e){p(!0),c(!1);try{await n(Object(y.h)(e[0],"actual"))}catch(t){c(t.message)}finally{p(!1)}}}return a.a.createElement(s.t,Object.assign({},e,{showHeader:!1,showOverlay:!1,noAnimation:!0,style:xt}),()=>a.a.createElement(s.B,{style:[u.c.smallText,Ct]},i&&a.a.createElement(s.c,{style:kt},function(e){switch(e){case"parse-error":return"Unable to parse file. Please select a JSON file exported from nYNAB.";case"not-ynab5":return"This file is not valid. Please select a JSON file exported from nYNAB.";default:return"An unknown error occurred while importing. Sorry! We have been notified of this issue."}}(i)),a.a.createElement(s.B,{style:Pt},a.a.createElement(s.v,null,'You can import data from another Actual account or instance. First export your data from a different account, and it will give you a compressed file. This file is simple zip file that contains the "db.sqlite" and "metadata.json" files.'),a.a.createElement(s.v,null,"Select one of these compressed files and import it here."),a.a.createElement(s.B,{style:At},a.a.createElement(s.f,{loading:f,primary:!0,onClick:m},"Select file..."))),a.a.createElement(s.B,{style:Dt},a.a.createElement(s.B,{style:Bt}),a.a.createElement(s.d,{style:It,onClick:()=>e.onBack()},"Back"))))};function Mt(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return Rt(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Rt(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Rt(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var _t={width:400},Lt={lineHeight:1.5,marginTop:20},Nt={color:u.a.r4,marginBottom:15},Ft={alignItems:"center"},Ut={flexDirection:"row",marginTop:20,alignItems:"center"},zt={flex:1},Wt={marginRight:10};var $t=function({modalProps:e,availableImports:t}){const n=Object(o.c)(),l=Mt(Object(r.useState)(!1),2),i=l[0],c=l[1],d=Mt(Object(r.useState)(!1),2),f=d[0],p=d[1];async function m(){const e=await window.Actual.openFileDialog({properties:["openFile"],filters:[{name:"ynab",extensions:["zip"]}]});if(e){p(!0),c(!1);try{await n(Object(y.h)(e[0],"ynab4"))}catch(t){c(t.message)}finally{p(!1)}}}return a.a.createElement(s.t,Object.assign({},e,{showHeader:!1,showOverlay:!1,noAnimation:!0,style:_t}),()=>a.a.createElement(s.B,{style:[u.c.smallText,Lt]},i&&a.a.createElement(s.c,{style:Nt},function(e){switch(e){case"not-ynab4":return"This file is not valid. Please select a compressed ynab4 zip file.";default:return"An unknown error occurred while importing. Sorry! We have been notified of this issue."}}(i)),a.a.createElement(s.B,{style:Ft},a.a.createElement(s.v,null,'To import data from YNAB4, locate where your YNAB4 data is stored. It is usually in your Documents folder under YNAB. Your data is a directory inside that with the ".ynab4" suffix.'),a.a.createElement(s.v,null,"When you've located your data,"," ",a.a.createElement("strong",null,"compress it into a zip file"),'. On macOS, right-click the folder and select "Compress". On Windows, right-click and select "Send to > Compressed (zipped) folder". Upload the zipped folder for importing.'),a.a.createElement(s.B,null,a.a.createElement(s.f,{loading:f,primary:!0,onClick:m},"Select zip file..."))),a.a.createElement(s.B,{style:Ut},a.a.createElement(s.B,{style:zt}),a.a.createElement(s.d,{style:Wt,onClick:()=>e.onBack()},"Back"))))};function Gt(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return Ht(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Ht(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ht(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var qt={width:400},Yt={lineHeight:1.5,marginTop:20},Vt={color:u.a.r4,marginBottom:15},Kt={alignItems:"center","& > div":{lineHeight:"1.7em"}},Qt={flexDirection:"row",marginTop:20,alignItems:"center"},Zt={flex:1},Jt={marginRight:10};var Xt=function({modalProps:e,availableImports:t}){const n=Object(o.c)(),l=Gt(Object(r.useState)(!1),2),i=l[0],c=l[1],d=Gt(Object(r.useState)(!1),2),f=d[0],p=d[1];async function m(){const e=await window.Actual.openFileDialog({properties:["openFile"],filters:[{name:"ynab",extensions:["json"]}]});if(e){p(!0),c(!1);try{await n(Object(y.h)(e[0],"ynab5"))}catch(t){c(t.message)}finally{p(!1)}}}return a.a.createElement(s.t,Object.assign({},e,{showHeader:!1,showOverlay:!1,noAnimation:!0,style:qt}),()=>a.a.createElement(s.B,{style:[u.c.smallText,Yt]},i&&a.a.createElement(s.c,{style:Vt},function(e){switch(e){case"parse-error":return"Unable to parse file. Please select a JSON file exported from nYNAB.";case"not-ynab5":return"This file is not valid. Please select a JSON file exported from nYNAB.";default:return"An unknown error occurred while importing. Sorry! We have been notified of this issue."}}(i)),a.a.createElement(s.B,{style:Kt},a.a.createElement(s.v,null,a.a.createElement(s.i,{asAnchor:!0,href:"https://actualbudget.github.io/docs/Getting-Started/migration/nynab",target:"_blank"},"Read here")," ","for instructions on how to migrate your data from YNAB. You need to export your data as JSON, and that page explains how to do that."),a.a.createElement(s.v,null,"Once you have exported your data, select the file and Actual will import it. Budgets may not match up exactly because things work slightly differently, but you should be able to fix up any problems."),a.a.createElement(s.B,null,a.a.createElement(s.f,{loading:f,primary:!0,onClick:m},"Select file..."))),a.a.createElement(s.B,{style:Qt},a.a.createElement(s.B,{style:Zt}),a.a.createElement(s.d,{style:Jt,onClick:()=>e.onBack()},"Back"))))},en=n(221),tn=n(222),nn=n(223);function rn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function an(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?rn(Object(n),!0).forEach(function(t){on(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):rn(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function on(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var ln={flex:1,padding:50};var cn=Object(o.b)(e=>({modalStack:e.modals.modalStack,isHidden:e.modals.isHidden,budgets:e.budgets.budgets,availableImports:e.budgets.availableImports,globalPrefs:e.prefs.global,allFiles:e.budgets.allFiles,isLoggedIn:!!e.user.data}),e=>({actions:Object(Y.b)(c,e)}))(function({modalStack:e,isHidden:t,allFiles:n,availableImports:r,globalPrefs:o,isLoggedIn:l,actions:i}){let c=e.map(({name:o,options:c},s)=>{const u={onClose:i.closeModal,onPush:i.pushModal,onBack:i.popModal,isCurrent:s===e.length-1,isHidden:t,stackIndex:s};switch(o){case"select-budget":return a.a.createElement(Ze,{key:o,modalProps:u,files:n,actions:i,isLoggedIn:l,onDownload:e=>i.downloadBudget(e)});case"delete-budget":return a.a.createElement(lt,{key:o,modalProps:u,actions:i,file:c.file});case"import":return a.a.createElement(vt,{key:o,modalProps:u,actions:i,availableImports:r});case"import-ynab4":return a.a.createElement($t,{key:o,modalProps:u,actions:i});case"import-ynab5":return a.a.createElement(Xt,{key:o,modalProps:u,actions:i});case"import-actual":return a.a.createElement(Tt,{key:o,modalProps:u,actions:i});case"load-backup":return a.a.createElement(q.a,{key:o,initialState:{backups:[]},didMount:async({setState:e})=>{e({backups:await Object(h.send)("backups-get",{id:c.budgetId})})}},({state:e})=>a.a.createElement(en.a,{budgetId:c.budgetId,modalProps:an(an({},u),{},{onClose:i.popModal}),backupDisabled:!0,actions:i,backups:e.backups}));case"create-encryption-key":return a.a.createElement(tn.a,{key:o,modalProps:u,actions:i,options:c});case"fix-encryption-key":return a.a.createElement(nn.a,{key:o,modalProps:u,actions:i,options:c});default:throw new Error("Unknown modal: "+o)}});return a.a.createElement(s.B,{style:ln},c)}),sn={position:"absolute",bottom:0,left:0,right:0,justifyContent:"center",flexDirection:"row",marginBottom:15,zIndex:5e3},un={marginLeft:15};function dn(){const e=Object(w.a)();return a.a.createElement(s.B,{style:sn},a.a.createElement(s.y,null,e?a.a.createElement(a.a.Fragment,null,"Using server: ",a.a.createElement("strong",null,e)):a.a.createElement("strong",null,"No server configured")),a.a.createElement(s.b,{bare:!0,to:"/config-server",style:un},"Change"))}function fn(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return pn(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return pn(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function pn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var mn={display:"flex",flexDirection:"column",alignItems:"stretch",marginTop:30},yn={marginTop:10},gn={flexDirection:"row",alignItems:"center",fontSize:15,marginTop:20},hn={userSelect:"none"},bn={flex:1};function On({buttons:e,onSetPassword:t,onError:n}){let o=fn(Object(r.useState)(""),2),l=o[0],i=o[1],c=fn(Object(r.useState)(""),2),u=c[0],d=c[1],f=fn(Object(r.useState)(!1),2),p=f[0],m=f[1],y=fn(Object(r.useState)(!1),2),g=y[0],h=y[1];async function b(e){e.preventDefault(),g||(l===u?(h(!0),await t(l),h(!1)):n("password-match"))}return a.a.createElement("form",{style:mn,onSubmit:b},a.a.createElement(D,{autoFocus:!0,placeholder:"Password",type:p?"text":"password",value:l,onChange:e=>i(e.target.value),onEnter:b}),a.a.createElement(D,{placeholder:"Confirm password",type:p?"text":"password",value:u,onChange:e=>d(e.target.value),style:yn,onEnter:b}),a.a.createElement(s.B,{style:gn},a.a.createElement("label",{style:hn},a.a.createElement("input",{type:"checkbox",onChange:function(e){m(e.target.checked)}})," Show password"),a.a.createElement(s.B,{style:bn}),e,a.a.createElement(s.f,{primary:!0,loading:g},"OK")))}function wn(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return En(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return En(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function En(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var vn={maxWidth:450,marginTop:-30},jn={fontSize:16,color:u.a.n2,lineHeight:1.4},Sn={marginTop:20,color:u.a.r4,borderRadius:4,fontSize:15},xn={fontSize:15,color:u.a.b4,marginRight:15};function Cn(){let e=Object(o.c)(),t=wn(Object(r.useState)(null),2),n=t[0],l=t[1];return C().checked?a.a.createElement(a.a.Fragment,null,a.a.createElement(s.B,{style:vn},a.a.createElement(P,{text:"Bootstrap this Actual instance"}),a.a.createElement(s.y,{style:jn},"Set a password for this server instance"),n&&a.a.createElement(s.y,{style:Sn},function(e){switch(e){case"invalid-password":return"Password cannot be empty";case"password-match":return"Passwords do not match";case"network-failure":return"Unable to contact the server";default:return"Whoops, an error occurred on our side! We'll try to get it fixed soon."}}(n)),a.a.createElement(On,{buttons:a.a.createElement(s.d,{bare:!0,style:xn,onClick:async function(){await e(Object(y.d)({demoMode:!0}))}},"Try Demo"),onSetPassword:async function(t){l(null);let n=(await Object(h.send)("subscribe-bootstrap",{password:t})).error;n?l(n):e(Object(g.b)())},onError:l}))):null}function kn(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return Pn(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Pn(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Pn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var An={maxWidth:500,marginTop:-30},Dn={fontSize:16,color:u.a.n2,lineHeight:1.4},Bn={marginTop:20,color:u.a.r4,borderRadius:4,fontSize:15},In={marginTop:20,color:u.a.g4,borderRadius:4,fontSize:15},Tn={fontSize:15,marginRight:10};function Mn(){let e=Object(l.g)(),t=kn(Object(r.useState)(null),2),n=t[0],o=t[1],i=kn(Object(r.useState)(null),2),c=i[0],u=i[1];return a.a.createElement(a.a.Fragment,null,a.a.createElement(s.B,{style:An},a.a.createElement(P,{text:"Change server password"}),a.a.createElement(s.y,{style:Dn},"This will change the password for this server instance. All existing sessions will stay logged in."),n&&a.a.createElement(s.y,{style:Bn},function(e){switch(e){case"invalid-password":return"Password cannot be empty";case"password-match":return"Passwords do not match";case"network-failure":return"Unable to contact the server";default:return"Internal server error"}}(n)),c&&a.a.createElement(s.y,{style:In},c),a.a.createElement(On,{buttons:a.a.createElement(s.d,{bare:!0,type:"button",style:Tn,onClick:()=>e.push("/")},"Cancel"),onSetPassword:async function(t){o(null);let n=(await Object(h.send)("subscribe-change-password",{password:t})).error;n?o(n):(u("Password successfully changed"),setTimeout(()=>{e.push("/")},1500))},onError:o})))}var Rn={alignItems:"center"},_n={fontSize:16,color:u.a.n2,lineHeight:1.4},Ln={marginTop:20};function Nn(){let e=Object(l.g)(),t=(Object(l.h)().state||{}).error;return a.a.createElement(s.B,{style:Rn},a.a.createElement(s.y,{style:_n},function(e){switch(e){case"network-failure":return"Unable to access server. Make sure the configured URL for the server is accessible.";default:return"Server returned an error while checking its status."}}(t)),a.a.createElement(s.d,{onClick:function(){e.push("/")},style:Ln},"Try again"))}function Fn(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return Un(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Un(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Un(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var zn={maxWidth:450,marginTop:-30},Wn={fontSize:16,color:u.a.n2,lineHeight:1.4},$n={marginTop:20,color:u.a.r4,borderRadius:4,fontSize:15},Gn={display:"flex",flexDirection:"row",marginTop:30},Hn={flex:1,marginRight:10},qn={fontSize:15},Yn={flexDirection:"row",justifyContent:"center",marginTop:15},Vn={fontSize:15,color:u.a.b4,marginLeft:10};function Kn(){let e=Object(o.c)(),t=Fn(Object(r.useState)(""),2),n=t[0],l=t[1],i=Fn(Object(r.useState)(!1),2),c=i[0],u=i[1],d=Fn(Object(r.useState)(null),2),f=d[0],p=d[1];return C().checked?a.a.createElement(a.a.Fragment,null,a.a.createElement(s.B,{style:zn},a.a.createElement(P,{text:"Sign in to this Actual instance"}),a.a.createElement(s.y,{style:Wn},"If you lost your password, you likely still have access to your server to manually reset it."),f&&a.a.createElement(s.y,{style:$n},function(e){switch(e){case"invalid-password":return"Invalid password";case"network-failure":return"Unable to contact the server";default:return"Whoops, an error occurred on our side! We'll try to get it fixed soon."}}(f)),a.a.createElement("form",{style:Gn,onSubmit:async function(t){if(t.preventDefault(),""===n||c)return;p(null),u(!0);let r=(await Object(h.send)("subscribe-sign-in",{password:n})).error;u(!1),r?p(r):e(Object(g.b)())}},a.a.createElement(D,{autoFocus:!0,placeholder:"Password",type:"password",onChange:e=>l(e.target.value),style:Hn}),a.a.createElement(s.f,{primary:!0,loading:c,style:qn},"Sign in")),a.a.createElement(s.B,{style:Yn},a.a.createElement(s.d,{bare:!0,style:Vn,onClick:async function(){await e(Object(y.d)({demoMode:!0}))}},"Try Demo \u2192")))):null}function Qn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Zn(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Jn={color:u.a.n7,":hover":{color:u.a.n2},margin:15,marginLeft:17,[`@media (min-width: ${d.a.breakpoint_medium})`]:{position:"absolute",bottom:0,right:0,marginLeft:15,marginRight:17,zIndex:5001}};function Xn(){const e=Object(f.a)();return a.a.createElement(s.y,{style:Jn,href:"https://actualbudget.com/blog/"+window.Actual.ACTUAL_VERSION},`App: v${window.Actual.ACTUAL_VERSION} | Server: ${e}`)}var er={height:"100%",minHeight:500},tr={position:"absolute",top:0,left:0,right:0,height:40,WebkitAppRegion:"drag"},nr={position:"absolute",bottom:40,right:15},rr={position:"relative",left:"initial",right:"initial"},ar={alignItems:"center",bottom:0,justifyContent:"center",left:0,padding:20,position:"absolute",right:0,top:0},or={position:"absolute",top:0,right:0,padding:"6px 10px",zIndex:4e3},lr={padding:"4px 7px"};t.a=Object(o.b)(e=>{let t=e.modals.modalStack;return{files:e.budgets.allFiles,userData:e.user.data,managerHasInitialized:e.app.managerHasInitialized,loadingText:e.app.loadingText,currentModals:t.map(e=>e.name)}},c)(class extends a.a.Component{constructor(e){super(e),this.mounted=!0,this.history=Object(i.a)(),window.__history=this.history}async componentDidMount(){let e=null!=this.props.loadingText;this.props.managerHasInitialized?this.showModal():e||this.props.setAppState({loadingText:""}),await this.props.getUserData()&&await this.props.loadAllFiles(),this.props.setAppState(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Qn(Object(n),!0).forEach(function(t){Zn(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Qn(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}({managerHasInitialized:!0},e?null:{loadingText:null}))}async showModal(){if(this.props.managerHasInitialized){let e=this.props,t=e.currentModals,n=e.userData,r=e.files,a=e.replaceModal;r&&n&&(r.length>0?t.includes("select-budget")||a("select-budget"):this.props.createBudget())}}componentDidUpdate(e){this.mounted&&(this.props.managerHasInitialized===e.managerHasInitialized&&this.props.files===e.files&&this.props.userData===e.userData||this.showModal())}componentWillUnmount(){this.mounted=!1}render(){let e=this.props,t=e.userData,n=e.managerHasInitialized,r=e.loadingText;if(!n)return null;let o=null!=r;return a.a.createElement(l.c,{history:this.history},a.a.createElement(s.B,{style:er},a.a.createElement(s.B,{style:tr}),a.a.createElement(s.B,{style:nr},a.a.createElement(m.a,{style:rr})),!o&&a.a.createElement(s.B,{style:ar},t?a.a.createElement(a.a.Fragment,null,a.a.createElement(l.d,null,a.a.createElement(l.b,{exact:!0,path:"/config-server",component:H}),a.a.createElement(l.b,{exact:!0,path:"/change-password",component:Mn}),a.a.createElement(l.b,{exact:!0,path:"/",component:cn}),a.a.createElement(l.b,{path:"/",render:()=>a.a.createElement(l.a,{to:"/"})})),a.a.createElement(s.B,{style:or},a.a.createElement(l.d,null,a.a.createElement(l.b,{exact:!0,path:"/config-server",component:null}),a.a.createElement(l.b,{exact:!0,path:"/",render:()=>a.a.createElement(p.a,{style:lr})})))):a.a.createElement(l.d,null,a.a.createElement(l.b,{exact:!0,path:"/login",component:Kn}),a.a.createElement(l.b,{exact:!0,path:"/error",component:Nn}),a.a.createElement(l.b,{exact:!0,path:"/config-server",component:H}),a.a.createElement(l.b,{exact:!0,path:"/bootstrap",component:Cn}),a.a.createElement(l.b,{path:"/",render:()=>a.a.createElement(l.a,{to:"/bootstrap"})}))),a.a.createElement(l.d,null,a.a.createElement(l.b,{exact:!0,path:"/config-server",component:null}),a.a.createElement(l.b,{exact:!0,path:"/",component:dn})),a.a.createElement(Xn,null)))}})},566:function(e,t,n){"use strict";n.r(t);n(331),n(332);var r=n(0),a=n.n(r),o=n(21),l=n.n(o),i=n(10),c=n(47),s=n(517),u=n(29),d=n(11),f=n(14);function p(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function m(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?p(Object(n),!0).forEach(function(t){y(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):p(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function y(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const g={banks:[],failedAccounts:new Map,accountsSyncing:null};function h(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function b(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?h(Object(n),!0).forEach(function(t){O(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):h(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function O(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const w={loadingText:null,updateInfo:null,showUpdateNotification:!0,managerHasInitialized:!1,lastUndoState:{current:null},lastSplitState:{current:null}};function E(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function v(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?E(Object(n),!0).forEach(function(t){j(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):E(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function j(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function S(e,t){let n=new Set,r=e.map(e=>{if(e.cloudFileId){if(null==t)return v(v({},e),{},{state:"unknown"});let r=t.find(t=>e.cloudFileId===t.fileId);return r?(n.add(r.fileId),r.groupId===e.groupId?v(v({},e),{},{name:r.name,deleted:r.deleted,encryptKeyId:r.encryptKeyId,hasKey:r.hasKey,state:"synced"}):v(v({},e),{},{name:r.name,deleted:r.deleted,encryptKeyId:r.encryptKeyId,hasKey:r.hasKey,state:"detached"})):v(v({},e),{},{state:"broken"})}return v(v({},e),{},{state:"local"})}),a=((o=r.concat((t||[]).filter(e=>!n.has(e.fileId)).map(e=>({cloudFileId:e.fileId,groupId:e.groupId,name:e.name,deleted:e.deleted,encryptKeyId:e.encryptKeyId,hasKey:e.hasKey,state:"remote"}))).filter(e=>!e.deleted)).sort((e,t)=>{let n=e.name.toLowerCase(),r=t.name.toLowerCase(),a=n<r?-1:n>r?1:0;return 0===a&&(a=e.id<t.id?-1:e.id>t.id?1:0),a}),o);var o;return a.filter(e=>"broken"!==e.state).concat(a.filter(e=>"broken"===e.state))}const x={budgets:[],availableImports:[],remoteFiles:null,allFiles:null};function C(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function k(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?C(Object(n),!0).forEach(function(t){P(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):C(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function P(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const A={selectedCell:null};var D=function(e=A,t){switch(t.type){case d.a.DEBUG_CELL:return k(k({},e),{},{selectedCell:t.sheet?{sheet:t.sheet,name:t.name}:null})}return e};function B(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function I(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?B(Object(n),!0).forEach(function(t){T(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):B(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function T(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const M={modalStack:[],isHidden:!1};var R=function(e=M,t){switch(t.type){case d.a.PUSH_MODAL:return I(I({},e),{},{modalStack:[...e.modalStack,{name:t.name,options:t.options}]});case d.a.REPLACE_MODAL:return I(I({},e),{},{modalStack:[{name:t.name,options:t.options}]});case d.a.POP_MODAL:return I(I({},e),{},{modalStack:e.modalStack.slice(0,-1)});case d.a.CLOSE_MODAL:return I(I({},e),{},{modalStack:[]});case d.a.HIDE_MODALS:return I(I({},e),{},{isHidden:!0});case d.a.SHOW_MODALS:return I(I({},e),{},{isHidden:!1});case d.a.SET_APP_STATE:if("loadingText"in t.state)return I(I({},e),{},{isHidden:null!=t.state.loadingText});break;case d.a.SIGN_OUT:return M}return e};function _(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function L(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?_(Object(n),!0).forEach(function(t){N(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):_(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function N(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const F={notifications:[]};var U=n(9);function z(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function W(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?z(Object(n),!0).forEach(function(t){$(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):z(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function $(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const G={local:null,global:null};function H(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function q(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?H(Object(n),!0).forEach(function(t){Y(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):H(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Y(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const V={};var K=n(82);function Q(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Z(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Q(Object(n),!0).forEach(function(t){J(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Q(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function J(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const X={stage:null,fromYNAB:!1};function ee(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function te(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ee(Object(n),!0).forEach(function(t){ne(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ee(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function ne(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const re={data:null};var ae={app:function(e=w,t){switch(t.type){case d.a.SET_APP_STATE:return b(b({},e),t.state);case d.a.SET_LAST_UNDO_STATE:return e.lastUndoState.current=t.undoState,e;case d.a.SET_LAST_SPLIT_STATE:return e.lastSplitState.current=t.splitState,e}return e},queries:K.a,account:function(e=g,t){switch(t.type){case d.a.LOAD_BANKS:return m(m({},e),{},{banks:t.banks});case d.a.SET_ACCOUNTS_SYNCING:return m(m({},e),{},{accountsSyncing:t.name});case d.a.ACCOUNT_SYNC_STATUS:{let n=new Map(e.failedAccounts);return t.failed?n.set(t.id,{type:t.errorType,code:t.errorCode}):n.delete(t.id),m(m({},e),{},{failedAccounts:n})}case d.a.ACCOUNT_SYNC_FAILURES:{let n=new Map;return t.syncErrors.forEach(e=>{n.set(e.id,{type:e.type,code:e.code})}),m(m({},e),{},{failedAccounts:n})}}return e},debug:D,profile:function(e=V,t){switch(t.type){case d.a.SET_PROFILE:return q(q({},e),t.profile)}return e},prefs:function(e=G,t){switch(t.type){case d.a.SET_PREFS:return t.prefs&&Object(U.o)(t.prefs.numberFormat||"comma-dot"),{local:t.prefs,global:t.globalPrefs};case d.a.MERGE_LOCAL_PREFS:return t.prefs.numberFormat&&Object(U.o)(t.prefs.numberFormat),W(W({},e),{},{local:W(W({},e.local),t.prefs)});case d.a.MERGE_GLOBAL_PREFS:return W(W({},e),{},{global:W(W({},e.global),t.globalPrefs)})}return e},modals:R,notifications:function(e=F,t){switch(t.type){case d.a.ADD_NOTIFICATION:return e.notifications.find(e=>e.id===t.notification.id)?e:L(L({},e),{},{notifications:[...e.notifications,t.notification]});case d.a.REMOVE_NOTIFICATION:return L(L({},e),{},{notifications:e.notifications.filter(e=>e.id!==t.id)})}return e},budgets:function(e=x,t){switch(t.type){case d.a.SET_BUDGETS:return v(v({},e),{},{budgets:t.budgets,allFiles:S(t.budgets,e.remoteFiles)});case d.a.SET_REMOTE_FILES:return v(v({},e),{},{remoteFiles:t.files,allFiles:S(e.budgets,t.files)});case d.a.SET_ALL_FILES:return v(v({},e),{},{budgets:t.budgetes,remoteFiles:t.remoteFiles,allFiles:S(t.budgets,t.remoteFiles)});case d.a.SET_AVAILABLE_IMPORTS:return v(v({},e),{},{availableImports:t.imports});case d.a.SIGN_OUT:return v(v({},e),{},{allFiles:null})}return e},tutorial:function(e=X,t){switch(t.type){case d.a.SET_TUTORIAL_STAGE:return Z(Z({},e),{},{deactivated:!1,stage:t.stage,fromYNAB:"fromYNAB"in t?t.fromYNAB:e.fromYNAB});case d.a.DEACTIVATE_TUTORIAL:return Z(Z({},e),{},{stage:null})}return e},user:function(e=re,t){switch(t.type){case d.a.GET_USER_DATA:return te(te({},e),{},{data:t.data})}return e}},oe=n(3),le=n(296),ie=n(515);function ce(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function se(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ce(Object(n),!0).forEach(function(t){ue(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ce(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function ue(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}n(565);const de=Object(c.c)(ae);const fe=Object(c.d)(function(e,t){return t.type===d.a.CLOSE_BUDGET&&(e={budgets:e.budgets,user:e.user,prefs:{local:null,global:e.prefs.global},app:se(se({},w),{},{updateInfo:e.updateInfo,showUpdateNotification:e.showUpdateNotification,managerHasInitialized:e.app.managerHasInitialized,loadingText:e.app.loadingText})}),de(e,t)},void 0,Object(c.a)(s.a)),pe=Object(c.b)(u,fe.dispatch);Object(ie.a)(pe,fe),window.__actionsForMenu=pe,window.$send=oe.send,window.$query=f.f,window.$q=f.c,l.a.render(a.a.createElement(i.a,{store:fe},a.a.createElement(le.a,null)),document.getElementById("root"))},59:function(e,t,n){"use strict";n.d(t,"d",function(){return s}),n.d(t,"c",function(){return d}),n.d(t,"b",function(){return f}),n.d(t,"a",function(){return m});var r=n(0),a=n.n(r),o=n(12),l=n(2),i=n(1),c={fontWeight:500,textTransform:"uppercase",color:l.a.b3,marginBottom:5,lineHeight:"1em"};function s({title:e,style:t}){return a.a.createElement(i.B,{style:[c,t]},e)}var u={fontSize:13,marginBottom:3,color:l.a.n3};function d({style:e,title:t}){return a.a.createElement(i.y,{style:[u,e]},t)}function f({style:e,children:t}){return a.a.createElement(i.B,{style:e},t)}var p={position:"relative",margin:0,marginRight:6,width:15,height:15,appearance:"none",outline:0,border:"1px solid #d0d0d0",borderRadius:4,display:"flex",alignItems:"center",justifyContent:"center",color:"white",backgroundColor:"white",":checked":{border:"1px solid "+l.a.b6,backgroundColor:l.a.b6,"::after":{display:"block",background:l.a.b6+' url(\'data:image/svg+xml; utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path fill="white" d="M0 11l2-2 5 5L18 3l2 2L7 18z"/></svg>\') 9px 9px',width:9,height:9,content:" "}},"&.focus-visible:focus":{"::before":{position:"absolute",top:-5,bottom:-5,left:-5,right:-5,border:"2px solid "+l.a.b5,borderRadius:6,content:" "}}};function m(e){return a.a.createElement("input",Object.assign({type:"checkbox"},e,Object(o.css)([p],e.style)))}},60:function(e,t,n){"use strict";(function(e){n.d(t,"a",function(){return d});var r=n(0),a=n(86),o=n(89);function l(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return i(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return i(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?c(Object(n),!0).forEach(function(t){u(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):c(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function u(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function d(t,n){if(!t)throw new Error("SheetValue binding is required");if(e.IS_TESTING&&"string"!==typeof t&&!t.name&&(t=s(s({},t),{},{name:t.value.toString()})),null==(t="string"===typeof t?{name:t,value:null}:t).name)throw new Error("Binding name is now required");let i=Object(r.useContext)(a.a)||"__global",c=function(e){let t=e.indexOf("!");return-1!==t?{sheet:e.slice(0,t),name:e.slice(t+1)}:{sheet:null,name:e}}(t.name);c.sheet&&(i=c.sheet,t=s(s({},t),{},{name:c.name}));let u=Object(r.useContext)(o.a),d=l(Object(r.useState)({name:i+"!"+t.name,value:void 0===t.value?null:t.value,query:t.query}),2),f=d[0],p=d[1],m=Object(r.useRef)(n),y=Object(r.useRef)(f.value);return Object(r.useLayoutEffect)(()=>{m.current=n,y.current=f.value}),Object(r.useLayoutEffect)(()=>(t.query&&u.createQuery(i,t.name,t.query),u.bind(i,t,null,e=>{m.current&&m.current(e),e.value!==y.current&&p(e)})),[i,t.name]),f.value}}).call(this,n(17))},61:function(e,t,n){"use strict";n.d(t,"m",function(){return f}),n.d(t,"k",function(){return p}),n.d(t,"l",function(){return m}),n.d(t,"i",function(){return y}),n.d(t,"j",function(){return g}),n.d(t,"b",function(){return h}),n.d(t,"c",function(){return b}),n.d(t,"e",function(){return O}),n.d(t,"d",function(){return w}),n.d(t,"h",function(){return E}),n.d(t,"n",function(){return v}),n.d(t,"a",function(){return j}),n.d(t,"f",function(){return S}),n.d(t,"g",function(){return x});var r=n(3),a=n(133),o=n(11),l=n(87),i=n(16),c=n(105),s=n(167);function u(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function d(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function f(e){return(t,n)=>{null!=n().app.loadingText&&t(Object(l.b)({loadingText:e}))}}function p(){return async e=>{const t=await Object(r.send)("get-budgets");e({type:o.a.SET_BUDGETS,budgets:t})}}function m(){return async e=>{const t=await Object(r.send)("get-remote-files");e({type:o.a.SET_REMOTE_FILES,files:t})}}function y(){return async(e,t)=>{const n=await Object(r.send)("get-budgets"),a=await Object(r.send)("get-remote-files");return e({type:o.a.SET_ALL_FILES,budgets:n,remoteFiles:a}),t().budgets.allFiles}}function g(e,t="",n={}){return async(a,o)=>{a(Object(l.b)({loadingText:t}));let f=(await Object(r.send)("load-budget",function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?u(Object(n),!0).forEach(function(t){d(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):u(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}({id:e},n))).error;if(f){if("out-of-sync-migrations"===f||"out-of-sync-data"===f)if("undefined"!==typeof confirm){confirm("This budget cannot be loaded with this version of the app. Make sure the app is up-to-date. Do you want to load a backup?")&&a(Object(i.d)("load-backup",{budgetId:e}))}else alert("This budget cannot be loaded with this version of the app. Make sure the app is up-to-date.");else"budget-not-found"===f?alert("Budget file could not be found. If you changed something manually, please restart the app."):alert("Error loading budget. Please contact help@actualbudget.com for support.");return void a(Object(l.b)({loadingText:null}))}a(Object(i.a)()),await a(Object(c.b)());const p=o().prefs.local;a(Object(l.b)({loadingText:null})),a(Object(l.b)({maxMonths:p.maxMonths})),a(Object(s.a)())}}function h(){return async(e,t)=>{const n=t().prefs.local;n&&n.id&&(e({type:o.a.CLOSE_BUDGET}),e(Object(l.b)({loadingText:"Closing..."})),await Object(r.send)("close-budget"),e(Object(l.b)({loadingText:null})))}}function b(){return async(e,t)=>{let n=t().prefs.local;n&&n.id&&e({type:o.a.CLOSE_BUDGET})}}function O(e,t){return async n=>{await Object(r.send)("delete-budget",{id:e,cloudFileId:t}),await n(y())}}function w({testMode:e,demoMode:t}={}){return async(n,a)=>{n(Object(l.b)({loadingText:e||t?"Making demo...":""})),t?await Object(r.send)("create-demo-budget"):await Object(r.send)("create-budget",{testMode:e}),n(Object(i.a)()),await n(y()),await n(Object(c.b)()),n(Object(s.a)()),n(Object(l.b)({loadingText:null}))}}function E(e,t){return async(n,a)=>{const o=(await Object(r.send)("import-budget",{filepath:e,type:t})).error;if(o)throw new Error(o);n(Object(i.a)()),await n(Object(c.b)()),n(Object(s.a)())}}function v(e){return async t=>{let n=(await Object(r.send)("upload-budget",{id:e})).error;return n?{error:n}:(await t(y()),{})}}function j(e){return async t=>{t(Object(l.b)({loadingText:"Downloading..."})),await t(h()),t(S(e,{replace:!0}))}}function S(e,{replace:t}={}){return async n=>{n(Object(l.b)({loadingText:"Downloading..."}));let o=await Object(r.send)("download-budget",{fileId:e,replace:t}),s=o.id,u=o.error;if(u){if("decrypt-failure"===u.reason){let r={hasExistingKey:u.meta&&u.meta.isMissingKey,cloudFileId:e,onSuccess:()=>{n(S(e,{replace:t}))}};n(Object(i.d)("fix-encryption-key",r)),n(Object(l.b)({loadingText:null}))}else{if("file-exists"===u.reason)return alert(`A file with id "${u.meta.id}" already exists with the name "${u.meta.name}". `+"This file will be replaced. This probably happened because files were manually moved around outside of Actual."),n(S(e,{replace:!0}));n(Object(l.b)({loadingText:null})),alert(Object(a.b)(u))}return null}return await Promise.all([n(Object(c.a)()),n(y()),n(g(s))]),n(Object(l.b)({loadingText:null})),s}}function x(){return async e=>{let t=await Object(r.send)("get-ynab4-files");return e({type:"SET_AVAILABLE_IMPORTS",imports:t}),t}}},64:function(e,t,n){"use strict";const r=navigator.platform&&"win32"===navigator.platform.toLowerCase(),a=navigator.platform&&navigator.platform.toUpperCase().indexOf("MAC")>=0,o=/^((?!chrome|android).)*safari/i.test(navigator.userAgent);t.a={OS:r?"windows":a?"mac":"linux",env:"web",isBrowser:!!window.Actual.IS_FAKE_WEB,isReactNativeWeb:!1,isProbablySafari:o}},67:function(e,t,n){"use strict";var r=n(0),a=n.n(r),o=n(12);function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach(function(t){c(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function c(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return u(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return u(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var d=e=>{let t=e.color,n=void 0===t?"#fff":t,o=s(Object(r.useState)("gradient-"+Math.random()),1)[0];return a.a.createElement("svg",Object.assign({},e,{viewBox:"0 0 38 38",style:i({},e.style)}),a.a.createElement("defs",null,a.a.createElement("linearGradient",{x1:"8.042%",y1:"0%",x2:"65.682%",y2:"23.865%",id:o},a.a.createElement("stop",{stopColor:n,stopOpacity:0,offset:"0%"}),a.a.createElement("stop",{stopColor:n,stopOpacity:.631,offset:"63.146%"}),a.a.createElement("stop",{stopColor:n,offset:"100%"}))),a.a.createElement("g",{transform:"translate(1 2)",fill:"none",fillRule:"evenodd"},a.a.createElement("path",{d:"M36 18c0-9.94-8.06-18-18-18",stroke:"url(#"+o+")",strokeWidth:2,fill:"none"}),a.a.createElement("circle",{fill:n,cx:36,cy:18,r:1})))};var f={animationName:o.css.keyframes({"0%":{transform:"rotate(-90deg)"},"100%":{transform:"rotate(666deg)"}}),animationDuration:"1.6s",animationTimingFunction:"cubic-bezier(0.17, 0.67, 0.83, 0.67)",animationIterationCount:"infinite",lineHeight:0};t.a=function(e){return a.a.createElement("span",Object(o.css)(f),a.a.createElement(d,e))}},7:function(e,t,n){"use strict";(function(e){n.d(t,"g",function(){return z}),n.d(t,"e",function(){return K}),n.d(t,"a",function(){return J}),n.d(t,"h",function(){return ee}),n.d(t,"f",function(){return ae}),n.d(t,"c",function(){return le}),n.d(t,"d",function(){return se}),n.d(t,"b",function(){return de}),n.d(t,"i",function(){return ye}),n.d(t,"k",function(){return ge}),n.d(t,"m",function(){return ve}),n.d(t,"j",function(){return Ce}),n.d(t,"n",function(){return Pe}),n.d(t,"l",function(){return Be}),n.d(t,"o",function(){return Ie});var r=n(0),a=n.n(r),o=n(10),l=n(169),i=n(123),c=n(2),s=n(112),u=n(134),d=n(67),f=n(212),p=n(88),m=n(1),y=n(101),g=n(304),h=n(211),b=n(46),O=n(98),w=n(184),E=n(42);const v=["width","name","borderColor","truncate","children","style","contentStyle"],j=["width","name","exposed","focused","value","formatter","textAlign","onExpose","borderColor","children","plain","style","valueStyle"],S=["backgroundColor","borderColor","inset","collapsed","focused","highlighted","children","height","style"],x=["value","onUpdate","onBlur"],C=["inputProps","onUpdate","onBlur","textAlign","error"],k=["value","children","onUpdate","onBlur"],P=["dateSelectProps"],A=["onDelete","style"],D=["focused","selected","partial","style","onSelect","onEdit"],B=["valueProps","valueStyle","inputProps","sync","textAlign","onSave"],I=["headers","children","version"],T=["fields"],M=["items","count","headers","contentHeader","loading","rowHeight","backgroundColor","renderItem","renderEmpty","getItemKey","loadMore","style","navigator","listRef","onScroll","version","animated","allowPopupsEscape","isSelected"];function R(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function _(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?R(Object(n),!0).forEach(function(t){L(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):R(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function L(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function N(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return F(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return F(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function F(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function U(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}const z=32,W=c.a.n11;function $(e,t){document.hasFocus()?e&&e(t):t.stopPropagation()}const G=a.a.createContext({backgroundColor:"white",borderColor:c.a.n9});function H({backgroundColor:e,borderColor:t,children:n}){let o=Object(r.useMemo)(()=>({backgroundColor:e,borderColor:t}),[e,t]);return a.a.createElement(G.Provider,{value:o},n)}var q={flex:1,flexBasis:0},Y={flex:1,padding:"0 5px",justifyContent:"center"},V={whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"};const K=a.a.forwardRef(function(e,t){let n=e.width,o=e.name,l=e.borderColor,i=e.truncate,s=void 0===i||i,u=e.children,d=e.style,f=e.contentStyle,p=U(e,v),y=Object(r.useContext)(G),g=y.backgroundColor,h=y.borderColor;return l&&(h=l),a.a.createElement(m.B,Object.assign({innerRef:t},p,{style:["flex"===n?q:{width:n},{position:"relative",borderTopWidth:h?1:0,borderBottomWidth:h?1:0,borderColor:h,backgroundColor:g},c.c.smallText,d],"data-testid":o}),a.a.createElement(m.B,{style:[Y,f]},s?a.a.createElement(m.y,{style:V},u):u))});var Q={flex:1,padding:"0 5px",justifyContent:"center"},Z={whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"};function J(t){let n=t.width,o=t.name,l=t.exposed,i=t.focused,s=t.value,u=t.formatter,d=t.textAlign,f=t.onExpose,p=t.borderColor,y=t.children,g=t.plain,h=t.style,b=t.valueStyle,O=U(t,j),E=Object(r.useRef)(null),v=Object(r.useRef)(null),S=Object(r.useContext)(G),x=S.backgroundColor,C=S.borderColor;Object(w.b)(v,void 0!==i?i:l),p&&(C=p);const k="flex"===n?{flex:1,flexBasis:0}:{width:n},P={position:"relative",textAlign:d||"left",justifyContent:"center",borderTopWidth:C?1:0,borderBottomWidth:C?1:0,borderColor:C,backgroundColor:x};return a.a.createElement(m.B,Object.assign({innerRef:v,style:[k,P,h],className:"animated-cell"},O,{"data-testid":o}),g?y:l?y():a.a.createElement(m.B,{style:[Q,c.c.smallText,b],onMouseDown:e=>E.current=[e.clientX,e.clientY],onMouseUp:e=>{E.current&&Math.abs(e.clientX-E.current[0])<5&&Math.abs(e.clientY-E.current[1])<5&&f&&f(o)},onClick:e.IS_TESTING&&(()=>f&&f(o))},a.a.createElement(m.y,{style:Z},u?u(s):s)))}var X={marginTop:-1};function ee(e){let t=e.backgroundColor,n=void 0===t?"white":t,o=e.borderColor,l=void 0===o?c.a.border:o,i=e.inset,s=void 0===i?0:i,u=e.collapsed,d=(e.focused,e.highlighted),f=e.children,p=e.height,y=e.style,g=U(e,S),h=N(Object(r.useState)(!1),2),b=h[0],O=h[1],w=Object(r.useRef)(!1),E=Object(r.useRef)(null),v=Object(r.useRef)(null);return Object(r.useEffect)(()=>{d&&!w.current&&E.current&&(E.current.classList.add("animated"),O(!0),clearTimeout(v.current),v.current=setTimeout(()=>{O(!1),v.current=setTimeout(()=>{E.current&&E.current.classList.remove("animated")},500)},500))},[d]),Object(r.useEffect)(()=>{w.current=d}),a.a.createElement(H,{backgroundColor:b?c.a.y9:n,borderColor:b?c.a.y8:l},a.a.createElement(m.B,Object.assign({innerRef:E,style:[{flexDirection:"row",height:p||z,flex:"0 0 "+(p||z)+"px",userSelect:"text","&.animated .animated-cell":{transition:".7s background-color"}},u&&X,y],"data-testid":"row"},g),0!==s&&a.a.createElement(K,{width:s}),f,0!==s&&a.a.createElement(K,{width:s})))}const te={backgroundColor:"white",padding:"5px 3px",margin:"0 1px"},ne={backgroundColor:"transparent","::selection":{backgroundColor:"#d9d9d9"}};function re(e){let t=e.value,n=e.onUpdate,o=e.onBlur,l=U(e,x),i=N(Object(r.useState)(t),2),c=i[0],s=i[1];return a.a.createElement(m.n,Object.assign({},l,{value:c,onUpdate:e=>s(e),onBlur:function(e){n&&n(c),o&&$(o,e)},onKeyDown:function(e){e.keyCode!==p.b.ENTER&&e.keyCode!==p.b.TAB&&e.stopPropagation(),e.keyCode===p.b.ESC?c!==t&&s(t):oe(e)&&n&&n(c)},style:[te,l.readOnly?ne:null,l.style]}))}function ae(e){let t=e.inputProps,n=e.onUpdate,r=e.onBlur,o=e.textAlign,l=e.error,i=U(e,C);var c={textAlign:o};return a.a.createElement(J,Object.assign({textAlign:o},i),()=>a.a.createElement(a.a.Fragment,null,a.a.createElement(re,Object.assign({value:i.value,onUpdate:n,onBlur:r,style:[c,t&&t.style]},t)),l&&a.a.createElement(m.A,{key:"error",targetHeight:z,width:180,position:"bottom-left"},l)))}function oe(e){switch(e.keyCode){case p.b.TAB:case p.b.ENTER:return e.preventDefault(),!0}}function le(e){let t=e.value,n=e.children,o=e.onUpdate,l=e.onBlur,i=U(e,k),c=N(Object(r.useState)(t),2),s=c[0],u=c[1],d=N(Object(r.useState)(t),2),f=d[0],p=d[1];function m(e){document.hasFocus()&&(o&&o(s),$(l,e))}function y(e){oe(e)&&o&&o(s)}return f!==t&&(u(t),p(t)),a.a.createElement(J,Object.assign({},i,{value:t}),()=>n({onBlur:m,onKeyDown:y,onUpdate:e=>u(e),onSave:e=>{u(e),o&&o(e)},shouldSaveFromKey:oe,inputStyle:te}))}var ie={minWidth:225};Object(i.scope)(e=>{return e(function(e){let t=e.props,n=t.dateSelectProps,r=U(t,P);e.updater;const o=n.inputProps,l=void 0===o?{}:o;return a.a.createElement(J,Object.assign({},r,{style:_({zIndex:r.exposed?1:0},r.style)}),()=>a.a.createElement(y.a,Object.assign({},n,{tooltipStyle:ie,inputProps:_(_({},l),{},{onBlur:e=>$(l&&l.onBlur,e),style:[te,{zIndex:300}]})})))})});var ce={alignItems:"center",userSelect:"none"};function se(e){let t=e.onDelete,n=e.style,r=U(e,A);return a.a.createElement(J,Object.assign({},r,{name:"delete",width:20,style:[ce,n],onClick:e=>{e.stopPropagation(),t&&t()}}),()=>a.a.createElement(s.a,{width:7,height:7}))}var ue={flexDirection:"row",alignItems:"center",cursor:"default",transition:"box-shadow .15s",":focus":{outline:0,boxShadow:`0 0 0 3px white, 0 0 0 5px ${c.a.b5}`}};const de=a.a.forwardRef(({style:e,disabled:t,clickBehavior:n,onSelect:r,onEdit:o,children:l},i)=>a.a.createElement(m.B,{innerRef:i,className:"cell-button",tabIndex:"0",onKeyDown:e=>{e.keyCode!==p.b.X&&e.keyCode!==p.b.SPACE||(e.preventDefault(),t||r&&r())},style:[ue,e],onFocus:()=>o&&o(),"data-testid":"cell-button",onClick:"none"===n?null:()=>{t||(r&&r(),o&&o())}},l));var fe={alignItems:"center",userSelect:"none"},pe={width:12,height:12,border:"1px solid "+c.a.n8,borderRadius:3,justifyContent:"center",alignItems:"center",":focus":{border:"1px solid "+c.a.b5,boxShadow:"0 1px 2px "+c.a.b5}},me={color:"white"};function ye(e){let t=e.focused,n=e.selected,r=e.partial,o=e.style,l=e.onSelect,i=e.onEdit,s=U(e,D);var u={backgroundColor:r?c.a.b9:c.a.b5,borderColor:r?c.a.b9:c.a.b5};return a.a.createElement(J,Object.assign({},s,{focused:t,name:"select",width:20,style:[fe,o],onClick:e=>{e.stopPropagation(),l&&l(),i&&i()}}),()=>a.a.createElement(de,{style:[pe,n&&u],onEdit:i,onSelect:l,clickBehavior:"none"},n&&a.a.createElement(f.a,{width:6,height:6,style:me})))}function ge(e){let t=e.valueProps,n=e.valueStyle,r=e.inputProps,o=(e.sync,e.textAlign),l=e.onSave,i=U(e,B);var c={textAlign:o};const s=t.binding,u=t.type,d=t.getValueStyle,f=t.formatExpr,p=t.unformatExpr;return a.a.createElement(O.a,{binding:s,onChange:()=>{i.exposed&&r&&r.onBlur&&r.onBlur()}},e=>a.a.createElement(J,Object.assign({valueStyle:d?[n,d(e.value)]:n,textAlign:o},i,{value:e.value,formatter:e=>i.formatter?i.formatter(e,u):Object(b.a)(e,u),"data-cellname":e.name}),()=>a.a.createElement(re,Object.assign({value:f?f(e.value):e.value,onUpdate:e=>{l(p?p(e):e)},style:c},r))))}var he={position:"absolute",top:0,left:0,right:0,bottom:0,transition:"background-color 1.8s",backgroundColor:"white"};Object(i.scope)(e=>{function t({inst:e}){e.el.style.transitionDuration="0s",e.el.style.backgroundColor=c.a.y9,setTimeout(()=>{e.el&&(e.el.style.transitionDuration="1.8s",e.el.style.backgroundColor="white")},0)}return e(function({inst:e,state:{activated:t,highlightOff:n}}){return a.a.createElement(m.B,{innerRef:t=>e.el=t,style:he})},{getInitialState:({props:e})=>({activated:!1,highlightOff:!0}),componentWillReceiveProps(e,n){if(!e.props.active&&n.active)return t(e)},componentDidMount(e){if(e.props.active)return t(e)}})});var be={borderRadius:"6px 6px 0 0",overflow:"hidden",flexShrink:0},Oe={zIndex:200},we={color:c.a.n4,fontWeight:500},Ee={color:c.a.n4};function ve(e){let t=e.headers,n=e.children,r=e.version,o=U(e,I);return a.a.createElement(m.B,{style:"v2"===r&&be},a.a.createElement(ee,Object.assign({backgroundColor:"white",borderColor:c.a.border,collapsed:!0},o,{style:[Oe,"v2"===r?we:Ee,o.style]}),t?t.map(e=>a.a.createElement(J,{key:e.name,value:e.name,width:e.width,style:e.style,valueStyle:e.valueStyle})):n))}var je={color:c.a.b3},Se={marginRight:5},xe={padding:0};function Ce({name:e,keyHandlers:t,items:n,onSelect:o}){let l=Object(E.e)(),i=N(Object(r.useState)(null),2),c=i[0],s=i[1];return 0===l.size?null:a.a.createElement(m.B,null,a.a.createElement(h.a,{keys:t||{}}),a.a.createElement(m.d,{bare:!0,style:je,onClick:()=>s(!0)},a.a.createElement(u.a,{width:8,height:8,style:Se}),l.size," ",e),c&&a.a.createElement(m.A,{position:"bottom-right",width:200,style:xe,onClose:()=>s(!1)},a.a.createElement(m.s,{onMenuSelect:e=>{o(e,[...l]),s(!1)},items:n})))}let ke={position:"absolute",willChange:"transform",width:"100%"};const Pe=a.a.forwardRef((e,t)=>{let n=e.fields,r=U(e,T),o=Ie(r.items,n);return a.a.createElement(Be,Object.assign({},r,{navigator:o}))});var Ae={justifyContent:"center",alignItems:"center",fontStyle:"italic",color:c.a.n6,flex:1},De={flex:1,outline:"none","& .animated .animated-row":{transition:".25s transform"}};const Be=a.a.forwardRef((e,t)=>{let n=e.items,o=e.count,i=e.headers,s=e.contentHeader,u=e.loading,f=e.rowHeight,p=void 0===f?z:f,y=e.backgroundColor,h=void 0===y?W:y,b=e.renderItem,O=e.renderEmpty,E=e.getItemKey,v=e.loadMore,j=e.style,S=e.navigator,x=(e.listRef,e.onScroll),C=e.version,k=void 0===C?"v1":C,P=e.animated,A=e.allowPopupsEscape,D=e.isSelected,B=U(e,M);S||(S={onEdit:()=>{},editingId:null,focusedField:null,getNavigatorProps:e=>e});let I=S,T=I.onEdit,R=I.editingId,_=I.focusedField,L=I.getNavigatorProps,N=Object(r.useRef)(null),F=Object(r.useRef)(null),$=Object(r.useRef)(null),G=Object(r.useRef)(null),H=Object(r.useRef)(!1);function q({index:e,style:t,key:r}){let o=n[e],l=R===o.id,i=D&&D(o.id),c=b({item:o,editing:l,focusedField:l&&_,onEdit:T,index:e,position:t.top});return a.a.createElement(m.B,{key:r,className:"animated-row",style:[ke,{zIndex:l||i?101:"auto",transform:"translateY(var(--pos))"}],nativeStyle:{"--pos":`${t.top-1}px`},"data-focus-key":o.id},c)}function Y(e,t){return t*(p-1)+(p-1)/2-e/2+2*(p-1)}function V({overscanStartIndex:e,overscanStopIndex:t}){v&&t>n.length-100&&v()}if(Object(r.useImperativeHandle)(t,()=>({scrollTo:(e,t="smart")=>{let r=n.findIndex(t=>t.id===e);-1!==r&&(N.current?N.current.scrollToItem(r,t):G.current=r)},scrollToTop:()=>{N.current&&N.current.scrollTo(0)},getScrolledItem:()=>{if($.current){let e=$.current.scrollTop,t=N.current.getStartIndexForOffset(e);return n[t].id}return 0},setRowAnimation:e=>{N.current&&N.current.setRowAnimation(e)},edit(e,n,r){T(e,n),e&&r&&t.scrollTo(e)},anchor(){N.current&&N.current.anchor()},unanchor(){N.current&&N.current.unanchor()},isAnchored:()=>N.current&&N.current.isAnchored()})),Object(r.useLayoutEffect)(()=>{!H.current&&F.current&&(N.current&&N.current.setRowAnimation(!0),H.current=!0)}),u)return a.a.createElement(m.B,{style:[{flex:1,justifyContent:"center",alignItems:"center",backgroundColor:h}]},a.a.createElement(d.a,{width:25,color:c.a.n1}));let K=0===(o||n.length);return a.a.createElement(m.B,Object.assign({style:[De,j],tabIndex:"1"},L(B),{"data-testid":"table"}),i&&a.a.createElement(ve,Object.assign({version:k,height:p},Array.isArray(i)?{headers:i}:{children:i})),a.a.createElement(m.B,{style:{flex:1,backgroundColor:h}},K?function(e){return null==e?null:"function"===typeof e?e():a.a.createElement(m.B,{style:Ae},e)}(O):a.a.createElement(l.a,null,({width:e,height:t})=>0===e||0===t?null:a.a.createElement(m.p.Provider,{value:!A&&F},a.a.createElement(w.a,null,a.a.createElement(g.a,{ref:N,header:s,innerRef:F,outerRef:$,width:e,height:t,renderRow:q,itemCount:o||n.length,itemSize:p-1,itemKey:E||((e,t)=>n[e].id),indexForKey:e=>n.findIndex(t=>t.id===e),initialScrollOffset:G.current?Y(t,G.current):0,version:k,animated:P,overscanCount:5,onItemsRendered:V,onScroll:x}))))))});function Ie(e,t,n={}){let a="function"!==typeof t?()=>t:t,l=n.initialEditingId,i=n.initialFocusedField,c=n.moveKeys,s=N(Object(r.useState)(l||null),2),u=s[0],d=s[1],f=N(Object(r.useState)(i||null),2),m=f[0],y=f[1],g=Object(r.useRef)(),h=Object(o.e)(),b=Object(r.useRef)(0),O=Object(r.useCallback)((e,t)=>{d(e),y(e?t:null)},[]);function w(){g.current.focus(),O(null),setTimeout(()=>{O(u,m)},100)}function E(t){if(u){let n=a(e.find(e=>e.id===u)),r=n.indexOf(m)+t;r<0?function(){let t=e.findIndex(e=>e.id===u);if(t>0){let n=e[t-1],r=a(n);O(n.id,r[r.length-1])}else w()}():r>=n.length?function(){let t=e.findIndex(e=>e.id===u);if(t<e.length-1){let n=e[t+1],r=a(n);O(n.id,r[0])}else w()}():y(n[r])}}function v(t){if(u){let n=e.findIndex(e=>e.id===u);for(;;){if(!((n+=t)>=0&&n<e.length)){w();break}{const t=e[n];if(a(t).includes(m)){O(t.id,m);break}}}}}function j(e){switch(e){case"left":E(-1);break;case"right":E(1);break;case"up":v(-1);break;case"down":v(1);break;default:throw new Error("Unknown direction: "+e)}}return Object(r.useEffect)(()=>{b.current=h.getState().modals.modalStack.length},[]),{onEdit:O,editingId:u,focusedField:m,getNavigatorProps:function(e){return _(_({},e),{},{innerRef:g,onKeyDown:t=>{if(e&&e.onKeyDown&&e.onKeyDown(t),t.isPropagationStopped())return;let n=c&&c[m]&&c[m];if(n&&n[t.keyCode])t.preventDefault(),t.stopPropagation(),j(n[t.keyCode]);else switch(t.keyCode){case p.b.UP:case p.b.K:"INPUT"!==t.target.tagName&&j("up");break;case p.b.DOWN:case p.b.J:"INPUT"!==t.target.tagName&&j("down");break;case p.b.ENTER:case p.b.TAB:t.preventDefault(),t.stopPropagation(),j(t.keyCode===p.b.ENTER?t.shiftKey?"up":"down":t.shiftKey?"left":"right")}},onBlur:e=>{let t=b.current,n=h.getState().modals.modalStack.length;!document.hasFocus()||null!=e.relatedTarget&&g.current.contains(e.relatedTarget)||t!==n||O(null)}})}}}}).call(this,n(17))},82:function(e,t,n){"use strict";n.d(t,"a",function(){return u}),n.d(t,"b",function(){return d}),n.d(t,"e",function(){return f}),n.d(t,"d",function(){return p}),n.d(t,"c",function(){return m});var r=n(49),a=n(9),o=n(11);function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach(function(t){c(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function c(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const s={newTransactions:[],matchedTransactions:[],lastTransaction:null,updatedAccounts:[],accounts:[],categories:{grouped:[],list:[]},payees:[],earliestTransaction:null};function u(e=s,t){switch(t.type){case o.a.SET_NEW_TRANSACTIONS:return i(i({},e),{},{newTransactions:t.newTransactions||[],matchedTransactions:t.matchedTransactions||[],updatedAccounts:t.updatedAccounts||[]});case o.a.UPDATE_NEW_TRANSACTIONS:return i(i({},e),{},{newTransactions:e.newTransactions.filter(e=>e!==t.changedId),matchedTransactions:e.matchedTransactions.filter(e=>e!==t.changedId)});case o.a.SET_LAST_TRANSACTION:return i(i({},e),{},{lastTransaction:t.transaction});case o.a.MARK_ACCOUNT_READ:return i(i({},e),{},{updatedAccounts:e.updatedAccounts.filter(e=>e!==t.accountId)});case o.a.LOAD_ACCOUNTS:return i(i({},e),{},{accounts:t.accounts});case o.a.UPDATE_ACCOUNT:return i(i({},e),{},{accounts:e.accounts.map(e=>e.id===t.account.id?i(i({},e),t.account):e)});case o.a.LOAD_CATEGORIES:return i(i({},e),{},{categories:t.categories});case o.a.LOAD_PAYEES:return i(i({},e),{},{payees:t.payees});case o.a.ADD_CATEGORY:{let n={id:"temp",name:t.name};return i(i({},e),{},{categories:{grouped:e.categories.grouped.map(e=>e.id===t.groupId?i(i({},e),{},{categories:[n,...e.categories]}):e),list:[n,...e.categories.list]}})}case o.a.DELETE_CATEGORY:return i(i({},e),{},{categories:{grouped:e.categories.grouped.map(e=>i(i({},e),{},{categories:e.categories.filter(e=>e.id!==t.id)})),list:e.categories.list.filter(e=>e.id!==t.id)}})}return e}const d=Object(r.a)(e=>Object(a.i)(e)),f=Object(r.a)(e=>Object(a.i)(e)),p=Object(r.a)(e=>{let t={};return e.forEach(e=>{e.categories.forEach(e=>{t[e.id]=e})}),t}),m=Object(r.a)((e,t)=>{let n=d(t);return e.filter(e=>{if(e.transfer_acct){let t=n[e.transfer_acct];return null!=t&&!t.closed}return!0})})},84:function(e,t,n){"use strict";t.a={breakpoint_narrow:"512px",breakpoint_medium:"768px",breakpoint_wide:"1024px"}},86:function(e,t,n){"use strict";var r=n(0),a=n.n(r);t.a=a.a.createContext(void 0)},87:function(e,t,n){"use strict";(function(e){n.d(t,"b",function(){return o}),n.d(t,"d",function(){return l}),n.d(t,"c",function(){return i}),n.d(t,"e",function(){return c}),n.d(t,"a",function(){return s});var r=n(3),a=n(11);function o(e){return{type:a.a.SET_APP_STATE,state:e}}function l(){return async t=>{e.Actual.applyAppUpdate(),t(o({updateInfo:null}))}}function i(e){return{type:a.a.SET_LAST_UNDO_STATE,undoState:e}}function c(e,t){return n=>Object(r.send)("upload-file-web",{filename:e,contents:t})}function s(){return e=>Object(r.send)("app-focused")}}).call(this,n(17))},88:function(e,t,n){"use strict";n.d(t,"b",function(){return r}),n.d(t,"a",function(){return l});const r={ESC:27,TAB:9,ENTER:13,SHIFT:16,ALT:18,META:91,CTRL:17,SPACE:32,UP:38,DOWN:40,J:74,K:75,X:88};let a={},o={shift:!1,ctrl:!1,alt:!1,meta:!1};function l(e){return!!o[e]}document.addEventListener("keydown",e=>{if(e.keyCode===r.SHIFT&&(o.shift=!0),e.keyCode===r.CTRL&&(o.ctrl=!0),e.keyCode===r.ALT&&(o.alt=!0),e.keyCode===r.META&&(o.meta=!0),!e.target||!e.target.matches("input")){let t=a[e.key.toUpperCase()];t&&t.length>0&&(t[t.length-1](o),e.preventDefault(),e.stopPropagation())}}),document.addEventListener("keyup",e=>{e.keyCode===r.SHIFT&&(o.shift=!1),e.keyCode===r.CTRL&&(o.ctrl=!1),e.keyCode===r.ALT&&(o.alt=!1),e.keyCode===r.META&&(o.meta=!1)})},89:function(e,t,n){"use strict";var r=n(0),a=n.n(r);t.a=a.a.createContext(void 0)},9:function(e,t,n){"use strict";n.d(t,"l",function(){return c}),n.d(t,"g",function(){return s}),n.d(t,"c",function(){return u}),n.d(t,"f",function(){return f}),n.d(t,"i",function(){return p}),n.d(t,"p",function(){return m}),n.d(t,"n",function(){return y}),n.d(t,"o",function(){return h}),n.d(t,"h",function(){return b}),n.d(t,"q",function(){return v}),n.d(t,"k",function(){return j}),n.d(t,"a",function(){return S}),n.d(t,"d",function(){return x}),n.d(t,"e",function(){return C}),n.d(t,"b",function(){return k}),n.d(t,"j",function(){return P}),n.d(t,"m",function(){return A});const r=["id"];function a(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach(function(t){i(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function c(e){return e[e.length-1]}function s(e,t){const n=e.id?{id:e.id}:{},r=Object.keys(t);let a=!1;for(let o=0;o<r.length;o++){let l=r[o];e[l]!==t[l]&&(n[l]=t[l],a=!0)}return a?n:null}function u(e,t){return t=[...t],e.added&&e.added.forEach(e=>{t.push(e)}),e.updated&&e.updated.forEach(e=>{let n=e.id,o=a(e,r);const i=t.findIndex(e=>e.id===n);t[i]=l(l({},t[i]),o)}),e.deleted&&e.deleted.forEach(e=>{const n=t.findIndex(t=>e.id===t.id);-1!==n&&t.splice(n,1)}),t}function d(e){let t=new Map;for(let n=0;n<e.length;n++){let r=e[n];t.set(r.id,r)}return t}function f(e,t){let n=d(e),r=d(t),a=[],o=[],l=e.filter(e=>!r.has(e.id)).map(e=>({id:e.id}));return t.forEach(e=>{let t=n.get(e.id);if(t){const n=s(t,e);n&&o.push(n)}else a.push(e)}),{added:a,updated:o,deleted:l}}function p(e){let t={};for(let n=0;n<e.length;n++){let r=e[n];t[r.id]=r}return t}function m(e){return e[0].toUpperCase()+e.slice(1)}let y=[{value:"comma-dot",label:"1,000.33"},{value:"dot-comma",label:"1.000,33"},{value:"space-comma",label:"1 000,33"}],g={value:null,formatter:null,regex:null};function h(e){let t,n,r;switch(e){case"space-comma":t="en-ZA",n=/[^-0-9,]/g,r=",";break;case"dot-comma":t="de-DE",n=/[^-0-9,]/g,r=",";break;case"comma-dot":default:t="en-US",n=/[^-0-9.]/g,r="."}g={value:e,separator:r,formatter:new Intl.NumberFormat(t,{minimumFractionDigits:2,maximumFractionDigits:2}),regex:n}}function b(){return g}h("comma-dot");const O=2**51-1,w=-O;function E(e){if(!Number.isInteger(e))throw new Error("safeNumber: number is not an integer: "+e);if(e>O||e<w)throw new Error("safeNumber: can't safely perform arithmetic with number: "+e);return e}function v(e){return P(C(e)||0)}function j(e){return g.formatter.format(E(e)/100)}function S(e){return g.formatter.format(e)}function x(e){let t=parseFloat(e.replace(g.regex,"").replace(g.separator,"."));return isNaN(t)?null:t}function C(e){let t=x(e);return t?k(t):null}function k(e){return Math.round(100*e)}function P(e){return parseFloat((E(e)/100).toFixed(2))}function A(e){function t(e){return isNaN(e)?null:e}let n=e.match(/[.,][^.,]*$/);if(!n||0===n.index)return t(parseFloat(e));let r=e.slice(0,n.index),a=e.slice(n.index+1);return t(parseFloat(r.replace(/[^0-9-]/g,"")+"."+a))}},90:function(e,t,n){"use strict";var r=n(0),a=n.n(r),o=n(12);const l=["numberOfLines","style","innerRef"];function i(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}t.a=function(e){e.numberOfLines,e.style;const t=e.innerRef,n=i(e,l);return a.a.createElement("span",Object.assign({},n,{ref:t,className:`${e.className||""} ${Object(o.css)(e.style)}`}))}},98:function(e,t,n){"use strict";(function(e){n.d(t,"a",function(){return d});var r=n(0),a=n(86),o=n(89);function l(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],l=!0,i=!1;try{for(n=n.call(e);!(l=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);l=!0);}catch(c){i=!0,a=c}finally{try{l||null==n.return||n.return()}finally{if(i)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return i(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return i(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?c(Object(n),!0).forEach(function(t){u(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):c(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function u(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function d({binding:t,initialValue:n,children:i,onChange:c}){if(!t)throw new Error("SheetValue binding is required");if(e.IS_TESTING&&"string"!==typeof t&&!t.name&&(t=s(s({},t),{},{name:t.value.toString()})),null==(t="string"===typeof t?{name:t,value:null}:t).name)throw new Error("Binding name is now required");let u=Object(r.useContext)(o.a),d=Object(r.useContext)(a.a)||"__global",f=l(Object(r.useState)({name:d+"!"+t.name,value:null!=n?n:t.value,query:t.query}),2),p=f[0],m=f[1],y=Object(r.useRef)(c),g=Object(r.useRef)(p.value);return Object(r.useLayoutEffect)(()=>{y.current=c,g.current=p.value}),Object(r.useLayoutEffect)(()=>(t.query&&u.createQuery(d,t.name,t.query),u.bind(d,t,null,e=>{y.current&&y.current(e),e.value!==g.current&&m(e)})),[d,t.name]),null!=p.value?i(p,function(){throw new Error("setCell is not implemented anymore")}):null}}).call(this,n(17))}},[[566,4,3]]]);
2
+ //# sourceMappingURL=main.d501832e.chunk.js.map