@actual-app/web 23.12.0 → 24.1.0
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.
- package/build/asset-manifest.json +13 -15
- package/build/data/migrations/1632571489012_remove_cache.js +18 -17
- package/build/index.html +1 -1
- package/build/kcab/{kcab.worker.676aa69de34599d64b7b.js → kcab.worker.26846256cb1531298b26.js} +61 -56
- package/build/kcab/kcab.worker.26846256cb1531298b26.js.map +1 -0
- package/build/static/js/231.e37c027b.chunk.js +2 -0
- package/build/static/js/231.e37c027b.chunk.js.map +1 -0
- package/build/static/js/553.e06509f6.chunk.js +2 -0
- package/build/static/js/553.e06509f6.chunk.js.map +1 -0
- package/build/static/js/main.eea3298c.js +201 -0
- package/build/static/js/main.eea3298c.js.map +1 -0
- package/build/static/js/narrow-components.574c7b46.chunk.js +2 -0
- package/build/static/js/narrow-components.574c7b46.chunk.js.map +1 -0
- package/build/static/js/reports.892e778c.chunk.js +2 -0
- package/build/static/js/reports.892e778c.chunk.js.map +1 -0
- package/build/static/js/wide-components.8ded5c13.chunk.js +2 -0
- package/build/static/js/wide-components.8ded5c13.chunk.js.map +1 -0
- package/package.json +1 -2
- package/build/kcab/kcab.worker.676aa69de34599d64b7b.js.map +0 -1
- package/build/static/js/226.8132a539.chunk.js +0 -2
- package/build/static/js/226.8132a539.chunk.js.map +0 -1
- package/build/static/js/231.370f17f8.chunk.js +0 -2
- package/build/static/js/231.370f17f8.chunk.js.map +0 -1
- package/build/static/js/444.301f7ece.chunk.js +0 -15
- package/build/static/js/444.301f7ece.chunk.js.map +0 -1
- package/build/static/js/main.39d3269d.js +0 -188
- package/build/static/js/main.39d3269d.js.map +0 -1
- package/build/static/js/narrow-components.b0c96dd8.chunk.js +0 -2
- package/build/static/js/narrow-components.b0c96dd8.chunk.js.map +0 -1
- package/build/static/js/reports.dec86016.chunk.js +0 -2
- package/build/static/js/reports.dec86016.chunk.js.map +0 -1
- package/build/static/js/wide-components.eb0a5f91.chunk.js +0 -2
- package/build/static/js/wide-components.eb0a5f91.chunk.js.map +0 -1
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(self["webpackChunk_actual_app_web"]=self["webpackChunk_actual_app_web"]||[]).push([[447],{18535:function(e,t,n){n.d(t,{Z:function(){return u}});var r=n(43188);var o=n(66204);var i=n(58068);var l=n(75433);var s=n(24307);var a=n(52582);var d=n(57651);var c=n(31038);function u({carryover:e,balance:t,goal:n,budgeted:o,disabled:u,style:g,balanceStyle:p,carryoverStyle:h}){let f=(0,d.Z)(e);let y=(0,d.Z)(t);let m=(0,d.Z)(n);let x=(0,d.Z)(o);let v=(0,i.Z)("goalTemplatesEnabled");return(0,r.jsxs)(s.Z,{style:g,children:[(0,r.jsx)(a.Z,{binding:t,type:"financial",getStyle:e=>(0,c.TV)(e,v?m:null,x),style:{textAlign:"right",...!u&&{cursor:"pointer",":hover":{textDecoration:"underline"}},...p}}),f&&(0,r.jsx)(s.Z,{style:{alignSelf:"center",marginLeft:2,position:"absolute",right:-8,top:0,bottom:0,justifyContent:"center",...h},children:(0,r.jsx)(l.Z,{width:7,height:7,style:(0,c.TV)(y,m,x)})})]})}},38543:function(e,t,n){n.d(t,{Z:function(){return d}});var r=n(43188);var o=n(66204);var i=n(46055);var l=n(31941);var s=n(57651);var a=n(63541);function d({categoryId:e,tooltip:t,monthIndex:n,onBudgetAction:o,onClose:d,...c}){let u=(0,s.Z)(i.u8.catCarryover(e));let g=()=>{t.close();d?.()};return(0,r.jsx)(a.u,{position:"bottom-right",width:200,style:{padding:0},onClose:g,...c,children:(0,r.jsx)(l.Z,{onMenuSelect:t=>{o(n,"carryover",{category:e,flag:!u});g()},items:[{name:"carryover",text:u?"Remove overspending rollover":"Rollover overspending"}]})})}},94477:function(e,t,n){n.d(t,{Z:function(){return m}});var r=n(43188);var o=n(66204);var i=n(46055);var l=n(31941);var s=n(57651);var a=n(63541);var d=n(9579);var c=n(44048);var u=n(56816);var g=n(91871);var p=n(24307);var h=n(31038);function f({tooltipProps:e,onSubmit:t,onClose:n}){let{grouped:i}=(0,d.Z)();i=(0,h.iX)(i.filter(e=>!e.is_income));let[l,s]=(0,o.useState)(null);function f(){if(l){t(l);n()}}return(0,r.jsxs)(a.u,{position:"bottom-right",width:200,style:{padding:10},...e,onClose:n,children:[(0,r.jsx)(p.Z,{style:{marginBottom:5},children:"Cover from category:"}),(0,r.jsx)(g.Z,{children:e=>(0,r.jsx)(c.ZP,{categoryGroups:i,value:null,openOnFocus:true,onUpdate:e=>{},onSelect:e=>s(e),inputProps:{inputRef:e,onKeyDown:e=>{if(e.key==="Enter"){f()}}}})}),(0,r.jsx)(p.Z,{style:{alignItems:"flex-end",marginTop:10},children:(0,r.jsx)(u.Z,{type:"primary",style:{fontSize:12,paddingTop:3},onClick:f,children:"Transfer"})})]})}var y=n(45990);function m({categoryId:e,tooltip:t,monthIndex:n,onBudgetAction:d,onClose:c,...u}){let g=(0,s.Z)(i.aK.catCarryover(e));let p=(0,s.Z)(i.aK.catBalance(e));let[h,m]=(0,o.useState)("menu");let x=()=>{t.close();c?.()};return(0,r.jsxs)(r.Fragment,{children:[h==="menu"&&(0,r.jsx)(a.u,{position:"bottom-right",width:200,style:{padding:0},onClose:x,...u,children:(0,r.jsx)(l.Z,{onMenuSelect:t=>{if(t==="carryover"){d(n,"carryover",{category:e,flag:!g});x()}else{m(t)}},items:[{name:"transfer",text:"Transfer to another category"},{name:"carryover",text:g?"Remove overspending rollover":"Rollover overspending"},p<0&&{name:"cover",text:"Cover overspending"}].filter(e=>e)})}),h==="transfer"&&(0,r.jsx)(y.Z,{initialAmountName:i.aK.catBalance(e),showToBeBudgeted:true,onClose:x,onSubmit:(t,r)=>{d(n,"transfer-category",{amount:t,from:e,to:r})}}),h==="cover"&&(0,r.jsx)(f,{onClose:x,onSubmit:t=>{d(n,"cover",{to:e,from:t})}})]})}},10646:function(e,t,n){n.d(t,{Z:function(){return a}});var r=n(43188);var o=n(66204);var i=n(59379);var l=n(24868);var s=n(56816);function a({to:e,style:t,activeStyle:n,...o}){const a=(0,l.Z)();const d=(0,i.bS)({path:e});return(0,r.jsx)(s.Z,{style:{...t,...d?n:{}},activeStyle:n,...o,onClick:t=>{o.onClick?.(t);a(e)}})}},23458:function(e,t,n){n.r(t);n.d(t,{Account:function(){return eQ},Accounts:function(){return eA},Budget:function(){return ej}});var r=n(43188);var o=n(66204);var i=n(37496);var l=n(55833);var s=n(84094);var a=n(25258);var d=n(73416);var c=n(1447);var u=n(9579);var g=n(76926);var p=n(99458);var h=n(45492);var f=n(24307);function y({onSync:e,children:t}){let[n,r]=(0,o.useState)(false);async function i(){r(true);await e();r(false)}return t({refreshing:n,onRefresh:i})}var m=n(99024);var x=n(46055);var v=n(58068);var b=n(21741);var j=n(75433);var S=n(94276);var w=n(76074);var C=n(56816);const Z=(0,o.forwardRef)(({children:e,...t},n)=>{return(0,r.jsx)(f.Z,{...t,ref:n,style:{marginTop:15,marginLeft:5,marginRight:5,borderRadius:6,backgroundColor:h.rS.cardBackground,borderColor:h.rS.cardBorder,boxShadow:"0 1px 2px #9594A8",...t.style},children:(0,r.jsx)(f.Z,{style:{borderRadius:6,overflow:"hidden"},children:e})})});var T=Z;var B=n(46405);var E=n(77644);function k({title:e,style:t}){return(0,r.jsx)(E.Z,{style:{...h.W2.text,color:h.rS.tableRowHeaderText,textAlign:"right",fontSize:12,marginBottom:2,...t},children:e})}var A=n(31941);var D;(function(e){e[e["UP"]=-1]="UP";e[e["DOWN"]=1]="DOWN"})(D||(D={}));function I(e){var t=getComputedStyle(e).overflowY;if(e===document.scrollingElement&&t==="visible"){return true}if(t!=="scroll"&&t!=="auto"){return false}return true}function W(e,t){if(!I(e)){return false}if(t===D.DOWN){var n=e.scrollTop+e.clientHeight;return n<e.scrollHeight}if(t===D.UP){return e.scrollTop>0}throw new Error("unsupported direction")}function _(e,t){if(W(e,t)){return true}if(e.parentElement==null){return false}return _(e.parentElement,t)}function R(e,t){if(t===void 0)t={};var n=t.insertAt;if(!e||typeof document==="undefined"){return}var r=document.head||document.getElementsByTagName("head")[0];var o=document.createElement("style");o.type="text/css";if(n==="top"){if(r.firstChild){r.insertBefore(o,r.firstChild)}else{r.appendChild(o)}}else{r.appendChild(o)}if(o.styleSheet){o.styleSheet.cssText=e}else{o.appendChild(document.createTextNode(e))}}var G=".lds-ellipsis {\n display: inline-block;\n position: relative;\n width: 64px;\n height: 64px; }\n\n.lds-ellipsis div {\n position: absolute;\n top: 27px;\n width: 11px;\n height: 11px;\n border-radius: 50%;\n background: #363636;\n animation-timing-function: cubic-bezier(0, 1, 1, 0); }\n\n.lds-ellipsis div:nth-child(1) {\n left: 6px;\n animation: lds-ellipsis1 0.6s infinite; }\n\n.lds-ellipsis div:nth-child(2) {\n left: 6px;\n animation: lds-ellipsis2 0.6s infinite; }\n\n.lds-ellipsis div:nth-child(3) {\n left: 26px;\n animation: lds-ellipsis2 0.6s infinite; }\n\n.lds-ellipsis div:nth-child(4) {\n left: 45px;\n animation: lds-ellipsis3 0.6s infinite; }\n\n@keyframes lds-ellipsis1 {\n 0% {\n transform: scale(0); }\n 100% {\n transform: scale(1); } }\n\n@keyframes lds-ellipsis3 {\n 0% {\n transform: scale(1); }\n 100% {\n transform: scale(0); } }\n\n@keyframes lds-ellipsis2 {\n 0% {\n transform: translate(0, 0); }\n 100% {\n transform: translate(19px, 0); } }\n";R(G);var M=function(){return o.createElement("div",{className:"lds-ellipsis"},o.createElement("div",null),o.createElement("div",null),o.createElement("div",null),o.createElement("div",null))};var H=function(){return o.createElement("div",null,o.createElement("p",null,"↧\xa0\xa0pull to refresh\xa0\xa0↧"))};var L=".ptr,\n.ptr__children {\n height: 100%;\n width: 100%;\n overflow: hidden;\n -webkit-overflow-scrolling: touch;\n position: relative; }\n\n.ptr.ptr--fetch-more-treshold-breached .ptr__fetch-more {\n display: block; }\n\n.ptr__fetch-more {\n display: none; }\n\n/**\n * Pull down transition \n */\n.ptr__children,\n.ptr__pull-down {\n transition: transform 0.2s cubic-bezier(0, 0, 0.31, 1); }\n\n.ptr__pull-down {\n position: absolute;\n overflow: hidden;\n left: 0;\n right: 0;\n top: 0;\n visibility: hidden; }\n .ptr__pull-down > div {\n display: none; }\n\n.ptr--dragging {\n /**\n * Hide PullMore content is treshold breached\n */\n /**\n * Otherwize, display content\n */ }\n .ptr--dragging.ptr--pull-down-treshold-breached .ptr__pull-down--pull-more {\n display: none; }\n .ptr--dragging .ptr__pull-down--pull-more {\n display: block; }\n\n.ptr--pull-down-treshold-breached {\n /**\n * Force opacity to 1 is pull down trashold breached\n */\n /**\n * And display loader\n */ }\n .ptr--pull-down-treshold-breached .ptr__pull-down {\n opacity: 1 !important; }\n .ptr--pull-down-treshold-breached .ptr__pull-down--loading {\n display: block; }\n\n.ptr__loader {\n margin: 0 auto;\n text-align: center; }\n";R(L);var P=function(e){var t=e.isPullable,n=t===void 0?true:t,r=e.canFetchMore,i=r===void 0?false:r,l=e.onRefresh,s=e.onFetchMore,a=e.refreshingContent,d=a===void 0?o.createElement(M,null):a,c=e.pullingContent,u=c===void 0?o.createElement(H,null):c,g=e.children,p=e.pullDownThreshold,h=p===void 0?67:p,f=e.fetchMoreThreshold,y=f===void 0?100:f,m=e.maxPullDownDistance,x=m===void 0?95:m,v=e.resistance,b=v===void 0?1:v,j=e.backgroundColor,S=e.className,w=S===void 0?"":S;var C=(0,o.useRef)(null);var Z=(0,o.useRef)(null);var T=(0,o.useRef)(null);var B=(0,o.useRef)(null);var E=false;var k=false;var A=false;var I=0;var W=0;(0,o.useEffect)(function(){if(!n||!Z||!Z.current)return;var e=Z.current;e.addEventListener("touchstart",L,{passive:true});e.addEventListener("mousedown",L);e.addEventListener("touchmove",P,{passive:false});e.addEventListener("mousemove",P);window.addEventListener("scroll",N);e.addEventListener("touchend",O);e.addEventListener("mouseup",O);document.body.addEventListener("mouseleave",O);return function(){e.removeEventListener("touchstart",L);e.removeEventListener("mousedown",L);e.removeEventListener("touchmove",P);e.removeEventListener("mousemove",P);window.removeEventListener("scroll",N);e.removeEventListener("touchend",O);e.removeEventListener("mouseup",O);document.body.removeEventListener("mouseleave",O)}},[g,n,l,h,x,i,y]);(0,o.useEffect)(function(){var e;if(!((e=C)===null||e===void 0?void 0:e.current))return;var t=C.current.classList.contains("ptr--fetch-more-treshold-breached");if(t)return;if(i&&R()<y&&s){C.current.classList.add("ptr--fetch-more-treshold-breached");k=true;s().then(G).catch(G)}},[i,g]);var R=function(){if(!Z||!Z.current)return-1;var e=window.scrollY;var t=Z.current.scrollHeight;return t-e-window.innerHeight};var G=function(){requestAnimationFrame(function(){if(Z.current){Z.current.style.overflowX="hidden";Z.current.style.overflowY="auto";Z.current.style.transform="unset"}if(T.current){T.current.style.opacity="0"}if(C.current){C.current.classList.remove("ptr--pull-down-treshold-breached");C.current.classList.remove("ptr--dragging");C.current.classList.remove("ptr--fetch-more-treshold-breached")}if(E)E=false;if(k)k=false})};var L=function(e){A=false;if(e instanceof MouseEvent){I=e.pageY}if(window.TouchEvent&&e instanceof TouchEvent){I=e.touches[0].pageY}W=I;if(e.type==="touchstart"&&_(e.target,D.UP)){return}if(Z.current.getBoundingClientRect().top<0){return}A=true};var P=function(e){if(!A){return}if(window.TouchEvent&&e instanceof TouchEvent){W=e.touches[0].pageY}else{W=e.pageY}C.current.classList.add("ptr--dragging");if(W<I){A=false;return}if(e.cancelable){e.preventDefault()}var t=Math.min((W-I)/b,x);if(t>=h){A=true;E=true;C.current.classList.remove("ptr--dragging");C.current.classList.add("ptr--pull-down-treshold-breached")}if(t>=x){return}T.current.style.opacity=(t/65).toString();Z.current.style.overflow="visible";Z.current.style.transform="translate(0px, "+t+"px)";T.current.style.visibility="visible"};var N=function(e){if(k)return;if(i&&R()<y&&s){k=true;C.current.classList.add("ptr--fetch-more-treshold-breached");s().then(G).catch(G)}};var O=function(){A=false;I=0;W=0;if(!E){if(T.current)T.current.style.visibility="hidden";G();return}if(Z.current){Z.current.style.overflow="visible";Z.current.style.transform="translate(0px, "+h+"px)"}l().then(G).catch(G)};return o.createElement("div",{className:"ptr "+w,style:{backgroundColor:j},ref:C},o.createElement("div",{className:"ptr__pull-down",ref:T},o.createElement("div",{className:"ptr__loader ptr__pull-down--loading"},d),o.createElement("div",{className:"ptr__pull-down--pull-more"},u)),o.createElement("div",{className:"ptr__children",ref:Z},g,o.createElement("div",{className:"ptr__fetch-more",ref:B},o.createElement("div",{className:"ptr__loader ptr__fetch-more--loading"},d))))};var N=P;var O=n(99818);function z(e){return(0,r.jsx)("div",{style:{overflow:"auto"},children:(0,r.jsx)(N,{pullDownThreshold:80,resistance:2,className:String((0,O.iv)({"& .ptr__pull-down":{textAlign:"center"},"& .ptr__children":{overflow:"hidden auto"}})),...e})})}var U=n(11800);var F=n(52582);var K=n(57201);var $=n(5291);var V=n(57651);var Y=n(39717);var q=n(63541);var X=n(82345);var Q=n(18535);const J=50;const ee=({children:e,style:t,...n})=>{return(0,r.jsx)(f.Z,{style:{height:J,borderBottomWidth:1,borderColor:h.rS.tableBorder,flexDirection:"row",alignItems:"center",paddingLeft:10,paddingRight:10,zIndex:1,...t},...n,children:e})};var et=n(38543);var en=n(94477);var er=n(31038);function eo({toBudget:e,onClick:t}){let n=(0,V.Z)(e);return(0,r.jsxs)(C.Z,{type:"bare",style:{flexDirection:"column",alignItems:"flex-start"},onClick:t,children:[(0,r.jsx)(k,{title:n<0?"OVERBUDGETED":"TO BUDGET",style:{...h.W2.underlinedText,color:h.rS.formInputText,flexShrink:0,textAlign:"left"}}),(0,r.jsx)(F.Z,{binding:e,type:"financial",style:{...h.W2.smallText,fontWeight:"500",color:n<0?h.rS.errorText:h.rS.formInputText}})]})}function ei({projected:e,onClick:t}){let n=e?x.u8.totalBudgetedSaved:x.u8.totalSaved;let o=(0,V.Z)(n)||0;let i=o<0;return(0,r.jsxs)(C.Z,{type:"bare",style:{flexDirection:"column",alignItems:"flex-start"},onClick:t,children:[e?(0,r.jsx)(k,{title:"PROJECTED SAVINGS",style:{...h.W2.underlinedText,color:h.rS.formInputText,textAlign:"left",fontSize:9}}):(0,r.jsx)(k,{title:i?"OVERSPENT":"SAVED",style:{...h.W2.underlinedText,color:h.rS.formInputText,textAlign:"left"}}),(0,r.jsx)(F.Z,{binding:n,type:"financial",style:{...h.W2.smallText,fontWeight:"500",color:e?h.rS.warningText:i?h.rS.errorTextDark:h.rS.formInputText}})]})}function el({name:e,binding:t,style:n,textStyle:o,categoryId:i,month:l,onBudgetAction:s,onEdit:a,isEditing:d}){let c=(0,V.Z)(t);function u(e){s?.(l,"budget-amount",{category:i,amount:e})}function g(e){a?.(i)}return(0,r.jsxs)(f.Z,{style:n,children:[(0,r.jsx)(X._,{initialValue:c,zeroSign:"+",style:{...!d&&{display:"none"},height:J,transform:"translateX(6px)"},focused:d,textStyle:{...h.W2.smallText,...o},onChange:u,onBlur:()=>a?.(null)}),(0,r.jsx)(f.Z,{role:"button",style:{...d&&{display:"none"},justifyContent:"center",alignItems:"flex-end",height:J},children:(0,r.jsx)(F.Z,{binding:t,type:"financial",style:{...h.W2.smallText,...o,...h.W2.underlinedText},getStyle:er.hd,"data-testid":e,onPointerUp:g,onPointerDown:e=>e.preventDefault()})})]})}function es({group:e,pending:t,style:n}){return _jsxs(Card,{style:{marginTop:7,marginBottom:7,opacity:t?1:.4},children:[_jsx(ec,{group:e,blank:true}),e.categories.map((e,t)=>_jsx(ed,{category:e,blank:true,index:t},e.id))]})}function ea({name:e,pending:t,style:n}){return _jsx(ListItem,{style:{flex:1,borderColor:"transparent",borderRadius:4},children:_jsx(Text,{style:styles.smallText,children:e})})}const ed=(0,o.memo)(function e({type:e,category:t,goal:n,budgeted:i,spent:l,balance:s,carryover:a,index:c,blank:u,style:g,month:p,editMode:y,isEditing:m,onEdit:x,isEditingBudget:v,onEditBudget:b,onSave:j,onDelete:w,isBudgetActionMenuOpen:Z,onOpenBudgetActionMenu:T,onBudgetAction:k,show3Cols:D,showBudgetedCol:I}){let W=u?0:1;let _=y||m;let[R,G]=(0,o.useState)(t.name);let[M,H]=(0,o.useState)(t.hidden);let L=(0,q.lL)();let P=(0,q.lL)();(0,o.useEffect)(()=>{if(Z){P.open()}},[Z,P]);(0,o.useEffect)(()=>{if(!m&&L.isOpen){L.close()}},[m,L]);let N=()=>{if(R){j?.({...t,name:R})}else{G(t.name)}x?.(null)};let O=e=>{x?.(null);switch(e){case"toggle-visibility":H(!M);j?.({...t,hidden:!M});break;case"delete":w?.(t.id);break;default:throw new Error(`Unrecognized category menu type: ${e}`)}};let z=(0,o.useRef)();let U=(0,o.useRef)();let K=(e,t,n)=>{k?.(d.sl(d.So(p),e),t,n)};let $=(0,r.jsxs)(ee,{style:{backgroundColor:v?h.rS.tableTextEditing:"transparent",borderBottomWidth:0,borderTopWidth:c>0?1:0,opacity:M?.5:undefined,...g},"data-testid":"row",innerRef:z,children:[(0,r.jsx)(f.Z,{style:{...!_&&{display:"none"},flexDirection:"row",flex:1,justifyContent:"center",alignItems:"center",height:J},children:(0,r.jsx)(B.Z,{focused:m,inputRef:U,rightContent:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(C.Z,{type:"bare",style:{padding:10},...L.getOpenEvents(),children:(0,r.jsx)(S.Z,{width:12,height:12})}),L.isOpen&&(0,r.jsx)(q.u,{position:"bottom-stretch",offset:1,style:{padding:0},onClose:()=>{L.close();U.current?.focus()},children:(0,r.jsx)(A.Z,{onMenuSelect:O,items:[{name:"toggle-visibility",text:M?"Show":"Hide"},{name:"delete",text:"Delete"}]})})]}),style:{width:"100%"},placeholder:"Category Name",value:R,onUpdate:G,onEnter:N,onBlur:e=>{if(!z.current?.contains(e.relatedTarget)){N()}}})}),(0,r.jsx)(f.Z,{role:"button",style:{..._&&{display:"none"},flex:1},children:(0,r.jsx)(E.Z,{style:{...h.W2.smallText,...h.W2.underlinedText,...h.W2.lineClamp(2)},onPointerUp:()=>x?.(t.id),"data-testid":"category-name",children:t.name})}),(0,r.jsxs)(f.Z,{style:{..._&&{display:"none"},justifyContent:"center",alignItems:"center",flexDirection:"row",opacity:W},children:[(0,r.jsx)(el,{name:"budgeted",binding:i,style:{...!D&&!I&&{display:"none"},width:90},textStyle:{...h.W2.smallText,textAlign:"right"},categoryId:t.id,month:p,onBudgetAction:k,isEditing:v,onEdit:b}),(0,r.jsx)(f.Z,{style:{...!D&&I&&{display:"none"},justifyContent:"center",alignItems:"flex-end",width:90,height:J},children:(0,r.jsx)(F.Z,{name:"spent",binding:l,style:{...h.W2.smallText,textAlign:"right"},getStyle:er.hd,type:"financial"})}),(0,r.jsx)(f.Z,{style:{...h.W2.noTapHighlight,justifyContent:"center",alignItems:"flex-end",width:90,height:J},children:(0,r.jsxs)("span",{role:"button",onPointerUp:()=>T?.(t.id),onPointerDown:e=>e.preventDefault(),children:[(0,r.jsx)(Q.Z,{carryover:a,balance:s,goal:n,budgeted:i,balanceStyle:{...h.W2.smallText,...h.W2.underlinedText}}),P.isOpen&&(e==="report"?(0,r.jsx)(et.Z,{offset:5,categoryId:t.id,tooltip:P,monthIndex:d.yl(p),onBudgetAction:K,onClose:()=>{T?.(null)}}):(0,r.jsx)(en.Z,{offset:5,categoryId:t.id,tooltip:P,monthIndex:d.yl(p),onBudgetAction:K,onClose:()=>{T?.(null)}}))]})})]})]});return(0,r.jsx)(f.Z,{children:$})});const ec=(0,o.memo)(function e({group:e,budgeted:t,spent:n,balance:i,editMode:l,isEditing:s,onEdit:a,blank:d,onAddCategory:c,onSave:u,onDelete:g,show3Cols:p,showBudgetedCol:y}){let m=d?0:1;let x=l||s;let[v,b]=(0,o.useState)(e.name);let[j,w]=(0,o.useState)(e.hidden);let Z=(0,q.lL)();(0,o.useEffect)(()=>{if(!s&&Z.isOpen){Z.close()}},[s]);let T=()=>{if(v){u?.({...e,name:v})}else{b(e.name)}a?.(null)};let k=t=>{a?.(null);switch(t){case"add-category":c?.(e.id,e.is_income);break;case"toggle-visibility":w(!j);u?.({...e,hidden:!j});break;case"delete":g?.(e.id);break;default:throw new Error(`Unrecognized group menu type: ${t}`)}};let D=(0,o.useRef)();let I=(0,o.useRef)();let W=(0,r.jsxs)(ee,{style:{flexDirection:"row",alignItems:"center",backgroundColor:h.rS.tableRowHeaderBackground,opacity:j?.5:undefined},"data-testid":"totals",innerRef:D,children:[(0,r.jsx)(f.Z,{style:{...!x&&{display:"none"},flexDirection:"row",flex:1,justifyContent:"center",alignItems:"center",height:J},children:(0,r.jsx)(B.Z,{focused:s,inputRef:I,rightContent:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(C.Z,{type:"bare",style:{padding:10},...Z.getOpenEvents(),children:(0,r.jsx)(S.Z,{width:12,height:12})}),Z.isOpen&&(0,r.jsx)(q.u,{position:"bottom-stretch",offset:1,style:{padding:0},onClose:()=>{Z.close();I.current?.focus()},children:(0,r.jsx)(A.Z,{onMenuSelect:k,items:[{name:"add-category",text:"Add category"},{name:"toggle-visibility",text:j?"Show":"Hide"},{name:"delete",text:"Delete"}]})})]}),style:{width:"100%"},placeholder:"Category Group Name",value:v,onUpdate:b,onEnter:T,onBlur:e=>{if(!D.current?.contains(e.relatedTarget)){T()}}})}),(0,r.jsx)(f.Z,{role:"button",style:{...x&&{display:"none"},flex:1},children:(0,r.jsx)(E.Z,{tabIndex:-1,style:{...h.W2.smallText,...h.W2.underlinedText,...h.W2.lineClamp(2),fontWeight:"500"},onPointerUp:()=>a?.(e.id),"data-testid":"name",children:e.name})}),(0,r.jsxs)(f.Z,{style:{...x&&{display:"none"},flexDirection:"row",justifyContent:"center",alignItems:"center",height:J,opacity:m},children:[(0,r.jsx)(f.Z,{style:{...!p&&!y&&{display:"none"},width:90,height:J,justifyContent:"center",alignItems:"flex-end"},children:(0,r.jsx)(F.Z,{binding:t,style:{...h.W2.smallText,fontWeight:"500",textAlign:"right"},type:"financial"})}),(0,r.jsx)(f.Z,{style:{...!p&&y&&{display:"none"},width:90,height:J,justifyContent:"center",alignItems:"flex-end"},children:(0,r.jsx)(F.Z,{binding:n,style:{...h.W2.smallText,fontWeight:"500",textAlign:"right"},type:"financial"})}),(0,r.jsx)(f.Z,{style:{width:90,height:J,justifyContent:"center",alignItems:"flex-end"},children:(0,r.jsx)(F.Z,{binding:i,style:{...h.W2.smallText,fontWeight:"500",textAlign:"right"},type:"financial"})})]})]});if(!l){return W}return W});const eu=(0,o.memo)(function e({group:e,budgeted:t,balance:n,style:i,onAddCategory:l,onSave:s,onDelete:a,editMode:d,isEditing:c,onEdit:u}){let[g,p]=(0,o.useState)(e.name);let[y,m]=(0,o.useState)(e.hidden);let x=d||c;let v=(0,q.lL)();(0,o.useEffect)(()=>{if(!c&&v.isOpen){v.close()}},[c]);let b=()=>{if(g){s?.({...e,name:g})}else{p(e.name)}u?.(null)};let j=t=>{u?.(null);switch(t){case"add-category":l?.(e.id,e.is_income);break;case"toggle-visibility":m(!y);s?.({...e,hidden:!y});break;case"delete":a?.(e.id);break;default:throw new Error(`Unrecognized group menu type: ${t}`)}};let w=(0,o.useRef)();let Z=(0,o.useRef)();return(0,r.jsxs)(ee,{style:{flexDirection:"row",alignItems:"center",padding:10,backgroundColor:h.rS.tableRowHeaderBackground,opacity:y?.5:undefined,...i},innerRef:w,children:[(0,r.jsx)(f.Z,{style:{...!x&&{display:"none"},flexDirection:"row",flex:1,justifyContent:"center",alignItems:"center",height:J},children:(0,r.jsx)(B.Z,{focused:c,inputRef:Z,rightContent:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(C.Z,{type:"bare",style:{padding:10},...v.getOpenEvents(),children:(0,r.jsx)(S.Z,{width:12,height:12})}),v.isOpen&&(0,r.jsx)(q.u,{position:"bottom-stretch",offset:1,style:{padding:0},onClose:()=>{v.close();Z.current?.focus()},children:(0,r.jsx)(A.Z,{onMenuSelect:j,items:[{name:"add-category",text:"Add category"},{name:"toggle-visibility",text:y?"Show":"Hide"},{name:"delete",text:"Delete"}]})})]}),style:{width:"100%"},placeholder:"Category Group Name",value:g,onUpdate:p,onEnter:b,onBlur:e=>{if(!w.current?.contains(e.relatedTarget)){b()}}})}),(0,r.jsx)(f.Z,{role:"button",style:{...x&&{display:"none"},flex:1,justifyContent:"center",alignItems:"flex-start",height:J},children:(0,r.jsx)(E.Z,{style:{...h.W2.smallText,...h.W2.underlinedText,...h.W2.lineClamp(2),fontWeight:"500"},onPointerUp:()=>u?.(e.id),"data-testid":"name",children:e.name})}),t&&(0,r.jsx)(f.Z,{style:{...x&&{display:"none"},justifyContent:"center",alignItems:"flex-end",width:90,height:J},children:(0,r.jsx)(F.Z,{binding:t,style:{...h.W2.smallText,textAlign:"right",fontWeight:"500"},type:"financial"})}),(0,r.jsx)(f.Z,{style:{...x&&{display:"none"},justifyContent:"center",alignItems:"flex-end",width:90,height:J},children:(0,r.jsx)(F.Z,{binding:n,style:{...h.W2.smallText,textAlign:"right",fontWeight:"500"},type:"financial"})})]})});const eg=(0,o.memo)(function e({category:e,budgeted:t,balance:n,month:i,style:l,onSave:s,onDelete:a,editMode:d,isEditing:c,onEdit:u,onBudgetAction:g,isEditingBudget:p,onEditBudget:y}){let[m,x]=(0,o.useState)(e.name);let[v,b]=(0,o.useState)(e.hidden);let j=d||c;let w=(0,q.lL)();(0,o.useEffect)(()=>{if(!c&&w.isOpen){w.close()}},[c]);let Z=()=>{if(m){s?.({...e,name:m})}else{x(e.name)}u?.(null)};let T=t=>{u?.(null);switch(t){case"toggle-visibility":b(!v);s?.({...e,hidden:!v});break;case"delete":a?.(e.id);break;default:throw new Error(`Unrecognized category menu type: ${t}`)}};let k=(0,o.useRef)();let D=(0,o.useRef)();return(0,r.jsxs)(ee,{style:{flexDirection:"row",alignItems:"center",padding:10,backgroundColor:"transparent",opacity:v?.5:undefined,...l},innerRef:k,children:[(0,r.jsx)(f.Z,{style:{...!j&&{display:"none"},flexDirection:"row",flex:1,justifyContent:"center",alignItems:"center",height:J},children:(0,r.jsx)(B.Z,{focused:c,inputRef:D,rightContent:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(C.Z,{type:"bare",style:{padding:10},...w.getOpenEvents(),children:(0,r.jsx)(S.Z,{width:12,height:12})}),w.isOpen&&(0,r.jsx)(q.u,{position:"bottom-stretch",offset:1,style:{padding:0},onClose:()=>{w.close();D.current?.focus()},children:(0,r.jsx)(A.Z,{onMenuSelect:T,items:[{name:"toggle-visibility",text:v?"Show":"Hide"},{name:"delete",text:"Delete"}]})})]}),style:{width:"100%"},placeholder:"Category Name",value:m,onUpdate:x,onEnter:Z,onBlur:e=>{if(!k.current?.contains(e.relatedTarget)){Z()}}})}),(0,r.jsx)(f.Z,{role:"button",style:{...j&&{display:"none"},flex:1,justifyContent:"center",alignItems:"flex-start",height:J},children:(0,r.jsx)(E.Z,{tabIndex:-1,style:{...h.W2.smallText,...h.W2.underlinedText,...h.W2.lineClamp(2)},onPointerUp:()=>u?.(e.id),"data-testid":"name",children:e.name})}),t&&(0,r.jsx)(f.Z,{style:{...j&&{display:"none"},justifyContent:"center",alignItems:"flex-end",width:90,height:J},children:(0,r.jsx)(el,{name:"budgeted",binding:t,style:{width:90},textStyle:{...h.W2.smallText,textAlign:"right"},categoryId:e.id,month:i,onBudgetAction:g,isEditing:p,onEdit:y})}),(0,r.jsx)(f.Z,{style:{...j&&{display:"none"},justifyContent:"center",alignItems:"flex-end",width:90,height:J},children:(0,r.jsx)(F.Z,{binding:n,style:{...h.W2.smallText,textAlign:"right"},type:"financial"})})]})});const ep=(0,o.memo)(function e({type:e,group:t,editMode:n,editingGroupId:o,onEditGroup:i,editingCategoryId:l,onEditCategory:s,editingBudgetCategoryId:a,onEditCategoryBudget:d,openBudgetActionMenuId:c,onOpenBudgetActionMenu:u,month:g,onSaveCategory:p,onDeleteCategory:f,onAddCategory:y,onSave:m,onDelete:v,onBudgetAction:b,showBudgetedCol:j,show3Cols:S,showHiddenCategories:w}){function C(e){if(!n){return e}return e}return C((0,r.jsxs)(T,{style:{marginTop:7,marginBottom:7},children:[(0,r.jsx)(ec,{group:t,showBudgetedCol:j,budgeted:e==="report"?x.u8.groupBudgeted(t.id):x.aK.groupBudgeted(t.id),spent:e==="report"?x.u8.groupSumAmount(t.id):x.aK.groupSumAmount(t.id),balance:e==="report"?x.u8.groupBalance(t.id):x.aK.groupBalance(t.id),show3Cols:S,editMode:n,onAddCategory:y,onSave:m,onDelete:v,isEditing:o===t.id,onEdit:i}),t.categories.filter(e=>!e.hidden||w).map((t,o)=>{const i=l===t.id;const y=a===t.id;const m=c===t.id;return(0,r.jsx)(ed,{show3Cols:S,type:e,index:o,category:t,goal:e==="report"?x.u8.catGoal(t.id):x.aK.catGoal(t.id),budgeted:e==="report"?x.u8.catBudgeted(t.id):x.aK.catBudgeted(t.id),spent:e==="report"?x.u8.catSumAmount(t.id):x.aK.catSumAmount(t.id),balance:e==="report"?x.u8.catBalance(t.id):x.aK.catBalance(t.id),carryover:e==="report"?x.u8.catCarryover(t.id):x.aK.catCarryover(t.id),showBudgetedCol:j,editMode:n,isEditing:i,onEdit:s,isEditingBudget:y,onEditBudget:d,isBudgetActionMenuOpen:m,onOpenBudgetActionMenu:u,month:g,onSave:p,onDelete:f,onBudgetAction:b,style:{backgroundColor:h.rS.tableBackground}},t.id)})]}))});function eh({type:e,group:t,month:n,onSave:o,onDelete:i,onAddCategory:l,onSaveCategory:s,onDeleteCategory:a,showHiddenCategories:d,editMode:c,editingGroupId:u,onEditGroup:g,editingCategoryId:p,onEditCategory:y,editingBudgetCategoryId:m,onEditCategoryBudget:v,onBudgetAction:b}){return(0,r.jsxs)(f.Z,{children:[(0,r.jsxs)(f.Z,{style:{flexDirection:"row",alignItems:"center",justifyContent:"flex-end",marginTop:50,marginBottom:5,marginRight:14},children:[e==="report"&&(0,r.jsx)(k,{title:"BUDGETED",style:{width:90}}),(0,r.jsx)(k,{title:"RECEIVED",style:{width:90}})]}),(0,r.jsxs)(T,{style:{marginTop:0},children:[(0,r.jsx)(eu,{group:t,budgeted:e==="report"?x.u8.groupBudgeted(t.id):null,balance:e==="report"?x.u8.groupSumAmount(t.id):x.aK.groupSumAmount(t.id),style:{backgroundColor:h.rS.tableRowHeaderBackground},onAddCategory:l,onSave:o,onDelete:i,editMode:c,isEditing:u===t.id,onEdit:g}),t.categories.filter(e=>!e.hidden||d).map((t,o)=>{return(0,r.jsx)(eg,{category:t,month:n,type:e,budgeted:e==="report"?x.u8.catBudgeted(t.id):null,balance:e==="report"?x.u8.catSumAmount(t.id):x.aK.catSumAmount(t.id),index:o,onSave:s,onDelete:a,editMode:c,isEditing:p===t.id,onEdit:y,style:{backgroundColor:h.rS.tableBackground},onBudgetAction:b,isEditingBudget:m===t.id,onEditBudget:v},t.id)})]})]})}function ef({type:e,categoryGroups:t,editingGroupId:n,onEditGroup:o,editingCategoryId:i,onEditCategory:l,editingBudgetCategoryId:s,onEditCategoryBudget:a,openBudgetActionMenuId:d,onOpenBudgetActionMenu:c,editMode:u,gestures:g,month:p,onSaveCategory:h,onDeleteCategory:y,onAddCategory:x,onAddGroup:v,onSaveGroup:b,onDeleteGroup:j,onReorderCategory:S,onReorderGroup:w,onBudgetAction:Z,showBudgetedCol:T,show3Cols:B,showHiddenCategories:E}){const k=(0,m.Z)(e=>{return{incomeGroup:e.find(e=>e.is_income),expenseGroups:e.filter(e=>!e.is_income)}});const{incomeGroup:A,expenseGroups:D}=k(t);return(0,r.jsxs)(f.Z,{"data-testid":"budget-groups",style:{flex:"1 0 auto",overflowY:"auto",paddingBottom:15},children:[D.filter(e=>!e.hidden||E).map(t=>{return(0,r.jsx)(ep,{type:e,group:t,showBudgetedCol:T,gestures:g,month:p,editMode:u,editingGroupId:n,onEditGroup:o,editingCategoryId:i,onEditCategory:l,editingBudgetCategoryId:s,onEditCategoryBudget:a,openBudgetActionMenuId:d,onOpenBudgetActionMenu:c,onSaveCategory:h,onDeleteCategory:y,onAddCategory:x,onSave:b,onDelete:j,onReorderCategory:S,onReorderGroup:w,onBudgetAction:Z,show3Cols:B,showHiddenCategories:E},t.id)}),(0,r.jsx)(f.Z,{style:{alignItems:"flex-start",justifyContent:"flex-start"},children:(0,r.jsx)(C.Z,{onPointerUp:v,style:{fontSize:12,margin:10},children:"Add Group"})}),A&&(0,r.jsx)(eh,{type:e,group:A,month:p,onSave:b,onDelete:j,onAddCategory:x,onSaveCategory:h,onDeleteCategory:y,showHiddenCategories:E,editMode:u,editingGroupId:n,onEditGroup:o,editingCategoryId:i,onEditCategory:l,editingBudgetCategoryId:s,onEditCategoryBudget:a,onBudgetAction:Z})]})}function ey(e){const{type:t,categoryGroups:n,month:l,monthBounds:s,editMode:a,onPrevMonth:c,onNextMonth:u,onSaveGroup:g,onDeleteGroup:p,onAddGroup:y,onAddCategory:m,onSaveCategory:v,onDeleteCategory:b,onEditMode:j,onReorderCategory:S,onReorderGroup:Z,onShowBudgetSummary:T,onBudgetAction:B,onRefresh:E,onSwitchBudgetType:A,savePrefs:D,pushModal:I}=e;const W="group";const[_,R]=(0,o.useState)(null);function G(e){J(W,e)}const M="category";const[H,L]=(0,o.useState)(null);function P(e){J(M,e)}const N="category-budget";const[O,U]=(0,o.useState)(null);function V(e){J(N,e)}const Y="budget-menu";const[q,X]=(0,o.useState)(null);function Q(e){J(Y,e)}function J(e,t){const n=_||H||O||q;R(e===W&&!n?t:null);L(e===M&&!n?t:null);U(e===N&&!n?t:null);X(e===Y&&!n?t:null)}const{width:ee}=(0,w.F)();const et=ee>=360;let en=d.dK();let er=(0,$.Z)();const el=(0,i.v9)(e=>{return e.prefs?.local?.toggleMobileDisplayPref||true});const es=(0,i.v9)(e=>{return e.prefs?.local?.["budget.showHiddenCategories"]||false});let[ea,ed]=(0,o.useState)(!el&&!document.cookie.match(/mobileShowBudgetedColPref=true/));function ec(){ed(!ea);if(!ea){D({mobileShowBudgetedColPref:true})}}let eu={padding:0,backgroundColor:"transparent",borderRadius:"unset"};return(0,r.jsx)(K.Z.Provider,{value:d.cv(l,t),children:(0,r.jsxs)(f.Z,{style:{flex:1,overflowY:"hidden"},"data-testid":"budget-table",children:[(0,r.jsx)(ev,{currentMonth:l,toggleDisplay:ec,monthBounds:s,editMode:a,onEditMode:j,onPrevMonth:c,onNextMonth:u,showHiddenCategories:es,savePrefs:D,pushModal:I,onSwitchBudgetType:A}),(0,r.jsxs)(f.Z,{style:{flexDirection:"row",flex:"0 0 auto",padding:10,paddingRight:14,backgroundColor:h.rS.tableRowHeaderBackground,borderBottomWidth:1,borderColor:h.rS.tableBorder},children:[t==="report"?(0,r.jsx)(ei,{projected:l>=en,onClick:T}):(0,r.jsx)(eo,{toBudget:x.aK.toBudget,onClick:T}),(0,r.jsx)(f.Z,{style:{flex:1}}),(et||ea)&&(0,r.jsx)(C.Z,{type:"bare",disabled:et,onClick:ec,style:{...eu,padding:"0 8px",margin:"0 -8px",background:ea&&!et?`linear-gradient(-45deg, ${h.rS.formInputBackgroundSelection} 8px, transparent 0)`:null},children:(0,r.jsxs)(f.Z,{style:{flexBasis:90,width:90,justifyContent:"center",alignItems:"flex-end"},children:[(0,r.jsx)(k,{title:"BUDGETED",style:{color:h.rS.buttonNormalText}}),(0,r.jsx)(F.Z,{binding:t==="report"?x.u8.totalBudgetedExpense:x.aK.totalBudgeted,type:"financial",style:{...h.W2.smallText,color:h.rS.buttonNormalText,textAlign:"right",fontWeight:"500"},formatter:e=>{return er(-parseFloat(e||"0"),"financial")}})]})}),(et||!ea)&&(0,r.jsx)(C.Z,{type:"bare",disabled:et,onClick:ec,style:{...eu,background:!ea&&!et?`linear-gradient(45deg, ${h.rS.formInputBackgroundSelection} 8px, transparent 0)`:null},children:(0,r.jsxs)(f.Z,{style:{width:90,justifyContent:"center",alignItems:"flex-end"},children:[(0,r.jsx)(k,{title:"SPENT",style:{color:h.rS.formInputText}}),(0,r.jsx)(F.Z,{binding:t==="report"?x.u8.totalSpent:x.aK.totalSpent,type:"financial",style:{...h.W2.smallText,color:h.rS.formInputText,textAlign:"right",fontWeight:"500"}})]})}),(0,r.jsxs)(f.Z,{style:{width:90,justifyContent:"center",alignItems:"flex-end"},children:[(0,r.jsx)(k,{title:"BALANCE",style:{color:h.rS.formInputText}}),(0,r.jsx)(F.Z,{binding:t==="report"?x.u8.totalLeftover:x.aK.totalBalance,type:"financial",style:{...h.W2.smallText,color:h.rS.formInputText,textAlign:"right",fontWeight:"500"}})]})]}),(0,r.jsx)(f.Z,{style:{overflowY:"auto"},children:(0,r.jsx)(z,{onRefresh:E,children:!a?(0,r.jsx)(f.Z,{children:(0,r.jsx)(ef,{type:t,categoryGroups:n,showBudgetedCol:ea,show3Cols:et,showHiddenCategories:es,month:l,editMode:a,editingGroupId:_,onEditGroup:G,editingCategoryId:H,onEditCategory:P,editingBudgetCategoryId:O,onEditCategoryBudget:V,openBudgetActionMenuId:q,onOpenBudgetActionMenu:Q,onSaveCategory:v,onDeleteCategory:b,onAddCategory:m,onAddGroup:y,onSaveGroup:g,onDeleteGroup:p,onReorderCategory:S,onReorderGroup:Z,onBudgetAction:B})}):(0,r.jsx)(f.Z,{children:(0,r.jsx)(ef,{type:t,categoryGroups:n,showBudgetedCol:ea,show3Cols:et,showHiddenCategories:es,editMode:a,editingGroupId:_,onEditGroup:G,editingCategoryId:H,onEditCategory:P,editingBudgetCategoryId:O,onEditCategoryBudget:V,onSaveCategory:v,onDeleteCategory:b,onAddCategory:m,onAddGroup:y,onSaveGroup:g,onDeleteGroup:p,onReorderCategory:S,onReorderGroup:Z,onBudgetAction:B})})})})]})})}const em=80;const ex=50;function ev({currentMonth:e,monthBounds:t,onPrevMonth:n,onNextMonth:o,editMode:i,onEditMode:l,showHiddenCategories:s,savePrefs:a,pushModal:c,onSwitchBudgetType:u}){let g=(0,U.o1)();let p=e>t.start;let y=e<d.W9(t.end,1);let m={padding:10,margin:2};let x=()=>{a({"budget.showHiddenCategories":!s})};let w=(0,q.lL)();let Z=(0,v.Z)("reportBudget");let T=e=>{w.close();switch(e){case"edit-mode":l?.(true);break;case"toggle-hidden-categories":x();break;case"switch-budget-type":c("switch-budget-type",{onSwitch:u});break;default:throw new Error(`Unrecognized menu option: ${e}`)}};return(0,r.jsxs)(f.Z,{style:{flexDirection:"row",flexShrink:0,height:ex,backgroundColor:h.rS.mobileHeaderBackground},children:[(0,r.jsxs)(f.Z,{style:{width:em,flexDirection:"row"},children:[g&&(0,r.jsx)(Y.rD,{isMobile:true,style:{color:h.rS.mobileHeaderText,paddingLeft:12,paddingRight:12}}),(0,r.jsx)(f.Z,{style:{flex:1}})]}),(0,r.jsxs)(f.Z,{style:{flex:1,justifyContent:"center",alignItems:"center",flexDirection:"row"},children:[(0,r.jsx)(C.Z,{type:"bare",onClick:p&&n,style:{...m,opacity:p?1:.6,color:h.rS.mobileHeaderText},hoveredStyle:{color:h.rS.mobileHeaderText,background:h.rS.mobileHeaderTextHover},children:(0,r.jsx)(b.Z,{width:"15",height:"15",style:{margin:-5}})}),(0,r.jsx)(E.Z,{style:{color:h.rS.mobileHeaderText,textAlign:"center",fontSize:16,fontWeight:500},children:d.WU(e,"MMMM ''yy")}),(0,r.jsx)(C.Z,{type:"bare",onClick:y&&o,style:{...m,opacity:y?1:.6,color:h.rS.mobileHeaderText},hoveredStyle:{color:h.rS.mobileHeaderText,background:h.rS.mobileHeaderTextHover},children:(0,r.jsx)(j.Z,{width:"15",height:"15",style:{margin:-5}})})]}),(0,r.jsxs)(f.Z,{style:{width:em,flexDirection:"row"},children:[(0,r.jsx)(f.Z,{style:{flex:1}}),!i?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(C.Z,{type:"bare",hoveredStyle:{color:h.rS.mobileHeaderText,background:h.rS.mobileHeaderTextHover},style:{paddingTop:15,paddingBottom:15,margin:10},...w.getOpenEvents(),children:(0,r.jsx)(S.Z,{width:"20",height:"20",style:{color:h.rS.mobileHeaderText}})}),w.isOpen&&(0,r.jsx)(q.u,{position:"bottom-right",width:200,style:{padding:0},onClose:w.close,children:(0,r.jsx)(A.Z,{onMenuSelect:T,items:[{name:"edit-mode",text:"Edit mode"},{name:"toggle-hidden-categories",text:"Toggle hidden categories"},Z&&{name:"switch-budget-type",text:"Switch budget type"}]})})]}):(0,r.jsx)(C.Z,{type:"bare",hoveredStyle:{color:h.rS.mobileHeaderText,background:h.rS.mobileHeaderTextHover},style:{backgroundColor:"transparent",padding:10,paddingTop:15,paddingBottom:15,margin:10,...h.W2.text,color:h.rS.mobileHeaderText},onClick:()=>l?.(false),children:"Done"})]})]})};class eb extends o.Component{constructor(e){super(e);const t=d.dK();this.state={bounds:{start:t,end:t},currentMonth:t,initialized:false,editMode:false,categoryGroups:[]}}async loadCategories(){let e=await this.props.getCategories();this.setState({categoryGroups:e.grouped})}async componentDidMount(){this.loadCategories();const{start:e,end:t}=await (0,s.lW)("get-budget-bounds");this.setState({bounds:{start:e,end:t}});await (0,er.UC)(this.props.budgetType,this.props.spreadsheet,this.state.currentMonth);this.setState({initialized:true});let n=(0,s.oL)("sync-event",({type:e,tables:t})=>{if(e==="success"&&(t.includes("categories")||t.includes("category_mapping")||t.includes("category_groups"))){this.loadCategories()}});this.cleanup=()=>{n()}}componentWillUnmount(){this.cleanup?.()}onShowBudgetSummary=()=>{if(this.props.budgetType==="report"){this.props.pushModal("report-budget-summary",{month:this.state.currentMonth})}else{this.props.pushModal("rollover-budget-summary",{month:this.state.currentMonth,onBudgetAction:this.props.applyBudgetAction})}};onBudgetAction=e=>{const{currentMonth:t}=this.state;this.props.applyBudgetAction(t,e,this.state.bounds)};onAddGroup=()=>{this.props.pushModal("new-category-group",{onValidate:e=>!e?"Name is required.":null,onSubmit:async e=>{const t=await this.props.createGroup(e);this.setState(n=>({categoryGroups:(0,a.Rp)(n.categoryGroups,{id:t,name:e,categories:[],is_income:0})}))}})};onAddCategory=(e,t)=>{this.props.pushModal("new-category",{onValidate:e=>!e?"Name is required.":null,onSubmit:async n=>{const r=await this.props.createCategory(n,e,t);this.setState(o=>({categoryGroups:(0,a.i8)(o.categoryGroups,{id:r,name:n,cat_group:e,is_income:t?1:0})}))}})};onSaveGroup=e=>{this.props.updateGroup(e);this.setState(t=>({categoryGroups:(0,a.mD)(t.categoryGroups,e)}))};onDeleteGroup=async e=>{let t=this.state.categoryGroups?.find(t=>t.id===e);if(!t){return}let n=false;for(let e of t.categories){if(await (0,s.lW)("must-category-transfer",{id:e.id})){n=true;break}}if(n){this.props.pushModal("confirm-category-delete",{group:e,onDelete:t=>{this.props.deleteGroup(e,t);this.setState(t=>({categoryGroups:(0,a.iE)(t.categoryGroups,e)}))}})}else{this.props.deleteGroup(e);this.setState(t=>({categoryGroups:(0,a.iE)(t.categoryGroups,e)}))}};onSaveCategory=e=>{this.props.updateCategory(e);this.setState(t=>({categoryGroups:(0,a.yr)(t.categoryGroups,e)}))};onDeleteCategory=async e=>{const t=await (0,s.lW)("must-category-transfer",{id:e});if(t){this.props.pushModal("confirm-category-delete",{category:e,onDelete:t=>{if(e!==t){this.props.deleteCategory(e,t);this.setState(t=>({categoryGroups:(0,a.uu)(t.categoryGroups,e)}))}}})}else{this.props.deleteCategory(e);this.setState(t=>({categoryGroups:(0,a.uu)(t.categoryGroups,e)}))}};onReorderCategory=(e,{inGroup:t,aroundCategory:n})=>{let{categoryGroups:r}=this.state;let o,i;if(t){o=t}else if(n){let{id:e,position:t}=n;let l=r.find(t=>t.categories.find(t=>t.id===e));if(t==="bottom"){let{categories:t}=l;let n=t.findIndex(t=>t.id===e);e=n<t.length-1?t[n+1].id:null}o=l.id;i=e}this.props.moveCategory(e,o,i);this.setState({categoryGroups:(0,a.Wr)(r,e,o,i)})};onReorderGroup=(e,t,n)=>{let{categoryGroups:r}=this.state;if(n==="bottom"){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:(0,a.eq)(r,e,t)})};sync=async()=>{const{updated:e,error:t}=await this.props.sync();if(t){return"error"}else if(e){return"updated"}return null};onPrevMonth=async()=>{let{spreadsheet:e,budgetType:t}=this.props;let n=d.W9(this.state.currentMonth,1);await (0,er.UC)(t,e,n);this.setState({currentMonth:n,initialized:true})};onNextMonth=async()=>{let{spreadsheet:e,budgetType:t}=this.props;let n=d.zI(this.state.currentMonth,1);await (0,er.UC)(t,e,n);this.setState({currentMonth:n,initialized:true})};onOpenActionSheet=()=>{let{budgetType:e}=this.props;let t=["Edit Categories","Copy last month’s budget","Set budgets to zero","Set budgets to 3 month average",e==="report"&&"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:true});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:if(e==="report"){this.onBudgetAction("set-all-future")}break;default:}})};onSwitchBudgetType=async()=>{const{spreadsheet:e,budgetType:t,loadPrefs:n}=this.props;const{bounds:r,currentMonth:o}=this.state;this.setState({initialized:false});const i=t==="rollover"?"report":"rollover";await (0,er.Gz)(i,e,r,o,()=>n());this.setState({initialized:true})};render(){const{currentMonth:e,bounds:t,editMode:n,initialized:o}=this.state;const{categories:i,categoryGroups:l,prefs:s,savePrefs:a,budgetType:d,navigation:c,applyBudgetAction:u,pushModal:g}=this.props;let m=s.numberFormat||"comma-dot";let x=s.hideFraction||false;if(!l||!o){return(0,r.jsx)(f.Z,{style:{flex:1,backgroundColor:h.rS.mobilePageBackground,alignItems:"center",justifyContent:"center",marginBottom:25},children:(0,r.jsx)(p.Z,{width:25,height:25})})}return(0,r.jsx)(y,{onSync:this.sync,children:({refreshing:o,onRefresh:s})=>(0,r.jsx)(ey,{categories:i,categoryGroups:l,type:d,month:e,monthBounds:t,navigation:c,editMode:n,onEditMode:e=>this.setState({editMode:e}),onShowBudgetSummary:this.onShowBudgetSummary,onPrevMonth:this.onPrevMonth,onNextMonth:this.onNextMonth,onSaveGroup:this.onSaveGroup,onDeleteGroup:this.onDeleteGroup,onAddGroup:this.onAddGroup,onAddCategory:this.onAddCategory,onSaveCategory:this.onSaveCategory,onDeleteCategory:this.onDeleteCategory,onReorderCategory:this.onReorderCategory,onReorderGroup:this.onReorderGroup,onOpenActionSheet:()=>{},onBudgetAction:u,onRefresh:s,onSwitchBudgetType:this.onSwitchBudgetType,savePrefs:a,pushModal:g},m+x)})}}function ej(){let{list:e,grouped:t}=(0,u.Z)();let n=(0,i.v9)(e=>e.prefs.local.budgetType||"rollover");let o=(0,i.v9)(e=>e.prefs.local);let s=(0,c.o)();let a=(0,l.M)();(0,g.j)(h.rS.mobileViewTheme);return(0,r.jsx)(eb,{categoryGroups:t,categories:e,budgetType:n,prefs:o,...s,spreadsheet:a})}var eS=n(24868);var ew=n(74684);var eC=n(42308);var eZ=n(13308);function eT({name:e,amount:t,style:n={}}){return(0,r.jsxs)(f.Z,{style:{flex:1,flexDirection:"row",marginTop:10,marginRight:10,color:h.rS.pageTextLight,width:"100%",...n},children:[(0,r.jsx)(f.Z,{style:{flex:1},children:(0,r.jsx)(E.Z,{style:{...h.W2.text,textTransform:"uppercase",fontSize:13},"data-testid":"name",children:e})}),(0,r.jsx)(F.Z,{binding:t,style:{...h.W2.text,fontSize:13},type:"financial"})]})}function eB({account:e,updated:t,getBalanceQuery:n,onSelect:o}){return(0,r.jsx)(f.Z,{style:{flex:1,flexDirection:"row",backgroundColor:h.rS.tableBackground,boxShadow:`0 1px 1px ${h.rS.mobileAccountShadow}`,borderRadius:6,marginTop:10,marginRight:10,width:"100%"},"data-testid":"account",children:(0,r.jsxs)(C.Z,{onMouseDown:()=>o(e.id),style:{flexDirection:"row",border:"1px solid "+h.rS.pillBorder,flex:1,alignItems:"center",borderRadius:6,"&:active":{opacity:.1}},children:[(0,r.jsx)(f.Z,{style:{flex:1,margin:"10px 0"},children:(0,r.jsxs)(f.Z,{style:{flexDirection:"row",alignItems:"center"},children:[(0,r.jsx)(eC.Z,{style:{...h.W2.text,fontSize:17,fontWeight:600,color:t?h.rS.mobileAccountText:h.rS.pillText,paddingRight:30},"data-testid":"account-name",children:e.name}),e.bankId&&(0,r.jsx)(f.Z,{style:{backgroundColor:h.rS.noticeBackgroundDark,marginLeft:"-23px",width:8,height:8,borderRadius:8}})]})}),(0,r.jsx)(F.Z,{binding:n(e),type:"financial",style:{fontSize:16,color:"inherit"},getStyle:e=>e<0&&{color:"inherit"},"data-testid":"account-balance"})]})})}function eE(){return(0,r.jsx)(f.Z,{style:{flex:1,padding:30},children:(0,r.jsx)(E.Z,{style:h.W2.text,children:"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."})})}function ek({accounts:e,updatedAccounts:t,getBalanceQuery:n,getOnBudgetBalance:o,getOffBudgetBalance:i,onAddAccount:l,onSelectAccount:s,onSync:a}){const d=e.filter(e=>e.offbudget===0);const c=e.filter(e=>e.offbudget===1);const u={backgroundColor:"transparent",color:"white"};return(0,r.jsx)(f.Z,{style:{flex:1,backgroundColor:h.rS.mobilePageBackground},children:(0,r.jsxs)(eZ.T,{title:"Accounts",titleStyle:{backgroundColor:h.rS.mobileHeaderBackground,color:h.rS.mobileHeaderText,fontSize:16},headerRightContent:(0,r.jsx)(C.Z,{type:"bare",style:{paddingLeft:12,paddingRight:12,...u},activeStyle:u,hoveredStyle:u,onClick:l,children:(0,r.jsx)(ew.Z,{width:20,height:20})}),children:[e.length===0&&(0,r.jsx)(eE,{}),(0,r.jsxs)(z,{onRefresh:a,children:[d.length>0&&(0,r.jsx)(eT,{name:"For Budget",amount:o()}),d.map(e=>(0,r.jsx)(eB,{account:e,updated:t.includes(e.id),getBalanceQuery:n,onSelect:s},e.id)),c.length>0&&(0,r.jsx)(eT,{name:"Off budget",amount:i(),style:{marginTop:30}}),c.map(e=>(0,r.jsx)(eB,{account:e,updated:t.includes(e.id),getBalanceQuery:n,onSelect:s},e.id))]})]})})}function eA(){let e=(0,i.v9)(e=>e.queries.accounts);let t=(0,i.v9)(e=>e.queries.newTransactions);let n=(0,i.v9)(e=>e.queries.updatedAccounts);let l=(0,i.v9)(e=>e.prefs.local.numberFormat||"comma-dot");let s=(0,i.v9)(e=>e.prefs.local.hideFraction||false);const{list:a}=(0,u.Z)();let{getAccounts:d,replaceModal:p,syncAndDownload:y}=(0,c.o)();const m=(0,o.useState)({});const v=(0,eS.Z)();(0,o.useEffect)(()=>{(async()=>d())()},[]);const b=e=>{v(`/accounts/${e}`)};const j=e=>{v(`/transaction/${e}`)};(0,g.j)(h.rS.mobileViewTheme);return(0,r.jsx)(f.Z,{style:{flex:1},children:(0,r.jsx)(ek,{accounts:e.filter(e=>!e.closed),categories:a,transactions:m||[],updatedAccounts:n,newTransactions:t,getBalanceQuery:x.cW,getOnBudgetBalance:x.SZ,getOffBudgetBalance:x.An,onAddAccount:()=>p("add-account"),onSelectAccount:b,onSelectTransaction:j,onSync:y},l+s)})}var eD=n(59379);var eI=n(82478);var eW=n.n(eI);var e_=n(65485);var eR=n(43044);var eG=n(62829);var eM=n(10959);var eH=n(76804);var eL=n(45485);var eP=n(89116);var eN=n(28339);var eO=n(10646);var ez=n(33605);function eU({accountName:e,onSearch:t}){const[n,i]=(0,o.useState)("");return(0,r.jsx)(f.Z,{style:{flexDirection:"row",alignItems:"center",backgroundColor:h.rS.mobilePageBackground,margin:"11px auto 4px",padding:10,width:"100%"},children:(0,r.jsx)(B.Z,{leftContent:(0,r.jsx)(eN.Z,{style:{width:13,height:13,flexShrink:0,color:n?h.rS.formInputTextHighlight:"inherit",margin:5,marginRight:0}}),value:n,onUpdate:e=>{i(e);t(e)},placeholder:`Search ${e}`,style:{backgroundColor:h.rS.tableBackground,border:`1px solid ${h.rS.formInputBorder}`,fontSize:15,flex:1,height:32,marginLeft:4,padding:8}})})}const eF=70;const eK=50;function e$({account:e,prependTransactions:t,transactions:n,accounts:i,categories:l,payees:s,balance:a,isNewTransaction:d,onLoadMore:u,onSearch:g,onSelectTransaction:p,pushModal:y}){let m=(0,o.useMemo)(()=>{return t.concat(n)},[t,n]);const{syncAndDownload:x}=(0,c.o)();const v=async()=>{await x(e.id)};return(0,r.jsxs)(f.Z,{style:{flex:1,backgroundColor:h.rS.mobilePageBackground,overflowY:"hidden",flexGrow:1},children:[(0,r.jsxs)(f.Z,{style:{alignItems:"center",flexShrink:0,overflowY:"hidden",top:0},children:[(0,r.jsx)(eV,{account:e}),(0,r.jsx)(k,{title:"BALANCE",style:{marginTop:10}}),(0,r.jsx)(F.Z,{binding:a,type:"financial",style:{fontSize:18,fontWeight:"500"},getStyle:e=>({color:e<0?h.rS.errorText:h.rS.pillTextHighlighted}),"data-testid":"account-balance"}),(0,r.jsx)(eU,{accountName:e.name,onSearch:g})]}),(0,r.jsx)(z,{onRefresh:v,children:(0,r.jsx)(ez.z,{transactions:m,categories:l,accounts:i,payees:s,showCategory:!e.offbudget,isNew:d,onLoadMore:u,onSelect:p,pushModal:y})})]})}function eV({account:e}){return(0,r.jsxs)(f.Z,{style:{flexDirection:"row",flexShrink:0,height:eK,width:"100%",backgroundColor:h.rS.mobileHeaderBackground},children:[(0,r.jsxs)(f.Z,{style:{width:eF,flexDirection:"row"},children:[(0,r.jsx)(C.Z,{type:"bare",style:{color:h.rS.mobileHeaderText,justifyContent:"center",margin:10,paddingLeft:5,paddingRight:3},hoveredStyle:{color:h.rS.mobileHeaderText,background:h.rS.mobileHeaderTextHover},children:(0,r.jsxs)(eL.rU,{to:-1,style:{...h.W2.noTapHighlight,alignItems:"center",display:"flex",textDecoration:"none"},children:[(0,r.jsx)(eP.Z,{style:{width:30,height:30,margin:-10,marginLeft:-5}}),(0,r.jsx)(E.Z,{style:{...h.W2.text,fontWeight:500,marginLeft:5,marginRight:5},children:"Back"})]})}),(0,r.jsx)(f.Z,{style:{flex:1}})]}),(0,r.jsx)(f.Z,{style:{flex:1,fontSize:16,fontWeight:500,alignItems:"center",justifyContent:"center",color:h.rS.mobileHeaderText},role:"heading",children:e.name}),(0,r.jsxs)(f.Z,{style:{width:eF,flexDirection:"row"},children:[(0,r.jsx)(f.Z,{style:{flex:1}}),(0,r.jsx)(eO.Z,{to:"transactions/new",type:"bare","aria-label":"Add Transaction",style:{justifyContent:"center",padding:10,margin:10,color:h.rS.mobileHeaderText},hoveredStyle:{color:h.rS.mobileHeaderText,background:h.rS.mobileHeaderTextHover},activeStyle:{background:"transparent"},children:(0,r.jsx)(ew.Z,{width:20,height:20,style:{margin:-5}})})]})]})};const eY=(0,m.Z)((e,t)=>{let n=x.PK(e,"_account");if(t){n={id:null}}return e=>{e=e.filter({$and:[n,{"_account.closed":false}]});return e.orderBy({next_date:"desc"})}});function eq({accountId:e,children:t}){let n=(0,eG.oF)();if(n==null){return t(null)}let r=n.schedules.filter(e=>!e.completed&&["due","upcoming","missed"].includes(n.statuses.get(e.id)));return t(r.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 eX;function eQ(e){const t=(0,i.v9)(e=>e.queries.accounts);const n=(0,eS.Z)();const[l,a]=(0,o.useState)([]);const[d,c]=(0,o.useState)("");const[p,f]=(0,o.useState)();let y=(0,i.v9)(e=>({payees:e.queries.payees,newTransactions:e.queries.newTransactions,prefs:e.prefs.local,dateFormat:e.prefs.local.dateFormat||"MM/dd/yyyy"}));let m=(0,i.I0)();let v=(0,o.useMemo)(()=>(0,e_.DE)(eR,m),[m]);const{id:b}=(0,eD.UO)();const j=()=>x.yf(b);const S=e=>{if(eX){eX.unsubscribe()}eX=(0,eM.Fr)(e.options({splits:"grouped"}).select("*"),e=>a(e),{pageCount:150,mapper:eH.Xt})};const w=async()=>{let e=j();f(e);S(e)};(0,o.useEffect)(()=>{let e;async function n(){e=(0,s.oL)("sync-event",({type:e,tables:t})=>{if(e==="applied"){if(t.includes("transactions")||t.includes("category_mapping")||t.includes("payee_mapping")){eX?.run()}if(t.includes("payees")||t.includes("payee_mapping")){v.getPayees()}}});if(t.length===0){await v.getAccounts()}await v.initiallyLoadPayees();await w();v.markAccountRead(b)}n();return()=>e()},[]);const C=(0,u.Z)();const Z=eW()(()=>{if(d===""&&p){S(p)}else if(d&&p){S(x.jS(p,d,y.dateFormat))}},150);(0,o.useEffect)(Z,[d,p,y.dateFormat]);(0,g.j)(h.rS.mobileViewTheme);if(!t||!t.length){return null}const T=t.find(e=>e.id===b);const B=e=>{return y.newTransactions.includes(e)};const E=async e=>{eX.unsubscribe();c(e)};const k=e=>{if(!(0,eH.J4)(e.id)){n(`transactions/${e.id}`)}};let A=x.cW(T);let D=y.prefs.numberFormat||"comma-dot";let I=y.prefs.hideFraction||false;return(0,r.jsx)(eG.up,{transform:eY(b,d!==""),children:(0,r.jsx)(eq,{accountId:e.accountId,children:e=>e==null?null:(0,o.createElement)(e$,{...y,...v,key:D+I,account:T,accounts:t,categories:C.list,payees:y.payees,transactions:l,prependTransactions:e||[],balance:A,isNewTransaction:B,onLoadMore:()=>{eX?.fetchNext()},onSearch:E,onSelectTransaction:k})})})};},25258:function(e,t,n){n.d(t,{Rp:function(){return a},Wr:function(){return i},eq:function(){return l},i8:function(){return r},iE:function(){return c},mD:function(){return d},uu:function(){return s},yr:function(){return o}});function r(e,t){return e.map(e=>{if(e.id===t.cat_group){e.categories=[t,...e.categories]}return{...e}})}function o(e,t){return e.map(e=>{if(e.id===t.cat_group){e.categories=e.categories.map(e=>{if(e.id===t.id){return{...e,...t}}return e})}return e})}function i(e,t,n,r){if(t===r){return e}let o=e.reduce((e,n)=>{return e||n.categories.find(e=>e.id===t)},null);o={...o,cat_group:n};return e.map(e=>{if(e.id===n){e.categories=e.categories.reduce((e,n)=>{if(n.id===r){e.push(o);e.push(n)}else if(n.id!==t){e.push(n)}return e},[]);if(!r){e.categories.push(o)}}else{e.categories=e.categories.filter(e=>e.id!==t)}return{...e}})}function l(e,t,n){if(t===n){return e}const r=e.find(e=>e.id===t);e=e.reduce((e,o)=>{if(o.id===n){e.push(r);e.push(o)}else if(o.id!==t){e.push(o)}return e},[]);if(!n){e.push(r)}return e}function s(e,t){return e.map(e=>{e.categories=e.categories.filter(e=>e.id!==t);return e})}function a(e,t){return[...e,t]}function d(e,t){return e.map(e=>{if(e.id===t.id){return{...e,...t}}return e})}function c(e,t){return e.filter(e=>e.id!==t)}}}]);
|
|
2
|
-
//# sourceMappingURL=narrow-components.b0c96dd8.chunk.js.map
|