PageSourceSearch

https://picsa.app/budget-home.page-HN25XQN4.js

js picsa.app collected 2026-09-24 13:54:57 UTC 18,084 bytes, 5 lines download raw bytes

1
2!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="39e66a47-a8ff-5b8d-969c-7038627d3ee8")}catch(e){}}();
3import{a as Ue,b as Je,f as $}from"./chunk-7VTVGGSW.js";import{a as Qe,b as N,c as Xe,d as Ye,e as Ze,f as Ke,g as et,l as ee}from"./chunk-YE7H3C24.js";import{b as We,d as L}from"./chunk-KK65TKUC.js";import"./chunk-UOLEWT7L.js";import"./chunk-LYSXBDVD.js";import"./chunk-424JVOYS.js";import"./chunk-6AMIQV3W.js";import"./chunk-3VUDP5Q5.js";import"./chunk-SUVH4J3P.js";import{a as qe,b as ze,c as Ge}from"./chunk-VTWB5HMC.js";import"./chunk-FDWSRPXX.js";import"./chunk-2MXUM77W.js";import{a as He}from"./chunk-WVPCVUQO.js";import{c as Ae}from"./chunk-SSN5YNTR.js";import{a as je}from"./chunk-VNA73KOA.js";import"./chunk-Q7AJCOD5.js";import"./chunk-2YIJBBMR.js";import"./chunk-WD5HII6S.js";import"./chunk-Q3RWQ5A5.js";import"./chunk-IRFZTFB6.js";import"./chunk-AB6CNMKT.js";import"./chunk-LMPCKDIR.js";import"./chunk-W5YL5VGR.js";import"./chunk-SU5OQRUX.js";import"./chunk-JRMHBLPY.js";import"./chunk-RB7R5FQT.js";import"./chunk-7HJMZUSI.js";import{a as Le,b as Ne,c as Re,d as $e}from"./chunk-6HP77SIO.js";import"./chunk-OPWZR4IS.js";import"./chunk-7ZQEJEC5.js";import{q as Ee}from"./chunk-O2NKD77F.js";import"./chunk-VBQOIA46.js";import{b as Se,d as we,e as Ie,f as Te}from"./chunk-JYCCS7T3.js";import"./chunk-QDBGDYKO.js";import"./chunk-4JPJOJOR.js";import"./chunk-IMKFT3J4.js";import"./chunk-KMVLG67O.js";import{h as Fe}from"./chunk-SBM3DHN4.js";import"./chunk-PQDUNOZA.js";import{l as Ve}from"./chunk-AKHHFTQX.js";import{b as K,c as Oe}from"./chunk-V2TYL6WZ.js";import{b as Y,h as Z}from"./chunk-KLH2IKYX.js";import"./chunk-CKCOABVW.js";import"./chunk-MD4DXQLO.js";import"./chunk-4RBR43TI.js";import{b as ve,ba as ke,da as X,ea as Pe,g as xe,ha as De,l as Be,w as U}from"./chunk-LSNO5HZ2.js";import{W as Me,Y as F,ba as J}from"./chunk-ZNUREHCD.js";import"./chunk-C6QM2M43.js";import{b as V,d as O}from"./chunk-P7ZY72I6.js";import{F as ye,Q as oe,g as fe,v as Ce,y as he,z as be}from"./chunk-GPJRIZB4.js";import{$b as S,Ac as l,Bc as m,Cb as T,Cc as R,Da as E,Fc as ie,Gc as ne,Hc as re,Mc as z,Nb as A,Ob as H,Pb as P,Pc as p,Qb as D,Qc as s,Sb as j,Sc as ue,Tb as W,Vb as Q,Wb as w,Xb as I,Yb as u,Z as de,Zb as r,Zc as G,_ as pe,_b as a,_c as ge,cd as ae,ed as _e,f as te,gb as o,gc as x,ka as h,kc as b,mc as f,qc as se,ra as g,rc as me,sa as _,sc as ce,v as le,wb as k,wc as q}from"./chunk-7LIUMG6J.js";import"./chunk-IKQ5KY3V.js";import"./chunk-O2KZL4UF.js";import"./chunk-BJZCDQLZ.js";import"./chunk-HE446HX7.js";import"./chunk-VDGN6CCQ.js";import{a as v,b as M,k as y}from"./chunk-PSG3WUG7.js";var pt=["stepper"],st=i=>[i],mt=(i,c)=>c.id;function ct(i,c){i&1&&(l(0),p(1,"translate")),i&2&&m(s(1,1,"Enterprise"))}function ut(i,c){if(i&1){let e=x();r(0,"budget-card",17),H("fade-out-delayed"),A("fade-in-delayed"),b("click",function(){let t=g(e).$implicit,d=f();return _(d.enterpriseTypeClicked(t.id))}),a()}if(i&2){let e=c.$implicit,n=f();u("card",e)("selected",n.enterpriseType()===e.id)}}function gt(i,c){i&1&&(l(0),p(1,"translate")),i&2&&m(s(1,1,"Select"))}function _t(i,c){i&1&&(r(0,"h2"),H("fade-out-delayed"),A("fade-in-delayed"),l(1),p(2,"translate"),a()),i&2&&(o(),m(s(2,1,"Select Enterprise")))}function ft(i,c){if(i&1){let e=x();r(0,"budget-card",17),H("fade-out-delayed"),A("fade-in-delayed"),b("click",function(){let t=g(e).$implicit,d=f();return _(d.setEnterprise(t))}),a()}if(i&2){let e,n=c.$implicit,t=f();u("card",n)("selected",((e=t.budgetModel().enterprise)==null?null:e.id)===n.id)}}function Ct(i,c){if(i&1){let e=x();r(0,"budget-card-new",18),b("cardSaved",function(t){g(e);let d=f();return _(d.customEnterpriseCreated(t))}),a()}i&2&&u("groupings",z(1,st,c))}function ht(i,c){i&1&&(l(0),p(1,"translate")),i&2&&m(s(1,1,"Length"))}function bt(i,c){if(i&1&&(r(0,"mat-option",12),l(1),a()),i&2){let e=c.$implicit;u("value",e),o(),m(e)}}function yt(i,c){if(i&1&&(r(0,"mat-option",12),l(1),p(2,"translate"),a()),i&2){let e=c.$implicit;u("value",e),o(),m(s(2,2,e))}}function vt(i,c){if(i&1&&(r(0,"mat-option",12),l(1),p(2,"translate"),a()),i&2){let e=c.$implicit,n=f(2);u("value",e),o(),m(s(2,2,n.periodLabelOptions[e-1]))}}function xt(i,c){if(i&1&&(r(0,"span",19),l(1),p(2,"translate"),a(),r(3,"mat-form-field",20)(4,"mat-select",11),w(5,vt,3,4,"mat-option",12,Q),a(),P(),a()),i&2){let e=f();o(),m(s(2,3,"starting")),o(3),D(e.budgetForm.monthStart,"formField"),o(),I(e.periodTotalOptions)}}function Bt(i,c){i&1&&(l(0),p(1,"translate")),i&2&&m(s(1,1,"Save"))}var nt=(()=>{class i{constructor(){this.store=h(L),this.cardService=h(Ye),this.dialogRef=h(ke),this.cdr=h(_e),this.budgetModel=E({title:"",description:"",lengthScale:"months",lengthTotal:5,monthStart:9,valueScale:1,enterprise:{id:"",label:"",type:null,groupings:[],imgType:"svg"}}),this.budgetForm=Ue(this.budgetModel,e=>{$(e.title),$(e.lengthScale),$(e.enterprise),$(e.monthStart)}),this.enterpriseType=E(void 0),this.enterpriseType$=new te,this.filteredEnterprises=E([]),this.periodScaleOptions=["weeks","months","years"],this.periodTotalOptions=new Array(12).fill(0).map((e,n)=>n+1),this.periodLabelOptions=[...Ee.map(e=>e.labelShort)],this.enterpriseTypeCards=[],this.componentDestroyed$=new te}ngOnInit(){return y(this,null,function*(){this.store.createNewBudget(),this.budgetModel.set(oe(this.store.activeBudget.meta)),this.enterpriseTypeCards=this.cardService.enterpriseGroups,this.subscribeToEnterpriseChanges(),this.cdr.markForCheck()})}ngOnDestroy(){this.componentDestroyed$.next(!0),this.componentDestroyed$.complete()}enterpriseTypeClicked(e){return y(this,null,function*(){this.enterpriseType.set(e),this.enterpriseType$.next(e),this.budgetModel.update(n=>M(v({},n),{enterprise:M(v({},n.enterprise),{type:e})}))})}setEnterprise(e){this.budgetModel.update(n=>M(v({},n),{enterprise:e}))}customEnterpriseCreated(e){return y(this,null,function*(){this.setEnterprise(e)})}subscribeToEnterpriseChanges(){return y(this,null,function*(){this.enterpriseType$.pipe(de(()=>this.cardService.dbCollection.find({selector:{type:"enterprise"}}).$.pipe(le(n=>n.map(t=>t._data)))),pe(this.componentDestroyed$)).subscribe(e=>{let n=this.enterpriseType();this.filteredEnterprises.set(e.filter(t=>t.groupings?.includes(n)))})})}save(){return y(this,null,function*(){let e=this.budgetModel(),n=Array.from({length:e.lengthTotal},()=>oe(We));yield this.store.patchBudget({data:n,meta:e}),this.dialogRef.close(this.store.activeBudget._key)})}trackByFn(e,n){return n.id}static{this.\u0275fac=function(n){return new(n||i)}}static{this.\u0275cmp=k({type:i,selectors:[["budget-create"]],viewQuery:function(n,t){if(n&1&&se(pt,7),n&2){let d;me(d=ce())&&(t.stepper=d.first)}},decls:70,vars:47,consts:[["stepper",""],["linear","",1,"responsive-content-padding","h-full"],["matStepLabel",""],[1,"card-list"],[3,"card","selected"],[1,"sticky-footer"],["matStepperNext","","color","primary","matButton","elevated",1,"footer-button",3,"disabled"],["iconPositionEnd",""],["type","enterprise",3,"groupings"],[1,"length-container"],[1,"max-w-24"],[1,"value-select",3,"formField"],[3,"value"],["matStepperNext","","color","primary","matButton","elevated",1,"footer-button"],[1,"w-full"],["matInput","",3,"placeholder","formField"],["matStepperNext","","color","primary","matButton","elevated",1,"footer-button",3,"click","disabled"],[3,"click","card","selected"],["type","enterprise",3,"cardSaved","groupings"],[1,"text-xl"],[1,"max-w-32"]],template:function(n,t){if(n&1){let d=x();r(0,"mat-horizontal-stepper",1,0)(2,"mat-step"),T(3,ct,2,3,"ng-template",2),r(4,"h2"),l(5),p(6,"translate"),a(),r(7,"div",3),w(8,ut,1,2,"budget-card",4,t.trackByFn,!0),a(),r(10,"div",5)(11,"button",6),l(12),p(13,"translate"),r(14,"mat-icon",7),l(15,"arrow_forward"),a()()()(),r(16,"mat-step"),T(17,gt,2,3,"ng-template",2),j(18,_t,3,3,"h2"),r(19,"div",3),w(20,ft,1,2,"budget-card",4,mt),j(22,Ct,1,3,"budget-card-new",8),a(),r(23,"button",6),l(24),p(25,"translate"),r(26,"mat-icon",7),l(27,"arrow_forward"),a()()(),r(28,"mat-step"),T(29,ht,2,3,"ng-template",2),r(30,"h2"),l(31),p(32,"translate"),a(),r(33,"div",9)(34,"mat-form-field",10)(35,"mat-select",11),w(36,bt,2,2,"mat-option",12,Q),a(),P(),a(),r(38,"mat-form-field")(39,"mat-select",11),w(40,yt,3,4,"mat-option",12,Q),a(),P(),a(),j(42,xt,7,5),a(),r(43,"div",5)(44,"button",13),l(45),p(46,"translate"),r(47,"mat-icon",7),l(48,"arrow_forward"),a()()()(),r(49,"mat-step"),T(50,Bt,2,3,"ng-template",2),r(51,"h2"),l(52),p(53,"translate"),a(),r(54,"mat-form-field",14)(55,"mat-label"),l(56),p(57,"translate"),a(),S(58,"input",15),p(59,"translate"),P(),a(),r(60,"mat-form-field",14)(61,"mat-label"),l(62),p(63,"translate"),a(),S(64,"textarea",15),p(65,"translate"),P(),a(),r(66,"div",5)(67,"button",16),b("click",function(){return g(d),_(t.save())}),l(68),p(69,"translate"),a()()()()}if(n&2){let d,C;o(5),m(s(6,25,"What is your type of enterprise?")),o(3),I(t.enterpriseTypeCards),o(3),u("disabled",!t.budgetModel().enterprise||!t.budgetModel().enterprise.type),o(),R(" ",s(13,27,"Next")," "),o(6),W(t.filteredEnterprises().length?18:-1),o(2),I(t.filteredEnterprises()),o(2),W((d=t.enterpriseType())?22:-1,d),o(),u("disabled",!((C=t.budgetModel().enterprise)!=null&&C.id)),o(),R(" ",s(25,29,"Next")," "),o(7),m(s(32,31,"How long is y
3our budget for?")),o(4),D(t.budgetForm.lengthTotal,"formField"),o(),I(t.periodTotalOptions),o(3),D(t.budgetForm.lengthScale,"formField"),o(),I(t.periodScaleOptions),o(2),W(t.budgetModel().lengthScale==="months"?42:-1),o(3),R(" ",s(46,33,"Next")," "),o(7),m(s(53,35,"Save your budget")),o(4),m(s(57,37,"Title")),o(2),u("placeholder",s(59,39,"Title")),D(t.budgetForm.title,"formField"),o(4),m(s(63,41,"Description (optional)")),o(2),u("placeholder",s(65,43,"Description (optional)")),D(t.budgetForm.description,"formField"),o(3),u("disabled",!t.budgetForm().valid()),o(),R(" ",s(69,45,"Save")," ")}},dependencies:[N,F,we,Se,Ie,Te,Z,Y,K,J,He,Ae,U,Je,ee,Ke,et,O,V],styles:["input[_ngcontent-%COMP%], textarea[_ngcontent-%COMP%]{width:100%;max-width:500px;display:block;font-size:1.5em}.card-list[_ngcontent-%COMP%]{margin-bottom:1rem;display:flex;flex:1 1 0%;flex-wrap:wrap;justify-content:center;gap:.5rem;overflow:auto}@media(min-width:600px){.card-list[_ngcontent-%COMP%]{gap:1rem}}.card-list[_ngcontent-%COMP%]{max-height:calc(100vh - 300px)}.length-container[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;gap:1rem}.length-container[_ngcontent-%COMP%]   mat-form-field[_ngcontent-%COMP%]{height:80px;display:flex;justify-content:center;align-items:center}mat-select.value-select[_ngcontent-%COMP%]{color:var(--ion-color-primary);font-weight:700;font-size:30px}"],changeDetection:0})}}return i})();function Mt(i,c){if(i&1){let e=x();r(0,"mat-form-field")(1,"mat-label"),l(2),p(3,"translate"),a(),r(4,"input",11),re("ngModelChange",function(t){g(e);let d=f();return ne(d.titleInput,t)||(d.titleInput=t),_(t)}),a()(),r(5,"mat-form-field")(6,"mat-label"),l(7),p(8,"translate"),a(),r(9,"textarea",11),re("ngModelChange",function(t){g(e);let d=f();return ne(d.descriptionInput,t)||(d.descriptionInput=t),_(t)}),a()(),r(10,"div",12)(11,"button",13),l(12,"Cancel"),a(),r(13,"button",14),l(14,"Save"),a()()}if(i&2){let e=f();o(2),m(s(3,5,"title")),o(2),ie("ngModel",e.titleInput),o(3),m(s(8,7,"description")),o(2),ie("ngModel",e.descriptionInput),o(4),u("mat-dialog-close",!0)}}var rt=(()=>{class i{constructor(){this.dialog=h(X),this.store=h(L),this.budget=ge.required(),this.deleteClicked=G(),this.renameClicked=G(),this.copyClicked=G(),this.titleInput=ae(""),this.descriptionInput=ae("")}showCopyDialog(e){this.titleInput.set(this.budget().meta.title),this.descriptionInput.set(this.budget().meta.description),this.dialog.open(e,{width:"250px"}).afterClosed().subscribe(t=>{if(t){let d=this.titleInput(),C=this.descriptionInput();this.copyClicked.emit({title:d,description:C})}})}showRenameDialog(e){this.titleInput.set(this.budget().meta.title),this.descriptionInput.set(this.budget().meta.description),this.dialog.open(e,{width:"250px"}).afterClosed().subscribe(t=>{if(t){let d=this.titleInput(),C=this.descriptionInput();this.renameClicked.emit({title:d,description:C})}})}static{this.\u0275fac=function(n){return new(n||i)}}static{this.\u0275cmp=k({type:i,selectors:[["budget-list-item"]],inputs:{budget:[1,"budget"],titleInput:[1,"titleInput"],descriptionInput:[1,"descriptionInput"]},outputs:{deleteClicked:"deleteClicked",renameClicked:"renameClicked",copyClicked:"copyClicked",titleInput:"titleInputChange",descriptionInput:"descriptionInputChange"},decls:31,vars:8,consts:[["budgetMenu","matMenu"],["dialogBase",""],["appearance","raised",2,"margin-bottom","10px","padding","16px","cursor","pointer"],[2,"display","flex"],[1,"small",3,"card"],[2,"flex","1"],[2,"margin-bottom","1.2rem","width","150px",3,"budgetData"],["matIconButton","",3,"click","matMenuTriggerFor"],["mat-menu-item","","aria-label","Copy",3,"click"],["mat-menu-item","","aria-label","Edit",3,"click"],["mat-menu-item","","aria-label","Delete","color","light",3,"click"],["matInput","",3,"ngModelChange","ngModel"],["mat-dialog-actions",""],["matButton","","mat-dialog-close",""],["matButton","",3,"mat-dialog-close"]],template:function(n,t){if(n&1){let d=x();r(0,"mat-card",2)(1,"div",3),S(2,"budget-card-image",4),r(3,"div",5)(4,"mat-card-title"),l(5),a(),r(6,"mat-card-content"),l(7),a(),r(8,"mat-card-subtitle"),l(9),p(10,"date"),a()(),S(11,"budget-summary",6),r(12,"button",7),b("click",function(B){return g(d),_(B.stopPropagation())}),r(13,"mat-icon"),l(14,"more_vert"),a()(),r(15,"mat-menu",null,0)(17,"button",8),b("click",function(){g(d);let B=q(30);return _(t.showCopyDialog(B))}),r(18,"mat-icon"),l(19,"content_copy"),a(),l(20,"Copy "),a(),r(21,"button",9),b("click",function(){g(d);let B=q(30);return _(t.showRenameDialog(B))}),r(22,"mat-icon"),l(23,"edit"),a(),l(24,"Rename "),a(),r(25,"button",10),b("click",function(){return g(d),_(t.deleteClicked.emit
3())}),r(26,"mat-icon"),l(27,"delete"),a(),l(28," Delete "),a()()()(),T(29,Mt,15,9,"ng-template",null,1,ue)}if(n&2){let d=q(16);o(2),u("card",t.budget().meta.enterprise),o(3),m(t.budget().meta.title),o(2),m(t.budget().meta.description),o(2),m(s(10,6,t.budget()._created)),o(2),u("budgetData",t.budget().data),o(),u("matMenuTriggerFor",d)}},dependencies:[U,ve,xe,Be,N,F,Me,Z,Y,K,J,Le,Re,$e,Ne,Pe,De,ze,qe,Ge,ee,Ze,Xe,Oe,O,fe,V],styles:["mat-card-content[_ngcontent-%COMP%]{padding:0;margin-bottom:.5rem}.date[_ngcontent-%COMP%]{display:flex;justify-content:flex-end}"],changeDetection:0})}}return i})();var St=i=>[i],wt=(i,c)=>c._key;function It(i,c){if(i&1){let e=x();r(0,"budget-list-item",8),b("deleteClicked",function(){let t=g(e).$implicit,d=f();return _(d.promptDelete(t))})("copyClicked",function(t){let d=g(e).$implicit,C=f();return _(C.handleBudgetCopy(d,t))})("renameClicked",function(t){let d=g(e).$implicit,C=f();return _(C.handleBudgetRename(d,t))}),a()}if(i&2){let e=c.$implicit;u("routerLink",z(2,St,e._key))("budget",e)}}var ki=(()=>{class i{constructor(){this.store=h(L),this.dialog=h(je),this.matDialog=h(X),this.router=h(he),this.route=h(Ce),this.notificationService=h(Ve),this.savedBudgets=E([])}ngOnInit(){this.loadBudgets()}promptDelete(e){return y(this,null,function*(){(yield this.dialog.open("delete")).afterClosed().subscribe(t=>{t&&this.deleteBudget(e)})})}importBudgetCode(){this.matDialog.open(Qe)}showBudgetCreate(){this.matDialog.open(nt,{panelClass:"no-padding"}).afterClosed().subscribe(n=>{n&&this.router.navigate([n],{relativeTo:this.route})})}handleBudgetCopy(d,C){return y(this,arguments,function*(e,{title:n,description:t}){let B=v(M(v({},e),{meta:M(v({},e.meta),{title:n,description:t})}),Fe());this.store.setActiveBudget(B),yield this.store.saveBudget(),yield this.loadBudgets()})}handleBudgetRename(d,C){return y(this,arguments,function*(e,{title:n,description:t}){let B=M(v({},e),{meta:M(v({},e.meta),{title:n,description:t})});this.store.setActiveBudget(B),yield this.store.saveBudget(),yield this.loadBudgets()})}deleteBudget(e){return y(this,null,function*(){try{yield this.store.deleteBudget(e),yield this.loadBudgets()}catch(n){console.error("Failed to delete budget:",n),this.notificationService.showErrorNotification("Failed to delete budget: "+(n?.message||n))}})}loadBudgets(){return y(this,null,function*(){let e=yield this.store.loadSavedBudgets();this.savedBudgets.set(e)})}static{this.\u0275fac=function(n){return new(n||i)}}static{this.\u0275cmp=k({type:i,selectors:[["budget-home"]],decls:18,vars:9,consts:[[1,"page-content"],[1,"button-grid"],["matButton","outlined","color","primary","data-tourid","create",3,"click"],["src","assets/budget-icons/budget-create.svg"],["matButton","outlined","color","primary",3,"click"],["src","assets/budget-icons/budget-import.svg"],["data-tourid","create"],[3,"routerLink","budget"],[3,"deleteClicked","copyClicked","renameClicked","routerLink","budget"]],template:function(n,t){n&1&&(r(0,"div",0)(1,"div",1)(2,"button",2),b("click",function(){return t.showBudgetCreate()}),r(3,"div"),l(4),p(5,"translate"),a(),S(6,"img",3),a(),r(7,"button",4),b("click",function(){return t.importBudgetCode()}),r(8,"div"),l(9),p(10,"translate"),a(),S(11,"img",5),a()(),r(12,"h2"),l(13),p(14,"translate"),a(),r(15,"div",6),w(16,It,1,4,"budget-list-item",7,wt),a()()),n&2&&(o(4),m(s(5,3,"Create New")),o(5),m(s(10,5,"Import Code")),o(4),m(s(14,7,"Saved Budgets")),o(3),I(t.savedBudgets()))},dependencies:[F,O,N,rt,ye,be,V],styles:[".nav-icon[_ngcontent-%COMP%]{opacity:.4}.nav-icon.active[_ngcontent-%COMP%]{opacity:1}button.nav-icon[disabled][_ngcontent-%COMP%]{opacity:0}.button-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr 1fr;gap:8px}.button-grid[_ngcontent-%COMP%]   img[_ngcontent-%COMP%]{height:100px}.button-grid[_ngcontent-%COMP%] > button[_ngcontent-%COMP%]{height:auto;padding:8px}"],changeDetection:0})}}return i})();export{ki as BudgetHomePage};
4
5//# debugId=39e66a47-a8ff-5b8d-969c-7038627d3ee8

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.