@powerhousedao/connect 1.0.0-dev.200 → 1.0.0-dev.201

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 (67) hide show
  1. package/dist/assets/PeopleFill-DQQdtDDe.js +2 -0
  2. package/dist/assets/PeopleFill-DQQdtDDe.js.map +1 -0
  3. package/dist/assets/PlusSquare-3oD1-vzk.js +2 -0
  4. package/dist/assets/PlusSquare-3oD1-vzk.js.map +1 -0
  5. package/dist/assets/PlusSquare-CspgRMoS-3oD1-vzk.js +2 -0
  6. package/dist/assets/PlusSquare-CspgRMoS-3oD1-vzk.js.map +1 -0
  7. package/dist/assets/{app-D5JkX4Uj.js → app-B4OFGo2O.js} +88 -88
  8. package/dist/assets/app-B4OFGo2O.js.map +1 -0
  9. package/dist/assets/{app-loader-DW3rvYVW.js → app-loader-Bfb1rJhE.js} +3 -3
  10. package/dist/assets/app-loader-Bfb1rJhE.js.map +1 -0
  11. package/dist/assets/app-loader-CcY7cVzc.css +1 -0
  12. package/dist/assets/{browser-BY_9pOaF.js → browser-CNIY9JaP.js} +2 -2
  13. package/dist/assets/{browser-BY_9pOaF.js.map → browser-CNIY9JaP.js.map} +1 -1
  14. package/dist/assets/{ccip-CSm_dBY-.js → ccip-BVfRrR8h.js} +2 -2
  15. package/dist/assets/{ccip-CSm_dBY-.js.map → ccip-BVfRrR8h.js.map} +1 -1
  16. package/dist/assets/content-XRS-E3Xz.js +7 -0
  17. package/dist/assets/content-XRS-E3Xz.js.map +1 -0
  18. package/dist/assets/{editor-DOC8FvI_.js → editor-8j593VN0.js} +2 -2
  19. package/dist/assets/{editor-DOC8FvI_.js.map → editor-8j593VN0.js.map} +1 -1
  20. package/dist/assets/{editor-CTeXLKFR.js → editor-BZo1P0Ae.js} +2 -2
  21. package/dist/assets/editor-BZo1P0Ae.js.map +1 -0
  22. package/dist/assets/{editor-BtO6Gypb.js → editor-Bo9Aijfe.js} +2 -2
  23. package/dist/assets/{editor-BtO6Gypb.js.map → editor-Bo9Aijfe.js.map} +1 -1
  24. package/dist/assets/{editor-DZFHIVmh.js → editor-ehywSkYm.js} +27 -27
  25. package/dist/assets/editor-ehywSkYm.js.map +1 -0
  26. package/dist/assets/editors-DVl-l3r5.js +3 -0
  27. package/dist/assets/{editors-BOSfNWsm.js.map → editors-DVl-l3r5.js.map} +1 -1
  28. package/dist/assets/{getEnsName-UdBChzmd.js → getEnsName-Cub4UekZ.js} +10 -10
  29. package/dist/assets/{getEnsName-UdBChzmd.js.map → getEnsName-Cub4UekZ.js.map} +1 -1
  30. package/dist/assets/{index-olgtq3p2.js → index-1TcnY8Is.js} +2 -2
  31. package/dist/assets/{index-olgtq3p2.js.map → index-1TcnY8Is.js.map} +1 -1
  32. package/dist/assets/index-BEgT5b-5.js +3 -0
  33. package/dist/assets/{index-D0RJI-lW.js.map → index-BEgT5b-5.js.map} +1 -1
  34. package/dist/assets/{isAddressEqual-B0vzZnZp.js → isAddressEqual-BPfaWlY1.js} +2 -2
  35. package/dist/assets/{isAddressEqual-B0vzZnZp.js.map → isAddressEqual-BPfaWlY1.js.map} +1 -1
  36. package/dist/assets/{json-_CDXNk-y.js → json-D0_QOK7W.js} +3 -3
  37. package/dist/assets/{json-_CDXNk-y.js.map → json-D0_QOK7W.js.map} +1 -1
  38. package/dist/assets/{main.vaE8bYXL.js → main.VYW2kwWP.js} +2 -2
  39. package/dist/assets/{main.vaE8bYXL.js.map → main.VYW2kwWP.js.map} +1 -1
  40. package/dist/assets/react-error-boundary.esm-qNZlhEqp.js +2 -0
  41. package/dist/assets/{react-error-boundary.esm-CGkLiKiB.js.map → react-error-boundary.esm-qNZlhEqp.js.map} +1 -1
  42. package/dist/assets/root-jEsJBgjx.js +17 -0
  43. package/dist/assets/root-jEsJBgjx.js.map +1 -0
  44. package/dist/assets/router-BXAzgRkG.js +12 -0
  45. package/dist/assets/router-BXAzgRkG.js.map +1 -0
  46. package/dist/index.html +3 -3
  47. package/dist/service-worker.js +1 -1
  48. package/dist/studio/index.d.ts +1 -0
  49. package/dist/studio/index.js +4 -0
  50. package/dist/studio/server.d.ts +1 -0
  51. package/dist/swEnv.js +2 -2
  52. package/dist/vite-envs.sh +5 -5
  53. package/package.json +8 -8
  54. package/dist/assets/app-D5JkX4Uj.js.map +0 -1
  55. package/dist/assets/app-loader-D4PbvzrB.css +0 -1
  56. package/dist/assets/app-loader-DW3rvYVW.js.map +0 -1
  57. package/dist/assets/content-CZbRXB00.js +0 -7
  58. package/dist/assets/content-CZbRXB00.js.map +0 -1
  59. package/dist/assets/editor-CTeXLKFR.js.map +0 -1
  60. package/dist/assets/editor-DZFHIVmh.js.map +0 -1
  61. package/dist/assets/editors-BOSfNWsm.js +0 -3
  62. package/dist/assets/index-D0RJI-lW.js +0 -3
  63. package/dist/assets/react-error-boundary.esm-CGkLiKiB.js +0 -2
  64. package/dist/assets/root-Uu_62bEJ.js +0 -17
  65. package/dist/assets/root-Uu_62bEJ.js.map +0 -1
  66. package/dist/assets/router-WBIxvb9L.js +0 -12
  67. package/dist/assets/router-WBIxvb9L.js.map +0 -1
@@ -1,2 +1,2 @@
1
- import{jsxs as d,jsx as u}from"react/jsx-runtime";import{bO as n,bi as m,bP as je,bC as Ne,bQ as g}from"./app-D5JkX4Uj.js";import{useMemo as Re,useState as Fe}from"react";import"./main.vaE8bYXL.js";import"./app-loader-DW3rvYVW.js";import"react-dom";var Me=Object.defineProperty,Ue=(t,e,r)=>e in t?Me(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Pe=(t,e,r)=>Ue(t,e+"",r);const Ve=t=>t!=null;n.any().refine(t=>Ve(t));const $e=n.enum(["Approved","ApprovedWithComments","Escalated","NeedsAction"]),$=n.enum(["Draft","Escalated","Final","Review"]);function G(){return n.object({address:n.string(),lineItems:n.array(n.lazy(()=>Be())).nullish(),name:n.string().nullish()})}function z(){return n.object({report:n.string(),status:$e,timestamp:n.string().datetime().nullish()})}function B(){return n.object({author:n.lazy(()=>q().nullish()),comment:n.string(),key:n.string().nullish(),status:$.nullish(),timestamp:n.string().datetime().nullish()})}function Q(){return n.object({accountId:n.string(),actual:n.number().nullish(),budgetCap:n.number().nullish(),category:L().nullish(),comment:n.string().nullish(),forecast:n.array(T()).nullish(),group:x().nullish(),headcountExpense:n.boolean().nullish(),payment:n.number().nullish()})}function W(){return n.object({amount:n.string().nullish(),amountOld:n.string().nullish(),comment:n.string().nullish(),currency:n.string().nullish(),date:n.string().nullish(),key:n.string().nullish(),vested:n.boolean().nullish()})}function q(){return n.object({id:n.string().nullish(),ref:n.string().nullish(),roleLabel:n.string().nullish(),username:n.string().nullish()})}function H(){return n.object({account:n.string()})}function K(){return n.object({report:n.string()})}function Y(){return n.object({comment:n.string()})}function J(){return n.object({accountId:n.string(),category:n.string().nullish(),group:n.string().nullish()})}function X(){return n.object({vesting:n.string()})}function Ge(){return n.object({month:n.string(),value:n.number()})}function ze(){return n.object({__typename:n.literal("LineItem").optional(),actual:n.number().nullable(),budgetCap:n.number().nullable(),category:L().nullable(),comment:n.string().nullable(),forecast:n.array(T()),group:x().nullable(),headcountExpense:n.boolean(),payment:n.number().nullable()})}function L(){return n.object({__typename:n.literal("LineItemCategory").optional(),id:n.string(),ref:n.string(),title:n.string()})}function T(){return n.object({__typename:n.literal("LineItemForecast").optional(),budgetCap:n.number(),month:n.string(),value:n.number()})}function x(){return n.object({__typename:n.literal("LineItemGroup").optional(),color:n.string(),id:n.string(),ref:n.string(),title:n.string()})}function Be(){return n.object({actual:n.number().nullish(),budgetCap:n.number().nullish(),category:L().nullish(),comment:n.string().nullish(),forecast:n.array(T()).nullish(),group:x().nullish(),headcountExpense:n.boolean().nullish(),payment:n.number().nullish()})}function Qe(){return n.object({category:n.string().nullish(),group:n.string().nullish()})}function Z(){return n.object({forecast:n.array(n.lazy(()=>Ge())),value:n.number()})}function ee(){return n.object({month:n.string()})}function te(){return n.object({id:n.string().nullish(),ref:n.string().nullish(),title:n.string().nullish()})}function ne(){return n.object({quoteCurrency:n.string()})}function re(){return n.object({accounts:n.array(n.string())})}function ae(){return n.object({accountId:n.string(),lineItems:n.array(n.lazy(()=>Qe()))})}function oe(){return n.object({address:n.string(),lineItems:n.array(ze()).nullish(),name:n.string().nullish()})}function ie(){return n.object({author:n.lazy(()=>q().nullish()),comment:n.string().nullish(),key:n.string(),status:$.nullish(),timestamp:n.string().datetime().nullish()})}function se(){return n.object({accountId:n.string(),actual:n.number().nullish(),budgetCap:n.number().nullish(),category:n.string().nullish(),comment:n.string().nullish(),forecast:n.array(T()).nullish(),group:n.string().nullish(),headcountExpense:n.boolean().nullish(),payment:n.number().nullish()})}function ue(){return n.object({amount:n.string().nullish(),amountOld:n.string().nullish(),comment:n.string().nullish(),currency:n.string().nullish(),date:n.string().nullish(),key:n.string(),vested:n.boolean().nullish()})}const le=t=>{var e;return{...t,name:t.name??"",lineItems:((e=t.lineItems)==null?void 0:e.map(k))??new Array}},k=t=>{var e;return{budgetCap:null,payment:null,actual:null,comment:null,...t,forecast:((e=t.forecast)==null?void 0:e.sort((r,a)=>r.month.localeCompare(a.month)))??new Array,headcountExpense:t.headcountExpense??!1,group:t.group??null,category:t.category??null}},We=Object.freeze(Object.defineProperty({__proto__:null,createAccount:le,createLineItem:k},Symbol.toStringTag,{value:"Module"})),y={addAccountOperation(t,e){const{input:r}=e;if(t.accounts.find(a=>a.address===r.address))throw new Error(`Account with address ${r.address} already exists!`);t.accounts.push(le(r))},updateAccountOperation(t,e){const{input:r}=e,a=t.accounts.findIndex(s=>s.address===r.address);if(a===-1)throw new Error(`Account with adddress ${r.address} not found`);const i=t.accounts[a];t.accounts[a]={...i,lineItems:r.lineItems??i.lineItems,name:r.name??i.name}},deleteAccountOperation(t,e){const{input:r}=e;t.accounts=t.accounts.filter(a=>a.address!==r.account)},sortAccountsOperation(t,e){t.accounts.sort((r,a)=>{const i=e.input.accounts.indexOf(r.address),s=e.input.accounts.indexOf(a.address);return(i>-1?i:1/0)-(s>-1?s:1/0)})}};function E(t,e){return t.category===e.category&&t.group===e.group}const I={addLineItemOperation(t,e){var r,a;const{accountId:i,...s}=e.input,o=t.accounts.find(l=>l.address===i);if(!o)throw new Error(`Account with address ${i} not found`);if(o.lineItems.find(l=>{var c,p,h,f;return((c=s.category)==null?void 0:c.id)===((p=l.category)==null?void 0:p.id)&&((h=s.group)==null?void 0:h.id)===((f=l.group)==null?void 0:f.id)}))throw new Error(`Line item with category '${((r=s.category)==null?void 0:r.id)??"null"}' and group '${((a=s.group)==null?void 0:a.id)??"null"}' already exists`);o.lineItems.push(k(s))},updateLineItemOperation(t,e){const{accountId:r,...a}=e.input,i=t.accounts.find(l=>l.address===r);if(!i)throw new Error(`Account with address ${r} not found`);const s=i.lineItems.findIndex(l=>E(a,l));if(s===-1)throw new Error("Line item not found");const o=i.lineItems[s];i.lineItems[s]={...o,...a,category:o.category,headcountExpense:a.headcountExpense??!1,group:o.group,forecast:(a.forecast??o.forecast).sort((l,c)=>l.month.localeCompare(c.month))}},deleteLineItemOperation(t,e){const{accountId:r,...a}=e.input,i=t.accounts.find(s=>s.address===r);if(!i)throw new Error(`Account with address ${r} not found`);i.lineItems=i.lineItems.filter(s=>!E(a,s))},sortLineItemsOperation(t,e){const{accountId:r,lineItems:a}=e.input,i=t.accounts.find(s=>s.address===r);if(!i)throw new Error(`Account with address ${r} not found`);i.lineItems.sort((s,o)=>{const l=a.findIndex(p=>E(p,s)),c=a.findIndex(p=>E(p,o));return(l>-1?l:1/0)-(c>-1?c:1/0)})}},A={setOwnerOperation(t,e){t.owner={id:e.input.id??null,ref:e.input.ref??null,title:e.input.title??null}},setMonthOperation(t,e){t.month=e.input.month},setFtesOperation(t,e){t.ftes=e.input,t.ftes.forecast.sort((r,a)=>r.month.localeCompare(a.month))},setQuoteCurrencyOperation(t,e){t.quoteCurrency=e.input.quoteCurrency}};function qe(t,e){if(t.auditReports.find(r=>r.report===e))throw new Error(`Audit with report ${e} already exists`)}const R={addAuditReportOperation(t,e){if(qe(t,e.input.report),!e.attachments.find(r=>r.hash===e.input.report))throw new Error("Report was not included in the action attachments");t.auditReports.push({...e.input,timestamp:e.input.timestamp??new Date().toISOString()})},deleteAuditReportOperation(t,e){const r=t.auditReports.findIndex(a=>a.report===e.input.report);r>-1&&t.auditReports.splice(r,1)}},F=(t,e)=>t.timestamp<e.timestamp?-1:1,v={addCommentOperation(t,e){const{input:r}=e,a=r.key??m.hashKey();if(t.comments.findIndex(i=>i.key===r.key)>-1)throw new Error(`Comment with key ${a} already exists`);t.comments.push({key:a,author:{ref:null,id:null,username:null,roleLabel:null,...r.author},comment:r.comment,timestamp:r.timestamp||new Date().toISOString(),status:r.status??"Draft"}),t.comments.sort(F)},updateCommentOperation(t,e){var r,a,i,s;const{input:o}=e,l=t.comments.findIndex(p=>p.key===o.key);if(l===-1)return;const c=t.comments[l];t.comments[l]={...c,...o,author:{id:((r=o.author)==null?void 0:r.id)??c.author.id,ref:((a=o.author)==null?void 0:a.ref)??c.author.ref,roleLabel:((i=o.author)==null?void 0:i.roleLabel)??c.author.roleLabel,username:((s=o.author)==null?void 0:s.username)??c.author.username},comment:o.comment??c.comment,timestamp:o.timestamp??new Date().toISOString(),status:o.status??c.status},t.comments.sort(F)},deleteCommentOperation(t,e){const{input:r}=e;t.comments=t.comments.filter(a=>r.comment!==a.key)}},M=(t,e)=>t.date<e.date?-1:1,w={addVestingOperation(t,e){const{input:r}=e,a=r.key??m.hashKey();if(t.vesting.findIndex(i=>i.key===r.key)>-1)throw new Error(`Vesting with key ${a} already exists`);t.vesting.push({...r,key:a,date:r.date??"",amount:r.amount??"",amountOld:r.amountOld??r.amount??"",comment:r.comment??"",currency:r.currency??"",vested:r.vested??!1}),t.vesting.sort(M)},updateVestingOperation(t,e){const{input:r}=e,a=t.vesting.findIndex(s=>s.key===r.key);if(a===-1)return;const i=t.vesting[a];t.vesting[a]={...i,...r,amount:r.amount??i.amount,amountOld:r.amountOld??i.amountOld,comment:r.comment??i.comment,currency:r.currency??i.currency,date:r.date??i.date,vested:r.vested??i.vested},t.vesting.sort(M)},deleteVestingOperation(t,e){t.vesting=t.vesting.filter(r=>!e.input.vesting.includes(r.key))}},He=(t,e,r)=>{if(m.isBaseAction(e))return t;switch(e.type){case"ADD_ACCOUNT":G().parse(e.input),y.addAccountOperation(t[e.scope],e,r);break;case"UPDATE_ACCOUNT":oe().parse(e.input),y.updateAccountOperation(t[e.scope],e,r);break;case"DELETE_ACCOUNT":H().parse(e.input),y.deleteAccountOperation(t[e.scope],e,r);break;case"SORT_ACCOUNTS":re().parse(e.input),y.sortAccountsOperation(t[e.scope],e,r);break;case"ADD_LINE_ITEM":Q().parse(e.input),I.addLineItemOperation(t[e.scope],e,r);break;case"UPDATE_LINE_ITEM":se().parse(e.input),I.updateLineItemOperation(t[e.scope],e,r);break;case"DELETE_LINE_ITEM":J().parse(e.input),I.deleteLineItemOperation(t[e.scope],e,r);break;case"SORT_LINE_ITEMS":ae().parse(e.input),I.sortLineItemsOperation(t[e.scope],e,r);break;case"SET_OWNER":te().parse(e.input),A.setOwnerOperation(t[e.scope],e,r);break;case"SET_MONTH":ee().parse(e.input),A.setMonthOperation(t[e.scope],e,r);break;case"SET_FTES":Z().parse(e.input),A.setFtesOperation(t[e.scope],e,r);break;case"SET_QUOTE_CURRENCY":ne().parse(e.input),A.setQuoteCurrencyOperation(t[e.scope],e,r);break;case"ADD_AUDIT_REPORT":z().parse(e.input),R.addAuditReportOperation(t[e.scope],e,r);break;case"DELETE_AUDIT_REPORT":K().parse(e.input),R.deleteAuditReportOperation(t[e.scope],e,r);break;case"ADD_COMMENT":B().parse(e.input),v.addCommentOperation(t[e.scope],e,r);break;case"UPDATE_COMMENT":ie().parse(e.input),v.updateCommentOperation(t[e.scope],e,r);break;case"DELETE_COMMENT":Y().parse(e.input),v.deleteCommentOperation(t[e.scope],e,r);break;case"ADD_VESTING":W().parse(e.input),w.addVestingOperation(t[e.scope],e,r);break;case"UPDATE_VESTING":ue().parse(e.input),w.updateVestingOperation(t[e.scope],e,r);break;case"DELETE_VESTING":X().parse(e.input),w.deleteVestingOperation(t[e.scope],e,r);break;default:return t}},S=m.createReducer(He),Ke={owner:{ref:null,id:null,title:null},month:null,quoteCurrency:null,vesting:[],ftes:null,accounts:[],auditReports:[],comments:[]},Ye={},b={fileExtension:"phbs",createState(t){return{global:{...Ke,...t==null?void 0:t.global},local:{...Ye,...t==null?void 0:t.local}}},createExtendedState(t){return m.createExtendedState({...t,documentType:"powerhouse/budget-statement"},b.createState)},createDocument(t){return m.createDocument(b.createExtendedState(t),b.createState)},saveToFile(t,e,r){return m.saveToFile(t,e,"phbs",r)},saveToFileHandle(t,e){return m.saveToFileHandle(t,e)},loadFromFile(t){return m.loadFromFile(t,S)},loadFromInput(t){return m.loadFromInput(t,S)}},{createAction:_}=m,ce=t=>_("ADD_ACCOUNT",{...t},void 0,G,"global"),de=t=>_("UPDATE_ACCOUNT",{...t},void 0,oe,"global"),pe=t=>_("DELETE_ACCOUNT",{...t},void 0,H,"global"),me=t=>_("SORT_ACCOUNTS",{...t},void 0,re,"global");class Je extends g{addAccount(e){return this.dispatch(ce(e))}updateAccount(e){return this.dispatch(de(e))}deleteAccount(e){return this.dispatch(pe(e))}sortAccounts(e){return this.dispatch(me(e))}}const{createAction:C}=m,he=t=>C("ADD_LINE_ITEM",{...t},void 0,Q,"global"),ge=t=>C("UPDATE_LINE_ITEM",{...t},void 0,se,"global"),fe=t=>C("DELETE_LINE_ITEM",{...t},void 0,J,"global"),be=t=>C("SORT_LINE_ITEMS",{...t},void 0,ae,"global");class Xe extends g{addLineItem(e){return this.dispatch(he(e))}updateLineItem(e){return this.dispatch(ge(e))}deleteLineItem(e){return this.dispatch(fe(e))}sortLineItems(e){return this.dispatch(be(e))}}const{createAction:D}=m,ye=t=>D("SET_OWNER",{...t},void 0,te,"global"),Ee=t=>D("SET_MONTH",{...t},void 0,ee,"global"),Ie=t=>D("SET_FTES",{...t},void 0,Z,"global"),Ae=t=>D("SET_QUOTE_CURRENCY",{...t},void 0,ne,"global");class Ze extends g{setOwner(e){return this.dispatch(ye(e))}setMonth(e){return this.dispatch(Ee(e))}setFtes(e){return this.dispatch(Ie(e))}setQuoteCurrency(e){return this.dispatch(Ae(e))}}const{createAction:Oe}=m,Te=(t,e)=>Oe("ADD_AUDIT_REPORT",{...t},e,z,"global"),_e=t=>Oe("DELETE_AUDIT_REPORT",{...t},void 0,K,"global");class et extends g{addAuditReport(e,r){return this.dispatch(Te(e,r))}deleteAuditReport(e){return this.dispatch(_e(e))}}const{createAction:j}=m,Ce=t=>j("ADD_COMMENT",{...t},void 0,B,"global"),De=t=>j("UPDATE_COMMENT",{...t},void 0,ie,"global"),ve=t=>j("DELETE_COMMENT",{...t},void 0,Y,"global");class tt extends g{addComment(e){return this.dispatch(Ce(e))}updateComment(e){return this.dispatch(De(e))}deleteComment(e){return this.dispatch(ve(e))}}const{createAction:N}=m,we=t=>N("ADD_VESTING",{...t},void 0,W,"global"),Se=t=>N("UPDATE_VESTING",{...t},void 0,ue,"global"),Le=t=>N("DELETE_VESTING",{...t},void 0,X,"global");class nt extends g{addVesting(e){return this.dispatch(we(e))}updateVesting(e){return this.dispatch(Se(e))}deleteVesting(e){return this.dispatch(Le(e))}}const xe=class ke extends g{constructor(e,r){super(S,b.createDocument(e),r)}saveToFile(e,r){return super.saveToFile(e,ke.fileExtension,r)}loadFromFile(e){return super.loadFromFile(e)}static async fromFile(e){const r=new this;return await r.loadFromFile(e),r}};Pe(xe,"fileExtension","phbs");let rt=xe;je(rt,[Je,Xe,Ze,et,tt,nt]);const at=Object.freeze(Object.defineProperty({__proto__:null,addAccount:ce,addAuditReport:Te,addComment:Ce,addLineItem:he,addVesting:we,deleteAccount:pe,deleteAuditReport:_e,deleteComment:ve,deleteLineItem:fe,deleteVesting:Le,setFtes:Ie,setMonth:Ee,setOwner:ye,setQuoteCurrency:Ae,sortAccounts:me,sortLineItems:be,updateAccount:de,updateComment:De,updateLineItem:ge,updateVesting:Se},Symbol.toStringTag,{value:"Module"}));({...b,...We});const O={...Ne,...at},ot=({accounts:t,addAccount:e})=>{function r(a){a.preventDefault();const i=a.target,s=new FormData(i),o=Object.fromEntries(s.entries());e(o)}return d("form",{method:"post",onSubmit:r,style:{maxWidth:300},children:[d("label",{children:["Address: ",u("input",{name:"address",placeholder:"eth:0x..."})]}),u("pre",{}),d("label",{children:["Name: ",u("input",{name:"name",placeholder:""})]}),u("pre",{}),u("button",{type:"submit",children:"Submit"})]},t.length)},U=new Intl.NumberFormat("en-US",{style:"currency",currency:"USD"}),it=({data:t,onDeleteAccount:e,onDeleteLineItem:r})=>{const a=t.accounts,i=Re(()=>a.map(({address:s,name:o,lineItems:l})=>{const{actuals:c,payments:p}=l.reduce((h,f)=>({actuals:h.actuals+(f.actual||0),payments:h.payments+(f.payment||0)}),{actuals:0,payments:0});return{address:s,name:o,actuals:c,payments:p}}),[a]);return d("div",{children:[u("h2",{children:"Accounts:"}),d("table",{style:{borderSpacing:12},children:[u("thead",{children:d("tr",{children:[u("th",{align:"left",children:"Name"}),u("th",{align:"left",children:"Address"}),u("th",{align:"left",children:"Actuals"}),u("th",{align:"left",children:"Payments"})]})}),u("tbody",{children:i.map(s=>d("tr",{children:[u("td",{children:s.name}),d("td",{children:[s.address.slice(0,10),"..."]}),u("td",{children:U.format(s.actuals)}),u("td",{children:U.format(s.payments)}),e?u("td",{children:u("button",{onClick:()=>e(s.address),children:"Delete"})}):null]},s.address))})]})]})},P=[{ref:"makerdao/budget-category",id:"CompensationAndBenefits",title:"Compensation & Benefits",headcountExpense:!0},{ref:"makerdao/budget-category",id:"TravelAndEntertainment",title:"Travel & Entertainment",headcountExpense:!0},{ref:"makerdao/budget-category",id:"SoftwareDevelopmentExpense",title:"Software Development Expense",headcountExpense:!1},{ref:"makerdao/budget-category",id:"GasExpense",title:"Gas Expense",headcountExpense:!0}],V=[{ref:"makerdao/project",id:"Powerhouse",title:"Powerhouse",color:"purple"},{ref:"makerdao/project",id:"LegalResearch",title:"Legal Research",color:"red"},{ref:"makerdao/project",id:"MakerAcademy",title:"Maker Academy",color:"teal"}],st=({accounts:t,addLineItem:e})=>{var r;const[a,i]=Fe(t.length?t[0].address:"");function s(o){o.preventDefault();const l=o.target,c=new FormData(l),p=Object.fromEntries(c.entries());e({accountId:c.get("account").toString(),budgetCap:parseFloat(p.budgetCap.toString()),actual:parseFloat(p.actual.toString()),payment:parseFloat(p.payment.toString()),category:P.find(h=>h.id===p.category.toString()),group:V.find(h=>h.id===p.group.toString())})}return d("form",{method:"post",onSubmit:s,style:{maxWidth:300},children:[d("label",{children:["Select account:"," ",u("select",{name:"account",onChange:o=>i(o.target.value),value:a??"",children:t.map(o=>u("option",{value:o.address,children:o.name},o.address))})]}),u("pre",{}),d("label",{children:["Category:"," ",u("select",{name:"category",children:P.map(o=>u("option",{value:o.id,children:o.title},o.id))})]}),u("pre",{}),d("label",{children:["Group:"," ",u("select",{name:"group",children:V.map(o=>u("option",{value:o.id,children:o.title},o.id))})]}),u("pre",{}),d("label",{children:["Budget Cap: ",u("input",{name:"budgetCap",placeholder:"0",type:"number"})]}),u("pre",{}),d("label",{children:["Payment: ",u("input",{name:"payment",placeholder:"0",type:"number"})]}),u("pre",{}),d("label",{children:["Actual: ",u("input",{name:"actual",placeholder:"0",type:"number"})]}),u("pre",{}),u("button",{type:"submit",children:"Submit"})]},(r=t.find(o=>o.address===a))==null?void 0:r.lineItems.length)};function ht({document:t,dispatch:e}){function r(l){e(O.addAccount(l))}function a(l){e(O.addLineItem(l))}function i(l){e(O.deleteAccount({account:l}))}function s(l){e(O.deleteLineItem(l))}const o=t.state.global.accounts;return d("div",{children:[u(it,{data:t.state.global,onDeleteAccount:i,onDeleteLineItem:s}),u("hr",{}),d("div",{children:[u("h3",{children:"Add account"}),u(ot,{accounts:o,addAccount:r})]}),d("div",{children:[u("h3",{children:"Add Line Item"}),u(st,{accounts:o,addLineItem:a})]})]})}export{ht as default};
2
- //# sourceMappingURL=editor-DOC8FvI_.js.map
1
+ import{jsxs as d,jsx as u}from"react/jsx-runtime";import{bO as n,bk as m,bP as je,bF as Ne,bQ as g}from"./app-B4OFGo2O.js";import{useMemo as Re,useState as Fe}from"react";import"./main.VYW2kwWP.js";import"./app-loader-Bfb1rJhE.js";import"react-dom";var Me=Object.defineProperty,Ue=(t,e,r)=>e in t?Me(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Pe=(t,e,r)=>Ue(t,e+"",r);const Ve=t=>t!=null;n.any().refine(t=>Ve(t));const $e=n.enum(["Approved","ApprovedWithComments","Escalated","NeedsAction"]),$=n.enum(["Draft","Escalated","Final","Review"]);function G(){return n.object({address:n.string(),lineItems:n.array(n.lazy(()=>Be())).nullish(),name:n.string().nullish()})}function z(){return n.object({report:n.string(),status:$e,timestamp:n.string().datetime().nullish()})}function B(){return n.object({author:n.lazy(()=>q().nullish()),comment:n.string(),key:n.string().nullish(),status:$.nullish(),timestamp:n.string().datetime().nullish()})}function Q(){return n.object({accountId:n.string(),actual:n.number().nullish(),budgetCap:n.number().nullish(),category:L().nullish(),comment:n.string().nullish(),forecast:n.array(T()).nullish(),group:x().nullish(),headcountExpense:n.boolean().nullish(),payment:n.number().nullish()})}function W(){return n.object({amount:n.string().nullish(),amountOld:n.string().nullish(),comment:n.string().nullish(),currency:n.string().nullish(),date:n.string().nullish(),key:n.string().nullish(),vested:n.boolean().nullish()})}function q(){return n.object({id:n.string().nullish(),ref:n.string().nullish(),roleLabel:n.string().nullish(),username:n.string().nullish()})}function H(){return n.object({account:n.string()})}function K(){return n.object({report:n.string()})}function Y(){return n.object({comment:n.string()})}function J(){return n.object({accountId:n.string(),category:n.string().nullish(),group:n.string().nullish()})}function X(){return n.object({vesting:n.string()})}function Ge(){return n.object({month:n.string(),value:n.number()})}function ze(){return n.object({__typename:n.literal("LineItem").optional(),actual:n.number().nullable(),budgetCap:n.number().nullable(),category:L().nullable(),comment:n.string().nullable(),forecast:n.array(T()),group:x().nullable(),headcountExpense:n.boolean(),payment:n.number().nullable()})}function L(){return n.object({__typename:n.literal("LineItemCategory").optional(),id:n.string(),ref:n.string(),title:n.string()})}function T(){return n.object({__typename:n.literal("LineItemForecast").optional(),budgetCap:n.number(),month:n.string(),value:n.number()})}function x(){return n.object({__typename:n.literal("LineItemGroup").optional(),color:n.string(),id:n.string(),ref:n.string(),title:n.string()})}function Be(){return n.object({actual:n.number().nullish(),budgetCap:n.number().nullish(),category:L().nullish(),comment:n.string().nullish(),forecast:n.array(T()).nullish(),group:x().nullish(),headcountExpense:n.boolean().nullish(),payment:n.number().nullish()})}function Qe(){return n.object({category:n.string().nullish(),group:n.string().nullish()})}function Z(){return n.object({forecast:n.array(n.lazy(()=>Ge())),value:n.number()})}function ee(){return n.object({month:n.string()})}function te(){return n.object({id:n.string().nullish(),ref:n.string().nullish(),title:n.string().nullish()})}function ne(){return n.object({quoteCurrency:n.string()})}function re(){return n.object({accounts:n.array(n.string())})}function ae(){return n.object({accountId:n.string(),lineItems:n.array(n.lazy(()=>Qe()))})}function oe(){return n.object({address:n.string(),lineItems:n.array(ze()).nullish(),name:n.string().nullish()})}function ie(){return n.object({author:n.lazy(()=>q().nullish()),comment:n.string().nullish(),key:n.string(),status:$.nullish(),timestamp:n.string().datetime().nullish()})}function se(){return n.object({accountId:n.string(),actual:n.number().nullish(),budgetCap:n.number().nullish(),category:n.string().nullish(),comment:n.string().nullish(),forecast:n.array(T()).nullish(),group:n.string().nullish(),headcountExpense:n.boolean().nullish(),payment:n.number().nullish()})}function ue(){return n.object({amount:n.string().nullish(),amountOld:n.string().nullish(),comment:n.string().nullish(),currency:n.string().nullish(),date:n.string().nullish(),key:n.string(),vested:n.boolean().nullish()})}const le=t=>{var e;return{...t,name:t.name??"",lineItems:((e=t.lineItems)==null?void 0:e.map(k))??new Array}},k=t=>{var e;return{budgetCap:null,payment:null,actual:null,comment:null,...t,forecast:((e=t.forecast)==null?void 0:e.sort((r,a)=>r.month.localeCompare(a.month)))??new Array,headcountExpense:t.headcountExpense??!1,group:t.group??null,category:t.category??null}},We=Object.freeze(Object.defineProperty({__proto__:null,createAccount:le,createLineItem:k},Symbol.toStringTag,{value:"Module"})),y={addAccountOperation(t,e){const{input:r}=e;if(t.accounts.find(a=>a.address===r.address))throw new Error(`Account with address ${r.address} already exists!`);t.accounts.push(le(r))},updateAccountOperation(t,e){const{input:r}=e,a=t.accounts.findIndex(s=>s.address===r.address);if(a===-1)throw new Error(`Account with adddress ${r.address} not found`);const i=t.accounts[a];t.accounts[a]={...i,lineItems:r.lineItems??i.lineItems,name:r.name??i.name}},deleteAccountOperation(t,e){const{input:r}=e;t.accounts=t.accounts.filter(a=>a.address!==r.account)},sortAccountsOperation(t,e){t.accounts.sort((r,a)=>{const i=e.input.accounts.indexOf(r.address),s=e.input.accounts.indexOf(a.address);return(i>-1?i:1/0)-(s>-1?s:1/0)})}};function E(t,e){return t.category===e.category&&t.group===e.group}const I={addLineItemOperation(t,e){var r,a;const{accountId:i,...s}=e.input,o=t.accounts.find(l=>l.address===i);if(!o)throw new Error(`Account with address ${i} not found`);if(o.lineItems.find(l=>{var c,p,h,f;return((c=s.category)==null?void 0:c.id)===((p=l.category)==null?void 0:p.id)&&((h=s.group)==null?void 0:h.id)===((f=l.group)==null?void 0:f.id)}))throw new Error(`Line item with category '${((r=s.category)==null?void 0:r.id)??"null"}' and group '${((a=s.group)==null?void 0:a.id)??"null"}' already exists`);o.lineItems.push(k(s))},updateLineItemOperation(t,e){const{accountId:r,...a}=e.input,i=t.accounts.find(l=>l.address===r);if(!i)throw new Error(`Account with address ${r} not found`);const s=i.lineItems.findIndex(l=>E(a,l));if(s===-1)throw new Error("Line item not found");const o=i.lineItems[s];i.lineItems[s]={...o,...a,category:o.category,headcountExpense:a.headcountExpense??!1,group:o.group,forecast:(a.forecast??o.forecast).sort((l,c)=>l.month.localeCompare(c.month))}},deleteLineItemOperation(t,e){const{accountId:r,...a}=e.input,i=t.accounts.find(s=>s.address===r);if(!i)throw new Error(`Account with address ${r} not found`);i.lineItems=i.lineItems.filter(s=>!E(a,s))},sortLineItemsOperation(t,e){const{accountId:r,lineItems:a}=e.input,i=t.accounts.find(s=>s.address===r);if(!i)throw new Error(`Account with address ${r} not found`);i.lineItems.sort((s,o)=>{const l=a.findIndex(p=>E(p,s)),c=a.findIndex(p=>E(p,o));return(l>-1?l:1/0)-(c>-1?c:1/0)})}},A={setOwnerOperation(t,e){t.owner={id:e.input.id??null,ref:e.input.ref??null,title:e.input.title??null}},setMonthOperation(t,e){t.month=e.input.month},setFtesOperation(t,e){t.ftes=e.input,t.ftes.forecast.sort((r,a)=>r.month.localeCompare(a.month))},setQuoteCurrencyOperation(t,e){t.quoteCurrency=e.input.quoteCurrency}};function qe(t,e){if(t.auditReports.find(r=>r.report===e))throw new Error(`Audit with report ${e} already exists`)}const R={addAuditReportOperation(t,e){if(qe(t,e.input.report),!e.attachments.find(r=>r.hash===e.input.report))throw new Error("Report was not included in the action attachments");t.auditReports.push({...e.input,timestamp:e.input.timestamp??new Date().toISOString()})},deleteAuditReportOperation(t,e){const r=t.auditReports.findIndex(a=>a.report===e.input.report);r>-1&&t.auditReports.splice(r,1)}},F=(t,e)=>t.timestamp<e.timestamp?-1:1,v={addCommentOperation(t,e){const{input:r}=e,a=r.key??m.hashKey();if(t.comments.findIndex(i=>i.key===r.key)>-1)throw new Error(`Comment with key ${a} already exists`);t.comments.push({key:a,author:{ref:null,id:null,username:null,roleLabel:null,...r.author},comment:r.comment,timestamp:r.timestamp||new Date().toISOString(),status:r.status??"Draft"}),t.comments.sort(F)},updateCommentOperation(t,e){var r,a,i,s;const{input:o}=e,l=t.comments.findIndex(p=>p.key===o.key);if(l===-1)return;const c=t.comments[l];t.comments[l]={...c,...o,author:{id:((r=o.author)==null?void 0:r.id)??c.author.id,ref:((a=o.author)==null?void 0:a.ref)??c.author.ref,roleLabel:((i=o.author)==null?void 0:i.roleLabel)??c.author.roleLabel,username:((s=o.author)==null?void 0:s.username)??c.author.username},comment:o.comment??c.comment,timestamp:o.timestamp??new Date().toISOString(),status:o.status??c.status},t.comments.sort(F)},deleteCommentOperation(t,e){const{input:r}=e;t.comments=t.comments.filter(a=>r.comment!==a.key)}},M=(t,e)=>t.date<e.date?-1:1,w={addVestingOperation(t,e){const{input:r}=e,a=r.key??m.hashKey();if(t.vesting.findIndex(i=>i.key===r.key)>-1)throw new Error(`Vesting with key ${a} already exists`);t.vesting.push({...r,key:a,date:r.date??"",amount:r.amount??"",amountOld:r.amountOld??r.amount??"",comment:r.comment??"",currency:r.currency??"",vested:r.vested??!1}),t.vesting.sort(M)},updateVestingOperation(t,e){const{input:r}=e,a=t.vesting.findIndex(s=>s.key===r.key);if(a===-1)return;const i=t.vesting[a];t.vesting[a]={...i,...r,amount:r.amount??i.amount,amountOld:r.amountOld??i.amountOld,comment:r.comment??i.comment,currency:r.currency??i.currency,date:r.date??i.date,vested:r.vested??i.vested},t.vesting.sort(M)},deleteVestingOperation(t,e){t.vesting=t.vesting.filter(r=>!e.input.vesting.includes(r.key))}},He=(t,e,r)=>{if(m.isBaseAction(e))return t;switch(e.type){case"ADD_ACCOUNT":G().parse(e.input),y.addAccountOperation(t[e.scope],e,r);break;case"UPDATE_ACCOUNT":oe().parse(e.input),y.updateAccountOperation(t[e.scope],e,r);break;case"DELETE_ACCOUNT":H().parse(e.input),y.deleteAccountOperation(t[e.scope],e,r);break;case"SORT_ACCOUNTS":re().parse(e.input),y.sortAccountsOperation(t[e.scope],e,r);break;case"ADD_LINE_ITEM":Q().parse(e.input),I.addLineItemOperation(t[e.scope],e,r);break;case"UPDATE_LINE_ITEM":se().parse(e.input),I.updateLineItemOperation(t[e.scope],e,r);break;case"DELETE_LINE_ITEM":J().parse(e.input),I.deleteLineItemOperation(t[e.scope],e,r);break;case"SORT_LINE_ITEMS":ae().parse(e.input),I.sortLineItemsOperation(t[e.scope],e,r);break;case"SET_OWNER":te().parse(e.input),A.setOwnerOperation(t[e.scope],e,r);break;case"SET_MONTH":ee().parse(e.input),A.setMonthOperation(t[e.scope],e,r);break;case"SET_FTES":Z().parse(e.input),A.setFtesOperation(t[e.scope],e,r);break;case"SET_QUOTE_CURRENCY":ne().parse(e.input),A.setQuoteCurrencyOperation(t[e.scope],e,r);break;case"ADD_AUDIT_REPORT":z().parse(e.input),R.addAuditReportOperation(t[e.scope],e,r);break;case"DELETE_AUDIT_REPORT":K().parse(e.input),R.deleteAuditReportOperation(t[e.scope],e,r);break;case"ADD_COMMENT":B().parse(e.input),v.addCommentOperation(t[e.scope],e,r);break;case"UPDATE_COMMENT":ie().parse(e.input),v.updateCommentOperation(t[e.scope],e,r);break;case"DELETE_COMMENT":Y().parse(e.input),v.deleteCommentOperation(t[e.scope],e,r);break;case"ADD_VESTING":W().parse(e.input),w.addVestingOperation(t[e.scope],e,r);break;case"UPDATE_VESTING":ue().parse(e.input),w.updateVestingOperation(t[e.scope],e,r);break;case"DELETE_VESTING":X().parse(e.input),w.deleteVestingOperation(t[e.scope],e,r);break;default:return t}},S=m.createReducer(He),Ke={owner:{ref:null,id:null,title:null},month:null,quoteCurrency:null,vesting:[],ftes:null,accounts:[],auditReports:[],comments:[]},Ye={},b={fileExtension:"phbs",createState(t){return{global:{...Ke,...t==null?void 0:t.global},local:{...Ye,...t==null?void 0:t.local}}},createExtendedState(t){return m.createExtendedState({...t,documentType:"powerhouse/budget-statement"},b.createState)},createDocument(t){return m.createDocument(b.createExtendedState(t),b.createState)},saveToFile(t,e,r){return m.saveToFile(t,e,"phbs",r)},saveToFileHandle(t,e){return m.saveToFileHandle(t,e)},loadFromFile(t){return m.loadFromFile(t,S)},loadFromInput(t){return m.loadFromInput(t,S)}},{createAction:_}=m,ce=t=>_("ADD_ACCOUNT",{...t},void 0,G,"global"),de=t=>_("UPDATE_ACCOUNT",{...t},void 0,oe,"global"),pe=t=>_("DELETE_ACCOUNT",{...t},void 0,H,"global"),me=t=>_("SORT_ACCOUNTS",{...t},void 0,re,"global");class Je extends g{addAccount(e){return this.dispatch(ce(e))}updateAccount(e){return this.dispatch(de(e))}deleteAccount(e){return this.dispatch(pe(e))}sortAccounts(e){return this.dispatch(me(e))}}const{createAction:C}=m,he=t=>C("ADD_LINE_ITEM",{...t},void 0,Q,"global"),ge=t=>C("UPDATE_LINE_ITEM",{...t},void 0,se,"global"),fe=t=>C("DELETE_LINE_ITEM",{...t},void 0,J,"global"),be=t=>C("SORT_LINE_ITEMS",{...t},void 0,ae,"global");class Xe extends g{addLineItem(e){return this.dispatch(he(e))}updateLineItem(e){return this.dispatch(ge(e))}deleteLineItem(e){return this.dispatch(fe(e))}sortLineItems(e){return this.dispatch(be(e))}}const{createAction:D}=m,ye=t=>D("SET_OWNER",{...t},void 0,te,"global"),Ee=t=>D("SET_MONTH",{...t},void 0,ee,"global"),Ie=t=>D("SET_FTES",{...t},void 0,Z,"global"),Ae=t=>D("SET_QUOTE_CURRENCY",{...t},void 0,ne,"global");class Ze extends g{setOwner(e){return this.dispatch(ye(e))}setMonth(e){return this.dispatch(Ee(e))}setFtes(e){return this.dispatch(Ie(e))}setQuoteCurrency(e){return this.dispatch(Ae(e))}}const{createAction:Oe}=m,Te=(t,e)=>Oe("ADD_AUDIT_REPORT",{...t},e,z,"global"),_e=t=>Oe("DELETE_AUDIT_REPORT",{...t},void 0,K,"global");class et extends g{addAuditReport(e,r){return this.dispatch(Te(e,r))}deleteAuditReport(e){return this.dispatch(_e(e))}}const{createAction:j}=m,Ce=t=>j("ADD_COMMENT",{...t},void 0,B,"global"),De=t=>j("UPDATE_COMMENT",{...t},void 0,ie,"global"),ve=t=>j("DELETE_COMMENT",{...t},void 0,Y,"global");class tt extends g{addComment(e){return this.dispatch(Ce(e))}updateComment(e){return this.dispatch(De(e))}deleteComment(e){return this.dispatch(ve(e))}}const{createAction:N}=m,we=t=>N("ADD_VESTING",{...t},void 0,W,"global"),Se=t=>N("UPDATE_VESTING",{...t},void 0,ue,"global"),Le=t=>N("DELETE_VESTING",{...t},void 0,X,"global");class nt extends g{addVesting(e){return this.dispatch(we(e))}updateVesting(e){return this.dispatch(Se(e))}deleteVesting(e){return this.dispatch(Le(e))}}const xe=class ke extends g{constructor(e,r){super(S,b.createDocument(e),r)}saveToFile(e,r){return super.saveToFile(e,ke.fileExtension,r)}loadFromFile(e){return super.loadFromFile(e)}static async fromFile(e){const r=new this;return await r.loadFromFile(e),r}};Pe(xe,"fileExtension","phbs");let rt=xe;je(rt,[Je,Xe,Ze,et,tt,nt]);const at=Object.freeze(Object.defineProperty({__proto__:null,addAccount:ce,addAuditReport:Te,addComment:Ce,addLineItem:he,addVesting:we,deleteAccount:pe,deleteAuditReport:_e,deleteComment:ve,deleteLineItem:fe,deleteVesting:Le,setFtes:Ie,setMonth:Ee,setOwner:ye,setQuoteCurrency:Ae,sortAccounts:me,sortLineItems:be,updateAccount:de,updateComment:De,updateLineItem:ge,updateVesting:Se},Symbol.toStringTag,{value:"Module"}));({...b,...We});const O={...Ne,...at},ot=({accounts:t,addAccount:e})=>{function r(a){a.preventDefault();const i=a.target,s=new FormData(i),o=Object.fromEntries(s.entries());e(o)}return d("form",{method:"post",onSubmit:r,style:{maxWidth:300},children:[d("label",{children:["Address: ",u("input",{name:"address",placeholder:"eth:0x..."})]}),u("pre",{}),d("label",{children:["Name: ",u("input",{name:"name",placeholder:""})]}),u("pre",{}),u("button",{type:"submit",children:"Submit"})]},t.length)},U=new Intl.NumberFormat("en-US",{style:"currency",currency:"USD"}),it=({data:t,onDeleteAccount:e,onDeleteLineItem:r})=>{const a=t.accounts,i=Re(()=>a.map(({address:s,name:o,lineItems:l})=>{const{actuals:c,payments:p}=l.reduce((h,f)=>({actuals:h.actuals+(f.actual||0),payments:h.payments+(f.payment||0)}),{actuals:0,payments:0});return{address:s,name:o,actuals:c,payments:p}}),[a]);return d("div",{children:[u("h2",{children:"Accounts:"}),d("table",{style:{borderSpacing:12},children:[u("thead",{children:d("tr",{children:[u("th",{align:"left",children:"Name"}),u("th",{align:"left",children:"Address"}),u("th",{align:"left",children:"Actuals"}),u("th",{align:"left",children:"Payments"})]})}),u("tbody",{children:i.map(s=>d("tr",{children:[u("td",{children:s.name}),d("td",{children:[s.address.slice(0,10),"..."]}),u("td",{children:U.format(s.actuals)}),u("td",{children:U.format(s.payments)}),e?u("td",{children:u("button",{onClick:()=>e(s.address),children:"Delete"})}):null]},s.address))})]})]})},P=[{ref:"makerdao/budget-category",id:"CompensationAndBenefits",title:"Compensation & Benefits",headcountExpense:!0},{ref:"makerdao/budget-category",id:"TravelAndEntertainment",title:"Travel & Entertainment",headcountExpense:!0},{ref:"makerdao/budget-category",id:"SoftwareDevelopmentExpense",title:"Software Development Expense",headcountExpense:!1},{ref:"makerdao/budget-category",id:"GasExpense",title:"Gas Expense",headcountExpense:!0}],V=[{ref:"makerdao/project",id:"Powerhouse",title:"Powerhouse",color:"purple"},{ref:"makerdao/project",id:"LegalResearch",title:"Legal Research",color:"red"},{ref:"makerdao/project",id:"MakerAcademy",title:"Maker Academy",color:"teal"}],st=({accounts:t,addLineItem:e})=>{var r;const[a,i]=Fe(t.length?t[0].address:"");function s(o){o.preventDefault();const l=o.target,c=new FormData(l),p=Object.fromEntries(c.entries());e({accountId:c.get("account").toString(),budgetCap:parseFloat(p.budgetCap.toString()),actual:parseFloat(p.actual.toString()),payment:parseFloat(p.payment.toString()),category:P.find(h=>h.id===p.category.toString()),group:V.find(h=>h.id===p.group.toString())})}return d("form",{method:"post",onSubmit:s,style:{maxWidth:300},children:[d("label",{children:["Select account:"," ",u("select",{name:"account",onChange:o=>i(o.target.value),value:a??"",children:t.map(o=>u("option",{value:o.address,children:o.name},o.address))})]}),u("pre",{}),d("label",{children:["Category:"," ",u("select",{name:"category",children:P.map(o=>u("option",{value:o.id,children:o.title},o.id))})]}),u("pre",{}),d("label",{children:["Group:"," ",u("select",{name:"group",children:V.map(o=>u("option",{value:o.id,children:o.title},o.id))})]}),u("pre",{}),d("label",{children:["Budget Cap: ",u("input",{name:"budgetCap",placeholder:"0",type:"number"})]}),u("pre",{}),d("label",{children:["Payment: ",u("input",{name:"payment",placeholder:"0",type:"number"})]}),u("pre",{}),d("label",{children:["Actual: ",u("input",{name:"actual",placeholder:"0",type:"number"})]}),u("pre",{}),u("button",{type:"submit",children:"Submit"})]},(r=t.find(o=>o.address===a))==null?void 0:r.lineItems.length)};function ht({document:t,dispatch:e}){function r(l){e(O.addAccount(l))}function a(l){e(O.addLineItem(l))}function i(l){e(O.deleteAccount({account:l}))}function s(l){e(O.deleteLineItem(l))}const o=t.state.global.accounts;return d("div",{children:[u(it,{data:t.state.global,onDeleteAccount:i,onDeleteLineItem:s}),u("hr",{}),d("div",{children:[u("h3",{children:"Add account"}),u(ot,{accounts:o,addAccount:r})]}),d("div",{children:[u("h3",{children:"Add Line Item"}),u(st,{accounts:o,addLineItem:a})]})]})}export{ht as default};
2
+ //# sourceMappingURL=editor-8j593VN0.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"editor-DOC8FvI_.js","sources":["../../../../packages/document-model-libs/dist/es/budget-statement.js","../../../../packages/document-model-libs/dist/es/editors/budget-statement/editor.js"],"sourcesContent":["var Pe = Object.defineProperty;\nvar Ge = (n, t, r) => t in n ? Pe(n, t, { enumerable: !0, configurable: !0, writable: !0, value: r }) : n[t] = r;\nvar oe = (n, t, r) => Ge(n, typeof t != \"symbol\" ? t + \"\" : t, r);\nimport { utils as u, BaseDocument as d, applyMixins as ze, actions as qe } from \"document-model/document\";\nimport { z as e } from \"./document-models/account-snapshot.js\";\nconst Qe = {\n id: \"powerhouse/budget-statement\",\n name: \"BudgetStatement\",\n extension: \"phbs\",\n description: \"The BudgetStatement module manages the state and actions related to budget statements, which are documents that track the financial transactions of an organization over a month.\",\n author: {\n name: \"Powerhouse\",\n website: \"https://powerhouse.inc/\"\n },\n specifications: [\n {\n version: 1,\n changeLog: [],\n modules: [\n {\n name: \"account\",\n operations: [\n {\n name: \"AddAccount\",\n id: \"\",\n description: \"\",\n schema: `input AddAccountInput {\n address: String!\n name: String\n lineItems: [LineItemInput!]\n}`,\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\"\n },\n {\n name: \"UpdateAccount\",\n id: \"\",\n description: \"\",\n schema: `input UpdateAccountInput {\n address: String!\n name: String\n lineItems: [LineItem!]\n}`,\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\"\n },\n {\n name: \"DeleteAccount\",\n id: \"\",\n description: \"\",\n schema: `input DeleteAccountInput {\n account: String!\n}`,\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\"\n },\n {\n name: \"SortAccounts\",\n id: \"\",\n description: \"\",\n schema: `input SortAccountsInput {\n accounts: [String!]!\n}`,\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\"\n }\n ],\n id: \"\",\n description: \"\"\n },\n {\n name: \"line-item\",\n operations: [\n {\n name: \"AddLineItem\",\n id: \"\",\n description: \"\",\n schema: `input AddLineItemInput {\n accountId: ID!\n group: LineItemGroup\n headcountExpense: Boolean\n category: LineItemCategory\n budgetCap: Float\n actual: Float\n payment: Float\n forecast: [LineItemForecast!]\n comment: String }`,\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\"\n },\n {\n name: \"UpdateLineItem\",\n id: \"\",\n description: \"\",\n schema: `input LineItemUpdateInput {\n group: String\n category: String\n headcountExpense: Boolean\n budgetCap: Float\n actual: Float\n payment: Float\n forecast: [LineItemForecast!]\n comment: String }\n\ninput UpdateLineItemInput {\n accountId: ID!\n group: String\n category: String\n headcountExpense: Boolean\n budgetCap: Float\n actual: Float\n payment: Float\n forecast: [LineItemForecast!]\n comment: String }`,\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\"\n },\n {\n name: \"DeleteLineItem\",\n id: \"\",\n description: \"\",\n schema: `input DeleteLineItemInput {\n accountId: ID!\n group: String\n category: String }\n\n`,\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\"\n },\n {\n name: \"SortLineItems\",\n id: \"\",\n description: \"\",\n schema: `input LineItemsSortInput {\n group: String\n category: String }\n\ninput SortLineItemsInput {\n accountId: ID!\n lineItems: [LineItemsSortInput!]! }`,\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\"\n }\n ],\n id: \"\",\n description: \"\"\n },\n {\n name: \"base\",\n operations: [\n {\n name: \"SetOwner\",\n id: \"\",\n description: \"\",\n schema: `input SetOwnerInput {\n ref: String\n id: String\n title: String }`,\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\"\n },\n {\n name: \"SetMonth\",\n id: \"\",\n description: \"\",\n schema: `input SetMonthInput {\n month: String! }`,\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\"\n },\n {\n name: \"SetFtes\",\n id: \"\",\n description: \"\",\n schema: `input FtesForecastInput {\n month: String!\n value: Float! }\n\ninput SetFtesInput {\n value: Float!\n forecast: [FtesForecastInput!]! }`,\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\"\n },\n {\n name: \"SetQuoteCurrency\",\n id: \"\",\n description: \"\",\n schema: `input SetQuoteCurrencyInput {\n quoteCurrency: String! }`,\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\"\n }\n ],\n id: \"\",\n description: \"\"\n },\n {\n name: \"audit\",\n operations: [\n {\n name: \"AddAuditReport\",\n id: \"\",\n description: \"\",\n schema: `input AddAuditReportInput {\ntimestamp: DateTime\nreport: Attachment!\nstatus: AuditReportStatus!\n}`,\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\"\n },\n {\n name: \"DeleteAuditReport\",\n id: \"\",\n description: \"\",\n schema: `input DeleteAuditReportInput {\nreport: String!\n}`,\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\"\n }\n ],\n id: \"\",\n description: \"\"\n },\n {\n name: \"comment\",\n operations: [\n {\n name: \"AddComment\",\n id: \"\",\n description: \"\",\n schema: `input CommentAuthorInput {\n ref: String\n id: String\n username: String\n roleLabel: String }\n\ninput AddCommentInput {\n key: String\n author: CommentAuthorInput\n comment: String!\n timestamp: DateTime\n status: BudgetStatus }`,\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\"\n },\n {\n name: \"UpdateComment\",\n id: \"\",\n description: \"\",\n schema: `input UpdateCommentInput {\n key: String!\n author: CommentAuthorInput\n comment: String\n timestamp: DateTime\n status: BudgetStatus }`,\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\"\n },\n {\n name: \"DeleteComment\",\n id: \"\",\n description: \"\",\n schema: `input DeleteCommentInput {\n comment: String! }`,\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\"\n }\n ],\n id: \"\",\n description: \"\"\n },\n {\n name: \"vesting\",\n operations: [\n {\n name: \"AddVesting\",\n id: \"\",\n description: \"\",\n schema: `input AddVestingInput {\n key: String\n date: String\n amount: String\n amountOld: String\n comment: String\n currency: String\n vested: Boolean }`,\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\"\n },\n {\n name: \"UpdateVesting\",\n id: \"\",\n description: \"\",\n schema: `input UpdateVestingInput {\n key: String!\n date: String\n amount: String\n amountOld: String\n comment: String\n currency: String\n vested: Boolean }`,\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\"\n },\n {\n name: \"DeleteVesting\",\n id: \"\",\n description: \"\",\n schema: `input DeleteVestingInput {\n vesting: String! }`,\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\"\n }\n ],\n id: \"\",\n description: \"\"\n }\n ],\n state: {\n global: {\n schema: `scalar DateTime\nscalar Attachment\n\ninput LineItemInput {\n group: LineItemGroup\n headcountExpense: Boolean\n category: LineItemCategory\n budgetCap: Float\n actual: Float\n payment: Float\n forecast: [LineItemForecast!]\n comment: String } \n\ntype LineItemGroup {\n ref: String!\n id: String!\n title: String!\n color: String!\n}\n\ntype LineItemCategory {\n ref: String!\n id: String!\n title: String!\n}\n\ntype LineItemForecast {\n month: String!\n value: Float!\n budgetCap: Float!\n}\n\ntype LineItem {\n group: LineItemGroup\n headcountExpense: Boolean!\n category: LineItemCategory\n budgetCap: Float\n actual: Float\n payment: Float\n forecast: [LineItemForecast!]!\n comment: String\n}\n\ntype Account {\n address: String! # TODO Address\n name: String!\n lineItems: [LineItem!]!\n}\n\ntype Owner {\n ref: String\n id: String\n title: String\n}\n\ntype Vesting {\n key: String!\n date: String!\n amount: String!\n amountOld: String!\n comment: String!\n currency: String!\n vested: Boolean!\n}\n\ntype FtesForecast {\n month: String!\n value: Float!\n}\n\ntype Ftes {\n value: Float!\n forecast: [FtesForecast!]!\n}\n\nenum AuditReportStatus {\n Approved\n ApprovedWithComments\n NeedsAction\n Escalated\n}\n\ntype AuditReport {\n timestamp: DateTime!\n report: Attachment! # TODO enforce attachment\n status: AuditReportStatus!\n}\n\ntype CommentAuthor {\n ref: String\n id: String\n username: String\n roleLabel: String\n}\n\nenum BudgetStatus {\n Draft\n Review\n Final\n Escalated\n}\n\ntype Comment {\n key: String!\n author: CommentAuthor!\n comment: String!\n timestamp: DateTime!\n status: BudgetStatus!\n}\n\ntype BudgetStatementState {\n owner: Owner\n month: String\n quoteCurrency: String\n accounts: [Account!]!\n vesting: [Vesting!]!\n ftes: Ftes\n auditReports: [AuditReport!]!\n comments: [Comment!]!\n}`,\n initialValue: '\"{\\\\n \\\\\"owner\\\\\": {\\\\n \\\\\"ref\\\\\": null,\\\\n \\\\\"id\\\\\": null,\\\\n \\\\\"title\\\\\": null\\\\n },\\\\n \\\\\"month\\\\\": null,\\\\n \\\\\"quoteCurrency\\\\\": null,\\\\n \\\\\"vesting\\\\\": [],\\\\n \\\\\"ftes\\\\\": null,\\\\n \\\\\"accounts\\\\\": [],\\\\n \\\\\"auditReports\\\\\": [],\\\\n \\\\\"comments\\\\\": []\\\\n}\"',\n examples: []\n },\n local: {\n schema: \"type BudgetStatementLocalState\",\n initialValue: '\"{}\"',\n examples: []\n }\n }\n }\n ]\n}, ue = (n) => n != null, He = e.any().refine((n) => ue(n)), F = e.enum([\n \"Approved\",\n \"ApprovedWithComments\",\n \"Escalated\",\n \"NeedsAction\"\n]), E = e.enum([\n \"Draft\",\n \"Escalated\",\n \"Final\",\n \"Review\"\n]);\nfunction ce() {\n return e.object({\n __typename: e.literal(\"Account\").optional(),\n address: e.string(),\n lineItems: e.array(P()),\n name: e.string()\n });\n}\nfunction w() {\n return e.object({\n address: e.string(),\n lineItems: e.array(e.lazy(() => Se())).nullish(),\n name: e.string().nullish()\n });\n}\nfunction v() {\n return e.object({\n report: e.string(),\n status: F,\n timestamp: e.string().datetime().nullish()\n });\n}\nfunction R() {\n return e.object({\n author: e.lazy(() => N().nullish()),\n comment: e.string(),\n key: e.string().nullish(),\n status: E.nullish(),\n timestamp: e.string().datetime().nullish()\n });\n}\nfunction k() {\n return e.object({\n accountId: e.string(),\n actual: e.number().nullish(),\n budgetCap: e.number().nullish(),\n category: O().nullish(),\n comment: e.string().nullish(),\n forecast: e.array(p()).nullish(),\n group: C().nullish(),\n headcountExpense: e.boolean().nullish(),\n payment: e.number().nullish()\n });\n}\nfunction j() {\n return e.object({\n amount: e.string().nullish(),\n amountOld: e.string().nullish(),\n comment: e.string().nullish(),\n currency: e.string().nullish(),\n date: e.string().nullish(),\n key: e.string().nullish(),\n vested: e.boolean().nullish()\n });\n}\nfunction le() {\n return e.object({\n __typename: e.literal(\"AuditReport\").optional(),\n report: e.string(),\n status: F,\n timestamp: e.string().datetime()\n });\n}\nfunction We() {\n return e.object({\n __typename: e.literal(\"BudgetStatementLocalState\").optional()\n });\n}\nfunction Ke() {\n return e.object({\n __typename: e.literal(\"BudgetStatementState\").optional(),\n accounts: e.array(ce()),\n auditReports: e.array(le()),\n comments: e.array(me()),\n ftes: pe().nullable(),\n month: e.string().nullable(),\n owner: be().nullable(),\n quoteCurrency: e.string().nullable(),\n vesting: e.array(fe())\n });\n}\nfunction me() {\n return e.object({\n __typename: e.literal(\"Comment\").optional(),\n author: de(),\n comment: e.string(),\n key: e.string(),\n status: E,\n timestamp: e.string().datetime()\n });\n}\nfunction de() {\n return e.object({\n __typename: e.literal(\"CommentAuthor\").optional(),\n id: e.string().nullable(),\n ref: e.string().nullable(),\n roleLabel: e.string().nullable(),\n username: e.string().nullable()\n });\n}\nfunction N() {\n return e.object({\n id: e.string().nullish(),\n ref: e.string().nullish(),\n roleLabel: e.string().nullish(),\n username: e.string().nullish()\n });\n}\nfunction U() {\n return e.object({\n account: e.string()\n });\n}\nfunction V() {\n return e.object({\n report: e.string()\n });\n}\nfunction M() {\n return e.object({\n comment: e.string()\n });\n}\nfunction B() {\n return e.object({\n accountId: e.string(),\n category: e.string().nullish(),\n group: e.string().nullish()\n });\n}\nfunction $() {\n return e.object({\n vesting: e.string()\n });\n}\nfunction pe() {\n return e.object({\n __typename: e.literal(\"Ftes\").optional(),\n forecast: e.array(ge()),\n value: e.number()\n });\n}\nfunction ge() {\n return e.object({\n __typename: e.literal(\"FtesForecast\").optional(),\n month: e.string(),\n value: e.number()\n });\n}\nfunction he() {\n return e.object({\n month: e.string(),\n value: e.number()\n });\n}\nfunction P() {\n return e.object({\n __typename: e.literal(\"LineItem\").optional(),\n actual: e.number().nullable(),\n budgetCap: e.number().nullable(),\n category: O().nullable(),\n comment: e.string().nullable(),\n forecast: e.array(p()),\n group: C().nullable(),\n headcountExpense: e.boolean(),\n payment: e.number().nullable()\n });\n}\nfunction O() {\n return e.object({\n __typename: e.literal(\"LineItemCategory\").optional(),\n id: e.string(),\n ref: e.string(),\n title: e.string()\n });\n}\nfunction p() {\n return e.object({\n __typename: e.literal(\"LineItemForecast\").optional(),\n budgetCap: e.number(),\n month: e.string(),\n value: e.number()\n });\n}\nfunction C() {\n return e.object({\n __typename: e.literal(\"LineItemGroup\").optional(),\n color: e.string(),\n id: e.string(),\n ref: e.string(),\n title: e.string()\n });\n}\nfunction Se() {\n return e.object({\n actual: e.number().nullish(),\n budgetCap: e.number().nullish(),\n category: O().nullish(),\n comment: e.string().nullish(),\n forecast: e.array(p()).nullish(),\n group: C().nullish(),\n headcountExpense: e.boolean().nullish(),\n payment: e.number().nullish()\n });\n}\nfunction Ye() {\n return e.object({\n actual: e.number().nullish(),\n budgetCap: e.number().nullish(),\n category: e.string().nullish(),\n comment: e.string().nullish(),\n forecast: e.array(p()).nullish(),\n group: e.string().nullish(),\n headcountExpense: e.boolean().nullish(),\n payment: e.number().nullish()\n });\n}\nfunction Ie() {\n return e.object({\n category: e.string().nullish(),\n group: e.string().nullish()\n });\n}\nfunction be() {\n return e.object({\n __typename: e.literal(\"Owner\").optional(),\n id: e.string().nullable(),\n ref: e.string().nullable(),\n title: e.string().nullable()\n });\n}\nfunction G() {\n return e.object({\n forecast: e.array(e.lazy(() => he())),\n value: e.number()\n });\n}\nfunction z() {\n return e.object({\n month: e.string()\n });\n}\nfunction q() {\n return e.object({\n id: e.string().nullish(),\n ref: e.string().nullish(),\n title: e.string().nullish()\n });\n}\nfunction Q() {\n return e.object({\n quoteCurrency: e.string()\n });\n}\nfunction H() {\n return e.object({\n accounts: e.array(e.string())\n });\n}\nfunction W() {\n return e.object({\n accountId: e.string(),\n lineItems: e.array(e.lazy(() => Ie()))\n });\n}\nfunction K() {\n return e.object({\n address: e.string(),\n lineItems: e.array(P()).nullish(),\n name: e.string().nullish()\n });\n}\nfunction Y() {\n return e.object({\n author: e.lazy(() => N().nullish()),\n comment: e.string().nullish(),\n key: e.string(),\n status: E.nullish(),\n timestamp: e.string().datetime().nullish()\n });\n}\nfunction J() {\n return e.object({\n accountId: e.string(),\n actual: e.number().nullish(),\n budgetCap: e.number().nullish(),\n category: e.string().nullish(),\n comment: e.string().nullish(),\n forecast: e.array(p()).nullish(),\n group: e.string().nullish(),\n headcountExpense: e.boolean().nullish(),\n payment: e.number().nullish()\n });\n}\nfunction X() {\n return e.object({\n amount: e.string().nullish(),\n amountOld: e.string().nullish(),\n comment: e.string().nullish(),\n currency: e.string().nullish(),\n date: e.string().nullish(),\n key: e.string(),\n vested: e.boolean().nullish()\n });\n}\nfunction fe() {\n return e.object({\n __typename: e.literal(\"Vesting\").optional(),\n amount: e.string(),\n amountOld: e.string(),\n comment: e.string(),\n currency: e.string(),\n date: e.string(),\n key: e.string(),\n vested: e.boolean()\n });\n}\nconst ht = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n AccountSchema: ce,\n AddAccountInputSchema: w,\n AddAuditReportInputSchema: v,\n AddCommentInputSchema: R,\n AddLineItemInputSchema: k,\n AddVestingInputSchema: j,\n AuditReportSchema: le,\n AuditReportStatusSchema: F,\n BudgetStatementLocalStateSchema: We,\n BudgetStatementStateSchema: Ke,\n BudgetStatusSchema: E,\n CommentAuthorInputSchema: N,\n CommentAuthorSchema: de,\n CommentSchema: me,\n DeleteAccountInputSchema: U,\n DeleteAuditReportInputSchema: V,\n DeleteCommentInputSchema: M,\n DeleteLineItemInputSchema: B,\n DeleteVestingInputSchema: $,\n FtesForecastInputSchema: he,\n FtesForecastSchema: ge,\n FtesSchema: pe,\n LineItemCategorySchema: O,\n LineItemForecastSchema: p,\n LineItemGroupSchema: C,\n LineItemInputSchema: Se,\n LineItemSchema: P,\n LineItemUpdateInputSchema: Ye,\n LineItemsSortInputSchema: Ie,\n OwnerSchema: be,\n SetFtesInputSchema: G,\n SetMonthInputSchema: z,\n SetOwnerInputSchema: q,\n SetQuoteCurrencyInputSchema: Q,\n SortAccountsInputSchema: H,\n SortLineItemsInputSchema: W,\n UpdateAccountInputSchema: K,\n UpdateCommentInputSchema: Y,\n UpdateLineItemInputSchema: J,\n UpdateVestingInputSchema: X,\n VestingSchema: fe,\n definedNonNullAnySchema: He,\n isDefinedNonNullAny: ue\n}, Symbol.toStringTag, { value: \"Module\" })), ye = (n) => {\n var t;\n return {\n ...n,\n name: n.name ?? \"\",\n lineItems: ((t = n.lineItems) == null ? void 0 : t.map(Z)) ?? new Array()\n };\n}, Z = (n) => {\n var t;\n return {\n budgetCap: null,\n payment: null,\n actual: null,\n comment: null,\n ...n,\n forecast: ((t = n.forecast) == null ? void 0 : t.sort((r, o) => r.month.localeCompare(o.month))) ?? new Array(),\n headcountExpense: n.headcountExpense ?? !1,\n group: n.group ?? null,\n category: n.category ?? null\n };\n}, Je = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n createAccount: ye,\n createLineItem: Z\n}, Symbol.toStringTag, { value: \"Module\" })), h = {\n addAccountOperation(n, t) {\n const { input: r } = t;\n if (n.accounts.find((o) => o.address === r.address))\n throw new Error(`Account with address ${r.address} already exists!`);\n n.accounts.push(ye(r));\n },\n updateAccountOperation(n, t) {\n const { input: r } = t, o = n.accounts.findIndex(\n (i) => i.address === r.address\n );\n if (o === -1)\n throw new Error(`Account with adddress ${r.address} not found`);\n const a = n.accounts[o];\n n.accounts[o] = {\n ...a,\n lineItems: r.lineItems ?? a.lineItems,\n name: r.name ?? a.name\n };\n },\n deleteAccountOperation(n, t) {\n const { input: r } = t;\n n.accounts = n.accounts.filter(\n (o) => o.address !== r.account\n );\n },\n sortAccountsOperation(n, t) {\n n.accounts.sort((r, o) => {\n const a = t.input.accounts.indexOf(r.address), i = t.input.accounts.indexOf(o.address);\n return (a > -1 ? a : 1 / 0) - (i > -1 ? i : 1 / 0);\n });\n }\n};\nfunction S(n, t) {\n return n.category === t.category && n.group === t.group;\n}\nconst I = {\n addLineItemOperation(n, t) {\n var i, c;\n const { accountId: r, ...o } = t.input, a = n.accounts.find((s) => s.address === r);\n if (!a)\n throw new Error(`Account with address ${r} not found`);\n if (a.lineItems.find(\n (s) => {\n var l, m, ne, re;\n return ((l = o.category) == null ? void 0 : l.id) === ((m = s.category) == null ? void 0 : m.id) && ((ne = o.group) == null ? void 0 : ne.id) === ((re = s.group) == null ? void 0 : re.id);\n }\n ))\n throw new Error(\n `Line item with category '${((i = o.category) == null ? void 0 : i.id) ?? \"null\"}' and group '${((c = o.group) == null ? void 0 : c.id) ?? \"null\"}' already exists`\n );\n a.lineItems.push(Z(o));\n },\n updateLineItemOperation(n, t) {\n const { accountId: r, ...o } = t.input, a = n.accounts.find((s) => s.address === r);\n if (!a)\n throw new Error(`Account with address ${r} not found`);\n const i = a.lineItems.findIndex(\n (s) => S(o, s)\n );\n if (i === -1)\n throw new Error(\"Line item not found\");\n const c = a.lineItems[i];\n a.lineItems[i] = {\n ...c,\n ...o,\n category: c.category,\n headcountExpense: o.headcountExpense ?? !1,\n group: c.group,\n forecast: (o.forecast ?? c.forecast).sort((s, l) => s.month.localeCompare(l.month))\n };\n },\n deleteLineItemOperation(n, t) {\n const { accountId: r, ...o } = t.input, a = n.accounts.find((i) => i.address === r);\n if (!a)\n throw new Error(`Account with address ${r} not found`);\n a.lineItems = a.lineItems.filter(\n (i) => !S(o, i)\n );\n },\n sortLineItemsOperation(n, t) {\n const { accountId: r, lineItems: o } = t.input, a = n.accounts.find((i) => i.address === r);\n if (!a)\n throw new Error(`Account with address ${r} not found`);\n a.lineItems.sort((i, c) => {\n const s = o.findIndex((m) => S(m, i)), l = o.findIndex((m) => S(m, c));\n return (s > -1 ? s : 1 / 0) - (l > -1 ? l : 1 / 0);\n });\n }\n}, b = {\n setOwnerOperation(n, t) {\n n.owner = {\n id: t.input.id ?? null,\n ref: t.input.ref ?? null,\n title: t.input.title ?? null\n };\n },\n setMonthOperation(n, t) {\n n.month = t.input.month;\n },\n setFtesOperation(n, t) {\n n.ftes = t.input, n.ftes.forecast.sort((r, o) => r.month.localeCompare(o.month));\n },\n setQuoteCurrencyOperation(n, t) {\n n.quoteCurrency = t.input.quoteCurrency;\n }\n};\nfunction Xe(n, t) {\n if (n.auditReports.find((r) => r.report === t))\n throw new Error(`Audit with report ${t} already exists`);\n}\nconst ae = {\n addAuditReportOperation(n, t) {\n if (Xe(n, t.input.report), !t.attachments.find(\n (r) => r.hash === t.input.report\n ))\n throw new Error(\"Report was not included in the action attachments\");\n n.auditReports.push({\n ...t.input,\n timestamp: t.input.timestamp ?? (/* @__PURE__ */ new Date()).toISOString()\n });\n },\n deleteAuditReportOperation(n, t) {\n const r = n.auditReports.findIndex(\n (o) => o.report === t.input.report\n );\n r > -1 && n.auditReports.splice(r, 1);\n }\n}, ie = (n, t) => n.timestamp < t.timestamp ? -1 : 1, D = {\n addCommentOperation(n, t) {\n const { input: r } = t, o = r.key ?? u.hashKey();\n if (n.comments.findIndex((i) => i.key === r.key) > -1)\n throw new Error(`Comment with key ${o} already exists`);\n n.comments.push({\n key: o,\n author: {\n ref: null,\n id: null,\n username: null,\n roleLabel: null,\n ...r.author\n },\n comment: r.comment,\n timestamp: r.timestamp || (/* @__PURE__ */ new Date()).toISOString(),\n status: r.status ?? \"Draft\"\n }), n.comments.sort(ie);\n },\n updateCommentOperation(n, t) {\n var i, c, s, l;\n const { input: r } = t, o = n.comments.findIndex((m) => m.key === r.key);\n if (o === -1)\n return;\n const a = n.comments[o];\n n.comments[o] = {\n ...a,\n ...r,\n author: {\n id: ((i = r.author) == null ? void 0 : i.id) ?? a.author.id,\n ref: ((c = r.author) == null ? void 0 : c.ref) ?? a.author.ref,\n roleLabel: ((s = r.author) == null ? void 0 : s.roleLabel) ?? a.author.roleLabel,\n username: ((l = r.author) == null ? void 0 : l.username) ?? a.author.username\n },\n comment: r.comment ?? a.comment,\n timestamp: r.timestamp ?? (/* @__PURE__ */ new Date()).toISOString(),\n status: r.status ?? a.status\n }, n.comments.sort(ie);\n },\n deleteCommentOperation(n, t) {\n const { input: r } = t;\n n.comments = n.comments.filter(\n (o) => r.comment !== o.key\n );\n }\n}, se = (n, t) => n.date < t.date ? -1 : 1, x = {\n addVestingOperation(n, t) {\n const { input: r } = t, o = r.key ?? u.hashKey();\n if (n.vesting.findIndex((i) => i.key === r.key) > -1)\n throw new Error(`Vesting with key ${o} already exists`);\n n.vesting.push({\n ...r,\n key: o,\n date: r.date ?? \"\",\n amount: r.amount ?? \"\",\n amountOld: r.amountOld ?? r.amount ?? \"\",\n comment: r.comment ?? \"\",\n currency: r.currency ?? \"\",\n vested: r.vested ?? !1\n }), n.vesting.sort(se);\n },\n updateVestingOperation(n, t) {\n const { input: r } = t, o = n.vesting.findIndex((i) => i.key === r.key);\n if (o === -1)\n return;\n const a = n.vesting[o];\n n.vesting[o] = {\n ...a,\n ...r,\n amount: r.amount ?? a.amount,\n amountOld: r.amountOld ?? a.amountOld,\n comment: r.comment ?? a.comment,\n currency: r.currency ?? a.currency,\n date: r.date ?? a.date,\n vested: r.vested ?? a.vested\n }, n.vesting.sort(se);\n },\n deleteVestingOperation(n, t) {\n n.vesting = n.vesting.filter(\n (r) => !t.input.vesting.includes(r.key)\n );\n }\n}, Ze = (n, t, r) => {\n if (u.isBaseAction(t))\n return n;\n switch (t.type) {\n case \"ADD_ACCOUNT\":\n w().parse(t.input), h.addAccountOperation(n[t.scope], t, r);\n break;\n case \"UPDATE_ACCOUNT\":\n K().parse(t.input), h.updateAccountOperation(\n n[t.scope],\n t,\n r\n );\n break;\n case \"DELETE_ACCOUNT\":\n U().parse(t.input), h.deleteAccountOperation(\n n[t.scope],\n t,\n r\n );\n break;\n case \"SORT_ACCOUNTS\":\n H().parse(t.input), h.sortAccountsOperation(\n n[t.scope],\n t,\n r\n );\n break;\n case \"ADD_LINE_ITEM\":\n k().parse(t.input), I.addLineItemOperation(\n n[t.scope],\n t,\n r\n );\n break;\n case \"UPDATE_LINE_ITEM\":\n J().parse(t.input), I.updateLineItemOperation(\n n[t.scope],\n t,\n r\n );\n break;\n case \"DELETE_LINE_ITEM\":\n B().parse(t.input), I.deleteLineItemOperation(\n n[t.scope],\n t,\n r\n );\n break;\n case \"SORT_LINE_ITEMS\":\n W().parse(t.input), I.sortLineItemsOperation(\n n[t.scope],\n t,\n r\n );\n break;\n case \"SET_OWNER\":\n q().parse(t.input), b.setOwnerOperation(n[t.scope], t, r);\n break;\n case \"SET_MONTH\":\n z().parse(t.input), b.setMonthOperation(n[t.scope], t, r);\n break;\n case \"SET_FTES\":\n G().parse(t.input), b.setFtesOperation(n[t.scope], t, r);\n break;\n case \"SET_QUOTE_CURRENCY\":\n Q().parse(t.input), b.setQuoteCurrencyOperation(\n n[t.scope],\n t,\n r\n );\n break;\n case \"ADD_AUDIT_REPORT\":\n v().parse(t.input), ae.addAuditReportOperation(\n n[t.scope],\n t,\n r\n );\n break;\n case \"DELETE_AUDIT_REPORT\":\n V().parse(t.input), ae.deleteAuditReportOperation(\n n[t.scope],\n t,\n r\n );\n break;\n case \"ADD_COMMENT\":\n R().parse(t.input), D.addCommentOperation(n[t.scope], t, r);\n break;\n case \"UPDATE_COMMENT\":\n Y().parse(t.input), D.updateCommentOperation(\n n[t.scope],\n t,\n r\n );\n break;\n case \"DELETE_COMMENT\":\n M().parse(t.input), D.deleteCommentOperation(\n n[t.scope],\n t,\n r\n );\n break;\n case \"ADD_VESTING\":\n j().parse(t.input), x.addVestingOperation(n[t.scope], t, r);\n break;\n case \"UPDATE_VESTING\":\n X().parse(t.input), x.updateVestingOperation(\n n[t.scope],\n t,\n r\n );\n break;\n case \"DELETE_VESTING\":\n $().parse(t.input), x.deleteVestingOperation(\n n[t.scope],\n t,\n r\n );\n break;\n default:\n return n;\n }\n}, f = u.createReducer(Ze), et = {\n owner: {\n ref: null,\n id: null,\n title: null\n },\n month: null,\n quoteCurrency: null,\n vesting: [],\n ftes: null,\n accounts: [],\n auditReports: [],\n comments: []\n}, tt = {}, g = {\n fileExtension: \"phbs\",\n createState(n) {\n return {\n global: { ...et, ...n == null ? void 0 : n.global },\n local: { ...tt, ...n == null ? void 0 : n.local }\n };\n },\n createExtendedState(n) {\n return u.createExtendedState(\n { ...n, documentType: \"powerhouse/budget-statement\" },\n g.createState\n );\n },\n createDocument(n) {\n return u.createDocument(\n g.createExtendedState(n),\n g.createState\n );\n },\n saveToFile(n, t, r) {\n return u.saveToFile(n, t, \"phbs\", r);\n },\n saveToFileHandle(n, t) {\n return u.saveToFileHandle(n, t);\n },\n loadFromFile(n) {\n return u.loadFromFile(n, f);\n },\n loadFromInput(n) {\n return u.loadFromInput(n, f);\n }\n}, { createAction: _ } = u, Ae = (n) => _(\n \"ADD_ACCOUNT\",\n { ...n },\n void 0,\n w,\n \"global\"\n), Ee = (n) => _(\n \"UPDATE_ACCOUNT\",\n { ...n },\n void 0,\n K,\n \"global\"\n), Oe = (n) => _(\n \"DELETE_ACCOUNT\",\n { ...n },\n void 0,\n U,\n \"global\"\n), Ce = (n) => _(\n \"SORT_ACCOUNTS\",\n { ...n },\n void 0,\n H,\n \"global\"\n);\nclass nt extends d {\n addAccount(t) {\n return this.dispatch(Ae(t));\n }\n updateAccount(t) {\n return this.dispatch(Ee(t));\n }\n deleteAccount(t) {\n return this.dispatch(Oe(t));\n }\n sortAccounts(t) {\n return this.dispatch(Ce(t));\n }\n}\nconst { createAction: L } = u, _e = (n) => L(\n \"ADD_LINE_ITEM\",\n { ...n },\n void 0,\n k,\n \"global\"\n), Le = (n) => L(\n \"UPDATE_LINE_ITEM\",\n { ...n },\n void 0,\n J,\n \"global\"\n), Te = (n) => L(\n \"DELETE_LINE_ITEM\",\n { ...n },\n void 0,\n B,\n \"global\"\n), De = (n) => L(\n \"SORT_LINE_ITEMS\",\n { ...n },\n void 0,\n W,\n \"global\"\n);\nclass rt extends d {\n addLineItem(t) {\n return this.dispatch(_e(t));\n }\n updateLineItem(t) {\n return this.dispatch(Le(t));\n }\n deleteLineItem(t) {\n return this.dispatch(Te(t));\n }\n sortLineItems(t) {\n return this.dispatch(De(t));\n }\n}\nconst { createAction: T } = u, xe = (n) => T(\n \"SET_OWNER\",\n { ...n },\n void 0,\n q,\n \"global\"\n), Fe = (n) => T(\n \"SET_MONTH\",\n { ...n },\n void 0,\n z,\n \"global\"\n), we = (n) => T(\n \"SET_FTES\",\n { ...n },\n void 0,\n G,\n \"global\"\n), ve = (n) => T(\n \"SET_QUOTE_CURRENCY\",\n { ...n },\n void 0,\n Q,\n \"global\"\n);\nclass ot extends d {\n setOwner(t) {\n return this.dispatch(xe(t));\n }\n setMonth(t) {\n return this.dispatch(Fe(t));\n }\n setFtes(t) {\n return this.dispatch(we(t));\n }\n setQuoteCurrency(t) {\n return this.dispatch(ve(t));\n }\n}\nconst { createAction: Re } = u, ke = (n, t) => Re(\n \"ADD_AUDIT_REPORT\",\n { ...n },\n t,\n v,\n \"global\"\n), je = (n) => Re(\n \"DELETE_AUDIT_REPORT\",\n { ...n },\n void 0,\n V,\n \"global\"\n);\nclass at extends d {\n addAuditReport(t, r) {\n return this.dispatch(ke(t, r));\n }\n deleteAuditReport(t) {\n return this.dispatch(je(t));\n }\n}\nconst { createAction: ee } = u, Ne = (n) => ee(\n \"ADD_COMMENT\",\n { ...n },\n void 0,\n R,\n \"global\"\n), Ue = (n) => ee(\n \"UPDATE_COMMENT\",\n { ...n },\n void 0,\n Y,\n \"global\"\n), Ve = (n) => ee(\n \"DELETE_COMMENT\",\n { ...n },\n void 0,\n M,\n \"global\"\n);\nclass it extends d {\n addComment(t) {\n return this.dispatch(Ne(t));\n }\n updateComment(t) {\n return this.dispatch(Ue(t));\n }\n deleteComment(t) {\n return this.dispatch(Ve(t));\n }\n}\nconst { createAction: te } = u, Me = (n) => te(\n \"ADD_VESTING\",\n { ...n },\n void 0,\n j,\n \"global\"\n), Be = (n) => te(\n \"UPDATE_VESTING\",\n { ...n },\n void 0,\n X,\n \"global\"\n), $e = (n) => te(\n \"DELETE_VESTING\",\n { ...n },\n void 0,\n $,\n \"global\"\n);\nclass st extends d {\n addVesting(t) {\n return this.dispatch(Me(t));\n }\n updateVesting(t) {\n return this.dispatch(Be(t));\n }\n deleteVesting(t) {\n return this.dispatch($e(t));\n }\n}\nconst A = class A extends d {\n constructor(t, r) {\n super(f, g.createDocument(t), r);\n }\n saveToFile(t, r) {\n return super.saveToFile(t, A.fileExtension, r);\n }\n loadFromFile(t) {\n return super.loadFromFile(t);\n }\n static async fromFile(t) {\n const r = new this();\n return await r.loadFromFile(t), r;\n }\n};\noe(A, \"fileExtension\", \"phbs\");\nlet y = A;\nze(y, [\n nt,\n rt,\n ot,\n at,\n it,\n st\n]);\nconst ut = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n addAccount: Ae,\n addAuditReport: ke,\n addComment: Ne,\n addLineItem: _e,\n addVesting: Me,\n deleteAccount: Oe,\n deleteAuditReport: je,\n deleteComment: Ve,\n deleteLineItem: Te,\n deleteVesting: $e,\n setFtes: we,\n setMonth: Fe,\n setOwner: xe,\n setQuoteCurrency: ve,\n sortAccounts: Ce,\n sortLineItems: De,\n updateAccount: Ee,\n updateComment: Ue,\n updateLineItem: Le,\n updateVesting: Be\n}, Symbol.toStringTag, { value: \"Module\" })), ct = y, lt = { ...g, ...Je }, mt = { ...qe, ...ut }, St = {\n Document: ct,\n reducer: f,\n actions: mt,\n utils: lt,\n documentModel: Qe\n};\nexport {\n y as BudgetStatement,\n ct as Document,\n mt as actions,\n ye as createAccount,\n Z as createLineItem,\n Qe as documentModel,\n St as module,\n f as reducer,\n lt as utils,\n ht as z\n};\n","import { jsxs as n, jsx as e } from \"react/jsx-runtime\";\nimport { actions as p } from \"../../budget-statement.js\";\nimport { useMemo as y, useState as S } from \"react\";\nconst A = ({ accounts: a, addAccount: l }) => {\n function c(o) {\n o.preventDefault();\n const i = o.target, r = new FormData(i), t = Object.fromEntries(r.entries());\n l(t);\n }\n return /* @__PURE__ */ n(\n \"form\",\n {\n method: \"post\",\n onSubmit: c,\n style: { maxWidth: 300 },\n children: [\n /* @__PURE__ */ n(\"label\", { children: [\n \"Address: \",\n /* @__PURE__ */ e(\"input\", { name: \"address\", placeholder: \"eth:0x...\" })\n ] }),\n /* @__PURE__ */ e(\"pre\", {}),\n /* @__PURE__ */ n(\"label\", { children: [\n \"Name: \",\n /* @__PURE__ */ e(\"input\", { name: \"name\", placeholder: \"\" })\n ] }),\n /* @__PURE__ */ e(\"pre\", {}),\n /* @__PURE__ */ e(\"button\", { type: \"submit\", children: \"Submit\" })\n ]\n },\n a.length\n );\n}, f = new Intl.NumberFormat(\"en-US\", {\n style: \"currency\",\n currency: \"USD\"\n}), v = ({ data: a, onDeleteAccount: l, onDeleteLineItem: c }) => {\n const o = a.accounts, i = y(\n () => o.map(({ address: r, name: t, lineItems: d }) => {\n const { actuals: u, payments: s } = d.reduce(\n (m, h) => ({\n actuals: m.actuals + (h.actual || 0),\n payments: m.payments + (h.payment || 0)\n }),\n { actuals: 0, payments: 0 }\n );\n return { address: r, name: t, actuals: u, payments: s };\n }),\n [o]\n );\n return /* @__PURE__ */ n(\"div\", { children: [\n /* @__PURE__ */ e(\"h2\", { children: \"Accounts:\" }),\n /* @__PURE__ */ n(\"table\", { style: { borderSpacing: 12 }, children: [\n /* @__PURE__ */ e(\"thead\", { children: /* @__PURE__ */ n(\"tr\", { children: [\n /* @__PURE__ */ e(\"th\", { align: \"left\", children: \"Name\" }),\n /* @__PURE__ */ e(\"th\", { align: \"left\", children: \"Address\" }),\n /* @__PURE__ */ e(\"th\", { align: \"left\", children: \"Actuals\" }),\n /* @__PURE__ */ e(\"th\", { align: \"left\", children: \"Payments\" })\n ] }) }),\n /* @__PURE__ */ e(\"tbody\", { children: i.map((r) => /* @__PURE__ */ n(\"tr\", { children: [\n /* @__PURE__ */ e(\"td\", { children: r.name }),\n /* @__PURE__ */ n(\"td\", { children: [\n r.address.slice(0, 10),\n \"...\"\n ] }),\n /* @__PURE__ */ e(\"td\", { children: f.format(r.actuals) }),\n /* @__PURE__ */ e(\"td\", { children: f.format(r.payments) }),\n l ? /* @__PURE__ */ e(\"td\", { children: /* @__PURE__ */ e(\"button\", { onClick: () => l(r.address), children: \"Delete\" }) }) : null\n ] }, r.address)) })\n ] })\n ] });\n}, g = [\n {\n ref: \"makerdao/budget-category\",\n id: \"CompensationAndBenefits\",\n title: \"Compensation & Benefits\",\n headcountExpense: !0\n },\n {\n ref: \"makerdao/budget-category\",\n id: \"TravelAndEntertainment\",\n title: \"Travel & Entertainment\",\n headcountExpense: !0\n },\n {\n ref: \"makerdao/budget-category\",\n id: \"SoftwareDevelopmentExpense\",\n title: \"Software Development Expense\",\n headcountExpense: !1\n },\n {\n ref: \"makerdao/budget-category\",\n id: \"GasExpense\",\n title: \"Gas Expense\",\n headcountExpense: !0\n }\n], b = [\n {\n ref: \"makerdao/project\",\n id: \"Powerhouse\",\n title: \"Powerhouse\",\n color: \"purple\"\n },\n {\n ref: \"makerdao/project\",\n id: \"LegalResearch\",\n title: \"Legal Research\",\n color: \"red\"\n },\n {\n ref: \"makerdao/project\",\n id: \"MakerAcademy\",\n title: \"Maker Academy\",\n color: \"teal\"\n }\n], x = ({ accounts: a, addLineItem: l }) => {\n var r;\n const [c, o] = S(\n a.length ? a[0].address : \"\"\n );\n function i(t) {\n t.preventDefault();\n const d = t.target, u = new FormData(d), s = Object.fromEntries(u.entries());\n l({\n accountId: u.get(\"account\").toString(),\n budgetCap: parseFloat(s.budgetCap.toString()),\n actual: parseFloat(s.actual.toString()),\n payment: parseFloat(s.payment.toString()),\n category: g.find((m) => m.id === s.category.toString()),\n group: b.find((m) => m.id === s.group.toString())\n });\n }\n return /* @__PURE__ */ n(\n \"form\",\n {\n method: \"post\",\n onSubmit: i,\n style: { maxWidth: 300 },\n children: [\n /* @__PURE__ */ n(\"label\", { children: [\n \"Select account:\",\n \" \",\n /* @__PURE__ */ e(\n \"select\",\n {\n name: \"account\",\n onChange: (t) => o(t.target.value),\n value: c ?? \"\",\n children: a.map((t) => /* @__PURE__ */ e(\"option\", { value: t.address, children: t.name }, t.address))\n }\n )\n ] }),\n /* @__PURE__ */ e(\"pre\", {}),\n /* @__PURE__ */ n(\"label\", { children: [\n \"Category:\",\n \" \",\n /* @__PURE__ */ e(\"select\", { name: \"category\", children: g.map((t) => /* @__PURE__ */ e(\"option\", { value: t.id, children: t.title }, t.id)) })\n ] }),\n /* @__PURE__ */ e(\"pre\", {}),\n /* @__PURE__ */ n(\"label\", { children: [\n \"Group:\",\n \" \",\n /* @__PURE__ */ e(\"select\", { name: \"group\", children: b.map((t) => /* @__PURE__ */ e(\"option\", { value: t.id, children: t.title }, t.id)) })\n ] }),\n /* @__PURE__ */ e(\"pre\", {}),\n /* @__PURE__ */ n(\"label\", { children: [\n \"Budget Cap: \",\n /* @__PURE__ */ e(\"input\", { name: \"budgetCap\", placeholder: \"0\", type: \"number\" })\n ] }),\n /* @__PURE__ */ e(\"pre\", {}),\n /* @__PURE__ */ n(\"label\", { children: [\n \"Payment: \",\n /* @__PURE__ */ e(\"input\", { name: \"payment\", placeholder: \"0\", type: \"number\" })\n ] }),\n /* @__PURE__ */ e(\"pre\", {}),\n /* @__PURE__ */ n(\"label\", { children: [\n \"Actual: \",\n /* @__PURE__ */ e(\"input\", { name: \"actual\", placeholder: \"0\", type: \"number\" })\n ] }),\n /* @__PURE__ */ e(\"pre\", {}),\n /* @__PURE__ */ e(\"button\", { type: \"submit\", children: \"Submit\" })\n ]\n },\n (r = a.find((t) => t.address === c)) == null ? void 0 : r.lineItems.length\n );\n};\nfunction k({\n document: a,\n dispatch: l\n}) {\n function c(d) {\n l(p.addAccount(d));\n }\n function o(d) {\n l(p.addLineItem(d));\n }\n function i(d) {\n l(p.deleteAccount({ account: d }));\n }\n function r(d) {\n l(p.deleteLineItem(d));\n }\n const t = a.state.global.accounts;\n return /* @__PURE__ */ n(\"div\", { children: [\n /* @__PURE__ */ e(\n v,\n {\n data: a.state.global,\n onDeleteAccount: i,\n onDeleteLineItem: r\n }\n ),\n /* @__PURE__ */ e(\"hr\", {}),\n /* @__PURE__ */ n(\"div\", { children: [\n /* @__PURE__ */ e(\"h3\", { children: \"Add account\" }),\n /* @__PURE__ */ e(A, { accounts: t, addAccount: c })\n ] }),\n /* @__PURE__ */ n(\"div\", { children: [\n /* @__PURE__ */ e(\"h3\", { children: \"Add Line Item\" }),\n /* @__PURE__ */ e(x, { accounts: t, addLineItem: o })\n ] })\n ] });\n}\nexport {\n k as default\n};\n"],"names":["Pe","Ge","n","t","oe","ue","e","F","E","w","Se","v","R","N","k","O","p","C","j","U","V","M","B","$","he","P","Ie","G","z","q","Q","H","W","K","Y","J","X","ye","Z","o","Je","h","i","a","S","c","r","s","l","m","ne","re","b","Xe","ae","ie","D","u","se","x","Ze","f","et","tt","g","Ae","Ee","Oe","Ce","nt","d","L","_e","Le","Te","De","rt","T","xe","Fe","we","ve","ot","Re","ke","je","at","ee","Ne","Ue","Ve","it","te","Me","Be","$e","st","A","y","ze","ut","mt","qe"],"mappings":"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"}
1
+ {"version":3,"file":"editor-8j593VN0.js","sources":["../../../../packages/document-model-libs/dist/es/budget-statement.js","../../../../packages/document-model-libs/dist/es/editors/budget-statement/editor.js"],"sourcesContent":["var Pe = Object.defineProperty;\nvar Ge = (n, t, r) => t in n ? Pe(n, t, { enumerable: !0, configurable: !0, writable: !0, value: r }) : n[t] = r;\nvar oe = (n, t, r) => Ge(n, typeof t != \"symbol\" ? t + \"\" : t, r);\nimport { utils as u, BaseDocument as d, applyMixins as ze, actions as qe } from \"document-model/document\";\nimport { z as e } from \"./document-models/account-snapshot.js\";\nconst Qe = {\n id: \"powerhouse/budget-statement\",\n name: \"BudgetStatement\",\n extension: \"phbs\",\n description: \"The BudgetStatement module manages the state and actions related to budget statements, which are documents that track the financial transactions of an organization over a month.\",\n author: {\n name: \"Powerhouse\",\n website: \"https://powerhouse.inc/\"\n },\n specifications: [\n {\n version: 1,\n changeLog: [],\n modules: [\n {\n name: \"account\",\n operations: [\n {\n name: \"AddAccount\",\n id: \"\",\n description: \"\",\n schema: `input AddAccountInput {\n address: String!\n name: String\n lineItems: [LineItemInput!]\n}`,\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\"\n },\n {\n name: \"UpdateAccount\",\n id: \"\",\n description: \"\",\n schema: `input UpdateAccountInput {\n address: String!\n name: String\n lineItems: [LineItem!]\n}`,\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\"\n },\n {\n name: \"DeleteAccount\",\n id: \"\",\n description: \"\",\n schema: `input DeleteAccountInput {\n account: String!\n}`,\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\"\n },\n {\n name: \"SortAccounts\",\n id: \"\",\n description: \"\",\n schema: `input SortAccountsInput {\n accounts: [String!]!\n}`,\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\"\n }\n ],\n id: \"\",\n description: \"\"\n },\n {\n name: \"line-item\",\n operations: [\n {\n name: \"AddLineItem\",\n id: \"\",\n description: \"\",\n schema: `input AddLineItemInput {\n accountId: ID!\n group: LineItemGroup\n headcountExpense: Boolean\n category: LineItemCategory\n budgetCap: Float\n actual: Float\n payment: Float\n forecast: [LineItemForecast!]\n comment: String }`,\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\"\n },\n {\n name: \"UpdateLineItem\",\n id: \"\",\n description: \"\",\n schema: `input LineItemUpdateInput {\n group: String\n category: String\n headcountExpense: Boolean\n budgetCap: Float\n actual: Float\n payment: Float\n forecast: [LineItemForecast!]\n comment: String }\n\ninput UpdateLineItemInput {\n accountId: ID!\n group: String\n category: String\n headcountExpense: Boolean\n budgetCap: Float\n actual: Float\n payment: Float\n forecast: [LineItemForecast!]\n comment: String }`,\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\"\n },\n {\n name: \"DeleteLineItem\",\n id: \"\",\n description: \"\",\n schema: `input DeleteLineItemInput {\n accountId: ID!\n group: String\n category: String }\n\n`,\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\"\n },\n {\n name: \"SortLineItems\",\n id: \"\",\n description: \"\",\n schema: `input LineItemsSortInput {\n group: String\n category: String }\n\ninput SortLineItemsInput {\n accountId: ID!\n lineItems: [LineItemsSortInput!]! }`,\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\"\n }\n ],\n id: \"\",\n description: \"\"\n },\n {\n name: \"base\",\n operations: [\n {\n name: \"SetOwner\",\n id: \"\",\n description: \"\",\n schema: `input SetOwnerInput {\n ref: String\n id: String\n title: String }`,\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\"\n },\n {\n name: \"SetMonth\",\n id: \"\",\n description: \"\",\n schema: `input SetMonthInput {\n month: String! }`,\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\"\n },\n {\n name: \"SetFtes\",\n id: \"\",\n description: \"\",\n schema: `input FtesForecastInput {\n month: String!\n value: Float! }\n\ninput SetFtesInput {\n value: Float!\n forecast: [FtesForecastInput!]! }`,\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\"\n },\n {\n name: \"SetQuoteCurrency\",\n id: \"\",\n description: \"\",\n schema: `input SetQuoteCurrencyInput {\n quoteCurrency: String! }`,\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\"\n }\n ],\n id: \"\",\n description: \"\"\n },\n {\n name: \"audit\",\n operations: [\n {\n name: \"AddAuditReport\",\n id: \"\",\n description: \"\",\n schema: `input AddAuditReportInput {\ntimestamp: DateTime\nreport: Attachment!\nstatus: AuditReportStatus!\n}`,\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\"\n },\n {\n name: \"DeleteAuditReport\",\n id: \"\",\n description: \"\",\n schema: `input DeleteAuditReportInput {\nreport: String!\n}`,\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\"\n }\n ],\n id: \"\",\n description: \"\"\n },\n {\n name: \"comment\",\n operations: [\n {\n name: \"AddComment\",\n id: \"\",\n description: \"\",\n schema: `input CommentAuthorInput {\n ref: String\n id: String\n username: String\n roleLabel: String }\n\ninput AddCommentInput {\n key: String\n author: CommentAuthorInput\n comment: String!\n timestamp: DateTime\n status: BudgetStatus }`,\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\"\n },\n {\n name: \"UpdateComment\",\n id: \"\",\n description: \"\",\n schema: `input UpdateCommentInput {\n key: String!\n author: CommentAuthorInput\n comment: String\n timestamp: DateTime\n status: BudgetStatus }`,\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\"\n },\n {\n name: \"DeleteComment\",\n id: \"\",\n description: \"\",\n schema: `input DeleteCommentInput {\n comment: String! }`,\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\"\n }\n ],\n id: \"\",\n description: \"\"\n },\n {\n name: \"vesting\",\n operations: [\n {\n name: \"AddVesting\",\n id: \"\",\n description: \"\",\n schema: `input AddVestingInput {\n key: String\n date: String\n amount: String\n amountOld: String\n comment: String\n currency: String\n vested: Boolean }`,\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\"\n },\n {\n name: \"UpdateVesting\",\n id: \"\",\n description: \"\",\n schema: `input UpdateVestingInput {\n key: String!\n date: String\n amount: String\n amountOld: String\n comment: String\n currency: String\n vested: Boolean }`,\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\"\n },\n {\n name: \"DeleteVesting\",\n id: \"\",\n description: \"\",\n schema: `input DeleteVestingInput {\n vesting: String! }`,\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\"\n }\n ],\n id: \"\",\n description: \"\"\n }\n ],\n state: {\n global: {\n schema: `scalar DateTime\nscalar Attachment\n\ninput LineItemInput {\n group: LineItemGroup\n headcountExpense: Boolean\n category: LineItemCategory\n budgetCap: Float\n actual: Float\n payment: Float\n forecast: [LineItemForecast!]\n comment: String } \n\ntype LineItemGroup {\n ref: String!\n id: String!\n title: String!\n color: String!\n}\n\ntype LineItemCategory {\n ref: String!\n id: String!\n title: String!\n}\n\ntype LineItemForecast {\n month: String!\n value: Float!\n budgetCap: Float!\n}\n\ntype LineItem {\n group: LineItemGroup\n headcountExpense: Boolean!\n category: LineItemCategory\n budgetCap: Float\n actual: Float\n payment: Float\n forecast: [LineItemForecast!]!\n comment: String\n}\n\ntype Account {\n address: String! # TODO Address\n name: String!\n lineItems: [LineItem!]!\n}\n\ntype Owner {\n ref: String\n id: String\n title: String\n}\n\ntype Vesting {\n key: String!\n date: String!\n amount: String!\n amountOld: String!\n comment: String!\n currency: String!\n vested: Boolean!\n}\n\ntype FtesForecast {\n month: String!\n value: Float!\n}\n\ntype Ftes {\n value: Float!\n forecast: [FtesForecast!]!\n}\n\nenum AuditReportStatus {\n Approved\n ApprovedWithComments\n NeedsAction\n Escalated\n}\n\ntype AuditReport {\n timestamp: DateTime!\n report: Attachment! # TODO enforce attachment\n status: AuditReportStatus!\n}\n\ntype CommentAuthor {\n ref: String\n id: String\n username: String\n roleLabel: String\n}\n\nenum BudgetStatus {\n Draft\n Review\n Final\n Escalated\n}\n\ntype Comment {\n key: String!\n author: CommentAuthor!\n comment: String!\n timestamp: DateTime!\n status: BudgetStatus!\n}\n\ntype BudgetStatementState {\n owner: Owner\n month: String\n quoteCurrency: String\n accounts: [Account!]!\n vesting: [Vesting!]!\n ftes: Ftes\n auditReports: [AuditReport!]!\n comments: [Comment!]!\n}`,\n initialValue: '\"{\\\\n \\\\\"owner\\\\\": {\\\\n \\\\\"ref\\\\\": null,\\\\n \\\\\"id\\\\\": null,\\\\n \\\\\"title\\\\\": null\\\\n },\\\\n \\\\\"month\\\\\": null,\\\\n \\\\\"quoteCurrency\\\\\": null,\\\\n \\\\\"vesting\\\\\": [],\\\\n \\\\\"ftes\\\\\": null,\\\\n \\\\\"accounts\\\\\": [],\\\\n \\\\\"auditReports\\\\\": [],\\\\n \\\\\"comments\\\\\": []\\\\n}\"',\n examples: []\n },\n local: {\n schema: \"type BudgetStatementLocalState\",\n initialValue: '\"{}\"',\n examples: []\n }\n }\n }\n ]\n}, ue = (n) => n != null, He = e.any().refine((n) => ue(n)), F = e.enum([\n \"Approved\",\n \"ApprovedWithComments\",\n \"Escalated\",\n \"NeedsAction\"\n]), E = e.enum([\n \"Draft\",\n \"Escalated\",\n \"Final\",\n \"Review\"\n]);\nfunction ce() {\n return e.object({\n __typename: e.literal(\"Account\").optional(),\n address: e.string(),\n lineItems: e.array(P()),\n name: e.string()\n });\n}\nfunction w() {\n return e.object({\n address: e.string(),\n lineItems: e.array(e.lazy(() => Se())).nullish(),\n name: e.string().nullish()\n });\n}\nfunction v() {\n return e.object({\n report: e.string(),\n status: F,\n timestamp: e.string().datetime().nullish()\n });\n}\nfunction R() {\n return e.object({\n author: e.lazy(() => N().nullish()),\n comment: e.string(),\n key: e.string().nullish(),\n status: E.nullish(),\n timestamp: e.string().datetime().nullish()\n });\n}\nfunction k() {\n return e.object({\n accountId: e.string(),\n actual: e.number().nullish(),\n budgetCap: e.number().nullish(),\n category: O().nullish(),\n comment: e.string().nullish(),\n forecast: e.array(p()).nullish(),\n group: C().nullish(),\n headcountExpense: e.boolean().nullish(),\n payment: e.number().nullish()\n });\n}\nfunction j() {\n return e.object({\n amount: e.string().nullish(),\n amountOld: e.string().nullish(),\n comment: e.string().nullish(),\n currency: e.string().nullish(),\n date: e.string().nullish(),\n key: e.string().nullish(),\n vested: e.boolean().nullish()\n });\n}\nfunction le() {\n return e.object({\n __typename: e.literal(\"AuditReport\").optional(),\n report: e.string(),\n status: F,\n timestamp: e.string().datetime()\n });\n}\nfunction We() {\n return e.object({\n __typename: e.literal(\"BudgetStatementLocalState\").optional()\n });\n}\nfunction Ke() {\n return e.object({\n __typename: e.literal(\"BudgetStatementState\").optional(),\n accounts: e.array(ce()),\n auditReports: e.array(le()),\n comments: e.array(me()),\n ftes: pe().nullable(),\n month: e.string().nullable(),\n owner: be().nullable(),\n quoteCurrency: e.string().nullable(),\n vesting: e.array(fe())\n });\n}\nfunction me() {\n return e.object({\n __typename: e.literal(\"Comment\").optional(),\n author: de(),\n comment: e.string(),\n key: e.string(),\n status: E,\n timestamp: e.string().datetime()\n });\n}\nfunction de() {\n return e.object({\n __typename: e.literal(\"CommentAuthor\").optional(),\n id: e.string().nullable(),\n ref: e.string().nullable(),\n roleLabel: e.string().nullable(),\n username: e.string().nullable()\n });\n}\nfunction N() {\n return e.object({\n id: e.string().nullish(),\n ref: e.string().nullish(),\n roleLabel: e.string().nullish(),\n username: e.string().nullish()\n });\n}\nfunction U() {\n return e.object({\n account: e.string()\n });\n}\nfunction V() {\n return e.object({\n report: e.string()\n });\n}\nfunction M() {\n return e.object({\n comment: e.string()\n });\n}\nfunction B() {\n return e.object({\n accountId: e.string(),\n category: e.string().nullish(),\n group: e.string().nullish()\n });\n}\nfunction $() {\n return e.object({\n vesting: e.string()\n });\n}\nfunction pe() {\n return e.object({\n __typename: e.literal(\"Ftes\").optional(),\n forecast: e.array(ge()),\n value: e.number()\n });\n}\nfunction ge() {\n return e.object({\n __typename: e.literal(\"FtesForecast\").optional(),\n month: e.string(),\n value: e.number()\n });\n}\nfunction he() {\n return e.object({\n month: e.string(),\n value: e.number()\n });\n}\nfunction P() {\n return e.object({\n __typename: e.literal(\"LineItem\").optional(),\n actual: e.number().nullable(),\n budgetCap: e.number().nullable(),\n category: O().nullable(),\n comment: e.string().nullable(),\n forecast: e.array(p()),\n group: C().nullable(),\n headcountExpense: e.boolean(),\n payment: e.number().nullable()\n });\n}\nfunction O() {\n return e.object({\n __typename: e.literal(\"LineItemCategory\").optional(),\n id: e.string(),\n ref: e.string(),\n title: e.string()\n });\n}\nfunction p() {\n return e.object({\n __typename: e.literal(\"LineItemForecast\").optional(),\n budgetCap: e.number(),\n month: e.string(),\n value: e.number()\n });\n}\nfunction C() {\n return e.object({\n __typename: e.literal(\"LineItemGroup\").optional(),\n color: e.string(),\n id: e.string(),\n ref: e.string(),\n title: e.string()\n });\n}\nfunction Se() {\n return e.object({\n actual: e.number().nullish(),\n budgetCap: e.number().nullish(),\n category: O().nullish(),\n comment: e.string().nullish(),\n forecast: e.array(p()).nullish(),\n group: C().nullish(),\n headcountExpense: e.boolean().nullish(),\n payment: e.number().nullish()\n });\n}\nfunction Ye() {\n return e.object({\n actual: e.number().nullish(),\n budgetCap: e.number().nullish(),\n category: e.string().nullish(),\n comment: e.string().nullish(),\n forecast: e.array(p()).nullish(),\n group: e.string().nullish(),\n headcountExpense: e.boolean().nullish(),\n payment: e.number().nullish()\n });\n}\nfunction Ie() {\n return e.object({\n category: e.string().nullish(),\n group: e.string().nullish()\n });\n}\nfunction be() {\n return e.object({\n __typename: e.literal(\"Owner\").optional(),\n id: e.string().nullable(),\n ref: e.string().nullable(),\n title: e.string().nullable()\n });\n}\nfunction G() {\n return e.object({\n forecast: e.array(e.lazy(() => he())),\n value: e.number()\n });\n}\nfunction z() {\n return e.object({\n month: e.string()\n });\n}\nfunction q() {\n return e.object({\n id: e.string().nullish(),\n ref: e.string().nullish(),\n title: e.string().nullish()\n });\n}\nfunction Q() {\n return e.object({\n quoteCurrency: e.string()\n });\n}\nfunction H() {\n return e.object({\n accounts: e.array(e.string())\n });\n}\nfunction W() {\n return e.object({\n accountId: e.string(),\n lineItems: e.array(e.lazy(() => Ie()))\n });\n}\nfunction K() {\n return e.object({\n address: e.string(),\n lineItems: e.array(P()).nullish(),\n name: e.string().nullish()\n });\n}\nfunction Y() {\n return e.object({\n author: e.lazy(() => N().nullish()),\n comment: e.string().nullish(),\n key: e.string(),\n status: E.nullish(),\n timestamp: e.string().datetime().nullish()\n });\n}\nfunction J() {\n return e.object({\n accountId: e.string(),\n actual: e.number().nullish(),\n budgetCap: e.number().nullish(),\n category: e.string().nullish(),\n comment: e.string().nullish(),\n forecast: e.array(p()).nullish(),\n group: e.string().nullish(),\n headcountExpense: e.boolean().nullish(),\n payment: e.number().nullish()\n });\n}\nfunction X() {\n return e.object({\n amount: e.string().nullish(),\n amountOld: e.string().nullish(),\n comment: e.string().nullish(),\n currency: e.string().nullish(),\n date: e.string().nullish(),\n key: e.string(),\n vested: e.boolean().nullish()\n });\n}\nfunction fe() {\n return e.object({\n __typename: e.literal(\"Vesting\").optional(),\n amount: e.string(),\n amountOld: e.string(),\n comment: e.string(),\n currency: e.string(),\n date: e.string(),\n key: e.string(),\n vested: e.boolean()\n });\n}\nconst ht = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n AccountSchema: ce,\n AddAccountInputSchema: w,\n AddAuditReportInputSchema: v,\n AddCommentInputSchema: R,\n AddLineItemInputSchema: k,\n AddVestingInputSchema: j,\n AuditReportSchema: le,\n AuditReportStatusSchema: F,\n BudgetStatementLocalStateSchema: We,\n BudgetStatementStateSchema: Ke,\n BudgetStatusSchema: E,\n CommentAuthorInputSchema: N,\n CommentAuthorSchema: de,\n CommentSchema: me,\n DeleteAccountInputSchema: U,\n DeleteAuditReportInputSchema: V,\n DeleteCommentInputSchema: M,\n DeleteLineItemInputSchema: B,\n DeleteVestingInputSchema: $,\n FtesForecastInputSchema: he,\n FtesForecastSchema: ge,\n FtesSchema: pe,\n LineItemCategorySchema: O,\n LineItemForecastSchema: p,\n LineItemGroupSchema: C,\n LineItemInputSchema: Se,\n LineItemSchema: P,\n LineItemUpdateInputSchema: Ye,\n LineItemsSortInputSchema: Ie,\n OwnerSchema: be,\n SetFtesInputSchema: G,\n SetMonthInputSchema: z,\n SetOwnerInputSchema: q,\n SetQuoteCurrencyInputSchema: Q,\n SortAccountsInputSchema: H,\n SortLineItemsInputSchema: W,\n UpdateAccountInputSchema: K,\n UpdateCommentInputSchema: Y,\n UpdateLineItemInputSchema: J,\n UpdateVestingInputSchema: X,\n VestingSchema: fe,\n definedNonNullAnySchema: He,\n isDefinedNonNullAny: ue\n}, Symbol.toStringTag, { value: \"Module\" })), ye = (n) => {\n var t;\n return {\n ...n,\n name: n.name ?? \"\",\n lineItems: ((t = n.lineItems) == null ? void 0 : t.map(Z)) ?? new Array()\n };\n}, Z = (n) => {\n var t;\n return {\n budgetCap: null,\n payment: null,\n actual: null,\n comment: null,\n ...n,\n forecast: ((t = n.forecast) == null ? void 0 : t.sort((r, o) => r.month.localeCompare(o.month))) ?? new Array(),\n headcountExpense: n.headcountExpense ?? !1,\n group: n.group ?? null,\n category: n.category ?? null\n };\n}, Je = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n createAccount: ye,\n createLineItem: Z\n}, Symbol.toStringTag, { value: \"Module\" })), h = {\n addAccountOperation(n, t) {\n const { input: r } = t;\n if (n.accounts.find((o) => o.address === r.address))\n throw new Error(`Account with address ${r.address} already exists!`);\n n.accounts.push(ye(r));\n },\n updateAccountOperation(n, t) {\n const { input: r } = t, o = n.accounts.findIndex(\n (i) => i.address === r.address\n );\n if (o === -1)\n throw new Error(`Account with adddress ${r.address} not found`);\n const a = n.accounts[o];\n n.accounts[o] = {\n ...a,\n lineItems: r.lineItems ?? a.lineItems,\n name: r.name ?? a.name\n };\n },\n deleteAccountOperation(n, t) {\n const { input: r } = t;\n n.accounts = n.accounts.filter(\n (o) => o.address !== r.account\n );\n },\n sortAccountsOperation(n, t) {\n n.accounts.sort((r, o) => {\n const a = t.input.accounts.indexOf(r.address), i = t.input.accounts.indexOf(o.address);\n return (a > -1 ? a : 1 / 0) - (i > -1 ? i : 1 / 0);\n });\n }\n};\nfunction S(n, t) {\n return n.category === t.category && n.group === t.group;\n}\nconst I = {\n addLineItemOperation(n, t) {\n var i, c;\n const { accountId: r, ...o } = t.input, a = n.accounts.find((s) => s.address === r);\n if (!a)\n throw new Error(`Account with address ${r} not found`);\n if (a.lineItems.find(\n (s) => {\n var l, m, ne, re;\n return ((l = o.category) == null ? void 0 : l.id) === ((m = s.category) == null ? void 0 : m.id) && ((ne = o.group) == null ? void 0 : ne.id) === ((re = s.group) == null ? void 0 : re.id);\n }\n ))\n throw new Error(\n `Line item with category '${((i = o.category) == null ? void 0 : i.id) ?? \"null\"}' and group '${((c = o.group) == null ? void 0 : c.id) ?? \"null\"}' already exists`\n );\n a.lineItems.push(Z(o));\n },\n updateLineItemOperation(n, t) {\n const { accountId: r, ...o } = t.input, a = n.accounts.find((s) => s.address === r);\n if (!a)\n throw new Error(`Account with address ${r} not found`);\n const i = a.lineItems.findIndex(\n (s) => S(o, s)\n );\n if (i === -1)\n throw new Error(\"Line item not found\");\n const c = a.lineItems[i];\n a.lineItems[i] = {\n ...c,\n ...o,\n category: c.category,\n headcountExpense: o.headcountExpense ?? !1,\n group: c.group,\n forecast: (o.forecast ?? c.forecast).sort((s, l) => s.month.localeCompare(l.month))\n };\n },\n deleteLineItemOperation(n, t) {\n const { accountId: r, ...o } = t.input, a = n.accounts.find((i) => i.address === r);\n if (!a)\n throw new Error(`Account with address ${r} not found`);\n a.lineItems = a.lineItems.filter(\n (i) => !S(o, i)\n );\n },\n sortLineItemsOperation(n, t) {\n const { accountId: r, lineItems: o } = t.input, a = n.accounts.find((i) => i.address === r);\n if (!a)\n throw new Error(`Account with address ${r} not found`);\n a.lineItems.sort((i, c) => {\n const s = o.findIndex((m) => S(m, i)), l = o.findIndex((m) => S(m, c));\n return (s > -1 ? s : 1 / 0) - (l > -1 ? l : 1 / 0);\n });\n }\n}, b = {\n setOwnerOperation(n, t) {\n n.owner = {\n id: t.input.id ?? null,\n ref: t.input.ref ?? null,\n title: t.input.title ?? null\n };\n },\n setMonthOperation(n, t) {\n n.month = t.input.month;\n },\n setFtesOperation(n, t) {\n n.ftes = t.input, n.ftes.forecast.sort((r, o) => r.month.localeCompare(o.month));\n },\n setQuoteCurrencyOperation(n, t) {\n n.quoteCurrency = t.input.quoteCurrency;\n }\n};\nfunction Xe(n, t) {\n if (n.auditReports.find((r) => r.report === t))\n throw new Error(`Audit with report ${t} already exists`);\n}\nconst ae = {\n addAuditReportOperation(n, t) {\n if (Xe(n, t.input.report), !t.attachments.find(\n (r) => r.hash === t.input.report\n ))\n throw new Error(\"Report was not included in the action attachments\");\n n.auditReports.push({\n ...t.input,\n timestamp: t.input.timestamp ?? (/* @__PURE__ */ new Date()).toISOString()\n });\n },\n deleteAuditReportOperation(n, t) {\n const r = n.auditReports.findIndex(\n (o) => o.report === t.input.report\n );\n r > -1 && n.auditReports.splice(r, 1);\n }\n}, ie = (n, t) => n.timestamp < t.timestamp ? -1 : 1, D = {\n addCommentOperation(n, t) {\n const { input: r } = t, o = r.key ?? u.hashKey();\n if (n.comments.findIndex((i) => i.key === r.key) > -1)\n throw new Error(`Comment with key ${o} already exists`);\n n.comments.push({\n key: o,\n author: {\n ref: null,\n id: null,\n username: null,\n roleLabel: null,\n ...r.author\n },\n comment: r.comment,\n timestamp: r.timestamp || (/* @__PURE__ */ new Date()).toISOString(),\n status: r.status ?? \"Draft\"\n }), n.comments.sort(ie);\n },\n updateCommentOperation(n, t) {\n var i, c, s, l;\n const { input: r } = t, o = n.comments.findIndex((m) => m.key === r.key);\n if (o === -1)\n return;\n const a = n.comments[o];\n n.comments[o] = {\n ...a,\n ...r,\n author: {\n id: ((i = r.author) == null ? void 0 : i.id) ?? a.author.id,\n ref: ((c = r.author) == null ? void 0 : c.ref) ?? a.author.ref,\n roleLabel: ((s = r.author) == null ? void 0 : s.roleLabel) ?? a.author.roleLabel,\n username: ((l = r.author) == null ? void 0 : l.username) ?? a.author.username\n },\n comment: r.comment ?? a.comment,\n timestamp: r.timestamp ?? (/* @__PURE__ */ new Date()).toISOString(),\n status: r.status ?? a.status\n }, n.comments.sort(ie);\n },\n deleteCommentOperation(n, t) {\n const { input: r } = t;\n n.comments = n.comments.filter(\n (o) => r.comment !== o.key\n );\n }\n}, se = (n, t) => n.date < t.date ? -1 : 1, x = {\n addVestingOperation(n, t) {\n const { input: r } = t, o = r.key ?? u.hashKey();\n if (n.vesting.findIndex((i) => i.key === r.key) > -1)\n throw new Error(`Vesting with key ${o} already exists`);\n n.vesting.push({\n ...r,\n key: o,\n date: r.date ?? \"\",\n amount: r.amount ?? \"\",\n amountOld: r.amountOld ?? r.amount ?? \"\",\n comment: r.comment ?? \"\",\n currency: r.currency ?? \"\",\n vested: r.vested ?? !1\n }), n.vesting.sort(se);\n },\n updateVestingOperation(n, t) {\n const { input: r } = t, o = n.vesting.findIndex((i) => i.key === r.key);\n if (o === -1)\n return;\n const a = n.vesting[o];\n n.vesting[o] = {\n ...a,\n ...r,\n amount: r.amount ?? a.amount,\n amountOld: r.amountOld ?? a.amountOld,\n comment: r.comment ?? a.comment,\n currency: r.currency ?? a.currency,\n date: r.date ?? a.date,\n vested: r.vested ?? a.vested\n }, n.vesting.sort(se);\n },\n deleteVestingOperation(n, t) {\n n.vesting = n.vesting.filter(\n (r) => !t.input.vesting.includes(r.key)\n );\n }\n}, Ze = (n, t, r) => {\n if (u.isBaseAction(t))\n return n;\n switch (t.type) {\n case \"ADD_ACCOUNT\":\n w().parse(t.input), h.addAccountOperation(n[t.scope], t, r);\n break;\n case \"UPDATE_ACCOUNT\":\n K().parse(t.input), h.updateAccountOperation(\n n[t.scope],\n t,\n r\n );\n break;\n case \"DELETE_ACCOUNT\":\n U().parse(t.input), h.deleteAccountOperation(\n n[t.scope],\n t,\n r\n );\n break;\n case \"SORT_ACCOUNTS\":\n H().parse(t.input), h.sortAccountsOperation(\n n[t.scope],\n t,\n r\n );\n break;\n case \"ADD_LINE_ITEM\":\n k().parse(t.input), I.addLineItemOperation(\n n[t.scope],\n t,\n r\n );\n break;\n case \"UPDATE_LINE_ITEM\":\n J().parse(t.input), I.updateLineItemOperation(\n n[t.scope],\n t,\n r\n );\n break;\n case \"DELETE_LINE_ITEM\":\n B().parse(t.input), I.deleteLineItemOperation(\n n[t.scope],\n t,\n r\n );\n break;\n case \"SORT_LINE_ITEMS\":\n W().parse(t.input), I.sortLineItemsOperation(\n n[t.scope],\n t,\n r\n );\n break;\n case \"SET_OWNER\":\n q().parse(t.input), b.setOwnerOperation(n[t.scope], t, r);\n break;\n case \"SET_MONTH\":\n z().parse(t.input), b.setMonthOperation(n[t.scope], t, r);\n break;\n case \"SET_FTES\":\n G().parse(t.input), b.setFtesOperation(n[t.scope], t, r);\n break;\n case \"SET_QUOTE_CURRENCY\":\n Q().parse(t.input), b.setQuoteCurrencyOperation(\n n[t.scope],\n t,\n r\n );\n break;\n case \"ADD_AUDIT_REPORT\":\n v().parse(t.input), ae.addAuditReportOperation(\n n[t.scope],\n t,\n r\n );\n break;\n case \"DELETE_AUDIT_REPORT\":\n V().parse(t.input), ae.deleteAuditReportOperation(\n n[t.scope],\n t,\n r\n );\n break;\n case \"ADD_COMMENT\":\n R().parse(t.input), D.addCommentOperation(n[t.scope], t, r);\n break;\n case \"UPDATE_COMMENT\":\n Y().parse(t.input), D.updateCommentOperation(\n n[t.scope],\n t,\n r\n );\n break;\n case \"DELETE_COMMENT\":\n M().parse(t.input), D.deleteCommentOperation(\n n[t.scope],\n t,\n r\n );\n break;\n case \"ADD_VESTING\":\n j().parse(t.input), x.addVestingOperation(n[t.scope], t, r);\n break;\n case \"UPDATE_VESTING\":\n X().parse(t.input), x.updateVestingOperation(\n n[t.scope],\n t,\n r\n );\n break;\n case \"DELETE_VESTING\":\n $().parse(t.input), x.deleteVestingOperation(\n n[t.scope],\n t,\n r\n );\n break;\n default:\n return n;\n }\n}, f = u.createReducer(Ze), et = {\n owner: {\n ref: null,\n id: null,\n title: null\n },\n month: null,\n quoteCurrency: null,\n vesting: [],\n ftes: null,\n accounts: [],\n auditReports: [],\n comments: []\n}, tt = {}, g = {\n fileExtension: \"phbs\",\n createState(n) {\n return {\n global: { ...et, ...n == null ? void 0 : n.global },\n local: { ...tt, ...n == null ? void 0 : n.local }\n };\n },\n createExtendedState(n) {\n return u.createExtendedState(\n { ...n, documentType: \"powerhouse/budget-statement\" },\n g.createState\n );\n },\n createDocument(n) {\n return u.createDocument(\n g.createExtendedState(n),\n g.createState\n );\n },\n saveToFile(n, t, r) {\n return u.saveToFile(n, t, \"phbs\", r);\n },\n saveToFileHandle(n, t) {\n return u.saveToFileHandle(n, t);\n },\n loadFromFile(n) {\n return u.loadFromFile(n, f);\n },\n loadFromInput(n) {\n return u.loadFromInput(n, f);\n }\n}, { createAction: _ } = u, Ae = (n) => _(\n \"ADD_ACCOUNT\",\n { ...n },\n void 0,\n w,\n \"global\"\n), Ee = (n) => _(\n \"UPDATE_ACCOUNT\",\n { ...n },\n void 0,\n K,\n \"global\"\n), Oe = (n) => _(\n \"DELETE_ACCOUNT\",\n { ...n },\n void 0,\n U,\n \"global\"\n), Ce = (n) => _(\n \"SORT_ACCOUNTS\",\n { ...n },\n void 0,\n H,\n \"global\"\n);\nclass nt extends d {\n addAccount(t) {\n return this.dispatch(Ae(t));\n }\n updateAccount(t) {\n return this.dispatch(Ee(t));\n }\n deleteAccount(t) {\n return this.dispatch(Oe(t));\n }\n sortAccounts(t) {\n return this.dispatch(Ce(t));\n }\n}\nconst { createAction: L } = u, _e = (n) => L(\n \"ADD_LINE_ITEM\",\n { ...n },\n void 0,\n k,\n \"global\"\n), Le = (n) => L(\n \"UPDATE_LINE_ITEM\",\n { ...n },\n void 0,\n J,\n \"global\"\n), Te = (n) => L(\n \"DELETE_LINE_ITEM\",\n { ...n },\n void 0,\n B,\n \"global\"\n), De = (n) => L(\n \"SORT_LINE_ITEMS\",\n { ...n },\n void 0,\n W,\n \"global\"\n);\nclass rt extends d {\n addLineItem(t) {\n return this.dispatch(_e(t));\n }\n updateLineItem(t) {\n return this.dispatch(Le(t));\n }\n deleteLineItem(t) {\n return this.dispatch(Te(t));\n }\n sortLineItems(t) {\n return this.dispatch(De(t));\n }\n}\nconst { createAction: T } = u, xe = (n) => T(\n \"SET_OWNER\",\n { ...n },\n void 0,\n q,\n \"global\"\n), Fe = (n) => T(\n \"SET_MONTH\",\n { ...n },\n void 0,\n z,\n \"global\"\n), we = (n) => T(\n \"SET_FTES\",\n { ...n },\n void 0,\n G,\n \"global\"\n), ve = (n) => T(\n \"SET_QUOTE_CURRENCY\",\n { ...n },\n void 0,\n Q,\n \"global\"\n);\nclass ot extends d {\n setOwner(t) {\n return this.dispatch(xe(t));\n }\n setMonth(t) {\n return this.dispatch(Fe(t));\n }\n setFtes(t) {\n return this.dispatch(we(t));\n }\n setQuoteCurrency(t) {\n return this.dispatch(ve(t));\n }\n}\nconst { createAction: Re } = u, ke = (n, t) => Re(\n \"ADD_AUDIT_REPORT\",\n { ...n },\n t,\n v,\n \"global\"\n), je = (n) => Re(\n \"DELETE_AUDIT_REPORT\",\n { ...n },\n void 0,\n V,\n \"global\"\n);\nclass at extends d {\n addAuditReport(t, r) {\n return this.dispatch(ke(t, r));\n }\n deleteAuditReport(t) {\n return this.dispatch(je(t));\n }\n}\nconst { createAction: ee } = u, Ne = (n) => ee(\n \"ADD_COMMENT\",\n { ...n },\n void 0,\n R,\n \"global\"\n), Ue = (n) => ee(\n \"UPDATE_COMMENT\",\n { ...n },\n void 0,\n Y,\n \"global\"\n), Ve = (n) => ee(\n \"DELETE_COMMENT\",\n { ...n },\n void 0,\n M,\n \"global\"\n);\nclass it extends d {\n addComment(t) {\n return this.dispatch(Ne(t));\n }\n updateComment(t) {\n return this.dispatch(Ue(t));\n }\n deleteComment(t) {\n return this.dispatch(Ve(t));\n }\n}\nconst { createAction: te } = u, Me = (n) => te(\n \"ADD_VESTING\",\n { ...n },\n void 0,\n j,\n \"global\"\n), Be = (n) => te(\n \"UPDATE_VESTING\",\n { ...n },\n void 0,\n X,\n \"global\"\n), $e = (n) => te(\n \"DELETE_VESTING\",\n { ...n },\n void 0,\n $,\n \"global\"\n);\nclass st extends d {\n addVesting(t) {\n return this.dispatch(Me(t));\n }\n updateVesting(t) {\n return this.dispatch(Be(t));\n }\n deleteVesting(t) {\n return this.dispatch($e(t));\n }\n}\nconst A = class A extends d {\n constructor(t, r) {\n super(f, g.createDocument(t), r);\n }\n saveToFile(t, r) {\n return super.saveToFile(t, A.fileExtension, r);\n }\n loadFromFile(t) {\n return super.loadFromFile(t);\n }\n static async fromFile(t) {\n const r = new this();\n return await r.loadFromFile(t), r;\n }\n};\noe(A, \"fileExtension\", \"phbs\");\nlet y = A;\nze(y, [\n nt,\n rt,\n ot,\n at,\n it,\n st\n]);\nconst ut = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n addAccount: Ae,\n addAuditReport: ke,\n addComment: Ne,\n addLineItem: _e,\n addVesting: Me,\n deleteAccount: Oe,\n deleteAuditReport: je,\n deleteComment: Ve,\n deleteLineItem: Te,\n deleteVesting: $e,\n setFtes: we,\n setMonth: Fe,\n setOwner: xe,\n setQuoteCurrency: ve,\n sortAccounts: Ce,\n sortLineItems: De,\n updateAccount: Ee,\n updateComment: Ue,\n updateLineItem: Le,\n updateVesting: Be\n}, Symbol.toStringTag, { value: \"Module\" })), ct = y, lt = { ...g, ...Je }, mt = { ...qe, ...ut }, St = {\n Document: ct,\n reducer: f,\n actions: mt,\n utils: lt,\n documentModel: Qe\n};\nexport {\n y as BudgetStatement,\n ct as Document,\n mt as actions,\n ye as createAccount,\n Z as createLineItem,\n Qe as documentModel,\n St as module,\n f as reducer,\n lt as utils,\n ht as z\n};\n","import { jsxs as n, jsx as e } from \"react/jsx-runtime\";\nimport { actions as p } from \"../../budget-statement.js\";\nimport { useMemo as y, useState as S } from \"react\";\nconst A = ({ accounts: a, addAccount: l }) => {\n function c(o) {\n o.preventDefault();\n const i = o.target, r = new FormData(i), t = Object.fromEntries(r.entries());\n l(t);\n }\n return /* @__PURE__ */ n(\n \"form\",\n {\n method: \"post\",\n onSubmit: c,\n style: { maxWidth: 300 },\n children: [\n /* @__PURE__ */ n(\"label\", { children: [\n \"Address: \",\n /* @__PURE__ */ e(\"input\", { name: \"address\", placeholder: \"eth:0x...\" })\n ] }),\n /* @__PURE__ */ e(\"pre\", {}),\n /* @__PURE__ */ n(\"label\", { children: [\n \"Name: \",\n /* @__PURE__ */ e(\"input\", { name: \"name\", placeholder: \"\" })\n ] }),\n /* @__PURE__ */ e(\"pre\", {}),\n /* @__PURE__ */ e(\"button\", { type: \"submit\", children: \"Submit\" })\n ]\n },\n a.length\n );\n}, f = new Intl.NumberFormat(\"en-US\", {\n style: \"currency\",\n currency: \"USD\"\n}), v = ({ data: a, onDeleteAccount: l, onDeleteLineItem: c }) => {\n const o = a.accounts, i = y(\n () => o.map(({ address: r, name: t, lineItems: d }) => {\n const { actuals: u, payments: s } = d.reduce(\n (m, h) => ({\n actuals: m.actuals + (h.actual || 0),\n payments: m.payments + (h.payment || 0)\n }),\n { actuals: 0, payments: 0 }\n );\n return { address: r, name: t, actuals: u, payments: s };\n }),\n [o]\n );\n return /* @__PURE__ */ n(\"div\", { children: [\n /* @__PURE__ */ e(\"h2\", { children: \"Accounts:\" }),\n /* @__PURE__ */ n(\"table\", { style: { borderSpacing: 12 }, children: [\n /* @__PURE__ */ e(\"thead\", { children: /* @__PURE__ */ n(\"tr\", { children: [\n /* @__PURE__ */ e(\"th\", { align: \"left\", children: \"Name\" }),\n /* @__PURE__ */ e(\"th\", { align: \"left\", children: \"Address\" }),\n /* @__PURE__ */ e(\"th\", { align: \"left\", children: \"Actuals\" }),\n /* @__PURE__ */ e(\"th\", { align: \"left\", children: \"Payments\" })\n ] }) }),\n /* @__PURE__ */ e(\"tbody\", { children: i.map((r) => /* @__PURE__ */ n(\"tr\", { children: [\n /* @__PURE__ */ e(\"td\", { children: r.name }),\n /* @__PURE__ */ n(\"td\", { children: [\n r.address.slice(0, 10),\n \"...\"\n ] }),\n /* @__PURE__ */ e(\"td\", { children: f.format(r.actuals) }),\n /* @__PURE__ */ e(\"td\", { children: f.format(r.payments) }),\n l ? /* @__PURE__ */ e(\"td\", { children: /* @__PURE__ */ e(\"button\", { onClick: () => l(r.address), children: \"Delete\" }) }) : null\n ] }, r.address)) })\n ] })\n ] });\n}, g = [\n {\n ref: \"makerdao/budget-category\",\n id: \"CompensationAndBenefits\",\n title: \"Compensation & Benefits\",\n headcountExpense: !0\n },\n {\n ref: \"makerdao/budget-category\",\n id: \"TravelAndEntertainment\",\n title: \"Travel & Entertainment\",\n headcountExpense: !0\n },\n {\n ref: \"makerdao/budget-category\",\n id: \"SoftwareDevelopmentExpense\",\n title: \"Software Development Expense\",\n headcountExpense: !1\n },\n {\n ref: \"makerdao/budget-category\",\n id: \"GasExpense\",\n title: \"Gas Expense\",\n headcountExpense: !0\n }\n], b = [\n {\n ref: \"makerdao/project\",\n id: \"Powerhouse\",\n title: \"Powerhouse\",\n color: \"purple\"\n },\n {\n ref: \"makerdao/project\",\n id: \"LegalResearch\",\n title: \"Legal Research\",\n color: \"red\"\n },\n {\n ref: \"makerdao/project\",\n id: \"MakerAcademy\",\n title: \"Maker Academy\",\n color: \"teal\"\n }\n], x = ({ accounts: a, addLineItem: l }) => {\n var r;\n const [c, o] = S(\n a.length ? a[0].address : \"\"\n );\n function i(t) {\n t.preventDefault();\n const d = t.target, u = new FormData(d), s = Object.fromEntries(u.entries());\n l({\n accountId: u.get(\"account\").toString(),\n budgetCap: parseFloat(s.budgetCap.toString()),\n actual: parseFloat(s.actual.toString()),\n payment: parseFloat(s.payment.toString()),\n category: g.find((m) => m.id === s.category.toString()),\n group: b.find((m) => m.id === s.group.toString())\n });\n }\n return /* @__PURE__ */ n(\n \"form\",\n {\n method: \"post\",\n onSubmit: i,\n style: { maxWidth: 300 },\n children: [\n /* @__PURE__ */ n(\"label\", { children: [\n \"Select account:\",\n \" \",\n /* @__PURE__ */ e(\n \"select\",\n {\n name: \"account\",\n onChange: (t) => o(t.target.value),\n value: c ?? \"\",\n children: a.map((t) => /* @__PURE__ */ e(\"option\", { value: t.address, children: t.name }, t.address))\n }\n )\n ] }),\n /* @__PURE__ */ e(\"pre\", {}),\n /* @__PURE__ */ n(\"label\", { children: [\n \"Category:\",\n \" \",\n /* @__PURE__ */ e(\"select\", { name: \"category\", children: g.map((t) => /* @__PURE__ */ e(\"option\", { value: t.id, children: t.title }, t.id)) })\n ] }),\n /* @__PURE__ */ e(\"pre\", {}),\n /* @__PURE__ */ n(\"label\", { children: [\n \"Group:\",\n \" \",\n /* @__PURE__ */ e(\"select\", { name: \"group\", children: b.map((t) => /* @__PURE__ */ e(\"option\", { value: t.id, children: t.title }, t.id)) })\n ] }),\n /* @__PURE__ */ e(\"pre\", {}),\n /* @__PURE__ */ n(\"label\", { children: [\n \"Budget Cap: \",\n /* @__PURE__ */ e(\"input\", { name: \"budgetCap\", placeholder: \"0\", type: \"number\" })\n ] }),\n /* @__PURE__ */ e(\"pre\", {}),\n /* @__PURE__ */ n(\"label\", { children: [\n \"Payment: \",\n /* @__PURE__ */ e(\"input\", { name: \"payment\", placeholder: \"0\", type: \"number\" })\n ] }),\n /* @__PURE__ */ e(\"pre\", {}),\n /* @__PURE__ */ n(\"label\", { children: [\n \"Actual: \",\n /* @__PURE__ */ e(\"input\", { name: \"actual\", placeholder: \"0\", type: \"number\" })\n ] }),\n /* @__PURE__ */ e(\"pre\", {}),\n /* @__PURE__ */ e(\"button\", { type: \"submit\", children: \"Submit\" })\n ]\n },\n (r = a.find((t) => t.address === c)) == null ? void 0 : r.lineItems.length\n );\n};\nfunction k({\n document: a,\n dispatch: l\n}) {\n function c(d) {\n l(p.addAccount(d));\n }\n function o(d) {\n l(p.addLineItem(d));\n }\n function i(d) {\n l(p.deleteAccount({ account: d }));\n }\n function r(d) {\n l(p.deleteLineItem(d));\n }\n const t = a.state.global.accounts;\n return /* @__PURE__ */ n(\"div\", { children: [\n /* @__PURE__ */ e(\n v,\n {\n data: a.state.global,\n onDeleteAccount: i,\n onDeleteLineItem: r\n }\n ),\n /* @__PURE__ */ e(\"hr\", {}),\n /* @__PURE__ */ n(\"div\", { children: [\n /* @__PURE__ */ e(\"h3\", { children: \"Add account\" }),\n /* @__PURE__ */ e(A, { accounts: t, addAccount: c })\n ] }),\n /* @__PURE__ */ n(\"div\", { children: [\n /* @__PURE__ */ e(\"h3\", { children: \"Add Line Item\" }),\n /* @__PURE__ */ e(x, { accounts: t, addLineItem: o })\n ] })\n ] });\n}\nexport {\n k as default\n};\n"],"names":["Pe","Ge","n","t","oe","ue","e","F","E","w","Se","v","R","N","k","O","p","C","j","U","V","M","B","$","he","P","Ie","G","z","q","Q","H","W","K","Y","J","X","ye","Z","o","Je","h","i","a","S","c","r","s","l","m","ne","re","b","Xe","ae","ie","D","u","se","x","Ze","f","et","tt","g","Ae","Ee","Oe","Ce","nt","d","L","_e","Le","Te","De","rt","T","xe","Fe","we","ve","ot","Re","ke","je","at","ee","Ne","Ue","Ve","it","te","Me","Be","$e","st","A","y","ze","ut","mt","qe"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{_ as g}from"./main.vaE8bYXL.js";import{jsxs as h,jsx as n}from"react/jsx-runtime";import{bC as u}from"./app-D5JkX4Uj.js";import{useState as f,useEffect as d}from"react";import{P as b}from"./json-_CDXNk-y.js";import{D as v,E as S,T as c,a as y,b as C}from"./editor-DZFHIVmh.js";import"./app-loader-DW3rvYVW.js";import"react-dom";const E=b.lazyWithPreload(()=>g(()=>import("./index-CLu1C_is-jUM7ckQa.js"),[]));function _(e,t){return JSON.stringify(e).replace(/\s/g,"")===t.replace(/\s/g,"")}function N({value:e,onChange:t,theme:i,onBlur:l,...s}){const[a,m]=f(JSON.stringify(e,null,4));function o(r){if(r)try{const p=JSON.parse(r);t(p)}catch{}}return d(()=>{o(a)},[a]),d(()=>{_(e,a)||m(JSON.stringify(e,null,4))},[e]),n(E,{height:"100%",language:"json",onChange:r=>m(r??""),theme:`vs-${i}`,value:a,...s,onMount:r=>{r.onDidBlurEditorText(()=>{l==null||l(JSON.parse(r.getValue()))})},options:{lineNumbers:"off",minimap:{enabled:!1},...s.options}})}function j({dispatch:e,document:t,context:i}){const[l,s]=f(t.state.global);d(()=>{s(t.state.global)},[t.state]);function a(o){e(u.loadState({state:{global:o,local:t.state.local},name:t.name},0))}const m=o=>{e(u.setName(o))};return h(v,{mode:i.theme,children:[n(S,{center:[n(c,{onClick:()=>a(l),children:"Save"},"save")],left:[n(c,{onClick:()=>e(u.undo(1)),children:"↺ undo"},"undo"),n(c,{onClick:()=>e(u.redo(1)),children:"↻ redo"},"redo")],right:[n(c,{children:"revision history"},"rev")]},"toolbar"),h(y,{children:[n("div",{style:{marginBottom:"1em"},children:n(C,{onSubmit:m,placeholder:"Document name",size:"medium",theme:i.theme,value:t.name},"doc-title")}),n(N,{onBlur:o=>a(o),onChange:o=>s(o||{}),theme:i.theme,value:l})]},"sheet")]})}export{j as default};
2
- //# sourceMappingURL=editor-CTeXLKFR.js.map
1
+ import{_ as g}from"./main.VYW2kwWP.js";import{jsxs as h,jsx as n}from"react/jsx-runtime";import{bF as u}from"./app-B4OFGo2O.js";import{useState as f,useEffect as d}from"react";import{P as b}from"./json-D0_QOK7W.js";import{D as v,E as S,T as c,a as y,b as E}from"./editor-ehywSkYm.js";import"./app-loader-Bfb1rJhE.js";import"react-dom";const _=b.lazyWithPreload(()=>g(()=>import("./index-CLu1C_is-jUM7ckQa.js"),[]));function C(e,t){return JSON.stringify(e).replace(/\s/g,"")===t.replace(/\s/g,"")}function N({value:e,onChange:t,theme:i,onBlur:l,...s}){const[a,m]=f(JSON.stringify(e,null,4));function o(r){if(r)try{const p=JSON.parse(r);t(p)}catch{}}return d(()=>{o(a)},[a]),d(()=>{C(e,a)||m(JSON.stringify(e,null,4))},[e]),n(_,{height:"100%",language:"json",onChange:r=>m(r??""),theme:`vs-${i}`,value:a,...s,onMount:r=>{r.onDidBlurEditorText(()=>{l==null||l(JSON.parse(r.getValue()))})},options:{lineNumbers:"off",minimap:{enabled:!1},...s.options}})}function j({dispatch:e,document:t,context:i}){const[l,s]=f(t.state.global);d(()=>{s(t.state.global)},[t.state]);function a(o){e(u.loadState({state:{global:o,local:t.state.local},name:t.name},0))}const m=o=>{e(u.setName(o))};return h(v,{mode:i.theme,children:[n(S,{center:[n(c,{onClick:()=>a(l),children:"Save"},"save")],left:[n(c,{onClick:()=>e(u.undo(1)),children:"↺ undo"},"undo"),n(c,{onClick:()=>e(u.redo(1)),children:"↻ redo"},"redo")],right:[n(c,{children:"revision history"},"rev")]},"toolbar"),h(y,{children:[n("div",{style:{marginBottom:"1em"},children:n(E,{onSubmit:m,placeholder:"Document name",size:"medium",theme:i.theme,value:t.name},"doc-title")}),n(N,{onBlur:o=>a(o),onChange:o=>s(o||{}),theme:i.theme,value:l})]},"sheet")]})}export{j as default};
2
+ //# sourceMappingURL=editor-BZo1P0Ae.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"mappings":"+UAKA,MAAMA,EAAIC,EAAE,gBAAgB,UAAM,OAAO,8BAAkC,KAAC,EAC5E,SAAS,EAAE,EAAG,EAAG,CACf,OAAO,KAAK,UAAU,CAAC,EAAE,QAAQ,MAAO,EAAE,IAAM,EAAE,QAAQ,MAAO,EAAE,CACrE,CACA,SAASC,EAAE,CACT,MAAO,EACP,SAAU,EACV,MAAOC,EACP,OAAQC,EACR,GAAG,CACL,EAAG,CACD,KAAM,CAAC,EAAG,CAAC,EAAIC,EAAE,KAAK,UAAU,EAAG,KAAM,CAAC,CAAC,EAC3C,SAAS,EAAE,EAAG,CACZ,GAAI,EACF,GAAI,CACF,MAAMC,EAAI,KAAK,MAAM,CAAC,EACtB,EAAEA,CAAC,CACX,MAAc,CACd,CACA,CACE,OAAOC,EAAE,IAAM,CACb,EAAE,CAAC,CACJ,EAAE,CAAC,CAAC,CAAC,EAAGA,EAAE,IAAM,CACf,EAAE,EAAG,CAAC,GAAK,EAAE,KAAK,UAAU,EAAG,KAAM,CAAC,CAAC,CAC3C,EAAK,CAAC,CAAC,CAAC,EAAmBC,EACvBR,EACA,CACE,OAAQ,OACR,SAAU,OACV,SAAW,GAAM,EAAE,GAAK,EAAE,EAC1B,MAAO,MAAMG,CAAC,GACd,MAAO,EACP,GAAG,EACH,QAAU,GAAM,CACd,EAAE,oBAAoB,IAAM,CAC1BC,GAAK,MAAQA,EAAE,KAAK,MAAM,EAAE,SAAQ,CAAE,CAAC,CACjD,CAAS,CACF,EACD,QAAS,CACP,YAAa,MACb,QAAS,CAAE,QAAS,EAAI,EACxB,GAAG,EAAE,OACb,CACA,CACG,CACH,CACA,SAASK,EAAE,CAAE,SAAU,EAAG,SAAU,EAAG,QAASN,GAAK,CACnD,KAAM,CAACC,EAAG,CAAC,EAAIC,EAAE,EAAE,MAAM,MAAM,EAC/BE,EAAE,IAAM,CACN,EAAE,EAAE,MAAM,MAAM,CACpB,EAAK,CAAC,EAAE,KAAK,CAAC,EACZ,SAAS,EAAE,EAAG,CACZ,EACEG,EAAE,UACA,CACE,MAAO,CAAE,OAAQ,EAAG,MAAO,EAAE,MAAM,KAAO,EAC1C,KAAM,EAAE,IACT,EACD,CACR,CACK,CACL,CACE,MAAM,EAAK,GAAM,CACf,EAAEA,EAAE,QAAQ,CAAC,CAAC,CACf,EACD,OAAuBC,EAAEC,EAAG,CAAE,KAAMT,EAAE,MAAO,SAAU,CACrCK,EACdK,EACA,CACE,OAAQ,CACUL,EAAEM,EAAG,CAAE,QAAS,IAAM,EAAEV,CAAC,EAAG,SAAU,MAAM,EAAI,MAAM,CACvE,EACD,KAAM,CACYI,EAAEM,EAAG,CAAE,QAAS,IAAM,EAAEJ,EAAE,KAAK,CAAC,CAAC,EAAG,SAAU,QAAQ,EAAI,MAAM,EAChEF,EAAEM,EAAG,CAAE,QAAS,IAAM,EAAEJ,EAAE,KAAK,CAAC,CAAC,EAAG,SAAU,QAAU,EAAE,MAAM,CACjF,EACD,MAAO,CAAiBF,EAAEM,EAAG,CAAE,SAAU,kBAAoB,EAAE,KAAK,CAAC,CACtE,EACD,SACD,EACeH,EAAEI,EAAG,CAAE,SAAU,CACfP,EAAE,MAAO,CAAE,MAAO,CAAE,aAAc,KAAK,EAAI,SAA0BA,EACnFQ,EACA,CACE,SAAU,EACV,YAAa,gBACb,KAAM,SACN,MAAOb,EAAE,MACT,MAAO,EAAE,IACV,EACD,WACR,EAAS,EACaK,EACdN,EACA,CACE,OAAS,GAAM,EAAE,CAAC,EAClB,SAAW,GAAM,EAAE,GAAK,EAAE,EAC1B,MAAOC,EAAE,MACT,MAAOC,CACjB,CACA,CACK,GAAI,OAAO,CAChB,EAAK,CACL","names":["y","S","J","l","i","u","g","c","n","k","d","f","p","b","h","E","N"],"ignoreList":[],"sources":["../../../../packages/document-model-libs/dist/es/editors/json/editor.js"],"sourcesContent":["import { jsx as n, jsxs as f } from \"react/jsx-runtime\";\nimport { actions as d } from \"document-model/document\";\nimport { useState as u, useEffect as c } from \"react\";\nimport { l as S } from \"../../utils/lazy-with-preload.js\";\nimport { D as p, E as b, T as h, a as E, b as N } from \"../document-model-2/editor.js\";\nconst y = S.lazyWithPreload(() => import(\"../../internal/index-CLu1C_is.js\"));\nfunction C(e, t) {\n return JSON.stringify(e).replace(/\\s/g, \"\") === t.replace(/\\s/g, \"\");\n}\nfunction J({\n value: e,\n onChange: t,\n theme: l,\n onBlur: i,\n ...s\n}) {\n const [a, m] = u(JSON.stringify(e, null, 4));\n function o(r) {\n if (r)\n try {\n const g = JSON.parse(r);\n t(g);\n } catch {\n }\n }\n return c(() => {\n o(a);\n }, [a]), c(() => {\n C(e, a) || m(JSON.stringify(e, null, 4));\n }, [e]), /* @__PURE__ */ n(\n y,\n {\n height: \"100%\",\n language: \"json\",\n onChange: (r) => m(r ?? \"\"),\n theme: `vs-${l}`,\n value: a,\n ...s,\n onMount: (r) => {\n r.onDidBlurEditorText(() => {\n i == null || i(JSON.parse(r.getValue()));\n });\n },\n options: {\n lineNumbers: \"off\",\n minimap: { enabled: !1 },\n ...s.options\n }\n }\n );\n}\nfunction k({ dispatch: e, document: t, context: l }) {\n const [i, s] = u(t.state.global);\n c(() => {\n s(t.state.global);\n }, [t.state]);\n function a(o) {\n e(\n d.loadState(\n {\n state: { global: o, local: t.state.local },\n name: t.name\n },\n 0\n )\n );\n }\n const m = (o) => {\n e(d.setName(o));\n };\n return /* @__PURE__ */ f(p, { mode: l.theme, children: [\n /* @__PURE__ */ n(\n b,\n {\n center: [\n /* @__PURE__ */ n(h, { onClick: () => a(i), children: \"Save\" }, \"save\")\n ],\n left: [\n /* @__PURE__ */ n(h, { onClick: () => e(d.undo(1)), children: \"↺ undo\" }, \"undo\"),\n /* @__PURE__ */ n(h, { onClick: () => e(d.redo(1)), children: \"↻ redo\" }, \"redo\")\n ],\n right: [/* @__PURE__ */ n(h, { children: \"revision history\" }, \"rev\")]\n },\n \"toolbar\"\n ),\n /* @__PURE__ */ f(E, { children: [\n /* @__PURE__ */ n(\"div\", { style: { marginBottom: \"1em\" }, children: /* @__PURE__ */ n(\n N,\n {\n onSubmit: m,\n placeholder: \"Document name\",\n size: \"medium\",\n theme: l.theme,\n value: t.name\n },\n \"doc-title\"\n ) }),\n /* @__PURE__ */ n(\n J,\n {\n onBlur: (o) => a(o),\n onChange: (o) => s(o || {}),\n theme: l.theme,\n value: i\n }\n )\n ] }, \"sheet\")\n ] });\n}\nexport {\n k as default\n};\n"],"file":"assets/editor-BZo1P0Ae.js"}
@@ -1,2 +1,2 @@
1
- import{jsxs as b,jsx as l}from"react/jsx-runtime";import{useEffect as ee,useState as te}from"react";import{bO as o,bi as u,bP as ne,bC as oe,bQ as j}from"./app-D5JkX4Uj.js";import{D as ae,E as le,T as g,a as re,b as C,c as O}from"./editor-DZFHIVmh.js";import"./main.vaE8bYXL.js";import"./app-loader-DW3rvYVW.js";import"react-dom";import"./json-_CDXNk-y.js";var ie=Object.defineProperty,se=(e,t,n)=>t in e?ie(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,pe=(e,t,n)=>se(e,t+"",n);const me=e=>e!=null;o.any().refine(e=>me(e));const R=o.enum(["Article","Core","Scope","Section","TypeSpecification"]),ce=o.enum(["Accessory","Immutable","Primary","Supporting"]);function D(){return o.object({__typename:o.literal("AddElementInput").optional(),components:F().nullable(),id:o.string(),name:o.string().nullable(),path:o.string(),type:R})}function de(){return o.object({__typename:o.literal("ArticleComponent").optional(),content:o.string().nullable()})}function ue(){return o.object({__typename:o.literal("CoreComponent").optional(),content:o.string().nullable()})}function F(){return o.union([de(),ue(),he(),Ee(),fe()])}function I(){return o.object({__typename:o.literal("MoveElementInput").optional(),id:o.string(),newParentId:o.string()})}function x(){return o.object({__typename:o.literal("RemoveElementInput").optional(),id:o.string()})}function k(){return o.object({__typename:o.literal("ReorderElementsInput").optional(),order:o.array(o.string()),parentElementId:o.string()})}function he(){return o.object({__typename:o.literal("ScopeComponent").optional(),content:o.string().nullable()})}function Ee(){return o.object({__typename:o.literal("SectionComponent").optional(),content:o.string().nullable()})}function L(){return o.object({__typename:o.literal("SetRootPathInput").optional(),newRootPath:o.string()})}function fe(){return o.object({__typename:o.literal("TypeSpecificationComponent").optional(),additionalLogic:o.string().nullable(),category:ce.nullable(),documentIdentifierRules:o.string().nullable(),name:o.string().nullable(),overview:o.string().nullable(),typeAuthority:o.string().nullable()})}function U(){return o.object({__typename:o.literal("UpdateElementComponentsInput").optional(),components:F().nullable(),id:o.string()})}function $(){return o.object({__typename:o.literal("UpdateElementNameInput").optional(),id:o.string(),name:o.string().nullable()})}function V(){return o.object({__typename:o.literal("UpdateElementTypeInput").optional(),id:o.string(),type:R})}const w=e=>e.split(".",2)[0],be=(e,t)=>{const n=e.split("."),a=t.split("."),r=Math.min(n.length,a.length);if(n[0]!=a[0])return n[0]<a[0];for(let i=1;i<r;i++)if(n[i]!=a[i])return parseInt(n[i])<parseInt(a[i]);return n.length<a.length},E={setRootPathOperation(e,t){if(!/^[A-Z]+$/.exec(t.input.newRootPath))throw new Error(`Invalid root path format ${t.input.newRootPath}. Use one or more capital letters: 'A', 'D', 'AQ', ...`);const n=e.rootPath+".",a=t.input.newRootPath+".";e.rootPath=t.input.newRootPath,e.elements=e.elements.map(r=>({...r,path:r.path.replace(n,a)}))},addElementOperation(e,t){const n=[],a={id:t.input.id,version:1,path:t.input.path,type:t.input.type,name:t.input.name,components:t.input.components};if(w(a.path)!=e.rootPath)throw new Error(`Cannot add element with root segment ${w(a.path)} to document with root path ${e.rootPath}`);let r=!1,i=null;for(;i=e.elements.shift();){if(!r&&be(a.path,i.path)&&(n.push(a),r=!0),!r&&a.path==i.path)throw new Error(`New element's path ${a.path} already exists.`);n.push(i)}r||n.push(a),e.elements=n},updateElementTypeOperation(e,t){e.elements.filter(n=>n.id==t.input.id).forEach(n=>{n.type=t.input.type})},updateElementNameOperation(e,t){e.elements.filter(n=>n.id==t.input.id).forEach(n=>{n.name=t.input.name})},updateElementComponentsOperation(e,t){e.elements.filter(n=>n.id==t.input.id).forEach(n=>{n.components=t.input.components})},removeElementOperation(e,t){const n=e.elements.filter(a=>a.id==t.input.id)[0];n&&(e.elements=e.elements.filter(a=>!a.path.startsWith(n.path)))},reorderElementsOperation(e,t){throw new Error('Reducer "reorderElementsOperation" not yet implemented')},moveElementOperation(e,t){throw new Error('Reducer "moveElementOperation" not yet implemented')}},ge=(e,t,n)=>{if(u.isBaseAction(t))return e;switch(t.type){case"SET_ROOT_PATH":L().parse(t.input),E.setRootPathOperation(e[t.scope],t,n);break;case"ADD_ELEMENT":D().parse(t.input),E.addElementOperation(e[t.scope],t,n);break;case"UPDATE_ELEMENT_TYPE":V().parse(t.input),E.updateElementTypeOperation(e[t.scope],t,n);break;case"UPDATE_ELEMENT_NAME":$().parse(t.input),E.updateElementNameOperation(e[t.scope],t,n);break;case"UPDATE_ELEMENT_COMPONENTS":U().parse(t.input),E.updateElementComponentsOperation(e[t.scope],t,n);break;case"REMOVE_ELEMENT":x().parse(t.input),E.removeElementOperation(e[t.scope],t,n);break;case"REORDER_ELEMENTS":k().parse(t.input),E.reorderElementsOperation(e[t.scope],t,n);break;case"MOVE_ELEMENT":I().parse(t.input),E.moveElementOperation(e[t.scope],t,n);break;default:return e}},A=u.createReducer(ge),ye={rootPath:"A",elements:[{id:"hruFam5ot7s0Gb1n+aIBa+y+NJA=",name:"Scope Name",version:1,type:"Scope",path:"A.1",components:{content:"Scope description goes here."}}]},Te={},y={fileExtension:"mdsf",createState(e){return{global:{...ye,...e==null?void 0:e.global},local:{...Te,...e==null?void 0:e.local}}},createExtendedState(e){return u.createExtendedState({...e,documentType:"makerdao/scope-framework"},y.createState)},createDocument(e){return u.createDocument(y.createExtendedState(e),y.createState)},saveToFile(e,t,n){return u.saveToFile(e,t,"mdsf",n)},saveToFileHandle(e,t){return u.saveToFileHandle(e,t)},loadFromFile(e){return u.loadFromFile(e,A)},loadFromInput(e){return u.loadFromInput(e,A)}},{createAction:f}=u,z=e=>f("SET_ROOT_PATH",{...e},void 0,L,"global"),B=e=>f("ADD_ELEMENT",{...e},void 0,D,"global"),H=e=>f("UPDATE_ELEMENT_TYPE",{...e},void 0,V,"global"),W=e=>f("UPDATE_ELEMENT_NAME",{...e},void 0,$,"global"),J=e=>f("UPDATE_ELEMENT_COMPONENTS",{...e},void 0,U,"global"),Q=e=>f("REMOVE_ELEMENT",{...e},void 0,x,"global"),Y=e=>f("REORDER_ELEMENTS",{...e},void 0,k,"global"),q=e=>f("MOVE_ELEMENT",{...e},void 0,I,"global");class ve extends j{setRootPath(t){return this.dispatch(z(t))}addElement(t){return this.dispatch(B(t))}updateElementType(t){return this.dispatch(H(t))}updateElementName(t){return this.dispatch(W(t))}updateElementComponents(t){return this.dispatch(J(t))}removeElement(t){return this.dispatch(Q(t))}reorderElements(t){return this.dispatch(Y(t))}moveElement(t){return this.dispatch(q(t))}}const G=class K extends j{constructor(t,n){super(A,y.createDocument(t),n)}saveToFile(t,n){return super.saveToFile(t,K.fileExtension,n)}loadFromFile(t){return super.loadFromFile(t)}static async fromFile(t){const n=new this;return await n.loadFromFile(t),n}};pe(G,"fileExtension","mdsf");let _e=G;ne(_e,[ve]);const Se=Object.freeze(Object.defineProperty({__proto__:null,addElement:B,moveElement:q,removeElement:Q,reorderElements:Y,setRootPath:z,updateElementComponents:J,updateElementName:W,updateElementType:H},Symbol.toStringTag,{value:"Module"})),Ne=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"}));({...y,...Ne});const p={...oe,...Se},Oe=e=>e.type!=="Section"&&e.type!=="Core";function Pe(e){const t=e.element.components,[n,a]=te(!1),r=()=>a(!0),i=()=>a(!1),T=m=>{var c;return(c=e.onUpdateName)==null?void 0:c.call(e,e.element.id,m)},v=()=>{var m;return(m=e.onDelete)==null?void 0:m.call(e,e.element.id)},_=m=>{var c;["Scope","Article","Section","Core"].includes(m)&&((c=e.onUpdateType)==null||c.call(e,e.element.id,m))},S=m=>{var c;(c=e.onUpdateComponents)==null||c.call(e,e.element.id,{content:m})},N={Scope:"larger",Article:"large",Section:"medium",Core:"medium",TypeSpecification:"medium"};return b("div",{className:Oe(e.element)?"atlas-element atlas-element--first":"atlas-element",onBlur:i,onFocus:r,children:[b("div",{className:"atlas-element--header",children:[l("div",{className:"atlas-element--header-component atlas-element--path",children:e.element.path}),l("div",{className:"atlas-element--header-component atlas-element--type",children:l(O,{labelStyle:!0,onSubmit:_,size:"smaller",theme:e.mode,value:e.element.type||""})}),l("div",{className:"atlas-element--header-component atlas-element--name",children:l(O,{onEmpty:v,onSubmit:T,size:N[e.element.type||"Section"],theme:e.mode,value:e.element.name??""})}),l("div",{className:"atlas-element--header-component atlas-element--version"}),l("div",{className:"atlas-element--header-component atlas-element--icons"})]}),l("div",{className:"atlas-element--componentsList",children:b("div",{className:"atlas-element--component",children:[l("div",{className:"atlas-element--componentLabel",children:"Content"}),l("div",{className:"atlas-element--componentInput",children:l(O,{onSubmit:S,theme:e.mode,value:t&&"content"in t&&t.content||""})})]})})]})}const P=()=>Math.floor(Math.random()*Date.now()).toString(36),d=(e,t)=>{e+=".";let n=0;const a=e.length;return t.filter(r=>r.startsWith(e)).forEach(r=>{const i=parseInt(r.slice(a).split(".",2)[0]);i>n&&(n=i)}),n},M=(e,t)=>{const n=[e.state.global.rootPath],a=e.state.global.elements.map(r=>r.path);return t=="Scope"&&n.push(d(n[0],a)+1+""),t=="Article"&&(n.push(d(n[0],a)+""),n.push(d(n.join("."),a)+1+"")),t=="Section"&&(n.push(d(n[0],a)+""),n.push(d(n.join("."),a)+""),n.push(d(n.join("."),a)+1+"")),t=="Core"&&(n.push(d(n[0],a)+""),n.push(d(n.join("."),a)+""),n.push(d(n.join("."),a)+""),n.push(d(n.join("."),a)+1+"")),n.join(".")};function Ie(e){const{document:t,dispatch:n,context:a}=e;console.log(t);const{state:{global:r}}=t;ee(()=>{Object.values(t.operations).concat().length||n(p.setName("MakerDAO Atlas"))},[]);const i=(s,h)=>n(p.updateElementName({id:s,name:h})),T=(s,h)=>n(p.updateElementType({id:s,type:h})),v=(s,h)=>n(p.updateElementComponents({id:s,components:{content:h.content}})),_=s=>{const h=r.elements.filter(Z=>Z.id==s);h.length==1&&h[0].type!=="Scope"&&n(p.removeElement({id:s}))},S=()=>{n(p.addElement({id:P(),type:"Article",path:M(t,"Article"),name:null,components:{content:null}}))},N=()=>{n(p.addElement({id:P(),type:"Section",path:M(t,"Section"),name:null,components:{content:null}}))},m=()=>{n(p.addElement({id:P(),type:"Core",path:M(t,"Core"),name:null,components:{content:null}}))},c=s=>{n(p.setName(s))},X=s=>{n(p.setRootPath({newRootPath:s}))};return b(ae,{mode:a.theme,children:[l(le,{center:[l(g,{onClick:S,children:"+ add article"},"art"),l(g,{onClick:N,children:"+ add section"},"sct"),l(g,{onClick:m,children:"+ add core"},"cor")],left:[l(g,{onClick:()=>n(p.undo(1)),children:"↺ undo"},"undo"),l(g,{onClick:()=>n(p.redo(1)),children:"↻ redo"},"redo")],right:[l(g,{children:"revision history"},"rev")]},"toolbar"),b(re,{children:[b("div",{className:"editor-worksheet--header-left",children:[l(C,{onSubmit:c,size:"huge",theme:a.theme,value:t.name},"doc-title"),b("p",{children:["Last Modified:"," ",t.lastModified.toString().slice(0,16).replace("T"," ")," ","UTC – Version: ",t.revision.global]},"lastModified")]},"header-left"),l("div",{className:"editor-worksheet--header-right",children:l(C,{onSubmit:X,size:"medium",theme:a.theme,value:r.rootPath},"doc-title")},"header-right"),r.elements.map(s=>l(Pe,{element:s,mode:e.context.theme,onDelete:_,onUpdateComponents:v,onUpdateName:i,onUpdateType:T},s.id)),a.debug?l("code",{style:{maxWidth:"60em",margin:"4em auto",padding:"2em 0",display:"block",whiteSpace:"pre-wrap",fontFamily:"monospace",lineHeight:"1.7",borderTop:"1px solid #aaa"},children:JSON.stringify(t,null,2)},"stateView"):""]},"sheet")]})}export{Ie as default,P as randomId};
2
- //# sourceMappingURL=editor-BtO6Gypb.js.map
1
+ import{jsxs as b,jsx as l}from"react/jsx-runtime";import{useEffect as ee,useState as te}from"react";import{bO as o,bk as u,bP as ne,bF as oe,bQ as j}from"./app-B4OFGo2O.js";import{D as ae,E as le,T as g,a as re,b as w,c as O}from"./editor-ehywSkYm.js";import"./main.VYW2kwWP.js";import"./app-loader-Bfb1rJhE.js";import"react-dom";import"./json-D0_QOK7W.js";var ie=Object.defineProperty,se=(e,t,n)=>t in e?ie(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,pe=(e,t,n)=>se(e,t+"",n);const me=e=>e!=null;o.any().refine(e=>me(e));const R=o.enum(["Article","Core","Scope","Section","TypeSpecification"]),ce=o.enum(["Accessory","Immutable","Primary","Supporting"]);function F(){return o.object({__typename:o.literal("AddElementInput").optional(),components:D().nullable(),id:o.string(),name:o.string().nullable(),path:o.string(),type:R})}function de(){return o.object({__typename:o.literal("ArticleComponent").optional(),content:o.string().nullable()})}function ue(){return o.object({__typename:o.literal("CoreComponent").optional(),content:o.string().nullable()})}function D(){return o.union([de(),ue(),he(),Ee(),fe()])}function I(){return o.object({__typename:o.literal("MoveElementInput").optional(),id:o.string(),newParentId:o.string()})}function k(){return o.object({__typename:o.literal("RemoveElementInput").optional(),id:o.string()})}function x(){return o.object({__typename:o.literal("ReorderElementsInput").optional(),order:o.array(o.string()),parentElementId:o.string()})}function he(){return o.object({__typename:o.literal("ScopeComponent").optional(),content:o.string().nullable()})}function Ee(){return o.object({__typename:o.literal("SectionComponent").optional(),content:o.string().nullable()})}function L(){return o.object({__typename:o.literal("SetRootPathInput").optional(),newRootPath:o.string()})}function fe(){return o.object({__typename:o.literal("TypeSpecificationComponent").optional(),additionalLogic:o.string().nullable(),category:ce.nullable(),documentIdentifierRules:o.string().nullable(),name:o.string().nullable(),overview:o.string().nullable(),typeAuthority:o.string().nullable()})}function U(){return o.object({__typename:o.literal("UpdateElementComponentsInput").optional(),components:D().nullable(),id:o.string()})}function $(){return o.object({__typename:o.literal("UpdateElementNameInput").optional(),id:o.string(),name:o.string().nullable()})}function V(){return o.object({__typename:o.literal("UpdateElementTypeInput").optional(),id:o.string(),type:R})}const C=e=>e.split(".",2)[0],be=(e,t)=>{const n=e.split("."),a=t.split("."),r=Math.min(n.length,a.length);if(n[0]!=a[0])return n[0]<a[0];for(let i=1;i<r;i++)if(n[i]!=a[i])return parseInt(n[i])<parseInt(a[i]);return n.length<a.length},E={setRootPathOperation(e,t){if(!/^[A-Z]+$/.exec(t.input.newRootPath))throw new Error(`Invalid root path format ${t.input.newRootPath}. Use one or more capital letters: 'A', 'D', 'AQ', ...`);const n=e.rootPath+".",a=t.input.newRootPath+".";e.rootPath=t.input.newRootPath,e.elements=e.elements.map(r=>({...r,path:r.path.replace(n,a)}))},addElementOperation(e,t){const n=[],a={id:t.input.id,version:1,path:t.input.path,type:t.input.type,name:t.input.name,components:t.input.components};if(C(a.path)!=e.rootPath)throw new Error(`Cannot add element with root segment ${C(a.path)} to document with root path ${e.rootPath}`);let r=!1,i=null;for(;i=e.elements.shift();){if(!r&&be(a.path,i.path)&&(n.push(a),r=!0),!r&&a.path==i.path)throw new Error(`New element's path ${a.path} already exists.`);n.push(i)}r||n.push(a),e.elements=n},updateElementTypeOperation(e,t){e.elements.filter(n=>n.id==t.input.id).forEach(n=>{n.type=t.input.type})},updateElementNameOperation(e,t){e.elements.filter(n=>n.id==t.input.id).forEach(n=>{n.name=t.input.name})},updateElementComponentsOperation(e,t){e.elements.filter(n=>n.id==t.input.id).forEach(n=>{n.components=t.input.components})},removeElementOperation(e,t){const n=e.elements.filter(a=>a.id==t.input.id)[0];n&&(e.elements=e.elements.filter(a=>!a.path.startsWith(n.path)))},reorderElementsOperation(e,t){throw new Error('Reducer "reorderElementsOperation" not yet implemented')},moveElementOperation(e,t){throw new Error('Reducer "moveElementOperation" not yet implemented')}},ge=(e,t,n)=>{if(u.isBaseAction(t))return e;switch(t.type){case"SET_ROOT_PATH":L().parse(t.input),E.setRootPathOperation(e[t.scope],t,n);break;case"ADD_ELEMENT":F().parse(t.input),E.addElementOperation(e[t.scope],t,n);break;case"UPDATE_ELEMENT_TYPE":V().parse(t.input),E.updateElementTypeOperation(e[t.scope],t,n);break;case"UPDATE_ELEMENT_NAME":$().parse(t.input),E.updateElementNameOperation(e[t.scope],t,n);break;case"UPDATE_ELEMENT_COMPONENTS":U().parse(t.input),E.updateElementComponentsOperation(e[t.scope],t,n);break;case"REMOVE_ELEMENT":k().parse(t.input),E.removeElementOperation(e[t.scope],t,n);break;case"REORDER_ELEMENTS":x().parse(t.input),E.reorderElementsOperation(e[t.scope],t,n);break;case"MOVE_ELEMENT":I().parse(t.input),E.moveElementOperation(e[t.scope],t,n);break;default:return e}},A=u.createReducer(ge),ye={rootPath:"A",elements:[{id:"hruFam5ot7s0Gb1n+aIBa+y+NJA=",name:"Scope Name",version:1,type:"Scope",path:"A.1",components:{content:"Scope description goes here."}}]},Te={},y={fileExtension:"mdsf",createState(e){return{global:{...ye,...e==null?void 0:e.global},local:{...Te,...e==null?void 0:e.local}}},createExtendedState(e){return u.createExtendedState({...e,documentType:"makerdao/scope-framework"},y.createState)},createDocument(e){return u.createDocument(y.createExtendedState(e),y.createState)},saveToFile(e,t,n){return u.saveToFile(e,t,"mdsf",n)},saveToFileHandle(e,t){return u.saveToFileHandle(e,t)},loadFromFile(e){return u.loadFromFile(e,A)},loadFromInput(e){return u.loadFromInput(e,A)}},{createAction:f}=u,z=e=>f("SET_ROOT_PATH",{...e},void 0,L,"global"),B=e=>f("ADD_ELEMENT",{...e},void 0,F,"global"),H=e=>f("UPDATE_ELEMENT_TYPE",{...e},void 0,V,"global"),W=e=>f("UPDATE_ELEMENT_NAME",{...e},void 0,$,"global"),J=e=>f("UPDATE_ELEMENT_COMPONENTS",{...e},void 0,U,"global"),Q=e=>f("REMOVE_ELEMENT",{...e},void 0,k,"global"),Y=e=>f("REORDER_ELEMENTS",{...e},void 0,x,"global"),q=e=>f("MOVE_ELEMENT",{...e},void 0,I,"global");class ve extends j{setRootPath(t){return this.dispatch(z(t))}addElement(t){return this.dispatch(B(t))}updateElementType(t){return this.dispatch(H(t))}updateElementName(t){return this.dispatch(W(t))}updateElementComponents(t){return this.dispatch(J(t))}removeElement(t){return this.dispatch(Q(t))}reorderElements(t){return this.dispatch(Y(t))}moveElement(t){return this.dispatch(q(t))}}const G=class K extends j{constructor(t,n){super(A,y.createDocument(t),n)}saveToFile(t,n){return super.saveToFile(t,K.fileExtension,n)}loadFromFile(t){return super.loadFromFile(t)}static async fromFile(t){const n=new this;return await n.loadFromFile(t),n}};pe(G,"fileExtension","mdsf");let _e=G;ne(_e,[ve]);const Se=Object.freeze(Object.defineProperty({__proto__:null,addElement:B,moveElement:q,removeElement:Q,reorderElements:Y,setRootPath:z,updateElementComponents:J,updateElementName:W,updateElementType:H},Symbol.toStringTag,{value:"Module"})),Ne=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"}));({...y,...Ne});const p={...oe,...Se},Oe=e=>e.type!=="Section"&&e.type!=="Core";function Pe(e){const t=e.element.components,[n,a]=te(!1),r=()=>a(!0),i=()=>a(!1),T=m=>{var c;return(c=e.onUpdateName)==null?void 0:c.call(e,e.element.id,m)},v=()=>{var m;return(m=e.onDelete)==null?void 0:m.call(e,e.element.id)},_=m=>{var c;["Scope","Article","Section","Core"].includes(m)&&((c=e.onUpdateType)==null||c.call(e,e.element.id,m))},S=m=>{var c;(c=e.onUpdateComponents)==null||c.call(e,e.element.id,{content:m})},N={Scope:"larger",Article:"large",Section:"medium",Core:"medium",TypeSpecification:"medium"};return b("div",{className:Oe(e.element)?"atlas-element atlas-element--first":"atlas-element",onBlur:i,onFocus:r,children:[b("div",{className:"atlas-element--header",children:[l("div",{className:"atlas-element--header-component atlas-element--path",children:e.element.path}),l("div",{className:"atlas-element--header-component atlas-element--type",children:l(O,{labelStyle:!0,onSubmit:_,size:"smaller",theme:e.mode,value:e.element.type||""})}),l("div",{className:"atlas-element--header-component atlas-element--name",children:l(O,{onEmpty:v,onSubmit:T,size:N[e.element.type||"Section"],theme:e.mode,value:e.element.name??""})}),l("div",{className:"atlas-element--header-component atlas-element--version"}),l("div",{className:"atlas-element--header-component atlas-element--icons"})]}),l("div",{className:"atlas-element--componentsList",children:b("div",{className:"atlas-element--component",children:[l("div",{className:"atlas-element--componentLabel",children:"Content"}),l("div",{className:"atlas-element--componentInput",children:l(O,{onSubmit:S,theme:e.mode,value:t&&"content"in t&&t.content||""})})]})})]})}const P=()=>Math.floor(Math.random()*Date.now()).toString(36),d=(e,t)=>{e+=".";let n=0;const a=e.length;return t.filter(r=>r.startsWith(e)).forEach(r=>{const i=parseInt(r.slice(a).split(".",2)[0]);i>n&&(n=i)}),n},M=(e,t)=>{const n=[e.state.global.rootPath],a=e.state.global.elements.map(r=>r.path);return t=="Scope"&&n.push(d(n[0],a)+1+""),t=="Article"&&(n.push(d(n[0],a)+""),n.push(d(n.join("."),a)+1+"")),t=="Section"&&(n.push(d(n[0],a)+""),n.push(d(n.join("."),a)+""),n.push(d(n.join("."),a)+1+"")),t=="Core"&&(n.push(d(n[0],a)+""),n.push(d(n.join("."),a)+""),n.push(d(n.join("."),a)+""),n.push(d(n.join("."),a)+1+"")),n.join(".")};function Ie(e){const{document:t,dispatch:n,context:a}=e;console.log(t);const{state:{global:r}}=t;ee(()=>{Object.values(t.operations).concat().length||n(p.setName("MakerDAO Atlas"))},[]);const i=(s,h)=>n(p.updateElementName({id:s,name:h})),T=(s,h)=>n(p.updateElementType({id:s,type:h})),v=(s,h)=>n(p.updateElementComponents({id:s,components:{content:h.content}})),_=s=>{const h=r.elements.filter(Z=>Z.id==s);h.length==1&&h[0].type!=="Scope"&&n(p.removeElement({id:s}))},S=()=>{n(p.addElement({id:P(),type:"Article",path:M(t,"Article"),name:null,components:{content:null}}))},N=()=>{n(p.addElement({id:P(),type:"Section",path:M(t,"Section"),name:null,components:{content:null}}))},m=()=>{n(p.addElement({id:P(),type:"Core",path:M(t,"Core"),name:null,components:{content:null}}))},c=s=>{n(p.setName(s))},X=s=>{n(p.setRootPath({newRootPath:s}))};return b(ae,{mode:a.theme,children:[l(le,{center:[l(g,{onClick:S,children:"+ add article"},"art"),l(g,{onClick:N,children:"+ add section"},"sct"),l(g,{onClick:m,children:"+ add core"},"cor")],left:[l(g,{onClick:()=>n(p.undo(1)),children:"↺ undo"},"undo"),l(g,{onClick:()=>n(p.redo(1)),children:"↻ redo"},"redo")],right:[l(g,{children:"revision history"},"rev")]},"toolbar"),b(re,{children:[b("div",{className:"editor-worksheet--header-left",children:[l(w,{onSubmit:c,size:"huge",theme:a.theme,value:t.name},"doc-title"),b("p",{children:["Last Modified:"," ",t.lastModified.toString().slice(0,16).replace("T"," ")," ","UTC – Version: ",t.revision.global]},"lastModified")]},"header-left"),l("div",{className:"editor-worksheet--header-right",children:l(w,{onSubmit:X,size:"medium",theme:a.theme,value:r.rootPath},"doc-title")},"header-right"),r.elements.map(s=>l(Pe,{element:s,mode:e.context.theme,onDelete:_,onUpdateComponents:v,onUpdateName:i,onUpdateType:T},s.id)),a.debug?l("code",{style:{maxWidth:"60em",margin:"4em auto",padding:"2em 0",display:"block",whiteSpace:"pre-wrap",fontFamily:"monospace",lineHeight:"1.7",borderTop:"1px solid #aaa"},children:JSON.stringify(t,null,2)},"stateView"):""]},"sheet")]})}export{Ie as default,P as randomId};
2
+ //# sourceMappingURL=editor-Bo9Aijfe.js.map