import{a as v,b as w,c as F,d as j,e as b,f as U}from"./chunk-LWEJIVJC.js";import{a as n}from"./chunk-PF3UOPAN.js";import{d as O}from"./chunk-FXP6H2SW.js";import{q as i,r as h,s as u,t as T}from"./chunk-4JIDR3PG.js";import{ia as f,l as s,na as g,s as c}from"./chunk-4WV7RGK3.js";import{a as S,b as m,i as l}from"./chunk-BAF7YKD7.js";var p,k={todos:{},selectedTodoId:null},d=class y{static{p=this}static get(t){return u([p],o=>{let e=o.todos[t];return e||null})}static listByParentId(t){return u([p],o=>Object.values(o.todos).filter(a=>a.parentId===t))}static todos(t){return Object.values(t.todos)}static selectedTodo(t){let o=Object.values(t.todos),e=t.todos[t.selectedTodoId||""];return m(S({},e),{children:o.filter(a=>a.parentId===e?.id)})}static newestTodoId(t){let o=Object.keys(t.todos),e=o[o.length-1];return t.todos[e]?.id}static getType(t){return u([p.todos],o=>o.filter(e=>e.todoType===t))}constructor(t){this.apiService=t}listTodosForUpload(t,o){return l(this,null,function*(){let a=(yield c(this.apiService.listTodosForUpload({uploadId:o.payload.uploadId}))).reduce((r,I)=>m(S({},r),{[I.id]:I}),{});t.patchState({todos:a})})}setSelectedTodoId(t,o){return l(this,null,function*(){t.patchState({selectedTodoId:o.payload.todoId})})}createTodo(t,o){return l(this,null,function*(){let e=yield c(this.apiService.createTodo(o.payload.todo)),a=n(t.getState(),r=>{r.todos[e.id]=e});t.setState(a)})}updateTodo(t,o){return l(this,null,function*(){let e=yield c(this.apiService.updateTodo(o.payload.id,o.payload.todo)),a=n(t.getState(),r=>{r.todos[e.id]=e});t.setState(a)})}createTerugmeldingForTodo(t,o){return l(this,null,function*(){let e=yield c(this.apiService.createTerugmelding(o.payload.uploadId,o.payload.todoId)),a=n(t.getState(),r=>{r.todos[e.id]=e});t.setState(a)})}deleteTodo(t,o){return l(this,null,function*(){yield c(this.apiService.deleteTodo(o.payload.uploadId,o.payload.todoId));let e=n(t.getState(),a=>{delete a.todos[o.payload.todoId]});t.setState(e)})}static{this.\u0275fac=function(o){return new(o||y)(g(O))}}static{this.\u0275prov=f({token:y,factory:y.\u0275fac})}};s([i(v)],d.prototype,"listTodosForUpload",null);s([i(w)],d.prototype,"setSelectedTodoId",null);s([i(F)],d.prototype,"createTodo",null);s([i(b)],d.prototype,"updateTodo",null);s([i(U)],d.prototype,"createTerugmeldingForTodo",null);s([i(j)],d.prototype,"deleteTodo",null);s([T([d])],d,"todos",null);s([T([d])],d,"selectedTodo",null);s([T([d])],d,"newestTodoId",null);d=p=s([h({name:"todos",defaults:k})],d);export{d as a};
//# sourceMappingURL=chunk-MBEWFYFT.js.map