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

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-DVu2OIYO.js} +88 -88
  8. package/dist/assets/app-DVu2OIYO.js.map +1 -0
  9. package/dist/assets/app-loader-CcY7cVzc.css +1 -0
  10. package/dist/assets/{app-loader-DW3rvYVW.js → app-loader-DqWwQ81E.js} +3 -3
  11. package/dist/assets/app-loader-DqWwQ81E.js.map +1 -0
  12. package/dist/assets/{browser-BY_9pOaF.js → browser-Szk8zoDr.js} +2 -2
  13. package/dist/assets/{browser-BY_9pOaF.js.map → browser-Szk8zoDr.js.map} +1 -1
  14. package/dist/assets/{ccip-CSm_dBY-.js → ccip-7PoVR3HK.js} +2 -2
  15. package/dist/assets/{ccip-CSm_dBY-.js.map → ccip-7PoVR3HK.js.map} +1 -1
  16. package/dist/assets/content-DAx9dSD8.js +7 -0
  17. package/dist/assets/content-DAx9dSD8.js.map +1 -0
  18. package/dist/assets/{editor-BtO6Gypb.js → editor-BSjQci3v.js} +2 -2
  19. package/dist/assets/{editor-BtO6Gypb.js.map → editor-BSjQci3v.js.map} +1 -1
  20. package/dist/assets/{editor-CTeXLKFR.js → editor-CD3DIxJK.js} +2 -2
  21. package/dist/assets/editor-CD3DIxJK.js.map +1 -0
  22. package/dist/assets/{editor-DOC8FvI_.js → editor-CLU5aaxL.js} +2 -2
  23. package/dist/assets/{editor-DOC8FvI_.js.map → editor-CLU5aaxL.js.map} +1 -1
  24. package/dist/assets/{editor-DZFHIVmh.js → editor-DzksqT6J.js} +27 -27
  25. package/dist/assets/editor-DzksqT6J.js.map +1 -0
  26. package/dist/assets/editors-QFZAWtl0.js +3 -0
  27. package/dist/assets/{editors-BOSfNWsm.js.map → editors-QFZAWtl0.js.map} +1 -1
  28. package/dist/assets/{getEnsName-UdBChzmd.js → getEnsName-CWy0aCA9.js} +10 -10
  29. package/dist/assets/{getEnsName-UdBChzmd.js.map → getEnsName-CWy0aCA9.js.map} +1 -1
  30. package/dist/assets/{index-olgtq3p2.js → index-Cfezsgfl.js} +2 -2
  31. package/dist/assets/{index-olgtq3p2.js.map → index-Cfezsgfl.js.map} +1 -1
  32. package/dist/assets/index-CuqBG-XH.js +3 -0
  33. package/dist/assets/{index-D0RJI-lW.js.map → index-CuqBG-XH.js.map} +1 -1
  34. package/dist/assets/{isAddressEqual-B0vzZnZp.js → isAddressEqual-7_-I3JPu.js} +2 -2
  35. package/dist/assets/{isAddressEqual-B0vzZnZp.js.map → isAddressEqual-7_-I3JPu.js.map} +1 -1
  36. package/dist/assets/{json-_CDXNk-y.js → json-BK2P0vCl.js} +3 -3
  37. package/dist/assets/{json-_CDXNk-y.js.map → json-BK2P0vCl.js.map} +1 -1
  38. package/dist/assets/{main.vaE8bYXL.js → main.CqyrPdgE.js} +2 -2
  39. package/dist/assets/{main.vaE8bYXL.js.map → main.CqyrPdgE.js.map} +1 -1
  40. package/dist/assets/react-error-boundary.esm-BQ1o-seO.js +2 -0
  41. package/dist/assets/{react-error-boundary.esm-CGkLiKiB.js.map → react-error-boundary.esm-BQ1o-seO.js.map} +1 -1
  42. package/dist/assets/root-CAjjh02O.js +17 -0
  43. package/dist/assets/root-CAjjh02O.js.map +1 -0
  44. package/dist/assets/router-BEJNE1RL.js +12 -0
  45. package/dist/assets/router-BEJNE1RL.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 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{bR as o,bl as u,bS as ne,bH as oe,bT as R}from"./app-DVu2OIYO.js";import{D as ae,E as le,T as g,a as re,b as w,c as O}from"./editor-DzksqT6J.js";import"./main.CqyrPdgE.js";import"./app-loader-DqWwQ81E.js";import"react-dom";import"./json-BK2P0vCl.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 j=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:j})}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:j})}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":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"),Y=e=>f("REMOVE_ELEMENT",{...e},void 0,x,"global"),q=e=>f("REORDER_ELEMENTS",{...e},void 0,k,"global"),G=e=>f("MOVE_ELEMENT",{...e},void 0,I,"global");class ve extends R{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(Y(t))}reorderElements(t){return this.dispatch(q(t))}moveElement(t){return this.dispatch(G(t))}}const K=class Q extends R{constructor(t,n){super(A,y.createDocument(t),n)}saveToFile(t,n){return super.saveToFile(t,Q.fileExtension,n)}loadFromFile(t){return super.loadFromFile(t)}static async fromFile(t){const n=new this;return await n.loadFromFile(t),n}};pe(K,"fileExtension","mdsf");let _e=K;ne(_e,[ve]);const Se=Object.freeze(Object.defineProperty({__proto__:null,addElement:B,moveElement:G,removeElement:Y,reorderElements:q,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-BSjQci3v.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"editor-BtO6Gypb.js","sources":["../../../../packages/document-model-libs/dist/es/scope-framework.js","../../../../packages/document-model-libs/dist/es/editors/scope-framework/editor.js"],"sourcesContent":["var B = Object.defineProperty;\nvar H = (n, e, o) => e in n ? B(n, e, { enumerable: !0, configurable: !0, writable: !0, value: o }) : n[e] = o;\nvar I = (n, e, o) => H(n, typeof e != \"symbol\" ? e + \"\" : e, o);\nimport { utils as p, BaseDocument as P, applyMixins as G, actions as J } from \"document-model/document\";\nimport { z as t } from \"./document-models/account-snapshot.js\";\nconst Y = {\n id: \"makerdao/scope-framework\",\n name: \"ScopeFramework\",\n extension: \"mdsf\",\n description: \"The MakerDAO Scope Framework document contains articles, sections and other elements that make up the governance rules for the MakerDAO scopes.\",\n author: {\n name: \"MakerDAO\",\n website: \"https://www.makerdao.com/\"\n },\n specifications: [\n {\n version: 1,\n changeLog: [],\n modules: [\n {\n name: \"main\",\n operations: [\n {\n name: \"SetRootPath\",\n id: \"\",\n description: \"\",\n schema: `type SetRootPathInput {\n newRootPath: String!\n}`,\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\"\n },\n {\n name: \"AddElement\",\n id: \"\",\n description: \"\",\n schema: `type AddElementInput {\n id: String!\n path: String!\n type: ScopeFrameworkElementType!\n name: String\n components: ElementComponents\n}`,\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\"\n },\n {\n name: \"UpdateElementType\",\n id: \"\",\n description: \"\",\n schema: `type UpdateElementTypeInput {\n id: ID!\n type: ScopeFrameworkElementType!\n}`,\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\"\n },\n {\n name: \"UpdateElementName\",\n id: \"\",\n description: \"\",\n schema: `type UpdateElementNameInput {\n id: ID!\n name: String\n}`,\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\"\n },\n {\n name: \"UpdateElementComponents\",\n id: \"\",\n description: \"\",\n schema: `type UpdateElementComponentsInput {\n id: ID!\n components: ElementComponents\n}`,\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\"\n },\n {\n name: \"RemoveElement\",\n id: \"\",\n description: \"\",\n schema: `type RemoveElementInput {\n id: ID!\n}`,\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\"\n },\n {\n name: \"ReorderElements\",\n id: \"\",\n description: \"\",\n schema: `type ReorderElementsInput {\n parentElementId: ID!\n order: [ID!]!\n}`,\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\"\n },\n {\n name: \"MoveElement\",\n id: \"\",\n description: \"\",\n schema: `type MoveElementInput {\n id: ID!\n newParentId: ID!\n}`,\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: `type ScopeComponent {\n content: String\n}\n \ntype ArticleComponent {\n content: String\n}\n \ntype SectionComponent {\n content: String\n}\n \ntype CoreComponent {\n content: String\n}\n \nenum TypeSpecificationComponentCategory {\n Primary\n Supporting\n Immutable\n Accessory\n}\n \ntype TypeSpecificationComponent {\n name: String\n overview: String\n category: TypeSpecificationComponentCategory\n documentIdentifierRules: String\n typeAuthority: String\n additionalLogic: String\n}\n \nunion ElementComponents = \n ScopeComponent\n | ArticleComponent\n | SectionComponent\n | CoreComponent\n | TypeSpecificationComponent\n \nenum ScopeFrameworkElementType {\n Scope\n Article\n Section\n Core\n TypeSpecification\n}\n \ntype ScopeFrameworkElement {\n id: ID!\n path: String!\n version: Int!\n name: String\n type: ScopeFrameworkElementType\n components: ElementComponents\n}\n \ntype ScopeFrameworkState {\n rootPath: String!\n elements: [ScopeFrameworkElement!]!\n}`,\n initialValue: '\"{\\\\n \\\\\"rootPath\\\\\": \\\\\"A\\\\\",\\\\n \\\\\"elements\\\\\": [\\\\n {\\\\n \\\\\"id\\\\\": \\\\\"hruFam5ot7s0Gb1n+aIBa+y+NJA=\\\\\",\\\\n \\\\\"name\\\\\": \\\\\"Scope Name\\\\\",\\\\n \\\\\"version\\\\\": 1,\\\\n \\\\\"type\\\\\": \\\\\"Scope\\\\\",\\\\n \\\\\"path\\\\\": \\\\\"A.1\\\\\",\\\\n \\\\\"components\\\\\": {\\\\n \\\\\"content\\\\\": \\\\\"Scope description goes here.\\\\\"\\\\n }\\\\n }\\\\n ]\\\\n}\"',\n examples: []\n },\n local: {\n schema: \"type ScopeFrameworkLocalState\",\n initialValue: '\"{}\"',\n examples: []\n }\n }\n }\n ]\n}, A = (n) => n != null, Q = t.any().refine((n) => A(n)), E = t.enum([\n \"Article\",\n \"Core\",\n \"Scope\",\n \"Section\",\n \"TypeSpecification\"\n]), O = t.enum([\n \"Accessory\",\n \"Immutable\",\n \"Primary\",\n \"Supporting\"\n]);\nfunction S() {\n return t.object({\n __typename: t.literal(\"AddElementInput\").optional(),\n components: h().nullable(),\n id: t.string(),\n name: t.string().nullable(),\n path: t.string(),\n type: E\n });\n}\nfunction F() {\n return t.object({\n __typename: t.literal(\"ArticleComponent\").optional(),\n content: t.string().nullable()\n });\n}\nfunction R() {\n return t.object({\n __typename: t.literal(\"CoreComponent\").optional(),\n content: t.string().nullable()\n });\n}\nfunction h() {\n return t.union([\n F(),\n R(),\n v(),\n M(),\n k()\n ]);\n}\nfunction y() {\n return t.object({\n __typename: t.literal(\"MoveElementInput\").optional(),\n id: t.string(),\n newParentId: t.string()\n });\n}\nfunction g() {\n return t.object({\n __typename: t.literal(\"RemoveElementInput\").optional(),\n id: t.string()\n });\n}\nfunction f() {\n return t.object({\n __typename: t.literal(\"ReorderElementsInput\").optional(),\n order: t.array(t.string()),\n parentElementId: t.string()\n });\n}\nfunction v() {\n return t.object({\n __typename: t.literal(\"ScopeComponent\").optional(),\n content: t.string().nullable()\n });\n}\nfunction N() {\n return t.object({\n __typename: t.literal(\"ScopeFrameworkElement\").optional(),\n components: h().nullable(),\n id: t.string(),\n name: t.string().nullable(),\n path: t.string(),\n type: E.nullable(),\n version: t.number()\n });\n}\nfunction W() {\n return t.object({\n __typename: t.literal(\"ScopeFrameworkLocalState\").optional()\n });\n}\nfunction Z() {\n return t.object({\n __typename: t.literal(\"ScopeFrameworkState\").optional(),\n elements: t.array(N()),\n rootPath: t.string()\n });\n}\nfunction M() {\n return t.object({\n __typename: t.literal(\"SectionComponent\").optional(),\n content: t.string().nullable()\n });\n}\nfunction b() {\n return t.object({\n __typename: t.literal(\"SetRootPathInput\").optional(),\n newRootPath: t.string()\n });\n}\nfunction k() {\n return t.object({\n __typename: t.literal(\"TypeSpecificationComponent\").optional(),\n additionalLogic: t.string().nullable(),\n category: O.nullable(),\n documentIdentifierRules: t.string().nullable(),\n name: t.string().nullable(),\n overview: t.string().nullable(),\n typeAuthority: t.string().nullable()\n });\n}\nfunction _() {\n return t.object({\n __typename: t.literal(\"UpdateElementComponentsInput\").optional(),\n components: h().nullable(),\n id: t.string()\n });\n}\nfunction T() {\n return t.object({\n __typename: t.literal(\"UpdateElementNameInput\").optional(),\n id: t.string(),\n name: t.string().nullable()\n });\n}\nfunction w() {\n return t.object({\n __typename: t.literal(\"UpdateElementTypeInput\").optional(),\n id: t.string(),\n type: E\n });\n}\nconst se = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n AddElementInputSchema: S,\n ArticleComponentSchema: F,\n CoreComponentSchema: R,\n ElementComponentsSchema: h,\n MoveElementInputSchema: y,\n RemoveElementInputSchema: g,\n ReorderElementsInputSchema: f,\n ScopeComponentSchema: v,\n ScopeFrameworkElementSchema: N,\n ScopeFrameworkElementTypeSchema: E,\n ScopeFrameworkLocalStateSchema: W,\n ScopeFrameworkStateSchema: Z,\n SectionComponentSchema: M,\n SetRootPathInputSchema: b,\n TypeSpecificationComponentCategorySchema: O,\n TypeSpecificationComponentSchema: k,\n UpdateElementComponentsInputSchema: _,\n UpdateElementNameInputSchema: T,\n UpdateElementTypeInputSchema: w,\n definedNonNullAnySchema: Q,\n isDefinedNonNullAny: A\n}, Symbol.toStringTag, { value: \"Module\" })), C = (n) => n.split(\".\", 2)[0], q = (n, e) => {\n const o = n.split(\".\"), r = e.split(\".\"), l = Math.min(o.length, r.length);\n if (o[0] != r[0])\n return o[0] < r[0];\n for (let a = 1; a < l; a++)\n if (o[a] != r[a])\n return parseInt(o[a]) < parseInt(r[a]);\n return o.length < r.length;\n}, i = {\n setRootPathOperation(n, e) {\n if (!/^[A-Z]+$/.exec(e.input.newRootPath))\n throw new Error(\n `Invalid root path format ${e.input.newRootPath}. Use one or more capital letters: 'A', 'D', 'AQ', ...`\n );\n const r = n.rootPath + \".\", l = e.input.newRootPath + \".\";\n n.rootPath = e.input.newRootPath, n.elements = n.elements.map((a) => ({\n ...a,\n path: a.path.replace(r, l)\n }));\n },\n addElementOperation(n, e) {\n const o = [], r = {\n id: e.input.id,\n version: 1,\n path: e.input.path,\n type: e.input.type,\n name: e.input.name,\n components: e.input.components\n };\n if (C(r.path) != n.rootPath)\n throw new Error(\n `Cannot add element with root segment ${C(\n r.path\n )} to document with root path ${n.rootPath}`\n );\n let l = !1, a = null;\n for (; a = n.elements.shift(); ) {\n if (!l && q(r.path, a.path) && (o.push(r), l = !0), !l && r.path == a.path)\n throw new Error(\n `New element's path ${r.path} already exists.`\n );\n o.push(a);\n }\n l || o.push(r), n.elements = o;\n },\n updateElementTypeOperation(n, e) {\n n.elements.filter((o) => o.id == e.input.id).forEach((o) => {\n o.type = e.input.type;\n });\n },\n updateElementNameOperation(n, e) {\n n.elements.filter((o) => o.id == e.input.id).forEach((o) => {\n o.name = e.input.name;\n });\n },\n updateElementComponentsOperation(n, e) {\n n.elements.filter((o) => o.id == e.input.id).forEach((o) => {\n o.components = e.input.components;\n });\n },\n removeElementOperation(n, e) {\n const o = n.elements.filter((r) => r.id == e.input.id)[0];\n o && (n.elements = n.elements.filter(\n (r) => !r.path.startsWith(o.path)\n ));\n },\n reorderElementsOperation(n, e) {\n throw new Error('Reducer \"reorderElementsOperation\" not yet implemented');\n },\n moveElementOperation(n, e) {\n throw new Error('Reducer \"moveElementOperation\" not yet implemented');\n }\n}, K = (n, e, o) => {\n if (p.isBaseAction(e))\n return n;\n switch (e.type) {\n case \"SET_ROOT_PATH\":\n b().parse(e.input), i.setRootPathOperation(n[e.scope], e, o);\n break;\n case \"ADD_ELEMENT\":\n S().parse(e.input), i.addElementOperation(n[e.scope], e, o);\n break;\n case \"UPDATE_ELEMENT_TYPE\":\n w().parse(e.input), i.updateElementTypeOperation(\n n[e.scope],\n e,\n o\n );\n break;\n case \"UPDATE_ELEMENT_NAME\":\n T().parse(e.input), i.updateElementNameOperation(\n n[e.scope],\n e,\n o\n );\n break;\n case \"UPDATE_ELEMENT_COMPONENTS\":\n _().parse(e.input), i.updateElementComponentsOperation(\n n[e.scope],\n e,\n o\n );\n break;\n case \"REMOVE_ELEMENT\":\n g().parse(e.input), i.removeElementOperation(n[e.scope], e, o);\n break;\n case \"REORDER_ELEMENTS\":\n f().parse(e.input), i.reorderElementsOperation(\n n[e.scope],\n e,\n o\n );\n break;\n case \"MOVE_ELEMENT\":\n y().parse(e.input), i.moveElementOperation(n[e.scope], e, o);\n break;\n default:\n return n;\n }\n}, c = p.createReducer(K), X = {\n rootPath: \"A\",\n elements: [\n {\n id: \"hruFam5ot7s0Gb1n+aIBa+y+NJA=\",\n name: \"Scope Name\",\n version: 1,\n type: \"Scope\",\n path: \"A.1\",\n components: {\n content: \"Scope description goes here.\"\n }\n }\n ]\n}, ee = {}, s = {\n fileExtension: \"mdsf\",\n createState(n) {\n return {\n global: { ...X, ...n == null ? void 0 : n.global },\n local: { ...ee, ...n == null ? void 0 : n.local }\n };\n },\n createExtendedState(n) {\n return p.createExtendedState(\n { ...n, documentType: \"makerdao/scope-framework\" },\n s.createState\n );\n },\n createDocument(n) {\n return p.createDocument(\n s.createExtendedState(n),\n s.createState\n );\n },\n saveToFile(n, e, o) {\n return p.saveToFile(n, e, \"mdsf\", o);\n },\n saveToFileHandle(n, e) {\n return p.saveToFileHandle(n, e);\n },\n loadFromFile(n) {\n return p.loadFromFile(n, c);\n },\n loadFromInput(n) {\n return p.loadFromInput(n, c);\n }\n}, { createAction: m } = p, D = (n) => m(\n \"SET_ROOT_PATH\",\n { ...n },\n void 0,\n b,\n \"global\"\n), x = (n) => m(\n \"ADD_ELEMENT\",\n { ...n },\n void 0,\n S,\n \"global\"\n), j = (n) => m(\n \"UPDATE_ELEMENT_TYPE\",\n { ...n },\n void 0,\n w,\n \"global\"\n), L = (n) => m(\n \"UPDATE_ELEMENT_NAME\",\n { ...n },\n void 0,\n T,\n \"global\"\n), U = (n) => m(\n \"UPDATE_ELEMENT_COMPONENTS\",\n { ...n },\n void 0,\n _,\n \"global\"\n), $ = (n) => m(\n \"REMOVE_ELEMENT\",\n { ...n },\n void 0,\n g,\n \"global\"\n), z = (n) => m(\n \"REORDER_ELEMENTS\",\n { ...n },\n void 0,\n f,\n \"global\"\n), V = (n) => m(\n \"MOVE_ELEMENT\",\n { ...n },\n void 0,\n y,\n \"global\"\n);\nclass ne extends P {\n setRootPath(e) {\n return this.dispatch(D(e));\n }\n addElement(e) {\n return this.dispatch(x(e));\n }\n updateElementType(e) {\n return this.dispatch(j(e));\n }\n updateElementName(e) {\n return this.dispatch(L(e));\n }\n updateElementComponents(e) {\n return this.dispatch(U(e));\n }\n removeElement(e) {\n return this.dispatch($(e));\n }\n reorderElements(e) {\n return this.dispatch(z(e));\n }\n moveElement(e) {\n return this.dispatch(V(e));\n }\n}\nconst d = class d extends P {\n constructor(e, o) {\n super(c, s.createDocument(e), o);\n }\n saveToFile(e, o) {\n return super.saveToFile(e, d.fileExtension, o);\n }\n loadFromFile(e) {\n return super.loadFromFile(e);\n }\n static async fromFile(e) {\n const o = new this();\n return await o.loadFromFile(e), o;\n }\n};\nI(d, \"fileExtension\", \"mdsf\");\nlet u = d;\nG(u, [ne]);\nconst te = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n addElement: x,\n moveElement: V,\n removeElement: $,\n reorderElements: z,\n setRootPath: D,\n updateElementComponents: U,\n updateElementName: L,\n updateElementType: j\n}, Symbol.toStringTag, { value: \"Module\" })), oe = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null\n}, Symbol.toStringTag, { value: \"Module\" })), re = u, ae = { ...s, ...oe }, pe = { ...J, ...te }, ce = {\n Document: re,\n reducer: c,\n actions: pe,\n utils: ae,\n documentModel: Y\n};\nexport {\n re as Document,\n u as ScopeFramework,\n pe as actions,\n Y as documentModel,\n ce as module,\n c as reducer,\n ae as utils,\n se as z\n};\n","import { jsxs as r, jsx as n } from \"react/jsx-runtime\";\nimport { useState as A, useEffect as k } from \"react\";\nimport { actions as i } from \"../../scope-framework.js\";\nimport { c as b, D as j, E as D, T as f, a as x, b as E } from \"../document-model-2/editor.js\";\nconst F = (t) => t.type !== \"Section\" && t.type !== \"Core\";\nfunction M(t) {\n const a = t.element.components, [e, l] = A(!1), c = () => l(!0), u = () => l(!1), p = (d) => {\n var m;\n return (m = t.onUpdateName) == null ? void 0 : m.call(t, t.element.id, d);\n }, S = () => {\n var d;\n return (d = t.onDelete) == null ? void 0 : d.call(t, t.element.id);\n }, g = (d) => {\n var m;\n [\"Scope\", \"Article\", \"Section\", \"Core\"].includes(d) && ((m = t.onUpdateType) == null || m.call(\n t,\n t.element.id,\n d\n ));\n }, v = (d) => {\n var m;\n (m = t.onUpdateComponents) == null || m.call(t, t.element.id, {\n content: d\n });\n }, N = {\n Scope: \"larger\",\n Article: \"large\",\n Section: \"medium\",\n Core: \"medium\",\n TypeSpecification: \"medium\"\n };\n return /* @__PURE__ */ r(\n \"div\",\n {\n className: F(t.element) ? \"atlas-element atlas-element--first\" : \"atlas-element\",\n onBlur: u,\n onFocus: c,\n children: [\n /* @__PURE__ */ r(\"div\", { className: \"atlas-element--header\", children: [\n /* @__PURE__ */ n(\"div\", { className: \"atlas-element--header-component atlas-element--path\", children: t.element.path }),\n /* @__PURE__ */ n(\"div\", { className: \"atlas-element--header-component atlas-element--type\", children: /* @__PURE__ */ n(\n b,\n {\n labelStyle: !0,\n onSubmit: g,\n size: \"smaller\",\n theme: t.mode,\n value: t.element.type || \"\"\n }\n ) }),\n /* @__PURE__ */ n(\"div\", { className: \"atlas-element--header-component atlas-element--name\", children: /* @__PURE__ */ n(\n b,\n {\n onEmpty: S,\n onSubmit: p,\n size: N[t.element.type || \"Section\"],\n theme: t.mode,\n value: t.element.name ?? \"\"\n }\n ) }),\n /* @__PURE__ */ n(\"div\", { className: \"atlas-element--header-component atlas-element--version\" }),\n /* @__PURE__ */ n(\"div\", { className: \"atlas-element--header-component atlas-element--icons\" })\n ] }),\n /* @__PURE__ */ n(\"div\", { className: \"atlas-element--componentsList\", children: /* @__PURE__ */ r(\"div\", { className: \"atlas-element--component\", children: [\n /* @__PURE__ */ n(\"div\", { className: \"atlas-element--componentLabel\", children: \"Content\" }),\n /* @__PURE__ */ n(\"div\", { className: \"atlas-element--componentInput\", children: /* @__PURE__ */ n(\n b,\n {\n onSubmit: v,\n theme: t.mode,\n value: a && \"content\" in a && a.content || \"\"\n }\n ) })\n ] }) })\n ]\n }\n );\n}\nconst C = () => Math.floor(Math.random() * Date.now()).toString(36), s = (t, a) => {\n t += \".\";\n let e = 0;\n const l = t.length;\n return a.filter((c) => c.startsWith(t)).forEach((c) => {\n const u = parseInt(c.slice(l).split(\".\", 2)[0]);\n u > e && (e = u);\n }), e;\n}, y = (t, a) => {\n const e = [t.state.global.rootPath], l = t.state.global.elements.map((c) => c.path);\n return a == \"Scope\" && e.push(s(e[0], l) + 1 + \"\"), a == \"Article\" && (e.push(s(e[0], l) + \"\"), e.push(s(e.join(\".\"), l) + 1 + \"\")), a == \"Section\" && (e.push(s(e[0], l) + \"\"), e.push(s(e.join(\".\"), l) + \"\"), e.push(s(e.join(\".\"), l) + 1 + \"\")), a == \"Core\" && (e.push(s(e[0], l) + \"\"), e.push(s(e.join(\".\"), l) + \"\"), e.push(s(e.join(\".\"), l) + \"\"), e.push(s(e.join(\".\"), l) + 1 + \"\")), e.join(\".\");\n};\nfunction L(t) {\n const { document: a, dispatch: e, context: l } = t;\n console.log(a);\n const {\n state: { global: c }\n } = a;\n k(() => {\n Object.values(a.operations).concat().length || e(i.setName(\"MakerDAO Atlas\"));\n }, []);\n const u = (o, h) => e(i.updateElementName({ id: o, name: h })), p = (o, h) => e(i.updateElementType({ id: o, type: h })), S = (o, h) => e(\n i.updateElementComponents({\n id: o,\n components: { content: h.content }\n })\n ), g = (o) => {\n const h = c.elements.filter((U) => U.id == o);\n h.length == 1 && h[0].type !== \"Scope\" && e(i.removeElement({ id: o }));\n }, v = () => {\n e(\n i.addElement({\n id: C(),\n type: \"Article\",\n path: y(a, \"Article\"),\n name: null,\n components: {\n content: null\n }\n })\n );\n }, N = () => {\n e(\n i.addElement({\n id: C(),\n type: \"Section\",\n path: y(a, \"Section\"),\n name: null,\n components: {\n content: null\n }\n })\n );\n }, d = () => {\n e(\n i.addElement({\n id: C(),\n type: \"Core\",\n path: y(a, \"Core\"),\n name: null,\n components: {\n content: null\n }\n })\n );\n }, m = (o) => {\n e(i.setName(o));\n }, T = (o) => {\n e(i.setRootPath({ newRootPath: o }));\n };\n return /* @__PURE__ */ r(j, { mode: l.theme, children: [\n /* @__PURE__ */ n(\n D,\n {\n center: [\n /* @__PURE__ */ n(f, { onClick: v, children: \"+ add article\" }, \"art\"),\n /* @__PURE__ */ n(f, { onClick: N, children: \"+ add section\" }, \"sct\"),\n /* @__PURE__ */ n(f, { onClick: d, children: \"+ add core\" }, \"cor\")\n ],\n left: [\n /* @__PURE__ */ n(f, { onClick: () => e(i.undo(1)), children: \"↺ undo\" }, \"undo\"),\n /* @__PURE__ */ n(f, { onClick: () => e(i.redo(1)), children: \"↻ redo\" }, \"redo\")\n ],\n right: [/* @__PURE__ */ n(f, { children: \"revision history\" }, \"rev\")]\n },\n \"toolbar\"\n ),\n /* @__PURE__ */ r(x, { children: [\n /* @__PURE__ */ r(\"div\", { className: \"editor-worksheet--header-left\", children: [\n /* @__PURE__ */ n(\n E,\n {\n onSubmit: m,\n size: \"huge\",\n theme: l.theme,\n value: a.name\n },\n \"doc-title\"\n ),\n /* @__PURE__ */ r(\"p\", { children: [\n \"Last Modified:\",\n \" \",\n a.lastModified.toString().slice(0, 16).replace(\"T\", \" \"),\n \" \",\n \"UTC – Version: \",\n a.revision.global\n ] }, \"lastModified\")\n ] }, \"header-left\"),\n /* @__PURE__ */ n(\"div\", { className: \"editor-worksheet--header-right\", children: /* @__PURE__ */ n(\n E,\n {\n onSubmit: T,\n size: \"medium\",\n theme: l.theme,\n value: c.rootPath\n },\n \"doc-title\"\n ) }, \"header-right\"),\n c.elements.map((o) => /* @__PURE__ */ n(\n M,\n {\n element: o,\n mode: t.context.theme,\n onDelete: g,\n onUpdateComponents: S,\n onUpdateName: u,\n onUpdateType: p\n },\n o.id\n )),\n l.debug ? /* @__PURE__ */ n(\n \"code\",\n {\n style: {\n maxWidth: \"60em\",\n margin: \"4em auto\",\n padding: \"2em 0\",\n display: \"block\",\n whiteSpace: \"pre-wrap\",\n fontFamily: \"monospace\",\n lineHeight: \"1.7\",\n borderTop: \"1px solid #aaa\"\n },\n children: JSON.stringify(a, null, 2)\n },\n \"stateView\"\n ) : \"\"\n ] }, \"sheet\")\n ] });\n}\nexport {\n L as default,\n C as randomId\n};\n"],"names":["B","H","n","e","o","I","A","t","E","O","S","h","F","R","v","M","k","y","g","f","b","_","T","w","C","q","r","l","a","i","K","p","c","X","ee","s","m","D","x","j","L","U","$","z","V","ne","P","d","u","G","te","oe","pe","J"],"mappings":"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"}
1
+ {"version":3,"file":"editor-BSjQci3v.js","sources":["../../../../packages/document-model-libs/dist/es/scope-framework.js","../../../../packages/document-model-libs/dist/es/editors/scope-framework/editor.js"],"sourcesContent":["var B = Object.defineProperty;\nvar H = (n, e, o) => e in n ? B(n, e, { enumerable: !0, configurable: !0, writable: !0, value: o }) : n[e] = o;\nvar I = (n, e, o) => H(n, typeof e != \"symbol\" ? e + \"\" : e, o);\nimport { utils as p, BaseDocument as P, applyMixins as G, actions as J } from \"document-model/document\";\nimport { z as t } from \"./document-models/account-snapshot.js\";\nconst Y = {\n id: \"makerdao/scope-framework\",\n name: \"ScopeFramework\",\n extension: \"mdsf\",\n description: \"The MakerDAO Scope Framework document contains articles, sections and other elements that make up the governance rules for the MakerDAO scopes.\",\n author: {\n name: \"MakerDAO\",\n website: \"https://www.makerdao.com/\"\n },\n specifications: [\n {\n version: 1,\n changeLog: [],\n modules: [\n {\n name: \"main\",\n operations: [\n {\n name: \"SetRootPath\",\n id: \"\",\n description: \"\",\n schema: `type SetRootPathInput {\n newRootPath: String!\n}`,\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\"\n },\n {\n name: \"AddElement\",\n id: \"\",\n description: \"\",\n schema: `type AddElementInput {\n id: String!\n path: String!\n type: ScopeFrameworkElementType!\n name: String\n components: ElementComponents\n}`,\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\"\n },\n {\n name: \"UpdateElementType\",\n id: \"\",\n description: \"\",\n schema: `type UpdateElementTypeInput {\n id: ID!\n type: ScopeFrameworkElementType!\n}`,\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\"\n },\n {\n name: \"UpdateElementName\",\n id: \"\",\n description: \"\",\n schema: `type UpdateElementNameInput {\n id: ID!\n name: String\n}`,\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\"\n },\n {\n name: \"UpdateElementComponents\",\n id: \"\",\n description: \"\",\n schema: `type UpdateElementComponentsInput {\n id: ID!\n components: ElementComponents\n}`,\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\"\n },\n {\n name: \"RemoveElement\",\n id: \"\",\n description: \"\",\n schema: `type RemoveElementInput {\n id: ID!\n}`,\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\"\n },\n {\n name: \"ReorderElements\",\n id: \"\",\n description: \"\",\n schema: `type ReorderElementsInput {\n parentElementId: ID!\n order: [ID!]!\n}`,\n template: \"\",\n reducer: \"\",\n examples: [],\n errors: [],\n scope: \"global\"\n },\n {\n name: \"MoveElement\",\n id: \"\",\n description: \"\",\n schema: `type MoveElementInput {\n id: ID!\n newParentId: ID!\n}`,\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: `type ScopeComponent {\n content: String\n}\n \ntype ArticleComponent {\n content: String\n}\n \ntype SectionComponent {\n content: String\n}\n \ntype CoreComponent {\n content: String\n}\n \nenum TypeSpecificationComponentCategory {\n Primary\n Supporting\n Immutable\n Accessory\n}\n \ntype TypeSpecificationComponent {\n name: String\n overview: String\n category: TypeSpecificationComponentCategory\n documentIdentifierRules: String\n typeAuthority: String\n additionalLogic: String\n}\n \nunion ElementComponents = \n ScopeComponent\n | ArticleComponent\n | SectionComponent\n | CoreComponent\n | TypeSpecificationComponent\n \nenum ScopeFrameworkElementType {\n Scope\n Article\n Section\n Core\n TypeSpecification\n}\n \ntype ScopeFrameworkElement {\n id: ID!\n path: String!\n version: Int!\n name: String\n type: ScopeFrameworkElementType\n components: ElementComponents\n}\n \ntype ScopeFrameworkState {\n rootPath: String!\n elements: [ScopeFrameworkElement!]!\n}`,\n initialValue: '\"{\\\\n \\\\\"rootPath\\\\\": \\\\\"A\\\\\",\\\\n \\\\\"elements\\\\\": [\\\\n {\\\\n \\\\\"id\\\\\": \\\\\"hruFam5ot7s0Gb1n+aIBa+y+NJA=\\\\\",\\\\n \\\\\"name\\\\\": \\\\\"Scope Name\\\\\",\\\\n \\\\\"version\\\\\": 1,\\\\n \\\\\"type\\\\\": \\\\\"Scope\\\\\",\\\\n \\\\\"path\\\\\": \\\\\"A.1\\\\\",\\\\n \\\\\"components\\\\\": {\\\\n \\\\\"content\\\\\": \\\\\"Scope description goes here.\\\\\"\\\\n }\\\\n }\\\\n ]\\\\n}\"',\n examples: []\n },\n local: {\n schema: \"type ScopeFrameworkLocalState\",\n initialValue: '\"{}\"',\n examples: []\n }\n }\n }\n ]\n}, A = (n) => n != null, Q = t.any().refine((n) => A(n)), E = t.enum([\n \"Article\",\n \"Core\",\n \"Scope\",\n \"Section\",\n \"TypeSpecification\"\n]), O = t.enum([\n \"Accessory\",\n \"Immutable\",\n \"Primary\",\n \"Supporting\"\n]);\nfunction S() {\n return t.object({\n __typename: t.literal(\"AddElementInput\").optional(),\n components: h().nullable(),\n id: t.string(),\n name: t.string().nullable(),\n path: t.string(),\n type: E\n });\n}\nfunction F() {\n return t.object({\n __typename: t.literal(\"ArticleComponent\").optional(),\n content: t.string().nullable()\n });\n}\nfunction R() {\n return t.object({\n __typename: t.literal(\"CoreComponent\").optional(),\n content: t.string().nullable()\n });\n}\nfunction h() {\n return t.union([\n F(),\n R(),\n v(),\n M(),\n k()\n ]);\n}\nfunction y() {\n return t.object({\n __typename: t.literal(\"MoveElementInput\").optional(),\n id: t.string(),\n newParentId: t.string()\n });\n}\nfunction g() {\n return t.object({\n __typename: t.literal(\"RemoveElementInput\").optional(),\n id: t.string()\n });\n}\nfunction f() {\n return t.object({\n __typename: t.literal(\"ReorderElementsInput\").optional(),\n order: t.array(t.string()),\n parentElementId: t.string()\n });\n}\nfunction v() {\n return t.object({\n __typename: t.literal(\"ScopeComponent\").optional(),\n content: t.string().nullable()\n });\n}\nfunction N() {\n return t.object({\n __typename: t.literal(\"ScopeFrameworkElement\").optional(),\n components: h().nullable(),\n id: t.string(),\n name: t.string().nullable(),\n path: t.string(),\n type: E.nullable(),\n version: t.number()\n });\n}\nfunction W() {\n return t.object({\n __typename: t.literal(\"ScopeFrameworkLocalState\").optional()\n });\n}\nfunction Z() {\n return t.object({\n __typename: t.literal(\"ScopeFrameworkState\").optional(),\n elements: t.array(N()),\n rootPath: t.string()\n });\n}\nfunction M() {\n return t.object({\n __typename: t.literal(\"SectionComponent\").optional(),\n content: t.string().nullable()\n });\n}\nfunction b() {\n return t.object({\n __typename: t.literal(\"SetRootPathInput\").optional(),\n newRootPath: t.string()\n });\n}\nfunction k() {\n return t.object({\n __typename: t.literal(\"TypeSpecificationComponent\").optional(),\n additionalLogic: t.string().nullable(),\n category: O.nullable(),\n documentIdentifierRules: t.string().nullable(),\n name: t.string().nullable(),\n overview: t.string().nullable(),\n typeAuthority: t.string().nullable()\n });\n}\nfunction _() {\n return t.object({\n __typename: t.literal(\"UpdateElementComponentsInput\").optional(),\n components: h().nullable(),\n id: t.string()\n });\n}\nfunction T() {\n return t.object({\n __typename: t.literal(\"UpdateElementNameInput\").optional(),\n id: t.string(),\n name: t.string().nullable()\n });\n}\nfunction w() {\n return t.object({\n __typename: t.literal(\"UpdateElementTypeInput\").optional(),\n id: t.string(),\n type: E\n });\n}\nconst se = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n AddElementInputSchema: S,\n ArticleComponentSchema: F,\n CoreComponentSchema: R,\n ElementComponentsSchema: h,\n MoveElementInputSchema: y,\n RemoveElementInputSchema: g,\n ReorderElementsInputSchema: f,\n ScopeComponentSchema: v,\n ScopeFrameworkElementSchema: N,\n ScopeFrameworkElementTypeSchema: E,\n ScopeFrameworkLocalStateSchema: W,\n ScopeFrameworkStateSchema: Z,\n SectionComponentSchema: M,\n SetRootPathInputSchema: b,\n TypeSpecificationComponentCategorySchema: O,\n TypeSpecificationComponentSchema: k,\n UpdateElementComponentsInputSchema: _,\n UpdateElementNameInputSchema: T,\n UpdateElementTypeInputSchema: w,\n definedNonNullAnySchema: Q,\n isDefinedNonNullAny: A\n}, Symbol.toStringTag, { value: \"Module\" })), C = (n) => n.split(\".\", 2)[0], q = (n, e) => {\n const o = n.split(\".\"), r = e.split(\".\"), l = Math.min(o.length, r.length);\n if (o[0] != r[0])\n return o[0] < r[0];\n for (let a = 1; a < l; a++)\n if (o[a] != r[a])\n return parseInt(o[a]) < parseInt(r[a]);\n return o.length < r.length;\n}, i = {\n setRootPathOperation(n, e) {\n if (!/^[A-Z]+$/.exec(e.input.newRootPath))\n throw new Error(\n `Invalid root path format ${e.input.newRootPath}. Use one or more capital letters: 'A', 'D', 'AQ', ...`\n );\n const r = n.rootPath + \".\", l = e.input.newRootPath + \".\";\n n.rootPath = e.input.newRootPath, n.elements = n.elements.map((a) => ({\n ...a,\n path: a.path.replace(r, l)\n }));\n },\n addElementOperation(n, e) {\n const o = [], r = {\n id: e.input.id,\n version: 1,\n path: e.input.path,\n type: e.input.type,\n name: e.input.name,\n components: e.input.components\n };\n if (C(r.path) != n.rootPath)\n throw new Error(\n `Cannot add element with root segment ${C(\n r.path\n )} to document with root path ${n.rootPath}`\n );\n let l = !1, a = null;\n for (; a = n.elements.shift(); ) {\n if (!l && q(r.path, a.path) && (o.push(r), l = !0), !l && r.path == a.path)\n throw new Error(\n `New element's path ${r.path} already exists.`\n );\n o.push(a);\n }\n l || o.push(r), n.elements = o;\n },\n updateElementTypeOperation(n, e) {\n n.elements.filter((o) => o.id == e.input.id).forEach((o) => {\n o.type = e.input.type;\n });\n },\n updateElementNameOperation(n, e) {\n n.elements.filter((o) => o.id == e.input.id).forEach((o) => {\n o.name = e.input.name;\n });\n },\n updateElementComponentsOperation(n, e) {\n n.elements.filter((o) => o.id == e.input.id).forEach((o) => {\n o.components = e.input.components;\n });\n },\n removeElementOperation(n, e) {\n const o = n.elements.filter((r) => r.id == e.input.id)[0];\n o && (n.elements = n.elements.filter(\n (r) => !r.path.startsWith(o.path)\n ));\n },\n reorderElementsOperation(n, e) {\n throw new Error('Reducer \"reorderElementsOperation\" not yet implemented');\n },\n moveElementOperation(n, e) {\n throw new Error('Reducer \"moveElementOperation\" not yet implemented');\n }\n}, K = (n, e, o) => {\n if (p.isBaseAction(e))\n return n;\n switch (e.type) {\n case \"SET_ROOT_PATH\":\n b().parse(e.input), i.setRootPathOperation(n[e.scope], e, o);\n break;\n case \"ADD_ELEMENT\":\n S().parse(e.input), i.addElementOperation(n[e.scope], e, o);\n break;\n case \"UPDATE_ELEMENT_TYPE\":\n w().parse(e.input), i.updateElementTypeOperation(\n n[e.scope],\n e,\n o\n );\n break;\n case \"UPDATE_ELEMENT_NAME\":\n T().parse(e.input), i.updateElementNameOperation(\n n[e.scope],\n e,\n o\n );\n break;\n case \"UPDATE_ELEMENT_COMPONENTS\":\n _().parse(e.input), i.updateElementComponentsOperation(\n n[e.scope],\n e,\n o\n );\n break;\n case \"REMOVE_ELEMENT\":\n g().parse(e.input), i.removeElementOperation(n[e.scope], e, o);\n break;\n case \"REORDER_ELEMENTS\":\n f().parse(e.input), i.reorderElementsOperation(\n n[e.scope],\n e,\n o\n );\n break;\n case \"MOVE_ELEMENT\":\n y().parse(e.input), i.moveElementOperation(n[e.scope], e, o);\n break;\n default:\n return n;\n }\n}, c = p.createReducer(K), X = {\n rootPath: \"A\",\n elements: [\n {\n id: \"hruFam5ot7s0Gb1n+aIBa+y+NJA=\",\n name: \"Scope Name\",\n version: 1,\n type: \"Scope\",\n path: \"A.1\",\n components: {\n content: \"Scope description goes here.\"\n }\n }\n ]\n}, ee = {}, s = {\n fileExtension: \"mdsf\",\n createState(n) {\n return {\n global: { ...X, ...n == null ? void 0 : n.global },\n local: { ...ee, ...n == null ? void 0 : n.local }\n };\n },\n createExtendedState(n) {\n return p.createExtendedState(\n { ...n, documentType: \"makerdao/scope-framework\" },\n s.createState\n );\n },\n createDocument(n) {\n return p.createDocument(\n s.createExtendedState(n),\n s.createState\n );\n },\n saveToFile(n, e, o) {\n return p.saveToFile(n, e, \"mdsf\", o);\n },\n saveToFileHandle(n, e) {\n return p.saveToFileHandle(n, e);\n },\n loadFromFile(n) {\n return p.loadFromFile(n, c);\n },\n loadFromInput(n) {\n return p.loadFromInput(n, c);\n }\n}, { createAction: m } = p, D = (n) => m(\n \"SET_ROOT_PATH\",\n { ...n },\n void 0,\n b,\n \"global\"\n), x = (n) => m(\n \"ADD_ELEMENT\",\n { ...n },\n void 0,\n S,\n \"global\"\n), j = (n) => m(\n \"UPDATE_ELEMENT_TYPE\",\n { ...n },\n void 0,\n w,\n \"global\"\n), L = (n) => m(\n \"UPDATE_ELEMENT_NAME\",\n { ...n },\n void 0,\n T,\n \"global\"\n), U = (n) => m(\n \"UPDATE_ELEMENT_COMPONENTS\",\n { ...n },\n void 0,\n _,\n \"global\"\n), $ = (n) => m(\n \"REMOVE_ELEMENT\",\n { ...n },\n void 0,\n g,\n \"global\"\n), z = (n) => m(\n \"REORDER_ELEMENTS\",\n { ...n },\n void 0,\n f,\n \"global\"\n), V = (n) => m(\n \"MOVE_ELEMENT\",\n { ...n },\n void 0,\n y,\n \"global\"\n);\nclass ne extends P {\n setRootPath(e) {\n return this.dispatch(D(e));\n }\n addElement(e) {\n return this.dispatch(x(e));\n }\n updateElementType(e) {\n return this.dispatch(j(e));\n }\n updateElementName(e) {\n return this.dispatch(L(e));\n }\n updateElementComponents(e) {\n return this.dispatch(U(e));\n }\n removeElement(e) {\n return this.dispatch($(e));\n }\n reorderElements(e) {\n return this.dispatch(z(e));\n }\n moveElement(e) {\n return this.dispatch(V(e));\n }\n}\nconst d = class d extends P {\n constructor(e, o) {\n super(c, s.createDocument(e), o);\n }\n saveToFile(e, o) {\n return super.saveToFile(e, d.fileExtension, o);\n }\n loadFromFile(e) {\n return super.loadFromFile(e);\n }\n static async fromFile(e) {\n const o = new this();\n return await o.loadFromFile(e), o;\n }\n};\nI(d, \"fileExtension\", \"mdsf\");\nlet u = d;\nG(u, [ne]);\nconst te = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n addElement: x,\n moveElement: V,\n removeElement: $,\n reorderElements: z,\n setRootPath: D,\n updateElementComponents: U,\n updateElementName: L,\n updateElementType: j\n}, Symbol.toStringTag, { value: \"Module\" })), oe = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null\n}, Symbol.toStringTag, { value: \"Module\" })), re = u, ae = { ...s, ...oe }, pe = { ...J, ...te }, ce = {\n Document: re,\n reducer: c,\n actions: pe,\n utils: ae,\n documentModel: Y\n};\nexport {\n re as Document,\n u as ScopeFramework,\n pe as actions,\n Y as documentModel,\n ce as module,\n c as reducer,\n ae as utils,\n se as z\n};\n","import { jsxs as r, jsx as n } from \"react/jsx-runtime\";\nimport { useState as A, useEffect as k } from \"react\";\nimport { actions as i } from \"../../scope-framework.js\";\nimport { c as b, D as j, E as D, T as f, a as x, b as E } from \"../document-model-2/editor.js\";\nconst F = (t) => t.type !== \"Section\" && t.type !== \"Core\";\nfunction M(t) {\n const a = t.element.components, [e, l] = A(!1), c = () => l(!0), u = () => l(!1), p = (d) => {\n var m;\n return (m = t.onUpdateName) == null ? void 0 : m.call(t, t.element.id, d);\n }, S = () => {\n var d;\n return (d = t.onDelete) == null ? void 0 : d.call(t, t.element.id);\n }, g = (d) => {\n var m;\n [\"Scope\", \"Article\", \"Section\", \"Core\"].includes(d) && ((m = t.onUpdateType) == null || m.call(\n t,\n t.element.id,\n d\n ));\n }, v = (d) => {\n var m;\n (m = t.onUpdateComponents) == null || m.call(t, t.element.id, {\n content: d\n });\n }, N = {\n Scope: \"larger\",\n Article: \"large\",\n Section: \"medium\",\n Core: \"medium\",\n TypeSpecification: \"medium\"\n };\n return /* @__PURE__ */ r(\n \"div\",\n {\n className: F(t.element) ? \"atlas-element atlas-element--first\" : \"atlas-element\",\n onBlur: u,\n onFocus: c,\n children: [\n /* @__PURE__ */ r(\"div\", { className: \"atlas-element--header\", children: [\n /* @__PURE__ */ n(\"div\", { className: \"atlas-element--header-component atlas-element--path\", children: t.element.path }),\n /* @__PURE__ */ n(\"div\", { className: \"atlas-element--header-component atlas-element--type\", children: /* @__PURE__ */ n(\n b,\n {\n labelStyle: !0,\n onSubmit: g,\n size: \"smaller\",\n theme: t.mode,\n value: t.element.type || \"\"\n }\n ) }),\n /* @__PURE__ */ n(\"div\", { className: \"atlas-element--header-component atlas-element--name\", children: /* @__PURE__ */ n(\n b,\n {\n onEmpty: S,\n onSubmit: p,\n size: N[t.element.type || \"Section\"],\n theme: t.mode,\n value: t.element.name ?? \"\"\n }\n ) }),\n /* @__PURE__ */ n(\"div\", { className: \"atlas-element--header-component atlas-element--version\" }),\n /* @__PURE__ */ n(\"div\", { className: \"atlas-element--header-component atlas-element--icons\" })\n ] }),\n /* @__PURE__ */ n(\"div\", { className: \"atlas-element--componentsList\", children: /* @__PURE__ */ r(\"div\", { className: \"atlas-element--component\", children: [\n /* @__PURE__ */ n(\"div\", { className: \"atlas-element--componentLabel\", children: \"Content\" }),\n /* @__PURE__ */ n(\"div\", { className: \"atlas-element--componentInput\", children: /* @__PURE__ */ n(\n b,\n {\n onSubmit: v,\n theme: t.mode,\n value: a && \"content\" in a && a.content || \"\"\n }\n ) })\n ] }) })\n ]\n }\n );\n}\nconst C = () => Math.floor(Math.random() * Date.now()).toString(36), s = (t, a) => {\n t += \".\";\n let e = 0;\n const l = t.length;\n return a.filter((c) => c.startsWith(t)).forEach((c) => {\n const u = parseInt(c.slice(l).split(\".\", 2)[0]);\n u > e && (e = u);\n }), e;\n}, y = (t, a) => {\n const e = [t.state.global.rootPath], l = t.state.global.elements.map((c) => c.path);\n return a == \"Scope\" && e.push(s(e[0], l) + 1 + \"\"), a == \"Article\" && (e.push(s(e[0], l) + \"\"), e.push(s(e.join(\".\"), l) + 1 + \"\")), a == \"Section\" && (e.push(s(e[0], l) + \"\"), e.push(s(e.join(\".\"), l) + \"\"), e.push(s(e.join(\".\"), l) + 1 + \"\")), a == \"Core\" && (e.push(s(e[0], l) + \"\"), e.push(s(e.join(\".\"), l) + \"\"), e.push(s(e.join(\".\"), l) + \"\"), e.push(s(e.join(\".\"), l) + 1 + \"\")), e.join(\".\");\n};\nfunction L(t) {\n const { document: a, dispatch: e, context: l } = t;\n console.log(a);\n const {\n state: { global: c }\n } = a;\n k(() => {\n Object.values(a.operations).concat().length || e(i.setName(\"MakerDAO Atlas\"));\n }, []);\n const u = (o, h) => e(i.updateElementName({ id: o, name: h })), p = (o, h) => e(i.updateElementType({ id: o, type: h })), S = (o, h) => e(\n i.updateElementComponents({\n id: o,\n components: { content: h.content }\n })\n ), g = (o) => {\n const h = c.elements.filter((U) => U.id == o);\n h.length == 1 && h[0].type !== \"Scope\" && e(i.removeElement({ id: o }));\n }, v = () => {\n e(\n i.addElement({\n id: C(),\n type: \"Article\",\n path: y(a, \"Article\"),\n name: null,\n components: {\n content: null\n }\n })\n );\n }, N = () => {\n e(\n i.addElement({\n id: C(),\n type: \"Section\",\n path: y(a, \"Section\"),\n name: null,\n components: {\n content: null\n }\n })\n );\n }, d = () => {\n e(\n i.addElement({\n id: C(),\n type: \"Core\",\n path: y(a, \"Core\"),\n name: null,\n components: {\n content: null\n }\n })\n );\n }, m = (o) => {\n e(i.setName(o));\n }, T = (o) => {\n e(i.setRootPath({ newRootPath: o }));\n };\n return /* @__PURE__ */ r(j, { mode: l.theme, children: [\n /* @__PURE__ */ n(\n D,\n {\n center: [\n /* @__PURE__ */ n(f, { onClick: v, children: \"+ add article\" }, \"art\"),\n /* @__PURE__ */ n(f, { onClick: N, children: \"+ add section\" }, \"sct\"),\n /* @__PURE__ */ n(f, { onClick: d, children: \"+ add core\" }, \"cor\")\n ],\n left: [\n /* @__PURE__ */ n(f, { onClick: () => e(i.undo(1)), children: \"↺ undo\" }, \"undo\"),\n /* @__PURE__ */ n(f, { onClick: () => e(i.redo(1)), children: \"↻ redo\" }, \"redo\")\n ],\n right: [/* @__PURE__ */ n(f, { children: \"revision history\" }, \"rev\")]\n },\n \"toolbar\"\n ),\n /* @__PURE__ */ r(x, { children: [\n /* @__PURE__ */ r(\"div\", { className: \"editor-worksheet--header-left\", children: [\n /* @__PURE__ */ n(\n E,\n {\n onSubmit: m,\n size: \"huge\",\n theme: l.theme,\n value: a.name\n },\n \"doc-title\"\n ),\n /* @__PURE__ */ r(\"p\", { children: [\n \"Last Modified:\",\n \" \",\n a.lastModified.toString().slice(0, 16).replace(\"T\", \" \"),\n \" \",\n \"UTC – Version: \",\n a.revision.global\n ] }, \"lastModified\")\n ] }, \"header-left\"),\n /* @__PURE__ */ n(\"div\", { className: \"editor-worksheet--header-right\", children: /* @__PURE__ */ n(\n E,\n {\n onSubmit: T,\n size: \"medium\",\n theme: l.theme,\n value: c.rootPath\n },\n \"doc-title\"\n ) }, \"header-right\"),\n c.elements.map((o) => /* @__PURE__ */ n(\n M,\n {\n element: o,\n mode: t.context.theme,\n onDelete: g,\n onUpdateComponents: S,\n onUpdateName: u,\n onUpdateType: p\n },\n o.id\n )),\n l.debug ? /* @__PURE__ */ n(\n \"code\",\n {\n style: {\n maxWidth: \"60em\",\n margin: \"4em auto\",\n padding: \"2em 0\",\n display: \"block\",\n whiteSpace: \"pre-wrap\",\n fontFamily: \"monospace\",\n lineHeight: \"1.7\",\n borderTop: \"1px solid #aaa\"\n },\n children: JSON.stringify(a, null, 2)\n },\n \"stateView\"\n ) : \"\"\n ] }, \"sheet\")\n ] });\n}\nexport {\n L as default,\n C as randomId\n};\n"],"names":["B","H","n","e","o","I","A","t","E","O","S","h","F","R","v","M","k","y","g","f","b","_","T","w","C","q","r","l","a","i","K","p","c","X","ee","s","m","D","x","j","L","U","$","z","V","ne","P","d","u","G","te","oe","pe","J"],"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.CqyrPdgE.js";import{jsxs as h,jsx as n}from"react/jsx-runtime";import{bH as u}from"./app-DVu2OIYO.js";import{useState as f,useEffect as d}from"react";import{P as b}from"./json-BK2P0vCl.js";import{D as v,E as S,T as c,a as y,b as E}from"./editor-DzksqT6J.js";import"./app-loader-DqWwQ81E.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-CD3DIxJK.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-CD3DIxJK.js"}
@@ -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{bR as n,bl as m,bS as je,bH as Ne,bT as g}from"./app-DVu2OIYO.js";import{useMemo as Re,useState as Fe}from"react";import"./main.CqyrPdgE.js";import"./app-loader-DqWwQ81E.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(()=>W().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 H(){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 W(){return n.object({id:n.string().nullish(),ref:n.string().nullish(),roleLabel:n.string().nullish(),username:n.string().nullish()})}function q(){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(()=>W().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}},He=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 We(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(We(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))}},qe=(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":q().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":H().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(qe),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,q,"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,H,"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,...He});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-CLU5aaxL.js.map