@overmap-ai/core 2.0.5 → 2.0.6-comment-attachment-improvements.1

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 (52) hide show
  1. package/dist/overmap-core.js +5451 -5137
  2. package/dist/overmap-core.umd.cjs +6 -6
  3. package/dist/sdk/services/AssetCommentAttachmentService.d.ts +31 -0
  4. package/dist/sdk/services/FormSubmissionCommentAttachmentService.d.ts +31 -0
  5. package/dist/sdk/services/IssueCommentAttachmentService.d.ts +1 -0
  6. package/dist/sdk/services/IssueUpdateService.d.ts +4 -0
  7. package/dist/sdk/services/index.d.ts +2 -0
  8. package/dist/store/reducers.d.ts +6 -0
  9. package/dist/store/slices/assetCommentAttachmentSlice.d.ts +22 -0
  10. package/dist/store/slices/assetSlice.d.ts +2 -0
  11. package/dist/store/slices/assetTypeFieldValuesAttachmentSlice.d.ts +2 -0
  12. package/dist/store/slices/assetTypeFieldValuesSlice.d.ts +2 -0
  13. package/dist/store/slices/assetTypeFieldsAttachmentSlice.d.ts +2 -0
  14. package/dist/store/slices/assetTypeFieldsSlice.d.ts +2 -0
  15. package/dist/store/slices/assetTypeStatusSlice.d.ts +2 -0
  16. package/dist/store/slices/emailDomainsSlice.d.ts +2 -0
  17. package/dist/store/slices/formRevisionAttachmentSlice.d.ts +2 -0
  18. package/dist/store/slices/formRevisionSlice.d.ts +2 -0
  19. package/dist/store/slices/formSlice.d.ts +2 -0
  20. package/dist/store/slices/formSubmissionCommentAttachmentSlice.d.ts +22 -0
  21. package/dist/store/slices/geoImageSlice.d.ts +2 -0
  22. package/dist/store/slices/index.d.ts +2 -0
  23. package/dist/store/slices/issueAssociationSlice.d.ts +2 -0
  24. package/dist/store/slices/issueTypeFieldValuesAttachmentSlice.d.ts +2 -0
  25. package/dist/store/slices/issueTypeFieldValuesSlice.d.ts +2 -0
  26. package/dist/store/slices/issueTypeFieldsAttachmentSlice.d.ts +2 -0
  27. package/dist/store/slices/issueTypeFieldsSlice.d.ts +2 -0
  28. package/dist/store/slices/issueTypePrioritySlice.d.ts +2 -0
  29. package/dist/store/slices/issueTypeStatusSlice.d.ts +2 -0
  30. package/dist/store/slices/issueUpdateSlice.d.ts +6 -0
  31. package/dist/store/slices/organizationSlice.d.ts +2 -0
  32. package/dist/store/slices/procedureFieldValuesSlice.d.ts +2 -0
  33. package/dist/store/slices/procedureStepAssigneeSlice.d.ts +2 -0
  34. package/dist/store/slices/procedureStepCommentSlice.d.ts +2 -0
  35. package/dist/store/slices/procedureStepDefaultAssigneeSlice.d.ts +2 -0
  36. package/dist/store/slices/procedureStepDefaultReviewerSlice.d.ts +2 -0
  37. package/dist/store/slices/procedureStepEventSlice.d.ts +2 -0
  38. package/dist/store/slices/procedureStepFieldValuesAttachmentSlice.d.ts +2 -0
  39. package/dist/store/slices/procedureStepFieldValuesReviewSlice.d.ts +2 -0
  40. package/dist/store/slices/procedureStepFieldValuesSlice.d.ts +2 -0
  41. package/dist/store/slices/procedureStepFieldsAttachmentSlice.d.ts +2 -0
  42. package/dist/store/slices/procedureStepFieldsSlice.d.ts +4 -0
  43. package/dist/store/slices/procedureStepReviewerSlice.d.ts +2 -0
  44. package/dist/store/slices/procedureStepSlice.d.ts +2 -0
  45. package/dist/store/slices/procedureTypeAttachmentSlice.d.ts +2 -0
  46. package/dist/store/slices/procedureTypeFieldValuesAttachmentSlice.d.ts +2 -0
  47. package/dist/store/slices/procedureTypeFieldsAttachmentSlice.d.ts +2 -0
  48. package/dist/store/slices/projectFileSlice.d.ts +2 -0
  49. package/dist/store/slices/projectSlice.d.ts +2 -0
  50. package/dist/store/slices/reportSlice.d.ts +2 -0
  51. package/dist/store/slices/userSlice.d.ts +2 -0
  52. package/package.json +3 -3
@@ -1,14 +1,14 @@
1
- (function(s,l){typeof exports=="object"&&typeof module<"u"?l(exports,require("@overmap-ai/common"),require("@redux-offline/redux-offline/lib/types"),require("@reduxjs/toolkit"),require("superagent"),require("uuid"),require("@redux-offline/redux-offline"),require("@redux-offline/redux-offline/lib/defaults"),require("localforage"),require("idb"),require("jwt-decode"),require("dependency-graph")):typeof define=="function"&&define.amd?define(["exports","@overmap-ai/common","@redux-offline/redux-offline/lib/types","@reduxjs/toolkit","superagent","uuid","@redux-offline/redux-offline","@redux-offline/redux-offline/lib/defaults","localforage","idb","jwt-decode","dependency-graph"],l):(s=typeof globalThis<"u"?globalThis:s||self,l(s["overmap-core"]={},s.common,null,s.toolkit,s.request,s.uuid,s.reduxOffline,s.offlineConfig,s.localforage,s.idb,s.jwtDecode,s.dependencyGraph))})(this,(function(s,l,CR,u,mt,rt,UF,mn,kF,LF,HF,GF){"use strict";const fn=["created_at","updated_at","index","revision"];var o=(t=>(t.GET="GET",t.POST="POST",t.PATCH="PATCH",t.PUT="PUT",t.DELETE="DELETE",t))(o||{});function O(t){return{addOne:(f,A)=>{const I=t(A.payload);I in f.instances||(f.instances[I]=A.payload)},addMany:(f,A)=>{for(const I of A.payload){const S=t(I);S in f.instances||(f.instances[S]=I)}},updateOne:(f,A)=>{const I=t(A.payload);I in f.instances&&(f.instances[I]=A.payload)},setMany:(f,A)=>{for(const I of A.payload){const S=t(I);f.instances[S]=I}},setOne:(f,A)=>{const I=t(A.payload);f.instances[I]=A.payload},updateMany:(f,A)=>{for(const I of A.payload){const S=t(I);S in f.instances&&(f.instances[S]=I)}},deleteOne:(f,A)=>{delete f.instances[A.payload]},deleteMany:(f,A)=>{for(const I of A.payload)delete f.instances[I]},initialize:(f,A)=>{f.instances={};const I=new Set;for(const S of A.payload){const P=t(S);I.add(P),f.instances[P]=S}I.size!==A.payload.length&&console.warn("duplicate ids detected when initializing model instances.")}}}function NF(t){return{initializeSelection:(p,h)=>{p[t]=Array.from(new Set(h.payload))},selectOne:(p,h)=>{console.debug(p,p[t]),!new Set(p[t]).has(h.payload)&&p[t].push(h.payload)},selectMany:(p,h)=>{const f=new Set(p[t]);for(const A of h.payload)f.has(A)||f.add(A);p[t]=Array.from(f)},unselectOne:(p,h)=>{const f=new Set(p[t]);f.has(h.payload)&&(f.delete(h.payload),p[t]=Array.from(f))},unselectMany:(p,h)=>{const f=new Set(p[t]);for(const A of h.payload)f.has(A)&&f.delete(A);p[t]=Array.from(f)},toggleOne:(p,h)=>{const f=new Set(p[t]);f.has(h.payload)?f.delete(h.payload):f.add(h.payload),p[t]=Array.from(f)},toggleMany:(p,h)=>{const f=new Set(p[t]);for(const A of h.payload)f.has(A)?f.delete(A):f.add(A);p[t]=Array.from(f)}}}const T=u.createAction("RESET"),E=u.createAction("RESET_PROJECT_STATE"),b=u.createAction("RESET_ORGANIZATION_STATE"),y=(t=>(...e)=>i=>t(i,...e)),$=O(t=>t.uuid),Sn={instances:{}},rs=u.createSlice({name:"agents",initialState:Sn,extraReducers:t=>t.addMatcher(u.isAnyOf(T,E,b),e=>Object.assign(e,Sn)),reducers:{initializeConversations:$.initialize,addConversation:$.addOne,addConversations:$.addMany,setConversation:$.setOne,setConversations:$.setMany,updateConversation:$.updateOne,updateConversations:$.updateMany,deleteConversation:$.deleteOne,deleteConversations:$.deleteMany}}),{initializeConversations:An,addConversation:Tn,addConversations:KF,setConversation:In,setConversations:WF,updateConversation:On,updateConversations:XF,deleteConversation:YF,deleteConversations:ZF}=rs.actions,ds=t=>t.agentsReducer.instances,JF=u.createSelector([ds],t=>Object.values(t)),QF=y(u.createSelector([ds,(t,e)=>e],(t,e)=>t[e])),Pn=rs.reducer,U=O(t=>t.uuid),bn={instances:{}},us=u.createSlice({name:"assetAttachments",initialState:bn,extraReducers:t=>t.addMatcher(u.isAnyOf(T,E,b),e=>Object.assign(e,bn)),reducers:{initializeAssetAttachments:U.initialize,addAssetAttachment:U.addOne,addAssetAttachments:U.addMany,setAssetAttachment:U.setOne,setAssetAttachments:U.setMany,updateAssetAttachment:U.updateOne,updateAssetAttachments:U.updateMany,deleteAssetAttachment:U.deleteOne,deleteAssetAttachments:U.deleteMany}}),{initializeAssetAttachments:Fn,addAssetAttachment:_n,addAssetAttachments:ls,setAssetAttachment:Mn,setAssetAttachments:gn,updateAssetAttachment:Rn,updateAssetAttachments:wn,deleteAssetAttachment:En,deleteAssetAttachments:os}=us.actions,vn=t=>t.assetAttachmentReducer.instances,hs=u.createSelector([vn],t=>Object.values(t)),Vn=t=>e=>e.assetAttachmentReducer.instances[t],Bn=y(u.createSelector([hs,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),zn=y(u.createSelector([hs,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(({asset:i})=>e===i)))),jn=us.reducer,k=O(t=>t.uuid),Dn={instances:{}},ps=u.createSlice({name:"assetComments",initialState:Dn,extraReducers:t=>t.addMatcher(u.isAnyOf(T,E,b),e=>Object.assign(e,Dn)),reducers:{initializeAssetComments:k.initialize,addAssetComment:k.addOne,addAssetComments:k.addMany,setAssetComment:k.setOne,setAssetComments:k.setMany,updateAssetComment:k.updateOne,updateAssetComments:k.updateMany,deleteAssetComment:k.deleteOne,deleteAssetComments:k.deleteMany}}),{initializeAssetComments:Cn,addAssetComment:qn,addAssetComments:zt,setAssetComment:$n,setAssetComments:Un,updateAssetComment:kn,updateAssetComments:Ln,deleteAssetComment:Hn,deleteAssetComments:jt}=ps.actions,Gn=t=>t.assetCommentReducer.instances,Dt=u.createSelector([Gn],t=>l.fallbackToEmptyArray(Object.values(t).toSorted(l.submittedAtModelSortFn))),Nn=t=>e=>e.assetCommentReducer.instances[t],Kn=y(u.createSelector([Dt,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),Wn=y(u.createSelector([Dt,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.asset===e)))),Xn=y(u.createSelector([Dt,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(a=>i.has(a.asset)))})),Yn=ps.reducer,L=O(t=>t.uuid),Zn={instances:{}},ys=u.createSlice({name:"assets",initialState:Zn,extraReducers:t=>t.addMatcher(u.isAnyOf(T,E,b),e=>Object.assign(e,Zn)),reducers:{initializeAssets:L.initialize,addAsset:L.addOne,addAssets:L.addMany,setAsset:L.setOne,setAssets:L.setMany,updateAsset:L.updateOne,updateAssets:L.updateMany,deleteAsset:L.deleteOne,deleteAssets:L.deleteMany}}),{initializeAssets:Jn,addAsset:Qn,addAssets:ms,updateAsset:xn,updateAssets:ec,deleteAsset:tc,deleteAssets:fs,setAsset:sc,setAssets:ic}=ys.actions,ac=t=>t.assetReducer.instances,Ct=u.createSelector([ac],t=>l.fallbackToEmptyArray(Object.values(t))),xF=y(u.createSelector([Ct,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(({project:i})=>i===e)))),nc=y(u.createSelector([Ct,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.asset_type===e)))),cc=t=>e=>e.assetReducer.instances[t],rc=y(u.createSelector([Ct,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),dc=ys.reducer,H=O(t=>t.uuid),uc={instances:{}},Ss=u.createSlice({name:"assetTypeAttachments",initialState:uc,extraReducers:t=>t.addMatcher(u.isAnyOf(T,b),e=>Object.assign(e,uc)),reducers:{initializeAssetTypeAttachments:H.initialize,addAssetTypeAttachment:H.addOne,addAssetTypeAttachments:H.addMany,setAssetTypeAttachment:H.setOne,setAssetTypeAttachments:H.setMany,updateAssetTypeAttachment:H.updateOne,updateAssetTypeAttachments:H.updateMany,deleteAssetTypeAttachment:H.deleteOne,deleteAssetTypeAttachments:H.deleteMany}}),{initializeAssetTypeAttachments:lc,addAssetTypeAttachment:oc,addAssetTypeAttachments:As,setAssetTypeAttachment:hc,setAssetTypeAttachments:pc,updateAssetTypeAttachment:yc,updateAssetTypeAttachments:mc,deleteAssetTypeAttachment:fc,deleteAssetTypeAttachments:Ts}=Ss.actions,Sc=t=>t.assetTypeAttachmentReducer.instances,Is=u.createSelector([Sc],t=>Object.values(t)),Ac=t=>e=>e.assetTypeAttachmentReducer.instances[t],Tc=y(u.createSelector([Is,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),Ic=y(u.createSelector([Is,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(({asset_type:i})=>e===i)))),Oc=Ss.reducer,G=O(t=>t.uuid),Pc={instances:{}},Os=u.createSlice({name:"assetTypeFieldsAttachments",initialState:Pc,extraReducers:t=>t.addMatcher(u.isAnyOf(T,b),e=>Object.assign(e,Pc)),reducers:{initializeAssetTypeFieldsAttachments:G.initialize,addAssetTypeFieldsAttachment:G.addOne,addAssetTypeFieldsAttachments:G.addMany,setAssetTypeFieldsAttachment:G.setOne,setAssetTypeFieldsAttachments:G.setMany,updateAssetTypeFieldsAttachment:G.updateOne,updateAssetTypeFieldsAttachments:G.updateMany,deleteAssetTypeFieldsAttachment:G.deleteOne,deleteAssetTypeFieldsAttachments:G.deleteMany}}),{initializeAssetTypeFieldsAttachments:bc,addAssetTypeFieldsAttachment:Fc,addAssetTypeFieldsAttachments:_c,setAssetTypeFieldsAttachment:Mc,setAssetTypeFieldsAttachments:gc,updateAssetTypeFieldsAttachment:Rc,updateAssetTypeFieldsAttachments:wc,deleteAssetTypeFieldsAttachment:Ec,deleteAssetTypeFieldsAttachments:vc}=Os.actions,Vc=t=>t.assetTypeFieldsAttachmentReducer.instances,Ps=u.createSelector([Vc],t=>Object.values(t)),e_=y(u.createSelector([Ps,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.fields_revision===e)))),Bc=t=>e=>e.assetTypeFieldsAttachmentReducer.instances[t],zc=y(u.createSelector([Ps,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),jc=Os.reducer,N=O(t=>t.uuid),Dc={instances:{}},bs=u.createSlice({name:"assetTypeFields",initialState:Dc,extraReducers:t=>t.addMatcher(u.isAnyOf(T,b),e=>Object.assign(e,Dc)),reducers:{initializeAssetTypeFields:N.initialize,addAssetTypeFields:N.addOne,addAssetTypeFieldsMany:N.addMany,setAssetTypeFields:N.setOne,setAssetTypeFieldsMany:N.setMany,updateAssetTypeFields:N.updateOne,updateAssetTypeFieldsMany:N.updateMany,deleteAssetTypeFields:N.deleteOne,deleteAssetTypeFieldsMany:N.deleteMany}}),{initializeAssetTypeFields:Cc,addAssetTypeFields:qc,addAssetTypeFieldsMany:$c,setAssetTypeFields:Uc,setAssetTypeFieldsMany:kc,updateAssetTypeFields:Lc,updateAssetTypeFieldsMany:Hc,deleteAssetTypeFields:Gc,deleteAssetTypeFieldsMany:Nc}=bs.actions,Kc=t=>t.assetTypeFieldsReducer.instances,Ft=u.createSelector([Kc],t=>Object.values(t)),t_=y(u.createSelector([Ft,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.asset_type===e)))),s_=y(u.createSelector([Ft,(t,e)=>e],(t,e)=>t.filter(i=>i.asset_type===e).toSorted(l.submittedAtModelSortFn).pop())),Wc=t=>e=>e.assetTypeFieldsReducer.instances[t],Xc=y(u.createSelector([Ft,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),Yc=bs.reducer,K=O(t=>t.uuid),Zc={instances:{}},Fs=u.createSlice({name:"assetTypeFieldValuesAttachments",initialState:Zc,extraReducers:t=>t.addMatcher(u.isAnyOf(T,E,b),e=>Object.assign(e,Zc)),reducers:{initializeAssetTypeFieldValuesAttachments:K.initialize,addAssetTypeFieldValuesAttachment:K.addOne,addAssetTypeFieldValuesAttachments:K.addMany,setAssetTypeFieldValuesAttachment:K.setOne,setAssetTypeFieldValuesAttachments:K.setMany,updateAssetTypeFieldValuesAttachment:K.updateOne,updateAssetTypeFieldValuesAttachments:K.updateMany,deleteAssetTypeFieldValuesAttachment:K.deleteOne,deleteAssetTypeFieldValuesAttachments:K.deleteMany}}),{initializeAssetTypeFieldValuesAttachments:Jc,addAssetTypeFieldValuesAttachment:Qc,addAssetTypeFieldValuesAttachments:_s,setAssetTypeFieldValuesAttachment:xc,setAssetTypeFieldValuesAttachments:er,updateAssetTypeFieldValuesAttachment:tr,updateAssetTypeFieldValuesAttachments:sr,deleteAssetTypeFieldValuesAttachment:ir,deleteAssetTypeFieldValuesAttachments:Ms}=Fs.actions,ar=t=>t.assetTypeFieldValuesAttachmentReducer.instances,gs=u.createSelector([ar],t=>Object.values(t)),nr=t=>e=>e.assetTypeFieldValuesAttachmentReducer.instances[t],cr=y(u.createSelector([gs,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),rr=y(u.createSelector([gs,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.field_values===e)))),dr=Fs.reducer,W=O(t=>t.uuid),ur={instances:{}},Rs=u.createSlice({name:"assetTypeFieldValues",initialState:ur,extraReducers:t=>t.addMatcher(u.isAnyOf(T,E,b),e=>Object.assign(e,ur)),reducers:{initializeAssetTypeFieldValues:W.initialize,addAssetTypeFieldValues:W.addOne,addAssetTypeFieldValuesMany:W.addMany,setAssetTypeFieldValues:W.setOne,setAssetTypeFieldValuesMany:W.setMany,updateAssetTypeFieldValues:W.updateOne,updateAssetTypeFieldValuesMany:W.updateMany,deleteAssetTypeFieldValues:W.deleteOne,deleteAssetTypeFieldValuesMany:W.deleteMany}}),{initializeAssetTypeFieldValues:lr,addAssetTypeFieldValues:or,addAssetTypeFieldValuesMany:hr,setAssetTypeFieldValues:pr,setAssetTypeFieldValuesMany:yr,updateAssetTypeFieldValues:mr,updateAssetTypeFieldValuesMany:fr,deleteAssetTypeFieldValues:Sr,deleteAssetTypeFieldValuesMany:Ar}=Rs.actions,Tr=t=>t.assetTypeFieldValuesReducer.instances,qt=u.createSelector([Tr],t=>Object.values(t)),i_=y(u.createSelector([qt,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.asset===e)))),a_=y(u.createSelector([Ft,qt,(t,e)=>e],(t,e,i)=>{const a=new Set(t.filter(n=>n.asset_type===i).map(n=>n.uuid));return l.fallbackToEmptyArray(e.filter(n=>a.has(n.fields_revision)))})),Ir=t=>e=>e.assetTypeFieldValuesReducer.instances[t],Or=y(u.createSelector([qt,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),Pr=Rs.reducer,X=O(t=>t.uuid),br={instances:{}},ws=u.createSlice({name:"assetTypeIdentifiers",initialState:br,extraReducers:t=>t.addMatcher(u.isAnyOf(T,b),e=>Object.assign(e,br)),reducers:{initializeAssetTypeIdentifiers:X.initialize,addAssetTypeIdentifier:X.addOne,addAssetTypeIdentifiers:X.addMany,setAssetTypeIdentifier:X.setOne,setAssetTypeIdentifiers:X.setMany,updateAssetTypeIdentifier:X.updateOne,updateAssetTypeIdentifiers:X.updateMany,deleteAssetTypeIdentifier:X.deleteOne,deleteAssetTypeIdentifiers:X.deleteMany}}),{initializeAssetTypeIdentifiers:Fr,addAssetTypeIdentifier:_r,addAssetTypeIdentifiers:Mr,setAssetTypeIdentifier:gr,setAssetTypeIdentifiers:Rr,updateAssetTypeIdentifier:wr,updateAssetTypeIdentifiers:Er,deleteAssetTypeIdentifier:vr,deleteAssetTypeIdentifiers:Vr}=ws.actions,Br=t=>t.assetTypeIdentifierReducer.instances,Es=u.createSelector([Br],t=>Object.values(t)),zr=t=>e=>e.assetTypeIdentifierReducer.instances[t],jr=y(u.createSelector([Es,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),n_=y(u.createSelector([Es,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.asset_type===e)))),Dr=ws.reducer,Y=O(t=>t.uuid),Cr={instances:{}},vs=u.createSlice({name:"assetTypeIdentifierValues",initialState:Cr,extraReducers:t=>t.addMatcher(u.isAnyOf(T,E,b),e=>Object.assign(e,Cr)),reducers:{initializeAssetTypeIdentifierValues:Y.initialize,addAssetTypeIdentifierValue:Y.addOne,addAssetTypeIdentifierValues:Y.addMany,setAssetTypeIdentifierValue:Y.setOne,setAssetTypeIdentifierValues:Y.setMany,updateAssetTypeIdentifierValue:Y.updateOne,updateAssetTypeIdentifierValues:Y.updateMany,deleteAssetTypeIdentifierValue:Y.deleteOne,deleteAssetTypeIdentifierValues:Y.deleteMany}}),{initializeAssetTypeIdentifierValues:qr,addAssetTypeIdentifierValue:$r,addAssetTypeIdentifierValues:Ur,setAssetTypeIdentifierValue:kr,setAssetTypeIdentifierValues:Lr,updateAssetTypeIdentifierValue:Hr,updateAssetTypeIdentifierValues:Gr,deleteAssetTypeIdentifierValue:Nr,deleteAssetTypeIdentifierValues:Kr}=vs.actions,Wr=t=>t.assetTypeIdentifierValueReducer.instances,$t=u.createSelector([Wr],t=>Object.values(t)),Xr=t=>e=>e.assetTypeIdentifierValueReducer.instances[t],Yr=y(u.createSelector([$t,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),c_=y(u.createSelector([$t,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.asset===e)))),r_=y(u.createSelector([$t,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.asset_type_identifier===e)))),Zr=vs.reducer,Z=O(t=>t.uuid),Jr={instances:{}},Vs=u.createSlice({name:"assetTypes",initialState:Jr,extraReducers:t=>t.addMatcher(u.isAnyOf(T,b),e=>Object.assign(e,Jr)),reducers:{initializeAssetTypes:Z.initialize,setAssetType:Z.setOne,setAssetTypes:Z.setMany,addAssetType:Z.addOne,addAssetTypes:Z.addMany,updateAssetType:Z.updateOne,updateAssetTypes:Z.updateMany,deleteAssetType:Z.deleteOne,deleteAssetTypes:Z.deleteMany}}),{initializeAssetTypes:Qr,setAssetType:xr,setAssetTypes:ed,addAssetType:td,addAssetTypes:sd,updateAssetType:id,updateAssetTypes:ad,deleteAssetType:nd,deleteAssetTypes:cd}=Vs.actions,rd=t=>t.assetTypeReducer.instances,Bs=u.createSelector([rd],t=>Object.values(t)),dd=t=>e=>e.assetTypeReducer.instances[t],ud=y(u.createSelector([Bs,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),d_=y(u.createSelector([Bs,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.organization===e)))),ld=Vs.reducer,J=O(t=>t.uuid),od={instances:{}},zs=u.createSlice({name:"assetTypeStatuses",initialState:od,extraReducers:t=>t.addMatcher(u.isAnyOf(T,b),e=>Object.assign(e,od)),reducers:{initializeAssetTypeStatuses:J.initialize,addAssetTypeStatus:J.addOne,addAssetTypeStatuses:J.addMany,setAssetTypeStatus:J.setOne,setAssetTypeStatuses:J.setMany,updateAssetTypeStatus:J.updateOne,updateAssetTypeStatuses:J.updateMany,deleteAssetTypeStatus:J.deleteOne,deleteAssetTypeStatuses:J.deleteMany}}),{initializeAssetTypeStatuses:hd,addAssetTypeStatus:pd,addAssetTypeStatuses:yd,setAssetTypeStatus:md,setAssetTypeStatuses:fd,updateAssetTypeStatus:Sd,updateAssetTypeStatuses:Ad,deleteAssetTypeStatus:Td,deleteAssetTypeStatuses:Id}=zs.actions,Od=t=>t.assetTypeStatusReducer.instances,js=u.createSelector([Od],t=>l.fallbackToEmptyArray(Object.values(t).toSorted(l.assetTypeStatusSortFn))),Pd=t=>e=>e.assetTypeStatusReducer.instances[t],bd=y(u.createSelector([js,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),u_=y(u.createSelector([js,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.asset_type===e)))),Fd=zs.reducer,_d={accessToken:"",refreshToken:"",isLoggedIn:!1},Ut=u.createSlice({name:"auth",initialState:_d,extraReducers:t=>t.addCase(T,e=>Object.assign(e,_d)),reducers:{setTokens:(t,e)=>{t.accessToken=e.payload.accessToken,t.refreshToken=e.payload.refreshToken},clearTokens:t=>{t.accessToken="",t.refreshToken=""},setLoggedIn:(t,e)=>{e.payload||Ut.caseReducers.clearTokens(t),t.isLoggedIn=e.payload}}}),{setTokens:l_,clearTokens:o_,setLoggedIn:Md}=Ut.actions,h_=t=>t.authReducer.accessToken,p_=t=>t.authReducer.isLoggedIn,gd=Ut.reducer,Q=O(t=>t.uuid),Rd={instances:{}},Ds=u.createSlice({name:"documentAttachments",initialState:Rd,extraReducers:t=>t.addCase(T,e=>Object.assign(e,Rd)),reducers:{initializeDocumentAttachments:Q.initialize,addDocumentAttachment:Q.addOne,addDocumentAttachments:Q.addMany,setDocumentAttachment:Q.setOne,setDocumentAttachments:Q.setMany,updateDocumentAttachment:Q.updateOne,updateDocumentAttachments:Q.updateMany,deleteDocumentAttachment:Q.deleteOne,deleteDocumentAttachments:Q.deleteMany}}),{initializeDocumentAttachments:wd,addDocumentAttachment:Ed,addDocumentAttachments:vd,setDocumentAttachment:Vd,setDocumentAttachments:Bd,updateDocumentAttachment:zd,updateDocumentAttachments:jd,deleteDocumentAttachment:Dd,deleteDocumentAttachments:Cd}=Ds.actions,qd=t=>t.documentAttachmentReducer.instances,Cs=u.createSelector([qd],t=>Object.values(t)),$d=t=>e=>e.documentAttachmentReducer.instances[t],Ud=y(u.createSelector([Cs,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),y_=y(u.createSelector([Cs,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(({document:i})=>e===i)))),kd=Ds.reducer,x=O(({uuid:t})=>t),Ld={instances:{}},qs=u.createSlice({name:"documents",initialState:Ld,extraReducers:t=>t.addMatcher(u.isAnyOf(T,b),e=>{Object.assign(e,Ld)}),reducers:{initializeDocuments:x.initialize,addDocument:x.addOne,addDocuments:x.addMany,setDocument:x.setOne,setDocuments:x.setMany,updateDocument:x.updateOne,updateDocuments:x.updateMany,deleteDocument:x.deleteOne,deleteDocuments:x.deleteMany}}),{initializeDocuments:Hd,addDocument:Gd,addDocuments:Nd,setDocument:Kd,setDocuments:Wd,updateDocument:Xd,updateDocuments:Yd,deleteDocument:Zd,deleteDocuments:Jd}=qs.actions,Qd=qs.reducer,$s=t=>t.documentsReducer.instances,kt=u.createSelector([$s],t=>Object.values(t)),xd=t=>e=>e.documentsReducer.instances[t],eu=y(u.createSelector([kt,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),m_=y(u.createSelector([kt,(t,e)=>e],(t,e)=>t.filter(i=>i.project===e))),f_=y(u.createSelector([kt,(t,e)=>e],(t,e)=>t.filter(i=>i.organization===e))),tu=y(u.createSelector([$s,(t,e)=>e],(t,e)=>{if(!t[e])return l.fallbackToEmptyArray([]);const n=l.getDocumentSubTree(e,Object.values(t)).all().map(({model:c})=>c);return l.fallbackToEmptyArray(n)})),ee=O(t=>t.uuid),su={instances:{}},Us=u.createSlice({name:"emailDomains",initialState:su,extraReducers:t=>t.addMatcher(u.isAnyOf(T,b),e=>Object.assign(e,su)),reducers:{initializeEmailDomains:ee.initialize,addEmailDomain:ee.addOne,addEmailDomains:ee.addMany,setEmailDomain:ee.setOne,setEmailDomains:ee.setMany,updateEmailDomain:ee.updateOne,updateEmailDomains:ee.updateMany,deleteEmailDomain:ee.deleteOne,deleteEmailDomains:ee.deleteMany}}),{initializeEmailDomains:iu,addEmailDomain:au,addEmailDomains:nu,setEmailDomain:cu,setEmailDomains:ru,updateEmailDomain:du,updateEmailDomains:uu,deleteEmailDomain:lu,deleteEmailDomains:ou}=Us.actions,hu=t=>t.emailDomainsReducer.instances,ks=u.createSelector([hu],t=>Object.values(t)),pu=t=>e=>e.emailDomainsReducer.instances[t],yu=y(u.createSelector([ks,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),S_=y(u.createSelector([ks,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.organization===e)))),mu=Us.reducer,te=O(t=>t.uuid),fu={instances:{}},Ls=u.createSlice({name:"formIdentifiers",initialState:fu,extraReducers:t=>t.addMatcher(u.isAnyOf(T,b),e=>Object.assign(e,fu)),reducers:{initializeFormIdentifiers:te.initialize,addFormIdentifier:te.addOne,addFormIdentifiers:te.addMany,setFormIdentifier:te.setOne,setFormIdentifiers:te.setMany,updateFormIdentifier:te.updateOne,updateFormIdentifiers:te.updateMany,deleteFormIdentifier:te.deleteOne,deleteFormIdentifiers:te.deleteMany}}),{initializeFormIdentifiers:Su,addFormIdentifier:Au,addFormIdentifiers:Tu,setFormIdentifier:Iu,setFormIdentifiers:Ou,updateFormIdentifier:Pu,updateFormIdentifiers:bu,deleteFormIdentifier:Fu,deleteFormIdentifiers:_u}=Ls.actions,Mu=t=>t.formIdentifierReducer.instances,Hs=u.createSelector([Mu],t=>Object.values(t)),gu=t=>e=>e.formIdentifierReducer.instances[t],Ru=y(u.createSelector([Hs,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),A_=y(u.createSelector([Hs,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.form===e)))),wu=Ls.reducer,se=O(t=>t.uuid),Eu={instances:{}},Gs=u.createSlice({name:"formIdentifierValues",initialState:Eu,extraReducers:t=>t.addMatcher(u.isAnyOf(T,b),e=>Object.assign(e,Eu)),reducers:{initializeFormIdentifierValues:se.initialize,addFormIdentifierValue:se.addOne,addFormIdentifierValues:se.addMany,setFormIdentifierValue:se.setOne,setFormIdentifierValues:se.setMany,updateFormIdentifierValue:se.updateOne,updateFormIdentifierValues:se.updateMany,deleteFormIdentifierValue:se.deleteOne,deleteFormIdentifierValues:se.deleteMany}}),{initializeFormIdentifierValues:vu,addFormIdentifierValue:Vu,addFormIdentifierValues:Bu,setFormIdentifierValue:zu,setFormIdentifierValues:ju,updateFormIdentifierValue:Du,updateFormIdentifierValues:Cu,deleteFormIdentifierValue:qu,deleteFormIdentifierValues:$u}=Gs.actions,Uu=t=>t.formIdentifierValueReducer.instances,Lt=u.createSelector([Uu],t=>Object.values(t)),ku=t=>e=>e.formIdentifierValueReducer.instances[t],Lu=y(u.createSelector([Lt,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),T_=y(u.createSelector([Lt,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.form_submission===e)))),I_=y(u.createSelector([Lt,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.form_identifier===e)))),Hu=Gs.reducer,ie=O(t=>t.uuid),Gu={instances:{}},Ns=u.createSlice({name:"formRevisionAttachments",initialState:Gu,extraReducers:t=>t.addMatcher(u.isAnyOf(T,b),e=>Object.assign(e,Gu)),reducers:{initializeFormRevisionAttachments:ie.initialize,addFormRevisionAttachment:ie.addOne,addFormRevisionAttachments:ie.addMany,setFormRevisionAttachment:ie.setOne,setFormRevisionAttachments:ie.setMany,updateFormRevisionAttachment:ie.updateOne,updateFormRevisionAttachments:ie.updateMany,deleteFormRevisionAttachment:ie.deleteOne,deleteFormRevisionAttachments:ie.deleteMany}}),{initializeFormRevisionAttachments:Nu,addFormRevisionAttachment:Ku,addFormRevisionAttachments:Wu,setFormRevisionAttachment:Xu,setFormRevisionAttachments:Yu,updateFormRevisionAttachment:Zu,updateFormRevisionAttachments:Ju,deleteFormRevisionAttachment:Qu,deleteFormRevisionAttachments:xu}=Ns.actions,Ht=t=>t.formRevisionAttachmentReducer.instances,el=u.createSelector([Ht],t=>Object.values(t)),tl=y(u.createSelector([Ht,(t,e)=>e],(t,e)=>t[e])),sl=y(u.createSelector([el,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),O_=y(u.createSelector([Ht,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(Object.values(t).filter(i=>i.form_revision===e)))),il=Ns.reducer,ae=O(t=>t.uuid),al={instances:{}},Ks=u.createSlice({name:"formRevisions",initialState:al,extraReducers:t=>t.addMatcher(u.isAnyOf(T,b),e=>Object.assign(e,al)),reducers:{initializeFormRevisions:ae.initialize,addFormRevision:ae.addOne,addFormRevisions:ae.addMany,setFormRevision:ae.setOne,setFormRevisions:ae.setMany,updateFormRevision:ae.updateOne,updateFormRevisions:ae.updateMany,deleteFormRevision:ae.deleteOne,deleteFormRevisions:ae.deleteMany}}),{initializeFormRevisions:nl,addFormRevision:cl,addFormRevisions:Ws,setFormRevision:rl,setFormRevisions:dl,updateFormRevision:ul,updateFormRevisions:ll,deleteFormRevision:ol,deleteFormRevisions:Xs}=Ks.actions,hl=t=>t.formRevisionReducer.instances,Gt=u.createSelector([hl],t=>Object.values(t)),pl=t=>e=>e.formRevisionReducer.instances[t],yl=y(u.createSelector([Gt,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),P_=y(u.createSelector([Gt,(t,e)=>e],(t,e)=>t.filter(i=>i.form===e).toSorted(l.submittedAtModelSortFn).pop())),ml=y(u.createSelector([Gt,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.form===e)))),fl=Ks.reducer,ne=O(t=>t.uuid),Sl={instances:{}},Ys=u.createSlice({name:"formSubscribers",initialState:Sl,extraReducers:t=>t.addMatcher(u.isAnyOf(T,b),e=>Object.assign(e,Sl)),reducers:{initializeFormSubscribers:ne.initialize,addFormSubscriber:ne.addOne,addFormSubscribers:ne.addMany,setFormSubscriber:ne.setOne,setFormSubscribers:ne.setMany,updateFormSubscriber:ne.updateOne,updateFormSubscribers:ne.updateMany,deleteFormSubscriber:ne.deleteOne,deleteFormSubscribers:ne.deleteMany}}),{initializeFormSubscribers:Al,addFormSubscriber:Tl,addFormSubscribers:Zs,setFormSubscriber:Il,setFormSubscribers:Ol,updateFormSubscriber:Pl,updateFormSubscribers:bl,deleteFormSubscriber:Fl,deleteFormSubscribers:Js}=Ys.actions,_l=t=>t.formSubscriberReducer.instances,Nt=u.createSelector([_l],t=>Object.values(t)),Ml=t=>e=>e.formSubscriberReducer.instances[t],gl=y(u.createSelector([Nt,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),Rl=y(u.createSelector([Nt,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.form===e)))),b_=y(u.createSelector([Nt,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.user===e)))),wl=Ys.reducer,ce=O(t=>t.uuid),El={instances:{}},Qs=u.createSlice({name:"forms",initialState:El,extraReducers:t=>t.addMatcher(u.isAnyOf(T,b),e=>Object.assign(e,El)),reducers:{initializeForms:ce.initialize,addForm:ce.addOne,addForms:ce.addMany,setForm:ce.setOne,setForms:ce.setMany,updateForm:ce.updateOne,updateForms:ce.updateMany,deleteForm:ce.deleteOne,deleteForms:ce.deleteMany}}),{initializeForms:vl,addForm:Vl,addForms:Bl,setForm:zl,setForms:jl,updateForm:Dl,updateForms:Cl,deleteForm:ql,deleteForms:$l}=Qs.actions,Ul=Qs.reducer,kl=t=>t.formReducer.instances,xs=u.createSelector([kl],t=>Object.values(t)),Ll=t=>e=>e.formReducer.instances[t],Hl=y(u.createSelector([xs,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),F_=y(u.createSelector([xs,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.organization===e)))),re=O(({uuid:t})=>t),Gl={instances:{}},ei=u.createSlice({name:"formSubmissionFieldValuesAttachments",initialState:Gl,extraReducers:t=>t.addMatcher(u.isAnyOf(T,b),e=>Object.assign(e,Gl)),reducers:{initializeFormSubmissionFieldValuesAttachments:re.initialize,addFormSubmissionFieldValuesAttachment:re.addOne,addFormSubmissionFieldValuesAttachments:re.addMany,setFormSubmissionFieldValuesAttachment:re.setOne,setFormSubmissionFieldValuesAttachments:re.setMany,updateFormSubmissionFieldValuesAttachment:re.updateOne,updateFormSubmissionFieldValuesAttachments:re.updateMany,deleteFormSubmissionFieldValuesAttachment:re.deleteOne,deleteFormSubmissionFieldValuesAttachments:re.deleteMany}}),{initializeFormSubmissionFieldValuesAttachments:Nl,addFormSubmissionFieldValuesAttachment:Kl,addFormSubmissionFieldValuesAttachments:ti,setFormSubmissionFieldValuesAttachment:Wl,setFormSubmissionFieldValuesAttachments:Xl,updateFormSubmissionFieldValuesAttachment:Yl,updateFormSubmissionFieldValuesAttachments:Zl,deleteFormSubmissionFieldValuesAttachment:Jl,deleteFormSubmissionFieldValuesAttachments:si}=ei.actions,ii=t=>t.formSubmissionFieldValuesAttachmentReducer.instances,ai=u.createSelector([ii],t=>Object.values(t)),Ql=y(u.createSelector([ii,(t,e)=>e],(t,e)=>t[e])),ni=y(u.createSelector([ai,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(a=>i.has(a.uuid)))})),xl=y(u.createSelector([ai,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.field_values===e)))),eo=ei.reducer,de=O(({uuid:t})=>t),to={instances:{}},ci=u.createSlice({name:"formSubmissionFieldValues",initialState:to,extraReducers:t=>t.addMatcher(u.isAnyOf(T,b),e=>Object.assign(e,to)),reducers:{initializeFormSubmissionFieldValues:de.initialize,addFormSubmissionFieldValues:de.addOne,addFormSubmissionFieldValuesMany:de.addMany,setFormSubmissionFieldValues:de.setOne,setFormSubmissionFieldValuesMany:de.setMany,updateFormSubmissionFieldValues:de.updateOne,updateFormSubmissionFieldValuesMany:de.updateMany,deleteFormSubmissionFieldValues:de.deleteOne,deleteFormSubmissionFieldValuesMany:de.deleteMany}}),{initializeFormSubmissionFieldValues:so,addFormSubmissionFieldValues:io,addFormSubmissionFieldValuesMany:ri,setFormSubmissionFieldValues:ao,setFormSubmissionFieldValuesMany:no,updateFormSubmissionFieldValues:co,updateFormSubmissionFieldValuesMany:ro,deleteFormSubmissionFieldValues:uo,deleteFormSubmissionFieldValuesMany:di}=ci.actions,lo=t=>t.formSubmissionFieldValuesReducer.instances,ui=u.createSelector([lo],t=>Object.values(t)),oo=t=>e=>e.formSubmissionFieldValuesReducer.instances[t],ho=y(u.createSelector([ui,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),po=y(u.createSelector([ui,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.form_submission===e)))),yo=ci.reducer,ue=O(t=>t.uuid),mo={instances:{}},li=u.createSlice({name:"formSubmissionComments",initialState:mo,extraReducers:t=>t.addMatcher(u.isAnyOf(T,b),e=>Object.assign(e,mo)),reducers:{initializeFormSubmissionComments:ue.initialize,addFormSubmissionComment:ue.addOne,addFormSubmissionComments:ue.addMany,setFormSubmissionComment:ue.setOne,setFormSubmissionComments:ue.setMany,updateFormSubmissionComment:ue.updateOne,updateFormSubmissionComments:ue.updateMany,deleteFormSubmissionComment:ue.deleteOne,deleteFormSubmissionComments:ue.deleteMany}}),{initializeFormSubmissionComments:fo,addFormSubmissionComment:So,addFormSubmissionComments:oi,setFormSubmissionComment:Ao,setFormSubmissionComments:To,updateFormSubmissionComment:Io,updateFormSubmissionComments:Oo,deleteFormSubmissionComment:Po,deleteFormSubmissionComments:hi}=li.actions,bo=t=>t.formSubmissionCommentReducer.instances,Kt=u.createSelector([bo],t=>l.fallbackToEmptyArray(Object.values(t).toSorted(l.submittedAtModelSortFn))),Fo=t=>e=>e.formSubmissionCommentReducer.instances[t],_o=y(u.createSelector([Kt,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),Mo=y(u.createSelector([Kt,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.form_submission===e)))),__=y(u.createSelector([Kt,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(a=>i.has(a.form_submission)))})),go=li.reducer,le=O(t=>t.uuid),Ro={instances:{}},pi=u.createSlice({name:"formSubmissions",initialState:Ro,extraReducers:t=>t.addMatcher(u.isAnyOf(T,b),e=>Object.assign(e,Ro)),reducers:{initializeFormSubmissions:le.initialize,setFormSubmission:le.setOne,setFormSubmissions:le.setMany,addFormSubmission:le.addOne,addFormSubmissions:le.addMany,updateFormSubmission:le.updateOne,updateFormSubmissions:le.updateMany,deleteFormSubmission:le.deleteOne,deleteFormSubmissions:le.deleteMany}}),{initializeFormSubmissions:wo,setFormSubmission:Eo,setFormSubmissions:vo,addFormSubmission:Vo,addFormSubmissions:dt,updateFormSubmission:Bo,updateFormSubmissions:zo,deleteFormSubmission:jo,deleteFormSubmissions:ut}=pi.actions,Do=t=>t.formSubmissionReducer.instances,D=u.createSelector([Do],t=>Object.values(t)),Co=t=>e=>e.formSubmissionReducer.instances[t],qo=y(u.createSelector([D,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),$o=y(u.createSelector([D,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.form===e)))),M_=y(u.createSelector([D,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(({organization:i})=>i===e)))),g_=y(u.createSelector([D,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(({project:i})=>i===e)))),R_=y(u.createSelector([D,(t,e)=>e,(t,e,i)=>i],(t,e,i)=>l.fallbackToEmptyArray(t.filter(({project:a,form:n})=>a===e&&n===i)))),w_=y(u.createSelector([D,(t,e)=>e,(t,e,i)=>i],(t,e,i)=>l.fallbackToEmptyArray(t.filter(({organization:a,form:n})=>a===e&&n===i)))),Uo=y(u.createSelector([D,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(({issue:i})=>i===e)))),ko=y(u.createSelector([D,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({issue:a})=>a&&i.has(a)))})),Lo=y(u.createSelector([D,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(({asset:i})=>i===e)))),Ho=y(u.createSelector([D,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({asset:a})=>a&&i.has(a)))})),Go=pi.reducer,oe=O(t=>t.uuid),No={instances:{}},yi=u.createSlice({name:"geoImages",initialState:No,extraReducers:t=>t.addMatcher(u.isAnyOf(T,E,b),e=>Object.assign(e,No)),reducers:{initializeGeoImages:oe.initialize,setGeoImage:oe.setOne,setGeoImages:oe.setMany,addGeoImage:oe.addOne,addGeoImages:oe.addMany,updateGeoImage:oe.updateOne,updateGeoImages:oe.updateMany,deleteGeoImage:oe.deleteOne,deleteGeoImages:oe.deleteMany}}),{initializeGeoImages:Ko,setGeoImage:Wo,setGeoImages:Xo,addGeoImage:Yo,addGeoImages:Zo,updateGeoImage:Jo,updateGeoImages:Qo,deleteGeoImage:xo,deleteGeoImages:eh}=yi.actions,th=t=>t.geoImageReducer.instances,mi=u.createSelector([th],t=>Object.values(t)),sh=t=>e=>e.geoImageReducer.instances[t],ih=y(u.createSelector([mi,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),E_=y(u.createSelector([mi,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.project===e)))),ah=yi.reducer,he=O(t=>t.uuid),nh={instances:{}},fi=u.createSlice({name:"issueAssociations",initialState:nh,extraReducers:t=>t.addMatcher(u.isAnyOf(T,E,b),e=>Object.assign(e,nh)),reducers:{initializeIssueAssociations:he.initialize,addIssueAssociation:he.addOne,addIssueAssociations:he.addMany,setIssueAssociation:he.setOne,setIssueAssociations:he.setMany,updateIssueAssociation:he.updateOne,updateIssueAssociations:he.updateMany,deleteIssueAssociation:he.deleteOne,deleteIssueAssociations:he.deleteMany}}),{initializeIssueAssociations:ch,setIssueAssociations:rh,setIssueAssociation:dh,updateIssueAssociation:uh,updateIssueAssociations:lh,addIssueAssociation:oh,addIssueAssociations:ft,deleteIssueAssociation:hh,deleteIssueAssociations:St}=fi.actions,ph=t=>t.issueAssociationReducer.instances,At=u.createSelector([ph],t=>Object.values(t)),yh=t=>e=>e.issueAssociationReducer.instances[t],mh=y(u.createSelector([At,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),fh=y(u.createSelector([At,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({issue:a})=>i.has(a)))})),Sh=y(u.createSelector([At,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(({issue:i})=>i===e)))),Ah=y(u.createSelector([At,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(({asset:i})=>i===e)))),Th=y(u.createSelector([At,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({asset:a})=>i.has(a)))})),Ih=fi.reducer,pe=O(t=>t.uuid),Oh={instances:{}},Si=u.createSlice({name:"issueAttachments",initialState:Oh,extraReducers:t=>t.addMatcher(u.isAnyOf(T,E,b),e=>Object.assign(e,Oh)),reducers:{initializeIssueAttachments:pe.initialize,addIssueAttachment:pe.addOne,addIssueAttachments:pe.addMany,setIssueAttachment:pe.setOne,setIssueAttachments:pe.setMany,updateIssueAttachment:pe.updateOne,updateIssueAttachments:pe.updateMany,deleteIssueAttachment:pe.deleteOne,deleteIssueAttachments:pe.deleteMany}}),{initializeIssueAttachments:Ph,addIssueAttachment:bh,addIssueAttachments:Ai,setIssueAttachment:Fh,setIssueAttachments:_h,updateIssueAttachment:Mh,updateIssueAttachments:gh,deleteIssueAttachment:Rh,deleteIssueAttachments:Ti}=Si.actions,wh=t=>t.issueAttachmentReducer.instances,Ii=u.createSelector([wh],t=>Object.values(t)),Eh=y(u.createSelector([Ii,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(({issue:i})=>e===i)))),vh=t=>e=>e.issueAttachmentReducer.instances[t],Vh=y(u.createSelector([Ii,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),Bh=Si.reducer,ye=O(t=>t.uuid),zh={instances:{}},Oi=u.createSlice({name:"issueCommentAttachments",initialState:zh,extraReducers:t=>t.addMatcher(u.isAnyOf(T,E,b),e=>Object.assign(e,zh)),reducers:{initializeIssueCommentAttachments:ye.initialize,addIssueCommentAttachment:ye.addOne,addIssueCommentAttachments:ye.addMany,setIssueCommentAttachment:ye.setOne,setIssueCommentAttachments:ye.setMany,updateIssueCommentAttachment:ye.updateOne,updateIssueCommentAttachments:ye.updateMany,deleteIssueCommentAttachment:ye.deleteOne,deleteIssueCommentAttachments:ye.deleteMany}}),{initializeIssueCommentAttachments:jh,addIssueCommentAttachment:Dh,addIssueCommentAttachments:Ch,setIssueCommentAttachment:qh,setIssueCommentAttachments:$h,updateIssueCommentAttachment:Uh,updateIssueCommentAttachments:kh,deleteIssueCommentAttachment:Lh,deleteIssueCommentAttachments:Hh}=Oi.actions,Gh=t=>t.issueCommentAttachmentReducer.instances,Pi=u.createSelector([Gh],t=>Object.values(t)),Nh=t=>e=>e.issueCommentAttachmentReducer.instances[t],Kh=y(u.createSelector([Pi,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),v_=y(u.createSelector([Pi,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(({issue_comment:i})=>e===i)))),Wh=Oi.reducer,me=O(t=>t.uuid),Xh={instances:{}},bi=u.createSlice({name:"issueComments",initialState:Xh,extraReducers:t=>t.addMatcher(u.isAnyOf(T,E,b),e=>Object.assign(e,Xh)),reducers:{initializeIssueComments:me.initialize,addIssueComment:me.addOne,addIssueComments:me.addMany,setIssueComment:me.setOne,setIssueComments:me.setMany,updateIssueComment:me.updateOne,updateIssueComments:me.updateMany,deleteIssueComment:me.deleteOne,deleteIssueComments:me.deleteMany}}),{initializeIssueComments:Yh,addIssueComment:Zh,addIssueComments:Jh,setIssueComment:Qh,setIssueComments:xh,updateIssueComment:ep,updateIssueComments:tp,deleteIssueComment:sp,deleteIssueComments:ip}=bi.actions,Fi=t=>t.issueCommentReducer.instances,ap=t=>e=>e.issueCommentReducer.instances[t],np=y(u.createSelector([Fi,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(Object.values(t).filter(({uuid:a})=>i.has(a)))})),V_=y(u.createSelector([Fi,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(Object.values(t).filter(i=>i.issue===e)))),cp=bi.reducer,fe=O(t=>t.uuid),rp={instances:{}},_i=u.createSlice({name:"issues",initialState:rp,extraReducers:t=>t.addMatcher(u.isAnyOf(T,E,b),e=>Object.assign(e,rp)),reducers:{initializeIssues:fe.initialize,addIssue:fe.addOne,addIssues:fe.addMany,setIssue:fe.setOne,setIssues:fe.setMany,updateIssue:fe.updateOne,updateIssues:fe.updateMany,deleteIssue:fe.deleteOne,deleteIssues:fe.deleteMany}}),{initializeIssues:dp,addIssue:up,addIssues:Mi,setIssue:lp,setIssues:op,updateIssue:hp,updateIssues:pp,deleteIssue:yp,deleteIssues:gi}=_i.actions,mp=t=>t.issueReducer.instances,Wt=u.createSelector([mp],t=>Object.values(t)),fp=t=>e=>e.issueReducer.instances[t],Sp=y(u.createSelector([Wt,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),B_=y(u.createSelector([Wt,(t,e)=>e],(t,e)=>t.filter(i=>i.project===e))),Ap=y(u.createSelector([Wt,(t,e)=>e],(t,e)=>t.filter(i=>i.issue_type===e))),Tp=_i.reducer,Se=O(t=>t.uuid),Ip={instances:{}},Ri=u.createSlice({name:"issueTypeAttachments",initialState:Ip,extraReducers:t=>t.addMatcher(u.isAnyOf(T,b),e=>Object.assign(e,Ip)),reducers:{initializeIssueTypeAttachments:Se.initialize,addIssueTypeAttachment:Se.addOne,addIssueTypeAttachments:Se.addMany,setIssueTypeAttachment:Se.setOne,setIssueTypeAttachments:Se.setMany,updateIssueTypeAttachment:Se.updateOne,updateIssueTypeAttachments:Se.updateMany,deleteIssueTypeAttachment:Se.deleteOne,deleteIssueTypeAttachments:Se.deleteMany}}),{initializeIssueTypeAttachments:Op,addIssueTypeAttachment:Pp,addIssueTypeAttachments:bp,setIssueTypeAttachment:Fp,setIssueTypeAttachments:_p,updateIssueTypeAttachment:Mp,updateIssueTypeAttachments:gp,deleteIssueTypeAttachment:Rp,deleteIssueTypeAttachments:wp}=Ri.actions,Ep=t=>t.issueTypeAttachmentReducer.instances,wi=u.createSelector([Ep],t=>Object.values(t)),vp=t=>e=>e.issueTypeAttachmentReducer.instances[t],Vp=y(u.createSelector([wi,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),z_=y(u.createSelector([wi,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(({issue_type:i})=>e===i)))),Bp=Ri.reducer,Ae=O(t=>t.uuid),zp={instances:{}},Ei=u.createSlice({name:"issueTypeFieldsAttachments",initialState:zp,extraReducers:t=>t.addMatcher(u.isAnyOf(T,b),e=>Object.assign(e,zp)),reducers:{initializeIssueTypeFieldsAttachments:Ae.initialize,addIssueTypeFieldsAttachment:Ae.addOne,addIssueTypeFieldsAttachments:Ae.addMany,setIssueTypeFieldsAttachment:Ae.setOne,setIssueTypeFieldsAttachments:Ae.setMany,updateIssueTypeFieldsAttachment:Ae.updateOne,updateIssueTypeFieldsAttachments:Ae.updateMany,deleteIssueTypeFieldsAttachment:Ae.deleteOne,deleteIssueTypeFieldsAttachments:Ae.deleteMany}}),{initializeIssueTypeFieldsAttachments:jp,addIssueTypeFieldsAttachment:Dp,addIssueTypeFieldsAttachments:Cp,setIssueTypeFieldsAttachment:qp,setIssueTypeFieldsAttachments:$p,updateIssueTypeFieldsAttachment:Up,updateIssueTypeFieldsAttachments:kp,deleteIssueTypeFieldsAttachment:Lp,deleteIssueTypeFieldsAttachments:Hp}=Ei.actions,Gp=t=>t.issueTypeFieldsAttachmentReducer.instances,vi=u.createSelector([Gp],t=>Object.values(t)),j_=y(u.createSelector([vi,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.fields_revision===e)))),Np=t=>e=>e.issueTypeFieldsAttachmentReducer.instances[t],Kp=y(u.createSelector([vi,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),Wp=Ei.reducer,Te=O(t=>t.uuid),Xp={instances:{}},Vi=u.createSlice({name:"issueTypeFieldValues",initialState:Xp,extraReducers:t=>t.addMatcher(u.isAnyOf(T,E,b),e=>Object.assign(e,Xp)),reducers:{initializeIssueTypeFieldValues:Te.initialize,addIssueTypeFieldValues:Te.addOne,addIssueTypeFieldValuesMany:Te.addMany,setIssueTypeFieldValues:Te.setOne,setIssueTypeFieldValuesMany:Te.setMany,updateIssueTypeFieldValues:Te.updateOne,updateIssueTypeFieldValuesMany:Te.updateMany,deleteIssueTypeFieldValues:Te.deleteOne,deleteIssueTypeFieldValuesMany:Te.deleteMany}}),{initializeIssueTypeFieldValues:Yp,addIssueTypeFieldValues:Zp,addIssueTypeFieldValuesMany:Jp,setIssueTypeFieldValues:Qp,setIssueTypeFieldValuesMany:xp,updateIssueTypeFieldValues:ey,updateIssueTypeFieldValuesMany:ty,deleteIssueTypeFieldValues:sy,deleteIssueTypeFieldValuesMany:iy}=Vi.actions,ay=t=>t.issueTypeFieldValuesReducer.instances,Xt=u.createSelector([ay],t=>Object.values(t)),D_=y(u.createSelector([Xt,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.issue===e)))),ny=t=>e=>e.issueTypeFieldValuesReducer.instances[t],cy=y(u.createSelector([Xt,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),ry=Vi.reducer,Ie=O(t=>t.uuid),dy={instances:{}},Bi=u.createSlice({name:"issueTypeFields",initialState:dy,extraReducers:t=>t.addMatcher(u.isAnyOf(T,b),e=>Object.assign(e,dy)),reducers:{initializeIssueTypeFields:Ie.initialize,addIssueTypeFields:Ie.addOne,addIssueTypeFieldsMany:Ie.addMany,setIssueTypeFields:Ie.setOne,setIssueTypeFieldsMany:Ie.setMany,updateIssueTypeFields:Ie.updateOne,updateIssueTypeFieldsMany:Ie.updateMany,deleteIssueTypeFields:Ie.deleteOne,deleteIssueTypeFieldsMany:Ie.deleteMany}}),{initializeIssueTypeFields:uy,addIssueTypeFields:ly,addIssueTypeFieldsMany:oy,setIssueTypeFields:hy,setIssueTypeFieldsMany:py,updateIssueTypeFields:yy,updateIssueTypeFieldsMany:my,deleteIssueTypeFields:fy,deleteIssueTypeFieldsMany:Sy}=Bi.actions,Ay=t=>t.issueTypeFieldsReducer.instances,_t=u.createSelector([Ay],t=>Object.values(t)),C_=y(u.createSelector([_t,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.issue_type===e)))),q_=y(u.createSelector([_t,(t,e)=>e],(t,e)=>t.filter(i=>i.issue_type===e).sort((i,a)=>i.submitted_at>a.submitted_at?-1:1)[0])),$_=y(u.createSelector([_t,Xt,(t,e)=>e],(t,e,i)=>{const a=new Set(t.filter(n=>n.issue_type===i).map(n=>n.uuid));return l.fallbackToEmptyArray(e.filter(n=>a.has(n.fields_revision)))})),Ty=t=>e=>e.issueTypeFieldsReducer.instances[t],Iy=y(u.createSelector([_t,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),Oy=Bi.reducer,Oe=O(t=>t.uuid),Py={instances:{}},zi=u.createSlice({name:"issueTypeFieldValuesAttachments",initialState:Py,extraReducers:t=>t.addMatcher(u.isAnyOf(T,E,b),e=>Object.assign(e,Py)),reducers:{initializeIssueTypeFieldValuesAttachments:Oe.initialize,addIssueTypeFieldValuesAttachment:Oe.addOne,addIssueTypeFieldValuesAttachments:Oe.addMany,setIssueTypeFieldValuesAttachment:Oe.setOne,setIssueTypeFieldValuesAttachments:Oe.setMany,updateIssueTypeFieldValuesAttachment:Oe.updateOne,updateIssueTypeFieldValuesAttachments:Oe.updateMany,deleteIssueTypeFieldValuesAttachment:Oe.deleteOne,deleteIssueTypeFieldValuesAttachments:Oe.deleteMany}}),{initializeIssueTypeFieldValuesAttachments:by,addIssueTypeFieldValuesAttachment:Fy,addIssueTypeFieldValuesAttachments:ji,setIssueTypeFieldValuesAttachment:_y,setIssueTypeFieldValuesAttachments:My,updateIssueTypeFieldValuesAttachment:gy,updateIssueTypeFieldValuesAttachments:Ry,deleteIssueTypeFieldValuesAttachment:wy,deleteIssueTypeFieldValuesAttachments:Di}=zi.actions,Ey=t=>t.issueTypeFieldValuesAttachmentReducer.instances,Ci=u.createSelector([Ey],t=>Object.values(t)),vy=t=>e=>e.issueTypeFieldValuesAttachmentReducer.instances[t],Vy=y(u.createSelector([Ci,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),By=y(u.createSelector([Ci,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.field_values===e)))),zy=zi.reducer,Pe=O(t=>t.uuid),jy={instances:{}},qi=u.createSlice({name:"issueTypeIdentifiers",initialState:jy,extraReducers:t=>t.addMatcher(u.isAnyOf(T,b),e=>Object.assign(e,jy)),reducers:{initializeIssueTypeIdentifiers:Pe.initialize,addIssueTypeIdentifier:Pe.addOne,addIssueTypeIdentifiers:Pe.addMany,setIssueTypeIdentifier:Pe.setOne,setIssueTypeIdentifiers:Pe.setMany,updateIssueTypeIdentifier:Pe.updateOne,updateIssueTypeIdentifiers:Pe.updateMany,deleteIssueTypeIdentifier:Pe.deleteOne,deleteIssueTypeIdentifiers:Pe.deleteMany}}),{initializeIssueTypeIdentifiers:Dy,addIssueTypeIdentifier:Cy,addIssueTypeIdentifiers:qy,setIssueTypeIdentifier:$y,setIssueTypeIdentifiers:Uy,updateIssueTypeIdentifier:ky,updateIssueTypeIdentifiers:Ly,deleteIssueTypeIdentifier:Hy,deleteIssueTypeIdentifiers:Gy}=qi.actions,Ny=t=>t.issueTypeIdentifierReducer.instances,$i=u.createSelector([Ny],t=>Object.values(t)),Ky=t=>e=>e.issueTypeIdentifierReducer.instances[t],Wy=y(u.createSelector([$i,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),U_=y(u.createSelector([$i,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.issue_type===e)))),Xy=qi.reducer,be=O(t=>t.uuid),Yy={instances:{}},Ui=u.createSlice({name:"issueTypeIdentifierValues",initialState:Yy,extraReducers:t=>t.addMatcher(u.isAnyOf(T,E,b),e=>Object.assign(e,Yy)),reducers:{initializeIssueTypeIdentifierValues:be.initialize,addIssueTypeIdentifierValue:be.addOne,addIssueTypeIdentifierValues:be.addMany,setIssueTypeIdentifierValue:be.setOne,setIssueTypeIdentifierValues:be.setMany,updateIssueTypeIdentifierValue:be.updateOne,updateIssueTypeIdentifierValues:be.updateMany,deleteIssueTypeIdentifierValue:be.deleteOne,deleteIssueTypeIdentifierValues:be.deleteMany}}),{initializeIssueTypeIdentifierValues:Zy,addIssueTypeIdentifierValue:Jy,addIssueTypeIdentifierValues:Qy,setIssueTypeIdentifierValue:xy,setIssueTypeIdentifierValues:em,updateIssueTypeIdentifierValue:tm,updateIssueTypeIdentifierValues:sm,deleteIssueTypeIdentifierValue:im,deleteIssueTypeIdentifierValues:am}=Ui.actions,nm=t=>t.issueTypeIdentifierValueReducer.instances,Yt=u.createSelector([nm],t=>Object.values(t)),cm=t=>e=>e.issueTypeIdentifierValueReducer.instances[t],rm=y(u.createSelector([Yt,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),k_=y(u.createSelector([Yt,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.issue===e)))),L_=y(u.createSelector([Yt,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.issue_type_identifier===e)))),dm=Ui.reducer,Fe=O(t=>t.uuid),um={instances:{}},ki=u.createSlice({name:"issueTypePriorities",initialState:um,extraReducers:t=>t.addMatcher(u.isAnyOf(T,b),e=>Object.assign(e,um)),reducers:{initializeIssueTypePriorities:Fe.initialize,addIssueTypePriority:Fe.addOne,addIssueTypePriorities:Fe.addMany,setIssueTypePriority:Fe.setOne,setIssueTypePriorities:Fe.setMany,updateIssueTypePriority:Fe.updateOne,updateIssueTypePriorities:Fe.updateMany,deleteIssueTypePriority:Fe.deleteOne,deleteIssueTypePriorities:Fe.deleteMany}}),{initializeIssueTypePriorities:lm,addIssueTypePriority:om,addIssueTypePriorities:hm,setIssueTypePriority:pm,setIssueTypePriorities:ym,updateIssueTypePriority:mm,updateIssueTypePriorities:fm,deleteIssueTypePriority:Sm,deleteIssueTypePriorities:Am}=ki.actions,Tm=t=>t.issueTypePriorityReducer.instances,Li=u.createSelector([Tm],t=>l.fallbackToEmptyArray(Object.values(t).toSorted(l.issueTypePrioritySortFn))),Hi=t=>e=>e.issueTypePriorityReducer.instances[t],Im=y(u.createSelector([Li,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),H_=y(u.createSelector([Li,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.issue_type===e)))),Om=ki.reducer,_e=O(t=>t.uuid),Pm={instances:{}},Gi=u.createSlice({name:"issueTypes",initialState:Pm,extraReducers:t=>t.addMatcher(u.isAnyOf(T,b),e=>Object.assign(e,Pm)),reducers:{initializeIssueTypes:_e.initialize,addIssueType:_e.addOne,addIssueTypes:_e.addMany,setIssueType:_e.setOne,setIssueTypes:_e.setMany,updateIssueType:_e.updateOne,updateIssueTypes:_e.updateMany,deleteIssueType:_e.deleteOne,deleteIssueTypes:_e.deleteMany}}),{initializeIssueTypes:bm,addIssueType:Fm,addIssueTypes:_m,setIssueType:Mm,setIssueTypes:gm,updateIssueType:Rm,updateIssueTypes:wm,deleteIssueType:Em,deleteIssueTypes:vm}=Gi.actions,Vm=t=>t.issueTypeReducer.instances,Ni=u.createSelector(Vm,t=>Object.values(t)),Bm=t=>e=>e.issueTypeReducer.instances[t],zm=y(u.createSelector([Ni,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),G_=y(u.createSelector([Ni,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.organization===e)))),jm=Gi.reducer,Me=O(t=>t.uuid),Dm={instances:{}},Ki=u.createSlice({name:"issueTypeStatuses",initialState:Dm,extraReducers:t=>t.addMatcher(u.isAnyOf(T,b),e=>Object.assign(e,Dm)),reducers:{initializeIssueTypeStatuses:Me.initialize,addIssueTypeStatus:Me.addOne,addIssueTypeStatuses:Me.addMany,setIssueTypeStatus:Me.setOne,setIssueTypeStatuses:Me.setMany,updateIssueTypeStatus:Me.updateOne,updateIssueTypeStatuses:Me.updateMany,deleteIssueTypeStatus:Me.deleteOne,deleteIssueTypeStatuses:Me.deleteMany}}),{initializeIssueTypeStatuses:Cm,addIssueTypeStatus:qm,addIssueTypeStatuses:$m,setIssueTypeStatus:Um,setIssueTypeStatuses:km,updateIssueTypeStatus:Lm,updateIssueTypeStatuses:Hm,deleteIssueTypeStatus:Gm,deleteIssueTypeStatuses:Nm}=Ki.actions,Km=t=>t.issueTypeStatusReducer.instances,Wi=u.createSelector([Km],t=>l.fallbackToEmptyArray(Object.values(t).toSorted(l.issueTypeStatusSortFn))),Xi=t=>e=>e.issueTypeStatusReducer.instances[t],Wm=y(u.createSelector([Wi,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),N_=y(u.createSelector([Wi,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.issue_type===e)))),Xm=Ki.reducer,ge=O(t=>t.uuid),Ym={instances:{}},Yi=u.createSlice({name:"issueUpdates",initialState:Ym,extraReducers:t=>t.addMatcher(u.isAnyOf(T,E,b),e=>Object.assign(e,Ym)),reducers:{initializeIssueUpdates:ge.initialize,addIssueUpdate:ge.addOne,addIssueUpdates:ge.addMany,setIssueUpdate:ge.setOne,setIssueUpdates:ge.setMany,updateIssueUpdate:ge.updateOne,updateIssueUpdates:ge.updateMany,deleteIssueUpdate:ge.deleteOne,deleteIssueUpdates:ge.deleteMany}}),{initializeIssueUpdates:Zm,addIssueUpdate:Zi,addIssueUpdates:Ji,setIssueUpdate:Jm,setIssueUpdates:Qm,updateIssueUpdate:xm,updateIssueUpdates:ef,deleteIssueUpdate:Qi,deleteIssueUpdates:xi}=Yi.actions,ea=t=>t.issueUpdateReducer.instances,ta=u.createSelector([ea],t=>Object.values(t)),tf=y(u.createSelector([ea,(t,e)=>e],(t,e)=>t[e])),sf=y(u.createSelector([ta,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),af=y(u.createSelector([ta,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.issue===e)))),nf=Yi.reducer,Re=O(t=>t.id),cf={instances:{},currentUser:null},sa=u.createSlice({name:"users",initialState:cf,extraReducers:t=>t.addCase(T,e=>Object.assign(e,cf)).addCase(b,e=>Object.assign(e,{...e,instances:[]})),reducers:{initializeUsers:Re.initialize,setUsers:Re.setMany,setUser:Re.setOne,addUsers:Re.addMany,addUser:Re.addOne,updateUsers:Re.updateMany,updateUser:Re.updateOne,deleteUser:Re.deleteOne,deleteUsers:Re.deleteMany,setCurrentUser:(t,e)=>{t.currentUser=e.payload},setCurrentUserProfile:(t,e)=>{if(!t.currentUser)return;t.currentUser.profile=e.payload;const i=t.instances[t.currentUser.id];if(!i)throw new Error("Unable to find current user in users slice");i.profile=e.payload}}}),{initializeUsers:rf,setUsers:df,setUser:uf,addUsers:lf,addUser:ia,updateUsers:of,updateUser:hf,deleteUser:aa,deleteUsers:pf,setCurrentUser:K_,setCurrentUserProfile:W_}=sa.actions,yf=sa.reducer,mf=t=>t.userReducer.currentUser,na=t=>t.userReducer.instances,Zt=u.createSelector([na],t=>Object.values(t)),Jt=t=>e=>e.userReducer.instances[t],ff=y(u.createSelector([Zt,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({id:a})=>i.has(a)))})),we=O(t=>t.uuid),Sf={instances:{}},ca=u.createSlice({name:"organizationAccess",initialState:Sf,extraReducers:t=>t.addMatcher(u.isAnyOf(T,b),e=>Object.assign(e,Sf)),reducers:{initializeOrganizationAccesses:we.initialize,addOrganizationAccess:we.addOne,addOrganizationAccesses:we.addMany,setOrganizationAccess:we.setOne,setOrganizationAccesses:we.setMany,updateOrganizationAccess:we.updateOne,updateOrganizationAccesses:we.updateMany,deleteOrganizationAccess:we.deleteOne,deleteOrganizationAccesses:we.deleteMany}}),{initializeOrganizationAccesses:Af,addOrganizationAccess:Tf,addOrganizationAccesses:If,setOrganizationAccess:Of,setOrganizationAccesses:Pf,updateOrganizationAccess:bf,updateOrganizationAccesses:Ff,deleteOrganizationAccess:_f,deleteOrganizationAccesses:Mf}=ca.actions,gf=ca.reducer,Qt=t=>t.organizationAccessReducer.instances,Rf=t=>e=>e.organizationAccessReducer.instances[t],wf=y(u.createSelector([Qt,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(Object.values(t).filter(({uuid:a})=>i.has(a)))})),X_=u.createSelector([mf,Qt],(t,e)=>Object.values(e).find(a=>a.user===t?.id)??null),Ef=u.createSelector([Qt],t=>{const e={};for(const i of Object.values(t))e[i.user]=i;return l.fallbackToEmptyObject(e)}),Y_=y(u.createSelector([na,Ef,(t,e)=>e],(t,e,i)=>l.fallbackToEmptyArray(Object.values(t).filter(a=>{const n=e[a.id];return!!n&&n.organization===i})))),Ee=O(t=>t.uuid),vf={instances:{}},ra=u.createSlice({name:"organizations",initialState:vf,extraReducers:t=>t.addMatcher(u.isAnyOf(T),e=>Object.assign(e,vf)),reducers:{initializeOrganizations:Ee.initialize,setOrganizations:Ee.setMany,setOrganization:Ee.setOne,addOrganizations:Ee.addMany,addOrganization:Ee.addOne,updateOrganizations:Ee.updateMany,updateOrganization:Ee.updateOne,deleteOrganization:Ee.deleteOne,deleteOrganizations:Ee.deleteMany}}),{initializeOrganizations:Vf,setOrganizations:Bf,setOrganization:zf,addOrganizations:jf,addOrganization:Df,updateOrganizations:Cf,updateOrganization:qf,deleteOrganization:$f,deleteOrganizations:Uf}=ra.actions,kf=t=>t.organizationReducer.instances,Lf=u.createSelector([kf],t=>Object.values(t)),Hf=t=>e=>e.organizationReducer.instances[t],Gf=y(u.createSelector([Lf,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),Nf=ra.reducer,Kf=(t,e,i)=>{const a=t.uuid?t:{...t,uuid:rt.v4()};return{payload:a,type:"",meta:{offline:{effect:{timestamp:new Date().toISOString(),request:a,BASE_URL:e,serviceName:i}}}}},Wf={deletedRequests:[],latestRetryTime:0},da=u.createSlice({name:"outbox",initialState:Wf,extraReducers:t=>t.addCase(T,e=>Object.assign(e,Wf)),reducers:{enqueueRequest:{reducer:(t,e)=>t,prepare:t=>{console.debug("Preparing to enqueue request",t.url);const{BASE_URL:e,serviceName:i,...a}=t;return Kf(a,e,i)}},markForDeletion(t,e){t.deletedRequests.push(e.payload)},markAsDeleted(t,e){const i=t.deletedRequests.indexOf(e.payload);i!==-1&&t.deletedRequests.splice(i,1)},_setLatestRetryTime:(t,e)=>{t.latestRetryTime=e.payload}}}),Z_=t=>t.outboxReducer.deletedRequests,J_=t=>t.outboxReducer.latestRetryTime,{enqueueRequest:Xf,markForDeletion:Q_,markAsDeleted:Yf,_setLatestRetryTime:Zf}=da.actions,Jf=da.reducer,ve=O(t=>t.uuid),Qf={instances:{}},ua=u.createSlice({name:"projectAccess",initialState:Qf,extraReducers:t=>t.addMatcher(u.isAnyOf(T,b),e=>Object.assign(e,Qf)),reducers:{initializeProjectAccesses:ve.initialize,addProjectAccess:ve.addOne,addProjectAccesses:ve.addMany,setProjectAccess:ve.setOne,setProjectAccesses:ve.setMany,updateProjectAccess:ve.updateOne,updateProjectAccesses:ve.updateMany,deleteProjectAccess:ve.deleteOne,deleteProjectAccesses:ve.deleteMany}}),{initializeProjectAccesses:xf,addProjectAccess:eS,addProjectAccesses:tS,setProjectAccess:sS,setProjectAccesses:iS,updateProjectAccess:aS,updateProjectAccesses:nS,deleteProjectAccess:cS,deleteProjectAccesses:rS}=ua.actions,dS=ua.reducer,la=t=>t.projectAccessReducer.instances,Mt=u.createSelector(la,t=>Object.values(t)),uS=t=>e=>e.projectAccessReducer.instances[t],lS=y(u.createSelector([Mt,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),x_=y(u.createSelector([la,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(Object.values(t).filter(i=>i.project===e)))),eM=y(u.createSelector([Mt,(t,e)=>e],(t,e)=>{const i={};for(const a of t.filter(n=>n.project===e))i[a.user]=a;return i})),tM=y(u.createSelector([Zt,Mt,(t,e)=>e],(t,e,i)=>{const a=new Set(e.filter(n=>n.project===i).map(n=>n.user));return l.fallbackToEmptyArray(t.filter(n=>a.has(n.id)))})),Ve=O(t=>t.uuid),oS={instances:{}},oa=u.createSlice({name:"projectAttachments",initialState:oS,extraReducers:t=>t.addMatcher(u.isAnyOf(T,b),e=>Object.assign(e,oS)),reducers:{initializeProjectAttachments:Ve.initialize,addProjectAttachment:Ve.addOne,addProjectAttachments:Ve.addMany,setProjectAttachment:Ve.setOne,setProjectAttachments:Ve.setMany,updateProjectAttachment:Ve.updateOne,updateProjectAttachments:Ve.updateMany,deleteProjectAttachment:Ve.deleteOne,deleteProjectAttachments:Ve.deleteMany}}),{initializeProjectAttachments:hS,addProjectAttachment:pS,addProjectAttachments:yS,setProjectAttachment:mS,setProjectAttachments:fS,updateProjectAttachment:SS,updateProjectAttachments:AS,deleteProjectAttachment:TS,deleteProjectAttachments:IS}=oa.actions,OS=t=>t.projectAttachmentReducer.instances,ha=u.createSelector([OS],t=>Object.values(t)),PS=t=>e=>e.projectAttachmentReducer.instances[t],bS=y(u.createSelector([ha,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),sM=y(u.createSelector([ha,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(({project:i})=>e===i)))),FS=oa.reducer,Be=O(t=>t.uuid),_S={instances:{}},pa=u.createSlice({name:"projectComments",initialState:_S,extraReducers:t=>t.addMatcher(u.isAnyOf(T,E,b),e=>Object.assign(e,_S)),reducers:{initializeProjectComments:Be.initialize,addProjectComment:Be.addOne,addProjectComments:Be.addMany,setProjectComment:Be.setOne,setProjectComments:Be.setMany,updateProjectComment:Be.updateOne,updateProjectComments:Be.updateMany,deleteProjectComment:Be.deleteOne,deleteProjectComments:Be.deleteMany}}),{initializeProjectComments:MS,addProjectComment:gS,addProjectComments:RS,setProjectComment:wS,setProjectComments:ES,updateProjectComment:vS,updateProjectComments:VS,deleteProjectComment:BS,deleteProjectComments:zS}=pa.actions,jS=t=>t.projectCommentReducer.instances,xt=u.createSelector([jS],t=>l.fallbackToEmptyArray(Object.values(t).toSorted(l.submittedAtModelSortFn))),DS=t=>e=>e.projectCommentReducer.instances[t],CS=y(u.createSelector([xt,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),iM=y(u.createSelector([xt,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.project===e)))),aM=y(u.createSelector([xt,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(a=>i.has(a.project)))})),qS=pa.reducer,ze=O(t=>t.uuid),$S={instances:{}},ya=u.createSlice({name:"projectFiles",initialState:$S,extraReducers:t=>t.addMatcher(u.isAnyOf(T,E,b),e=>Object.assign(e,$S)),reducers:{initializeProjectFiles:ze.initialize,setProjectFile:ze.setOne,setProjectFiles:ze.setMany,addProjectFile:ze.addOne,addProjectFiles:ze.addMany,updateProjectFile:ze.updateOne,updateProjectFiles:ze.updateMany,deleteProjectFile:ze.deleteOne,deleteProjectFiles:ze.deleteMany}}),{initializeProjectFiles:US,setProjectFile:kS,setProjectFiles:LS,addProjectFile:HS,addProjectFiles:GS,updateProjectFile:NS,updateProjectFiles:KS,deleteProjectFile:WS,deleteProjectFiles:XS}=ya.actions,YS=t=>t.projectFileReducer.instances,ZS=u.createSelector([YS],t=>l.fallbackToEmptyArray(Object.values(t).toSorted((e,i)=>e.z_index-i.z_index))),JS=t=>e=>e.projectFileReducer.instances[t],QS=y(u.createSelector([ZS,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),xS=ya.reducer,je=O(t=>t.uuid),eA={instances:{}},ma=u.createSlice({name:"projects",initialState:eA,extraReducers:t=>t.addMatcher(u.isAnyOf(T,b),e=>Object.assign(e,eA)),reducers:{initializeProjects:je.initialize,setProjects:je.setMany,setProject:je.setOne,addProjects:je.addMany,addProject:je.addOne,updateProjects:je.updateMany,updateProject:je.updateOne,deleteProject:je.deleteOne,deleteProjects:je.deleteMany}}),{initializeProjects:tA,setProjects:sA,setProject:iA,addProjects:aA,addProject:nA,updateProjects:cA,updateProject:rA,deleteProject:dA,deleteProjects:uA}=ma.actions,lA=ma.reducer,oA=t=>t.projectReducer.instances,es=u.createSelector([oA],t=>Object.values(t)),hA=t=>e=>e.projectReducer.instances[t],pA=y(u.createSelector([es,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),nM=y(u.createSelector([es,Mt,(t,e)=>e],(t,e,i)=>{const a=new Set(e.filter(n=>n.user===i).map(n=>n.project));return l.fallbackToEmptyArray(t.filter(n=>a.has(n.uuid)))})),cM=y(u.createSelector([es,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.organization===e)))),De=O(({uuid:t})=>t),yA={instances:{}},fa=u.createSlice({name:"procedureInitiatives",initialState:yA,extraReducers:t=>t.addMatcher(u.isAnyOf(T,E,b),e=>Object.assign(e,yA)),reducers:{initializeProcedureInitiatives:De.initialize,addProcedureInitiative:De.addOne,addProcedureInitiatives:De.addMany,setProcedureInitiative:De.setOne,setProcedureInitiatives:De.setMany,updateProcedureInitiative:De.updateOne,updateProcedureInitiatives:De.updateMany,deleteProcedureInitiative:De.deleteOne,deleteProcedureInitiatives:De.deleteMany}}),{initializeProcedureInitiatives:mA,addProcedureInitiative:fA,addProcedureInitiatives:SA,setProcedureInitiative:AA,setProcedureInitiatives:TA,updateProcedureInitiative:IA,updateProcedureInitiatives:OA,deleteProcedureInitiative:PA,deleteProcedureInitiatives:bA}=fa.actions,FA=fa.reducer,_A=t=>t.procedureInitiativeReducer.instances,ts=u.createSelector([_A],t=>Object.values(t)),MA=t=>e=>e.procedureInitiativeReducer.instances[t],gA=y(u.createSelector([ts,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),rM=y(u.createSelector([ts,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.project===e)))),dM=y(u.createSelector([ts,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.procedure_type===e)))),Ce=O(({uuid:t})=>t),RA={instances:{}},Sa=u.createSlice({name:"procedures",initialState:RA,extraReducers:t=>t.addMatcher(u.isAnyOf(T,E,b),e=>Object.assign(e,RA)),reducers:{initializeProcedures:Ce.initialize,addProcedure:Ce.addOne,addProcedures:Ce.addMany,setProcedure:Ce.setOne,setProcedures:Ce.setMany,updateProcedure:Ce.updateOne,updateProcedures:Ce.updateMany,deleteProcedure:Ce.deleteOne,deleteProcedures:Ce.deleteMany}}),{initializeProcedures:wA,addProcedure:EA,addProcedures:Tt,setProcedure:vA,setProcedures:VA,updateProcedure:BA,updateProcedures:zA,deleteProcedure:jA,deleteProcedures:It}=Sa.actions,DA=Sa.reducer,CA=t=>t.procedureReducer.instances,lt=u.createSelector([CA],t=>Object.values(t)),qA=t=>e=>e.procedureReducer.instances[t],$A=y(u.createSelector([lt,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),uM=y(u.createSelector([lt,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.project===e)))),UA=y(u.createSelector([lt,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.procedure_type===e)))),kA=y(u.createSelector([lt,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.asset===e)))),LA=y(u.createSelector([lt,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({asset:a})=>i.has(a)))})),HA=y(u.createSelector([lt,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.procedure_initiative===e)))),qe=O(t=>t.uuid),GA={instances:{}},Aa=u.createSlice({name:"procedureStepAssignees",initialState:GA,extraReducers:t=>t.addMatcher(u.isAnyOf(T,E,b),e=>Object.assign(e,GA)),reducers:{initializeProcedureStepAssignees:qe.initialize,addProcedureStepAssignee:qe.addOne,addProcedureStepAssignees:qe.addMany,setProcedureStepAssignee:qe.setOne,setProcedureStepAssignees:qe.setMany,updateProcedureStepAssignee:qe.updateOne,updateProcedureStepAssignees:qe.updateMany,deleteProcedureStepAssignee:qe.deleteOne,deleteProcedureStepAssignees:qe.deleteMany}}),{initializeProcedureStepAssignees:NA,addProcedureStepAssignee:KA,addProcedureStepAssignees:WA,setProcedureStepAssignee:XA,setProcedureStepAssignees:YA,updateProcedureStepAssignee:ZA,updateProcedureStepAssignees:JA,deleteProcedureStepAssignee:QA,deleteProcedureStepAssignees:xA}=Aa.actions,eT=t=>t.procedureStepAssigneeReducer.instances,gt=u.createSelector([eT],t=>Object.values(t)),tT=t=>e=>e.procedureStepAssigneeReducer.instances[t],sT=y(u.createSelector([gt,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),lM=y(u.createSelector([gt,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.procedure===e)))),oM=y(u.createSelector([gt,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.procedure_step===e)))),hM=y(u.createSelector([gt,(t,e)=>e,(t,e,i)=>i],(t,e,i)=>l.fallbackToEmptyArray(t.filter(({procedure:a,procedure_step:n})=>a===e&&n===i)))),iT=Aa.reducer,$e=O(t=>t.uuid),aT={instances:{}},Ta=u.createSlice({name:"procedureStepComments",initialState:aT,extraReducers:t=>t.addMatcher(u.isAnyOf(T,E,b),e=>Object.assign(e,aT)),reducers:{initializeProcedureStepComments:$e.initialize,addProcedureStepComment:$e.addOne,addProcedureStepComments:$e.addMany,setProcedureStepComment:$e.setOne,setProcedureStepComments:$e.setMany,updateProcedureStepComment:$e.updateOne,updateProcedureStepComments:$e.updateMany,deleteProcedureStepComment:$e.deleteOne,deleteProcedureStepComments:$e.deleteMany}}),{initializeProcedureStepComments:nT,addProcedureStepComment:cT,addProcedureStepComments:rT,setProcedureStepComment:dT,setProcedureStepComments:uT,updateProcedureStepComment:lT,updateProcedureStepComments:oT,deleteProcedureStepComment:hT,deleteProcedureStepComments:pT}=Ta.actions,yT=t=>t.procedureStepCommentReducer.instances,Rt=u.createSelector([yT],t=>Object.values(t)),mT=t=>e=>e.procedureStepCommentReducer.instances[t],fT=y(u.createSelector([Rt,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),pM=y(u.createSelector([Rt,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.procedure===e)))),yM=y(u.createSelector([Rt,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.procedure_step===e)))),mM=y(u.createSelector([Rt,(t,e)=>e,(t,e,i)=>i],(t,e,i)=>l.fallbackToEmptyArray(t.filter(({procedure:a,procedure_step:n})=>a===e&&n===i)))),ST=Ta.reducer,Ue=O(t=>t.uuid),AT={instances:{}},Ia=u.createSlice({name:"procedureStepDefaultAssignees",initialState:AT,extraReducers:t=>t.addMatcher(u.isAnyOf(T,b),e=>Object.assign(e,AT)),reducers:{initializeProcedureStepDefaultAssignees:Ue.initialize,addProcedureStepDefaultAssignee:Ue.addOne,addProcedureStepDefaultAssignees:Ue.addMany,setProcedureStepDefaultAssignee:Ue.setOne,setProcedureStepDefaultAssignees:Ue.setMany,updateProcedureStepDefaultAssignee:Ue.updateOne,updateProcedureStepDefaultAssignees:Ue.updateMany,deleteProcedureStepDefaultAssignee:Ue.deleteOne,deleteProcedureStepDefaultAssignees:Ue.deleteMany}}),{initializeProcedureStepDefaultAssignees:TT,addProcedureStepDefaultAssignee:IT,addProcedureStepDefaultAssignees:OT,setProcedureStepDefaultAssignee:PT,setProcedureStepDefaultAssignees:bT,updateProcedureStepDefaultAssignee:FT,updateProcedureStepDefaultAssignees:_T,deleteProcedureStepDefaultAssignee:MT,deleteProcedureStepDefaultAssignees:gT}=Ia.actions,RT=t=>t.procedureStepDefaultAssigneeReducer.instances,Oa=u.createSelector([RT],t=>Object.values(t)),wT=t=>e=>e.procedureStepDefaultAssigneeReducer.instances[t],ET=y(u.createSelector([Oa,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),fM=y(u.createSelector([Oa,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.procedure_step===e)))),vT=Ia.reducer,ke=O(t=>t.uuid),VT={instances:{}},Pa=u.createSlice({name:"procedureStepDefaultReviewers",initialState:VT,extraReducers:t=>t.addMatcher(u.isAnyOf(T,b),e=>Object.assign(e,VT)),reducers:{initializeProcedureStepDefaultReviewers:ke.initialize,addProcedureStepDefaultReviewer:ke.addOne,addProcedureStepDefaultReviewers:ke.addMany,setProcedureStepDefaultReviewer:ke.setOne,setProcedureStepDefaultReviewers:ke.setMany,updateProcedureStepDefaultReviewer:ke.updateOne,updateProcedureStepDefaultReviewers:ke.updateMany,deleteProcedureStepDefaultReviewer:ke.deleteOne,deleteProcedureStepDefaultReviewers:ke.deleteMany}}),{initializeProcedureStepDefaultReviewers:BT,addProcedureStepDefaultReviewer:zT,addProcedureStepDefaultReviewers:jT,setProcedureStepDefaultReviewer:DT,setProcedureStepDefaultReviewers:CT,updateProcedureStepDefaultReviewer:qT,updateProcedureStepDefaultReviewers:$T,deleteProcedureStepDefaultReviewer:UT,deleteProcedureStepDefaultReviewers:kT}=Pa.actions,LT=t=>t.procedureStepDefaultReviewerReducer.instances,ba=u.createSelector([LT],t=>Object.values(t)),HT=t=>e=>e.procedureStepDefaultReviewerReducer.instances[t],GT=y(u.createSelector([ba,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),SM=y(u.createSelector([ba,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.procedure_step===e)))),NT=Pa.reducer,Le=O(t=>t.uuid),KT={instances:{}},Fa=u.createSlice({name:"procedureStepEvents",initialState:KT,extraReducers:t=>t.addMatcher(u.isAnyOf(T,E,b),e=>Object.assign(e,KT)),reducers:{initializeProcedureStepEvents:Le.initialize,addProcedureStepEvent:Le.addOne,addProcedureStepEvents:Le.addMany,setProcedureStepEvent:Le.setOne,setProcedureStepEvents:Le.setMany,updateProcedureStepEvent:Le.updateOne,updateProcedureStepEvents:Le.updateMany,deleteProcedureStepEvent:Le.deleteOne,deleteProcedureStepEvents:Le.deleteMany}}),{initializeProcedureStepEvents:WT,addProcedureStepEvent:XT,addProcedureStepEvents:YT,setProcedureStepEvent:ZT,setProcedureStepEvents:JT,updateProcedureStepEvent:QT,updateProcedureStepEvents:xT,deleteProcedureStepEvent:eI,deleteProcedureStepEvents:tI}=Fa.actions,sI=t=>t.procedureStepEventReducer.instances,wt=u.createSelector([sI],t=>Object.values(t)),iI=t=>e=>e.procedureStepEventReducer.instances[t],aI=y(u.createSelector([wt,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),AM=y(u.createSelector([wt,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.procedure===e)))),TM=y(u.createSelector([wt,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.procedure_step===e)))),IM=y(u.createSelector([wt,(t,e)=>e,(t,e,i)=>i],(t,e,i)=>l.fallbackToEmptyArray(t.filter(({procedure:a,procedure_step:n})=>a===e&&n===i)))),nI=Fa.reducer,He=O(t=>t.uuid),cI={instances:{}},_a=u.createSlice({name:"procedureStepFieldsAttachments",initialState:cI,extraReducers:t=>t.addMatcher(u.isAnyOf(T,b),e=>Object.assign(e,cI)),reducers:{initializeProcedureStepFieldsAttachments:He.initialize,addProcedureStepFieldsAttachment:He.addOne,addProcedureStepFieldsAttachments:He.addMany,setProcedureStepFieldsAttachment:He.setOne,setProcedureStepFieldsAttachments:He.setMany,updateProcedureStepFieldsAttachment:He.updateOne,updateProcedureStepFieldsAttachments:He.updateMany,deleteProcedureStepFieldsAttachment:He.deleteOne,deleteProcedureStepFieldsAttachments:He.deleteMany}}),{initializeProcedureStepFieldsAttachments:rI,addProcedureStepFieldsAttachment:dI,addProcedureStepFieldsAttachments:Ma,setProcedureStepFieldsAttachment:uI,setProcedureStepFieldsAttachments:lI,updateProcedureStepFieldsAttachment:oI,updateProcedureStepFieldsAttachments:hI,deleteProcedureStepFieldsAttachment:pI,deleteProcedureStepFieldsAttachments:ga}=_a.actions,yI=t=>t.procedureStepFieldsAttachmentReducer.instances,Ra=u.createSelector([yI],t=>Object.values(t)),mI=y(u.createSelector([Ra,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.fields_revision===e)))),fI=t=>e=>e.procedureStepFieldsAttachmentReducer.instances[t],SI=y(u.createSelector([Ra,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),AI=_a.reducer,Ge=O(t=>t.uuid),TI={instances:{}},wa=u.createSlice({name:"procedureStepFields",initialState:TI,extraReducers:t=>t.addMatcher(u.isAnyOf(T,b),e=>Object.assign(e,TI)),reducers:{initializeProcedureStepFields:Ge.initialize,addProcedureStepFields:Ge.addOne,addProcedureStepFieldsMany:Ge.addMany,setProcedureStepFields:Ge.setOne,setProcedureStepFieldsMany:Ge.setMany,updateProcedureStepFields:Ge.updateOne,updateProcedureStepFieldsMany:Ge.updateMany,deleteProcedureStepFields:Ge.deleteOne,deleteProcedureStepFieldsMany:Ge.deleteMany}}),{initializeProcedureStepFields:II,addProcedureStepFields:OI,addProcedureStepFieldsMany:PI,setProcedureStepFields:bI,setProcedureStepFieldsMany:FI,updateProcedureStepFields:_I,updateProcedureStepFieldsMany:MI,deleteProcedureStepFields:gI,deleteProcedureStepFieldsMany:RI}=wa.actions,Ea=t=>t.procedureStepFieldsReducer.instances,ss=u.createSelector([Ea],t=>Object.values(t)),OM=y(u.createSelector([ss,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.procedure_step===e)))),PM=y(u.createSelector([ss,(t,e)=>e],(t,e)=>t.filter(i=>i.procedure_step===e).toSorted(l.submittedAtModelSortFn).pop())),bM=u.createSelector([Ea],t=>{const e={};for(const i of Object.values(t)){const a=e[i.procedure_step];(!a||a.submitted_at<i.submitted_at)&&(e[i.procedure_step]=i)}return e}),wI=t=>e=>e.procedureStepFieldsReducer.instances[t],EI=y(u.createSelector([ss,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),vI=wa.reducer,Ne=O(t=>t.uuid),VI={instances:{}},va=u.createSlice({name:"procedureStepFieldValuesAttachments",initialState:VI,extraReducers:t=>t.addMatcher(u.isAnyOf(T,E,b),e=>Object.assign(e,VI)),reducers:{initializeProcedureStepFieldValuesAttachments:Ne.initialize,addProcedureStepFieldValuesAttachment:Ne.addOne,addProcedureStepFieldValuesAttachments:Ne.addMany,setProcedureStepFieldValuesAttachment:Ne.setOne,setProcedureStepFieldValuesAttachments:Ne.setMany,updateProcedureStepFieldValuesAttachment:Ne.updateOne,updateProcedureStepFieldValuesAttachments:Ne.updateMany,deleteProcedureStepFieldValuesAttachment:Ne.deleteOne,deleteProcedureStepFieldValuesAttachments:Ne.deleteMany}}),{initializeProcedureStepFieldValuesAttachments:BI,addProcedureStepFieldValuesAttachment:zI,addProcedureStepFieldValuesAttachments:Va,setProcedureStepFieldValuesAttachment:jI,setProcedureStepFieldValuesAttachments:DI,updateProcedureStepFieldValuesAttachment:CI,updateProcedureStepFieldValuesAttachments:qI,deleteProcedureStepFieldValuesAttachment:$I,deleteProcedureStepFieldValuesAttachments:Ba}=va.actions,UI=t=>t.procedureStepFieldValuesAttachmentReducer.instances,za=u.createSelector([UI],t=>Object.values(t)),kI=t=>e=>e.procedureStepFieldValuesAttachmentReducer.instances[t],LI=y(u.createSelector([za,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),HI=y(u.createSelector([za,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.field_values===e)))),GI=va.reducer,Ke=O(t=>t.uuid),NI={instances:{}},ja=u.createSlice({name:"procedureStepFieldValues",initialState:NI,extraReducers:t=>t.addMatcher(u.isAnyOf(T,E,b),e=>Object.assign(e,NI)),reducers:{initializeProcedureStepFieldValues:Ke.initialize,addProcedureStepFieldValues:Ke.addOne,addProcedureStepFieldValuesMany:Ke.addMany,setProcedureStepFieldValues:Ke.setOne,setProcedureStepFieldValuesMany:Ke.setMany,updateProcedureStepFieldValues:Ke.updateOne,updateProcedureStepFieldValuesMany:Ke.updateMany,deleteProcedureStepFieldValues:Ke.deleteOne,deleteProcedureStepFieldValuesMany:Ke.deleteMany}}),{initializeProcedureStepFieldValues:KI,addProcedureStepFieldValues:WI,addProcedureStepFieldValuesMany:XI,setProcedureStepFieldValues:YI,setProcedureStepFieldValuesMany:ZI,updateProcedureStepFieldValues:JI,updateProcedureStepFieldValuesMany:QI,deleteProcedureStepFieldValues:xI,deleteProcedureStepFieldValuesMany:eO}=ja.actions,tO=ja.reducer,sO=t=>t.procedureStepFieldValuesReducer.instances,ot=u.createSelector([sO],t=>Object.values(t)),FM=y(u.createSelector([ot,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.procedure===e)))),_M=y(u.createSelector([ot,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.procedure_step===e)))),iO=t=>e=>e.procedureStepFieldValuesReducer.instances[t],aO=y(u.createSelector([ot,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),MM=y(u.createSelector([ot,(t,e)=>e,(t,e,i)=>i],(t,e,i)=>l.fallbackToEmptyArray(t.filter(({procedure:a,procedure_step:n})=>a===e&&n===i)))),We=O(t=>t.uuid),nO={instances:{}},Da=u.createSlice({name:"procedureStepFieldValuesReviews",initialState:nO,extraReducers:t=>t.addMatcher(u.isAnyOf(T,E,b),e=>Object.assign(e,nO)),reducers:{initializeProcedureStepFieldValuesReviews:We.initialize,addProcedureStepFieldValuesReview:We.addOne,addProcedureStepFieldValuesReviews:We.addMany,setProcedureStepFieldValuesReview:We.setOne,setProcedureStepFieldValuesReviews:We.setMany,updateProcedureStepFieldValuesReview:We.updateOne,updateProcedureStepFieldValuesReviews:We.updateMany,deleteProcedureStepFieldValuesReview:We.deleteOne,deleteProcedureStepFieldValuesReviews:We.deleteMany}}),{initializeProcedureStepFieldValuesReviews:cO,addProcedureStepFieldValuesReview:rO,addProcedureStepFieldValuesReviews:Ca,setProcedureStepFieldValuesReview:dO,setProcedureStepFieldValuesReviews:uO,updateProcedureStepFieldValuesReview:lO,updateProcedureStepFieldValuesReviews:oO,deleteProcedureStepFieldValuesReview:hO,deleteProcedureStepFieldValuesReviews:qa}=Da.actions,pO=t=>t.procedureStepFieldValuesReviewReducer.instances,ht=u.createSelector([pO],t=>Object.values(t)),yO=t=>e=>e.procedureStepFieldValuesReviewReducer.instances[t],mO=y(u.createSelector([ht,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),fO=y(u.createSelector([ht,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.field_values===e)))),gM=y(u.createSelector([ht,(t,e)=>e],(t,e)=>{let i;for(const a of t){const{field_values:n}=a;n===e&&(!i||i.submitted_at<=a.submitted_at)&&(i=a)}return i})),RM=y(u.createSelector([ot,ht,(t,e)=>e],(t,e,i)=>{const a=new Set(l.toUuidArray(t.filter(({procedure:n})=>i===n)));return l.fallbackToEmptyArray(e.filter(({field_values:n})=>a.has(n)))})),wM=y(u.createSelector([ot,ht,(t,e)=>e,(t,e,i)=>i],(t,e,i,a)=>{const n=new Set(l.toUuidArray(t.filter(({procedure_step:c,procedure:d})=>i===d&&c===a)));return l.fallbackToEmptyArray(e.filter(({field_values:c})=>n.has(c)))})),EM=u.createSelector([ht],t=>{const e={};for(const i of t){const{field_values:a}=i,n=e[a];(!n||n.submitted_at<=i.submitted_at)&&(e[a]=i)}return e}),SO=Da.reducer,Xe=O(t=>t.uuid),AO={instances:{}},$a=u.createSlice({name:"procedureStepReviewers",initialState:AO,extraReducers:t=>t.addMatcher(u.isAnyOf(T,E,b),e=>Object.assign(e,AO)),reducers:{initializeProcedureStepReviewers:Xe.initialize,addProcedureStepReviewer:Xe.addOne,addProcedureStepReviewers:Xe.addMany,setProcedureStepReviewer:Xe.setOne,setProcedureStepReviewers:Xe.setMany,updateProcedureStepReviewer:Xe.updateOne,updateProcedureStepReviewers:Xe.updateMany,deleteProcedureStepReviewer:Xe.deleteOne,deleteProcedureStepReviewers:Xe.deleteMany}}),{initializeProcedureStepReviewers:TO,addProcedureStepReviewer:IO,addProcedureStepReviewers:OO,setProcedureStepReviewer:PO,setProcedureStepReviewers:bO,updateProcedureStepReviewer:FO,updateProcedureStepReviewers:_O,deleteProcedureStepReviewer:MO,deleteProcedureStepReviewers:gO}=$a.actions,RO=t=>t.procedureStepReviewerReducer.instances,Et=u.createSelector([RO],t=>Object.values(t)),wO=t=>e=>e.procedureStepReviewerReducer.instances[t],EO=y(u.createSelector([Et,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),vM=y(u.createSelector([Et,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.procedure===e)))),VM=y(u.createSelector([Et,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.procedure_step===e)))),BM=y(u.createSelector([Et,(t,e)=>e,(t,e,i)=>i],(t,e,i)=>l.fallbackToEmptyArray(t.filter(({procedure:a,procedure_step:n})=>a===e&&n===i)))),vO=$a.reducer,Ye=O(t=>t.uuid),VO={instances:{}},Ua=u.createSlice({name:"procedureSteps",initialState:VO,extraReducers:t=>t.addMatcher(u.isAnyOf(T,b),e=>Object.assign(e,VO)),reducers:{initializeProcedureSteps:Ye.initialize,setProcedureStep:Ye.setOne,setProcedureSteps:Ye.setMany,addProcedureStep:Ye.addOne,addProcedureSteps:Ye.addMany,updateProcedureStep:Ye.updateOne,updateProcedureSteps:Ye.updateMany,deleteProcedureStep:Ye.deleteOne,deleteProcedureSteps:Ye.deleteMany}}),{initializeProcedureSteps:BO,setProcedureStep:zO,setProcedureSteps:jO,addProcedureStep:DO,addProcedureSteps:CO,updateProcedureStep:qO,updateProcedureSteps:$O,deleteProcedureStep:UO,deleteProcedureSteps:kO}=Ua.actions,LO=Ua.reducer,ka=t=>t.procedureStepReducer.instances,HO=t=>e=>e.procedureStepReducer.instances[t],La=u.createSelector([ka],t=>Object.values(t).toSorted((e,i)=>e.order-i.order)),zM=y(u.createSelector([ka,(t,e)=>e],(t,e)=>{const i={};for(const[a,n]of Object.entries(t))n.procedure_type===e&&(i[a]=n);return l.fallbackToEmptyObject(i)})),jM=y(u.createSelector([La,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.procedure_type===e)))),GO=y(u.createSelector([La,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),Ze=O(({uuid:t})=>t),NO={instances:{}},Ha=u.createSlice({name:"procedureTypeAttachments",initialState:NO,extraReducers:t=>t.addMatcher(u.isAnyOf(T,b),e=>Object.assign(e,NO)),reducers:{initializeProcedureTypeAttachments:Ze.initialize,addProcedureTypeAttachment:Ze.addOne,addProcedureTypeAttachments:Ze.addMany,setProcedureTypeAttachment:Ze.setOne,setProcedureTypeAttachments:Ze.setMany,updateProcedureTypeAttachment:Ze.updateOne,updateProcedureTypeAttachments:Ze.updateMany,deleteProcedureTypeAttachment:Ze.deleteOne,deleteProcedureTypeAttachments:Ze.deleteMany}}),{initializeProcedureTypeAttachments:KO,addProcedureTypeAttachment:WO,addProcedureTypeAttachments:XO,setProcedureTypeAttachment:YO,setProcedureTypeAttachments:ZO,updateProcedureTypeAttachment:JO,updateProcedureTypeAttachments:QO,deleteProcedureTypeAttachment:xO,deleteProcedureTypeAttachments:eP}=Ha.actions,tP=Ha.reducer,sP=t=>t.procedureTypeAttachmentReducer.instances,Ga=u.createSelector([sP],t=>Object.values(t)),iP=t=>e=>e.procedureTypeAttachmentReducer.instances[t],aP=y(u.createSelector([Ga,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),DM=y(u.createSelector([Ga,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(({procedure_type:i})=>e===i)))),Je=O(({uuid:t})=>t),nP={instances:{}},Na=u.createSlice({name:"procedureTypeFieldsAttachments",initialState:nP,extraReducers:t=>t.addMatcher(u.isAnyOf(T,b),e=>Object.assign(e,nP)),reducers:{initializeProcedureTypeFieldsAttachments:Je.initialize,addProcedureTypeFieldsAttachment:Je.addOne,addProcedureTypeFieldsAttachments:Je.addMany,setProcedureTypeFieldsAttachment:Je.setOne,setProcedureTypeFieldsAttachments:Je.setMany,updateProcedureTypeFieldsAttachment:Je.updateOne,updateProcedureTypeFieldsAttachments:Je.updateMany,deleteProcedureTypeFieldsAttachment:Je.deleteOne,deleteProcedureTypeFieldsAttachments:Je.deleteMany}}),{initializeProcedureTypeFieldsAttachments:cP,addProcedureTypeFieldsAttachment:rP,addProcedureTypeFieldsAttachments:dP,setProcedureTypeFieldsAttachment:uP,setProcedureTypeFieldsAttachments:lP,updateProcedureTypeFieldsAttachment:oP,updateProcedureTypeFieldsAttachments:hP,deleteProcedureTypeFieldsAttachment:pP,deleteProcedureTypeFieldsAttachments:yP}=Na.actions,mP=Na.reducer,fP=t=>t.procedureTypeFieldsAttachmentReducer.instances,Ka=u.createSelector([fP],t=>Object.values(t)),CM=y(u.createSelector([Ka,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.fields_revision===e)))),SP=t=>e=>e.procedureTypeFieldsAttachmentReducer.instances[t],AP=y(u.createSelector([Ka,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),Qe=O(({uuid:t})=>t),TP={instances:{}},Wa=u.createSlice({name:"procedureTypeFields",initialState:TP,extraReducers:t=>t.addMatcher(u.isAnyOf(T,b),e=>Object.assign(e,TP)),reducers:{initializeProcedureTypeFields:Qe.initialize,addProcedureTypeFields:Qe.addOne,addProcedureTypeFieldsMany:Qe.addMany,setProcedureTypeFields:Qe.setOne,setProcedureTypeFieldsMany:Qe.setMany,updateProcedureTypeFields:Qe.updateOne,updateProcedureTypeFieldsMany:Qe.updateMany,deleteProcedureTypeFields:Qe.deleteOne,deleteProcedureTypeFieldsMany:Qe.deleteMany}}),{initializeProcedureTypeFields:IP,addProcedureTypeFields:OP,addProcedureTypeFieldsMany:PP,setProcedureTypeFields:bP,setProcedureTypeFieldsMany:FP,updateProcedureTypeFields:_P,updateProcedureTypeFieldsMany:MP,deleteProcedureTypeFields:gP,deleteProcedureTypeFieldsMany:RP}=Wa.actions,wP=Wa.reducer,EP=t=>t.procedureTypeFieldsReducer.instances,is=u.createSelector([EP],t=>Object.values(t)),qM=y(u.createSelector([is,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.procedure_type===e)))),$M=y(u.createSelector([is,(t,e)=>e],(t,e)=>t.filter(i=>i.procedure_type===e).sort((i,a)=>i.submitted_at>a.submitted_at?-1:1)[0])),vP=t=>e=>e.procedureTypeFieldsReducer.instances[t],VP=y(u.createSelector([is,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),xe=O(({uuid:t})=>t),BP={instances:{}},Xa=u.createSlice({name:"procedureFieldValuesAttachments",initialState:BP,extraReducers:t=>t.addMatcher(u.isAnyOf(T,E,b),e=>Object.assign(e,BP)),reducers:{initializeProcedureFieldValuesAttachments:xe.initialize,addProcedureFieldValuesAttachment:xe.addOne,addProcedureFieldValuesAttachments:xe.addMany,setProcedureFieldValuesAttachment:xe.setOne,setProcedureFieldValuesAttachments:xe.setMany,updateProcedureFieldValuesAttachment:xe.updateOne,updateProcedureFieldValuesAttachments:xe.updateMany,deleteProcedureFieldValuesAttachment:xe.deleteOne,deleteProcedureFieldValuesAttachments:xe.deleteMany}}),{initializeProcedureFieldValuesAttachments:zP,addProcedureFieldValuesAttachment:jP,addProcedureFieldValuesAttachments:Ya,setProcedureFieldValuesAttachment:DP,setProcedureFieldValuesAttachments:CP,updateProcedureFieldValuesAttachment:qP,updateProcedureFieldValuesAttachments:$P,deleteProcedureFieldValuesAttachment:UP,deleteProcedureFieldValuesAttachments:Za}=Xa.actions,kP=Xa.reducer,LP=t=>t.procedureFieldValuesAttachmentReducer.instances,Ja=u.createSelector([LP],t=>Object.values(t)),HP=t=>e=>e.procedureFieldValuesAttachmentReducer.instances[t],GP=y(u.createSelector([Ja,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),NP=y(u.createSelector([Ja,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.field_values===e)))),et=O(({uuid:t})=>t),KP={instances:{}},Qa=u.createSlice({name:"procedureFieldValues",initialState:KP,extraReducers:t=>t.addMatcher(u.isAnyOf(T,E,b),e=>Object.assign(e,KP)),reducers:{initializeProcedureFieldValues:et.initialize,addProcedureFieldValues:et.addOne,addProcedureFieldValuesMany:et.addMany,setProcedureFieldValues:et.setOne,setProcedureFieldValuesMany:et.setMany,updateProcedureFieldValues:et.updateOne,updateProcedureFieldValuesMany:et.updateMany,deleteProcedureFieldValues:et.deleteOne,deleteProcedureFieldValuesMany:et.deleteMany}}),{initializeProcedureFieldValues:WP,addProcedureFieldValues:XP,addProcedureFieldValuesMany:YP,setProcedureFieldValues:ZP,setProcedureFieldValuesMany:JP,updateProcedureFieldValues:QP,updateProcedureFieldValuesMany:xP,deleteProcedureFieldValues:eb,deleteProcedureFieldValuesMany:tb}=Qa.actions,sb=Qa.reducer,ib=t=>t.procedureFieldValuesReducer.instances,xa=u.createSelector([ib],t=>Object.values(t)),UM=y(u.createSelector([xa,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.procedure===e)))),ab=t=>e=>e.procedureFieldValuesReducer.instances[t],nb=y(u.createSelector([xa,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),tt=O(t=>t.uuid),cb={instances:{}},en=u.createSlice({name:"procedureTypes",initialState:cb,extraReducers:t=>t.addMatcher(u.isAnyOf(T,b),e=>Object.assign(e,cb)),reducers:{initializeProcedureTypes:tt.initialize,addProcedureType:tt.addOne,addProcedureTypes:tt.addMany,setProcedureType:tt.setOne,setProcedureTypes:tt.setMany,updateProcedureType:tt.updateOne,updateProcedureTypes:tt.updateMany,deleteProcedureType:tt.deleteOne,deleteProcedureTypes:tt.deleteMany}}),{initializeProcedureTypes:rb,addProcedureType:db,addProcedureTypes:ub,setProcedureType:lb,setProcedureTypes:ob,updateProcedureType:hb,updateProcedureTypes:pb,deleteProcedureType:yb,deleteProcedureTypes:mb}=en.actions,fb=en.reducer,Sb=t=>t.procedureTypeReducer.instances,tn=u.createSelector([Sb],t=>Object.values(t)),Ab=t=>e=>e.procedureTypeReducer.instances[t],Tb=y(u.createSelector([tn,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),kM=y(u.createSelector([tn,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.organization===e)))),LM={isRehydrated:!1},sn=u.createSlice({name:"rehydrated",initialState:LM,reducers:{setRehydrated:(t,e)=>{t.isRehydrated=e.payload}}}),{setRehydrated:HM}=sn.actions,GM=t=>t.rehydratedReducer.isRehydrated,Ib=sn.reducer,st=O(t=>t.uuid),Ob={instances:{}},an=u.createSlice({name:"reports",initialState:Ob,extraReducers:t=>t.addMatcher(u.isAnyOf(T,E,b),e=>Object.assign(e,Ob)),reducers:{initializeReports:st.initialize,addReport:st.addOne,addReports:st.addMany,setReport:st.setOne,setReports:st.setMany,updateReport:st.updateOne,updateReports:st.updateMany,deleteReport:st.deleteOne,deleteReports:st.deleteMany}}),{initializeReports:Pb,addReport:bb,addReports:Fb,setReport:_b,setReports:Mb,updateReport:gb,updateReports:Rb,deleteReport:wb,deleteReports:Eb}=an.actions,vb=t=>t.reportReducer.instances,Vb=u.createSelector([vb],t=>l.fallbackToEmptyArray(Object.values(t))),Bb=t=>e=>e.reportReducer.instances[t],zb=y(u.createSelector([Vb,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),jb=an.reducer,it=O(t=>t.uuid),Db={instances:{}},nn=u.createSlice({name:"teamMemberships",initialState:Db,extraReducers:t=>t.addMatcher(u.isAnyOf(T,b),e=>Object.assign(e,Db)),reducers:{initializeTeamMemberships:it.initialize,addTeamMembership:it.addOne,addTeamMemberships:it.addMany,setTeamMembership:it.setOne,setTeamMemberships:it.setMany,updateTeamMembership:it.updateOne,updateTeamMemberships:it.updateMany,deleteTeamMembership:it.deleteOne,deleteTeamMemberships:it.deleteMany}}),{initializeTeamMemberships:Cb,addTeamMembership:qb,addTeamMemberships:$b,setTeamMembership:Ub,setTeamMemberships:kb,updateTeamMembership:Lb,updateTeamMemberships:Hb,deleteTeamMembership:Gb,deleteTeamMemberships:Nb}=nn.actions,Kb=nn.reducer,Wb=t=>t.teamMembershipReducer.instances,as=u.createSelector([Wb],t=>Object.values(t)),Xb=t=>e=>e.teamMembershipReducer.instances[t],Yb=y(u.createSelector([as,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),NM=y(u.createSelector([as,(t,e)=>e],(t,e)=>{const i={};for(const a of t.filter(n=>n.team===e))i[a.user]=a;return i})),KM=y(u.createSelector([Zt,as,(t,e)=>e],(t,e,i)=>{const a=new Set(e.filter(n=>n.team===i).map(n=>n.user));return l.fallbackToEmptyArray(t.filter(n=>a.has(n.id)))})),at=O(t=>t.uuid),Zb={instances:{}},cn=u.createSlice({name:"teams",initialState:Zb,extraReducers:t=>t.addMatcher(u.isAnyOf(T,b),e=>Object.assign(e,Zb)),reducers:{initializeTeams:at.initialize,addTeam:at.addOne,addTeams:at.addMany,setTeam:at.setOne,setTeams:at.setMany,updateTeam:at.updateOne,updateTeams:at.updateMany,deleteTeam:at.deleteOne,deleteTeams:at.deleteMany}}),{initializeTeams:Jb,addTeam:Qb,addTeams:xb,setTeam:eF,setTeams:tF,updateTeam:sF,updateTeams:iF,deleteTeam:aF,deleteTeams:nF}=cn.actions,cF=t=>t.teamReducer.instances,rn=u.createSelector([cF],t=>Object.values(t)),rF=t=>e=>e.teamReducer.instances[t],dF=y(u.createSelector([rn,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),WM=y(u.createSelector([rn,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.organization===e)))),uF=cn.reducer,dn={outboxReducer:Jf,authReducer:gd},XM=u.combineReducers(dn),lF={...dn,assetReducer:dc,assetAttachmentReducer:jn,assetCommentReducer:Yn,assetTypeReducer:ld,assetTypeAttachmentReducer:Oc,issueReducer:Tp,issueAttachmentReducer:Bh,issueTypeReducer:jm,issueTypeAttachmentReducer:Bp,organizationReducer:Nf,projectReducer:lA,projectAttachmentReducer:FS,projectCommentReducer:qS,projectAccessReducer:dS,organizationAccessReducer:gf,projectFileReducer:xS,procedureTypeReducer:fb,procedureInitiativeReducer:FA,procedureReducer:DA,procedureTypeFieldsReducer:wP,procedureFieldValuesReducer:sb,procedureTypeAttachmentReducer:tP,procedureTypeFieldsAttachmentReducer:mP,procedureFieldValuesAttachmentReducer:kP,procedureStepFieldsAttachmentReducer:AI,procedureStepFieldsReducer:vI,procedureStepFieldValuesAttachmentReducer:GI,procedureStepFieldValuesReducer:tO,procedureStepFieldValuesReviewReducer:SO,procedureStepAssigneeReducer:iT,procedureStepCommentReducer:ST,procedureStepDefaultAssigneeReducer:vT,procedureStepDefaultReviewerReducer:NT,procedureStepEventReducer:nI,procedureStepReviewerReducer:vO,procedureStepReducer:LO,rehydratedReducer:Ib,reportReducer:jb,formReducer:Ul,formRevisionReducer:fl,formRevisionAttachmentReducer:il,formSubscriberReducer:wl,formSubmissionFieldValuesAttachmentReducer:eo,formSubmissionFieldValuesReducer:yo,formSubmissionCommentReducer:go,formSubmissionReducer:Go,formIdentifierReducer:wu,formIdentifierValueReducer:Hu,userReducer:yf,emailDomainsReducer:mu,documentsReducer:Qd,documentAttachmentReducer:kd,teamReducer:uF,agentsReducer:Pn,issueCommentReducer:cp,issueCommentAttachmentReducer:Wh,issueUpdateReducer:nf,geoImageReducer:ah,issueAssociationReducer:Ih,issueTypeFieldsReducer:Oy,issueTypeFieldValuesReducer:ry,issueTypeFieldsAttachmentReducer:Wp,issueTypeFieldValuesAttachmentReducer:zy,issueTypeIdentifierReducer:Xy,issueTypeIdentifierValueReducer:dm,issueTypePriorityReducer:Om,issueTypeStatusReducer:Xm,assetTypeFieldsReducer:Yc,assetTypeFieldValuesReducer:Pr,assetTypeFieldsAttachmentReducer:jc,assetTypeFieldValuesAttachmentReducer:dr,assetTypeIdentifierReducer:Dr,assetTypeIdentifierValueReducer:Zr,assetTypeStatusReducer:Fd,teamMembershipReducer:Kb},YM=u.combineReducers(lF),oF=1e4,un=[400,409,403,404,405,500],C=1e4,hF={};class pF{client;pageSize=oF;constructor(e){hF[this.constructor.name]=this,this.client=e}async performRequest(e,i){return this.client.performRequest(this.host,e,this,i)}async enqueueRequest(e){return this.client.enqueueRequest(e,this.host,this.constructor.name)}async performPagination(e,i){return this.client.performPagination(this.host,e,this.pageSize,this,i)}dispatch(e){this.client.store.dispatch(e)}select(e){return e(this.client.store.getState())}}const ZM=t=>{if(t)throw t;const e=Pt();e?e.dispatch({type:"rehydrated/setRehydrated",payload:!0}):console.error("Client store not set")},yF=(t,e,i)=>{const a=yt();return a?(a.addRequest(e),a.getQueue()):(console.warn("Outbox coordinator not set; cannot enqueue request yet."),[])},mF=(t,e,i)=>{const a=yt();if(!a)return console.warn("Outbox coordinator not set; cannot dequeue request yet."),[];const c=e.meta.offlineAction.payload.uuid;return a.remove(c),a.getQueue()};async function JM(t,e){if(!e.payload)throw new Error("Received empty payload");return qF(e)}const QM={...mn,effect:JM,discard:SF,returnPromises:!0,persistCallback:ZM,retry:tg,persistOptions:{storage:kF},queue:{...mn.queue,enqueue:yF,dequeue:mF,peek:(...t)=>eg(...t)}},xM=UF.offline(QM);async function fF(t,e,i){if(e.store.getState().outboxReducer.deletedRequests.includes(t.payload.uuid))throw new Error("Request was marked for deletion");const n=hF[t.meta.offline.effect.serviceName];if(!n)throw new Error(`Service ${t.meta.offline.effect.serviceName} not found`);return hn(t.meta.offline.effect.BASE_URL,t.meta.offline.effect.request,e,n,i)}function SF(t,e,i=0){if(console.debug("Considering discarding request due to error:",t,`(${typeof t})`,`
1
+ (function(s,l){typeof exports=="object"&&typeof module<"u"?l(exports,require("@overmap-ai/common"),require("@redux-offline/redux-offline/lib/types"),require("@reduxjs/toolkit"),require("superagent"),require("uuid"),require("@redux-offline/redux-offline"),require("@redux-offline/redux-offline/lib/defaults"),require("localforage"),require("idb"),require("jwt-decode"),require("dependency-graph")):typeof define=="function"&&define.amd?define(["exports","@overmap-ai/common","@redux-offline/redux-offline/lib/types","@reduxjs/toolkit","superagent","uuid","@redux-offline/redux-offline","@redux-offline/redux-offline/lib/defaults","localforage","idb","jwt-decode","dependency-graph"],l):(s=typeof globalThis<"u"?globalThis:s||self,l(s["overmap-core"]={},s.common,null,s.toolkit,s.request,s.uuid,s.reduxOffline,s.offlineConfig,s.localforage,s.idb,s.jwtDecode,s.dependencyGraph))})(this,(function(s,l,bw,u,St,ut,I_,bn,b_,O_,P_,F_){"use strict";const On=["created_at","updated_at","index","revision"];var o=(t=>(t.GET="GET",t.POST="POST",t.PATCH="PATCH",t.PUT="PUT",t.DELETE="DELETE",t))(o||{});function b(t){return{addOne:(f,A)=>{const I=t(A.payload);I in f.instances||(f.instances[I]=A.payload)},addMany:(f,A)=>{for(const I of A.payload){const S=t(I);S in f.instances||(f.instances[S]=I)}},updateOne:(f,A)=>{const I=t(A.payload);I in f.instances&&(f.instances[I]=A.payload)},setMany:(f,A)=>{for(const I of A.payload){const S=t(I);f.instances[S]=I}},setOne:(f,A)=>{const I=t(A.payload);f.instances[I]=A.payload},updateMany:(f,A)=>{for(const I of A.payload){const S=t(I);S in f.instances&&(f.instances[S]=I)}},deleteOne:(f,A)=>{delete f.instances[A.payload]},deleteMany:(f,A)=>{for(const I of A.payload)delete f.instances[I]},initialize:(f,A)=>{f.instances={};const I=new Set;for(const S of A.payload){const P=t(S);I.add(P),f.instances[P]=S}I.size!==A.payload.length&&console.warn("duplicate ids detected when initializing model instances.")}}}function __(t){return{initializeSelection:(p,h)=>{p[t]=Array.from(new Set(h.payload))},selectOne:(p,h)=>{console.debug(p,p[t]),!new Set(p[t]).has(h.payload)&&p[t].push(h.payload)},selectMany:(p,h)=>{const f=new Set(p[t]);for(const A of h.payload)f.has(A)||f.add(A);p[t]=Array.from(f)},unselectOne:(p,h)=>{const f=new Set(p[t]);f.has(h.payload)&&(f.delete(h.payload),p[t]=Array.from(f))},unselectMany:(p,h)=>{const f=new Set(p[t]);for(const A of h.payload)f.has(A)&&f.delete(A);p[t]=Array.from(f)},toggleOne:(p,h)=>{const f=new Set(p[t]);f.has(h.payload)?f.delete(h.payload):f.add(h.payload),p[t]=Array.from(f)},toggleMany:(p,h)=>{const f=new Set(p[t]);for(const A of h.payload)f.has(A)?f.delete(A):f.add(A);p[t]=Array.from(f)}}}const T=u.createAction("RESET"),E=u.createAction("RESET_PROJECT_STATE"),O=u.createAction("RESET_ORGANIZATION_STATE"),m=(t=>(...e)=>i=>t(i,...e)),$=b(t=>t.uuid),Pn={instances:{}},us=u.createSlice({name:"agents",initialState:Pn,extraReducers:t=>t.addMatcher(u.isAnyOf(T,E,O),e=>Object.assign(e,Pn)),reducers:{initializeConversations:$.initialize,addConversation:$.addOne,addConversations:$.addMany,setConversation:$.setOne,setConversations:$.setMany,updateConversation:$.updateOne,updateConversations:$.updateMany,deleteConversation:$.deleteOne,deleteConversations:$.deleteMany}}),{initializeConversations:Fn,addConversation:_n,addConversations:M_,setConversation:Mn,setConversations:g_,updateConversation:gn,updateConversations:R_,deleteConversation:w_,deleteConversations:E_}=us.actions,ls=t=>t.agentsReducer.instances,v_=u.createSelector([ls],t=>Object.values(t)),V_=m(u.createSelector([ls,(t,e)=>e],(t,e)=>t[e])),Rn=us.reducer,U=b(t=>t.uuid),wn={instances:{}},os=u.createSlice({name:"assetAttachments",initialState:wn,extraReducers:t=>t.addMatcher(u.isAnyOf(T,E,O),e=>Object.assign(e,wn)),reducers:{initializeAssetAttachments:U.initialize,addAssetAttachment:U.addOne,addAssetAttachments:U.addMany,setAssetAttachment:U.setOne,setAssetAttachments:U.setMany,updateAssetAttachment:U.updateOne,updateAssetAttachments:U.updateMany,deleteAssetAttachment:U.deleteOne,deleteAssetAttachments:U.deleteMany}}),{initializeAssetAttachments:En,addAssetAttachment:vn,addAssetAttachments:hs,setAssetAttachment:Vn,setAssetAttachments:Bn,updateAssetAttachment:zn,updateAssetAttachments:jn,deleteAssetAttachment:Cn,deleteAssetAttachments:ps}=os.actions,Dn=t=>t.assetAttachmentReducer.instances,ms=u.createSelector([Dn],t=>Object.values(t)),qn=t=>e=>e.assetAttachmentReducer.instances[t],$n=m(u.createSelector([ms,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),Un=m(u.createSelector([ms,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(({asset:i})=>e===i)))),kn=os.reducer,k=b(t=>t.uuid),Ln={instances:{}},ys=u.createSlice({name:"assetCommentAttachments",initialState:Ln,extraReducers:t=>t.addMatcher(u.isAnyOf(T,E,O),e=>Object.assign(e,Ln)),reducers:{initializeAssetCommentAttachments:k.initialize,addAssetCommentAttachment:k.addOne,addAssetCommentAttachments:k.addMany,setAssetCommentAttachment:k.setOne,setAssetCommentAttachments:k.setMany,updateAssetCommentAttachment:k.updateOne,updateAssetCommentAttachments:k.updateMany,deleteAssetCommentAttachment:k.deleteOne,deleteAssetCommentAttachments:k.deleteMany}}),{initializeAssetCommentAttachments:Hn,addAssetCommentAttachment:Gn,addAssetCommentAttachments:Nn,setAssetCommentAttachment:Kn,setAssetCommentAttachments:Wn,updateAssetCommentAttachment:Xn,updateAssetCommentAttachments:Yn,deleteAssetCommentAttachment:Zn,deleteAssetCommentAttachments:Jn}=ys.actions,Qn=t=>t.assetCommentAttachmentReducer.instances,fs=u.createSelector([Qn],t=>Object.values(t)),xn=t=>e=>e.assetCommentAttachmentReducer.instances[t],ec=m(u.createSelector([fs,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),B_=m(u.createSelector([fs,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(({asset_comment:i})=>e===i)))),tc=ys.reducer,L=b(t=>t.uuid),sc={instances:{}},Ss=u.createSlice({name:"assetComments",initialState:sc,extraReducers:t=>t.addMatcher(u.isAnyOf(T,E,O),e=>Object.assign(e,sc)),reducers:{initializeAssetComments:L.initialize,addAssetComment:L.addOne,addAssetComments:L.addMany,setAssetComment:L.setOne,setAssetComments:L.setMany,updateAssetComment:L.updateOne,updateAssetComments:L.updateMany,deleteAssetComment:L.deleteOne,deleteAssetComments:L.deleteMany}}),{initializeAssetComments:ic,addAssetComment:ac,addAssetComments:Ct,setAssetComment:nc,setAssetComments:cc,updateAssetComment:rc,updateAssetComments:dc,deleteAssetComment:uc,deleteAssetComments:Dt}=Ss.actions,lc=t=>t.assetCommentReducer.instances,qt=u.createSelector([lc],t=>l.fallbackToEmptyArray(Object.values(t).toSorted(l.submittedAtModelSortFn))),oc=t=>e=>e.assetCommentReducer.instances[t],hc=m(u.createSelector([qt,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),pc=m(u.createSelector([qt,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.asset===e)))),mc=m(u.createSelector([qt,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(a=>i.has(a.asset)))})),yc=Ss.reducer,H=b(t=>t.uuid),fc={instances:{}},As=u.createSlice({name:"assets",initialState:fc,extraReducers:t=>t.addMatcher(u.isAnyOf(T,E,O),e=>Object.assign(e,fc)),reducers:{initializeAssets:H.initialize,addAsset:H.addOne,addAssets:H.addMany,setAsset:H.setOne,setAssets:H.setMany,updateAsset:H.updateOne,updateAssets:H.updateMany,deleteAsset:H.deleteOne,deleteAssets:H.deleteMany}}),{initializeAssets:Sc,addAsset:Ac,addAssets:Ts,updateAsset:Tc,updateAssets:Ic,deleteAsset:bc,deleteAssets:Is,setAsset:Oc,setAssets:Pc}=As.actions,Fc=t=>t.assetReducer.instances,$t=u.createSelector([Fc],t=>l.fallbackToEmptyArray(Object.values(t))),z_=m(u.createSelector([$t,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(({project:i})=>i===e)))),_c=m(u.createSelector([$t,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.asset_type===e)))),Mc=t=>e=>e.assetReducer.instances[t],gc=m(u.createSelector([$t,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),Rc=As.reducer,G=b(t=>t.uuid),wc={instances:{}},bs=u.createSlice({name:"assetTypeAttachments",initialState:wc,extraReducers:t=>t.addMatcher(u.isAnyOf(T,O),e=>Object.assign(e,wc)),reducers:{initializeAssetTypeAttachments:G.initialize,addAssetTypeAttachment:G.addOne,addAssetTypeAttachments:G.addMany,setAssetTypeAttachment:G.setOne,setAssetTypeAttachments:G.setMany,updateAssetTypeAttachment:G.updateOne,updateAssetTypeAttachments:G.updateMany,deleteAssetTypeAttachment:G.deleteOne,deleteAssetTypeAttachments:G.deleteMany}}),{initializeAssetTypeAttachments:Ec,addAssetTypeAttachment:vc,addAssetTypeAttachments:Os,setAssetTypeAttachment:Vc,setAssetTypeAttachments:Bc,updateAssetTypeAttachment:zc,updateAssetTypeAttachments:jc,deleteAssetTypeAttachment:Cc,deleteAssetTypeAttachments:Ps}=bs.actions,Dc=t=>t.assetTypeAttachmentReducer.instances,Fs=u.createSelector([Dc],t=>Object.values(t)),qc=t=>e=>e.assetTypeAttachmentReducer.instances[t],$c=m(u.createSelector([Fs,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),Uc=m(u.createSelector([Fs,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(({asset_type:i})=>e===i)))),kc=bs.reducer,N=b(t=>t.uuid),Lc={instances:{}},_s=u.createSlice({name:"assetTypeFieldsAttachments",initialState:Lc,extraReducers:t=>t.addMatcher(u.isAnyOf(T,O),e=>Object.assign(e,Lc)),reducers:{initializeAssetTypeFieldsAttachments:N.initialize,addAssetTypeFieldsAttachment:N.addOne,addAssetTypeFieldsAttachments:N.addMany,setAssetTypeFieldsAttachment:N.setOne,setAssetTypeFieldsAttachments:N.setMany,updateAssetTypeFieldsAttachment:N.updateOne,updateAssetTypeFieldsAttachments:N.updateMany,deleteAssetTypeFieldsAttachment:N.deleteOne,deleteAssetTypeFieldsAttachments:N.deleteMany}}),{initializeAssetTypeFieldsAttachments:Hc,addAssetTypeFieldsAttachment:Gc,addAssetTypeFieldsAttachments:Nc,setAssetTypeFieldsAttachment:Kc,setAssetTypeFieldsAttachments:Wc,updateAssetTypeFieldsAttachment:Xc,updateAssetTypeFieldsAttachments:Yc,deleteAssetTypeFieldsAttachment:Zc,deleteAssetTypeFieldsAttachments:Jc}=_s.actions,Qc=t=>t.assetTypeFieldsAttachmentReducer.instances,Ms=u.createSelector([Qc],t=>Object.values(t)),j_=m(u.createSelector([Ms,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.fields_revision===e)))),xc=t=>e=>e.assetTypeFieldsAttachmentReducer.instances[t],er=m(u.createSelector([Ms,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),tr=_s.reducer,K=b(t=>t.uuid),sr={instances:{}},gs=u.createSlice({name:"assetTypeFields",initialState:sr,extraReducers:t=>t.addMatcher(u.isAnyOf(T,O),e=>Object.assign(e,sr)),reducers:{initializeAssetTypeFields:K.initialize,addAssetTypeFields:K.addOne,addAssetTypeFieldsMany:K.addMany,setAssetTypeFields:K.setOne,setAssetTypeFieldsMany:K.setMany,updateAssetTypeFields:K.updateOne,updateAssetTypeFieldsMany:K.updateMany,deleteAssetTypeFields:K.deleteOne,deleteAssetTypeFieldsMany:K.deleteMany}}),{initializeAssetTypeFields:ir,addAssetTypeFields:ar,addAssetTypeFieldsMany:nr,setAssetTypeFields:cr,setAssetTypeFieldsMany:rr,updateAssetTypeFields:dr,updateAssetTypeFieldsMany:ur,deleteAssetTypeFields:lr,deleteAssetTypeFieldsMany:or}=gs.actions,hr=t=>t.assetTypeFieldsReducer.instances,Mt=u.createSelector([hr],t=>Object.values(t)),C_=m(u.createSelector([Mt,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.asset_type===e)))),D_=m(u.createSelector([Mt,(t,e)=>e],(t,e)=>t.filter(i=>i.asset_type===e).toSorted(l.submittedAtModelSortFn).pop())),pr=t=>e=>e.assetTypeFieldsReducer.instances[t],mr=m(u.createSelector([Mt,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),yr=gs.reducer,W=b(t=>t.uuid),fr={instances:{}},Rs=u.createSlice({name:"assetTypeFieldValuesAttachments",initialState:fr,extraReducers:t=>t.addMatcher(u.isAnyOf(T,E,O),e=>Object.assign(e,fr)),reducers:{initializeAssetTypeFieldValuesAttachments:W.initialize,addAssetTypeFieldValuesAttachment:W.addOne,addAssetTypeFieldValuesAttachments:W.addMany,setAssetTypeFieldValuesAttachment:W.setOne,setAssetTypeFieldValuesAttachments:W.setMany,updateAssetTypeFieldValuesAttachment:W.updateOne,updateAssetTypeFieldValuesAttachments:W.updateMany,deleteAssetTypeFieldValuesAttachment:W.deleteOne,deleteAssetTypeFieldValuesAttachments:W.deleteMany}}),{initializeAssetTypeFieldValuesAttachments:Sr,addAssetTypeFieldValuesAttachment:Ar,addAssetTypeFieldValuesAttachments:ws,setAssetTypeFieldValuesAttachment:Tr,setAssetTypeFieldValuesAttachments:Ir,updateAssetTypeFieldValuesAttachment:br,updateAssetTypeFieldValuesAttachments:Or,deleteAssetTypeFieldValuesAttachment:Pr,deleteAssetTypeFieldValuesAttachments:Es}=Rs.actions,Fr=t=>t.assetTypeFieldValuesAttachmentReducer.instances,vs=u.createSelector([Fr],t=>Object.values(t)),_r=t=>e=>e.assetTypeFieldValuesAttachmentReducer.instances[t],Mr=m(u.createSelector([vs,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),gr=m(u.createSelector([vs,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.field_values===e)))),Rr=Rs.reducer,X=b(t=>t.uuid),wr={instances:{}},Vs=u.createSlice({name:"assetTypeFieldValues",initialState:wr,extraReducers:t=>t.addMatcher(u.isAnyOf(T,E,O),e=>Object.assign(e,wr)),reducers:{initializeAssetTypeFieldValues:X.initialize,addAssetTypeFieldValues:X.addOne,addAssetTypeFieldValuesMany:X.addMany,setAssetTypeFieldValues:X.setOne,setAssetTypeFieldValuesMany:X.setMany,updateAssetTypeFieldValues:X.updateOne,updateAssetTypeFieldValuesMany:X.updateMany,deleteAssetTypeFieldValues:X.deleteOne,deleteAssetTypeFieldValuesMany:X.deleteMany}}),{initializeAssetTypeFieldValues:Er,addAssetTypeFieldValues:vr,addAssetTypeFieldValuesMany:Vr,setAssetTypeFieldValues:Br,setAssetTypeFieldValuesMany:zr,updateAssetTypeFieldValues:jr,updateAssetTypeFieldValuesMany:Cr,deleteAssetTypeFieldValues:Dr,deleteAssetTypeFieldValuesMany:qr}=Vs.actions,$r=t=>t.assetTypeFieldValuesReducer.instances,Ut=u.createSelector([$r],t=>Object.values(t)),q_=m(u.createSelector([Ut,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.asset===e)))),$_=m(u.createSelector([Mt,Ut,(t,e)=>e],(t,e,i)=>{const a=new Set(t.filter(n=>n.asset_type===i).map(n=>n.uuid));return l.fallbackToEmptyArray(e.filter(n=>a.has(n.fields_revision)))})),Ur=t=>e=>e.assetTypeFieldValuesReducer.instances[t],kr=m(u.createSelector([Ut,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),Lr=Vs.reducer,Y=b(t=>t.uuid),Hr={instances:{}},Bs=u.createSlice({name:"assetTypeIdentifiers",initialState:Hr,extraReducers:t=>t.addMatcher(u.isAnyOf(T,O),e=>Object.assign(e,Hr)),reducers:{initializeAssetTypeIdentifiers:Y.initialize,addAssetTypeIdentifier:Y.addOne,addAssetTypeIdentifiers:Y.addMany,setAssetTypeIdentifier:Y.setOne,setAssetTypeIdentifiers:Y.setMany,updateAssetTypeIdentifier:Y.updateOne,updateAssetTypeIdentifiers:Y.updateMany,deleteAssetTypeIdentifier:Y.deleteOne,deleteAssetTypeIdentifiers:Y.deleteMany}}),{initializeAssetTypeIdentifiers:Gr,addAssetTypeIdentifier:Nr,addAssetTypeIdentifiers:Kr,setAssetTypeIdentifier:Wr,setAssetTypeIdentifiers:Xr,updateAssetTypeIdentifier:Yr,updateAssetTypeIdentifiers:Zr,deleteAssetTypeIdentifier:Jr,deleteAssetTypeIdentifiers:Qr}=Bs.actions,xr=t=>t.assetTypeIdentifierReducer.instances,zs=u.createSelector([xr],t=>Object.values(t)),ed=t=>e=>e.assetTypeIdentifierReducer.instances[t],td=m(u.createSelector([zs,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),U_=m(u.createSelector([zs,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.asset_type===e)))),sd=Bs.reducer,Z=b(t=>t.uuid),id={instances:{}},js=u.createSlice({name:"assetTypeIdentifierValues",initialState:id,extraReducers:t=>t.addMatcher(u.isAnyOf(T,E,O),e=>Object.assign(e,id)),reducers:{initializeAssetTypeIdentifierValues:Z.initialize,addAssetTypeIdentifierValue:Z.addOne,addAssetTypeIdentifierValues:Z.addMany,setAssetTypeIdentifierValue:Z.setOne,setAssetTypeIdentifierValues:Z.setMany,updateAssetTypeIdentifierValue:Z.updateOne,updateAssetTypeIdentifierValues:Z.updateMany,deleteAssetTypeIdentifierValue:Z.deleteOne,deleteAssetTypeIdentifierValues:Z.deleteMany}}),{initializeAssetTypeIdentifierValues:ad,addAssetTypeIdentifierValue:nd,addAssetTypeIdentifierValues:cd,setAssetTypeIdentifierValue:rd,setAssetTypeIdentifierValues:dd,updateAssetTypeIdentifierValue:ud,updateAssetTypeIdentifierValues:ld,deleteAssetTypeIdentifierValue:od,deleteAssetTypeIdentifierValues:hd}=js.actions,pd=t=>t.assetTypeIdentifierValueReducer.instances,kt=u.createSelector([pd],t=>Object.values(t)),md=t=>e=>e.assetTypeIdentifierValueReducer.instances[t],yd=m(u.createSelector([kt,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),k_=m(u.createSelector([kt,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.asset===e)))),L_=m(u.createSelector([kt,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.asset_type_identifier===e)))),fd=js.reducer,J=b(t=>t.uuid),Sd={instances:{}},Cs=u.createSlice({name:"assetTypes",initialState:Sd,extraReducers:t=>t.addMatcher(u.isAnyOf(T,O),e=>Object.assign(e,Sd)),reducers:{initializeAssetTypes:J.initialize,setAssetType:J.setOne,setAssetTypes:J.setMany,addAssetType:J.addOne,addAssetTypes:J.addMany,updateAssetType:J.updateOne,updateAssetTypes:J.updateMany,deleteAssetType:J.deleteOne,deleteAssetTypes:J.deleteMany}}),{initializeAssetTypes:Ad,setAssetType:Td,setAssetTypes:Id,addAssetType:bd,addAssetTypes:Od,updateAssetType:Pd,updateAssetTypes:Fd,deleteAssetType:_d,deleteAssetTypes:Md}=Cs.actions,gd=t=>t.assetTypeReducer.instances,Ds=u.createSelector([gd],t=>Object.values(t)),Rd=t=>e=>e.assetTypeReducer.instances[t],wd=m(u.createSelector([Ds,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),H_=m(u.createSelector([Ds,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.organization===e)))),Ed=Cs.reducer,Q=b(t=>t.uuid),vd={instances:{}},qs=u.createSlice({name:"assetTypeStatuses",initialState:vd,extraReducers:t=>t.addMatcher(u.isAnyOf(T,O),e=>Object.assign(e,vd)),reducers:{initializeAssetTypeStatuses:Q.initialize,addAssetTypeStatus:Q.addOne,addAssetTypeStatuses:Q.addMany,setAssetTypeStatus:Q.setOne,setAssetTypeStatuses:Q.setMany,updateAssetTypeStatus:Q.updateOne,updateAssetTypeStatuses:Q.updateMany,deleteAssetTypeStatus:Q.deleteOne,deleteAssetTypeStatuses:Q.deleteMany}}),{initializeAssetTypeStatuses:Vd,addAssetTypeStatus:Bd,addAssetTypeStatuses:zd,setAssetTypeStatus:jd,setAssetTypeStatuses:Cd,updateAssetTypeStatus:Dd,updateAssetTypeStatuses:qd,deleteAssetTypeStatus:$d,deleteAssetTypeStatuses:Ud}=qs.actions,kd=t=>t.assetTypeStatusReducer.instances,$s=u.createSelector([kd],t=>l.fallbackToEmptyArray(Object.values(t).toSorted(l.assetTypeStatusSortFn))),Ld=t=>e=>e.assetTypeStatusReducer.instances[t],Hd=m(u.createSelector([$s,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),G_=m(u.createSelector([$s,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.asset_type===e)))),Gd=qs.reducer,Nd={accessToken:"",refreshToken:"",isLoggedIn:!1},Lt=u.createSlice({name:"auth",initialState:Nd,extraReducers:t=>t.addCase(T,e=>Object.assign(e,Nd)),reducers:{setTokens:(t,e)=>{t.accessToken=e.payload.accessToken,t.refreshToken=e.payload.refreshToken},clearTokens:t=>{t.accessToken="",t.refreshToken=""},setLoggedIn:(t,e)=>{e.payload||Lt.caseReducers.clearTokens(t),t.isLoggedIn=e.payload}}}),{setTokens:N_,clearTokens:K_,setLoggedIn:Kd}=Lt.actions,W_=t=>t.authReducer.accessToken,X_=t=>t.authReducer.isLoggedIn,Wd=Lt.reducer,x=b(t=>t.uuid),Xd={instances:{}},Us=u.createSlice({name:"documentAttachments",initialState:Xd,extraReducers:t=>t.addCase(T,e=>Object.assign(e,Xd)),reducers:{initializeDocumentAttachments:x.initialize,addDocumentAttachment:x.addOne,addDocumentAttachments:x.addMany,setDocumentAttachment:x.setOne,setDocumentAttachments:x.setMany,updateDocumentAttachment:x.updateOne,updateDocumentAttachments:x.updateMany,deleteDocumentAttachment:x.deleteOne,deleteDocumentAttachments:x.deleteMany}}),{initializeDocumentAttachments:Yd,addDocumentAttachment:Zd,addDocumentAttachments:Jd,setDocumentAttachment:Qd,setDocumentAttachments:xd,updateDocumentAttachment:eu,updateDocumentAttachments:tu,deleteDocumentAttachment:su,deleteDocumentAttachments:iu}=Us.actions,au=t=>t.documentAttachmentReducer.instances,ks=u.createSelector([au],t=>Object.values(t)),nu=t=>e=>e.documentAttachmentReducer.instances[t],cu=m(u.createSelector([ks,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),Y_=m(u.createSelector([ks,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(({document:i})=>e===i)))),ru=Us.reducer,ee=b(({uuid:t})=>t),du={instances:{}},Ls=u.createSlice({name:"documents",initialState:du,extraReducers:t=>t.addMatcher(u.isAnyOf(T,O),e=>{Object.assign(e,du)}),reducers:{initializeDocuments:ee.initialize,addDocument:ee.addOne,addDocuments:ee.addMany,setDocument:ee.setOne,setDocuments:ee.setMany,updateDocument:ee.updateOne,updateDocuments:ee.updateMany,deleteDocument:ee.deleteOne,deleteDocuments:ee.deleteMany}}),{initializeDocuments:uu,addDocument:lu,addDocuments:ou,setDocument:hu,setDocuments:pu,updateDocument:mu,updateDocuments:yu,deleteDocument:fu,deleteDocuments:Su}=Ls.actions,Au=Ls.reducer,Hs=t=>t.documentsReducer.instances,Ht=u.createSelector([Hs],t=>Object.values(t)),Tu=t=>e=>e.documentsReducer.instances[t],Iu=m(u.createSelector([Ht,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),Z_=m(u.createSelector([Ht,(t,e)=>e],(t,e)=>t.filter(i=>i.project===e))),J_=m(u.createSelector([Ht,(t,e)=>e],(t,e)=>t.filter(i=>i.organization===e))),bu=m(u.createSelector([Hs,(t,e)=>e],(t,e)=>{if(!t[e])return l.fallbackToEmptyArray([]);const n=l.getDocumentSubTree(e,Object.values(t)).all().map(({model:c})=>c);return l.fallbackToEmptyArray(n)})),te=b(t=>t.uuid),Ou={instances:{}},Gs=u.createSlice({name:"emailDomains",initialState:Ou,extraReducers:t=>t.addMatcher(u.isAnyOf(T,O),e=>Object.assign(e,Ou)),reducers:{initializeEmailDomains:te.initialize,addEmailDomain:te.addOne,addEmailDomains:te.addMany,setEmailDomain:te.setOne,setEmailDomains:te.setMany,updateEmailDomain:te.updateOne,updateEmailDomains:te.updateMany,deleteEmailDomain:te.deleteOne,deleteEmailDomains:te.deleteMany}}),{initializeEmailDomains:Pu,addEmailDomain:Fu,addEmailDomains:_u,setEmailDomain:Mu,setEmailDomains:gu,updateEmailDomain:Ru,updateEmailDomains:wu,deleteEmailDomain:Eu,deleteEmailDomains:vu}=Gs.actions,Vu=t=>t.emailDomainsReducer.instances,Ns=u.createSelector([Vu],t=>Object.values(t)),Bu=t=>e=>e.emailDomainsReducer.instances[t],zu=m(u.createSelector([Ns,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),Q_=m(u.createSelector([Ns,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.organization===e)))),ju=Gs.reducer,se=b(t=>t.uuid),Cu={instances:{}},Ks=u.createSlice({name:"formIdentifiers",initialState:Cu,extraReducers:t=>t.addMatcher(u.isAnyOf(T,O),e=>Object.assign(e,Cu)),reducers:{initializeFormIdentifiers:se.initialize,addFormIdentifier:se.addOne,addFormIdentifiers:se.addMany,setFormIdentifier:se.setOne,setFormIdentifiers:se.setMany,updateFormIdentifier:se.updateOne,updateFormIdentifiers:se.updateMany,deleteFormIdentifier:se.deleteOne,deleteFormIdentifiers:se.deleteMany}}),{initializeFormIdentifiers:Du,addFormIdentifier:qu,addFormIdentifiers:$u,setFormIdentifier:Uu,setFormIdentifiers:ku,updateFormIdentifier:Lu,updateFormIdentifiers:Hu,deleteFormIdentifier:Gu,deleteFormIdentifiers:Nu}=Ks.actions,Ku=t=>t.formIdentifierReducer.instances,Ws=u.createSelector([Ku],t=>Object.values(t)),Wu=t=>e=>e.formIdentifierReducer.instances[t],Xu=m(u.createSelector([Ws,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),x_=m(u.createSelector([Ws,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.form===e)))),Yu=Ks.reducer,ie=b(t=>t.uuid),Zu={instances:{}},Xs=u.createSlice({name:"formIdentifierValues",initialState:Zu,extraReducers:t=>t.addMatcher(u.isAnyOf(T,O),e=>Object.assign(e,Zu)),reducers:{initializeFormIdentifierValues:ie.initialize,addFormIdentifierValue:ie.addOne,addFormIdentifierValues:ie.addMany,setFormIdentifierValue:ie.setOne,setFormIdentifierValues:ie.setMany,updateFormIdentifierValue:ie.updateOne,updateFormIdentifierValues:ie.updateMany,deleteFormIdentifierValue:ie.deleteOne,deleteFormIdentifierValues:ie.deleteMany}}),{initializeFormIdentifierValues:Ju,addFormIdentifierValue:Qu,addFormIdentifierValues:xu,setFormIdentifierValue:el,setFormIdentifierValues:tl,updateFormIdentifierValue:sl,updateFormIdentifierValues:il,deleteFormIdentifierValue:al,deleteFormIdentifierValues:nl}=Xs.actions,cl=t=>t.formIdentifierValueReducer.instances,Gt=u.createSelector([cl],t=>Object.values(t)),rl=t=>e=>e.formIdentifierValueReducer.instances[t],dl=m(u.createSelector([Gt,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),eM=m(u.createSelector([Gt,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.form_submission===e)))),tM=m(u.createSelector([Gt,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.form_identifier===e)))),ul=Xs.reducer,ae=b(t=>t.uuid),ll={instances:{}},Ys=u.createSlice({name:"formRevisionAttachments",initialState:ll,extraReducers:t=>t.addMatcher(u.isAnyOf(T,O),e=>Object.assign(e,ll)),reducers:{initializeFormRevisionAttachments:ae.initialize,addFormRevisionAttachment:ae.addOne,addFormRevisionAttachments:ae.addMany,setFormRevisionAttachment:ae.setOne,setFormRevisionAttachments:ae.setMany,updateFormRevisionAttachment:ae.updateOne,updateFormRevisionAttachments:ae.updateMany,deleteFormRevisionAttachment:ae.deleteOne,deleteFormRevisionAttachments:ae.deleteMany}}),{initializeFormRevisionAttachments:ol,addFormRevisionAttachment:hl,addFormRevisionAttachments:pl,setFormRevisionAttachment:ml,setFormRevisionAttachments:yl,updateFormRevisionAttachment:fl,updateFormRevisionAttachments:Sl,deleteFormRevisionAttachment:Al,deleteFormRevisionAttachments:Tl}=Ys.actions,Nt=t=>t.formRevisionAttachmentReducer.instances,Il=u.createSelector([Nt],t=>Object.values(t)),bl=m(u.createSelector([Nt,(t,e)=>e],(t,e)=>t[e])),Ol=m(u.createSelector([Il,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),sM=m(u.createSelector([Nt,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(Object.values(t).filter(i=>i.form_revision===e)))),Pl=Ys.reducer,ne=b(t=>t.uuid),Fl={instances:{}},Zs=u.createSlice({name:"formRevisions",initialState:Fl,extraReducers:t=>t.addMatcher(u.isAnyOf(T,O),e=>Object.assign(e,Fl)),reducers:{initializeFormRevisions:ne.initialize,addFormRevision:ne.addOne,addFormRevisions:ne.addMany,setFormRevision:ne.setOne,setFormRevisions:ne.setMany,updateFormRevision:ne.updateOne,updateFormRevisions:ne.updateMany,deleteFormRevision:ne.deleteOne,deleteFormRevisions:ne.deleteMany}}),{initializeFormRevisions:_l,addFormRevision:Ml,addFormRevisions:Js,setFormRevision:gl,setFormRevisions:Rl,updateFormRevision:wl,updateFormRevisions:El,deleteFormRevision:vl,deleteFormRevisions:Qs}=Zs.actions,Vl=t=>t.formRevisionReducer.instances,Kt=u.createSelector([Vl],t=>Object.values(t)),Bl=t=>e=>e.formRevisionReducer.instances[t],zl=m(u.createSelector([Kt,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),iM=m(u.createSelector([Kt,(t,e)=>e],(t,e)=>t.filter(i=>i.form===e).toSorted(l.submittedAtModelSortFn).pop())),jl=m(u.createSelector([Kt,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.form===e)))),Cl=Zs.reducer,ce=b(t=>t.uuid),Dl={instances:{}},xs=u.createSlice({name:"formSubscribers",initialState:Dl,extraReducers:t=>t.addMatcher(u.isAnyOf(T,O),e=>Object.assign(e,Dl)),reducers:{initializeFormSubscribers:ce.initialize,addFormSubscriber:ce.addOne,addFormSubscribers:ce.addMany,setFormSubscriber:ce.setOne,setFormSubscribers:ce.setMany,updateFormSubscriber:ce.updateOne,updateFormSubscribers:ce.updateMany,deleteFormSubscriber:ce.deleteOne,deleteFormSubscribers:ce.deleteMany}}),{initializeFormSubscribers:ql,addFormSubscriber:$l,addFormSubscribers:ei,setFormSubscriber:Ul,setFormSubscribers:kl,updateFormSubscriber:Ll,updateFormSubscribers:Hl,deleteFormSubscriber:Gl,deleteFormSubscribers:ti}=xs.actions,Nl=t=>t.formSubscriberReducer.instances,Wt=u.createSelector([Nl],t=>Object.values(t)),Kl=t=>e=>e.formSubscriberReducer.instances[t],Wl=m(u.createSelector([Wt,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),Xl=m(u.createSelector([Wt,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.form===e)))),aM=m(u.createSelector([Wt,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.user===e)))),Yl=xs.reducer,re=b(t=>t.uuid),Zl={instances:{}},si=u.createSlice({name:"forms",initialState:Zl,extraReducers:t=>t.addMatcher(u.isAnyOf(T,O),e=>Object.assign(e,Zl)),reducers:{initializeForms:re.initialize,addForm:re.addOne,addForms:re.addMany,setForm:re.setOne,setForms:re.setMany,updateForm:re.updateOne,updateForms:re.updateMany,deleteForm:re.deleteOne,deleteForms:re.deleteMany}}),{initializeForms:Jl,addForm:Ql,addForms:xl,setForm:eo,setForms:to,updateForm:so,updateForms:io,deleteForm:ao,deleteForms:no}=si.actions,co=si.reducer,ro=t=>t.formReducer.instances,ii=u.createSelector([ro],t=>Object.values(t)),uo=t=>e=>e.formReducer.instances[t],lo=m(u.createSelector([ii,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),nM=m(u.createSelector([ii,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.organization===e)))),de=b(({uuid:t})=>t),oo={instances:{}},ai=u.createSlice({name:"formSubmissionFieldValuesAttachments",initialState:oo,extraReducers:t=>t.addMatcher(u.isAnyOf(T,O),e=>Object.assign(e,oo)),reducers:{initializeFormSubmissionFieldValuesAttachments:de.initialize,addFormSubmissionFieldValuesAttachment:de.addOne,addFormSubmissionFieldValuesAttachments:de.addMany,setFormSubmissionFieldValuesAttachment:de.setOne,setFormSubmissionFieldValuesAttachments:de.setMany,updateFormSubmissionFieldValuesAttachment:de.updateOne,updateFormSubmissionFieldValuesAttachments:de.updateMany,deleteFormSubmissionFieldValuesAttachment:de.deleteOne,deleteFormSubmissionFieldValuesAttachments:de.deleteMany}}),{initializeFormSubmissionFieldValuesAttachments:ho,addFormSubmissionFieldValuesAttachment:po,addFormSubmissionFieldValuesAttachments:ni,setFormSubmissionFieldValuesAttachment:mo,setFormSubmissionFieldValuesAttachments:yo,updateFormSubmissionFieldValuesAttachment:fo,updateFormSubmissionFieldValuesAttachments:So,deleteFormSubmissionFieldValuesAttachment:Ao,deleteFormSubmissionFieldValuesAttachments:ci}=ai.actions,ri=t=>t.formSubmissionFieldValuesAttachmentReducer.instances,di=u.createSelector([ri],t=>Object.values(t)),To=m(u.createSelector([ri,(t,e)=>e],(t,e)=>t[e])),ui=m(u.createSelector([di,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(a=>i.has(a.uuid)))})),Io=m(u.createSelector([di,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.field_values===e)))),bo=ai.reducer,ue=b(({uuid:t})=>t),Oo={instances:{}},li=u.createSlice({name:"formSubmissionFieldValues",initialState:Oo,extraReducers:t=>t.addMatcher(u.isAnyOf(T,O),e=>Object.assign(e,Oo)),reducers:{initializeFormSubmissionFieldValues:ue.initialize,addFormSubmissionFieldValues:ue.addOne,addFormSubmissionFieldValuesMany:ue.addMany,setFormSubmissionFieldValues:ue.setOne,setFormSubmissionFieldValuesMany:ue.setMany,updateFormSubmissionFieldValues:ue.updateOne,updateFormSubmissionFieldValuesMany:ue.updateMany,deleteFormSubmissionFieldValues:ue.deleteOne,deleteFormSubmissionFieldValuesMany:ue.deleteMany}}),{initializeFormSubmissionFieldValues:Po,addFormSubmissionFieldValues:Fo,addFormSubmissionFieldValuesMany:oi,setFormSubmissionFieldValues:_o,setFormSubmissionFieldValuesMany:Mo,updateFormSubmissionFieldValues:go,updateFormSubmissionFieldValuesMany:Ro,deleteFormSubmissionFieldValues:wo,deleteFormSubmissionFieldValuesMany:hi}=li.actions,Eo=t=>t.formSubmissionFieldValuesReducer.instances,pi=u.createSelector([Eo],t=>Object.values(t)),vo=t=>e=>e.formSubmissionFieldValuesReducer.instances[t],Vo=m(u.createSelector([pi,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),Bo=m(u.createSelector([pi,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.form_submission===e)))),zo=li.reducer,le=b(t=>t.uuid),jo={instances:{}},mi=u.createSlice({name:"formSubmissionCommentAttachments",initialState:jo,extraReducers:t=>t.addMatcher(u.isAnyOf(T,E,O),e=>Object.assign(e,jo)),reducers:{initializeFormSubmissionCommentAttachments:le.initialize,addFormSubmissionCommentAttachment:le.addOne,addFormSubmissionCommentAttachments:le.addMany,setFormSubmissionCommentAttachment:le.setOne,setFormSubmissionCommentAttachments:le.setMany,updateFormSubmissionCommentAttachment:le.updateOne,updateFormSubmissionCommentAttachments:le.updateMany,deleteFormSubmissionCommentAttachment:le.deleteOne,deleteFormSubmissionCommentAttachments:le.deleteMany}}),{initializeFormSubmissionCommentAttachments:Co,addFormSubmissionCommentAttachment:Do,addFormSubmissionCommentAttachments:qo,setFormSubmissionCommentAttachment:$o,setFormSubmissionCommentAttachments:Uo,updateFormSubmissionCommentAttachment:ko,updateFormSubmissionCommentAttachments:Lo,deleteFormSubmissionCommentAttachment:Ho,deleteFormSubmissionCommentAttachments:Go}=mi.actions,No=t=>t.formSubmissionCommentAttachmentReducer.instances,yi=u.createSelector([No],t=>Object.values(t)),Ko=t=>e=>e.formSubmissionCommentAttachmentReducer.instances[t],Wo=m(u.createSelector([yi,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),cM=m(u.createSelector([yi,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(({form_submission_comment:i})=>e===i)))),Xo=mi.reducer,oe=b(t=>t.uuid),Yo={instances:{}},fi=u.createSlice({name:"formSubmissionComments",initialState:Yo,extraReducers:t=>t.addMatcher(u.isAnyOf(T,O),e=>Object.assign(e,Yo)),reducers:{initializeFormSubmissionComments:oe.initialize,addFormSubmissionComment:oe.addOne,addFormSubmissionComments:oe.addMany,setFormSubmissionComment:oe.setOne,setFormSubmissionComments:oe.setMany,updateFormSubmissionComment:oe.updateOne,updateFormSubmissionComments:oe.updateMany,deleteFormSubmissionComment:oe.deleteOne,deleteFormSubmissionComments:oe.deleteMany}}),{initializeFormSubmissionComments:Zo,addFormSubmissionComment:Jo,addFormSubmissionComments:Si,setFormSubmissionComment:Qo,setFormSubmissionComments:xo,updateFormSubmissionComment:eh,updateFormSubmissionComments:th,deleteFormSubmissionComment:sh,deleteFormSubmissionComments:Ai}=fi.actions,ih=t=>t.formSubmissionCommentReducer.instances,Xt=u.createSelector([ih],t=>l.fallbackToEmptyArray(Object.values(t).toSorted(l.submittedAtModelSortFn))),ah=t=>e=>e.formSubmissionCommentReducer.instances[t],nh=m(u.createSelector([Xt,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),ch=m(u.createSelector([Xt,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.form_submission===e)))),rM=m(u.createSelector([Xt,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(a=>i.has(a.form_submission)))})),rh=fi.reducer,he=b(t=>t.uuid),dh={instances:{}},Ti=u.createSlice({name:"formSubmissions",initialState:dh,extraReducers:t=>t.addMatcher(u.isAnyOf(T,O),e=>Object.assign(e,dh)),reducers:{initializeFormSubmissions:he.initialize,setFormSubmission:he.setOne,setFormSubmissions:he.setMany,addFormSubmission:he.addOne,addFormSubmissions:he.addMany,updateFormSubmission:he.updateOne,updateFormSubmissions:he.updateMany,deleteFormSubmission:he.deleteOne,deleteFormSubmissions:he.deleteMany}}),{initializeFormSubmissions:uh,setFormSubmission:lh,setFormSubmissions:oh,addFormSubmission:hh,addFormSubmissions:lt,updateFormSubmission:ph,updateFormSubmissions:mh,deleteFormSubmission:yh,deleteFormSubmissions:ot}=Ti.actions,fh=t=>t.formSubmissionReducer.instances,C=u.createSelector([fh],t=>Object.values(t)),Sh=t=>e=>e.formSubmissionReducer.instances[t],Ah=m(u.createSelector([C,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),Th=m(u.createSelector([C,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.form===e)))),dM=m(u.createSelector([C,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(({organization:i})=>i===e)))),uM=m(u.createSelector([C,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(({project:i})=>i===e)))),lM=m(u.createSelector([C,(t,e)=>e,(t,e,i)=>i],(t,e,i)=>l.fallbackToEmptyArray(t.filter(({project:a,form:n})=>a===e&&n===i)))),oM=m(u.createSelector([C,(t,e)=>e,(t,e,i)=>i],(t,e,i)=>l.fallbackToEmptyArray(t.filter(({organization:a,form:n})=>a===e&&n===i)))),Ih=m(u.createSelector([C,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(({issue:i})=>i===e)))),bh=m(u.createSelector([C,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({issue:a})=>a&&i.has(a)))})),Oh=m(u.createSelector([C,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(({asset:i})=>i===e)))),Ph=m(u.createSelector([C,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({asset:a})=>a&&i.has(a)))})),Fh=Ti.reducer,pe=b(t=>t.uuid),_h={instances:{}},Ii=u.createSlice({name:"geoImages",initialState:_h,extraReducers:t=>t.addMatcher(u.isAnyOf(T,E,O),e=>Object.assign(e,_h)),reducers:{initializeGeoImages:pe.initialize,setGeoImage:pe.setOne,setGeoImages:pe.setMany,addGeoImage:pe.addOne,addGeoImages:pe.addMany,updateGeoImage:pe.updateOne,updateGeoImages:pe.updateMany,deleteGeoImage:pe.deleteOne,deleteGeoImages:pe.deleteMany}}),{initializeGeoImages:Mh,setGeoImage:gh,setGeoImages:Rh,addGeoImage:wh,addGeoImages:Eh,updateGeoImage:vh,updateGeoImages:Vh,deleteGeoImage:Bh,deleteGeoImages:zh}=Ii.actions,jh=t=>t.geoImageReducer.instances,bi=u.createSelector([jh],t=>Object.values(t)),Ch=t=>e=>e.geoImageReducer.instances[t],Dh=m(u.createSelector([bi,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),hM=m(u.createSelector([bi,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.project===e)))),qh=Ii.reducer,me=b(t=>t.uuid),$h={instances:{}},Oi=u.createSlice({name:"issueAssociations",initialState:$h,extraReducers:t=>t.addMatcher(u.isAnyOf(T,E,O),e=>Object.assign(e,$h)),reducers:{initializeIssueAssociations:me.initialize,addIssueAssociation:me.addOne,addIssueAssociations:me.addMany,setIssueAssociation:me.setOne,setIssueAssociations:me.setMany,updateIssueAssociation:me.updateOne,updateIssueAssociations:me.updateMany,deleteIssueAssociation:me.deleteOne,deleteIssueAssociations:me.deleteMany}}),{initializeIssueAssociations:Uh,setIssueAssociations:kh,setIssueAssociation:Lh,updateIssueAssociation:Hh,updateIssueAssociations:Gh,addIssueAssociation:Nh,addIssueAssociations:At,deleteIssueAssociation:Kh,deleteIssueAssociations:Tt}=Oi.actions,Wh=t=>t.issueAssociationReducer.instances,It=u.createSelector([Wh],t=>Object.values(t)),Xh=t=>e=>e.issueAssociationReducer.instances[t],Yh=m(u.createSelector([It,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),Zh=m(u.createSelector([It,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({issue:a})=>i.has(a)))})),Jh=m(u.createSelector([It,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(({issue:i})=>i===e)))),Qh=m(u.createSelector([It,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(({asset:i})=>i===e)))),xh=m(u.createSelector([It,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({asset:a})=>i.has(a)))})),ep=Oi.reducer,ye=b(t=>t.uuid),tp={instances:{}},Pi=u.createSlice({name:"issueAttachments",initialState:tp,extraReducers:t=>t.addMatcher(u.isAnyOf(T,E,O),e=>Object.assign(e,tp)),reducers:{initializeIssueAttachments:ye.initialize,addIssueAttachment:ye.addOne,addIssueAttachments:ye.addMany,setIssueAttachment:ye.setOne,setIssueAttachments:ye.setMany,updateIssueAttachment:ye.updateOne,updateIssueAttachments:ye.updateMany,deleteIssueAttachment:ye.deleteOne,deleteIssueAttachments:ye.deleteMany}}),{initializeIssueAttachments:sp,addIssueAttachment:ip,addIssueAttachments:Fi,setIssueAttachment:ap,setIssueAttachments:np,updateIssueAttachment:cp,updateIssueAttachments:rp,deleteIssueAttachment:dp,deleteIssueAttachments:_i}=Pi.actions,up=t=>t.issueAttachmentReducer.instances,Mi=u.createSelector([up],t=>Object.values(t)),lp=m(u.createSelector([Mi,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(({issue:i})=>e===i)))),op=t=>e=>e.issueAttachmentReducer.instances[t],hp=m(u.createSelector([Mi,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),pp=Pi.reducer,fe=b(t=>t.uuid),mp={instances:{}},gi=u.createSlice({name:"issueCommentAttachments",initialState:mp,extraReducers:t=>t.addMatcher(u.isAnyOf(T,E,O),e=>Object.assign(e,mp)),reducers:{initializeIssueCommentAttachments:fe.initialize,addIssueCommentAttachment:fe.addOne,addIssueCommentAttachments:fe.addMany,setIssueCommentAttachment:fe.setOne,setIssueCommentAttachments:fe.setMany,updateIssueCommentAttachment:fe.updateOne,updateIssueCommentAttachments:fe.updateMany,deleteIssueCommentAttachment:fe.deleteOne,deleteIssueCommentAttachments:fe.deleteMany}}),{initializeIssueCommentAttachments:yp,addIssueCommentAttachment:fp,addIssueCommentAttachments:Sp,setIssueCommentAttachment:Ap,setIssueCommentAttachments:Tp,updateIssueCommentAttachment:Ip,updateIssueCommentAttachments:bp,deleteIssueCommentAttachment:Op,deleteIssueCommentAttachments:Pp}=gi.actions,Fp=t=>t.issueCommentAttachmentReducer.instances,Ri=u.createSelector([Fp],t=>Object.values(t)),_p=t=>e=>e.issueCommentAttachmentReducer.instances[t],Mp=m(u.createSelector([Ri,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),pM=m(u.createSelector([Ri,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(({issue_comment:i})=>e===i)))),gp=gi.reducer,Se=b(t=>t.uuid),Rp={instances:{}},wi=u.createSlice({name:"issueComments",initialState:Rp,extraReducers:t=>t.addMatcher(u.isAnyOf(T,E,O),e=>Object.assign(e,Rp)),reducers:{initializeIssueComments:Se.initialize,addIssueComment:Se.addOne,addIssueComments:Se.addMany,setIssueComment:Se.setOne,setIssueComments:Se.setMany,updateIssueComment:Se.updateOne,updateIssueComments:Se.updateMany,deleteIssueComment:Se.deleteOne,deleteIssueComments:Se.deleteMany}}),{initializeIssueComments:wp,addIssueComment:Ep,addIssueComments:vp,setIssueComment:Vp,setIssueComments:Bp,updateIssueComment:zp,updateIssueComments:jp,deleteIssueComment:Cp,deleteIssueComments:Dp}=wi.actions,Ei=t=>t.issueCommentReducer.instances,qp=t=>e=>e.issueCommentReducer.instances[t],$p=m(u.createSelector([Ei,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(Object.values(t).filter(({uuid:a})=>i.has(a)))})),mM=m(u.createSelector([Ei,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(Object.values(t).filter(i=>i.issue===e)))),Up=wi.reducer,Ae=b(t=>t.uuid),kp={instances:{}},vi=u.createSlice({name:"issues",initialState:kp,extraReducers:t=>t.addMatcher(u.isAnyOf(T,E,O),e=>Object.assign(e,kp)),reducers:{initializeIssues:Ae.initialize,addIssue:Ae.addOne,addIssues:Ae.addMany,setIssue:Ae.setOne,setIssues:Ae.setMany,updateIssue:Ae.updateOne,updateIssues:Ae.updateMany,deleteIssue:Ae.deleteOne,deleteIssues:Ae.deleteMany}}),{initializeIssues:Lp,addIssue:Hp,addIssues:Vi,setIssue:Gp,setIssues:Np,updateIssue:Kp,updateIssues:Wp,deleteIssue:Xp,deleteIssues:Bi}=vi.actions,Yp=t=>t.issueReducer.instances,Yt=u.createSelector([Yp],t=>Object.values(t)),Zp=t=>e=>e.issueReducer.instances[t],Jp=m(u.createSelector([Yt,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),yM=m(u.createSelector([Yt,(t,e)=>e],(t,e)=>t.filter(i=>i.project===e))),Qp=m(u.createSelector([Yt,(t,e)=>e],(t,e)=>t.filter(i=>i.issue_type===e))),xp=vi.reducer,Te=b(t=>t.uuid),em={instances:{}},zi=u.createSlice({name:"issueTypeAttachments",initialState:em,extraReducers:t=>t.addMatcher(u.isAnyOf(T,O),e=>Object.assign(e,em)),reducers:{initializeIssueTypeAttachments:Te.initialize,addIssueTypeAttachment:Te.addOne,addIssueTypeAttachments:Te.addMany,setIssueTypeAttachment:Te.setOne,setIssueTypeAttachments:Te.setMany,updateIssueTypeAttachment:Te.updateOne,updateIssueTypeAttachments:Te.updateMany,deleteIssueTypeAttachment:Te.deleteOne,deleteIssueTypeAttachments:Te.deleteMany}}),{initializeIssueTypeAttachments:tm,addIssueTypeAttachment:sm,addIssueTypeAttachments:im,setIssueTypeAttachment:am,setIssueTypeAttachments:nm,updateIssueTypeAttachment:cm,updateIssueTypeAttachments:rm,deleteIssueTypeAttachment:dm,deleteIssueTypeAttachments:um}=zi.actions,lm=t=>t.issueTypeAttachmentReducer.instances,ji=u.createSelector([lm],t=>Object.values(t)),om=t=>e=>e.issueTypeAttachmentReducer.instances[t],hm=m(u.createSelector([ji,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),fM=m(u.createSelector([ji,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(({issue_type:i})=>e===i)))),pm=zi.reducer,Ie=b(t=>t.uuid),mm={instances:{}},Ci=u.createSlice({name:"issueTypeFieldsAttachments",initialState:mm,extraReducers:t=>t.addMatcher(u.isAnyOf(T,O),e=>Object.assign(e,mm)),reducers:{initializeIssueTypeFieldsAttachments:Ie.initialize,addIssueTypeFieldsAttachment:Ie.addOne,addIssueTypeFieldsAttachments:Ie.addMany,setIssueTypeFieldsAttachment:Ie.setOne,setIssueTypeFieldsAttachments:Ie.setMany,updateIssueTypeFieldsAttachment:Ie.updateOne,updateIssueTypeFieldsAttachments:Ie.updateMany,deleteIssueTypeFieldsAttachment:Ie.deleteOne,deleteIssueTypeFieldsAttachments:Ie.deleteMany}}),{initializeIssueTypeFieldsAttachments:ym,addIssueTypeFieldsAttachment:fm,addIssueTypeFieldsAttachments:Sm,setIssueTypeFieldsAttachment:Am,setIssueTypeFieldsAttachments:Tm,updateIssueTypeFieldsAttachment:Im,updateIssueTypeFieldsAttachments:bm,deleteIssueTypeFieldsAttachment:Om,deleteIssueTypeFieldsAttachments:Pm}=Ci.actions,Fm=t=>t.issueTypeFieldsAttachmentReducer.instances,Di=u.createSelector([Fm],t=>Object.values(t)),SM=m(u.createSelector([Di,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.fields_revision===e)))),_m=t=>e=>e.issueTypeFieldsAttachmentReducer.instances[t],Mm=m(u.createSelector([Di,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),gm=Ci.reducer,be=b(t=>t.uuid),Rm={instances:{}},qi=u.createSlice({name:"issueTypeFieldValues",initialState:Rm,extraReducers:t=>t.addMatcher(u.isAnyOf(T,E,O),e=>Object.assign(e,Rm)),reducers:{initializeIssueTypeFieldValues:be.initialize,addIssueTypeFieldValues:be.addOne,addIssueTypeFieldValuesMany:be.addMany,setIssueTypeFieldValues:be.setOne,setIssueTypeFieldValuesMany:be.setMany,updateIssueTypeFieldValues:be.updateOne,updateIssueTypeFieldValuesMany:be.updateMany,deleteIssueTypeFieldValues:be.deleteOne,deleteIssueTypeFieldValuesMany:be.deleteMany}}),{initializeIssueTypeFieldValues:wm,addIssueTypeFieldValues:Em,addIssueTypeFieldValuesMany:vm,setIssueTypeFieldValues:Vm,setIssueTypeFieldValuesMany:Bm,updateIssueTypeFieldValues:zm,updateIssueTypeFieldValuesMany:jm,deleteIssueTypeFieldValues:Cm,deleteIssueTypeFieldValuesMany:Dm}=qi.actions,qm=t=>t.issueTypeFieldValuesReducer.instances,Zt=u.createSelector([qm],t=>Object.values(t)),AM=m(u.createSelector([Zt,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.issue===e)))),$m=t=>e=>e.issueTypeFieldValuesReducer.instances[t],Um=m(u.createSelector([Zt,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),km=qi.reducer,Oe=b(t=>t.uuid),Lm={instances:{}},$i=u.createSlice({name:"issueTypeFields",initialState:Lm,extraReducers:t=>t.addMatcher(u.isAnyOf(T,O),e=>Object.assign(e,Lm)),reducers:{initializeIssueTypeFields:Oe.initialize,addIssueTypeFields:Oe.addOne,addIssueTypeFieldsMany:Oe.addMany,setIssueTypeFields:Oe.setOne,setIssueTypeFieldsMany:Oe.setMany,updateIssueTypeFields:Oe.updateOne,updateIssueTypeFieldsMany:Oe.updateMany,deleteIssueTypeFields:Oe.deleteOne,deleteIssueTypeFieldsMany:Oe.deleteMany}}),{initializeIssueTypeFields:Hm,addIssueTypeFields:Gm,addIssueTypeFieldsMany:Nm,setIssueTypeFields:Km,setIssueTypeFieldsMany:Wm,updateIssueTypeFields:Xm,updateIssueTypeFieldsMany:Ym,deleteIssueTypeFields:Zm,deleteIssueTypeFieldsMany:Jm}=$i.actions,Qm=t=>t.issueTypeFieldsReducer.instances,gt=u.createSelector([Qm],t=>Object.values(t)),TM=m(u.createSelector([gt,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.issue_type===e)))),IM=m(u.createSelector([gt,(t,e)=>e],(t,e)=>t.filter(i=>i.issue_type===e).sort((i,a)=>i.submitted_at>a.submitted_at?-1:1)[0])),bM=m(u.createSelector([gt,Zt,(t,e)=>e],(t,e,i)=>{const a=new Set(t.filter(n=>n.issue_type===i).map(n=>n.uuid));return l.fallbackToEmptyArray(e.filter(n=>a.has(n.fields_revision)))})),xm=t=>e=>e.issueTypeFieldsReducer.instances[t],ey=m(u.createSelector([gt,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),ty=$i.reducer,Pe=b(t=>t.uuid),sy={instances:{}},Ui=u.createSlice({name:"issueTypeFieldValuesAttachments",initialState:sy,extraReducers:t=>t.addMatcher(u.isAnyOf(T,E,O),e=>Object.assign(e,sy)),reducers:{initializeIssueTypeFieldValuesAttachments:Pe.initialize,addIssueTypeFieldValuesAttachment:Pe.addOne,addIssueTypeFieldValuesAttachments:Pe.addMany,setIssueTypeFieldValuesAttachment:Pe.setOne,setIssueTypeFieldValuesAttachments:Pe.setMany,updateIssueTypeFieldValuesAttachment:Pe.updateOne,updateIssueTypeFieldValuesAttachments:Pe.updateMany,deleteIssueTypeFieldValuesAttachment:Pe.deleteOne,deleteIssueTypeFieldValuesAttachments:Pe.deleteMany}}),{initializeIssueTypeFieldValuesAttachments:iy,addIssueTypeFieldValuesAttachment:ay,addIssueTypeFieldValuesAttachments:ki,setIssueTypeFieldValuesAttachment:ny,setIssueTypeFieldValuesAttachments:cy,updateIssueTypeFieldValuesAttachment:ry,updateIssueTypeFieldValuesAttachments:dy,deleteIssueTypeFieldValuesAttachment:uy,deleteIssueTypeFieldValuesAttachments:Li}=Ui.actions,ly=t=>t.issueTypeFieldValuesAttachmentReducer.instances,Hi=u.createSelector([ly],t=>Object.values(t)),oy=t=>e=>e.issueTypeFieldValuesAttachmentReducer.instances[t],hy=m(u.createSelector([Hi,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),py=m(u.createSelector([Hi,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.field_values===e)))),my=Ui.reducer,Fe=b(t=>t.uuid),yy={instances:{}},Gi=u.createSlice({name:"issueTypeIdentifiers",initialState:yy,extraReducers:t=>t.addMatcher(u.isAnyOf(T,O),e=>Object.assign(e,yy)),reducers:{initializeIssueTypeIdentifiers:Fe.initialize,addIssueTypeIdentifier:Fe.addOne,addIssueTypeIdentifiers:Fe.addMany,setIssueTypeIdentifier:Fe.setOne,setIssueTypeIdentifiers:Fe.setMany,updateIssueTypeIdentifier:Fe.updateOne,updateIssueTypeIdentifiers:Fe.updateMany,deleteIssueTypeIdentifier:Fe.deleteOne,deleteIssueTypeIdentifiers:Fe.deleteMany}}),{initializeIssueTypeIdentifiers:fy,addIssueTypeIdentifier:Sy,addIssueTypeIdentifiers:Ay,setIssueTypeIdentifier:Ty,setIssueTypeIdentifiers:Iy,updateIssueTypeIdentifier:by,updateIssueTypeIdentifiers:Oy,deleteIssueTypeIdentifier:Py,deleteIssueTypeIdentifiers:Fy}=Gi.actions,_y=t=>t.issueTypeIdentifierReducer.instances,Ni=u.createSelector([_y],t=>Object.values(t)),My=t=>e=>e.issueTypeIdentifierReducer.instances[t],gy=m(u.createSelector([Ni,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),OM=m(u.createSelector([Ni,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.issue_type===e)))),Ry=Gi.reducer,_e=b(t=>t.uuid),wy={instances:{}},Ki=u.createSlice({name:"issueTypeIdentifierValues",initialState:wy,extraReducers:t=>t.addMatcher(u.isAnyOf(T,E,O),e=>Object.assign(e,wy)),reducers:{initializeIssueTypeIdentifierValues:_e.initialize,addIssueTypeIdentifierValue:_e.addOne,addIssueTypeIdentifierValues:_e.addMany,setIssueTypeIdentifierValue:_e.setOne,setIssueTypeIdentifierValues:_e.setMany,updateIssueTypeIdentifierValue:_e.updateOne,updateIssueTypeIdentifierValues:_e.updateMany,deleteIssueTypeIdentifierValue:_e.deleteOne,deleteIssueTypeIdentifierValues:_e.deleteMany}}),{initializeIssueTypeIdentifierValues:Ey,addIssueTypeIdentifierValue:vy,addIssueTypeIdentifierValues:Vy,setIssueTypeIdentifierValue:By,setIssueTypeIdentifierValues:zy,updateIssueTypeIdentifierValue:jy,updateIssueTypeIdentifierValues:Cy,deleteIssueTypeIdentifierValue:Dy,deleteIssueTypeIdentifierValues:qy}=Ki.actions,$y=t=>t.issueTypeIdentifierValueReducer.instances,Jt=u.createSelector([$y],t=>Object.values(t)),Uy=t=>e=>e.issueTypeIdentifierValueReducer.instances[t],ky=m(u.createSelector([Jt,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),PM=m(u.createSelector([Jt,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.issue===e)))),FM=m(u.createSelector([Jt,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.issue_type_identifier===e)))),Ly=Ki.reducer,Me=b(t=>t.uuid),Hy={instances:{}},Wi=u.createSlice({name:"issueTypePriorities",initialState:Hy,extraReducers:t=>t.addMatcher(u.isAnyOf(T,O),e=>Object.assign(e,Hy)),reducers:{initializeIssueTypePriorities:Me.initialize,addIssueTypePriority:Me.addOne,addIssueTypePriorities:Me.addMany,setIssueTypePriority:Me.setOne,setIssueTypePriorities:Me.setMany,updateIssueTypePriority:Me.updateOne,updateIssueTypePriorities:Me.updateMany,deleteIssueTypePriority:Me.deleteOne,deleteIssueTypePriorities:Me.deleteMany}}),{initializeIssueTypePriorities:Gy,addIssueTypePriority:Ny,addIssueTypePriorities:Ky,setIssueTypePriority:Wy,setIssueTypePriorities:Xy,updateIssueTypePriority:Yy,updateIssueTypePriorities:Zy,deleteIssueTypePriority:Jy,deleteIssueTypePriorities:Qy}=Wi.actions,xy=t=>t.issueTypePriorityReducer.instances,Xi=u.createSelector([xy],t=>l.fallbackToEmptyArray(Object.values(t).toSorted(l.issueTypePrioritySortFn))),Yi=t=>e=>e.issueTypePriorityReducer.instances[t],ef=m(u.createSelector([Xi,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),_M=m(u.createSelector([Xi,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.issue_type===e)))),tf=Wi.reducer,ge=b(t=>t.uuid),sf={instances:{}},Zi=u.createSlice({name:"issueTypes",initialState:sf,extraReducers:t=>t.addMatcher(u.isAnyOf(T,O),e=>Object.assign(e,sf)),reducers:{initializeIssueTypes:ge.initialize,addIssueType:ge.addOne,addIssueTypes:ge.addMany,setIssueType:ge.setOne,setIssueTypes:ge.setMany,updateIssueType:ge.updateOne,updateIssueTypes:ge.updateMany,deleteIssueType:ge.deleteOne,deleteIssueTypes:ge.deleteMany}}),{initializeIssueTypes:af,addIssueType:nf,addIssueTypes:cf,setIssueType:rf,setIssueTypes:df,updateIssueType:uf,updateIssueTypes:lf,deleteIssueType:of,deleteIssueTypes:hf}=Zi.actions,pf=t=>t.issueTypeReducer.instances,Ji=u.createSelector(pf,t=>Object.values(t)),mf=t=>e=>e.issueTypeReducer.instances[t],yf=m(u.createSelector([Ji,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),MM=m(u.createSelector([Ji,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.organization===e)))),ff=Zi.reducer,Re=b(t=>t.uuid),Sf={instances:{}},Qi=u.createSlice({name:"issueTypeStatuses",initialState:Sf,extraReducers:t=>t.addMatcher(u.isAnyOf(T,O),e=>Object.assign(e,Sf)),reducers:{initializeIssueTypeStatuses:Re.initialize,addIssueTypeStatus:Re.addOne,addIssueTypeStatuses:Re.addMany,setIssueTypeStatus:Re.setOne,setIssueTypeStatuses:Re.setMany,updateIssueTypeStatus:Re.updateOne,updateIssueTypeStatuses:Re.updateMany,deleteIssueTypeStatus:Re.deleteOne,deleteIssueTypeStatuses:Re.deleteMany}}),{initializeIssueTypeStatuses:Af,addIssueTypeStatus:Tf,addIssueTypeStatuses:If,setIssueTypeStatus:bf,setIssueTypeStatuses:Of,updateIssueTypeStatus:Pf,updateIssueTypeStatuses:Ff,deleteIssueTypeStatus:_f,deleteIssueTypeStatuses:Mf}=Qi.actions,gf=t=>t.issueTypeStatusReducer.instances,xi=u.createSelector([gf],t=>l.fallbackToEmptyArray(Object.values(t).toSorted(l.issueTypeStatusSortFn))),ea=t=>e=>e.issueTypeStatusReducer.instances[t],Rf=m(u.createSelector([xi,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),gM=m(u.createSelector([xi,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.issue_type===e)))),wf=Qi.reducer,we=b(t=>t.uuid),Ef={instances:{}},ta=u.createSlice({name:"issueUpdates",initialState:Ef,extraReducers:t=>t.addMatcher(u.isAnyOf(T,E,O),e=>Object.assign(e,Ef)),reducers:{initializeIssueUpdates:we.initialize,addIssueUpdate:we.addOne,addIssueUpdates:we.addMany,setIssueUpdate:we.setOne,setIssueUpdates:we.setMany,updateIssueUpdate:we.updateOne,updateIssueUpdates:we.updateMany,deleteIssueUpdate:we.deleteOne,deleteIssueUpdates:we.deleteMany}}),{initializeIssueUpdates:vf,addIssueUpdate:sa,addIssueUpdates:ia,setIssueUpdate:Vf,setIssueUpdates:Bf,updateIssueUpdate:zf,updateIssueUpdates:jf,deleteIssueUpdate:aa,deleteIssueUpdates:na}=ta.actions,ca=t=>t.issueUpdateReducer.instances,ra=u.createSelector([ca],t=>Object.values(t)),Cf=m(u.createSelector([ca,(t,e)=>e],(t,e)=>t[e])),Df=m(u.createSelector([ra,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),qf=m(u.createSelector([ra,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.issue===e)))),$f=ta.reducer,Ee=b(t=>t.id),Uf={instances:{},currentUser:null},da=u.createSlice({name:"users",initialState:Uf,extraReducers:t=>t.addCase(T,e=>Object.assign(e,Uf)).addCase(O,e=>Object.assign(e,{...e,instances:[]})),reducers:{initializeUsers:Ee.initialize,setUsers:Ee.setMany,setUser:Ee.setOne,addUsers:Ee.addMany,addUser:Ee.addOne,updateUsers:Ee.updateMany,updateUser:Ee.updateOne,deleteUser:Ee.deleteOne,deleteUsers:Ee.deleteMany,setCurrentUser:(t,e)=>{t.currentUser=e.payload},setCurrentUserProfile:(t,e)=>{if(!t.currentUser)return;t.currentUser.profile=e.payload;const i=t.instances[t.currentUser.id];if(!i)throw new Error("Unable to find current user in users slice");i.profile=e.payload}}}),{initializeUsers:kf,setUsers:Lf,setUser:Hf,addUsers:Gf,addUser:ua,updateUsers:Nf,updateUser:Kf,deleteUser:la,deleteUsers:Wf,setCurrentUser:RM,setCurrentUserProfile:wM}=da.actions,Xf=da.reducer,Yf=t=>t.userReducer.currentUser,oa=t=>t.userReducer.instances,Qt=u.createSelector([oa],t=>Object.values(t)),xt=t=>e=>e.userReducer.instances[t],Zf=m(u.createSelector([Qt,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({id:a})=>i.has(a)))})),ve=b(t=>t.uuid),Jf={instances:{}},ha=u.createSlice({name:"organizationAccess",initialState:Jf,extraReducers:t=>t.addMatcher(u.isAnyOf(T,O),e=>Object.assign(e,Jf)),reducers:{initializeOrganizationAccesses:ve.initialize,addOrganizationAccess:ve.addOne,addOrganizationAccesses:ve.addMany,setOrganizationAccess:ve.setOne,setOrganizationAccesses:ve.setMany,updateOrganizationAccess:ve.updateOne,updateOrganizationAccesses:ve.updateMany,deleteOrganizationAccess:ve.deleteOne,deleteOrganizationAccesses:ve.deleteMany}}),{initializeOrganizationAccesses:Qf,addOrganizationAccess:xf,addOrganizationAccesses:eS,setOrganizationAccess:tS,setOrganizationAccesses:sS,updateOrganizationAccess:iS,updateOrganizationAccesses:aS,deleteOrganizationAccess:nS,deleteOrganizationAccesses:cS}=ha.actions,rS=ha.reducer,es=t=>t.organizationAccessReducer.instances,dS=t=>e=>e.organizationAccessReducer.instances[t],uS=m(u.createSelector([es,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(Object.values(t).filter(({uuid:a})=>i.has(a)))})),EM=u.createSelector([Yf,es],(t,e)=>Object.values(e).find(a=>a.user===t?.id)??null),lS=u.createSelector([es],t=>{const e={};for(const i of Object.values(t))e[i.user]=i;return l.fallbackToEmptyObject(e)}),vM=m(u.createSelector([oa,lS,(t,e)=>e],(t,e,i)=>l.fallbackToEmptyArray(Object.values(t).filter(a=>{const n=e[a.id];return!!n&&n.organization===i})))),Ve=b(t=>t.uuid),oS={instances:{}},pa=u.createSlice({name:"organizations",initialState:oS,extraReducers:t=>t.addMatcher(u.isAnyOf(T),e=>Object.assign(e,oS)),reducers:{initializeOrganizations:Ve.initialize,setOrganizations:Ve.setMany,setOrganization:Ve.setOne,addOrganizations:Ve.addMany,addOrganization:Ve.addOne,updateOrganizations:Ve.updateMany,updateOrganization:Ve.updateOne,deleteOrganization:Ve.deleteOne,deleteOrganizations:Ve.deleteMany}}),{initializeOrganizations:hS,setOrganizations:pS,setOrganization:mS,addOrganizations:yS,addOrganization:fS,updateOrganizations:SS,updateOrganization:AS,deleteOrganization:TS,deleteOrganizations:IS}=pa.actions,bS=t=>t.organizationReducer.instances,OS=u.createSelector([bS],t=>Object.values(t)),PS=t=>e=>e.organizationReducer.instances[t],FS=m(u.createSelector([OS,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),_S=pa.reducer,MS=(t,e,i)=>{const a=t.uuid?t:{...t,uuid:ut.v4()};return{payload:a,type:"",meta:{offline:{effect:{timestamp:new Date().toISOString(),request:a,BASE_URL:e,serviceName:i}}}}},gS={deletedRequests:[],latestRetryTime:0},ma=u.createSlice({name:"outbox",initialState:gS,extraReducers:t=>t.addCase(T,e=>Object.assign(e,gS)),reducers:{enqueueRequest:{reducer:(t,e)=>t,prepare:t=>{console.debug("Preparing to enqueue request",t.url);const{BASE_URL:e,serviceName:i,...a}=t;return MS(a,e,i)}},markForDeletion(t,e){t.deletedRequests.push(e.payload)},markAsDeleted(t,e){const i=t.deletedRequests.indexOf(e.payload);i!==-1&&t.deletedRequests.splice(i,1)},_setLatestRetryTime:(t,e)=>{t.latestRetryTime=e.payload}}}),VM=t=>t.outboxReducer.deletedRequests,BM=t=>t.outboxReducer.latestRetryTime,{enqueueRequest:RS,markForDeletion:zM,markAsDeleted:wS,_setLatestRetryTime:ES}=ma.actions,vS=ma.reducer,Be=b(t=>t.uuid),VS={instances:{}},ya=u.createSlice({name:"projectAccess",initialState:VS,extraReducers:t=>t.addMatcher(u.isAnyOf(T,O),e=>Object.assign(e,VS)),reducers:{initializeProjectAccesses:Be.initialize,addProjectAccess:Be.addOne,addProjectAccesses:Be.addMany,setProjectAccess:Be.setOne,setProjectAccesses:Be.setMany,updateProjectAccess:Be.updateOne,updateProjectAccesses:Be.updateMany,deleteProjectAccess:Be.deleteOne,deleteProjectAccesses:Be.deleteMany}}),{initializeProjectAccesses:BS,addProjectAccess:zS,addProjectAccesses:jS,setProjectAccess:CS,setProjectAccesses:DS,updateProjectAccess:qS,updateProjectAccesses:$S,deleteProjectAccess:US,deleteProjectAccesses:kS}=ya.actions,LS=ya.reducer,fa=t=>t.projectAccessReducer.instances,Rt=u.createSelector(fa,t=>Object.values(t)),HS=t=>e=>e.projectAccessReducer.instances[t],GS=m(u.createSelector([Rt,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),jM=m(u.createSelector([fa,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(Object.values(t).filter(i=>i.project===e)))),CM=m(u.createSelector([Rt,(t,e)=>e],(t,e)=>{const i={};for(const a of t.filter(n=>n.project===e))i[a.user]=a;return i})),DM=m(u.createSelector([Qt,Rt,(t,e)=>e],(t,e,i)=>{const a=new Set(e.filter(n=>n.project===i).map(n=>n.user));return l.fallbackToEmptyArray(t.filter(n=>a.has(n.id)))})),ze=b(t=>t.uuid),NS={instances:{}},Sa=u.createSlice({name:"projectAttachments",initialState:NS,extraReducers:t=>t.addMatcher(u.isAnyOf(T,O),e=>Object.assign(e,NS)),reducers:{initializeProjectAttachments:ze.initialize,addProjectAttachment:ze.addOne,addProjectAttachments:ze.addMany,setProjectAttachment:ze.setOne,setProjectAttachments:ze.setMany,updateProjectAttachment:ze.updateOne,updateProjectAttachments:ze.updateMany,deleteProjectAttachment:ze.deleteOne,deleteProjectAttachments:ze.deleteMany}}),{initializeProjectAttachments:KS,addProjectAttachment:WS,addProjectAttachments:XS,setProjectAttachment:YS,setProjectAttachments:ZS,updateProjectAttachment:JS,updateProjectAttachments:QS,deleteProjectAttachment:xS,deleteProjectAttachments:eA}=Sa.actions,tA=t=>t.projectAttachmentReducer.instances,Aa=u.createSelector([tA],t=>Object.values(t)),sA=t=>e=>e.projectAttachmentReducer.instances[t],iA=m(u.createSelector([Aa,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),qM=m(u.createSelector([Aa,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(({project:i})=>e===i)))),aA=Sa.reducer,je=b(t=>t.uuid),nA={instances:{}},Ta=u.createSlice({name:"projectComments",initialState:nA,extraReducers:t=>t.addMatcher(u.isAnyOf(T,E,O),e=>Object.assign(e,nA)),reducers:{initializeProjectComments:je.initialize,addProjectComment:je.addOne,addProjectComments:je.addMany,setProjectComment:je.setOne,setProjectComments:je.setMany,updateProjectComment:je.updateOne,updateProjectComments:je.updateMany,deleteProjectComment:je.deleteOne,deleteProjectComments:je.deleteMany}}),{initializeProjectComments:cA,addProjectComment:rA,addProjectComments:dA,setProjectComment:uA,setProjectComments:lA,updateProjectComment:oA,updateProjectComments:hA,deleteProjectComment:pA,deleteProjectComments:mA}=Ta.actions,yA=t=>t.projectCommentReducer.instances,ts=u.createSelector([yA],t=>l.fallbackToEmptyArray(Object.values(t).toSorted(l.submittedAtModelSortFn))),fA=t=>e=>e.projectCommentReducer.instances[t],SA=m(u.createSelector([ts,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),$M=m(u.createSelector([ts,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.project===e)))),UM=m(u.createSelector([ts,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(a=>i.has(a.project)))})),AA=Ta.reducer,Ce=b(t=>t.uuid),TA={instances:{}},Ia=u.createSlice({name:"projectFiles",initialState:TA,extraReducers:t=>t.addMatcher(u.isAnyOf(T,E,O),e=>Object.assign(e,TA)),reducers:{initializeProjectFiles:Ce.initialize,setProjectFile:Ce.setOne,setProjectFiles:Ce.setMany,addProjectFile:Ce.addOne,addProjectFiles:Ce.addMany,updateProjectFile:Ce.updateOne,updateProjectFiles:Ce.updateMany,deleteProjectFile:Ce.deleteOne,deleteProjectFiles:Ce.deleteMany}}),{initializeProjectFiles:IA,setProjectFile:bA,setProjectFiles:OA,addProjectFile:PA,addProjectFiles:FA,updateProjectFile:_A,updateProjectFiles:MA,deleteProjectFile:gA,deleteProjectFiles:RA}=Ia.actions,wA=t=>t.projectFileReducer.instances,EA=u.createSelector([wA],t=>l.fallbackToEmptyArray(Object.values(t).toSorted((e,i)=>e.z_index-i.z_index))),vA=t=>e=>e.projectFileReducer.instances[t],VA=m(u.createSelector([EA,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),BA=Ia.reducer,De=b(t=>t.uuid),zA={instances:{}},ba=u.createSlice({name:"projects",initialState:zA,extraReducers:t=>t.addMatcher(u.isAnyOf(T,O),e=>Object.assign(e,zA)),reducers:{initializeProjects:De.initialize,setProjects:De.setMany,setProject:De.setOne,addProjects:De.addMany,addProject:De.addOne,updateProjects:De.updateMany,updateProject:De.updateOne,deleteProject:De.deleteOne,deleteProjects:De.deleteMany}}),{initializeProjects:jA,setProjects:CA,setProject:DA,addProjects:qA,addProject:$A,updateProjects:UA,updateProject:kA,deleteProject:LA,deleteProjects:HA}=ba.actions,GA=ba.reducer,NA=t=>t.projectReducer.instances,ss=u.createSelector([NA],t=>Object.values(t)),KA=t=>e=>e.projectReducer.instances[t],WA=m(u.createSelector([ss,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),kM=m(u.createSelector([ss,Rt,(t,e)=>e],(t,e,i)=>{const a=new Set(e.filter(n=>n.user===i).map(n=>n.project));return l.fallbackToEmptyArray(t.filter(n=>a.has(n.uuid)))})),LM=m(u.createSelector([ss,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.organization===e)))),qe=b(({uuid:t})=>t),XA={instances:{}},Oa=u.createSlice({name:"procedureInitiatives",initialState:XA,extraReducers:t=>t.addMatcher(u.isAnyOf(T,E,O),e=>Object.assign(e,XA)),reducers:{initializeProcedureInitiatives:qe.initialize,addProcedureInitiative:qe.addOne,addProcedureInitiatives:qe.addMany,setProcedureInitiative:qe.setOne,setProcedureInitiatives:qe.setMany,updateProcedureInitiative:qe.updateOne,updateProcedureInitiatives:qe.updateMany,deleteProcedureInitiative:qe.deleteOne,deleteProcedureInitiatives:qe.deleteMany}}),{initializeProcedureInitiatives:YA,addProcedureInitiative:ZA,addProcedureInitiatives:JA,setProcedureInitiative:QA,setProcedureInitiatives:xA,updateProcedureInitiative:eT,updateProcedureInitiatives:tT,deleteProcedureInitiative:sT,deleteProcedureInitiatives:iT}=Oa.actions,aT=Oa.reducer,nT=t=>t.procedureInitiativeReducer.instances,is=u.createSelector([nT],t=>Object.values(t)),cT=t=>e=>e.procedureInitiativeReducer.instances[t],rT=m(u.createSelector([is,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),HM=m(u.createSelector([is,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.project===e)))),GM=m(u.createSelector([is,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.procedure_type===e)))),$e=b(({uuid:t})=>t),dT={instances:{}},Pa=u.createSlice({name:"procedures",initialState:dT,extraReducers:t=>t.addMatcher(u.isAnyOf(T,E,O),e=>Object.assign(e,dT)),reducers:{initializeProcedures:$e.initialize,addProcedure:$e.addOne,addProcedures:$e.addMany,setProcedure:$e.setOne,setProcedures:$e.setMany,updateProcedure:$e.updateOne,updateProcedures:$e.updateMany,deleteProcedure:$e.deleteOne,deleteProcedures:$e.deleteMany}}),{initializeProcedures:uT,addProcedure:lT,addProcedures:bt,setProcedure:oT,setProcedures:hT,updateProcedure:pT,updateProcedures:mT,deleteProcedure:yT,deleteProcedures:Ot}=Pa.actions,fT=Pa.reducer,ST=t=>t.procedureReducer.instances,ht=u.createSelector([ST],t=>Object.values(t)),AT=t=>e=>e.procedureReducer.instances[t],TT=m(u.createSelector([ht,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),NM=m(u.createSelector([ht,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.project===e)))),IT=m(u.createSelector([ht,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.procedure_type===e)))),bT=m(u.createSelector([ht,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.asset===e)))),OT=m(u.createSelector([ht,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({asset:a})=>i.has(a)))})),PT=m(u.createSelector([ht,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.procedure_initiative===e)))),Ue=b(t=>t.uuid),FT={instances:{}},Fa=u.createSlice({name:"procedureStepAssignees",initialState:FT,extraReducers:t=>t.addMatcher(u.isAnyOf(T,E,O),e=>Object.assign(e,FT)),reducers:{initializeProcedureStepAssignees:Ue.initialize,addProcedureStepAssignee:Ue.addOne,addProcedureStepAssignees:Ue.addMany,setProcedureStepAssignee:Ue.setOne,setProcedureStepAssignees:Ue.setMany,updateProcedureStepAssignee:Ue.updateOne,updateProcedureStepAssignees:Ue.updateMany,deleteProcedureStepAssignee:Ue.deleteOne,deleteProcedureStepAssignees:Ue.deleteMany}}),{initializeProcedureStepAssignees:_T,addProcedureStepAssignee:MT,addProcedureStepAssignees:gT,setProcedureStepAssignee:RT,setProcedureStepAssignees:wT,updateProcedureStepAssignee:ET,updateProcedureStepAssignees:vT,deleteProcedureStepAssignee:VT,deleteProcedureStepAssignees:BT}=Fa.actions,zT=t=>t.procedureStepAssigneeReducer.instances,wt=u.createSelector([zT],t=>Object.values(t)),jT=t=>e=>e.procedureStepAssigneeReducer.instances[t],CT=m(u.createSelector([wt,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),KM=m(u.createSelector([wt,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.procedure===e)))),WM=m(u.createSelector([wt,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.procedure_step===e)))),XM=m(u.createSelector([wt,(t,e)=>e,(t,e,i)=>i],(t,e,i)=>l.fallbackToEmptyArray(t.filter(({procedure:a,procedure_step:n})=>a===e&&n===i)))),DT=Fa.reducer,ke=b(t=>t.uuid),qT={instances:{}},_a=u.createSlice({name:"procedureStepComments",initialState:qT,extraReducers:t=>t.addMatcher(u.isAnyOf(T,E,O),e=>Object.assign(e,qT)),reducers:{initializeProcedureStepComments:ke.initialize,addProcedureStepComment:ke.addOne,addProcedureStepComments:ke.addMany,setProcedureStepComment:ke.setOne,setProcedureStepComments:ke.setMany,updateProcedureStepComment:ke.updateOne,updateProcedureStepComments:ke.updateMany,deleteProcedureStepComment:ke.deleteOne,deleteProcedureStepComments:ke.deleteMany}}),{initializeProcedureStepComments:$T,addProcedureStepComment:UT,addProcedureStepComments:kT,setProcedureStepComment:LT,setProcedureStepComments:HT,updateProcedureStepComment:GT,updateProcedureStepComments:NT,deleteProcedureStepComment:KT,deleteProcedureStepComments:WT}=_a.actions,XT=t=>t.procedureStepCommentReducer.instances,Et=u.createSelector([XT],t=>Object.values(t)),YT=t=>e=>e.procedureStepCommentReducer.instances[t],ZT=m(u.createSelector([Et,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),YM=m(u.createSelector([Et,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.procedure===e)))),ZM=m(u.createSelector([Et,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.procedure_step===e)))),JM=m(u.createSelector([Et,(t,e)=>e,(t,e,i)=>i],(t,e,i)=>l.fallbackToEmptyArray(t.filter(({procedure:a,procedure_step:n})=>a===e&&n===i)))),JT=_a.reducer,Le=b(t=>t.uuid),QT={instances:{}},Ma=u.createSlice({name:"procedureStepDefaultAssignees",initialState:QT,extraReducers:t=>t.addMatcher(u.isAnyOf(T,O),e=>Object.assign(e,QT)),reducers:{initializeProcedureStepDefaultAssignees:Le.initialize,addProcedureStepDefaultAssignee:Le.addOne,addProcedureStepDefaultAssignees:Le.addMany,setProcedureStepDefaultAssignee:Le.setOne,setProcedureStepDefaultAssignees:Le.setMany,updateProcedureStepDefaultAssignee:Le.updateOne,updateProcedureStepDefaultAssignees:Le.updateMany,deleteProcedureStepDefaultAssignee:Le.deleteOne,deleteProcedureStepDefaultAssignees:Le.deleteMany}}),{initializeProcedureStepDefaultAssignees:xT,addProcedureStepDefaultAssignee:eI,addProcedureStepDefaultAssignees:tI,setProcedureStepDefaultAssignee:sI,setProcedureStepDefaultAssignees:iI,updateProcedureStepDefaultAssignee:aI,updateProcedureStepDefaultAssignees:nI,deleteProcedureStepDefaultAssignee:cI,deleteProcedureStepDefaultAssignees:rI}=Ma.actions,dI=t=>t.procedureStepDefaultAssigneeReducer.instances,ga=u.createSelector([dI],t=>Object.values(t)),uI=t=>e=>e.procedureStepDefaultAssigneeReducer.instances[t],lI=m(u.createSelector([ga,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),QM=m(u.createSelector([ga,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.procedure_step===e)))),oI=Ma.reducer,He=b(t=>t.uuid),hI={instances:{}},Ra=u.createSlice({name:"procedureStepDefaultReviewers",initialState:hI,extraReducers:t=>t.addMatcher(u.isAnyOf(T,O),e=>Object.assign(e,hI)),reducers:{initializeProcedureStepDefaultReviewers:He.initialize,addProcedureStepDefaultReviewer:He.addOne,addProcedureStepDefaultReviewers:He.addMany,setProcedureStepDefaultReviewer:He.setOne,setProcedureStepDefaultReviewers:He.setMany,updateProcedureStepDefaultReviewer:He.updateOne,updateProcedureStepDefaultReviewers:He.updateMany,deleteProcedureStepDefaultReviewer:He.deleteOne,deleteProcedureStepDefaultReviewers:He.deleteMany}}),{initializeProcedureStepDefaultReviewers:pI,addProcedureStepDefaultReviewer:mI,addProcedureStepDefaultReviewers:yI,setProcedureStepDefaultReviewer:fI,setProcedureStepDefaultReviewers:SI,updateProcedureStepDefaultReviewer:AI,updateProcedureStepDefaultReviewers:TI,deleteProcedureStepDefaultReviewer:II,deleteProcedureStepDefaultReviewers:bI}=Ra.actions,OI=t=>t.procedureStepDefaultReviewerReducer.instances,wa=u.createSelector([OI],t=>Object.values(t)),PI=t=>e=>e.procedureStepDefaultReviewerReducer.instances[t],FI=m(u.createSelector([wa,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),xM=m(u.createSelector([wa,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.procedure_step===e)))),_I=Ra.reducer,Ge=b(t=>t.uuid),MI={instances:{}},Ea=u.createSlice({name:"procedureStepEvents",initialState:MI,extraReducers:t=>t.addMatcher(u.isAnyOf(T,E,O),e=>Object.assign(e,MI)),reducers:{initializeProcedureStepEvents:Ge.initialize,addProcedureStepEvent:Ge.addOne,addProcedureStepEvents:Ge.addMany,setProcedureStepEvent:Ge.setOne,setProcedureStepEvents:Ge.setMany,updateProcedureStepEvent:Ge.updateOne,updateProcedureStepEvents:Ge.updateMany,deleteProcedureStepEvent:Ge.deleteOne,deleteProcedureStepEvents:Ge.deleteMany}}),{initializeProcedureStepEvents:gI,addProcedureStepEvent:RI,addProcedureStepEvents:wI,setProcedureStepEvent:EI,setProcedureStepEvents:vI,updateProcedureStepEvent:VI,updateProcedureStepEvents:BI,deleteProcedureStepEvent:zI,deleteProcedureStepEvents:jI}=Ea.actions,CI=t=>t.procedureStepEventReducer.instances,vt=u.createSelector([CI],t=>Object.values(t)),DI=t=>e=>e.procedureStepEventReducer.instances[t],qI=m(u.createSelector([vt,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),eg=m(u.createSelector([vt,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.procedure===e)))),tg=m(u.createSelector([vt,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.procedure_step===e)))),sg=m(u.createSelector([vt,(t,e)=>e,(t,e,i)=>i],(t,e,i)=>l.fallbackToEmptyArray(t.filter(({procedure:a,procedure_step:n})=>a===e&&n===i)))),$I=Ea.reducer,Ne=b(t=>t.uuid),UI={instances:{}},va=u.createSlice({name:"procedureStepFieldsAttachments",initialState:UI,extraReducers:t=>t.addMatcher(u.isAnyOf(T,O),e=>Object.assign(e,UI)),reducers:{initializeProcedureStepFieldsAttachments:Ne.initialize,addProcedureStepFieldsAttachment:Ne.addOne,addProcedureStepFieldsAttachments:Ne.addMany,setProcedureStepFieldsAttachment:Ne.setOne,setProcedureStepFieldsAttachments:Ne.setMany,updateProcedureStepFieldsAttachment:Ne.updateOne,updateProcedureStepFieldsAttachments:Ne.updateMany,deleteProcedureStepFieldsAttachment:Ne.deleteOne,deleteProcedureStepFieldsAttachments:Ne.deleteMany}}),{initializeProcedureStepFieldsAttachments:kI,addProcedureStepFieldsAttachment:LI,addProcedureStepFieldsAttachments:Va,setProcedureStepFieldsAttachment:HI,setProcedureStepFieldsAttachments:GI,updateProcedureStepFieldsAttachment:NI,updateProcedureStepFieldsAttachments:KI,deleteProcedureStepFieldsAttachment:WI,deleteProcedureStepFieldsAttachments:Ba}=va.actions,XI=t=>t.procedureStepFieldsAttachmentReducer.instances,za=u.createSelector([XI],t=>Object.values(t)),YI=m(u.createSelector([za,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.fields_revision===e)))),ZI=t=>e=>e.procedureStepFieldsAttachmentReducer.instances[t],JI=m(u.createSelector([za,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),QI=va.reducer,Ke=b(t=>t.uuid),xI={instances:{}},ja=u.createSlice({name:"procedureStepFields",initialState:xI,extraReducers:t=>t.addMatcher(u.isAnyOf(T,O),e=>Object.assign(e,xI)),reducers:{initializeProcedureStepFields:Ke.initialize,addProcedureStepFields:Ke.addOne,addProcedureStepFieldsMany:Ke.addMany,setProcedureStepFields:Ke.setOne,setProcedureStepFieldsMany:Ke.setMany,updateProcedureStepFields:Ke.updateOne,updateProcedureStepFieldsMany:Ke.updateMany,deleteProcedureStepFields:Ke.deleteOne,deleteProcedureStepFieldsMany:Ke.deleteMany}}),{initializeProcedureStepFields:eb,addProcedureStepFields:tb,addProcedureStepFieldsMany:sb,setProcedureStepFields:ib,setProcedureStepFieldsMany:ab,updateProcedureStepFields:nb,updateProcedureStepFieldsMany:cb,deleteProcedureStepFields:rb,deleteProcedureStepFieldsMany:db}=ja.actions,Ca=t=>t.procedureStepFieldsReducer.instances,as=u.createSelector([Ca],t=>Object.values(t)),ig=m(u.createSelector([as,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.procedure_step===e)))),ag=m(u.createSelector([as,(t,e)=>e],(t,e)=>t.filter(i=>i.procedure_step===e).toSorted(l.submittedAtModelSortFn).pop())),ng=u.createSelector([Ca],t=>{const e={};for(const i of Object.values(t)){const a=e[i.procedure_step];(!a||a.submitted_at<i.submitted_at)&&(e[i.procedure_step]=i)}return e}),ub=t=>e=>e.procedureStepFieldsReducer.instances[t],lb=m(u.createSelector([as,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),ob=ja.reducer,We=b(t=>t.uuid),hb={instances:{}},Da=u.createSlice({name:"procedureStepFieldValuesAttachments",initialState:hb,extraReducers:t=>t.addMatcher(u.isAnyOf(T,E,O),e=>Object.assign(e,hb)),reducers:{initializeProcedureStepFieldValuesAttachments:We.initialize,addProcedureStepFieldValuesAttachment:We.addOne,addProcedureStepFieldValuesAttachments:We.addMany,setProcedureStepFieldValuesAttachment:We.setOne,setProcedureStepFieldValuesAttachments:We.setMany,updateProcedureStepFieldValuesAttachment:We.updateOne,updateProcedureStepFieldValuesAttachments:We.updateMany,deleteProcedureStepFieldValuesAttachment:We.deleteOne,deleteProcedureStepFieldValuesAttachments:We.deleteMany}}),{initializeProcedureStepFieldValuesAttachments:pb,addProcedureStepFieldValuesAttachment:mb,addProcedureStepFieldValuesAttachments:qa,setProcedureStepFieldValuesAttachment:yb,setProcedureStepFieldValuesAttachments:fb,updateProcedureStepFieldValuesAttachment:Sb,updateProcedureStepFieldValuesAttachments:Ab,deleteProcedureStepFieldValuesAttachment:Tb,deleteProcedureStepFieldValuesAttachments:$a}=Da.actions,Ib=t=>t.procedureStepFieldValuesAttachmentReducer.instances,Ua=u.createSelector([Ib],t=>Object.values(t)),bb=t=>e=>e.procedureStepFieldValuesAttachmentReducer.instances[t],Ob=m(u.createSelector([Ua,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),Pb=m(u.createSelector([Ua,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.field_values===e)))),Fb=Da.reducer,Xe=b(t=>t.uuid),_b={instances:{}},ka=u.createSlice({name:"procedureStepFieldValues",initialState:_b,extraReducers:t=>t.addMatcher(u.isAnyOf(T,E,O),e=>Object.assign(e,_b)),reducers:{initializeProcedureStepFieldValues:Xe.initialize,addProcedureStepFieldValues:Xe.addOne,addProcedureStepFieldValuesMany:Xe.addMany,setProcedureStepFieldValues:Xe.setOne,setProcedureStepFieldValuesMany:Xe.setMany,updateProcedureStepFieldValues:Xe.updateOne,updateProcedureStepFieldValuesMany:Xe.updateMany,deleteProcedureStepFieldValues:Xe.deleteOne,deleteProcedureStepFieldValuesMany:Xe.deleteMany}}),{initializeProcedureStepFieldValues:Mb,addProcedureStepFieldValues:gb,addProcedureStepFieldValuesMany:Rb,setProcedureStepFieldValues:wb,setProcedureStepFieldValuesMany:Eb,updateProcedureStepFieldValues:vb,updateProcedureStepFieldValuesMany:Vb,deleteProcedureStepFieldValues:Bb,deleteProcedureStepFieldValuesMany:zb}=ka.actions,jb=ka.reducer,Cb=t=>t.procedureStepFieldValuesReducer.instances,pt=u.createSelector([Cb],t=>Object.values(t)),cg=m(u.createSelector([pt,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.procedure===e)))),rg=m(u.createSelector([pt,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.procedure_step===e)))),Db=t=>e=>e.procedureStepFieldValuesReducer.instances[t],qb=m(u.createSelector([pt,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),dg=m(u.createSelector([pt,(t,e)=>e,(t,e,i)=>i],(t,e,i)=>l.fallbackToEmptyArray(t.filter(({procedure:a,procedure_step:n})=>a===e&&n===i)))),Ye=b(t=>t.uuid),$b={instances:{}},La=u.createSlice({name:"procedureStepFieldValuesReviews",initialState:$b,extraReducers:t=>t.addMatcher(u.isAnyOf(T,E,O),e=>Object.assign(e,$b)),reducers:{initializeProcedureStepFieldValuesReviews:Ye.initialize,addProcedureStepFieldValuesReview:Ye.addOne,addProcedureStepFieldValuesReviews:Ye.addMany,setProcedureStepFieldValuesReview:Ye.setOne,setProcedureStepFieldValuesReviews:Ye.setMany,updateProcedureStepFieldValuesReview:Ye.updateOne,updateProcedureStepFieldValuesReviews:Ye.updateMany,deleteProcedureStepFieldValuesReview:Ye.deleteOne,deleteProcedureStepFieldValuesReviews:Ye.deleteMany}}),{initializeProcedureStepFieldValuesReviews:Ub,addProcedureStepFieldValuesReview:kb,addProcedureStepFieldValuesReviews:Ha,setProcedureStepFieldValuesReview:Lb,setProcedureStepFieldValuesReviews:Hb,updateProcedureStepFieldValuesReview:Gb,updateProcedureStepFieldValuesReviews:Nb,deleteProcedureStepFieldValuesReview:Kb,deleteProcedureStepFieldValuesReviews:Ga}=La.actions,Wb=t=>t.procedureStepFieldValuesReviewReducer.instances,mt=u.createSelector([Wb],t=>Object.values(t)),Xb=t=>e=>e.procedureStepFieldValuesReviewReducer.instances[t],Yb=m(u.createSelector([mt,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),Zb=m(u.createSelector([mt,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.field_values===e)))),ug=m(u.createSelector([mt,(t,e)=>e],(t,e)=>{let i;for(const a of t){const{field_values:n}=a;n===e&&(!i||i.submitted_at<=a.submitted_at)&&(i=a)}return i})),lg=m(u.createSelector([pt,mt,(t,e)=>e],(t,e,i)=>{const a=new Set(l.toUuidArray(t.filter(({procedure:n})=>i===n)));return l.fallbackToEmptyArray(e.filter(({field_values:n})=>a.has(n)))})),og=m(u.createSelector([pt,mt,(t,e)=>e,(t,e,i)=>i],(t,e,i,a)=>{const n=new Set(l.toUuidArray(t.filter(({procedure_step:c,procedure:d})=>i===d&&c===a)));return l.fallbackToEmptyArray(e.filter(({field_values:c})=>n.has(c)))})),hg=u.createSelector([mt],t=>{const e={};for(const i of t){const{field_values:a}=i,n=e[a];(!n||n.submitted_at<=i.submitted_at)&&(e[a]=i)}return e}),Jb=La.reducer,Ze=b(t=>t.uuid),Qb={instances:{}},Na=u.createSlice({name:"procedureStepReviewers",initialState:Qb,extraReducers:t=>t.addMatcher(u.isAnyOf(T,E,O),e=>Object.assign(e,Qb)),reducers:{initializeProcedureStepReviewers:Ze.initialize,addProcedureStepReviewer:Ze.addOne,addProcedureStepReviewers:Ze.addMany,setProcedureStepReviewer:Ze.setOne,setProcedureStepReviewers:Ze.setMany,updateProcedureStepReviewer:Ze.updateOne,updateProcedureStepReviewers:Ze.updateMany,deleteProcedureStepReviewer:Ze.deleteOne,deleteProcedureStepReviewers:Ze.deleteMany}}),{initializeProcedureStepReviewers:xb,addProcedureStepReviewer:eO,addProcedureStepReviewers:tO,setProcedureStepReviewer:sO,setProcedureStepReviewers:iO,updateProcedureStepReviewer:aO,updateProcedureStepReviewers:nO,deleteProcedureStepReviewer:cO,deleteProcedureStepReviewers:rO}=Na.actions,dO=t=>t.procedureStepReviewerReducer.instances,Vt=u.createSelector([dO],t=>Object.values(t)),uO=t=>e=>e.procedureStepReviewerReducer.instances[t],lO=m(u.createSelector([Vt,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),pg=m(u.createSelector([Vt,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.procedure===e)))),mg=m(u.createSelector([Vt,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.procedure_step===e)))),yg=m(u.createSelector([Vt,(t,e)=>e,(t,e,i)=>i],(t,e,i)=>l.fallbackToEmptyArray(t.filter(({procedure:a,procedure_step:n})=>a===e&&n===i)))),oO=Na.reducer,Je=b(t=>t.uuid),hO={instances:{}},Ka=u.createSlice({name:"procedureSteps",initialState:hO,extraReducers:t=>t.addMatcher(u.isAnyOf(T,O),e=>Object.assign(e,hO)),reducers:{initializeProcedureSteps:Je.initialize,setProcedureStep:Je.setOne,setProcedureSteps:Je.setMany,addProcedureStep:Je.addOne,addProcedureSteps:Je.addMany,updateProcedureStep:Je.updateOne,updateProcedureSteps:Je.updateMany,deleteProcedureStep:Je.deleteOne,deleteProcedureSteps:Je.deleteMany}}),{initializeProcedureSteps:pO,setProcedureStep:mO,setProcedureSteps:yO,addProcedureStep:fO,addProcedureSteps:SO,updateProcedureStep:AO,updateProcedureSteps:TO,deleteProcedureStep:IO,deleteProcedureSteps:bO}=Ka.actions,OO=Ka.reducer,Wa=t=>t.procedureStepReducer.instances,PO=t=>e=>e.procedureStepReducer.instances[t],Xa=u.createSelector([Wa],t=>Object.values(t).toSorted((e,i)=>e.order-i.order)),fg=m(u.createSelector([Wa,(t,e)=>e],(t,e)=>{const i={};for(const[a,n]of Object.entries(t))n.procedure_type===e&&(i[a]=n);return l.fallbackToEmptyObject(i)})),Sg=m(u.createSelector([Xa,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.procedure_type===e)))),FO=m(u.createSelector([Xa,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),Qe=b(({uuid:t})=>t),_O={instances:{}},Ya=u.createSlice({name:"procedureTypeAttachments",initialState:_O,extraReducers:t=>t.addMatcher(u.isAnyOf(T,O),e=>Object.assign(e,_O)),reducers:{initializeProcedureTypeAttachments:Qe.initialize,addProcedureTypeAttachment:Qe.addOne,addProcedureTypeAttachments:Qe.addMany,setProcedureTypeAttachment:Qe.setOne,setProcedureTypeAttachments:Qe.setMany,updateProcedureTypeAttachment:Qe.updateOne,updateProcedureTypeAttachments:Qe.updateMany,deleteProcedureTypeAttachment:Qe.deleteOne,deleteProcedureTypeAttachments:Qe.deleteMany}}),{initializeProcedureTypeAttachments:MO,addProcedureTypeAttachment:gO,addProcedureTypeAttachments:RO,setProcedureTypeAttachment:wO,setProcedureTypeAttachments:EO,updateProcedureTypeAttachment:vO,updateProcedureTypeAttachments:VO,deleteProcedureTypeAttachment:BO,deleteProcedureTypeAttachments:zO}=Ya.actions,jO=Ya.reducer,CO=t=>t.procedureTypeAttachmentReducer.instances,Za=u.createSelector([CO],t=>Object.values(t)),DO=t=>e=>e.procedureTypeAttachmentReducer.instances[t],qO=m(u.createSelector([Za,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),Ag=m(u.createSelector([Za,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(({procedure_type:i})=>e===i)))),xe=b(({uuid:t})=>t),$O={instances:{}},Ja=u.createSlice({name:"procedureTypeFieldsAttachments",initialState:$O,extraReducers:t=>t.addMatcher(u.isAnyOf(T,O),e=>Object.assign(e,$O)),reducers:{initializeProcedureTypeFieldsAttachments:xe.initialize,addProcedureTypeFieldsAttachment:xe.addOne,addProcedureTypeFieldsAttachments:xe.addMany,setProcedureTypeFieldsAttachment:xe.setOne,setProcedureTypeFieldsAttachments:xe.setMany,updateProcedureTypeFieldsAttachment:xe.updateOne,updateProcedureTypeFieldsAttachments:xe.updateMany,deleteProcedureTypeFieldsAttachment:xe.deleteOne,deleteProcedureTypeFieldsAttachments:xe.deleteMany}}),{initializeProcedureTypeFieldsAttachments:UO,addProcedureTypeFieldsAttachment:kO,addProcedureTypeFieldsAttachments:LO,setProcedureTypeFieldsAttachment:HO,setProcedureTypeFieldsAttachments:GO,updateProcedureTypeFieldsAttachment:NO,updateProcedureTypeFieldsAttachments:KO,deleteProcedureTypeFieldsAttachment:WO,deleteProcedureTypeFieldsAttachments:XO}=Ja.actions,YO=Ja.reducer,ZO=t=>t.procedureTypeFieldsAttachmentReducer.instances,Qa=u.createSelector([ZO],t=>Object.values(t)),Tg=m(u.createSelector([Qa,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.fields_revision===e)))),JO=t=>e=>e.procedureTypeFieldsAttachmentReducer.instances[t],QO=m(u.createSelector([Qa,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),et=b(({uuid:t})=>t),xO={instances:{}},xa=u.createSlice({name:"procedureTypeFields",initialState:xO,extraReducers:t=>t.addMatcher(u.isAnyOf(T,O),e=>Object.assign(e,xO)),reducers:{initializeProcedureTypeFields:et.initialize,addProcedureTypeFields:et.addOne,addProcedureTypeFieldsMany:et.addMany,setProcedureTypeFields:et.setOne,setProcedureTypeFieldsMany:et.setMany,updateProcedureTypeFields:et.updateOne,updateProcedureTypeFieldsMany:et.updateMany,deleteProcedureTypeFields:et.deleteOne,deleteProcedureTypeFieldsMany:et.deleteMany}}),{initializeProcedureTypeFields:eP,addProcedureTypeFields:tP,addProcedureTypeFieldsMany:sP,setProcedureTypeFields:iP,setProcedureTypeFieldsMany:aP,updateProcedureTypeFields:nP,updateProcedureTypeFieldsMany:cP,deleteProcedureTypeFields:rP,deleteProcedureTypeFieldsMany:dP}=xa.actions,uP=xa.reducer,lP=t=>t.procedureTypeFieldsReducer.instances,ns=u.createSelector([lP],t=>Object.values(t)),Ig=m(u.createSelector([ns,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.procedure_type===e)))),bg=m(u.createSelector([ns,(t,e)=>e],(t,e)=>t.filter(i=>i.procedure_type===e).sort((i,a)=>i.submitted_at>a.submitted_at?-1:1)[0])),oP=t=>e=>e.procedureTypeFieldsReducer.instances[t],hP=m(u.createSelector([ns,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),tt=b(({uuid:t})=>t),pP={instances:{}},en=u.createSlice({name:"procedureFieldValuesAttachments",initialState:pP,extraReducers:t=>t.addMatcher(u.isAnyOf(T,E,O),e=>Object.assign(e,pP)),reducers:{initializeProcedureFieldValuesAttachments:tt.initialize,addProcedureFieldValuesAttachment:tt.addOne,addProcedureFieldValuesAttachments:tt.addMany,setProcedureFieldValuesAttachment:tt.setOne,setProcedureFieldValuesAttachments:tt.setMany,updateProcedureFieldValuesAttachment:tt.updateOne,updateProcedureFieldValuesAttachments:tt.updateMany,deleteProcedureFieldValuesAttachment:tt.deleteOne,deleteProcedureFieldValuesAttachments:tt.deleteMany}}),{initializeProcedureFieldValuesAttachments:mP,addProcedureFieldValuesAttachment:yP,addProcedureFieldValuesAttachments:tn,setProcedureFieldValuesAttachment:fP,setProcedureFieldValuesAttachments:SP,updateProcedureFieldValuesAttachment:AP,updateProcedureFieldValuesAttachments:TP,deleteProcedureFieldValuesAttachment:IP,deleteProcedureFieldValuesAttachments:sn}=en.actions,bP=en.reducer,OP=t=>t.procedureFieldValuesAttachmentReducer.instances,an=u.createSelector([OP],t=>Object.values(t)),PP=t=>e=>e.procedureFieldValuesAttachmentReducer.instances[t],FP=m(u.createSelector([an,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),_P=m(u.createSelector([an,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.field_values===e)))),st=b(({uuid:t})=>t),MP={instances:{}},nn=u.createSlice({name:"procedureFieldValues",initialState:MP,extraReducers:t=>t.addMatcher(u.isAnyOf(T,E,O),e=>Object.assign(e,MP)),reducers:{initializeProcedureFieldValues:st.initialize,addProcedureFieldValues:st.addOne,addProcedureFieldValuesMany:st.addMany,setProcedureFieldValues:st.setOne,setProcedureFieldValuesMany:st.setMany,updateProcedureFieldValues:st.updateOne,updateProcedureFieldValuesMany:st.updateMany,deleteProcedureFieldValues:st.deleteOne,deleteProcedureFieldValuesMany:st.deleteMany}}),{initializeProcedureFieldValues:gP,addProcedureFieldValues:RP,addProcedureFieldValuesMany:wP,setProcedureFieldValues:EP,setProcedureFieldValuesMany:vP,updateProcedureFieldValues:VP,updateProcedureFieldValuesMany:BP,deleteProcedureFieldValues:zP,deleteProcedureFieldValuesMany:jP}=nn.actions,CP=nn.reducer,DP=t=>t.procedureFieldValuesReducer.instances,cn=u.createSelector([DP],t=>Object.values(t)),Og=m(u.createSelector([cn,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.procedure===e)))),qP=t=>e=>e.procedureFieldValuesReducer.instances[t],$P=m(u.createSelector([cn,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),it=b(t=>t.uuid),UP={instances:{}},rn=u.createSlice({name:"procedureTypes",initialState:UP,extraReducers:t=>t.addMatcher(u.isAnyOf(T,O),e=>Object.assign(e,UP)),reducers:{initializeProcedureTypes:it.initialize,addProcedureType:it.addOne,addProcedureTypes:it.addMany,setProcedureType:it.setOne,setProcedureTypes:it.setMany,updateProcedureType:it.updateOne,updateProcedureTypes:it.updateMany,deleteProcedureType:it.deleteOne,deleteProcedureTypes:it.deleteMany}}),{initializeProcedureTypes:kP,addProcedureType:LP,addProcedureTypes:HP,setProcedureType:GP,setProcedureTypes:NP,updateProcedureType:KP,updateProcedureTypes:WP,deleteProcedureType:XP,deleteProcedureTypes:YP}=rn.actions,ZP=rn.reducer,JP=t=>t.procedureTypeReducer.instances,dn=u.createSelector([JP],t=>Object.values(t)),QP=t=>e=>e.procedureTypeReducer.instances[t],xP=m(u.createSelector([dn,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),Pg=m(u.createSelector([dn,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.organization===e)))),Fg={isRehydrated:!1},un=u.createSlice({name:"rehydrated",initialState:Fg,reducers:{setRehydrated:(t,e)=>{t.isRehydrated=e.payload}}}),{setRehydrated:_g}=un.actions,Mg=t=>t.rehydratedReducer.isRehydrated,eF=un.reducer,at=b(t=>t.uuid),tF={instances:{}},ln=u.createSlice({name:"reports",initialState:tF,extraReducers:t=>t.addMatcher(u.isAnyOf(T,E,O),e=>Object.assign(e,tF)),reducers:{initializeReports:at.initialize,addReport:at.addOne,addReports:at.addMany,setReport:at.setOne,setReports:at.setMany,updateReport:at.updateOne,updateReports:at.updateMany,deleteReport:at.deleteOne,deleteReports:at.deleteMany}}),{initializeReports:sF,addReport:iF,addReports:aF,setReport:nF,setReports:cF,updateReport:rF,updateReports:dF,deleteReport:uF,deleteReports:lF}=ln.actions,oF=t=>t.reportReducer.instances,hF=u.createSelector([oF],t=>l.fallbackToEmptyArray(Object.values(t))),pF=t=>e=>e.reportReducer.instances[t],mF=m(u.createSelector([hF,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),yF=ln.reducer,nt=b(t=>t.uuid),fF={instances:{}},on=u.createSlice({name:"teamMemberships",initialState:fF,extraReducers:t=>t.addMatcher(u.isAnyOf(T,O),e=>Object.assign(e,fF)),reducers:{initializeTeamMemberships:nt.initialize,addTeamMembership:nt.addOne,addTeamMemberships:nt.addMany,setTeamMembership:nt.setOne,setTeamMemberships:nt.setMany,updateTeamMembership:nt.updateOne,updateTeamMemberships:nt.updateMany,deleteTeamMembership:nt.deleteOne,deleteTeamMemberships:nt.deleteMany}}),{initializeTeamMemberships:SF,addTeamMembership:AF,addTeamMemberships:TF,setTeamMembership:IF,setTeamMemberships:bF,updateTeamMembership:OF,updateTeamMemberships:PF,deleteTeamMembership:FF,deleteTeamMemberships:_F}=on.actions,MF=on.reducer,gF=t=>t.teamMembershipReducer.instances,cs=u.createSelector([gF],t=>Object.values(t)),RF=t=>e=>e.teamMembershipReducer.instances[t],wF=m(u.createSelector([cs,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),gg=m(u.createSelector([cs,(t,e)=>e],(t,e)=>{const i={};for(const a of t.filter(n=>n.team===e))i[a.user]=a;return i})),Rg=m(u.createSelector([Qt,cs,(t,e)=>e],(t,e,i)=>{const a=new Set(e.filter(n=>n.team===i).map(n=>n.user));return l.fallbackToEmptyArray(t.filter(n=>a.has(n.id)))})),ct=b(t=>t.uuid),EF={instances:{}},hn=u.createSlice({name:"teams",initialState:EF,extraReducers:t=>t.addMatcher(u.isAnyOf(T,O),e=>Object.assign(e,EF)),reducers:{initializeTeams:ct.initialize,addTeam:ct.addOne,addTeams:ct.addMany,setTeam:ct.setOne,setTeams:ct.setMany,updateTeam:ct.updateOne,updateTeams:ct.updateMany,deleteTeam:ct.deleteOne,deleteTeams:ct.deleteMany}}),{initializeTeams:vF,addTeam:VF,addTeams:BF,setTeam:zF,setTeams:jF,updateTeam:CF,updateTeams:DF,deleteTeam:qF,deleteTeams:$F}=hn.actions,UF=t=>t.teamReducer.instances,pn=u.createSelector([UF],t=>Object.values(t)),kF=t=>e=>e.teamReducer.instances[t],LF=m(u.createSelector([pn,(t,e)=>e],(t,e)=>{const i=new Set(e);return l.fallbackToEmptyArray(t.filter(({uuid:a})=>i.has(a)))})),wg=m(u.createSelector([pn,(t,e)=>e],(t,e)=>l.fallbackToEmptyArray(t.filter(i=>i.organization===e)))),HF=hn.reducer,mn={outboxReducer:vS,authReducer:Wd},Eg=u.combineReducers(mn),GF={...mn,assetReducer:Rc,assetAttachmentReducer:kn,assetCommentAttachmentReducer:tc,assetCommentReducer:yc,assetTypeReducer:Ed,assetTypeAttachmentReducer:kc,issueReducer:xp,issueAttachmentReducer:pp,issueTypeReducer:ff,issueTypeAttachmentReducer:pm,organizationReducer:_S,projectReducer:GA,projectAttachmentReducer:aA,projectCommentReducer:AA,projectAccessReducer:LS,organizationAccessReducer:rS,projectFileReducer:BA,procedureTypeReducer:ZP,procedureInitiativeReducer:aT,procedureReducer:fT,procedureTypeFieldsReducer:uP,procedureFieldValuesReducer:CP,procedureTypeAttachmentReducer:jO,procedureTypeFieldsAttachmentReducer:YO,procedureFieldValuesAttachmentReducer:bP,procedureStepFieldsAttachmentReducer:QI,procedureStepFieldsReducer:ob,procedureStepFieldValuesAttachmentReducer:Fb,procedureStepFieldValuesReducer:jb,procedureStepFieldValuesReviewReducer:Jb,procedureStepAssigneeReducer:DT,procedureStepCommentReducer:JT,procedureStepDefaultAssigneeReducer:oI,procedureStepDefaultReviewerReducer:_I,procedureStepEventReducer:$I,procedureStepReviewerReducer:oO,procedureStepReducer:OO,rehydratedReducer:eF,reportReducer:yF,formReducer:co,formRevisionReducer:Cl,formRevisionAttachmentReducer:Pl,formSubscriberReducer:Yl,formSubmissionFieldValuesAttachmentReducer:bo,formSubmissionFieldValuesReducer:zo,formSubmissionCommentAttachmentReducer:Xo,formSubmissionCommentReducer:rh,formSubmissionReducer:Fh,formIdentifierReducer:Yu,formIdentifierValueReducer:ul,userReducer:Xf,emailDomainsReducer:ju,documentsReducer:Au,documentAttachmentReducer:ru,teamReducer:HF,agentsReducer:Rn,issueCommentReducer:Up,issueCommentAttachmentReducer:gp,issueUpdateReducer:$f,geoImageReducer:qh,issueAssociationReducer:ep,issueTypeFieldsReducer:ty,issueTypeFieldValuesReducer:km,issueTypeFieldsAttachmentReducer:gm,issueTypeFieldValuesAttachmentReducer:my,issueTypeIdentifierReducer:Ry,issueTypeIdentifierValueReducer:Ly,issueTypePriorityReducer:tf,issueTypeStatusReducer:wf,assetTypeFieldsReducer:yr,assetTypeFieldValuesReducer:Lr,assetTypeFieldsAttachmentReducer:tr,assetTypeFieldValuesAttachmentReducer:Rr,assetTypeIdentifierReducer:sd,assetTypeIdentifierValueReducer:fd,assetTypeStatusReducer:Gd,teamMembershipReducer:MF},vg=u.combineReducers(GF),NF=1e4,yn=[400,409,403,404,405,500],D=1e4,KF={};class WF{client;pageSize=NF;constructor(e){KF[this.constructor.name]=this,this.client=e}async performRequest(e,i){return this.client.performRequest(this.host,e,this,i)}async enqueueRequest(e){return this.client.enqueueRequest(e,this.host,this.constructor.name)}async performPagination(e,i){return this.client.performPagination(this.host,e,this.pageSize,this,i)}dispatch(e){this.client.store.dispatch(e)}select(e){return e(this.client.store.getState())}}const Vg=t=>{if(t)throw t;const e=Ft();e?e.dispatch({type:"rehydrated/setRehydrated",payload:!0}):console.error("Client store not set")},XF=(t,e,i)=>{const a=ft();return a?(a.addRequest(e),a.getQueue()):(console.warn("Outbox coordinator not set; cannot enqueue request yet."),[])},YF=(t,e,i)=>{const a=ft();if(!a)return console.warn("Outbox coordinator not set; cannot dequeue request yet."),[];const c=e.meta.offlineAction.payload.uuid;return a.remove(c),a.getQueue()};async function Bg(t,e){if(!e.payload)throw new Error("Received empty payload");return A_(e)}const zg={...bn,effect:Bg,discard:JF,returnPromises:!0,persistCallback:Vg,retry:Dg,persistOptions:{storage:b_},queue:{...bn.queue,enqueue:XF,dequeue:YF,peek:(...t)=>Cg(...t)}},jg=I_.offline(zg);async function ZF(t,e,i){if(e.store.getState().outboxReducer.deletedRequests.includes(t.payload.uuid))throw new Error("Request was marked for deletion");const n=KF[t.meta.offline.effect.serviceName];if(!n)throw new Error(`Service ${t.meta.offline.effect.serviceName} not found`);return An(t.meta.offline.effect.BASE_URL,t.meta.offline.effect.request,e,n,i)}function JF(t,e,i=0){if(console.debug("Considering discarding request due to error:",t,`(${typeof t})`,`
2
2
  Url:`,e.payload.url,`
3
- Retries:`,i),!(t instanceof Error))throw console.error("ENCOUNTERED NON-ERROR ERROR:",t,"(throwing immediately, which may lead to unexpected behavior)"),t;const a=Pt(),c=a.getState().outboxReducer.deletedRequests,d=e.payload.uuid;function r(){a.dispatch(Yf(d));const h=yt();if(!h)throw new Error("Outbox coordinator not set");h.remove(e.payload.uuid);const f=e.meta.offline.rollback;throw f&&(console.warn("Rolling back request due to SDK error:",e),a.dispatch(f)),t}if(t instanceof z&&t.options.discard&&(console.debug("Discarding request due to explicit discard:",e.payload.url),r()),c.includes(d)&&(console.debug("Discarding request due to deletion:",e.payload.url),r()),t instanceof z){const h=t.status||t.response?.status;if(h||console.warn("Error has no status code:",t),t.options.discard!==!1&&h!==void 0&&un.includes(h)){console.warn("Discarding request due to error:",t,`
4
- Action:`,e);const f=yt();if(!f)throw new Error("Outbox coordinator not set");f.remove(e.payload.uuid),t.options.discard=!0,r()}}console.debug("Registering a retry for request:",e.payload.uuid);const p=yt();if(!p)throw new Error("Outbox coordinator not set");return p.registerRetry(e.payload.uuid),!1}function eg(t,e,i){return yt()?.peek()}function tg(t,e){return Pt().dispatch(Zf(new Date().getTime())),6e4}const sg=500,AF=["non_field_errors","detail"];function ig(t,e){let i;if(t?.body)if(typeof t.body=="object"){const a=t.body;if(typeof a.error=="string")i=a.error;else if(typeof a.message=="string")i=a.message;else try{i=Object.entries(a).map(([n,c])=>typeof c=="string"?AF.includes(n)?c:`${n}: ${c}`:Array.isArray(c)?AF.includes(n)?c.join(`
3
+ Retries:`,i),!(t instanceof Error))throw console.error("ENCOUNTERED NON-ERROR ERROR:",t,"(throwing immediately, which may lead to unexpected behavior)"),t;const a=Ft(),c=a.getState().outboxReducer.deletedRequests,d=e.payload.uuid;function r(){a.dispatch(wS(d));const h=ft();if(!h)throw new Error("Outbox coordinator not set");h.remove(e.payload.uuid);const f=e.meta.offline.rollback;throw f&&(console.warn("Rolling back request due to SDK error:",e),a.dispatch(f)),t}if(t instanceof z&&t.options.discard&&(console.debug("Discarding request due to explicit discard:",e.payload.url),r()),c.includes(d)&&(console.debug("Discarding request due to deletion:",e.payload.url),r()),t instanceof z){const h=t.status||t.response?.status;if(h||console.warn("Error has no status code:",t),t.options.discard!==!1&&h!==void 0&&yn.includes(h)){console.warn("Discarding request due to error:",t,`
4
+ Action:`,e);const f=ft();if(!f)throw new Error("Outbox coordinator not set");f.remove(e.payload.uuid),t.options.discard=!0,r()}}console.debug("Registering a retry for request:",e.payload.uuid);const p=ft();if(!p)throw new Error("Outbox coordinator not set");return p.registerRetry(e.payload.uuid),!1}function Cg(t,e,i){return ft()?.peek()}function Dg(t,e){return Ft().dispatch(ES(new Date().getTime())),6e4}const qg=500,QF=["non_field_errors","detail"];function $g(t,e){let i;if(t?.body)if(typeof t.body=="object"){const a=t.body;if(typeof a.error=="string")i=a.error;else if(typeof a.message=="string")i=a.message;else try{i=Object.entries(a).map(([n,c])=>typeof c=="string"?QF.includes(n)?c:`${n}: ${c}`:Array.isArray(c)?QF.includes(n)?c.join(`
5
5
  `):c.map(d=>`${n}: ${d}`).join(`
6
6
  `):`${n}: ${JSON.stringify(c)}`).join(`
7
- `)}catch(n){console.error("Failed to extract error message from response body",n)}}else typeof t.body=="string"&&(i=t.body);else t?.text?i=t.text:e instanceof Error&&(i=e.message);return!i||i.length>sg?l.ERROR_MSG_UNEXPECTED:i}class z extends Error{status;response;message;options;constructor(e){super(l.ERROR_MSG_UNEXPECTED);const{response:i,innerError:a}=e;this.message=e.message??ig(i,a)??l.ERROR_MSG_UNEXPECTED,this.status=i?.status??0,this.response=i,this.options=e}}function TF(t){function e(i){return typeof i=="object"&&i!==null&&["ok","redirect","clientError","serverError","error"].every(n=>n in i)}if(e(t))return t;if(typeof t=="object"&&t!==null){const i=t;if(e(i.response))return i.response;if(i.response&&e(i.response.response))return i.response.response}}function ag(t){return new Uint8Array(t).reduce((i,a)=>i+a.toString(16).padStart(2,"0"),"")}function ns(t){return new Promise((e,i)=>{const a=new FileReader;a.onload=()=>{const n=a.result;if(!n){i(new Error("FileReader did not return a valid ArrayBuffer."));return}crypto.subtle.digest("SHA-1",n).then(c=>{const d=ag(c);e(d)})},a.readAsArrayBuffer(t)})}const IF=async t=>{const e=await t.arrayBuffer();return new Blob([e],{type:t.type})},ng=(t,e)=>`${t}${e?`.${e}`:""}`;function cg(t,e){return new File([t],e,{type:t.type})}function OF(t){const e=t.name;return e.includes(".")?e.split(".").pop():""}const PF=async t=>(await fetch(t)).blob(),bF=async(t,e)=>{const i=await PF(t);return new File([i],e,{type:i.type})};function FF(t){return typeof t=="string"&&t.startsWith("blob:")}function _F(t){return typeof t=="string"&&URL.canParse(t)&&t.startsWith("https://")&&t.includes(".cloudfront.net/")}function MF(t){return typeof t=="string"&&URL.canParse(t)&&t.startsWith("https://")&&t.includes(".s3.amazonaws.com/")}function gF(t){if(_F(t)){const i=new URLSearchParams(t).get("Expires");if(!i)return null;const a=parseInt(i,10);return new Date(a*1e3)}if(MF(t)){const e=new URLSearchParams(t),i=e.get("X-Amz-Date"),a=e.get("X-Amz-Expires");if(!i||!a)return null;const n=new Date(i.replace(/^(\d{4})(\d{2})(\d{2})T(\d{2})(\d{2})(\d{2})Z$/,"$1-$2-$3T$4:$5:$6Z")),c=parseInt(a);return new Date(n.getTime()+c*1e3)}return null}function RF(t,e=30){const i=gF(t);if(!i)return!1;const a=Date.now(),n=i.getTime(),c=e*1e3;return a+c>=n}function rg(t){return t.type.startsWith("image/")}class wF extends pF{constructor(e){super(e)}applyAuth(e){const i=this.getAuthHeader();return i?e.set("Authorization",i):e}isAuthFailure(e){return e.status===401}}class pt extends pF{auth;constructor(e,i){super(e),this.auth=i}}class dg extends pt{async startConversation(e,i){return this.enqueueRequest({description:"Start agent conversation",method:o.POST,url:"/agents/prompt/",payload:{prompt:e,active_project:i},blockers:["prompt"],blocks:["prompt"]}).then(a=>(this.dispatch(Tn(a)),a))}async continueConversation(e,i,a){return this.enqueueRequest({description:"Prompt agent",method:o.POST,url:"/agents/prompt/",payload:{prompt:e,active_project:a},blockers:["prompt"],blocks:["prompt"],queryParams:{conversation_id:i}}).then(n=>{this.dispatch(On(n))})}async fetchDetails(e){return this.enqueueRequest({description:"Get agent conversation",method:o.GET,url:`/agents/conversations/${e}/`,blockers:["conversation"],blocks:["conversation"]}).then(i=>{this.dispatch(In(i))})}async rate(e,i){return this.enqueueRequest({description:"Rate agent response",method:o.PUT,url:`/agents/responses/${e}/rate/`,payload:{rating:i},blockers:["rate"],blocks:["rate"]})}async list(e,i){return this.performRequest({method:o.GET,url:"/agents/conversations/",...e},i)}async refreshStore(e,i){const a=await this.list({queryParams:{project:e}},i);return this.dispatch(An(a)),a}}function m(t,e,i){const a=`${e}${i?"s":""}`;switch(t){case o.GET:return`Get ${a}`;case o.POST:return`Create ${a}`;case o.PATCH:return`Update ${a}`;case o.PUT:return`Update ${a}`;case o.DELETE:return`Delete ${a}`}}function M(t){const e={...t};for(const i of[...fn,"created_by"])i in e&&delete e[i];return e}class g extends pt{async get(e,i){return this.performRequest({url:`${this.url}/${e}/`,method:o.GET},i)}async list(e,i){return this.performRequest({url:`${this.url}/`,method:o.GET,...e},i)}async listPaginated(e,i){return this.performPagination({url:`${this.url}/`,method:o.GET,...e},i)}}class v extends g{async getPresignedUrl(e,i){const{selectById:a}=this.selectors,n=this.select(a(e));if(!n)throw new Error(`Could not find ${this.name}: ${e} in store.`);if(n.object_url)return n.object_url;const c=await this.client.files.getPresignedUrlFromCache(n.file_sha1);if(c)return c;const d=await this.performRequest({url:`${this.url}/${e}/presigned-url/`,method:o.GET},i);return await this.client.files.cachePresignedUrl(n.file_sha1,d),d}async add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions;let c,d=null,r=null;if("file"in e){const{file:S,...P}=e;d=await this.client.files.getFilePayload(S),r=URL.createObjectURL(S),c={...P,file_sha1:d.sha1,file_type:d.file_type,file_name:S.name,file_extension:d.extension,object_url:r}}else c=e;const p=this.buildModel(c),h=this.buildPayload(p);this.dispatch(i(p));const f=this.enqueueRequest({description:m(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:{...h,...d?{file:d}:{}},blockers:this.getBlockers(p),blocks:this.getBlocks(p)});f.then(({instance:S})=>{this.dispatch(a(S))}).catch(()=>{this.dispatch(n(this.getId(p)))}).finally(()=>{r&&URL.revokeObjectURL(r)});const A=f.then(({instance:S})=>S),I=f.then(async({instance:S,presigned_url:P})=>{try{return P&&await this.client.files.processPresignedUrl(S.file_sha1,P),S.file_sha1}catch(_){throw console.error("Upload to s3 using presigned url failed.",_),_}});return[p,A,I]}async bulkAdd(e,i){const{addMany:a,updateMany:n,deleteMany:c}=this.actions,d=new Date().toISOString(),r=[],p=new Set,h=l.chunkArray(e,Math.min(i??e.length,C)),f=[];for(const P of h){const _=[],F={},w=[],V=[];for(const nt of P){let Vt;if("file"in nt){const{file:Bt,...DR}=nt,bt=await this.client.files.getFilePayload(Bt);bt.sha1 in F||(F[bt.sha1]=bt);const $F=URL.createObjectURL(Bt);p.add($F),Vt={...DR,file_sha1:bt.sha1,file_type:bt.file_type,file_name:Bt.name,file_extension:bt.extension,object_url:$F}}else Vt=nt;const j=this.buildModel(Vt);r.push(j);const cs=this.buildBulkPayload(j);_.push(cs);const B=this.getBlockers(j);w.push(...B);const q=this.getBlocks(j);V.push(...q)}const R={payloads:_,submittedAt:d,files:Object.values(F),blockers:w,blocks:V};f.push(R)}this.dispatch(a(r));const A=f.map(P=>{const{submittedAt:_,files:F,payloads:w,blocks:V,blockers:R}=P;return this.enqueueRequest({description:m(o.POST,this.name,!0),method:o.POST,url:`${this.url}/bulk/`,payload:{submitted_at:_,files:F,payloads:w},blockers:R,blocks:V})});Promise.all(A).then(P=>{const _=P.flatMap(F=>F.instances);this.dispatch(n(_))}).catch(P=>{throw this.dispatch(c(r.map(_=>this.getId(_)))),console.error(P),P}).finally(()=>{for(const P of p)URL.revokeObjectURL(P)});const I=Promise.all(A).then(P=>P.flatMap(({instances:_})=>_)),S=Promise.all(A).then(async P=>{const _=[];for(const{presigned_urls:F}of P){const w=this.client.files.processPresignedUrls(F);for(const[V,R]of Object.entries(w))try{await R,_.push(V)}catch(nt){throw console.error("Upload to s3 using presigned url failed.",nt),nt}}return _});return[r,I,S]}async delete(e){const{addOne:i,deleteOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`Attempting to delete ${this.name} with pk ${e} that does not exist in the store`);this.dispatch(a(this.getId(c)));try{return await this.enqueueRequest({description:m(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(d){throw this.dispatch(i(c)),d}}}class ug extends v{name="Asset attachment";url="/asset-attachments";actions={addOne:_n,addMany:ls,setOne:Mn,setMany:gn,updateOne:Rn,updateMany:wn,deleteOne:En,deleteMany:os,initialize:Fn};selectors={selectById:Vn,selectByIds:Bn};getId(e){return e.uuid}getBlockers(e){const{asset:i}=e;return[i]}getBlocks(e){return[e.uuid]}buildModel(e){const i=this.select(n=>n.userReducer.currentUser?.id??null),a=new Date().toISOString();return l.uuidObj({...e,created_by:i,submitted_at:a})}buildPayload(e){return{uuid:e.uuid,submitted_at:e.submitted_at,file_name:e.file_name,file_sha1:e.file_sha1,file_extension:e.file_extension,asset:e.asset}}buildBulkPayload(e){return{uuid:e.uuid,file_name:e.file_name,file_sha1:e.file_sha1,file_extension:e.file_extension,asset:e.asset}}async refreshStore(e,i){const{initialize:a}=this.actions,c=(await this.listPaginated({queryParams:{asset__project:e}},i)).flat();return this.dispatch(a(c)),c}}class lg extends g{name="Asset Comment";url="/asset-comments";actions={addOne:qn,addMany:zt,setOne:$n,setMany:Un,updateOne:kn,updateMany:Ln,deleteOne:Hn,deleteMany:jt,initialize:Cn};selectors={selectById:Nn,selectByIds:Kn};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=l.uuidObj({...e,created_by:this.select(r=>r.userReducer.currentUser?.id??null),submitted_at:new Date().toISOString()});this.dispatch(i(c));const d=this.enqueueRequest({description:m(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(c),blockers:[c.asset],blocks:[c.uuid]});return d.then(r=>{this.dispatch(a(r))}).catch(()=>{this.dispatch(n(c.uuid))}),[c,d]}update(e){const{updateOne:i}=this.actions,{selectById:a}=this.selectors,n=this.select(a(e.uuid));if(!n)throw new Error(`Asset comment with uuid ${e.uuid} not found in store`);const c={...n,...e};this.dispatch(i(c));const d=this.enqueueRequest({description:m(o.PATCH,this.name,!1),method:o.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return d.then(r=>{this.dispatch(i(r))}).catch(()=>{this.dispatch(i(n))}),[c,d]}async delete(e){const{deleteOne:i,addOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`Asset comment with uuid ${e} not found in store`);this.dispatch(i(e));try{return await this.enqueueRequest({description:m(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(d){throw this.dispatch(a(c)),d}}async refreshStore(e,i){const{initialize:a}=this.actions,c=(await this.listPaginated({queryParams:{asset__project:e}},i)).flat();return this.dispatch(a(c)),c}}class og extends g{url="/assets";name="Asset";actions={addOne:Qn,addMany:ms,setOne:sc,setMany:ic,updateOne:xn,updateMany:ec,deleteOne:tc,deleteMany:fs,initialize:Jn};selectors={selectById:cc,selectByIds:rc};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=this.select(h=>h.userReducer.currentUser?.id??null),d=new Date().toISOString(),r=l.uuidObj({...e,created_by:c,submitted_at:d});this.dispatch(i(r));const p=this.enqueueRequest({description:m(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(r),blockers:[r.asset_type],blocks:[r.uuid]});return p.then(h=>{this.dispatch(a(h))}).catch(()=>{this.dispatch(n(r.uuid))}),[r,p]}update(e){const{updateOne:i}=this.actions,{selectById:a}=this.selectors,n=this.select(a(e.uuid));if(!n)throw new Error(`No asset with uuid ${e.uuid} found in the store`);const c={...n,...e};this.dispatch(i(c));const d=this.enqueueRequest({description:m(o.PATCH,this.name,!1),method:o.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return d.then(r=>{this.dispatch(i(r))}).catch(()=>{this.dispatch(i(n))}),[c,d]}async delete(e){const{addOne:i,deleteOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`No asset with uuid ${e} found in the store`);const d=this.select(zn(e)),r=this.select(Wn(e)),p=this.select(Ah(e)),h=this.select(kA(e)),f=this.select(Lo(e));this.dispatch(a(e)),this.dispatch(os(l.toUuidArray(d))),this.dispatch(jt(l.toUuidArray(r))),this.dispatch(St(l.toUuidArray(p))),this.dispatch(It(l.toUuidArray(h))),this.dispatch(ut(l.toUuidArray(f)));try{return await this.enqueueRequest({description:m(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(A){throw this.dispatch(i(c)),this.dispatch(ls(d)),this.dispatch(zt(r)),this.dispatch(ft(p)),this.dispatch(Tt(h)),this.dispatch(dt(f)),A}}bulkAdd(e,i){const{addMany:a}=this.actions,n=new Date().toISOString(),c=l.chunkArray(e,Math.min(i??e.length,C)).map(p=>{const h=p.map(f=>l.uuidObj(f));return{batchId:rt.v4(),payload:{submitted_at:n,assets:h}}}),d=[];let r=null;for(const p of c){const{batchId:h,payload:f}=p,A=f.assets.map(({uuid:F})=>F),I=f.assets.map(({asset_type:F})=>F),S=f.assets.map(({project:F})=>F),P=f.assets.map(({status:F})=>F),_=this.enqueueRequest({description:m(o.POST,this.name,!0),method:o.POST,url:`${this.url}/bulk/`,payload:f,blockers:(r?[r]:[]).concat(I).concat(S).concat(P),blocks:[h].concat(A)});r=p.batchId,d.push(_)}return Promise.all(d).then(p=>{const h=p.flat();this.dispatch(a(h))}),d}bulkUpdate(e,i){const{updateMany:a}=this.actions,{selectByIds:n}=this.selectors,c=l.toUuidArray(e);if(new Set(c).size!==e.length)throw new Error("payloads contains duplicate uuids.");const d=this.select(n(c));if(c.length!=d.length)throw new Error(`Attempting to bulk update ${c.length-d.length} assets that dont exist in the store`);const r=d.toSorted((S,P)=>l.uuidSortFn(S.uuid,P.uuid)),p=e.toSorted((S,P)=>l.uuidSortFn(S.uuid,P.uuid)),h=[];for(let S=0;S<c.length;S++)h.push({...r[S],...p[S]});this.dispatch(a(h));const f=l.chunkArray(e,Math.min(i??e.length,C)),A=[];let I=null;for(const S of f){const P=rt.v4(),_=l.toUuidArray(S),F=S.map(({status:V})=>V).filter(Boolean),w=this.enqueueRequest({description:m(o.PATCH,this.name,!0),method:o.PATCH,url:`${this.url}/bulk/`,payload:{payloads:S},blockers:(I?[I]:[]).concat(_).concat(F),blocks:[P].concat(_)});A.push(w),I=P}return Promise.all(A).then(S=>{this.dispatch(a(S.flat()))}).catch(()=>{this.dispatch(a(d))}),[h,A]}async bulkDelete(e){const{addMany:i,deleteMany:a}=this.actions,{selectByIds:n}=this.selectors,c=this.select(n(e)),d=this.select(Xn(e)),r=this.select(Th(e)),p=this.select(LA(e)),h=this.select(Ho(e));this.dispatch(a(e)),this.dispatch(jt(l.toUuidArray(d))),this.dispatch(St(l.toUuidArray(r))),this.dispatch(It(l.toUuidArray(p))),this.dispatch(ut(l.toUuidArray(h)));try{return await this.enqueueRequest({description:m(o.DELETE,this.name,!0),method:o.DELETE,url:`${this.url}/bulk/`,payload:{uuids:e},blockers:e,blocks:[]})}catch(f){throw this.dispatch(i(c)),this.dispatch(zt(d)),this.dispatch(ft(r)),this.dispatch(Tt(p)),this.dispatch(dt(h)),f}}async refreshStore(e,i){const{initialize:a}=this.actions,c=(await this.listPaginated({queryParams:{project:e}},i)).flat();return this.dispatch(a(c)),c}}class hg extends v{name="Asset Type Attachment";url="/asset-type-attachments";actions={addOne:oc,addMany:As,setOne:hc,setMany:pc,updateOne:yc,updateMany:mc,deleteOne:fc,deleteMany:Ts,initialize:lc};selectors={selectById:Ac,selectByIds:Tc};getId(e){return e.uuid}getBlockers(e){return[e.asset_type]}getBlocks(e){return[e.uuid]}buildModel(e){const i=this.select(n=>n.userReducer.currentUser?.id??null),a=new Date().toISOString();return l.uuidObj({...e,created_by:i,submitted_at:a})}buildPayload(e){return{uuid:e.uuid,submitted_at:e.submitted_at,file_name:e.file_name,file_sha1:e.file_sha1,file_extension:e.file_extension,asset_type:e.asset_type}}buildBulkPayload(e){return{uuid:e.uuid,file_name:e.file_name,file_sha1:e.file_sha1,file_extension:e.file_extension,asset_type:e.asset_type}}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({queryParams:{asset_type__organization:e}},i);return this.dispatch(a(n)),n}}class pg extends v{name="Asset Type Fields Attachment";url="/asset-type-fields-attachments";actions={addOne:Fc,addMany:_c,setOne:Mc,setMany:gc,updateOne:Rc,updateMany:wc,deleteOne:Ec,deleteMany:vc,initialize:bc};selectors={selectById:Bc,selectByIds:zc};getId(e){return e.uuid}getBlockers(e){return[e.fields_revision]}getBlocks(e){return[e.uuid]}buildModel(e){const i=this.select(n=>n.userReducer.currentUser?.id??null),a=new Date().toISOString();return l.uuidObj({...e,created_by:i,submitted_at:a})}buildPayload(e){const{uuid:i,field_identifier:a,fields_revision:n,file_sha1:c,file_name:d,file_extension:r}=e;return{uuid:i,submitted_at:e.submitted_at,field_identifier:a,fields_revision:n,file_sha1:c,file_name:d,file_extension:r}}buildBulkPayload(e){const{uuid:i,field_identifier:a,fields_revision:n,file_sha1:c,file_name:d,file_extension:r}=e;return{uuid:i,field_identifier:a,fields_revision:n,file_sha1:c,file_name:d,file_extension:r}}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({queryParams:{fields_revision__asset_type__organization:e}},i);return this.dispatch(a(n)),n}}class yg extends g{name="Asset Type Fields";url="/asset-type-fields";actions={addOne:qc,addMany:$c,setOne:Uc,setMany:kc,updateOne:Lc,updateMany:Hc,deleteOne:Gc,deleteMany:Nc,initialize:Cc};selectors={selectById:Wc,selectByIds:Xc};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=this.select(h=>h.userReducer.currentUser?.id??null),d=new Date().toISOString(),r=l.uuidObj({...e,created_by:c,submitted_at:d});this.dispatch(i(r));const p=this.enqueueRequest({description:m(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(r),blockers:[r.asset_type],blocks:[r.uuid]});return p.then(h=>{this.dispatch(a(h))}).catch(()=>{this.dispatch(n(r.uuid))}),[r,p]}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({queryParams:{asset_type__organization:e}},i);return this.dispatch(a(n)),n}}class mg extends v{name="Asset Type Field Values Attachment";url="/asset-type-field-values-attachments";actions={addOne:Qc,addMany:_s,setOne:xc,setMany:er,updateOne:tr,updateMany:sr,deleteOne:ir,deleteMany:Ms,initialize:Jc};selectors={selectById:nr,selectByIds:cr};getId(e){return e.uuid}getBlockers(e){return[e.field_values]}getBlocks(e){return[e.uuid]}buildModel(e){const i=this.select(n=>n.userReducer.currentUser?.id??null),a=new Date().toISOString();return l.uuidObj({...e,created_by:i,submitted_at:a})}buildPayload(e){const{uuid:i,field_identifier:a,field_values:n,file_sha1:c,file_name:d,file_extension:r}=e;return{uuid:i,submitted_at:e.submitted_at,field_identifier:a,field_values:n,file_sha1:c,file_name:d,file_extension:r}}buildBulkPayload(e){const{uuid:i,field_identifier:a,field_values:n,file_sha1:c,file_name:d,file_extension:r}=e;return{uuid:i,field_identifier:a,field_values:n,file_sha1:c,file_name:d,file_extension:r}}async bulkDelete(e){const{deleteMany:i,addMany:a}=this.actions,{selectByIds:n}=this.selectors,c=this.select(n(e));this.dispatch(i(e));try{return await this.enqueueRequest({description:m(o.DELETE,this.name,!0),method:o.DELETE,url:`${this.url}/bulk/`,payload:{uuids:e},blockers:e,blocks:[]})}catch(d){throw this.dispatch(a(c)),d}}async refreshStore(e,i){const{initialize:a}=this.actions,c=(await this.listPaginated({queryParams:{field_values__asset__project:e,latest:!0}},i)).flat();return this.dispatch(a(c)),c}}class fg extends g{name="Asset Type Field Values";url="/asset-type-field-values";actions={addOne:or,addMany:hr,setOne:pr,setMany:yr,updateOne:mr,updateMany:fr,deleteOne:Sr,deleteMany:Ar,initialize:lr};selectors={selectById:Ir,selectByIds:Or};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=this.select(h=>h.userReducer.currentUser?.id??null),d=new Date().toISOString(),r=l.uuidObj({...e,created_by:c,submitted_at:d}),p=this.enqueueRequest({description:m(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(r),blockers:[e.asset,e.fields_revision],blocks:[r.uuid]});return this.dispatch(i(r)),p.then(h=>{this.dispatch(a(h))}).catch(()=>{this.dispatch(n(r.uuid))}),[r,p]}bulkAdd(e,i){const{payloads:a,values:n}=e,{addMany:c,updateMany:d,deleteMany:r}=this.actions,p=new Date().toISOString(),h=[],f=l.chunkArray(a,Math.min(i??a.length,C)),A=[];for(const S of f){const P=[];for(const _ of S){const F=l.uuidObj({..._,values:_.values,created_by:this.select(w=>w.userReducer.currentUser?.id??null),submitted_at:p});h.push(F),P.push({uuid:F.uuid,asset:_.asset,fields_revision:_.fields_revision,published_at:_.published_at,values:F.values})}A.push({submitted_at:p,values:n,field_values:P})}this.dispatch(c(h));const I=[];for(const S of A){const{field_values:P}=S,_=P.map(({asset:R})=>R),F=P.map(({fields_revision:R})=>R),w=P.map(({uuid:R})=>R),V=this.enqueueRequest({description:m(o.POST,this.name,!0),method:o.POST,url:`${this.url}/bulk/`,payload:S,blockers:_.concat(F),blocks:w});I.push(V)}return Promise.all(I).then(S=>{this.dispatch(d(S.flat()))}).catch(()=>{this.dispatch(r(l.toUuidArray(h)))}),[h,I]}update(e){const{updateOne:i}=this.actions,{selectById:a}=this.selectors,n=this.select(a(e.uuid));if(!n)throw new Error(`Expected AssetTypeFieldValues with uuid ${e.uuid} to exist`);const c={...n,...e};this.dispatch(i(c));const d=this.enqueueRequest({description:m(o.PATCH,this.name,!1),method:o.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[c.uuid,c.fields_revision,c.asset],blocks:[c.uuid]});return d.then(r=>{this.dispatch(i(r))}).catch(()=>{this.dispatch(i(n))}),[c,d]}async delete(e){const{deleteOne:i,addOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`Expected submission with uuid ${e} to exist`);const d=this.select(rr(e));this.dispatch(i(e)),this.dispatch(Ms(l.toUuidArray(d)));try{return await this.enqueueRequest({description:m(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(r){throw this.dispatch(a(c)),this.dispatch(_s(d)),r}}async refreshStore(e,i){const{initialize:a}=this.actions,c=(await this.listPaginated({queryParams:{asset__project:e,latest:!0}},i)).flat();return this.dispatch(a(c)),c}}class Sg extends g{name="Asset Type Identifier";url="/asset-type-identifiers";actions={addOne:_r,addMany:Mr,setOne:gr,setMany:Rr,updateOne:wr,updateMany:Er,deleteOne:vr,deleteMany:Vr,initialize:Fr};selectors={selectById:zr,selectByIds:jr};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=this.select(h=>h.userReducer.currentUser?.id??null),d=new Date().toISOString(),r=l.uuidObj({...e,created_by:c,submitted_at:d});this.dispatch(i(r));const p=this.enqueueRequest({description:m(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(r),blockers:[r.asset_type],blocks:[r.uuid]});return p.then(h=>{this.dispatch(a(h))}).catch(()=>{this.dispatch(n(r.uuid))}),[r,p]}update(e){const{updateOne:i}=this.actions,{selectById:a}=this.selectors,n=this.select(a(e.uuid));if(!n)throw new Error(`Expected asset type identifier with uuid ${e.uuid} to exist`);const c={...n,...e};this.dispatch(i(c));const d=this.enqueueRequest({description:m(o.PATCH,this.name,!1),method:o.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return d.then(r=>{this.dispatch(i(r))}).catch(()=>{this.dispatch(i(n))}),[c,d]}async delete(e){const{deleteOne:i,addOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`Expected asset type identifier with uuid ${e} to exist`);this.dispatch(i(e));try{return await this.enqueueRequest({description:m(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(d){throw this.dispatch(a(c)),d}}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({queryParams:{asset_type__organization:e}},i);return this.dispatch(a(n)),n}}class Ag extends g{name="Asset Type Identifier Value";url="/asset-type-identifier-values";actions={addOne:$r,addMany:Ur,setOne:kr,setMany:Lr,updateOne:Hr,updateMany:Gr,deleteOne:Nr,deleteMany:Kr,initialize:qr};selectors={selectById:Xr,selectByIds:Yr};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=this.select(h=>h.userReducer.currentUser?.id??null),d=new Date().toISOString(),r=l.uuidObj({...e,created_by:c,submitted_at:d});this.dispatch(i(r));const p=this.enqueueRequest({description:m(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(r),blockers:[e.asset,e.asset_type_identifier],blocks:[r.uuid]});return p.then(h=>{this.dispatch(a(h))}).catch(()=>{this.dispatch(n(r.uuid))}),[r,p]}bulkAdd(e,i){const{addMany:a,updateMany:n,deleteMany:c}=this.actions,d=new Date().toISOString(),r=this.select(S=>S.userReducer.currentUser?.id??null),p=l.chunkArray(e,Math.min(i??e.length,C)),h=[],f=[];for(const S of p){const P=[],_=[],F=[];for(const V of S){const R=l.uuidObj({...V,submitted_at:d,created_by:r});f.push(R);const nt={uuid:R.uuid,asset:R.asset,asset_type_identifier:R.asset_type_identifier,value:R.value};P.push(nt),_.push(R.asset),_.push(R.asset_type_identifier),F.push(R.uuid)}const w={payloads:P,submitted_at:d,blockers:_,blocks:F};h.push(w)}this.dispatch(a(f));const A=h.map(S=>{const{payloads:P,submitted_at:_,blockers:F,blocks:w}=S;return this.enqueueRequest({description:m(o.POST,this.name,!0),method:o.POST,url:`${this.url}/bulk/`,payload:{submitted_at:_,payloads:P},blockers:F,blocks:w})});Promise.all(A).then(S=>{this.dispatch(n(S.flat()))}).catch(S=>{throw this.dispatch(c(l.toUuidArray(f))),S});const I=Promise.all(A).then(S=>S.flat());return[f,I]}async delete(e){const{deleteOne:i,addOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`Expected asset type identifier value with uuid ${e} to exist`);this.dispatch(i(e));try{return await this.enqueueRequest({description:m(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(d){throw this.dispatch(a(c)),d}}async refreshStore(e,i){const{initialize:a}=this.actions,c=(await this.listPaginated({queryParams:{asset__project:e,latest:!0}},i)).flat();return this.dispatch(a(c)),c}}class Tg extends g{name="Asset Type";url="/asset-types";actions={addOne:td,addMany:sd,setOne:xr,setMany:ed,updateOne:id,updateMany:ad,deleteOne:nd,deleteMany:cd,initialize:Qr};selectors={selectById:dd,selectByIds:ud};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=this.select(h=>h.userReducer.currentUser?.id??null),d=new Date().toISOString(),r=l.uuidObj({...e,created_by:c,submitted_at:d});this.dispatch(i(r));const p=this.enqueueRequest({description:m(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(r),blockers:[],blocks:[r.uuid]});return p.then(h=>{this.dispatch(a(h))}).catch(()=>{this.dispatch(n(r.uuid))}),[r,p]}update(e){const{updateOne:i}=this.actions,{selectById:a}=this.selectors,n=this.select(a(e.uuid));if(!n)throw new Error(`Expected asset type with uuid ${e.uuid} to exist`);const c={...n,...e};this.dispatch(i(c));const d=this.enqueueRequest({description:m(o.PATCH,this.name,!1),method:o.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[n.uuid],blocks:[n.uuid]});return d.then(r=>{this.dispatch(i(r))}).catch(()=>{this.dispatch(i(n))}),[c,d]}async delete(e){const{deleteOne:i,addOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`Expected asset type with uuid ${e} to exist`);const d=this.select(nc(e)),r=this.select(Ic(e));this.dispatch(i(e)),this.dispatch(fs(l.toUuidArray(d))),this.dispatch(Ts(l.toUuidArray(r)));try{return await this.enqueueRequest({description:m(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(p){throw this.dispatch(a(c)),this.dispatch(ms(d)),this.dispatch(As(r)),p}}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({queryParams:{organization:e}},i);return this.dispatch(a(n)),n}}class Ig extends g{name="Asset Type Status";url="/asset-type-statuses";actions={addOne:pd,addMany:yd,setOne:md,setMany:fd,updateOne:Sd,updateMany:Ad,deleteOne:Td,deleteMany:Id,initialize:hd};selectors={selectById:Pd,selectByIds:bd};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=this.select(h=>h.userReducer.currentUser?.id??null),d=new Date().toISOString(),r=l.uuidObj({...e,created_by:c,submitted_at:d});this.dispatch(i(r));const p=this.enqueueRequest({description:m(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(r),blockers:[e.asset_type],blocks:[r.uuid]});return p.then(h=>{this.dispatch(a(h))}).catch(()=>{this.dispatch(n(r.uuid))}),[r,p]}update(e){const{updateOne:i}=this.actions,{selectById:a}=this.selectors,n=this.select(a(e.uuid));if(!n)throw new Error(`Expected an existing asset type status with uuid ${e.uuid}`);const c={...n,...e};this.dispatch(i(c));const d=this.enqueueRequest({description:m(o.PATCH,this.name,!1),method:o.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return d.then(r=>{this.dispatch(i(r))}).catch(()=>{this.dispatch(i(n))}),[c,d]}async delete(e){const{deleteOne:i,addOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`No asset type status with uuid ${e} found in the store`);this.dispatch(i(e));try{return await this.enqueueRequest({description:m(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(d){throw this.dispatch(a(c)),d}}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({queryParams:{asset_type__organization:e}},i);return this.dispatch(a(n)),n}}class Og extends v{name="Document Attachment";url="/document-attachments";actions={addOne:Ed,addMany:vd,setOne:Vd,setMany:Bd,updateOne:zd,updateMany:jd,deleteOne:Dd,deleteMany:Cd,initialize:wd};selectors={selectById:$d,selectByIds:Ud};getId(e){return e.uuid}getBlockers(e){return[e.document]}getBlocks(e){return[e.uuid]}buildModel(e){const i=this.select(n=>n.userReducer.currentUser?.id??null),a=new Date().toISOString();return l.uuidObj({...e,created_by:i,submitted_at:a})}buildPayload(e){return{uuid:e.uuid,submitted_at:e.submitted_at,file_name:e.file_name,file_sha1:e.file_sha1,file_extension:e.file_extension,document:e.document}}buildBulkPayload(e){return{uuid:e.uuid,file_name:e.file_name,file_sha1:e.file_sha1,file_extension:e.file_extension,document:e.document}}async bulkAdd(e,i){const[a,n,c]=await super.bulkAdd(e,i),d={};for(const{file_sha1:r,uuid:p}of a)r in d||(d[r]=[]),d[r].push(p);return c.then(r=>{const p=r.flatMap(h=>d[h]??[]);for(const h of p)this.makeReadable(h)}),[a,n,c]}makeReadable(e){this.enqueueRequest({description:"Add attachment to AI assistant",method:o.PATCH,url:`${this.url}/${e}/`,payload:{readable_to_assistant:!0},blockers:["index-document-attachment",e],blocks:["index-document-attachment"]})}async refreshStore(e,i){const{initialize:a}=this.actions,n=this.list({queryParams:{document__project__organization:e}},i),c=this.list({queryParams:{document__organization:e}},i),r=(await Promise.all([n,c])).flat();return this.dispatch(a(r)),r}}class Pg extends g{name="Document";url="/documents";actions={addOne:Gd,addMany:Nd,setOne:Kd,setMany:Wd,updateOne:Xd,updateMany:Yd,deleteOne:Zd,deleteMany:Jd,initialize:Hd};selectors={selectById:xd,selectByIds:eu};add(e){const{addOne:i,deleteOne:a,updateOne:n}=this.actions,c=this.select(h=>h.userReducer.currentUser?.id??null),d=new Date().toISOString(),r=l.uuidObj({...e,created_by:c,submitted_at:d});this.dispatch(i(r));const p=this.enqueueRequest({description:m(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(r),blockers:r.parent_document?[r.parent_document]:[],blocks:[r.uuid]});return p.then(h=>{this.dispatch(n(h))}).catch(()=>{this.dispatch(a(r.uuid))}),[r,p]}update(e){const{updateOne:i}=this.actions,{selectById:a}=this.selectors,n=this.select(a(e.uuid));if(!n)throw new Error(`attempting to update a document with uuid ${e.uuid} that does not exist in store.documents`);const c={...n,...e};this.dispatch(i(c));const d=this.enqueueRequest({description:m(o.PATCH,this.name,!1),method:o.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return d.then(r=>{this.dispatch(i(r))}).catch(()=>{this.dispatch(i(n))}),[c,d]}async delete(e){const{deleteOne:i,addOne:a,addMany:n,deleteMany:c}=this.actions,{selectById:d}=this.selectors,r=this.select(d(e));if(!r)throw new Error(`attempting to delete a document with uuid ${e} that does not exist in store.documents`);const p=this.select(tu(e));this.dispatch(i(e)),this.dispatch(c(l.toUuidArray(p)));try{return await this.enqueueRequest({description:m(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(h){throw this.dispatch(a(r)),this.dispatch(n(p)),h}}async refreshStore(e,i){const{initialize:a}=this.actions,n=this.list({queryParams:{project__organization:e}},i),c=this.list({queryParams:{organization:e}},i),r=(await Promise.all([n,c])).flat();return this.dispatch(a(r)),r}}class ct extends pt{async get(e,i){return this.performRequest({url:`${this.url}/${e}/`,method:o.GET},i)}async list(e,i){return this.performRequest({url:`${this.url}/`,method:o.GET,...e},i)}async listPaginated(e,i){return this.performPagination({url:`${this.url}/`,method:o.GET,...e},i)}}class bg extends ct{name="Email Domains";url="/organization-email-domains";actions={addOne:au,addMany:nu,setOne:cu,setMany:ru,updateOne:du,updateMany:uu,deleteOne:lu,deleteMany:ou,initialize:iu};selectors={selectById:pu,selectByIds:yu};async add(e,i){return this.enqueueRequest({description:m(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:{email:i,organization:e},blockers:[e,"create-org"],blocks:[]})}async delete(e){const{deleteOne:i,addOne:a}=this.actions;this.dispatch(i(e.uuid));try{return await this.enqueueRequest({description:m(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e.uuid}/`,blockers:[e.domain],blocks:[]})}catch(n){throw this.dispatch(a(e)),n}}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({queryParams:{organization:e}},i);return this.dispatch(a(n)),n}}class Fg extends pt{async getVerificationCode(e){return this.enqueueRequest({description:"Get verification code",method:o.GET,url:`/verification/email-verification/${e}/`,isAuthNeeded:!1,blockers:[],blocks:[]})}validateVerificationCode(e,i){return this.enqueueRequest({description:"Validate verification code",method:o.POST,url:`/verification/email-verification/${e}/`,isAuthNeeded:!1,payload:i,blockers:[],blocks:[]})}}const vt={},ln=new Set,on=new Set;class _g extends pt{host=void 0;dbPromise=LF.openDB("fileCache",2,{upgrade(e,i){i<1&&e.createObjectStore("files"),i<2&&e.createObjectStore("presignedUrls")}});async getDB(){return await this.dbPromise}async cacheFile(e){if(!e.name)throw new Error(`Cant add a file without a name to cache: ${e.name}`);if(!e.type)throw new Error(`Cant add a file without a type to cache: ${e.name}`);if(!e.size)throw new Error(`Cant add an empty file to cache: ${e.name}`);const i=await ns(e);if(ln.has(i))return;const a=await this.getDB();!!await a.get("files",i)?console.warn(`Attempting to add a file already cached, ${e.name}`):await a.put("files",e,i),ln.add(i)}async uncacheFile(e){await(await this.getDB()).delete("files",e),ln.delete(e)}async getFileFromCache(e){return(await this.getDB()).get("files",e)}async fetchFileFromUrl(e,i,a=i,n){const c=e.split("?")[0]??e,d=await this.getFileFromCache(i);if(d)return d;let r;c in vt?r=vt[c]:FF(e)?(r=bF(e,a),vt[c]=r):(r=this.performRequest({method:o.GET,url:e,isExternalUrl:!0,isResponseBlob:!0,isAuthNeeded:!1},n).then(f=>new File([f],a,{type:f.type})),vt[c]=r);let p;try{p=await r}catch(f){throw f instanceof z&&delete vt[c],f}const h=await ns(p);if(h!==i){const f=`The hash of the file returned from the server (${h}) does not match the
7
+ `)}catch(n){console.error("Failed to extract error message from response body",n)}}else typeof t.body=="string"&&(i=t.body);else t?.text?i=t.text:e instanceof Error&&(i=e.message);return!i||i.length>qg?l.ERROR_MSG_UNEXPECTED:i}class z extends Error{status;response;message;options;constructor(e){super(l.ERROR_MSG_UNEXPECTED);const{response:i,innerError:a}=e;this.message=e.message??$g(i,a)??l.ERROR_MSG_UNEXPECTED,this.status=i?.status??0,this.response=i,this.options=e}}function xF(t){function e(i){return typeof i=="object"&&i!==null&&["ok","redirect","clientError","serverError","error"].every(n=>n in i)}if(e(t))return t;if(typeof t=="object"&&t!==null){const i=t;if(e(i.response))return i.response;if(i.response&&e(i.response.response))return i.response.response}}function Ug(t){return new Uint8Array(t).reduce((i,a)=>i+a.toString(16).padStart(2,"0"),"")}function rs(t){return new Promise((e,i)=>{const a=new FileReader;a.onload=()=>{const n=a.result;if(!n){i(new Error("FileReader did not return a valid ArrayBuffer."));return}crypto.subtle.digest("SHA-1",n).then(c=>{const d=Ug(c);e(d)})},a.readAsArrayBuffer(t)})}const e_=async t=>{const e=await t.arrayBuffer();return new Blob([e],{type:t.type})},kg=(t,e)=>`${t}${e?`.${e}`:""}`;function Lg(t,e){return new File([t],e,{type:t.type})}function t_(t){const e=t.name;return e.includes(".")?e.split(".").pop():""}const s_=async t=>(await fetch(t)).blob(),i_=async(t,e)=>{const i=await s_(t);return new File([i],e,{type:i.type})};function a_(t){return typeof t=="string"&&t.startsWith("blob:")}function n_(t){return typeof t=="string"&&URL.canParse(t)&&t.startsWith("https://")&&t.includes(".cloudfront.net/")}function c_(t){return typeof t=="string"&&URL.canParse(t)&&t.startsWith("https://")&&t.includes(".s3.amazonaws.com/")}function r_(t){if(n_(t)){const i=new URLSearchParams(t).get("Expires");if(!i)return null;const a=parseInt(i,10);return new Date(a*1e3)}if(c_(t)){const e=new URLSearchParams(t),i=e.get("X-Amz-Date"),a=e.get("X-Amz-Expires");if(!i||!a)return null;const n=new Date(i.replace(/^(\d{4})(\d{2})(\d{2})T(\d{2})(\d{2})(\d{2})Z$/,"$1-$2-$3T$4:$5:$6Z")),c=parseInt(a);return new Date(n.getTime()+c*1e3)}return null}function d_(t,e=30){const i=r_(t);if(!i)return!1;const a=Date.now(),n=i.getTime(),c=e*1e3;return a+c>=n}function Hg(t){return t.type.startsWith("image/")}class u_ extends WF{constructor(e){super(e)}applyAuth(e){const i=this.getAuthHeader();return i?e.set("Authorization",i):e}isAuthFailure(e){return e.status===401}}class yt extends WF{auth;constructor(e,i){super(e),this.auth=i}}class Gg extends yt{async startConversation(e,i){return this.enqueueRequest({description:"Start agent conversation",method:o.POST,url:"/agents/prompt/",payload:{prompt:e,active_project:i},blockers:["prompt"],blocks:["prompt"]}).then(a=>(this.dispatch(_n(a)),a))}async continueConversation(e,i,a){return this.enqueueRequest({description:"Prompt agent",method:o.POST,url:"/agents/prompt/",payload:{prompt:e,active_project:a},blockers:["prompt"],blocks:["prompt"],queryParams:{conversation_id:i}}).then(n=>{this.dispatch(gn(n))})}async fetchDetails(e){return this.enqueueRequest({description:"Get agent conversation",method:o.GET,url:`/agents/conversations/${e}/`,blockers:["conversation"],blocks:["conversation"]}).then(i=>{this.dispatch(Mn(i))})}async rate(e,i){return this.enqueueRequest({description:"Rate agent response",method:o.PUT,url:`/agents/responses/${e}/rate/`,payload:{rating:i},blockers:["rate"],blocks:["rate"]})}async list(e,i){return this.performRequest({method:o.GET,url:"/agents/conversations/",...e},i)}async refreshStore(e,i){const a=await this.list({queryParams:{project:e}},i);return this.dispatch(Fn(a)),a}}function y(t,e,i){const a=`${e}${i?"s":""}`;switch(t){case o.GET:return`Get ${a}`;case o.POST:return`Create ${a}`;case o.PATCH:return`Update ${a}`;case o.PUT:return`Update ${a}`;case o.DELETE:return`Delete ${a}`}}function M(t){const e={...t};for(const i of[...On,"created_by"])i in e&&delete e[i];return e}class g extends yt{async get(e,i){return this.performRequest({url:`${this.url}/${e}/`,method:o.GET},i)}async list(e,i){return this.performRequest({url:`${this.url}/`,method:o.GET,...e},i)}async listPaginated(e,i){return this.performPagination({url:`${this.url}/`,method:o.GET,...e},i)}}class v extends g{async getPresignedUrl(e,i){const{selectById:a}=this.selectors,n=this.select(a(e));if(!n)throw new Error(`Could not find ${this.name}: ${e} in store.`);if(n.object_url)return n.object_url;const c=await this.client.files.getPresignedUrlFromCache(n.file_sha1);if(c)return c;const d=await this.performRequest({url:`${this.url}/${e}/presigned-url/`,method:o.GET},i);return await this.client.files.cachePresignedUrl(n.file_sha1,d),d}async add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions;let c,d=null,r=null;if("file"in e){const{file:S,...P}=e;d=await this.client.files.getFilePayload(S),r=URL.createObjectURL(S),c={...P,file_sha1:d.sha1,file_type:d.file_type,file_name:S.name,file_extension:d.extension,object_url:r}}else c=e;const p=this.buildModel(c),h=this.buildPayload(p);this.dispatch(i(p));const f=this.enqueueRequest({description:y(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:{...h,...d?{file:d}:{}},blockers:this.getBlockers(p),blocks:this.getBlocks(p)});f.then(({instance:S})=>{this.dispatch(a(S))}).catch(()=>{this.dispatch(n(this.getId(p)))}).finally(()=>{r&&URL.revokeObjectURL(r)});const A=f.then(({instance:S})=>S),I=f.then(async({instance:S,presigned_url:P})=>{try{return P&&await this.client.files.processPresignedUrl(S.file_sha1,P),S.file_sha1}catch(_){throw console.error("Upload to s3 using presigned url failed.",_),_}});return[p,A,I]}async bulkAdd(e,i){const{addMany:a,updateMany:n,deleteMany:c}=this.actions,d=new Date().toISOString(),r=[],p=new Set,h=l.chunkArray(e,Math.min(i??e.length,D)),f=[];for(const P of h){const _=[],F={},w=[],V=[];for(const rt of P){let zt;if("file"in rt){const{file:jt,...Iw}=rt,_t=await this.client.files.getFilePayload(jt);_t.sha1 in F||(F[_t.sha1]=_t);const T_=URL.createObjectURL(jt);p.add(T_),zt={...Iw,file_sha1:_t.sha1,file_type:_t.file_type,file_name:jt.name,file_extension:_t.extension,object_url:T_}}else zt=rt;const j=this.buildModel(zt);r.push(j);const ds=this.buildBulkPayload(j);_.push(ds);const B=this.getBlockers(j);w.push(...B);const q=this.getBlocks(j);V.push(...q)}const R={payloads:_,submittedAt:d,files:Object.values(F),blockers:w,blocks:V};f.push(R)}this.dispatch(a(r));const A=f.map(P=>{const{submittedAt:_,files:F,payloads:w,blocks:V,blockers:R}=P;return this.enqueueRequest({description:y(o.POST,this.name,!0),method:o.POST,url:`${this.url}/bulk/`,payload:{submitted_at:_,files:F,payloads:w},blockers:R,blocks:V})});Promise.all(A).then(P=>{const _=P.flatMap(F=>F.instances);this.dispatch(n(_))}).catch(P=>{throw this.dispatch(c(r.map(_=>this.getId(_)))),console.error(P),P}).finally(()=>{for(const P of p)URL.revokeObjectURL(P)});const I=Promise.all(A).then(P=>P.flatMap(({instances:_})=>_)),S=Promise.all(A).then(async P=>{const _=[];for(const{presigned_urls:F}of P){const w=this.client.files.processPresignedUrls(F);for(const[V,R]of Object.entries(w))try{await R,_.push(V)}catch(rt){throw console.error("Upload to s3 using presigned url failed.",rt),rt}}return _});return[r,I,S]}async delete(e){const{addOne:i,deleteOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`Attempting to delete ${this.name} with pk ${e} that does not exist in the store`);this.dispatch(a(this.getId(c)));try{return await this.enqueueRequest({description:y(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(d){throw this.dispatch(i(c)),d}}}class Ng extends v{name="Asset attachment";url="/asset-attachments";actions={addOne:vn,addMany:hs,setOne:Vn,setMany:Bn,updateOne:zn,updateMany:jn,deleteOne:Cn,deleteMany:ps,initialize:En};selectors={selectById:qn,selectByIds:$n};getId(e){return e.uuid}getBlockers(e){const{asset:i}=e;return[i]}getBlocks(e){return[e.uuid]}buildModel(e){const i=this.select(n=>n.userReducer.currentUser?.id??null),a=new Date().toISOString();return l.uuidObj({...e,created_by:i,submitted_at:a})}buildPayload(e){return{uuid:e.uuid,submitted_at:e.submitted_at,file_name:e.file_name,file_sha1:e.file_sha1,file_extension:e.file_extension,asset:e.asset}}buildBulkPayload(e){return{uuid:e.uuid,file_name:e.file_name,file_sha1:e.file_sha1,file_extension:e.file_extension,asset:e.asset}}async refreshStore(e,i){const{initialize:a}=this.actions,c=(await this.listPaginated({queryParams:{asset__project:e}},i)).flat();return this.dispatch(a(c)),c}}class Kg extends v{name="Asset Comment Attachment";url="/asset-comment-attachments";actions={addOne:Gn,addMany:Nn,setOne:Kn,setMany:Wn,updateOne:Xn,updateMany:Yn,deleteOne:Zn,deleteMany:Jn,initialize:Hn};selectors={selectById:xn,selectByIds:ec};getId(e){return e.uuid}getBlockers(e){return[e.asset_comment]}getBlocks(e){return[e.uuid]}buildModel(e){const i=this.select(n=>n.userReducer.currentUser?.id??null),a=new Date().toISOString();return l.uuidObj({...e,created_by:i,submitted_at:a})}buildPayload(e){return{uuid:e.uuid,submitted_at:e.submitted_at,file_name:e.file_name,file_sha1:e.file_sha1,file_extension:e.file_extension,asset_comment:e.asset_comment}}buildBulkPayload(e){return{uuid:e.uuid,file_name:e.file_name,file_sha1:e.file_sha1,file_extension:e.file_extension,asset_comment:e.asset_comment}}async bulkDelete(e){const{deleteMany:i,addMany:a}=this.actions,{selectByIds:n}=this.selectors,c=this.select(n(e));this.dispatch(i(e));try{return await this.enqueueRequest({description:y(o.DELETE,this.name,!0),method:o.DELETE,url:`${this.url}/bulk/`,payload:{uuids:e},blockers:e,blocks:[]})}catch(d){throw this.dispatch(a(c)),d}}async refreshStore(e,i){const{initialize:a}=this.actions,c=(await this.listPaginated({queryParams:{asset_comment__asset__project:e}},i)).flat();return this.dispatch(a(c)),c}}class Wg extends g{name="Asset Comment";url="/asset-comments";actions={addOne:ac,addMany:Ct,setOne:nc,setMany:cc,updateOne:rc,updateMany:dc,deleteOne:uc,deleteMany:Dt,initialize:ic};selectors={selectById:oc,selectByIds:hc};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=l.uuidObj({...e,created_by:this.select(r=>r.userReducer.currentUser?.id??null),submitted_at:new Date().toISOString()});this.dispatch(i(c));const d=this.enqueueRequest({description:y(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(c),blockers:[c.asset],blocks:[c.uuid]});return d.then(r=>{this.dispatch(a(r))}).catch(()=>{this.dispatch(n(c.uuid))}),[c,d]}update(e){const{updateOne:i}=this.actions,{selectById:a}=this.selectors,n=this.select(a(e.uuid));if(!n)throw new Error(`Asset comment with uuid ${e.uuid} not found in store`);const c={...n,...e};this.dispatch(i(c));const d=this.enqueueRequest({description:y(o.PATCH,this.name,!1),method:o.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return d.then(r=>{this.dispatch(i(r))}).catch(()=>{this.dispatch(i(n))}),[c,d]}async delete(e){const{deleteOne:i,addOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`Asset comment with uuid ${e} not found in store`);this.dispatch(i(e));try{return await this.enqueueRequest({description:y(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(d){throw this.dispatch(a(c)),d}}async refreshStore(e,i){const{initialize:a}=this.actions,c=(await this.listPaginated({queryParams:{asset__project:e}},i)).flat();return this.dispatch(a(c)),c}}class Xg extends g{url="/assets";name="Asset";actions={addOne:Ac,addMany:Ts,setOne:Oc,setMany:Pc,updateOne:Tc,updateMany:Ic,deleteOne:bc,deleteMany:Is,initialize:Sc};selectors={selectById:Mc,selectByIds:gc};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=this.select(h=>h.userReducer.currentUser?.id??null),d=new Date().toISOString(),r=l.uuidObj({...e,created_by:c,submitted_at:d});this.dispatch(i(r));const p=this.enqueueRequest({description:y(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(r),blockers:[r.asset_type],blocks:[r.uuid]});return p.then(h=>{this.dispatch(a(h))}).catch(()=>{this.dispatch(n(r.uuid))}),[r,p]}update(e){const{updateOne:i}=this.actions,{selectById:a}=this.selectors,n=this.select(a(e.uuid));if(!n)throw new Error(`No asset with uuid ${e.uuid} found in the store`);const c={...n,...e};this.dispatch(i(c));const d=this.enqueueRequest({description:y(o.PATCH,this.name,!1),method:o.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return d.then(r=>{this.dispatch(i(r))}).catch(()=>{this.dispatch(i(n))}),[c,d]}async delete(e){const{addOne:i,deleteOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`No asset with uuid ${e} found in the store`);const d=this.select(Un(e)),r=this.select(pc(e)),p=this.select(Qh(e)),h=this.select(bT(e)),f=this.select(Oh(e));this.dispatch(a(e)),this.dispatch(ps(l.toUuidArray(d))),this.dispatch(Dt(l.toUuidArray(r))),this.dispatch(Tt(l.toUuidArray(p))),this.dispatch(Ot(l.toUuidArray(h))),this.dispatch(ot(l.toUuidArray(f)));try{return await this.enqueueRequest({description:y(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(A){throw this.dispatch(i(c)),this.dispatch(hs(d)),this.dispatch(Ct(r)),this.dispatch(At(p)),this.dispatch(bt(h)),this.dispatch(lt(f)),A}}bulkAdd(e,i){const{addMany:a}=this.actions,n=new Date().toISOString(),c=l.chunkArray(e,Math.min(i??e.length,D)).map(p=>{const h=p.map(f=>l.uuidObj(f));return{batchId:ut.v4(),payload:{submitted_at:n,assets:h}}}),d=[];let r=null;for(const p of c){const{batchId:h,payload:f}=p,A=f.assets.map(({uuid:F})=>F),I=f.assets.map(({asset_type:F})=>F),S=f.assets.map(({project:F})=>F),P=f.assets.map(({status:F})=>F),_=this.enqueueRequest({description:y(o.POST,this.name,!0),method:o.POST,url:`${this.url}/bulk/`,payload:f,blockers:(r?[r]:[]).concat(I).concat(S).concat(P),blocks:[h].concat(A)});r=p.batchId,d.push(_)}return Promise.all(d).then(p=>{const h=p.flat();this.dispatch(a(h))}),d}bulkUpdate(e,i){const{updateMany:a}=this.actions,{selectByIds:n}=this.selectors,c=l.toUuidArray(e);if(new Set(c).size!==e.length)throw new Error("payloads contains duplicate uuids.");const d=this.select(n(c));if(c.length!=d.length)throw new Error(`Attempting to bulk update ${c.length-d.length} assets that dont exist in the store`);const r=d.toSorted((S,P)=>l.uuidSortFn(S.uuid,P.uuid)),p=e.toSorted((S,P)=>l.uuidSortFn(S.uuid,P.uuid)),h=[];for(let S=0;S<c.length;S++)h.push({...r[S],...p[S]});this.dispatch(a(h));const f=l.chunkArray(e,Math.min(i??e.length,D)),A=[];let I=null;for(const S of f){const P=ut.v4(),_=l.toUuidArray(S),F=S.map(({status:V})=>V).filter(Boolean),w=this.enqueueRequest({description:y(o.PATCH,this.name,!0),method:o.PATCH,url:`${this.url}/bulk/`,payload:{payloads:S},blockers:(I?[I]:[]).concat(_).concat(F),blocks:[P].concat(_)});A.push(w),I=P}return Promise.all(A).then(S=>{this.dispatch(a(S.flat()))}).catch(()=>{this.dispatch(a(d))}),[h,A]}async bulkDelete(e){const{addMany:i,deleteMany:a}=this.actions,{selectByIds:n}=this.selectors,c=this.select(n(e)),d=this.select(mc(e)),r=this.select(xh(e)),p=this.select(OT(e)),h=this.select(Ph(e));this.dispatch(a(e)),this.dispatch(Dt(l.toUuidArray(d))),this.dispatch(Tt(l.toUuidArray(r))),this.dispatch(Ot(l.toUuidArray(p))),this.dispatch(ot(l.toUuidArray(h)));try{return await this.enqueueRequest({description:y(o.DELETE,this.name,!0),method:o.DELETE,url:`${this.url}/bulk/`,payload:{uuids:e},blockers:e,blocks:[]})}catch(f){throw this.dispatch(i(c)),this.dispatch(Ct(d)),this.dispatch(At(r)),this.dispatch(bt(p)),this.dispatch(lt(h)),f}}async refreshStore(e,i){const{initialize:a}=this.actions,c=(await this.listPaginated({queryParams:{project:e}},i)).flat();return this.dispatch(a(c)),c}}class Yg extends v{name="Asset Type Attachment";url="/asset-type-attachments";actions={addOne:vc,addMany:Os,setOne:Vc,setMany:Bc,updateOne:zc,updateMany:jc,deleteOne:Cc,deleteMany:Ps,initialize:Ec};selectors={selectById:qc,selectByIds:$c};getId(e){return e.uuid}getBlockers(e){return[e.asset_type]}getBlocks(e){return[e.uuid]}buildModel(e){const i=this.select(n=>n.userReducer.currentUser?.id??null),a=new Date().toISOString();return l.uuidObj({...e,created_by:i,submitted_at:a})}buildPayload(e){return{uuid:e.uuid,submitted_at:e.submitted_at,file_name:e.file_name,file_sha1:e.file_sha1,file_extension:e.file_extension,asset_type:e.asset_type}}buildBulkPayload(e){return{uuid:e.uuid,file_name:e.file_name,file_sha1:e.file_sha1,file_extension:e.file_extension,asset_type:e.asset_type}}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({queryParams:{asset_type__organization:e}},i);return this.dispatch(a(n)),n}}class Zg extends v{name="Asset Type Fields Attachment";url="/asset-type-fields-attachments";actions={addOne:Gc,addMany:Nc,setOne:Kc,setMany:Wc,updateOne:Xc,updateMany:Yc,deleteOne:Zc,deleteMany:Jc,initialize:Hc};selectors={selectById:xc,selectByIds:er};getId(e){return e.uuid}getBlockers(e){return[e.fields_revision]}getBlocks(e){return[e.uuid]}buildModel(e){const i=this.select(n=>n.userReducer.currentUser?.id??null),a=new Date().toISOString();return l.uuidObj({...e,created_by:i,submitted_at:a})}buildPayload(e){const{uuid:i,field_identifier:a,fields_revision:n,file_sha1:c,file_name:d,file_extension:r}=e;return{uuid:i,submitted_at:e.submitted_at,field_identifier:a,fields_revision:n,file_sha1:c,file_name:d,file_extension:r}}buildBulkPayload(e){const{uuid:i,field_identifier:a,fields_revision:n,file_sha1:c,file_name:d,file_extension:r}=e;return{uuid:i,field_identifier:a,fields_revision:n,file_sha1:c,file_name:d,file_extension:r}}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({queryParams:{fields_revision__asset_type__organization:e}},i);return this.dispatch(a(n)),n}}class Jg extends g{name="Asset Type Fields";url="/asset-type-fields";actions={addOne:ar,addMany:nr,setOne:cr,setMany:rr,updateOne:dr,updateMany:ur,deleteOne:lr,deleteMany:or,initialize:ir};selectors={selectById:pr,selectByIds:mr};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=this.select(h=>h.userReducer.currentUser?.id??null),d=new Date().toISOString(),r=l.uuidObj({...e,created_by:c,submitted_at:d});this.dispatch(i(r));const p=this.enqueueRequest({description:y(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(r),blockers:[r.asset_type],blocks:[r.uuid]});return p.then(h=>{this.dispatch(a(h))}).catch(()=>{this.dispatch(n(r.uuid))}),[r,p]}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({queryParams:{asset_type__organization:e}},i);return this.dispatch(a(n)),n}}class Qg extends v{name="Asset Type Field Values Attachment";url="/asset-type-field-values-attachments";actions={addOne:Ar,addMany:ws,setOne:Tr,setMany:Ir,updateOne:br,updateMany:Or,deleteOne:Pr,deleteMany:Es,initialize:Sr};selectors={selectById:_r,selectByIds:Mr};getId(e){return e.uuid}getBlockers(e){return[e.field_values]}getBlocks(e){return[e.uuid]}buildModel(e){const i=this.select(n=>n.userReducer.currentUser?.id??null),a=new Date().toISOString();return l.uuidObj({...e,created_by:i,submitted_at:a})}buildPayload(e){const{uuid:i,field_identifier:a,field_values:n,file_sha1:c,file_name:d,file_extension:r}=e;return{uuid:i,submitted_at:e.submitted_at,field_identifier:a,field_values:n,file_sha1:c,file_name:d,file_extension:r}}buildBulkPayload(e){const{uuid:i,field_identifier:a,field_values:n,file_sha1:c,file_name:d,file_extension:r}=e;return{uuid:i,field_identifier:a,field_values:n,file_sha1:c,file_name:d,file_extension:r}}async bulkDelete(e){const{deleteMany:i,addMany:a}=this.actions,{selectByIds:n}=this.selectors,c=this.select(n(e));this.dispatch(i(e));try{return await this.enqueueRequest({description:y(o.DELETE,this.name,!0),method:o.DELETE,url:`${this.url}/bulk/`,payload:{uuids:e},blockers:e,blocks:[]})}catch(d){throw this.dispatch(a(c)),d}}async refreshStore(e,i){const{initialize:a}=this.actions,c=(await this.listPaginated({queryParams:{field_values__asset__project:e,latest:!0}},i)).flat();return this.dispatch(a(c)),c}}class xg extends g{name="Asset Type Field Values";url="/asset-type-field-values";actions={addOne:vr,addMany:Vr,setOne:Br,setMany:zr,updateOne:jr,updateMany:Cr,deleteOne:Dr,deleteMany:qr,initialize:Er};selectors={selectById:Ur,selectByIds:kr};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=this.select(h=>h.userReducer.currentUser?.id??null),d=new Date().toISOString(),r=l.uuidObj({...e,created_by:c,submitted_at:d}),p=this.enqueueRequest({description:y(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(r),blockers:[e.asset,e.fields_revision],blocks:[r.uuid]});return this.dispatch(i(r)),p.then(h=>{this.dispatch(a(h))}).catch(()=>{this.dispatch(n(r.uuid))}),[r,p]}bulkAdd(e,i){const{payloads:a,values:n}=e,{addMany:c,updateMany:d,deleteMany:r}=this.actions,p=new Date().toISOString(),h=[],f=l.chunkArray(a,Math.min(i??a.length,D)),A=[];for(const S of f){const P=[];for(const _ of S){const F=l.uuidObj({..._,values:_.values,created_by:this.select(w=>w.userReducer.currentUser?.id??null),submitted_at:p});h.push(F),P.push({uuid:F.uuid,asset:_.asset,fields_revision:_.fields_revision,published_at:_.published_at,values:F.values})}A.push({submitted_at:p,values:n,field_values:P})}this.dispatch(c(h));const I=[];for(const S of A){const{field_values:P}=S,_=P.map(({asset:R})=>R),F=P.map(({fields_revision:R})=>R),w=P.map(({uuid:R})=>R),V=this.enqueueRequest({description:y(o.POST,this.name,!0),method:o.POST,url:`${this.url}/bulk/`,payload:S,blockers:_.concat(F),blocks:w});I.push(V)}return Promise.all(I).then(S=>{this.dispatch(d(S.flat()))}).catch(()=>{this.dispatch(r(l.toUuidArray(h)))}),[h,I]}update(e){const{updateOne:i}=this.actions,{selectById:a}=this.selectors,n=this.select(a(e.uuid));if(!n)throw new Error(`Expected AssetTypeFieldValues with uuid ${e.uuid} to exist`);const c={...n,...e};this.dispatch(i(c));const d=this.enqueueRequest({description:y(o.PATCH,this.name,!1),method:o.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[c.uuid,c.fields_revision,c.asset],blocks:[c.uuid]});return d.then(r=>{this.dispatch(i(r))}).catch(()=>{this.dispatch(i(n))}),[c,d]}async delete(e){const{deleteOne:i,addOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`Expected submission with uuid ${e} to exist`);const d=this.select(gr(e));this.dispatch(i(e)),this.dispatch(Es(l.toUuidArray(d)));try{return await this.enqueueRequest({description:y(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(r){throw this.dispatch(a(c)),this.dispatch(ws(d)),r}}async refreshStore(e,i){const{initialize:a}=this.actions,c=(await this.listPaginated({queryParams:{asset__project:e,latest:!0}},i)).flat();return this.dispatch(a(c)),c}}class eR extends g{name="Asset Type Identifier";url="/asset-type-identifiers";actions={addOne:Nr,addMany:Kr,setOne:Wr,setMany:Xr,updateOne:Yr,updateMany:Zr,deleteOne:Jr,deleteMany:Qr,initialize:Gr};selectors={selectById:ed,selectByIds:td};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=this.select(h=>h.userReducer.currentUser?.id??null),d=new Date().toISOString(),r=l.uuidObj({...e,created_by:c,submitted_at:d});this.dispatch(i(r));const p=this.enqueueRequest({description:y(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(r),blockers:[r.asset_type],blocks:[r.uuid]});return p.then(h=>{this.dispatch(a(h))}).catch(()=>{this.dispatch(n(r.uuid))}),[r,p]}update(e){const{updateOne:i}=this.actions,{selectById:a}=this.selectors,n=this.select(a(e.uuid));if(!n)throw new Error(`Expected asset type identifier with uuid ${e.uuid} to exist`);const c={...n,...e};this.dispatch(i(c));const d=this.enqueueRequest({description:y(o.PATCH,this.name,!1),method:o.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return d.then(r=>{this.dispatch(i(r))}).catch(()=>{this.dispatch(i(n))}),[c,d]}async delete(e){const{deleteOne:i,addOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`Expected asset type identifier with uuid ${e} to exist`);this.dispatch(i(e));try{return await this.enqueueRequest({description:y(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(d){throw this.dispatch(a(c)),d}}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({queryParams:{asset_type__organization:e}},i);return this.dispatch(a(n)),n}}class tR extends g{name="Asset Type Identifier Value";url="/asset-type-identifier-values";actions={addOne:nd,addMany:cd,setOne:rd,setMany:dd,updateOne:ud,updateMany:ld,deleteOne:od,deleteMany:hd,initialize:ad};selectors={selectById:md,selectByIds:yd};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=this.select(h=>h.userReducer.currentUser?.id??null),d=new Date().toISOString(),r=l.uuidObj({...e,created_by:c,submitted_at:d});this.dispatch(i(r));const p=this.enqueueRequest({description:y(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(r),blockers:[e.asset,e.asset_type_identifier],blocks:[r.uuid]});return p.then(h=>{this.dispatch(a(h))}).catch(()=>{this.dispatch(n(r.uuid))}),[r,p]}bulkAdd(e,i){const{addMany:a,updateMany:n,deleteMany:c}=this.actions,d=new Date().toISOString(),r=this.select(S=>S.userReducer.currentUser?.id??null),p=l.chunkArray(e,Math.min(i??e.length,D)),h=[],f=[];for(const S of p){const P=[],_=[],F=[];for(const V of S){const R=l.uuidObj({...V,submitted_at:d,created_by:r});f.push(R);const rt={uuid:R.uuid,asset:R.asset,asset_type_identifier:R.asset_type_identifier,value:R.value};P.push(rt),_.push(R.asset),_.push(R.asset_type_identifier),F.push(R.uuid)}const w={payloads:P,submitted_at:d,blockers:_,blocks:F};h.push(w)}this.dispatch(a(f));const A=h.map(S=>{const{payloads:P,submitted_at:_,blockers:F,blocks:w}=S;return this.enqueueRequest({description:y(o.POST,this.name,!0),method:o.POST,url:`${this.url}/bulk/`,payload:{submitted_at:_,payloads:P},blockers:F,blocks:w})});Promise.all(A).then(S=>{this.dispatch(n(S.flat()))}).catch(S=>{throw this.dispatch(c(l.toUuidArray(f))),S});const I=Promise.all(A).then(S=>S.flat());return[f,I]}async delete(e){const{deleteOne:i,addOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`Expected asset type identifier value with uuid ${e} to exist`);this.dispatch(i(e));try{return await this.enqueueRequest({description:y(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(d){throw this.dispatch(a(c)),d}}async refreshStore(e,i){const{initialize:a}=this.actions,c=(await this.listPaginated({queryParams:{asset__project:e,latest:!0}},i)).flat();return this.dispatch(a(c)),c}}class sR extends g{name="Asset Type";url="/asset-types";actions={addOne:bd,addMany:Od,setOne:Td,setMany:Id,updateOne:Pd,updateMany:Fd,deleteOne:_d,deleteMany:Md,initialize:Ad};selectors={selectById:Rd,selectByIds:wd};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=this.select(h=>h.userReducer.currentUser?.id??null),d=new Date().toISOString(),r=l.uuidObj({...e,created_by:c,submitted_at:d});this.dispatch(i(r));const p=this.enqueueRequest({description:y(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(r),blockers:[],blocks:[r.uuid]});return p.then(h=>{this.dispatch(a(h))}).catch(()=>{this.dispatch(n(r.uuid))}),[r,p]}update(e){const{updateOne:i}=this.actions,{selectById:a}=this.selectors,n=this.select(a(e.uuid));if(!n)throw new Error(`Expected asset type with uuid ${e.uuid} to exist`);const c={...n,...e};this.dispatch(i(c));const d=this.enqueueRequest({description:y(o.PATCH,this.name,!1),method:o.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[n.uuid],blocks:[n.uuid]});return d.then(r=>{this.dispatch(i(r))}).catch(()=>{this.dispatch(i(n))}),[c,d]}async delete(e){const{deleteOne:i,addOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`Expected asset type with uuid ${e} to exist`);const d=this.select(_c(e)),r=this.select(Uc(e));this.dispatch(i(e)),this.dispatch(Is(l.toUuidArray(d))),this.dispatch(Ps(l.toUuidArray(r)));try{return await this.enqueueRequest({description:y(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(p){throw this.dispatch(a(c)),this.dispatch(Ts(d)),this.dispatch(Os(r)),p}}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({queryParams:{organization:e}},i);return this.dispatch(a(n)),n}}class iR extends g{name="Asset Type Status";url="/asset-type-statuses";actions={addOne:Bd,addMany:zd,setOne:jd,setMany:Cd,updateOne:Dd,updateMany:qd,deleteOne:$d,deleteMany:Ud,initialize:Vd};selectors={selectById:Ld,selectByIds:Hd};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=this.select(h=>h.userReducer.currentUser?.id??null),d=new Date().toISOString(),r=l.uuidObj({...e,created_by:c,submitted_at:d});this.dispatch(i(r));const p=this.enqueueRequest({description:y(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(r),blockers:[e.asset_type],blocks:[r.uuid]});return p.then(h=>{this.dispatch(a(h))}).catch(()=>{this.dispatch(n(r.uuid))}),[r,p]}update(e){const{updateOne:i}=this.actions,{selectById:a}=this.selectors,n=this.select(a(e.uuid));if(!n)throw new Error(`Expected an existing asset type status with uuid ${e.uuid}`);const c={...n,...e};this.dispatch(i(c));const d=this.enqueueRequest({description:y(o.PATCH,this.name,!1),method:o.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return d.then(r=>{this.dispatch(i(r))}).catch(()=>{this.dispatch(i(n))}),[c,d]}async delete(e){const{deleteOne:i,addOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`No asset type status with uuid ${e} found in the store`);this.dispatch(i(e));try{return await this.enqueueRequest({description:y(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(d){throw this.dispatch(a(c)),d}}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({queryParams:{asset_type__organization:e}},i);return this.dispatch(a(n)),n}}class aR extends v{name="Document Attachment";url="/document-attachments";actions={addOne:Zd,addMany:Jd,setOne:Qd,setMany:xd,updateOne:eu,updateMany:tu,deleteOne:su,deleteMany:iu,initialize:Yd};selectors={selectById:nu,selectByIds:cu};getId(e){return e.uuid}getBlockers(e){return[e.document]}getBlocks(e){return[e.uuid]}buildModel(e){const i=this.select(n=>n.userReducer.currentUser?.id??null),a=new Date().toISOString();return l.uuidObj({...e,created_by:i,submitted_at:a})}buildPayload(e){return{uuid:e.uuid,submitted_at:e.submitted_at,file_name:e.file_name,file_sha1:e.file_sha1,file_extension:e.file_extension,document:e.document}}buildBulkPayload(e){return{uuid:e.uuid,file_name:e.file_name,file_sha1:e.file_sha1,file_extension:e.file_extension,document:e.document}}async bulkAdd(e,i){const[a,n,c]=await super.bulkAdd(e,i),d={};for(const{file_sha1:r,uuid:p}of a)r in d||(d[r]=[]),d[r].push(p);return c.then(r=>{const p=r.flatMap(h=>d[h]??[]);for(const h of p)this.makeReadable(h)}),[a,n,c]}makeReadable(e){this.enqueueRequest({description:"Add attachment to AI assistant",method:o.PATCH,url:`${this.url}/${e}/`,payload:{readable_to_assistant:!0},blockers:["index-document-attachment",e],blocks:["index-document-attachment"]})}async refreshStore(e,i){const{initialize:a}=this.actions,n=this.list({queryParams:{document__project__organization:e}},i),c=this.list({queryParams:{document__organization:e}},i),r=(await Promise.all([n,c])).flat();return this.dispatch(a(r)),r}}class nR extends g{name="Document";url="/documents";actions={addOne:lu,addMany:ou,setOne:hu,setMany:pu,updateOne:mu,updateMany:yu,deleteOne:fu,deleteMany:Su,initialize:uu};selectors={selectById:Tu,selectByIds:Iu};add(e){const{addOne:i,deleteOne:a,updateOne:n}=this.actions,c=this.select(h=>h.userReducer.currentUser?.id??null),d=new Date().toISOString(),r=l.uuidObj({...e,created_by:c,submitted_at:d});this.dispatch(i(r));const p=this.enqueueRequest({description:y(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(r),blockers:r.parent_document?[r.parent_document]:[],blocks:[r.uuid]});return p.then(h=>{this.dispatch(n(h))}).catch(()=>{this.dispatch(a(r.uuid))}),[r,p]}update(e){const{updateOne:i}=this.actions,{selectById:a}=this.selectors,n=this.select(a(e.uuid));if(!n)throw new Error(`attempting to update a document with uuid ${e.uuid} that does not exist in store.documents`);const c={...n,...e};this.dispatch(i(c));const d=this.enqueueRequest({description:y(o.PATCH,this.name,!1),method:o.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return d.then(r=>{this.dispatch(i(r))}).catch(()=>{this.dispatch(i(n))}),[c,d]}async delete(e){const{deleteOne:i,addOne:a,addMany:n,deleteMany:c}=this.actions,{selectById:d}=this.selectors,r=this.select(d(e));if(!r)throw new Error(`attempting to delete a document with uuid ${e} that does not exist in store.documents`);const p=this.select(bu(e));this.dispatch(i(e)),this.dispatch(c(l.toUuidArray(p)));try{return await this.enqueueRequest({description:y(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(h){throw this.dispatch(a(r)),this.dispatch(n(p)),h}}async refreshStore(e,i){const{initialize:a}=this.actions,n=this.list({queryParams:{project__organization:e}},i),c=this.list({queryParams:{organization:e}},i),r=(await Promise.all([n,c])).flat();return this.dispatch(a(r)),r}}class dt extends yt{async get(e,i){return this.performRequest({url:`${this.url}/${e}/`,method:o.GET},i)}async list(e,i){return this.performRequest({url:`${this.url}/`,method:o.GET,...e},i)}async listPaginated(e,i){return this.performPagination({url:`${this.url}/`,method:o.GET,...e},i)}}class cR extends dt{name="Email Domains";url="/organization-email-domains";actions={addOne:Fu,addMany:_u,setOne:Mu,setMany:gu,updateOne:Ru,updateMany:wu,deleteOne:Eu,deleteMany:vu,initialize:Pu};selectors={selectById:Bu,selectByIds:zu};async add(e,i){return this.enqueueRequest({description:y(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:{email:i,organization:e},blockers:[e,"create-org"],blocks:[]})}async delete(e){const{deleteOne:i,addOne:a}=this.actions;this.dispatch(i(e.uuid));try{return await this.enqueueRequest({description:y(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e.uuid}/`,blockers:[e.domain],blocks:[]})}catch(n){throw this.dispatch(a(e)),n}}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({queryParams:{organization:e}},i);return this.dispatch(a(n)),n}}class rR extends yt{async getVerificationCode(e){return this.enqueueRequest({description:"Get verification code",method:o.GET,url:`/verification/email-verification/${e}/`,isAuthNeeded:!1,blockers:[],blocks:[]})}validateVerificationCode(e,i){return this.enqueueRequest({description:"Validate verification code",method:o.POST,url:`/verification/email-verification/${e}/`,isAuthNeeded:!1,payload:i,blockers:[],blocks:[]})}}const Bt={},fn=new Set,Sn=new Set;class dR extends yt{host=void 0;dbPromise=O_.openDB("fileCache",2,{upgrade(e,i){i<1&&e.createObjectStore("files"),i<2&&e.createObjectStore("presignedUrls")}});async getDB(){return await this.dbPromise}async cacheFile(e){if(!e.name)throw new Error(`Cant add a file without a name to cache: ${e.name}`);if(!e.type)throw new Error(`Cant add a file without a type to cache: ${e.name}`);if(!e.size)throw new Error(`Cant add an empty file to cache: ${e.name}`);const i=await rs(e);if(fn.has(i))return;const a=await this.getDB();!!await a.get("files",i)?console.warn(`Attempting to add a file already cached, ${e.name}`):await a.put("files",e,i),fn.add(i)}async uncacheFile(e){await(await this.getDB()).delete("files",e),fn.delete(e)}async getFileFromCache(e){return(await this.getDB()).get("files",e)}async fetchFileFromUrl(e,i,a=i,n){const c=e.split("?")[0]??e,d=await this.getFileFromCache(i);if(d)return d;let r;c in Bt?r=Bt[c]:a_(e)?(r=i_(e,a),Bt[c]=r):(r=this.performRequest({method:o.GET,url:e,isExternalUrl:!0,isResponseBlob:!0,isAuthNeeded:!1},n).then(f=>new File([f],a,{type:f.type})),Bt[c]=r);let p;try{p=await r}catch(f){throw f instanceof z&&delete Bt[c],f}const h=await rs(p);if(h!==i){const f=`The hash of the file returned from the server (${h}) does not match the
8
8
  expected hash (${i}). This can happen if you're using a local development server and the
9
9
  isExternalUrl flag in the request details is set to true, because instead of requesting the local
10
10
  REST API, you will be requesting localhost:80 (where this app runs), resulting in a transformed blob
11
11
  (with an uuid attached) being returned. Alternatively, you may be running with
12
12
  import.meta.env.PROD, which will result in some file requests being treated as
13
- external URLs and therefore not prepended with VITE_API_URL.`;throw new Error(f)}return await this.cacheFile(p),p}processPresignedUrl(e,i){if("warning"in i){if(i.warning==="already_uploaded")return Promise.resolve(void 0);throw console.error(i.warning),new Error(i.warning)}return this.enqueueRequest({url:i.url,description:"Upload file to S3",method:o.POST,isExternalUrl:!0,isAuthNeeded:!1,attachmentHash:e,blockers:[`s3-${i.fields.key}`,"s3-presigned-upload"],blocks:[e,"s3-presigned-upload"],s3url:i})}processPresignedUrls(e){const i={};for(const[a,n]of Object.entries(e))i[a]=this.processPresignedUrl(a,n);return i}async getFilePayload(e){const a={sha1:await ns(e),file_type:e.type,extension:OF(e),size:e.size};return await this.client.files.cacheFile(e),a}async cachePresignedUrl(e,i){if(on.has(e))return;const a=await this.getDB();!!await a.get("presignedUrls",e)?console.warn(`Attempting to add a presigned url already cached, ${i}`):await a.put("presignedUrls",i,e),on.add(e)}async uncachePresignedUrl(e){await(await this.getDB()).delete("presignedUrls",e),on.delete(e)}async getPresignedUrlFromCache(e){const i=await(await this.getDB()).get("presignedUrls",e);if(!i)return;if(RF(i)){await this.uncachePresignedUrl(e);return}return i}}class Mg extends g{name="Form Identifier";url="/form-identifiers";actions={addOne:Au,addMany:Tu,setOne:Iu,setMany:Ou,updateOne:Pu,updateMany:bu,deleteOne:Fu,deleteMany:_u,initialize:Su};selectors={selectById:gu,selectByIds:Ru};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=this.select(h=>h.userReducer.currentUser?.id??null),d=new Date().toISOString(),r=l.uuidObj({...e,created_by:c,submitted_at:d});this.dispatch(i(r));const p=this.enqueueRequest({description:m(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(r),blockers:[r.form],blocks:[r.uuid]});return p.then(h=>{this.dispatch(a(h))}).catch(()=>{this.dispatch(n(r.uuid))}),[r,p]}update(e){const{updateOne:i}=this.actions,{selectById:a}=this.selectors,n=this.select(a(e.uuid));if(!n)throw new Error(`Expected form identifier with uuid ${e.uuid} to exist`);const c={...n,...e};this.dispatch(i(c));const d=this.enqueueRequest({description:m(o.PATCH,this.name,!1),method:o.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return d.then(r=>{this.dispatch(i(r))}).catch(()=>{this.dispatch(i(n))}),[c,d]}async delete(e){const{deleteOne:i,addOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`Expected form identifier with uuid ${e} to exist`);this.dispatch(i(e));try{return await this.enqueueRequest({description:m(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(d){throw this.dispatch(a(c)),d}}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({queryParams:{form__organization:e}},i);return this.dispatch(a(n)),n}}class gg extends g{name="Form Identifier Value";url="/form-identifier-values";actions={addOne:Vu,addMany:Bu,setOne:zu,setMany:ju,updateOne:Du,updateMany:Cu,deleteOne:qu,deleteMany:$u,initialize:vu};selectors={selectById:ku,selectByIds:Lu};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=this.select(h=>h.userReducer.currentUser?.id??null),d=new Date().toISOString(),r=l.uuidObj({...e,created_by:c,submitted_at:d});this.dispatch(i(r));const p=this.enqueueRequest({description:m(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(r),blockers:[e.form_submission,e.form_identifier],blocks:[r.uuid]});return p.then(h=>{this.dispatch(a(h))}).catch(()=>{this.dispatch(n(r.uuid))}),[r,p]}async delete(e){const{deleteOne:i,addOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`Expected form identifier value with uuid ${e} to exist`);this.dispatch(i(e));try{return await this.enqueueRequest({description:m(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(d){throw this.dispatch(a(c)),d}}async refreshStore(e,i){const{initialize:a}=this.actions,c=(await Promise.all([this.listPaginated({queryParams:{latest:!0,form_submission__organization:e}},i),this.listPaginated({queryParams:{latest:!0,form_submission__project__organization:e}},i)])).flatMap(d=>d.flat());return this.dispatch(a(c)),c}}class Rg extends v{name="Form Revision Attachment";url="/form-revision-attachments";actions={addOne:Ku,addMany:Wu,setOne:Xu,setMany:Yu,updateOne:Zu,updateMany:Ju,deleteOne:Qu,deleteMany:xu,initialize:Nu};selectors={selectById:tl,selectByIds:sl};getId(e){return e.uuid}getBlockers(e){return[e.form_revision]}getBlocks(e){return[e.uuid]}buildModel(e){const i=this.select(n=>n.userReducer.currentUser?.id??null),a=new Date().toISOString();return l.uuidObj({...e,created_by:i,submitted_at:a})}buildPayload(e){const{uuid:i,field_identifier:a,form_revision:n,file_sha1:c,file_name:d,file_extension:r}=e;return{uuid:i,submitted_at:e.submitted_at,field_identifier:a,form_revision:n,file_sha1:c,file_name:d,file_extension:r}}buildBulkPayload(e){const{uuid:i,field_identifier:a,form_revision:n,file_sha1:c,file_name:d,file_extension:r}=e;return{uuid:i,field_identifier:a,form_revision:n,file_sha1:c,file_name:d,file_extension:r}}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({queryParams:{form_revision__form__organization:e}},i);return this.dispatch(a(n)),n}}class wg extends g{name="Form Revision";url="/form-revisions";actions={addOne:cl,addMany:Ws,setOne:rl,setMany:dl,updateOne:ul,updateMany:ll,deleteOne:ol,deleteMany:Xs,initialize:nl};selectors={selectById:pl,selectByIds:yl};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=this.select(h=>h.userReducer.currentUser?.id??null),d=new Date().toISOString(),r=l.uuidObj({...e,created_by:c,submitted_at:d});this.dispatch(i(r));const p=this.enqueueRequest({description:m(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(r),blockers:[e.form],blocks:[r.uuid]});return p.then(h=>{this.dispatch(a(h))}).catch(()=>{this.dispatch(n(r.uuid))}),[r,p]}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({queryParams:{form__organization:e}},i);return this.dispatch(a(n)),n}}class Eg extends g{name="Form";url="/forms";actions={addOne:Vl,addMany:Bl,setOne:zl,setMany:jl,updateOne:Dl,updateMany:Cl,deleteOne:ql,deleteMany:$l,initialize:vl};selectors={selectById:Ll,selectByIds:Hl};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=new Date().toISOString(),d=this.select(h=>h.userReducer.currentUser?.id??null),r=l.uuidObj({...e,submitted_at:c,created_by:d});this.dispatch(i(r));const p=this.enqueueRequest({description:m(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(r),blockers:[],blocks:[r.uuid]});return p.then(h=>{this.dispatch(a(h))}).catch(()=>{this.dispatch(n(r.uuid))}),[r,p]}update(e){const{updateOne:i}=this.actions,{selectById:a}=this.selectors,n=this.select(a(e.uuid));if(!n)throw new Error(`Expected form with uuid ${e.uuid} to exist`);const c={...n,...e};this.dispatch(i(c));const d=this.enqueueRequest({description:m(o.PATCH,this.name,!1),method:o.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[n.uuid],blocks:[n.uuid]});return d.then(r=>{this.dispatch(i(r))}).catch(()=>{this.dispatch(i(n))}),[c,d]}async delete(e){const{deleteOne:i,addOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error("Expected form to exist");const d=this.select($o(e)),r=this.select(ml(e)),p=this.select(Rl(e));this.dispatch(i(e)),this.dispatch(ut(l.toUuidArray(d))),this.dispatch(Xs(l.toUuidArray(r))),this.dispatch(Js(l.toUuidArray(p)));try{return await this.enqueueRequest({description:m(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(h){throw this.dispatch(a(c)),this.dispatch(Ws(r)),this.dispatch(dt(d)),this.dispatch(Zs(p)),h}}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({queryParams:{organization:e}},i);return this.dispatch(a(n)),n}}class vg extends g{name="Form Subscriber";url="/form-subscribers";actions={addOne:Tl,addMany:Zs,setOne:Il,setMany:Ol,updateOne:Pl,updateMany:bl,deleteOne:Fl,deleteMany:Js,initialize:Al};selectors={selectById:Ml,selectByIds:gl};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=new Date().toISOString(),d=this.select(h=>h.userReducer.currentUser?.id??null),r=l.uuidObj({...e,created_by:d,submitted_at:c});this.dispatch(i(r));const p=this.enqueueRequest({description:m(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(r),blockers:[r.form],blocks:[r.uuid]});return p.then(h=>{this.dispatch(a(h))}).catch(()=>{this.dispatch(n(r.uuid))}),[r,p]}async delete(e){const{deleteOne:i,addOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`Expected form subscriber with uuid ${e} to exist`);this.dispatch(i(e));try{return await this.enqueueRequest({description:m(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(d){throw this.dispatch(a(c)),d}}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({queryParams:{form__organization:e}},i);return this.dispatch(a(n)),n}}class Vg extends v{name="Form Submission Field Values Attachment";url="/form-submission-field-values-attachments";actions={addOne:Kl,addMany:ti,setOne:Wl,setMany:Xl,updateOne:Yl,updateMany:Zl,deleteOne:Jl,deleteMany:si,initialize:Nl};selectors={selectById:Ql,selectByIds:ni};getId(e){return e.uuid}getBlockers(e){return[e.field_values]}getBlocks(e){return[e.uuid]}buildModel(e){const i=this.select(n=>n.userReducer.currentUser?.id??null),a=new Date().toISOString();return l.uuidObj({...e,created_by:i,submitted_at:a})}buildPayload(e){const{uuid:i,field_identifier:a,field_values:n,file_sha1:c,file_name:d,file_extension:r}=e;return{uuid:i,submitted_at:e.submitted_at,field_identifier:a,field_values:n,file_sha1:c,file_name:d,file_extension:r}}buildBulkPayload(e){const{uuid:i,field_identifier:a,field_values:n,file_sha1:c,file_name:d,file_extension:r}=e;return{uuid:i,field_identifier:a,field_values:n,file_sha1:c,file_name:d,file_extension:r}}async bulkDelete(e){const{deleteMany:i,addMany:a}=this.actions,n=this.select(ni(e));this.dispatch(i(e));try{return await this.enqueueRequest({description:m(o.DELETE,this.name,!0),method:o.DELETE,url:`${this.url}/bulk/`,payload:{uuids:e},blockers:e,blocks:[]})}catch(c){throw this.dispatch(a(n)),c}}async refreshStore(e,i){const{initialize:a}=this.actions,c=(await Promise.all([this.listPaginated({queryParams:{latest:!0,field_values__form_submission__organization:e}},i),this.listPaginated({queryParams:{latest:!0,field_values__form_submission__project__organization:e}},i)])).flatMap(d=>d.flat());return this.dispatch(a(c)),c}}class Bg extends g{name="Form Submission Field Values";url="/form-submission-field-values";actions={addOne:io,addMany:ri,setOne:ao,setMany:no,updateOne:co,updateMany:ro,deleteOne:uo,deleteMany:di,initialize:so};selectors={selectById:oo,selectByIds:ho};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=this.select(h=>h.userReducer.currentUser?.id??null),d=new Date().toISOString(),r=l.uuidObj({...e,created_by:c,submitted_at:d});this.dispatch(i(r));const p=this.enqueueRequest({description:m(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(r),blockers:[r.form_submission],blocks:[r.uuid]});return p.then(h=>{this.dispatch(a(h))}).catch(()=>{this.dispatch(n(r.uuid))}),[r,p]}async refreshStore(e,i){const{initialize:a}=this.actions,c=(await Promise.all([this.listPaginated({queryParams:{latest:!0,form_submission__organization:e}},i),this.listPaginated({queryParams:{latest:!0,form_submission__project__organization:e}},i)])).flatMap(d=>d.flat());return this.dispatch(a(c)),c}}class zg extends g{name="Form Submission Comment";url="/form-submission-comments";actions={addOne:So,addMany:oi,setOne:Ao,setMany:To,updateOne:Io,updateMany:Oo,deleteOne:Po,deleteMany:hi,initialize:fo};selectors={selectById:Fo,selectByIds:_o};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=l.uuidObj({...e,created_by:this.select(r=>r.userReducer.currentUser?.id??null),submitted_at:new Date().toISOString()});this.dispatch(i(c));const d=this.enqueueRequest({description:m(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(c),blockers:[c.form_submission],blocks:[c.uuid]});return d.then(r=>{this.dispatch(a(r))}).catch(()=>{this.dispatch(n(c.uuid))}),[c,d]}update(e){const{updateOne:i}=this.actions,{selectById:a}=this.selectors,n=this.select(a(e.uuid));if(!n)throw new Error(`Form submission comment with uuid ${e.uuid} not found in store`);const c={...n,...e};this.dispatch(i(c));const d=this.enqueueRequest({description:m(o.PATCH,this.name,!1),method:o.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return d.then(r=>{this.dispatch(i(r))}).catch(()=>{this.dispatch(i(n))}),[c,d]}async delete(e){const{deleteOne:i,addOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`Form submission comment with uuid ${e} not found in store`);this.dispatch(i(e));try{return await this.enqueueRequest({description:m(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(d){throw this.dispatch(a(c)),d}}async refreshStore(e,i){const{initialize:a}=this.actions,c=(await Promise.all([this.listPaginated({queryParams:{form_submission__organization:e}},i),this.listPaginated({queryParams:{form_submission__project__organization:e}},i)])).flatMap(d=>d.flat());return this.dispatch(a(c)),c}}class jg extends g{name="Form Submission";url="/form-submissions";actions={addOne:Vo,addMany:dt,setOne:Eo,setMany:vo,updateOne:Bo,updateMany:zo,deleteOne:jo,deleteMany:ut,initialize:wo};selectors={selectById:Co,selectByIds:qo};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=this.select(h=>h.userReducer.currentUser?.id??null),d=new Date().toISOString(),r=l.uuidObj({...e,created_by:c,submitted_at:d}),p=this.enqueueRequest({description:m(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(r),blockers:[e.form_revision],blocks:[r.uuid]});return this.dispatch(i(r)),p.then(h=>{this.dispatch(a(h))}).catch(()=>{this.dispatch(n(r.uuid))}),[r,p]}update(e){const{updateOne:i}=this.actions,{selectById:a}=this.selectors,n=this.select(a(e.uuid));if(!n)throw new Error(`Expected submission with uuid ${e.uuid} to exist`);const c={...n,...e};this.dispatch(i(c));const d=this.enqueueRequest({description:m(o.PATCH,this.name,!1),method:o.PATCH,url:`${this.url}/${c.uuid}/`,payload:e,blockers:[c.uuid],blocks:[c.uuid]});return d.then(r=>{this.dispatch(i(r))}).catch(()=>{this.dispatch(i(n))}),[c,d]}async delete(e){const{deleteOne:i,addOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`Expected submission with uuid ${e} to exist`);const d=this.select(po(e)),r=d.flatMap(({uuid:h})=>this.select(xl(h))),p=this.select(Mo(e));this.dispatch(i(e)),this.dispatch(di(l.toUuidArray(d))),this.dispatch(si(l.toUuidArray(r))),this.dispatch(hi(l.toUuidArray(p)));try{return await this.enqueueRequest({description:m(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(h){throw this.dispatch(a(c)),this.dispatch(ri(d)),this.dispatch(ti(r)),this.dispatch(oi(p)),h}}async refreshStore(e,i){const{initialize:a}=this.actions,c=(await Promise.all([this.listPaginated({queryParams:{organization:e}},i),this.listPaginated({queryParams:{project__organization:e}},i)])).flatMap(d=>d.flat());return this.dispatch(a(c)),c}}class Dg extends v{name="Geo Image";url="/geo-images";actions={addOne:Yo,addMany:Zo,setOne:Wo,setMany:Xo,updateOne:Jo,updateMany:Qo,deleteOne:xo,deleteMany:eh,initialize:Ko};selectors={selectById:sh,selectByIds:ih};getId(e){return e.uuid}getBlockers(e){return[e.project]}getBlocks(e){return[e.uuid]}buildModel(e){const i=this.select(n=>n.userReducer.currentUser?.id??null),a=new Date().toISOString();return l.uuidObj({...e,created_by:i,submitted_at:a})}buildPayload(e){return{uuid:e.uuid,submitted_at:e.submitted_at,file_sha1:e.file_sha1,file_name:e.file_name,file_extension:e.file_extension,title:e.title,description:e.description,geo_marker:e.geo_marker,direction:e.direction,original_date:e.original_date,project:e.project}}buildBulkPayload(e){return{uuid:e.uuid,file_sha1:e.file_sha1,file_name:e.file_name,file_extension:e.file_extension,title:e.title,description:e.description,geo_marker:e.geo_marker,direction:e.direction,original_date:e.original_date,project:e.project}}update(e){const{updateOne:i}=this.actions,{selectById:a}=this.selectors,n=this.select(a(e.uuid));if(!n)throw new Error(`Geo image with uuid ${e.uuid} does not exist in the store`);const c={...n,...e};this.dispatch(i(c));const d=this.enqueueRequest({description:m(o.PATCH,this.name,!1),method:o.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blocks:[e.uuid],blockers:[e.uuid]});return d.then(r=>{this.dispatch(i(r))}).catch(()=>{this.dispatch(i(n))}),[c,d]}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({queryParams:{project:e}},i);return this.dispatch(a(n)),n}}class Cg extends g{name="Issue Association";url="/issue-associations";actions={addOne:oh,addMany:ft,setOne:dh,setMany:rh,updateOne:uh,updateMany:lh,deleteOne:hh,deleteMany:St,initialize:ch};selectors={selectById:yh,selectByIds:mh};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=new Date().toISOString(),d=this.select(h=>h.userReducer.currentUser?.id??null),r=l.uuidObj({...e,submitted_at:c,created_by:d});this.dispatch(i(r));const p=this.enqueueRequest({description:m(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(r),blockers:[e.issue,e.asset],blocks:[r.uuid]});return p.then(h=>{this.dispatch(a(h))}).catch(()=>{this.dispatch(n(r.uuid))}),[r,p]}bulkAdd(e){const{addMany:i,deleteMany:a,updateMany:n}=this.actions,c=this.select(h=>h.userReducer.currentUser?.id??null),d=new Date().toISOString(),r=e.map(h=>l.uuidObj({...h,submitted_at:d,created_by:c}));this.dispatch(i(r));const p=this.enqueueRequest({description:m(o.POST,this.name,!0),method:o.POST,url:`${this.url}/bulk/`,payload:{payloads:r.map(h=>M(h)),submitted_at:d},blockers:r.flatMap(h=>[h.issue,h.asset]),blocks:l.toUuidArray(r)});return p.then(h=>{this.dispatch(n(h))}).catch(()=>{this.dispatch(a(l.toUuidArray(r)))}),[r,p]}async delete(e){const{deleteOne:i,addOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`Issue association with uuid ${e} not found in store.`);this.dispatch(i(e));try{return await this.enqueueRequest({description:m(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(d){throw this.dispatch(a(c)),d}}async refreshStore(e,i){const{initialize:a}=this.actions,c=(await this.listPaginated({queryParams:{issue__project:e}},i)).flat();return this.dispatch(a(c)),c}}class qg extends v{name="Issue Attachment";url="/issue-attachments";actions={addOne:bh,addMany:Ai,setOne:Fh,setMany:_h,updateOne:Mh,updateMany:gh,deleteOne:Rh,deleteMany:Ti,initialize:Ph};selectors={selectById:vh,selectByIds:Vh};getId(e){return e.uuid}getBlockers(e){return[e.issue]}getBlocks(e){return[e.uuid]}buildModel(e){const i=this.select(n=>n.userReducer.currentUser?.id??null),a=new Date().toISOString();return l.uuidObj({...e,created_by:i,submitted_at:a})}buildPayload(e){return{uuid:e.uuid,submitted_at:e.submitted_at,file_name:e.file_name,file_sha1:e.file_sha1,file_extension:e.file_extension,issue:e.issue}}buildBulkPayload(e){return{uuid:e.uuid,file_name:e.file_name,file_sha1:e.file_sha1,file_extension:e.file_extension,issue:e.issue}}async refreshStore(e,i){const{initialize:a}=this.actions,c=(await this.listPaginated({queryParams:{issue__project:e}},i)).flat();return this.dispatch(a(c)),c}}class $g extends v{name="Issue Comment Attachment";url="/issue-comment-attachments";actions={addOne:Dh,addMany:Ch,setOne:qh,setMany:$h,updateOne:Uh,updateMany:kh,deleteOne:Lh,deleteMany:Hh,initialize:jh};selectors={selectById:Nh,selectByIds:Kh};getId(e){return e.uuid}getBlockers(e){return[e.issue_comment]}getBlocks(e){return[e.uuid]}buildModel(e){const i=this.select(n=>n.userReducer.currentUser?.id??null),a=new Date().toISOString();return l.uuidObj({...e,created_by:i,submitted_at:a})}buildPayload(e){return{uuid:e.uuid,submitted_at:e.submitted_at,file_name:e.file_name,file_sha1:e.file_sha1,file_extension:e.file_extension,issue_comment:e.issue_comment}}buildBulkPayload(e){return{uuid:e.uuid,file_name:e.file_name,file_sha1:e.file_sha1,file_extension:e.file_extension,issue_comment:e.issue_comment}}async refreshStore(e,i){const{initialize:a}=this.actions,c=(await this.listPaginated({queryParams:{issue_comment__issue__project:e}},i)).flat();return this.dispatch(a(c)),c}}class Ug extends g{name="Issue Comment";url="/issue-comments";actions={addOne:Zh,addMany:Jh,setOne:Qh,setMany:xh,updateOne:ep,updateMany:tp,deleteOne:sp,deleteMany:ip,initialize:Yh};selectors={selectById:ap,selectByIds:np};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=l.uuidObj({...e,created_by:this.select(r=>r.userReducer.currentUser.id),submitted_at:new Date().toISOString()});this.dispatch(i(c));const d=this.enqueueRequest({description:m(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(c),blockers:[e.issue],blocks:[c.uuid]});return d.then(r=>{this.dispatch(a(r))}).catch(()=>{this.dispatch(n(c.uuid))}),[c,d]}update(e){const{updateOne:i}=this.actions,{selectById:a}=this.selectors,n=this.select(a(e.uuid));if(!n)throw new Error(`Comment with uuid ${e.uuid} not found in store`);const c={...n,...e};this.dispatch(i(c));const d=this.enqueueRequest({description:m(o.PATCH,this.name,!1),method:o.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return d.then(r=>{this.dispatch(i(r))}).catch(()=>{this.dispatch(i(n))}),[c,d]}async delete(e){const{deleteOne:i,addOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`Comment with uuid ${e} not found in store`);this.dispatch(i(e));try{return await this.enqueueRequest({description:m(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(d){throw this.dispatch(a(c)),d}}async refreshStore(e,i){const{initialize:a}=this.actions,c=(await this.listPaginated({queryParams:{issue__project:e}},i)).flat();return this.dispatch(a(c)),c}}class kg extends g{name="Issue";url="/issues";actions={addOne:up,addMany:Mi,setOne:lp,setMany:op,updateOne:hp,updateMany:pp,deleteOne:yp,deleteMany:gi,initialize:dp};selectors={selectById:fp,selectByIds:Sp};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=new Date().toISOString(),d=this.select(h=>h.userReducer.currentUser?.id??null),r=l.uuidObj({...e,submitted_at:c,created_by:d});this.dispatch(i(r));const p=this.enqueueRequest({description:m(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(r),blockers:[r.project,r.issue_type,r.status,r.priority],blocks:[r.uuid]});return p.then(h=>{this.dispatch(a(h))}).catch(h=>{throw this.dispatch(n(r.uuid)),h}),[r,p]}update(e){const{updateOne:i}=this.actions,{selectById:a}=this.selectors,n=this.select(a(e.uuid));if(!n)throw new Error(`Attempting to update an issue with uuid ${e.uuid} that doesn't exist in the store`);const c={...n,...e};this.dispatch(i(c));const d={};for(const h of[l.IssueUpdateChange.TITLE,l.IssueUpdateChange.DESCRIPTION,l.IssueUpdateChange.STATUS,l.IssueUpdateChange.PRIORITY,l.IssueUpdateChange.ASSIGNED_TO,l.IssueUpdateChange.DUE_DATE])if(h in e&&e[h]!==n[h])switch(h){case l.IssueUpdateChange.PRIORITY:{const f=e[h],A=this.select(Hi(f));if(!A)throw new Error(`Trying to update issue type priority with ${f} which does not exist in store`);d[h]={name:A.name,color:A.color,uuid:A.uuid};break}case l.IssueUpdateChange.DUE_DATE:d[h]=e.due_date;break;case l.IssueUpdateChange.DESCRIPTION:d[h]=e.description??"";break;case l.IssueUpdateChange.TITLE:d[h]=e.title??"";break;case l.IssueUpdateChange.STATUS:{const f=e[h],A=this.select(Xi(f));if(!A)throw new Error(`Trying to update issue type status with ${f} which does not exist in store`);d[h]={name:A.name,color:A.color,uuid:A.uuid};break}case l.IssueUpdateChange.ASSIGNED_TO:{const f=e[h];if(f===null)d[h]=null;else{const A=this.select(Jt(f));if(!A)throw new Error(`Trying to update assigned to with ${f} which does not exist in store.`);d[h]={full_name:A.username,id:A.id}}break}}const r=l.uuidObj({created_by:this.select(h=>h.userReducer.currentUser?.id??null),submitted_at:new Date().toISOString(),issue:n.uuid,changes:d});this.dispatch(Zi(r));const p=this.enqueueRequest({description:m(o.PATCH,this.name,!1),method:o.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return p.then(h=>{this.dispatch(i(h))}).catch(()=>{this.dispatch(i(n)),this.dispatch(Qi(r.uuid))}),[c,p]}bulkUpdate(e,i){const{updateMany:a}=this.actions,{selectByIds:n}=this.selectors,c=l.toUuidArray(e);if(new Set(c).size!==e.length)throw new Error("payloads contains duplicate uuids.");const d=this.select(n(c));if(c.length!=d.length)throw new Error(`Attempting to bulk update ${c.length-d.length} issues that dont exist in the store`);const r=d.toSorted((S,P)=>l.uuidSortFn(S.uuid,P.uuid)),p=e.toSorted((S,P)=>l.uuidSortFn(S.uuid,P.uuid)),h=[];for(let S=0;S<c.length;S++)h.push({...r[S],...p[S]});this.dispatch(a(h));const f=l.chunkArray(e,Math.min(i??e.length,C)),A=[];let I=null;for(const S of f){const P=rt.v4(),_=l.toUuidArray(S),F=S.map(({status:R})=>R).filter(Boolean),w=S.map(({priority:R})=>R).filter(Boolean),V=this.enqueueRequest({description:m(o.PATCH,this.name,!0),method:o.PATCH,url:`${this.url}/bulk/`,payload:{payloads:S},blockers:(I?[I]:[]).concat(_).concat(F).concat(w),blocks:[P].concat(_)});A.push(V),I=P}return Promise.all(A).then(S=>{this.dispatch(a(S.flat()))}).catch(()=>{this.dispatch(a(d))}),[h,A]}async delete(e){const{deleteOne:i,addOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`No issue with uuid ${e} found in the store`);const d=this.select(Sh(e)),r=this.select(Eh(e)),p=this.select(af(e)),h=this.select(Uo(e));this.dispatch(i(e)),this.dispatch(Ti(l.toUuidArray(r))),this.dispatch(xi(l.toUuidArray(p))),this.dispatch(St(l.toUuidArray(d))),this.dispatch(ut(l.toUuidArray(h)));try{return await this.enqueueRequest({description:m(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(f){throw this.dispatch(a(c)),this.dispatch(Ai(r)),this.dispatch(Ji(p)),this.dispatch(ft(d)),this.dispatch(dt(h)),f}}async bulkDelete(e){const{addMany:i,deleteMany:a}=this.actions,{selectByIds:n}=this.selectors,c=this.select(n(e)),d=this.select(fh(e)),r=this.select(ko(e));this.dispatch(a(e)),this.dispatch(St(l.toUuidArray(d))),this.dispatch(ut(l.toUuidArray(r)));try{return await this.enqueueRequest({description:m(o.DELETE,this.name,!0),method:o.DELETE,url:`${this.url}/bulk/`,payload:{uuids:e},blockers:e,blocks:[]})}catch(p){throw this.dispatch(i(c)),this.dispatch(ft(d)),this.dispatch(dt(r)),p}}async refreshStore(e,i){const{initialize:a}=this.actions,c=(await this.listPaginated({queryParams:{project:e}},i)).flat();return this.dispatch(a(c)),c}}class Lg extends v{name="Issue Type Attachment";url="/issue-type-attachments";actions={addOne:Pp,addMany:bp,setOne:Fp,setMany:_p,updateOne:Mp,updateMany:gp,deleteOne:Rp,deleteMany:wp,initialize:Op};selectors={selectById:vp,selectByIds:Vp};getId(e){return e.uuid}getBlockers(e){return[e.issue_type]}getBlocks(e){return[e.uuid]}buildModel(e){const i=this.select(n=>n.userReducer.currentUser?.id??null),a=new Date().toISOString();return l.uuidObj({...e,created_by:i,submitted_at:a})}buildPayload(e){return{uuid:e.uuid,submitted_at:e.submitted_at,file_name:e.file_name,file_sha1:e.file_sha1,file_extension:e.file_extension,issue_type:e.issue_type}}buildBulkPayload(e){return{uuid:e.uuid,file_name:e.file_name,file_sha1:e.file_sha1,file_extension:e.file_extension,issue_type:e.issue_type}}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({queryParams:{issue_type__organization:e}},i);return this.dispatch(a(n)),n}}class Hg extends v{name="Issue Type Fields Attachment";url="/issue-type-fields-attachments";actions={addOne:Dp,addMany:Cp,setOne:qp,setMany:$p,updateOne:Up,updateMany:kp,deleteOne:Lp,deleteMany:Hp,initialize:jp};selectors={selectById:Np,selectByIds:Kp};getId(e){return e.uuid}getBlockers(e){return[e.fields_revision]}getBlocks(e){return[e.uuid]}buildModel(e){const i=this.select(n=>n.userReducer.currentUser?.id??null),a=new Date().toISOString();return l.uuidObj({...e,created_by:i,submitted_at:a})}buildPayload(e){const{uuid:i,field_identifier:a,fields_revision:n,file_sha1:c,file_name:d,file_extension:r}=e;return{uuid:i,submitted_at:e.submitted_at,field_identifier:a,fields_revision:n,file_sha1:c,file_name:d,file_extension:r}}buildBulkPayload(e){const{uuid:i,field_identifier:a,fields_revision:n,file_sha1:c,file_name:d,file_extension:r}=e;return{uuid:i,field_identifier:a,fields_revision:n,file_sha1:c,file_name:d,file_extension:r}}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({queryParams:{fields_revision__issue_type__organization:e}},i);return this.dispatch(a(n)),n}}class Gg extends g{name="Issue Type Fields";url="/issue-type-fields";actions={addOne:ly,addMany:oy,setOne:hy,setMany:py,updateOne:yy,updateMany:my,deleteOne:fy,deleteMany:Sy,initialize:uy};selectors={selectById:Ty,selectByIds:Iy};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=this.select(h=>h.userReducer.currentUser?.id??null),d=new Date().toISOString(),r=l.uuidObj({...e,created_by:c,submitted_at:d});this.dispatch(i(r));const p=this.enqueueRequest({description:m(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(r),blockers:[r.issue_type],blocks:[r.uuid]});return p.then(h=>{this.dispatch(a(h))}).catch(h=>{throw this.dispatch(n(r.uuid)),h}),[r,p]}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({queryParams:{issue_type__organization:e}},i);return this.dispatch(a(n)),n}}class Ng extends v{name="Issue Type Field Values Attachment";url="/issue-type-field-values-attachments";actions={addOne:Fy,addMany:ji,setOne:_y,setMany:My,updateOne:gy,updateMany:Ry,deleteOne:wy,deleteMany:Di,initialize:by};selectors={selectById:vy,selectByIds:Vy};getId(e){return e.uuid}getBlockers(e){return[e.field_values]}getBlocks(e){return[e.uuid]}buildModel(e){const i=this.select(n=>n.userReducer.currentUser?.id??null),a=new Date().toISOString();return l.uuidObj({...e,created_by:i,submitted_at:a})}buildPayload(e){const{uuid:i,field_identifier:a,field_values:n,file_sha1:c,file_name:d,file_extension:r}=e;return{uuid:i,submitted_at:e.submitted_at,field_identifier:a,field_values:n,file_sha1:c,file_name:d,file_extension:r}}buildBulkPayload(e){const{uuid:i,field_identifier:a,field_values:n,file_sha1:c,file_name:d,file_extension:r}=e;return{uuid:i,field_identifier:a,field_values:n,file_sha1:c,file_name:d,file_extension:r}}async bulkDelete(e){const{deleteMany:i,addMany:a}=this.actions,{selectByIds:n}=this.selectors,c=this.select(n(e));this.dispatch(i(e));try{return await this.enqueueRequest({description:m(o.DELETE,this.name,!0),method:o.DELETE,url:`${this.url}/bulk/`,payload:{uuids:e},blockers:e,blocks:[]})}catch(d){throw this.dispatch(a(c)),d}}async refreshStore(e,i){const{initialize:a}=this.actions,c=(await this.listPaginated({queryParams:{field_values__issue__project:e,latest:!0}},i)).flat();return this.dispatch(a(c)),c}}class Kg extends g{name="Issue Type Field Values";url="/issue-type-field-values";actions={addOne:Zp,addMany:Jp,setOne:Qp,setMany:xp,updateOne:ey,updateMany:ty,deleteOne:sy,deleteMany:iy,initialize:Yp};selectors={selectById:ny,selectByIds:cy};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=this.select(h=>h.userReducer.currentUser?.id??null),d=new Date().toISOString(),r=l.uuidObj({...e,created_by:c,submitted_at:d}),p=this.enqueueRequest({description:m(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(r),blockers:[e.issue,e.fields_revision],blocks:[r.uuid]});return this.dispatch(i(r)),p.then(h=>{this.dispatch(a(h))}).catch(()=>{this.dispatch(n(r.uuid))}),[r,p]}update(e){const{updateOne:i}=this.actions,{selectById:a}=this.selectors,n=this.select(a(e.uuid));if(!n)throw new Error(`Expected IssueTypeFieldValues with uuid ${e.uuid} to exist`);const c={...n,...e};this.dispatch(i(c));const d=this.enqueueRequest({description:m(o.PATCH,this.name,!1),method:o.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[c.uuid,c.fields_revision,c.issue],blocks:[c.uuid]});return d.then(r=>{this.dispatch(i(r))}).catch(()=>{this.dispatch(i(n))}),[c,d]}async delete(e){const{deleteOne:i,addOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`Expected submission with uuid ${e} to exist`);const d=this.select(By(e));this.dispatch(i(e)),this.dispatch(Di(l.toUuidArray(d)));try{return await this.enqueueRequest({description:m(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(r){throw this.dispatch(a(c)),this.dispatch(ji(d)),r}}async refreshStore(e,i){const{initialize:a}=this.actions,c=(await this.listPaginated({queryParams:{issue__project:e,latest:!0}},i)).flat();return this.dispatch(a(c)),c}}class Wg extends g{name="Issue Type Identifier";url="/issue-type-identifiers";actions={addOne:Cy,addMany:qy,setOne:$y,setMany:Uy,updateOne:ky,updateMany:Ly,deleteOne:Hy,deleteMany:Gy,initialize:Dy};selectors={selectById:Ky,selectByIds:Wy};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=this.select(h=>h.userReducer.currentUser?.id??null),d=new Date().toISOString(),r=l.uuidObj({...e,created_by:c,submitted_at:d});this.dispatch(i(r));const p=this.enqueueRequest({description:m(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(r),blockers:[r.issue_type],blocks:[r.uuid]});return p.then(h=>{this.dispatch(a(h))}).catch(()=>{this.dispatch(n(r.uuid))}),[r,p]}update(e){const{updateOne:i}=this.actions,{selectById:a}=this.selectors,n=this.select(a(e.uuid));if(!n)throw new Error(`Expected issue type identifier with uuid ${e.uuid} to exist`);const c={...n,...e};this.dispatch(i(c));const d=this.enqueueRequest({description:m(o.PATCH,this.name,!1),method:o.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return d.then(r=>{this.dispatch(i(r))}).catch(()=>{this.dispatch(i(n))}),[c,d]}async delete(e){const{deleteOne:i,addOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`Expected issue type identifier with uuid ${e} to exist`);this.dispatch(i(e));try{return await this.enqueueRequest({description:m(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(d){throw this.dispatch(a(c)),d}}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({queryParams:{issue_type__organization:e}},i);return this.dispatch(a(n)),n}}class Xg extends g{name="Issue Type Identifier Value";url="/issue-type-identifier-values";actions={addOne:Jy,addMany:Qy,setOne:xy,setMany:em,updateOne:tm,updateMany:sm,deleteOne:im,deleteMany:am,initialize:Zy};selectors={selectById:cm,selectByIds:rm};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=this.select(h=>h.userReducer.currentUser?.id??null),d=new Date().toISOString(),r=l.uuidObj({...e,created_by:c,submitted_at:d});this.dispatch(i(r));const p=this.enqueueRequest({description:m(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(r),blockers:[e.issue,e.issue_type_identifier],blocks:[r.uuid]});return p.then(h=>{this.dispatch(a(h))}).catch(()=>{this.dispatch(n(r.uuid))}),[r,p]}async delete(e){const{deleteOne:i,addOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`Expected issue type identifier value with uuid ${e} to exist`);this.dispatch(i(e));try{return await this.enqueueRequest({description:m(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(d){throw this.dispatch(a(c)),d}}async refreshStore(e,i){const{initialize:a}=this.actions,c=(await this.listPaginated({queryParams:{issue__project:e,latest:!0}},i)).flat();return this.dispatch(a(c)),c}}class Yg extends g{name="Issue Type Priority";url="/issue-type-priorities";actions={addOne:om,addMany:hm,setOne:pm,setMany:ym,updateOne:mm,updateMany:fm,deleteOne:Sm,deleteMany:Am,initialize:lm};selectors={selectById:Hi,selectByIds:Im};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=this.select(h=>h.userReducer.currentUser?.id??null),d=new Date().toISOString(),r=l.uuidObj({...e,created_by:c,submitted_at:d});this.dispatch(i(r));const p=this.enqueueRequest({description:m(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(r),blockers:[e.issue_type],blocks:[r.uuid]});return p.then(h=>{this.dispatch(a(h))}).catch(()=>{this.dispatch(n(r.uuid))}),[r,p]}update(e){const{updateOne:i}=this.actions,{selectById:a}=this.selectors,n=this.select(a(e.uuid));if(!n)throw new Error(`Expected an existing issue type priority with uuid ${e.uuid}`);const c={...n,...e};this.dispatch(i(c));const d=this.enqueueRequest({description:m(o.PATCH,this.name,!1),method:o.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return d.then(r=>{this.dispatch(i(r))}).catch(()=>{this.dispatch(i(n))}),[c,d]}async delete(e){const{deleteOne:i,addOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`No issue type priority with uuid ${e} found in the store`);this.dispatch(i(e));try{return await this.enqueueRequest({description:m(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(d){throw this.dispatch(a(c)),d}}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({queryParams:{issue_type__organization:e}},i);return this.dispatch(a(n)),n}}class Zg extends g{name="Issue Type";url="/issue-types";actions={addOne:Fm,addMany:_m,setOne:Mm,setMany:gm,updateOne:Rm,updateMany:wm,deleteOne:Em,deleteMany:vm,initialize:bm};selectors={selectById:Bm,selectByIds:zm};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=this.select(h=>h.userReducer.currentUser?.id??null),d=new Date().toISOString(),r=l.uuidObj({...e,submitted_at:d,created_by:c});this.dispatch(i(r));const p=this.enqueueRequest({method:o.POST,url:`${this.url}/`,payload:M(r),blockers:[],blocks:[r.uuid]});return p.then(h=>{this.dispatch(a(h))}).catch(()=>{this.dispatch(n(r.uuid))}),[r,p]}update(e){const{updateOne:i}=this.actions,{selectById:a}=this.selectors,n=this.select(a(e.uuid));if(!n)throw new Error(`IssueType with uuid ${e.uuid} does not exist in the store.`);const c={...n,...e};this.dispatch(i(c));const d=this.enqueueRequest({method:o.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return d.then(r=>{this.dispatch(i(r))}).catch(()=>{this.dispatch(i(n))}),[c,d]}async delete(e){const{addOne:i,deleteOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`IssueType with uuid ${e} does not exist in the store.`);const d=this.select(Ap(e));this.dispatch(a(e)),this.dispatch(gi(l.toUuidArray(d)));try{return await this.enqueueRequest({description:m(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(r){throw this.dispatch(i(c)),this.dispatch(Mi(d)),r}}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({queryParams:{organization:e}},i);return this.dispatch(a(n)),n}}class Jg extends g{name="Issue Type Status";url="/issue-type-statuses";actions={addOne:qm,addMany:$m,setOne:Um,setMany:km,updateOne:Lm,updateMany:Hm,deleteOne:Gm,deleteMany:Nm,initialize:Cm};selectors={selectById:Xi,selectByIds:Wm};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=this.select(h=>h.userReducer.currentUser?.id??null),d=new Date().toISOString(),r=l.uuidObj({...e,created_by:c,submitted_at:d});this.dispatch(i(r));const p=this.enqueueRequest({description:m(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(r),blockers:[e.issue_type],blocks:[r.uuid]});return p.then(h=>{this.dispatch(a(h))}).catch(()=>{this.dispatch(n(r.uuid))}),[r,p]}update(e){const{updateOne:i}=this.actions,{selectById:a}=this.selectors,n=this.select(a(e.uuid));if(!n)throw new Error(`Expected an existing issue type status with uuid ${e.uuid}`);const c={...n,...e};this.dispatch(i(c));const d=this.enqueueRequest({description:m(o.PATCH,this.name,!1),method:o.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return d.then(r=>{this.dispatch(i(r))}).catch(()=>{this.dispatch(i(n))}),[c,d]}async delete(e){const{deleteOne:i,addOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`No issue type status with uuid ${e} found in the store`);this.dispatch(i(e));try{return await this.enqueueRequest({description:m(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(d){throw this.dispatch(a(c)),d}}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({queryParams:{issue_type__organization:e}},i);return this.dispatch(a(n)),n}}class Qg extends g{name="Issue Update";url="/issue-updates";actions={addOne:Zi,addMany:Ji,setOne:Jm,setMany:Qm,updateOne:xm,updateMany:ef,deleteOne:Qi,deleteMany:xi,initialize:Zm};selectors={selectById:tf,selectByIds:sf};async refreshStore(e,i){const{initialize:a}=this.actions,c=(await this.listPaginated({queryParams:{issue__project:e}},i)).flat();return this.dispatch(a(c)),c}}const xg=1800;function eR(t){if(!t.access)throw new Error("Missing access token");if(!t.refresh)throw new Error("Missing refresh token");return{accessToken:t.access,refreshToken:t.refresh}}class tR extends wF{_getRenewedTokens=async e=>{const i=this.performRequest({method:o.POST,url:this.refreshTokensUrl,payload:{refresh:e},isAuthNeeded:!1,checkAuth:!1});let a;try{a=await i}catch(n){console.error("Could not renew tokens; clearing auth",n),this.clearAuth();return}if(!a.access)throw new Error("Missing access token");return{accessToken:a.access,refreshToken:a.refresh??this.getRefreshToken()}};clearAuth(){console.debug(this.constructor.name,"clearing auth;"),this.dispatch(Md(!1)),this.clearTokens(),this.dispatch(T()),this.dispatch(T())}async renewTokens(){const e=this.getRefreshToken();if(!e)throw new Error("No refresh token found");console.debug(this.constructor.name,"renewing tokens");try{const i=await this._getRenewedTokens(e);if(!i)return;console.debug("Got renewed tokens"),this.setTokens(i)}catch(i){throw console.error("Could not renew tokens; clearing auth",i),this.clearAuth(),i}}tokenIsExpiringSoon(){const e=this.getAccessToken();if(!e)return!1;const i=Date.now()/1e3;let a;try{a=HF(e).exp??i}catch{a=i}return a-i<xg}getAuthHeader(){return`Bearer ${this.getAccessToken()}`}async prepareAuth(){if(this.tokenIsExpiringSoon()){console.debug(this.constructor.name,"preparing auth");try{await this.renewTokens()}catch(e){return e instanceof z&&this.clearAuth(),e instanceof Error?Promise.reject(e):Promise.reject(new Error((e??l.ERROR_MSG_UNEXPECTED).toString()))}}}async handleUnauthorized(e,i){if(e.url.endsWith("/token/refresh/"))throw this.select(a=>a.authReducer.isLoggedIn)&&console.warn("No signed-in user to sign out."),this.clearAuth(),new z({message:"You have been signed out due to inactivity.",response:i,discard:!0});if(this.select(a=>a.authReducer.isLoggedIn))await this.renewTokens();else throw console.debug("Forbidden; user is not logged in."),new z({message:"Incorrect username or password.",response:i,discard:!0})}async initAuth(e){const i=rt.v4();return console.debug(this.constructor.name,"Initiating auth"),this.performRequest({uuid:i,method:o.POST,url:this.initTokensUrl,payload:e,isAuthNeeded:!1,checkAuth:!1}).then(a=>{this.setTokens(eR(a))})}}class sR extends ct{name="Organization Access";url="/organization-accesses";actions={addOne:Tf,addMany:If,setOne:Of,setMany:Pf,updateOne:bf,updateMany:Ff,deleteOne:_f,deleteMany:Mf,initialize:Af};selectors={selectById:Rf,selectByIds:wf};update(e){const{updateOne:i}=this.actions,{selectById:a}=this.selectors,n=this.select(a(e.uuid)),c={...n,...e};this.dispatch(i(c));const d=this.enqueueRequest({description:m(o.PATCH,this.name,!1),method:o.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return d.then(r=>{this.dispatch(i(r))}).catch(r=>{throw this.dispatch(i(n)),r}),[c,d]}async delete(e){const{deleteOne:i,addOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e)),d=this.select(Jt(c.user));this.dispatch(i(c.uuid)),this.dispatch(aa(c.user));try{return await this.enqueueRequest({description:m(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${c.uuid}/`,blockers:[c.uuid],blocks:[]})}catch(r){throw this.dispatch(a(c)),this.dispatch(ia(d)),r}}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({queryParams:{organization:e}},i);return this.dispatch(a(n)),n}}class iR extends ct{name="Organization";url="/organizations";actions={addOne:Df,addMany:jf,setOne:zf,setMany:Bf,updateOne:qf,updateMany:Cf,deleteOne:$f,deleteMany:Uf,initialize:Vf};selectors={selectById:Hf,selectByIds:Gf};async add(e){const{addOne:i}=this.actions,a=await this.enqueueRequest({description:m(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:e,blockers:[],blocks:[]});return this.dispatch(i(a)),a}async update(e){const{updateOne:i}=this.actions,a=await this.enqueueRequest({description:m(o.PATCH,this.name,!1),method:o.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return this.dispatch(i(a)),a}async invite(e,i){return this.enqueueRequest({description:m(o.POST,this.name,!1),method:o.POST,url:`${this.url}/${e}/invite/${i}/`,blockers:[],blocks:[]})}async refreshStore(e){const{initialize:i}=this.actions,a=await this.list({},e);return this.dispatch(i(a)),a}}class aR extends g{name="Project Access";url="/project-accesses";actions={addOne:eS,addMany:tS,setOne:sS,setMany:iS,updateOne:aS,updateMany:nS,deleteOne:cS,deleteMany:rS,initialize:xf};selectors={selectById:uS,selectByIds:lS};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=l.uuidObj({...e,created_by:this.select(r=>r.userReducer.currentUser?.id??null)});this.dispatch(i(c));const d=this.enqueueRequest({description:m(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(c),blockers:[c.organization_access,c.project],blocks:[c.uuid]});return d.then(r=>{this.dispatch(a(r))}).catch(r=>{throw this.dispatch(n(c.uuid)),r}),[c,d]}bulkAdd(e){const{addMany:i,deleteMany:a,updateMany:n}=this.actions,c=this.select(p=>p.userReducer.currentUser?.id??null),d=e.map(p=>l.uuidObj({...p,created_by:c}));this.dispatch(i(d));const r=this.enqueueRequest({description:m(o.POST,this.name,!0),method:o.POST,url:`${this.url}/bulk/`,payload:{project_accesses:d.map(p=>M(p))},blockers:d.flatMap(p=>[p.project,p.organization_access]),blocks:d.map(p=>p.uuid)});return r.then(p=>{this.dispatch(n(p))}).catch(p=>{throw this.dispatch(a(d.map(h=>h.uuid))),p}),[d,r]}update(e){const{updateOne:i}=this.actions,{selectById:a}=this.selectors,n=this.select(a(e.uuid)),c={...n,...e};this.dispatch(i(c));const d=this.enqueueRequest({description:m(o.PATCH,this.name,!1),method:o.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[]});return d.then(r=>{this.dispatch(i(r))}).catch(r=>{throw this.dispatch(i(n)),r}),[c,d]}async delete(e){const{deleteOne:i,addOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));this.dispatch(i(e));try{return await this.enqueueRequest({description:m(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(d){throw this.dispatch(a(c)),d}}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({queryParams:{project__organization:e}},i);return this.dispatch(a(n)),n}}class nR extends v{name="Project Attachment";url="/project-attachments";actions={addOne:pS,addMany:yS,setOne:mS,setMany:fS,updateOne:SS,updateMany:AS,deleteOne:TS,deleteMany:IS,initialize:hS};selectors={selectById:PS,selectByIds:bS};getId(e){return e.uuid}getBlockers(e){return[e.project]}getBlocks(e){return[e.uuid]}buildModel(e){const i=this.select(n=>n.userReducer.currentUser?.id??null),a=new Date().toISOString();return l.uuidObj({...e,created_by:i,submitted_at:a})}buildPayload(e){return{uuid:e.uuid,submitted_at:e.submitted_at,file_name:e.file_name,file_sha1:e.file_sha1,file_extension:e.file_extension,project:e.project}}buildBulkPayload(e){return{uuid:e.uuid,file_name:e.file_name,file_sha1:e.file_sha1,file_extension:e.file_extension,project:e.project}}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({queryParams:{project__organization:e}},i);return this.dispatch(a(n)),n}}class cR extends g{name="Project Comment";url="/project-comments";actions={addOne:gS,addMany:RS,setOne:wS,setMany:ES,updateOne:vS,updateMany:VS,deleteOne:BS,deleteMany:zS,initialize:MS};selectors={selectById:DS,selectByIds:CS};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=l.uuidObj({...e,created_by:this.select(r=>r.userReducer.currentUser?.id??null),submitted_at:new Date().toISOString()});this.dispatch(i(c));const d=this.enqueueRequest({description:m(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(c),blockers:[c.project],blocks:[c.uuid]});return d.then(r=>{this.dispatch(a(r))}).catch(()=>{this.dispatch(n(c.uuid))}),[c,d]}update(e){const{updateOne:i}=this.actions,{selectById:a}=this.selectors,n=this.select(a(e.uuid));if(!n)throw new Error(`Project comment with uuid ${e.uuid} not found in store`);const c={...n,...e};this.dispatch(i(c));const d=this.enqueueRequest({description:m(o.PATCH,this.name,!1),method:o.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return d.then(r=>{this.dispatch(i(r))}).catch(()=>{this.dispatch(i(n))}),[c,d]}async delete(e){const{deleteOne:i,addOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`Project comment with uuid ${e} not found in store`);this.dispatch(i(e));try{return await this.enqueueRequest({description:m(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(d){throw this.dispatch(a(c)),d}}async refreshStore(e,i){const{initialize:a}=this.actions,c=(await this.listPaginated({queryParams:{project:e}},i)).flat();return this.dispatch(a(c)),c}}class rR extends v{name="Project File";url="/project-files";actions={addOne:HS,addMany:GS,setOne:kS,setMany:LS,updateOne:NS,updateMany:KS,deleteOne:WS,deleteMany:XS,initialize:US};selectors={selectById:JS,selectByIds:QS};getId(e){return e.uuid}getBlockers(e){return[e.project]}getBlocks(e){return[e.uuid]}buildModel(e){const i=this.select(n=>n.userReducer.currentUser?.id??null),a=new Date().toISOString();return l.uuidObj({...e,created_by:i,submitted_at:a})}buildPayload(e){return{uuid:e.uuid,submitted_at:e.submitted_at,file_sha1:e.file_sha1,file_name:e.file_name,file_extension:e.file_extension,project:e.project,z_index:e.z_index,bounds:e.bounds}}buildBulkPayload(e){return{uuid:e.uuid,file_sha1:e.file_sha1,file_name:e.file_name,file_extension:e.file_extension,project:e.project,z_index:e.z_index,bounds:e.bounds}}update(e){const{updateOne:i}=this.actions,{selectById:a}=this.selectors,n=this.select(a(e.uuid));if(!n)throw new Error(`${this.name} with uuid ${e.uuid} does not exist in the store`);const c={...n,...e};this.dispatch(i(c));const d=this.enqueueRequest({description:m(o.PATCH,this.name,!1),method:o.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blocks:[e.uuid],blockers:[e.uuid]});return d.then(r=>{this.dispatch(i(r))}).catch(()=>{this.dispatch(i(n))}),[c,d]}async refreshStore(e,i){const{initialize:a}=this.actions,c=(await this.listPaginated({queryParams:{project:e}},i)).flat();return this.dispatch(a(c)),c}}class dR extends ct{name="Project";url="/projects";actions={addOne:nA,addMany:aA,setOne:iA,setMany:sA,updateOne:rA,updateMany:cA,deleteOne:dA,deleteMany:uA,initialize:tA};selectors={selectById:hA,selectByIds:pA};async add(e){const{addOne:i}=this.actions,a=await this.performRequest({method:o.POST,url:`${this.url}/`,payload:M(e)});return this.dispatch(i(a)),a}async update(e){const{updateOne:i}=this.actions,a=await this.performRequest({method:o.PATCH,url:`${this.url}/${e.uuid}/`,payload:M(e)});return this.dispatch(i(a)),a}async delete(e){const{deleteOne:i}=this.actions,a=await this.enqueueRequest({description:m(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]});return this.dispatch(i(e)),a}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({queryParams:{organization:e}},i);return this.dispatch(a(n)),n}}class uR extends ct{name="Report";url="/reports";actions={addOne:bb,addMany:Fb,setOne:_b,setMany:Mb,updateOne:gb,updateMany:Rb,deleteOne:wb,deleteMany:Eb,initialize:Pb};selectors={selectById:Bb,selectByIds:zb};async getPresignedUrl(e,i){return this.performRequest({url:`${this.url}/${e}/presigned-url/`,method:o.GET},i)}async refreshStore(e,i){const n=(await this.listPaginated({queryParams:{organization:e}},i)).flat();return this.dispatch(this.actions.initialize(n)),n}}class lR extends g{name="Procedure";url="/procedures";actions={addOne:EA,addMany:Tt,setOne:vA,setMany:VA,updateOne:BA,updateMany:zA,deleteOne:jA,deleteMany:It,initialize:wA};selectors={selectById:qA,selectByIds:$A};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=l.uuidObj({...e,created_by:this.select(r=>r.userReducer.currentUser?.id??null),submitted_at:new Date().toISOString()});this.dispatch(i(c));const d=this.enqueueRequest({description:m(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(c),blockers:[c.procedure_type,c.project,c.asset,...c.procedure_initiative?[c.procedure_initiative]:[]],blocks:[c.uuid]});return d.then(r=>{this.dispatch(a(r))}).catch(()=>{this.dispatch(n(c.uuid))}),[c,d]}bulkAdd(e,i){const{store:a}=this.client,{addMany:n,updateMany:c,deleteMany:d}=this.actions,r=new Date().toISOString(),p=a.getState().userReducer.currentUser?.id??null,h=[],f=l.chunkArray(e,Math.min(i??e.length,C)),A=[];for(const S of f){const P=[],_=[],F=[];for(const V of S){const R=l.uuidObj({...V,submitted_at:r,created_by:p});h.push(R),P.push(M(R)),_.push(R.procedure_type,R.project,R.asset,...R.procedure_initiative?[R.procedure_initiative]:[]),F.push(R.uuid)}const w={payload:{submitted_at:r,payloads:P},blockers:_,blocks:F};A.push(w)}this.dispatch(n(h));const I=A.map(S=>{const{payload:P,blocks:_,blockers:F}=S;return this.enqueueRequest({description:m(o.POST,this.name,!0),method:o.POST,url:`${this.url}/bulk/`,payload:P,blockers:F,blocks:_})});return Promise.all(I).then(S=>{this.dispatch(c(S.flat()))}).catch(()=>{this.dispatch(d(l.toUuidArray(h)))}),[h,Promise.all(I).then(S=>S.flat())]}update(e){const{updateOne:i}=this.actions,{selectById:a}=this.selectors,n=this.select(a(e.uuid));if(!n)throw new Error(`Expected procedure with uuid ${e.uuid} to exist`);const c={...n,...e};this.dispatch(i(c));const d=this.enqueueRequest({description:m(o.PATCH,this.name,!1),method:o.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[n.uuid],blocks:[n.uuid]});return d.then(r=>{this.dispatch(i(r))}).catch(()=>{this.dispatch(i(n))}),[c,d]}async delete(e){const{deleteOne:i,addOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`Expected procedure with uuid ${e} to exist`);this.dispatch(i(e));try{return await this.enqueueRequest({description:m(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(d){throw this.dispatch(a(c)),d}}async bulkDelete(e){const{addMany:i,deleteMany:a}=this.actions,{selectByIds:n}=this.selectors,c=this.select(n(e));this.dispatch(a(l.toUuidArray(c)));try{return await this.enqueueRequest({description:m(o.DELETE,this.name,!0),method:o.DELETE,url:`${this.url}/bulk/`,payload:{uuids:e},blockers:e,blocks:[]})}catch(d){throw this.dispatch(i(c)),d}}async refreshStore(e,i){const{initialize:a}=this.actions,c=(await this.listPaginated({queryParams:{project:e}},i)).flat();return this.dispatch(a(c)),c}}class oR extends g{name="Procedure Step Assignee";url="/procedure-step-assignees";actions={addOne:KA,addMany:WA,setOne:XA,setMany:YA,updateOne:ZA,updateMany:JA,deleteOne:QA,deleteMany:xA,initialize:NA};selectors={selectById:tT,selectByIds:sT};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=l.uuidObj({...e,created_by:this.select(r=>r.userReducer.currentUser?.id??null),submitted_at:new Date().toISOString()});this.dispatch(i(c));const d=this.enqueueRequest({description:m(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(c),blockers:[c.procedure,c.procedure_step],blocks:[c.uuid]});return d.then(r=>{this.dispatch(a(r))}).catch(()=>{this.dispatch(n(c.uuid))}),[c,d]}bulkAdd(e){const{addMany:i,updateMany:a,deleteMany:n}=this.actions,c=this.select(h=>h.userReducer.currentUser?.id??null),d=new Date().toISOString(),r=e.map(h=>l.uuidObj({...h,created_by:c,submitted_at:d}));this.dispatch(i(r));const p=this.enqueueRequest({description:m(o.POST,this.name,!0),method:o.POST,url:`${this.url}/bulk/`,payload:{procedure_step_assignees:r.map(h=>M(h)),submitted_at:d},blockers:r.flatMap(h=>[h.procedure,h.procedure_step]),blocks:l.toUuidArray(r)});return p.then(h=>{this.dispatch(a(h))}).catch(()=>{this.dispatch(n(l.toUuidArray(r)))}),[r,p]}async delete(e){const{deleteOne:i,addOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`Expected procedure step assignee with uuid ${e} to exist`);this.dispatch(i(e));try{return await this.enqueueRequest({description:m(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(d){throw this.dispatch(a(c)),d}}async bulkDelete(e){const{deleteMany:i,addMany:a}=this.actions,{selectByIds:n}=this.selectors,c=this.select(n(e));this.dispatch(i(e));try{return await this.enqueueRequest({description:m(o.DELETE,this.name,!0),method:o.DELETE,url:`${this.url}/bulk/`,payload:{uuids:e},blockers:e,blocks:[]})}catch(d){throw this.dispatch(a(c)),d}}async refreshStore(e,i){const{initialize:a}=this.actions,c=(await this.listPaginated({queryParams:{procedure__project:e}},i)).flat();return this.dispatch(a(c)),c}}class hR extends g{name="Procedure Step Comment";url="/procedure-step-comments";actions={addOne:cT,addMany:rT,setOne:dT,setMany:uT,updateOne:lT,updateMany:oT,deleteOne:hT,deleteMany:pT,initialize:nT};selectors={selectById:mT,selectByIds:fT};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=l.uuidObj({...e,created_by:this.select(r=>r.userReducer.currentUser?.id??null),submitted_at:new Date().toISOString()});this.dispatch(i(c));const d=this.enqueueRequest({description:m(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(c),blockers:[c.procedure,c.procedure_step],blocks:[c.uuid]});return d.then(r=>{this.dispatch(a(r))}).catch(()=>{this.dispatch(n(c.uuid))}),[c,d]}update(e){const{updateOne:i}=this.actions,{selectById:a}=this.selectors,n=this.select(a(e.uuid));if(!n)throw new Error(`Procedure step comment with uuid ${e.uuid} not found in store`);const c={...n,...e};this.dispatch(i(c));const d=this.enqueueRequest({description:m(o.PATCH,this.name,!1),method:o.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return d.then(r=>{this.dispatch(i(r))}).catch(()=>{this.dispatch(i(n))}),[c,d]}async delete(e){const{deleteOne:i,addOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`Procedure step comment with uuid ${e} not found in store`);this.dispatch(i(e));try{return await this.enqueueRequest({description:m(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(d){throw this.dispatch(a(c)),d}}async refreshStore(e,i){const{initialize:a}=this.actions,c=(await this.listPaginated({queryParams:{procedure__project:e}},i)).flat();return this.dispatch(a(c)),c}}class pR extends g{name="Procedure Step Default Assignee";url="/procedure-step-default-assignees";actions={addOne:IT,addMany:OT,setOne:PT,setMany:bT,updateOne:FT,updateMany:_T,deleteOne:MT,deleteMany:gT,initialize:TT};selectors={selectById:wT,selectByIds:ET};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=l.uuidObj({...e,created_by:this.select(r=>r.userReducer.currentUser?.id??null),submitted_at:new Date().toISOString()});this.dispatch(i(c));const d=this.enqueueRequest({description:m(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(c),blockers:[c.procedure_step],blocks:[c.uuid]});return d.then(r=>{this.dispatch(a(r))}).catch(()=>{this.dispatch(n(c.uuid))}),[c,d]}async delete(e){const{deleteOne:i,addOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`Expected procedure step default assignee with uuid ${e} to exist`);this.dispatch(i(e));try{return await this.enqueueRequest({description:m(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(d){throw this.dispatch(a(c)),d}}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({queryParams:{procedure_step__procedure_type__organization:e}},i);return this.dispatch(a(n)),n}}class yR extends g{name="Procedure Step Default Reviewer";url="/procedure-step-default-reviewers";actions={addOne:zT,addMany:jT,setOne:DT,setMany:CT,updateOne:qT,updateMany:$T,deleteOne:UT,deleteMany:kT,initialize:BT};selectors={selectById:HT,selectByIds:GT};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=l.uuidObj({...e,created_by:this.select(r=>r.userReducer.currentUser?.id??null),submitted_at:new Date().toISOString()});this.dispatch(i(c));const d=this.enqueueRequest({description:m(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(c),blockers:[c.procedure_step],blocks:[c.uuid]});return d.then(r=>{this.dispatch(a(r))}).catch(()=>{this.dispatch(n(c.uuid))}),[c,d]}async delete(e){const{deleteOne:i,addOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`Expected procedure step default reviewer with uuid ${e} to exist`);this.dispatch(i(e));try{return await this.enqueueRequest({description:m(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(d){throw this.dispatch(a(c)),d}}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({queryParams:{procedure_step__procedure_type__organization:e}},i);return this.dispatch(a(n)),n}}class mR extends ct{name="Procedure Step Event";url="/procedure-step-events";actions={addOne:XT,addMany:YT,setOne:ZT,setMany:JT,updateOne:QT,updateMany:xT,deleteOne:eI,deleteMany:tI,initialize:WT};selectors={selectById:iI,selectByIds:aI};async refreshStore(e,i){const{initialize:a}=this.actions,c=(await this.listPaginated({queryParams:{procedure__project:e}},i)).flat();return this.dispatch(a(c)),c}}class fR extends v{name="Procedure Step Fields Attachment";url="/procedure-step-fields-attachments";actions={addOne:dI,addMany:Ma,setOne:uI,setMany:lI,updateOne:oI,updateMany:hI,deleteOne:pI,deleteMany:ga,initialize:rI};selectors={selectById:fI,selectByIds:SI};getId(e){return e.uuid}getBlockers(e){return[e.fields_revision]}getBlocks(e){return[e.uuid]}buildModel(e){return l.uuidObj({...e,created_by:this.select(i=>i.userReducer.currentUser?.id??null),submitted_at:new Date().toISOString()})}buildPayload(e){const{uuid:i,field_identifier:a,fields_revision:n,file_sha1:c,file_name:d,file_extension:r}=e;return{uuid:i,submitted_at:e.submitted_at,field_identifier:a,fields_revision:n,file_sha1:c,file_name:d,file_extension:r}}buildBulkPayload(e){const{uuid:i,field_identifier:a,fields_revision:n,file_sha1:c,file_name:d,file_extension:r}=e;return{uuid:i,field_identifier:a,fields_revision:n,file_sha1:c,file_name:d,file_extension:r}}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({queryParams:{fields_revision__procedure_step__procedure_type__organization:e}},i);return this.dispatch(a(n)),n}}class SR extends g{name="Procedure Step Fields";url="/procedure-step-fields";actions={addOne:OI,addMany:PI,setOne:bI,setMany:FI,updateOne:_I,updateMany:MI,deleteOne:gI,deleteMany:RI,initialize:II};selectors={selectById:wI,selectByIds:EI};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=l.uuidObj({...e,created_by:this.select(r=>r.userReducer.currentUser?.id??null),submitted_at:new Date().toISOString()});this.dispatch(i(c));const d=this.enqueueRequest({description:m(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(c),blockers:[c.procedure_step],blocks:[c.uuid]});return d.then(r=>{this.dispatch(a(r))}).catch(()=>{this.dispatch(n(c.uuid))}),[c,d]}update(e){const{updateOne:i}=this.actions,{selectById:a}=this.selectors,n=this.select(a(e.uuid));if(!n)throw new Error(`No procedure step fields with uuid ${e.uuid} found in the store`);const c={...n,...e};this.dispatch(i(c));const d=this.enqueueRequest({description:m(o.PATCH,this.name,!1),method:o.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return d.then(r=>{this.dispatch(i(r))}).catch(()=>{this.dispatch(i(n))}),[c,d]}async delete(e){const{deleteOne:i,addOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`Expected procedure step fields with uuid ${e} to exist`);const d=this.select(mI(e));this.dispatch(i(e)),this.dispatch(ga(l.toUuidArray(d)));try{return await this.enqueueRequest({description:m(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(r){throw this.dispatch(a(c)),this.dispatch(Ma(d)),r}}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({queryParams:{procedure_step__procedure_type__organization:e}},i);return this.dispatch(a(n)),n}}class AR extends v{name="Procedure Step Field Values Attachment";url="/procedure-step-field-values-attachments";actions={addOne:zI,addMany:Va,setOne:jI,setMany:DI,updateOne:CI,updateMany:qI,deleteOne:$I,deleteMany:Ba,initialize:BI};selectors={selectById:kI,selectByIds:LI};getId(e){return e.uuid}getBlockers(e){return[e.field_values]}getBlocks(e){return[e.uuid]}buildModel(e){const i=this.select(n=>n.userReducer.currentUser?.id??null),a=new Date().toISOString();return l.uuidObj({...e,created_by:i,submitted_at:a})}buildPayload(e){const{uuid:i,field_identifier:a,field_values:n,file_sha1:c,file_name:d,file_extension:r}=e;return{uuid:i,submitted_at:e.submitted_at,field_identifier:a,field_values:n,file_sha1:c,file_name:d,file_extension:r}}buildBulkPayload(e){const{uuid:i,field_identifier:a,field_values:n,file_sha1:c,file_name:d,file_extension:r}=e;return{uuid:i,field_identifier:a,field_values:n,file_sha1:c,file_name:d,file_extension:r}}async bulkDelete(e){const{deleteMany:i,addMany:a}=this.actions,{selectByIds:n}=this.selectors,c=this.select(n(e));this.dispatch(i(e));try{return await this.enqueueRequest({description:m(o.DELETE,this.name,!0),method:o.DELETE,url:`${this.url}/bulk/`,payload:{uuids:e},blockers:e,blocks:[]})}catch(d){throw this.dispatch(a(c)),d}}async refreshStore(e,i){const{initialize:a}=this.actions,c=(await this.listPaginated({queryParams:{field_values__procedure__project:e,latest:!0}},i)).flat();return this.dispatch(a(c)),c}}class TR extends g{name="Procedure Step Field Values Review";url="/procedure-step-field-values-reviews";actions={addOne:rO,addMany:Ca,setOne:dO,setMany:uO,updateOne:lO,updateMany:oO,deleteOne:hO,deleteMany:qa,initialize:cO};selectors={selectById:yO,selectByIds:mO};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=l.uuidObj({...e,created_by:this.select(r=>r.userReducer.currentUser?.id??null),submitted_at:new Date().toISOString()});this.dispatch(i(c));const d=this.enqueueRequest({description:m(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(c),blockers:[c.field_values],blocks:[c.uuid]});return d.then(r=>{this.dispatch(a(r))}).catch(()=>{this.dispatch(n(c.uuid))}),[c,d]}update(e){const{updateOne:i}=this.actions,{selectById:a}=this.selectors,n=this.select(a(e.uuid));if(!n)throw new Error(`Procedure step field values review with uuid ${e.uuid} not found in store`);const c={...n,...e};this.dispatch(i(c));const d=this.enqueueRequest({description:m(o.PATCH,this.name,!1),method:o.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return d.then(r=>{this.dispatch(i(r))}).catch(()=>{this.dispatch(i(n))}),[c,d]}async delete(e){const{deleteOne:i,addOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`Procedure step field values review with uuid ${e} not found in store`);this.dispatch(i(e));try{return await this.enqueueRequest({description:m(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(d){throw this.dispatch(a(c)),d}}async refreshStore(e,i){const{initialize:a}=this.actions,c=(await this.listPaginated({queryParams:{field_values__procedure__project:e}},i)).flat();return this.dispatch(a(c)),c}}class IR extends g{name="Procedure Step Field Values";url="/procedure-step-field-values";actions={addOne:WI,addMany:XI,setOne:YI,setMany:ZI,updateOne:JI,updateMany:QI,deleteOne:xI,deleteMany:eO,initialize:KI};selectors={selectById:iO,selectByIds:aO};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=this.select(h=>h.userReducer.currentUser?.id??null),d=new Date().toISOString(),r=l.uuidObj({...e,created_by:c,submitted_at:d}),p=this.enqueueRequest({description:m(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(r),blockers:[e.procedure,e.procedure_step,e.fields_revision],blocks:[r.uuid]});return this.dispatch(i(r)),p.then(h=>{this.dispatch(a(h))}).catch(()=>{this.dispatch(n(r.uuid))}),[r,p]}bulkAdd(e,i){const{addMany:a,updateMany:n,deleteMany:c}=this.actions,d=new Date().toISOString(),r=this.select(I=>I.userReducer.currentUser?.id??null),p=[],h=l.chunkArray(e,Math.min(i??e.length,C)),f=[];for(const I of h){const S=[],P=[],_=[];for(const F of I){const w=l.uuidObj({...F,values:F.values,created_by:r,submitted_at:d});p.push(w),S.push(M(w)),P.push(w.procedure_step,w.procedure,w.fields_revision),_.push(w.uuid)}f.push({payload:{payloads:S,submitted_at:d},blockers:P,blocks:_})}this.dispatch(a(p));const A=f.map(I=>{const{payload:S,blocks:P,blockers:_}=I;return this.enqueueRequest({description:m(o.POST,this.name,!0),method:o.POST,url:`${this.url}/bulk/`,payload:S,blockers:_,blocks:P})});return Promise.all(A).then(I=>{this.dispatch(n(I.flat()))}).catch(()=>{this.dispatch(c(l.toUuidArray(p)))}),[p,Promise.all(A).then(I=>I.flat())]}update(e){const{updateOne:i}=this.actions,{selectById:a}=this.selectors,n=this.select(a(e.uuid));if(!n)throw new Error(`Expected ProcedureStepFieldValues with uuid ${e.uuid} to exist`);const c={...n,...e};this.dispatch(i(c));const d=this.enqueueRequest({description:m(o.PATCH,this.name,!1),method:o.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[c.uuid,c.procedure,c.procedure_step,c.fields_revision],blocks:[c.uuid]});return d.then(r=>{this.dispatch(i(r))}).catch(()=>{this.dispatch(i(n))}),[c,d]}async delete(e){const{deleteOne:i,addOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`Expected ProcedureStepFieldValues with uuid ${e} to exist`);const d=this.select(HI(e)),r=this.select(fO(e));this.dispatch(i(e)),this.dispatch(Ba(l.toUuidArray(d))),this.dispatch(qa(l.toUuidArray(r)));try{return await this.enqueueRequest({description:m(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(p){throw this.dispatch(a(c)),this.dispatch(Va(d)),this.dispatch(Ca(r)),p}}async refreshStore(e,i){const{initialize:a}=this.actions,c=(await this.listPaginated({queryParams:{procedure__project:e}},i)).flat();return this.dispatch(a(c)),c}}class OR extends g{name="Procedure Step Reviewer";url="/procedure-step-reviewers";actions={addOne:IO,addMany:OO,setOne:PO,setMany:bO,updateOne:FO,updateMany:_O,deleteOne:MO,deleteMany:gO,initialize:TO};selectors={selectById:wO,selectByIds:EO};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=l.uuidObj({...e,created_by:this.select(r=>r.userReducer.currentUser?.id??null),submitted_at:new Date().toISOString()});this.dispatch(i(c));const d=this.enqueueRequest({description:m(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(c),blockers:[c.procedure,c.procedure_step],blocks:[c.uuid]});return d.then(r=>{this.dispatch(a(r))}).catch(()=>{this.dispatch(n(c.uuid))}),[c,d]}bulkAdd(e){const{addMany:i,updateMany:a,deleteMany:n}=this.actions,c=this.select(h=>h.userReducer.currentUser?.id??null),d=new Date().toISOString(),r=e.map(h=>l.uuidObj({...h,created_by:c,submitted_at:d}));this.dispatch(i(r));const p=this.enqueueRequest({description:m(o.POST,this.name,!0),method:o.POST,url:`${this.url}/bulk/`,payload:{procedure_step_reviewers:r.map(h=>M(h)),submitted_at:d},blockers:r.flatMap(h=>[h.procedure,h.procedure_step]),blocks:r.map(h=>h.uuid)});return p.then(h=>{this.dispatch(a(h))}).catch(()=>{this.dispatch(n(l.toUuidArray(r)))}),[r,p]}async delete(e){const{deleteOne:i,addOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`Expected procedure step reviewer with uuid ${e} to exist`);this.dispatch(i(e));try{return await this.enqueueRequest({description:m(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(d){throw this.dispatch(a(c)),d}}async bulkDelete(e){const{deleteMany:i,addMany:a}=this.actions,{selectByIds:n}=this.selectors,c=this.select(n(e));this.dispatch(i(e));try{return await this.enqueueRequest({description:m(o.DELETE,this.name,!0),method:o.DELETE,url:`${this.url}/bulk/`,payload:{uuids:e},blockers:e,blocks:[]})}catch(d){throw this.dispatch(a(c)),d}}async refreshStore(e,i){const{initialize:a}=this.actions,c=(await this.listPaginated({queryParams:{procedure__project:e}},i)).flat();return this.dispatch(a(c)),c}}class PR extends g{name="Procedure Initiative";url="/procedure-initiatives";actions={addOne:fA,addMany:SA,setOne:AA,setMany:TA,updateOne:IA,updateMany:OA,deleteOne:PA,deleteMany:bA,initialize:mA};selectors={selectById:MA,selectByIds:gA};add(e){const{store:i}=this.client,{addOne:a,updateOne:n,deleteOne:c}=this.actions,d=l.uuidObj({...e,created_by:i.getState().userReducer.currentUser?.id??null,submitted_at:new Date().toISOString()});this.dispatch(a(d));const r=this.enqueueRequest({description:m(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(d),blockers:[d.procedure_type,d.project],blocks:[d.uuid]});return r.then(p=>{this.dispatch(n(p))}).catch(()=>{this.dispatch(c(d.uuid))}),[d,r]}update(e){const{updateOne:i}=this.actions,{selectById:a}=this.selectors,n=this.select(a(e.uuid));if(!n)throw new Error(`Expected ${this.name} with uuid ${e.uuid} to exist`);const c={...n,...e};this.dispatch(i(c));const d=this.enqueueRequest({description:m(o.PATCH,this.name,!1),method:o.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[n.uuid],blocks:[n.uuid]});return d.then(r=>{this.dispatch(i(r))}).catch(()=>{this.dispatch(i(n))}),[c,d]}async delete(e){const{deleteOne:i,addOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`Expected ${this.name} with uuid ${e} to exist`);const d=this.select(HA(e));this.dispatch(i(e)),this.dispatch(It(l.toUuidArray(d)));try{return await this.enqueueRequest({description:m(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(r){throw this.dispatch(a(c)),this.dispatch(Tt(d)),r}}async refreshStore(e,i){const{initialize:a}=this.actions,c=(await this.listPaginated({queryParams:{project:e}},i)).flat();return this.dispatch(a(c)),c}}class bR extends g{name="Procedure Step";url="/procedure-steps";actions={addOne:DO,addMany:CO,setOne:zO,setMany:jO,updateOne:qO,updateMany:$O,deleteOne:UO,deleteMany:kO,initialize:BO};selectors={selectById:HO,selectByIds:GO};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=l.uuidObj({...e,created_by:this.select(r=>r.userReducer.currentUser?.id??null),submitted_at:new Date().toISOString()});this.dispatch(i(c));const d=this.enqueueRequest({description:m(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(c),blockers:[c.procedure_type],blocks:[c.uuid]});return d.then(r=>{this.dispatch(a(r))}).catch(()=>{this.dispatch(n(c.uuid))}),[c,d]}update(e){const{updateOne:i}=this.actions,{selectById:a}=this.selectors,n=this.select(a(e.uuid));if(!n)throw new Error(`No procedure step with uuid ${e.uuid} found in the store`);const c={...n,...e};this.dispatch(i(c));const d=this.enqueueRequest({description:m(o.PATCH,this.name,!1),method:o.PATCH,url:`${this.url}/${n.uuid}/`,payload:e,blockers:[n.uuid],blocks:[n.uuid]});return d.then(r=>{this.dispatch(i(r))}).catch(()=>{this.dispatch(i(n))}),[c,d]}async delete(e){const{addOne:i,deleteOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`No procedure step with uuid ${e} found in the store`);this.dispatch(a(e));try{return await this.enqueueRequest({description:m(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(d){throw this.dispatch(i(c)),d}}bulkUpdate(e,i){const{updateMany:a}=this.actions,{selectByIds:n}=this.selectors,c=l.toUuidArray(e);if(new Set(c).size!==e.length)throw new Error("payloads contains duplicate uuids.");const d=this.select(n(c));if(c.length!=d.length)throw new Error(`Attempting to bulk update ${c.length-d.length} ${this.name} that dont exist in the store`);const r=d.toSorted((S,P)=>l.uuidSortFn(S.uuid,P.uuid)),p=e.toSorted((S,P)=>l.uuidSortFn(S.uuid,P.uuid)),h=[];for(let S=0;S<c.length;S++)h.push({...r[S],...p[S]});this.dispatch(a(h));const f=l.chunkArray(e,Math.min(i??e.length,C)),A=[];let I=null;for(const S of f){const P=rt.v4(),_=l.toUuidArray(S),F=this.enqueueRequest({description:m(o.PATCH,this.name,!0),method:o.PATCH,url:`${this.url}/bulk/`,payload:{payloads:S},blockers:(I?[I]:[]).concat(_),blocks:[P].concat(_)});A.push(F),I=P}return Promise.all(A).then(S=>{this.dispatch(a(S.flat()))}).catch(()=>{this.dispatch(a(d))}),[h,A]}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({queryParams:{procedure_type__organization:e}},i);return this.dispatch(a(n)),n}}class FR extends v{name="Procedure Type Attachment";url="/procedure-type-attachments";actions={addOne:WO,addMany:XO,setOne:YO,setMany:ZO,updateOne:JO,updateMany:QO,deleteOne:xO,deleteMany:eP,initialize:KO};selectors={selectById:iP,selectByIds:aP};getId(e){return e.uuid}getBlockers(e){return[e.procedure_type]}getBlocks(e){return[e.uuid]}buildModel(e){const i=this.select(n=>n.userReducer.currentUser?.id??null),a=new Date().toISOString();return l.uuidObj({...e,created_by:i,submitted_at:a})}buildPayload(e){return{uuid:e.uuid,submitted_at:e.submitted_at,file_name:e.file_name,file_sha1:e.file_sha1,file_extension:e.file_extension,procedure_type:e.procedure_type}}buildBulkPayload(e){return{uuid:e.uuid,file_name:e.file_name,file_sha1:e.file_sha1,file_extension:e.file_extension,procedure_type:e.procedure_type}}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({queryParams:{procedure_type__organization:e}},i);return this.dispatch(a(n)),n}}class _R extends v{name="Procedure Type Fields Attachment";url="/procedure-type-fields-attachments";actions={addOne:rP,addMany:dP,setOne:uP,setMany:lP,updateOne:oP,updateMany:hP,deleteOne:pP,deleteMany:yP,initialize:cP};selectors={selectById:SP,selectByIds:AP};getId(e){return e.uuid}getBlockers(e){return[e.fields_revision]}getBlocks(e){return[e.uuid]}buildModel(e){const i=this.select(n=>n.userReducer.currentUser?.id??null),a=new Date().toISOString();return l.uuidObj({...e,created_by:i,submitted_at:a})}buildPayload(e){const{uuid:i,field_identifier:a,fields_revision:n,file_sha1:c,file_name:d,file_extension:r}=e;return{uuid:i,submitted_at:e.submitted_at,field_identifier:a,fields_revision:n,file_sha1:c,file_name:d,file_extension:r}}buildBulkPayload(e){const{uuid:i,field_identifier:a,fields_revision:n,file_sha1:c,file_name:d,file_extension:r}=e;return{uuid:i,field_identifier:a,fields_revision:n,file_sha1:c,file_name:d,file_extension:r}}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({queryParams:{fields_revision__procedure_type__organization:e}},i);return this.dispatch(a(n)),n}}class MR extends g{name="Procedure Type Fields";url="/procedure-type-fields";actions={addOne:OP,addMany:PP,setOne:bP,setMany:FP,updateOne:_P,updateMany:MP,deleteOne:gP,deleteMany:RP,initialize:IP};selectors={selectById:vP,selectByIds:VP};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=this.select(h=>h.userReducer.currentUser?.id??null),d=new Date().toISOString(),r=l.uuidObj({...e,created_by:c,submitted_at:d});this.dispatch(i(r));const p=this.enqueueRequest({description:m(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(r),blockers:[r.procedure_type],blocks:[r.uuid]});return p.then(h=>{this.dispatch(a(h))}).catch(h=>{throw this.dispatch(n(r.uuid)),h}),[r,p]}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({queryParams:{procedure_type__organization:e}},i);return this.dispatch(a(n)),n}}class gR extends v{name="Procedure Field Values Attachment";url="/procedure-field-values-attachments";actions={addOne:jP,addMany:Ya,setOne:DP,setMany:CP,updateOne:qP,updateMany:$P,deleteOne:UP,deleteMany:Za,initialize:zP};selectors={selectById:HP,selectByIds:GP};getId(e){return e.uuid}getBlockers(e){return[e.field_values]}getBlocks(e){return[e.uuid]}buildModel(e){const i=this.select(n=>n.userReducer.currentUser?.id??null),a=new Date().toISOString();return l.uuidObj({...e,created_by:i,submitted_at:a})}buildPayload(e){const{uuid:i,field_identifier:a,field_values:n,file_sha1:c,file_name:d,file_extension:r}=e;return{uuid:i,submitted_at:e.submitted_at,field_identifier:a,field_values:n,file_sha1:c,file_name:d,file_extension:r}}buildBulkPayload(e){const{uuid:i,field_identifier:a,field_values:n,file_sha1:c,file_name:d,file_extension:r}=e;return{uuid:i,field_identifier:a,field_values:n,file_sha1:c,file_name:d,file_extension:r}}async bulkDelete(e){const{deleteMany:i,addMany:a}=this.actions,{selectByIds:n}=this.selectors,c=this.select(n(e));this.dispatch(i(e));try{return await this.enqueueRequest({description:m(o.DELETE,this.name,!0),method:o.DELETE,url:`${this.url}/bulk/`,payload:{uuids:e},blockers:e,blocks:[]})}catch(d){throw this.dispatch(a(c)),d}}async refreshStore(e,i){const{initialize:a}=this.actions,c=(await this.listPaginated({queryParams:{field_values__procedure__project:e,latest:!0}},i)).flat();return this.dispatch(a(c)),c}}class RR extends g{name="Procedure Field Values";url="/procedure-field-values";actions={addOne:XP,addMany:YP,setOne:ZP,setMany:JP,updateOne:QP,updateMany:xP,deleteOne:eb,deleteMany:tb,initialize:WP};selectors={selectById:ab,selectByIds:nb};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=this.select(h=>h.userReducer.currentUser?.id??null),d=new Date().toISOString(),r=l.uuidObj({...e,created_by:c,submitted_at:d}),p=this.enqueueRequest({description:m(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(r),blockers:[e.fields_revision,e.procedure],blocks:[r.uuid]});return this.dispatch(i(r)),p.then(h=>{this.dispatch(a(h))}).catch(()=>{this.dispatch(n(r.uuid))}),[r,p]}bulkAdd(e,i){const{addMany:a,updateMany:n,deleteMany:c}=this.actions,d=new Date().toISOString(),r=this.select(I=>I.userReducer.currentUser?.id??null),p=[],h=l.chunkArray(e,Math.min(i??e.length,C)),f=[];for(const I of h){const S=[],P=[],_=[];for(const F of I){const w=l.uuidObj({...F,values:F.values,created_by:r,submitted_at:d});p.push(w),S.push(M(w)),P.push(w.procedure,w.fields_revision),_.push(w.uuid)}f.push({payload:{payloads:S,submitted_at:d},blockers:P,blocks:_})}this.dispatch(a(p));const A=f.map(I=>{const{payload:S,blocks:P,blockers:_}=I;return this.enqueueRequest({description:m(o.POST,this.name,!0),method:o.POST,url:`${this.url}/bulk/`,payload:S,blockers:_,blocks:P})});return Promise.all(A).then(I=>{this.dispatch(n(I.flat()))}).catch(()=>{this.dispatch(c(l.toUuidArray(p)))}),[p,Promise.all(A).then(I=>I.flat())]}update(e){const{updateOne:i}=this.actions,{selectById:a}=this.selectors,n=this.select(a(e.uuid));if(!n)throw new Error(`Expected ProcedureFieldValues with uuid ${e.uuid} to exist`);const c={...n,...e};this.dispatch(i(c));const d=this.enqueueRequest({description:m(o.PATCH,this.name,!1),method:o.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[c.fields_revision,c.procedure],blocks:[c.uuid]});return d.then(r=>{this.dispatch(i(r))}).catch(()=>{this.dispatch(i(n))}),[c,d]}async delete(e){const{deleteOne:i,addOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`Expected submission with uuid ${e} to exist`);const d=this.select(NP(e));this.dispatch(i(e)),this.dispatch(Za(l.toUuidArray(d)));try{return await this.enqueueRequest({description:m(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(r){throw this.dispatch(a(c)),this.dispatch(Ya(d)),r}}async refreshStore(e,i){const{initialize:a}=this.actions,c=(await this.listPaginated({queryParams:{procedure__project:e,latest:!0}},i)).flat();return this.dispatch(a(c)),c}}class wR extends g{name="Procedure Type";url="/procedure-types";actions={addOne:db,addMany:ub,setOne:lb,setMany:ob,updateOne:hb,updateMany:pb,deleteOne:yb,deleteMany:mb,initialize:rb};selectors={selectById:Ab,selectByIds:Tb};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=l.uuidObj({...e,created_by:this.select(r=>r.userReducer.currentUser?.id??null),submitted_at:new Date().toISOString()});this.dispatch(i(c));const d=this.enqueueRequest({description:m(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(c),blockers:[],blocks:[c.uuid]});return d.then(r=>{this.dispatch(a(r))}).catch(()=>{this.dispatch(n(c.uuid))}),[c,d]}update(e){const{updateOne:i}=this.actions,{selectById:a}=this.selectors,n=this.select(a(e.uuid));if(!n)throw new Error(`Expected procedure type with uuid ${e.uuid} to exist`);const c={...n,...e};this.dispatch(i(c));const d=this.enqueueRequest({description:m(o.PATCH,this.name,!1),method:o.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[n.uuid],blocks:[n.uuid]});return d.then(r=>{this.dispatch(i(r))}).catch(()=>{this.dispatch(i(n))}),[c,d]}async delete(e){const{deleteOne:i,addOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`Expected procedure type with uuid ${e} to exist`);const d=this.select(UA(e));this.dispatch(i(e)),this.dispatch(It(l.toUuidArray(d)));try{return await this.enqueueRequest({description:m(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(r){throw this.dispatch(a(c)),this.dispatch(Tt(d)),r}}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({queryParams:{organization:e}},i);return this.dispatch(a(n)),n}}class ER extends g{name="Team Membership";url="/team-memberships";actions={addOne:qb,addMany:$b,setOne:Ub,setMany:kb,updateOne:Lb,updateMany:Hb,deleteOne:Gb,deleteMany:Nb,initialize:Cb};selectors={selectById:Xb,selectByIds:Yb};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=l.uuidObj({...e,created_by:this.select(r=>r.userReducer.currentUser?.id??null)});this.dispatch(i(c));const d=this.enqueueRequest({description:m(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(c),blockers:[e.team],blocks:[c.uuid]});return d.then(r=>{this.dispatch(a(r))}).catch(()=>{this.dispatch(n(c.uuid))}),[c,d]}bulkAdd(e){const{addMany:i,updateMany:a,deleteMany:n}=this.actions,c=this.select(p=>p.userReducer.currentUser?.id??null),d=e.map(p=>l.uuidObj({...p,created_by:c}));this.dispatch(i(d));const r=this.enqueueRequest({description:m(o.POST,this.name,!0),method:o.POST,url:`${this.url}/bulk/`,payload:{team_memberships:d.map(p=>M(p))},blockers:d.map(p=>p.team),blocks:d.map(p=>p.uuid)});return r.then(p=>{this.dispatch(a(p))}).catch(()=>{this.dispatch(n(d.map(p=>p.uuid)))}),[d,r]}async delete(e){const{addOne:i,deleteOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`Expected team membership with uuid ${e} to exist`);this.dispatch(a(e));try{return await this.enqueueRequest({description:m(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[e]})}catch(d){throw this.dispatch(i(c)),d}}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({queryParams:{team__organization:e}},i);return this.dispatch(a(n)),n}}class vR extends g{name="Team";url="/teams";actions={addOne:Qb,addMany:xb,setOne:eF,setMany:tF,updateOne:sF,updateMany:iF,deleteOne:aF,deleteMany:nF,initialize:Jb};selectors={selectById:rF,selectByIds:dF};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=l.uuidObj({...e,submitted_at:new Date().toISOString(),created_by:this.select(r=>r.userReducer.currentUser?.id??null)});this.dispatch(i(c));const d=this.enqueueRequest({description:m(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(c),blockers:[],blocks:[c.uuid]});return d.then(r=>{this.dispatch(a(r))}).catch(()=>{this.dispatch(n(c.uuid))}),[c,d]}update(e){const{updateOne:i}=this.actions,{selectById:a}=this.selectors,n=this.select(a(e.uuid));if(!n)throw new Error(`Expected team with uuid ${e.uuid} to exist`);const c={...n,...e};this.dispatch(i(c));const d=this.enqueueRequest({description:m(o.PATCH,this.name,!1),method:o.PATCH,url:`${this.url}/${e.uuid}/`,payload:M(e),blockers:[e.uuid],blocks:[e.uuid]});return d.then(r=>{this.dispatch(i(r))}).catch(()=>{this.dispatch(i(n))}),[c,d]}async delete(e){const{addOne:i,deleteOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`Expected team with uuid ${e} to exist`);this.dispatch(a(e));try{return await this.enqueueRequest({description:m(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[e]})}catch(d){throw this.dispatch(i(c)),d}}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({queryParams:{organization:e}},i);return this.dispatch(a(n)),n}}class VR extends ct{name="User";url="/user";actions={addOne:ia,addMany:lf,setOne:uf,setMany:df,updateOne:hf,updateMany:of,deleteOne:aa,deleteMany:pf,initialize:rf};selectors={selectById:Jt,selectByIds:ff};async list(e,i){const{organizationUuid:a,...n}=e,c=a?`/organizations/${a}${this.url}s/`:`/${this.url}`;return this.performRequest({method:o.GET,url:c,...n},i)}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({organizationUuid:e},i);return this.dispatch(a(n)),n}}async function hn(t,e,i,a,n){const c=a instanceof pt;c&&e.checkAuth!==!1&&await a.auth.prepareAuth();const d={queryParams:"",isAuthNeeded:!0},{s3url:r,payload:p,headers:h,method:f,queryParams:A,attachmentHash:I,isExternalUrl:S,isAuthNeeded:P,isResponseBlob:_}={...d,...e};let F=e.url;const w=I?await i.files.getFileFromCache(I):void 0,V=w?await IF(w):void 0;if(I){if(!V)throw new Error(`Cannot upload file ${I} because it's not cached.`);if(V.size===0)throw new Error(`Cannot upload file ${I} because its has a size of 0.`)}!S&&!F.startsWith("http")&&(!F.startsWith("/")&&!F.startsWith("blob:")&&(F="/"+F),F=t+F);const R=B=>{if(I){if(!r)throw new Error(`No S3 URL for file ${I}`);if("warning"in r)throw new Error(`S3 URL warning for file ${I}`);if(!V)throw new Error(`No file for file ${I}`);const q=r.fields["x-amz-checksum-sha1"];if(!q)throw new Error(`No checksum for file ${I}`);return B.set("x-amz-checksum-sha1",q).field({...p,...r.fields}).attach("file",V)}return B.send(p)},Vt={[o.GET]:()=>_?mt.get(F.toString()).responseType("blob"):mt.get(F.toString()),[o.POST]:()=>{const B=mt.post(F.toString());return R(B)},[o.PATCH]:()=>{const B=mt.patch(F.toString());return R(B)},[o.PUT]:()=>{const B=mt.put(F.toString());return R(B)},[o.DELETE]:()=>{const B=mt.delete(F.toString());return R(B)}}[f];let j=Vt();const cs=()=>{console.debug("aborting request:",e.url),j.abort()};n?.addEventListener("abort",cs),P&&c&&(j=a.auth.applyAuth(j)),h&&(j=j.set(h));try{return await j.query(A)}catch(B){const q=TF(B),Bt=q?.status;throw c&&q&&a.auth.isAuthFailure(q)?(await a.auth.handleUnauthorized(j,q),new z({response:q,innerError:B,discard:!1})):new z({response:q,innerError:B,discard:un.includes(Bt)})}finally{n?.removeEventListener("abort",cs)}}class BR{store;constructor(e){this.store=e}_performRequest(e,i,a,n){const c=new l.DeferredPromise,d={...i,uuid:i.uuid??rt.v4()};return hn(e,d,this,a,n).then(r=>{c.resolve(r.body)}).catch(r=>{r instanceof Error?c.reject(r):c.reject(new Error((r??l.ERROR_MSG_UNEXPECTED).toString()))}),c}async performRequest(e,i,a,n){return this._performRequest(e,i,a,n).then(c=>{if(c instanceof z)throw c;return c})}async enqueueRequest(e,i,a){return this._enqueueRequest(e,i,a).then(n=>{if(n instanceof z)throw n;return n})}_enqueueRequest(e,i,a){const n=new l.DeferredPromise,c={...e,BASE_URL:i,serviceName:a},d=this.store.dispatch(Xf(c)),r=h=>{if(h)n.resolve(h.body);else{const f=new z({message:"Could not get a response from the server.",response:h,discard:!0});n.reject(f)}},p=h=>{h instanceof z?h.options.discard=!0:(console.error("Received an unexpected error while processing a request:",h,`
14
- Converting error to APIError and discarding.`),h=new z({message:"An error occurred while processing the request.",innerError:h,discard:!0})),n.reject(h)};return d.then(r,p),n}async performPagination(e,i,a,n,c){const d={...i,queryParams:{...i.queryParams,paginate:!0,limit:a}},{method:r}=d,p=[];let h=await this.performRequest(e,d,n,c);for(p.push(h.results);h.next;)h=await this.performRequest(e,{url:h.next,method:r},n,c),p.push(h.results);return p}}class Ot{graph;requestAttemptCounter;constructor(){this.graph=new GF.DepGraph,this.requestAttemptCounter={}}static _fromOutbox(e){const i=new Ot;for(let a=0;a<e.length;a++){const n=e[a];if(!n){console.error("Outbox item was undefined");continue}i.sneakRequest(n);for(let c=0;c<a;c++){const d=e[c];if(!d){console.error("Previous outbox item was undefined");continue}d.payload.uuid!==n.payload.uuid&&d.payload.blocks.some(r=>n.payload.blockers.includes(r))&&Ot._addDependency(n.payload.uuid,d.payload.uuid,i.graph)}}return i}_addDependency(e,i){Ot._addDependency(e,i,this.graph)}static _addDependency(e,i,a){if(e===i)throw new Error(`Tried to add dependency from node to itself: ${e}`);if(!a.hasNode(e))throw new Error(`Tried to add dependency from non-existent node: ${e} (to node: ${i})`);if(!a.hasNode(i))throw new Error(`Tried to add dependency to non-existent node: ${i} (from node: ${e})`);a.addDependency(e,i)}addRequest(e){if(this.graph.addNode(e.payload.uuid,e),!(e.payload.blockers.length===0||this.graph.size()===1))for(const i of this.graph.overallOrder()){if(i===e.payload.uuid)continue;const a=this.graph.getNodeData(i),n=new Set(a.payload.blocks);e.payload.blockers.some(c=>n.has(c))&&this._addDependency(e.payload.uuid,i)}}insertRequest(e){this.graph.addNode(e.payload.uuid,e);for(const i of this.graph.overallOrder()){if(i===e.payload.uuid)continue;const a=this.graph.getNodeData(i),n=new Set(e.payload.blocks);a.payload.blockers.some(c=>n.has(c))&&this._addDependency(i,e.payload.uuid)}}sneakRequest(e){this.graph.addNode(e.payload.uuid,e)}_getNextNode(){const e=this.graph.overallOrder(!0);let i=1/0,a;for(const n of e){const c=this.requestAttemptCounter[n]||0;c<i&&(i=c,a=n)}return a}peek(){const e=this._getNextNode();if(e)return this.graph.getNodeData(e)}remove(e){this.graph.removeNode(e),delete this.requestAttemptCounter[e]}pop(){const e=this.peek();return e&&this.graph.removeNode(e.payload.uuid),e}getQueue(){const e=this.graph.overallOrder().map(a=>this.graph.getNodeData(a)),i=this._getNextNode();if(i){const a=this.graph.getNodeData(i),n=e.findIndex(c=>c.payload.uuid===a.payload.uuid);n!==-1&&(e.splice(n,1),e.unshift(a))}return e}getReady(){let e=this.graph.overallOrder(!0).map(i=>this.graph.getNodeData(i));return e=e.sort((i,a)=>i.meta.offline.effect.timestamp.localeCompare(a.meta.offline.effect.timestamp)),e=e.sort((i,a)=>{const n=this.requestAttemptCounter[i.payload.uuid]||0,c=this.requestAttemptCounter[a.payload.uuid]||0;return n-c}),e}registerRetry(e){this.requestAttemptCounter[e]=(this.requestAttemptCounter[e]||0)+1}}let EF;function vF(t){EF=t}function Pt(){return EF}let VF;function BF(t){VF=t}function zF(){return VF}let pn=null;function yt(){const t=Pt();if(!t)return console.warn("Client store not set; cannot get outbox coordinator yet."),null;if(pn)return pn;const e=t.getState().offline.outbox,i=Ot._fromOutbox(e);return pn=i,i}const zR=(t,e)=>{const i=new e(t);return BF(i),vF(t),i};class jR{_all;_previous;constructor(e){this._all=[e],this._previous=e,this.then=this.then.bind(this),this.compile=this.compile.bind(this)}then(e){return this._previous&&(this._previous.next=e),this._all.push(e),this._previous=e,{then:this.then,compile:this.compile}}compile(){return this._all}}class yn{next;constructor(){this.next=null}then(e){return new jR(this).then(e)}async run(e){if(this.next)return this.next.run(e);{if(console.debug("Middleware finished. Performing request:",e.payload.url),!Pt())throw new Error("Client store not set");const a=zF();if(!a)throw new Error("Client SDK not set");return fF(e,a)}}}class jF extends yn{async run(e){return super.run(e)}}class DF extends yn{async run(e){return super.run(e)}}const CF=new jF().then(new DF).compile();function qF(t){return CF[0]?.run(t)}s.ALL_MIDDLEWARE=CF,s.APIError=z,s.AgentService=dg,s.AssetAttachmentService=ug,s.AssetCommentService=lg,s.AssetService=og,s.AssetTypeAttachmentService=hg,s.AssetTypeFieldValuesAttachmentService=mg,s.AssetTypeFieldValuesService=fg,s.AssetTypeFieldsAttachmentService=pg,s.AssetTypeFieldsService=yg,s.AssetTypeIdentifierService=Sg,s.AssetTypeIdentifierValueService=Ag,s.AssetTypeService=Tg,s.AssetTypeStatusService=Ig,s.BaseApiService=pt,s.BaseAuthService=wF,s.BaseModelApiService=ct,s.BaseOfflineFileModelApiService=v,s.BaseOfflineModelApiService=g,s.BaseSDK=BR,s.COMMON_AUTO_FIELDS=fn,s.DEFAULT_PAGE_SIZE=oF,s.DISCARD_HTTP_STATUSES=un,s.DocumentAttachmentService=Og,s.DocumentService=Pg,s.EmailDomainsService=bg,s.EmailVerificationService=Fg,s.FileService=_g,s.FormIdentifierService=Mg,s.FormIdentifierValueService=gg,s.FormRevisionAttachmentService=Rg,s.FormRevisionService=wg,s.FormService=Eg,s.FormSubmissionCommentService=zg,s.FormSubmissionFieldValuesAttachmentService=Vg,s.FormSubmissionFieldValuesService=Bg,s.FormSubmissionService=jg,s.FormSubscriberService=vg,s.GeoImageService=Dg,s.HttpMethod=o,s.IssueAssociationService=Cg,s.IssueAttachmentService=qg,s.IssueCommentAttachmentService=$g,s.IssueCommentService=Ug,s.IssueService=kg,s.IssueTypeAttachmentService=Lg,s.IssueTypeFieldValuesAttachmentService=Ng,s.IssueTypeFieldValuesService=Kg,s.IssueTypeFieldsAttachmentService=Hg,s.IssueTypeFieldsService=Gg,s.IssueTypeIdentifierService=Wg,s.IssueTypeIdentifierValueService=Xg,s.IssueTypePriorityService=Yg,s.IssueTypeService=Zg,s.IssueTypeStatusService=Jg,s.IssueUpdateService=Qg,s.JWTService=tR,s.MAX_SERVICE_BATCH_SIZE=C,s.OUTBOX_RETRY_DELAY=6e4,s.OfflineAnalyticsMiddleware=jF,s.OfflineMiddleware=yn,s.OrganizationAccessService=sR,s.OrganizationService=iR,s.OutboxCoordinator=Ot,s.ProcdureInitiativeService=PR,s.ProcedureFieldValuesAttachmentService=gR,s.ProcedureFieldValuesService=RR,s.ProcedureService=lR,s.ProcedureStepAssigneeService=oR,s.ProcedureStepCommentService=hR,s.ProcedureStepDefaultAssigneeService=pR,s.ProcedureStepDefaultReviewerService=yR,s.ProcedureStepEventService=mR,s.ProcedureStepFieldValuesAttachmentService=AR,s.ProcedureStepFieldValuesReviewService=TR,s.ProcedureStepFieldValuesService=IR,s.ProcedureStepFieldsAttachmentService=fR,s.ProcedureStepFieldsService=SR,s.ProcedureStepReviewerService=OR,s.ProcedureStepService=bR,s.ProcedureTypeAttachmentService=FR,s.ProcedureTypeFieldsAttachmentService=_R,s.ProcedureTypeFieldsService=MR,s.ProcedureTypeService=wR,s.ProjectAccessService=aR,s.ProjectAttachmentService=nR,s.ProjectCommentService=cR,s.ProjectFileService=rR,s.ProjectService=dR,s.RESET_ORGANIZATION_STATE=b,s.RESET_PROJECT_STATE=E,s.RESET_STATE=T,s.RateLimitingMiddleware=DF,s.ReportService=uR,s.TeamMembershipService=ER,s.TeamService=vR,s.UserService=VR,s._setLatestRetryTime=Zf,s.addAsset=Qn,s.addAssetAttachment=_n,s.addAssetAttachments=ls,s.addAssetComment=qn,s.addAssetComments=zt,s.addAssetType=td,s.addAssetTypeAttachment=oc,s.addAssetTypeAttachments=As,s.addAssetTypeFieldValues=or,s.addAssetTypeFieldValuesAttachment=Qc,s.addAssetTypeFieldValuesAttachments=_s,s.addAssetTypeFieldValuesMany=hr,s.addAssetTypeFields=qc,s.addAssetTypeFieldsAttachment=Fc,s.addAssetTypeFieldsAttachments=_c,s.addAssetTypeFieldsMany=$c,s.addAssetTypeIdentifier=_r,s.addAssetTypeIdentifierValue=$r,s.addAssetTypeIdentifierValues=Ur,s.addAssetTypeIdentifiers=Mr,s.addAssetTypeStatus=pd,s.addAssetTypeStatuses=yd,s.addAssetTypes=sd,s.addAssets=ms,s.addConversation=Tn,s.addConversations=KF,s.addDocument=Gd,s.addDocumentAttachment=Ed,s.addDocumentAttachments=vd,s.addDocuments=Nd,s.addEmailDomain=au,s.addEmailDomains=nu,s.addForm=Vl,s.addFormIdentifier=Au,s.addFormIdentifierValue=Vu,s.addFormIdentifierValues=Bu,s.addFormIdentifiers=Tu,s.addFormRevision=cl,s.addFormRevisionAttachment=Ku,s.addFormRevisionAttachments=Wu,s.addFormRevisions=Ws,s.addFormSubmission=Vo,s.addFormSubmissionComment=So,s.addFormSubmissionComments=oi,s.addFormSubmissionFieldValues=io,s.addFormSubmissionFieldValuesAttachment=Kl,s.addFormSubmissionFieldValuesAttachments=ti,s.addFormSubmissionFieldValuesMany=ri,s.addFormSubmissions=dt,s.addFormSubscriber=Tl,s.addFormSubscribers=Zs,s.addForms=Bl,s.addGeoImage=Yo,s.addGeoImages=Zo,s.addIssue=up,s.addIssueAssociation=oh,s.addIssueAssociations=ft,s.addIssueAttachment=bh,s.addIssueAttachments=Ai,s.addIssueComment=Zh,s.addIssueCommentAttachment=Dh,s.addIssueCommentAttachments=Ch,s.addIssueComments=Jh,s.addIssueType=Fm,s.addIssueTypeAttachment=Pp,s.addIssueTypeAttachments=bp,s.addIssueTypeFieldValues=Zp,s.addIssueTypeFieldValuesAttachment=Fy,s.addIssueTypeFieldValuesAttachments=ji,s.addIssueTypeFieldValuesMany=Jp,s.addIssueTypeFields=ly,s.addIssueTypeFieldsAttachment=Dp,s.addIssueTypeFieldsAttachments=Cp,s.addIssueTypeFieldsMany=oy,s.addIssueTypeIdentifier=Cy,s.addIssueTypeIdentifierValue=Jy,s.addIssueTypeIdentifierValues=Qy,s.addIssueTypeIdentifiers=qy,s.addIssueTypePriorities=hm,s.addIssueTypePriority=om,s.addIssueTypeStatus=qm,s.addIssueTypeStatuses=$m,s.addIssueTypes=_m,s.addIssueUpdate=Zi,s.addIssueUpdates=Ji,s.addIssues=Mi,s.addOrganization=Df,s.addOrganizationAccess=Tf,s.addOrganizationAccesses=If,s.addOrganizations=jf,s.addProcedure=EA,s.addProcedureFieldValues=XP,s.addProcedureFieldValuesAttachment=jP,s.addProcedureFieldValuesAttachments=Ya,s.addProcedureFieldValuesMany=YP,s.addProcedureInitiative=fA,s.addProcedureInitiatives=SA,s.addProcedureStep=DO,s.addProcedureStepAssignee=KA,s.addProcedureStepAssignees=WA,s.addProcedureStepComment=cT,s.addProcedureStepComments=rT,s.addProcedureStepDefaultAssignee=IT,s.addProcedureStepDefaultAssignees=OT,s.addProcedureStepDefaultReviewer=zT,s.addProcedureStepDefaultReviewers=jT,s.addProcedureStepEvent=XT,s.addProcedureStepEvents=YT,s.addProcedureStepFieldValues=WI,s.addProcedureStepFieldValuesAttachment=zI,s.addProcedureStepFieldValuesAttachments=Va,s.addProcedureStepFieldValuesMany=XI,s.addProcedureStepFieldValuesReview=rO,s.addProcedureStepFieldValuesReviews=Ca,s.addProcedureStepFields=OI,s.addProcedureStepFieldsAttachment=dI,s.addProcedureStepFieldsAttachments=Ma,s.addProcedureStepFieldsMany=PI,s.addProcedureStepReviewer=IO,s.addProcedureStepReviewers=OO,s.addProcedureSteps=CO,s.addProcedureType=db,s.addProcedureTypeAttachment=WO,s.addProcedureTypeAttachments=XO,s.addProcedureTypeFields=OP,s.addProcedureTypeFieldsAttachment=rP,s.addProcedureTypeFieldsAttachments=dP,s.addProcedureTypeFieldsMany=PP,s.addProcedureTypes=ub,s.addProcedures=Tt,s.addProject=nA,s.addProjectAccess=eS,s.addProjectAccesses=tS,s.addProjectAttachment=pS,s.addProjectAttachments=yS,s.addProjectComment=gS,s.addProjectComments=RS,s.addProjectFile=HS,s.addProjectFiles=GS,s.addProjects=aA,s.addReport=bb,s.addReports=Fb,s.addTeam=Qb,s.addTeamMembership=qb,s.addTeamMemberships=$b,s.addTeams=xb,s.addUser=ia,s.addUsers=lf,s.agentsReducer=Pn,s.agentsSlice=rs,s.assetAttachmentReducer=jn,s.assetAttachmentSlice=us,s.assetCommentReducer=Yn,s.assetCommentSlice=ps,s.assetReducer=dc,s.assetSlice=ys,s.assetTypeAttachmentReducer=Oc,s.assetTypeAttachmentSlice=Ss,s.assetTypeFieldValuesAttachmentReducer=dr,s.assetTypeFieldValuesAttachmentSlice=Fs,s.assetTypeFieldValuesReducer=Pr,s.assetTypeFieldValuesSlice=Rs,s.assetTypeFieldsAttachmentReducer=jc,s.assetTypeFieldsAttachmentSlice=Os,s.assetTypeFieldsReducer=Yc,s.assetTypeFieldsSlice=bs,s.assetTypeIdentifierReducer=Dr,s.assetTypeIdentifierSlice=ws,s.assetTypeIdentifierValueReducer=Zr,s.assetTypeIdentifierValueSlice=vs,s.assetTypeReducer=ld,s.assetTypeSlice=Vs,s.assetTypeStatusReducer=Fd,s.assetTypeStatusSlice=zs,s.authReducer=gd,s.authSlice=Ut,s.baseReducer=XM,s.baseReducers=dn,s.clearTokens=o_,s.createModelAdapter=O,s.createOfflineAction=Kf,s.createPayload=M,s.createSelectionAdapter=NF,s.deleteAsset=tc,s.deleteAssetAttachment=En,s.deleteAssetAttachments=os,s.deleteAssetComment=Hn,s.deleteAssetComments=jt,s.deleteAssetType=nd,s.deleteAssetTypeAttachment=fc,s.deleteAssetTypeAttachments=Ts,s.deleteAssetTypeFieldValues=Sr,s.deleteAssetTypeFieldValuesAttachment=ir,s.deleteAssetTypeFieldValuesAttachments=Ms,s.deleteAssetTypeFieldValuesMany=Ar,s.deleteAssetTypeFields=Gc,s.deleteAssetTypeFieldsAttachment=Ec,s.deleteAssetTypeFieldsAttachments=vc,s.deleteAssetTypeFieldsMany=Nc,s.deleteAssetTypeIdentifier=vr,s.deleteAssetTypeIdentifierValue=Nr,s.deleteAssetTypeIdentifierValues=Kr,s.deleteAssetTypeIdentifiers=Vr,s.deleteAssetTypeStatus=Td,s.deleteAssetTypeStatuses=Id,s.deleteAssetTypes=cd,s.deleteAssets=fs,s.deleteConversation=YF,s.deleteConversations=ZF,s.deleteDocument=Zd,s.deleteDocumentAttachment=Dd,s.deleteDocumentAttachments=Cd,s.deleteDocuments=Jd,s.deleteEmailDomain=lu,s.deleteEmailDomains=ou,s.deleteForm=ql,s.deleteFormIdentifier=Fu,s.deleteFormIdentifierValue=qu,s.deleteFormIdentifierValues=$u,s.deleteFormIdentifiers=_u,s.deleteFormRevision=ol,s.deleteFormRevisionAttachment=Qu,s.deleteFormRevisionAttachments=xu,s.deleteFormRevisions=Xs,s.deleteFormSubmission=jo,s.deleteFormSubmissionComment=Po,s.deleteFormSubmissionComments=hi,s.deleteFormSubmissionFieldValues=uo,s.deleteFormSubmissionFieldValuesAttachment=Jl,s.deleteFormSubmissionFieldValuesAttachments=si,s.deleteFormSubmissionFieldValuesMany=di,s.deleteFormSubmissions=ut,s.deleteFormSubscriber=Fl,s.deleteFormSubscribers=Js,s.deleteForms=$l,s.deleteGeoImage=xo,s.deleteGeoImages=eh,s.deleteIssue=yp,s.deleteIssueAssociation=hh,s.deleteIssueAssociations=St,s.deleteIssueAttachment=Rh,s.deleteIssueAttachments=Ti,s.deleteIssueComment=sp,s.deleteIssueCommentAttachment=Lh,s.deleteIssueCommentAttachments=Hh,s.deleteIssueComments=ip,s.deleteIssueType=Em,s.deleteIssueTypeAttachment=Rp,s.deleteIssueTypeAttachments=wp,s.deleteIssueTypeFieldValues=sy,s.deleteIssueTypeFieldValuesAttachment=wy,s.deleteIssueTypeFieldValuesAttachments=Di,s.deleteIssueTypeFieldValuesMany=iy,s.deleteIssueTypeFields=fy,s.deleteIssueTypeFieldsAttachment=Lp,s.deleteIssueTypeFieldsAttachments=Hp,s.deleteIssueTypeFieldsMany=Sy,s.deleteIssueTypeIdentifier=Hy,s.deleteIssueTypeIdentifierValue=im,s.deleteIssueTypeIdentifierValues=am,s.deleteIssueTypeIdentifiers=Gy,s.deleteIssueTypePriorities=Am,s.deleteIssueTypePriority=Sm,s.deleteIssueTypeStatus=Gm,s.deleteIssueTypeStatuses=Nm,s.deleteIssueTypes=vm,s.deleteIssueUpdate=Qi,s.deleteIssueUpdates=xi,s.deleteIssues=gi,s.deleteOrganization=$f,s.deleteOrganizationAccess=_f,s.deleteOrganizationAccesses=Mf,s.deleteOrganizations=Uf,s.deleteProcedure=jA,s.deleteProcedureFieldValues=eb,s.deleteProcedureFieldValuesAttachment=UP,s.deleteProcedureFieldValuesAttachments=Za,s.deleteProcedureFieldValuesMany=tb,s.deleteProcedureInitiative=PA,s.deleteProcedureInitiatives=bA,s.deleteProcedureStep=UO,s.deleteProcedureStepAssignee=QA,s.deleteProcedureStepAssignees=xA,s.deleteProcedureStepComment=hT,s.deleteProcedureStepComments=pT,s.deleteProcedureStepDefaultAssignee=MT,s.deleteProcedureStepDefaultAssignees=gT,s.deleteProcedureStepDefaultReviewer=UT,s.deleteProcedureStepDefaultReviewers=kT,s.deleteProcedureStepEvent=eI,s.deleteProcedureStepEvents=tI,s.deleteProcedureStepFieldValues=xI,s.deleteProcedureStepFieldValuesAttachment=$I,s.deleteProcedureStepFieldValuesAttachments=Ba,s.deleteProcedureStepFieldValuesMany=eO,s.deleteProcedureStepFieldValuesReview=hO,s.deleteProcedureStepFieldValuesReviews=qa,s.deleteProcedureStepFields=gI,s.deleteProcedureStepFieldsAttachment=pI,s.deleteProcedureStepFieldsAttachments=ga,s.deleteProcedureStepFieldsMany=RI,s.deleteProcedureStepReviewer=MO,s.deleteProcedureStepReviewers=gO,s.deleteProcedureSteps=kO,s.deleteProcedureType=yb,s.deleteProcedureTypeAttachment=xO,s.deleteProcedureTypeAttachments=eP,s.deleteProcedureTypeFields=gP,s.deleteProcedureTypeFieldsAttachment=pP,s.deleteProcedureTypeFieldsAttachments=yP,s.deleteProcedureTypeFieldsMany=RP,s.deleteProcedureTypes=mb,s.deleteProcedures=It,s.deleteProject=dA,s.deleteProjectAccess=cS,s.deleteProjectAccesses=rS,s.deleteProjectAttachment=TS,s.deleteProjectAttachments=IS,s.deleteProjectComment=BS,s.deleteProjectComments=zS,s.deleteProjectFile=WS,s.deleteProjectFiles=XS,s.deleteProjects=uA,s.deleteReport=wb,s.deleteReports=Eb,s.deleteTeam=aF,s.deleteTeamMembership=Gb,s.deleteTeamMemberships=Nb,s.deleteTeams=nF,s.deleteUser=aa,s.deleteUsers=pf,s.dequeue=mF,s.discard=SF,s.documentAttachmentReducer=kd,s.documentAttachmentSlice=Ds,s.documentSlice=qs,s.documentsReducer=Qd,s.emailDomainsReducer=mu,s.emailDomainsSlice=Us,s.enqueue=yF,s.enqueueRequest=Xf,s.extractResponseFromError=TF,s.fetchBlobFromObjectUrl=PF,s.fetchFileFromObjectUrl=bF,s.fileToBlob=IF,s.formIdentifierReducer=wu,s.formIdentifierSlice=Ls,s.formIdentifierValueReducer=Hu,s.formIdentifierValueSlice=Gs,s.formReducer=Ul,s.formRevisionAttachmentReducer=il,s.formRevisionAttachmentSlice=Ns,s.formRevisionReducer=fl,s.formRevisionsSlice=Ks,s.formSlice=Qs,s.formSubmissionCommentReducer=go,s.formSubmissionCommentSlice=li,s.formSubmissionFieldValuesAttachmentReducer=eo,s.formSubmissionFieldValuesAttachmentSlice=ei,s.formSubmissionFieldValuesReducer=yo,s.formSubmissionFieldValuesSlice=ci,s.formSubmissionReducer=Go,s.formSubmissionSlice=pi,s.formSubscriberReducer=wl,s.formSubscriberSlice=Ys,s.geoImageReducer=ah,s.geoImageSlice=yi,s.getClientSDK=zF,s.getClientStore=Pt,s.getFileExtension=OF,s.getOutboxCoordinator=yt,s.getPresignedUrlExpiryDate=gF,s.getRenamedFile=cg,s.getRequestDescription=m,s.getS3FileKey=ng,s.hashFile=ns,s.initSDK=zR,s.initializeAssetAttachments=Fn,s.initializeAssetComments=Cn,s.initializeAssetTypeAttachments=lc,s.initializeAssetTypeFieldValues=lr,s.initializeAssetTypeFieldValuesAttachments=Jc,s.initializeAssetTypeFields=Cc,s.initializeAssetTypeFieldsAttachments=bc,s.initializeAssetTypeIdentifierValues=qr,s.initializeAssetTypeIdentifiers=Fr,s.initializeAssetTypeStatuses=hd,s.initializeAssetTypes=Qr,s.initializeAssets=Jn,s.initializeConversations=An,s.initializeDocumentAttachments=wd,s.initializeDocuments=Hd,s.initializeEmailDomains=iu,s.initializeFormIdentifierValues=vu,s.initializeFormIdentifiers=Su,s.initializeFormRevisionAttachments=Nu,s.initializeFormRevisions=nl,s.initializeFormSubmissionComments=fo,s.initializeFormSubmissionFieldValues=so,s.initializeFormSubmissionFieldValuesAttachments=Nl,s.initializeFormSubmissions=wo,s.initializeFormSubscribers=Al,s.initializeForms=vl,s.initializeGeoImages=Ko,s.initializeIssueAssociations=ch,s.initializeIssueAttachments=Ph,s.initializeIssueCommentAttachments=jh,s.initializeIssueComments=Yh,s.initializeIssueTypeAttachments=Op,s.initializeIssueTypeFieldValues=Yp,s.initializeIssueTypeFieldValuesAttachments=by,s.initializeIssueTypeFields=uy,s.initializeIssueTypeFieldsAttachments=jp,s.initializeIssueTypeIdentifierValues=Zy,s.initializeIssueTypeIdentifiers=Dy,s.initializeIssueTypePriorities=lm,s.initializeIssueTypeStatuses=Cm,s.initializeIssueTypes=bm,s.initializeIssueUpdates=Zm,s.initializeIssues=dp,s.initializeOrganizationAccesses=Af,s.initializeOrganizations=Vf,s.initializeProcedureFieldValues=WP,s.initializeProcedureFieldValuesAttachments=zP,s.initializeProcedureInitiatives=mA,s.initializeProcedureStepAssignees=NA,s.initializeProcedureStepComments=nT,s.initializeProcedureStepDefaultAssignees=TT,s.initializeProcedureStepDefaultReviewers=BT,s.initializeProcedureStepEvents=WT,s.initializeProcedureStepFieldValues=KI,s.initializeProcedureStepFieldValuesAttachments=BI,s.initializeProcedureStepFieldValuesReviews=cO,s.initializeProcedureStepFields=II,s.initializeProcedureStepFieldsAttachments=rI,s.initializeProcedureStepReviewers=TO,s.initializeProcedureSteps=BO,s.initializeProcedureTypeAttachments=KO,s.initializeProcedureTypeFields=IP,s.initializeProcedureTypeFieldsAttachments=cP,s.initializeProcedureTypes=rb,s.initializeProcedures=wA,s.initializeProjectAccesses=xf,s.initializeProjectAttachments=hS,s.initializeProjectComments=MS,s.initializeProjectFiles=US,s.initializeProjects=tA,s.initializeReports=Pb,s.initializeTeamMemberships=Cb,s.initializeTeams=Jb,s.initializeUsers=rf,s.isCloudfrontUrl=_F,s.isImageFile=rg,s.isObjectUrl=FF,s.isPresignedUrlExpired=RF,s.isS3Url=MF,s.issueAssociationReducer=Ih,s.issueAssociationSlice=fi,s.issueAttachmentReducer=Bh,s.issueAttachmentSlice=Si,s.issueCommentAttachmentReducer=Wh,s.issueCommentAttachmentSlice=Oi,s.issueCommentReducer=cp,s.issueCommentSlice=bi,s.issueReducer=Tp,s.issueSlice=_i,s.issueTypeAttachmentReducer=Bp,s.issueTypeAttachmentSlice=Ri,s.issueTypeFieldValuesAttachmentReducer=zy,s.issueTypeFieldValuesAttachmentSlice=zi,s.issueTypeFieldValuesReducer=ry,s.issueTypeFieldValuesSlice=Vi,s.issueTypeFieldsAttachmentReducer=Wp,s.issueTypeFieldsAttachmentSlice=Ei,s.issueTypeFieldsReducer=Oy,s.issueTypeFieldsSlice=Bi,s.issueTypeIdentifierReducer=Xy,s.issueTypeIdentifierSlice=qi,s.issueTypeIdentifierValueReducer=dm,s.issueTypeIdentifierValueSlice=Ui,s.issueTypePriorityReducer=Om,s.issueTypePrioritySlice=ki,s.issueTypeReducer=jm,s.issueTypeSlice=Gi,s.issueTypeStatusReducer=Xm,s.issueTypeStatusSlice=Ki,s.issueUpdateReducer=nf,s.issueUpdateSlice=Yi,s.markAsDeleted=Yf,s.markForDeletion=Q_,s.organizationAccessReducer=gf,s.organizationAccessSlice=ca,s.organizationReducer=Nf,s.organizationSlice=ra,s.outboxReducer=Jf,s.outboxSlice=da,s.overmapEnhancer=xM,s.overmapReducer=YM,s.overmapReducers=lF,s.performRequest=hn,s.performRequestFromAction=fF,s.procedureFieldValuesAttachmentReducer=kP,s.procedureFieldValuesAttachmentSlice=Xa,s.procedureFieldValuesReducer=sb,s.procedureFieldValuesSlice=Qa,s.procedureInitiativeReducer=FA,s.procedureInitiativeSlice=fa,s.procedureReducer=DA,s.procedureSlice=Sa,s.procedureStepAssigneeReducer=iT,s.procedureStepAssigneeSlice=Aa,s.procedureStepCommentReducer=ST,s.procedureStepCommentSlice=Ta,s.procedureStepDefaultAssigneeReducer=vT,s.procedureStepDefaultAssigneeSlice=Ia,s.procedureStepDefaultReviewerReducer=NT,s.procedureStepDefaultReviewerSlice=Pa,s.procedureStepEventReducer=nI,s.procedureStepEventSlice=Fa,s.procedureStepFieldValuesAttachmentReducer=GI,s.procedureStepFieldValuesAttachmentSlice=va,s.procedureStepFieldValuesReducer=tO,s.procedureStepFieldValuesReviewReducer=SO,s.procedureStepFieldValuesReviewSlice=Da,s.procedureStepFieldValuesSlice=ja,s.procedureStepFieldsAttachmentReducer=AI,s.procedureStepFieldsAttachmentSlice=_a,s.procedureStepFieldsReducer=vI,s.procedureStepFieldsSlice=wa,s.procedureStepReducer=LO,s.procedureStepReviewerReducer=vO,s.procedureStepReviewerSlice=$a,s.procedureStepSlice=Ua,s.procedureTypeAttachmentReducer=tP,s.procedureTypeAttachmentSlice=Ha,s.procedureTypeFieldsAttachmentReducer=mP,s.procedureTypeFieldsAttachmentSlice=Na,s.procedureTypeFieldsReducer=wP,s.procedureTypeFieldsSlice=Wa,s.procedureTypeReducer=fb,s.procedureTypeSlice=en,s.projectAccessReducer=dS,s.projectAccessSlice=ua,s.projectAttachmentReducer=FS,s.projectAttachmentSlice=oa,s.projectCommentReducer=qS,s.projectCommentSlice=pa,s.projectFileReducer=xS,s.projectFileSlice=ya,s.projectReducer=lA,s.projectSlice=ma,s.rehydratedReducer=Ib,s.rehydratedSlice=sn,s.reportReducer=jb,s.reportSlice=an,s.restructureSelectorWithArgs=y,s.runMiddleware=qF,s.selectAccessToken=h_,s.selectAccessesByUserOfProject=eM,s.selectAccessibleProjects=nM,s.selectActiveOrganizationAccess=X_,s.selectAllDocumentAttachments=Cs,s.selectAssetAttachmentById=Vn,s.selectAssetAttachmentMapping=vn,s.selectAssetAttachments=hs,s.selectAssetAttachmentsByIds=Bn,s.selectAssetById=cc,s.selectAssetCommentById=Nn,s.selectAssetCommentMapping=Gn,s.selectAssetComments=Dt,s.selectAssetCommentsByIds=Kn,s.selectAssetTypeAttachmentById=Ac,s.selectAssetTypeAttachmentMapping=Sc,s.selectAssetTypeAttachments=Is,s.selectAssetTypeAttachmentsByIds=Tc,s.selectAssetTypeById=dd,s.selectAssetTypeFieldValues=qt,s.selectAssetTypeFieldValuesAttachmentById=nr,s.selectAssetTypeFieldValuesAttachments=gs,s.selectAssetTypeFieldValuesAttachmentsByIds=cr,s.selectAssetTypeFieldValuesAttachmentsMapping=ar,s.selectAssetTypeFieldValuesById=Ir,s.selectAssetTypeFieldValuesByIds=Or,s.selectAssetTypeFieldValuesMapping=Tr,s.selectAssetTypeFieldValuesOfAsset=i_,s.selectAssetTypeFields=Ft,s.selectAssetTypeFieldsAttachmentById=Bc,s.selectAssetTypeFieldsAttachments=Ps,s.selectAssetTypeFieldsAttachmentsByIds=zc,s.selectAssetTypeFieldsAttachmentsMapping=Vc,s.selectAssetTypeFieldsById=Wc,s.selectAssetTypeFieldsByIds=Xc,s.selectAssetTypeFieldsMapping=Kc,s.selectAssetTypeFieldsOfAssetType=t_,s.selectAssetTypeIdentifierById=zr,s.selectAssetTypeIdentifierMapping=Br,s.selectAssetTypeIdentifierValueById=Xr,s.selectAssetTypeIdentifierValueMapping=Wr,s.selectAssetTypeIdentifierValues=$t,s.selectAssetTypeIdentifierValuesByIds=Yr,s.selectAssetTypeIdentifierValuesOfAsset=c_,s.selectAssetTypeIdentifierValuesOfIdentifier=r_,s.selectAssetTypeIdentifiers=Es,s.selectAssetTypeIdentifiersByIds=jr,s.selectAssetTypeIdentifiersOfAssetType=n_,s.selectAssetTypeStatusById=Pd,s.selectAssetTypeStatusMapping=Od,s.selectAssetTypeStatuses=js,s.selectAssetTypeStatusesByIds=bd,s.selectAssetTypeStatusesOfAssetType=u_,s.selectAssetTypeValuesOfAssetType=a_,s.selectAssetTypes=Bs,s.selectAssetTypesByIds=ud,s.selectAssetTypesMapping=rd,s.selectAssetTypesOfOrganization=d_,s.selectAssets=Ct,s.selectAssetsByIds=rc,s.selectAssetsMapping=ac,s.selectAssetsOfAssetType=nc,s.selectAssetsOfProject=xF,s.selectAttachmentsOfAsset=zn,s.selectAttachmentsOfAssetType=Ic,s.selectAttachmentsOfAssetTypeFieldValues=rr,s.selectAttachmentsOfAssetTypeFields=e_,s.selectAttachmentsOfDocument=y_,s.selectAttachmentsOfFormRevision=O_,s.selectAttachmentsOfFormSubmissionFieldValues=xl,s.selectAttachmentsOfIssue=Eh,s.selectAttachmentsOfIssueComment=v_,s.selectAttachmentsOfIssueType=z_,s.selectAttachmentsOfIssueTypeFieldValues=By,s.selectAttachmentsOfIssueTypeFields=j_,s.selectAttachmentsOfProcedureFieldValues=NP,s.selectAttachmentsOfProcedureStepFieldValues=HI,s.selectAttachmentsOfProcedureStepFields=mI,s.selectAttachmentsOfProcedureType=DM,s.selectAttachmentsOfProcedureTypeFields=CM,s.selectAttachmentsOfProject=sM,s.selectCommentsOfAsset=Wn,s.selectCommentsOfAssets=Xn,s.selectCommentsOfFormSubmission=Mo,s.selectCommentsOfFormSubmissions=__,s.selectCommentsOfIssue=V_,s.selectCommentsOfProject=iM,s.selectCommentsOfProjects=aM,s.selectConversation=QF,s.selectConversationMapping=ds,s.selectConversations=JF,s.selectCurrentUser=mf,s.selectDeletedRequests=Z_,s.selectDescendantsOfDocument=tu,s.selectDocumentAttachmentById=$d,s.selectDocumentAttachmentMapping=qd,s.selectDocumentAttachmentsByIds=Ud,s.selectDocumentById=xd,s.selectDocuments=kt,s.selectDocumentsByIds=eu,s.selectDocumentsMapping=$s,s.selectEmailDomainById=pu,s.selectEmailDomains=ks,s.selectEmailDomainsAsMapping=hu,s.selectEmailDomainsByIds=yu,s.selectEmailDomainsOfOrganization=S_,s.selectFieldValuesOfProcedure=UM,s.selectFormById=Ll,s.selectFormIdentifierById=gu,s.selectFormIdentifierMapping=Mu,s.selectFormIdentifierValueById=ku,s.selectFormIdentifierValueMapping=Uu,s.selectFormIdentifierValues=Lt,s.selectFormIdentifierValuesByIds=Lu,s.selectFormIdentifierValuesOfFormSubmission=T_,s.selectFormIdentifierValuesOfIdentifier=I_,s.selectFormIdentifiers=Hs,s.selectFormIdentifiersByIds=Ru,s.selectFormIdentifiersOfForm=A_,s.selectFormMapping=kl,s.selectFormRevisionAttachmentById=tl,s.selectFormRevisionAttachments=el,s.selectFormRevisionAttachmentsByIds=sl,s.selectFormRevisionAttachmentsMapping=Ht,s.selectFormRevisionById=pl,s.selectFormRevisionMapping=hl,s.selectFormRevisions=Gt,s.selectFormRevisionsByIds=yl,s.selectFormRevisionsOfForm=ml,s.selectFormSubmissionById=Co,s.selectFormSubmissionCommentById=Fo,s.selectFormSubmissionCommentMapping=bo,s.selectFormSubmissionComments=Kt,s.selectFormSubmissionCommentsByIds=_o,s.selectFormSubmissionFieldValues=ui,s.selectFormSubmissionFieldValuesAttachmentById=Ql,s.selectFormSubmissionFieldValuesAttachments=ai,s.selectFormSubmissionFieldValuesAttachmentsByIds=ni,s.selectFormSubmissionFieldValuesAttachmentsMapping=ii,s.selectFormSubmissionFieldValuesById=oo,s.selectFormSubmissionFieldValuesByIds=ho,s.selectFormSubmissionFieldValuesMapping=lo,s.selectFormSubmissionFieldValuesOfFormSubmission=po,s.selectFormSubmissions=D,s.selectFormSubmissionsByIds=qo,s.selectFormSubmissionsMapping=Do,s.selectFormSubmissionsOfAsset=Lo,s.selectFormSubmissionsOfAssets=Ho,s.selectFormSubmissionsOfForm=$o,s.selectFormSubmissionsOfIssue=Uo,s.selectFormSubmissionsOfIssues=ko,s.selectFormSubmissionsOfOrganization=M_,s.selectFormSubmissionsOfOrganizationAndForm=w_,s.selectFormSubmissionsOfProject=g_,s.selectFormSubmissionsOfProjectAndForm=R_,s.selectFormSubscriberById=Ml,s.selectFormSubscriberMapping=_l,s.selectFormSubscribers=Nt,s.selectFormSubscribersByIds=gl,s.selectFormSubscribersOfForm=Rl,s.selectFormSubscribersOfUser=b_,s.selectForms=xs,s.selectFormsByIds=Hl,s.selectFormsOfOrganization=F_,s.selectGeoImageById=sh,s.selectGeoImageMapping=th,s.selectGeoImages=mi,s.selectGeoImagesByIds=ih,s.selectGeoImagesOfProject=E_,s.selectIsLoggedIn=p_,s.selectIssueAssociationById=yh,s.selectIssueAssociationMapping=ph,s.selectIssueAssociations=At,s.selectIssueAssociationsByIds=mh,s.selectIssueAssociationsOfAsset=Ah,s.selectIssueAssociationsOfAssets=Th,s.selectIssueAssociationsOfIssue=Sh,s.selectIssueAssociationsOfIssues=fh,s.selectIssueAttachmentById=vh,s.selectIssueAttachmentMapping=wh,s.selectIssueAttachments=Ii,s.selectIssueAttachmentsByIds=Vh,s.selectIssueById=fp,s.selectIssueCommentAttachmentById=Nh,s.selectIssueCommentAttachmentMapping=Gh,s.selectIssueCommentAttachments=Pi,s.selectIssueCommentAttachmentsByIds=Kh,s.selectIssueCommentById=ap,s.selectIssueCommentMapping=Fi,s.selectIssueCommentsByIds=np,s.selectIssueMapping=mp,s.selectIssueTypeAttachmentById=vp,s.selectIssueTypeAttachmentMapping=Ep,s.selectIssueTypeAttachments=wi,s.selectIssueTypeAttachmentsByIds=Vp,s.selectIssueTypeById=Bm,s.selectIssueTypeFieldValues=Xt,s.selectIssueTypeFieldValuesAttachmentById=vy,s.selectIssueTypeFieldValuesAttachments=Ci,s.selectIssueTypeFieldValuesAttachmentsByIds=Vy,s.selectIssueTypeFieldValuesAttachmentsMapping=Ey,s.selectIssueTypeFieldValuesById=ny,s.selectIssueTypeFieldValuesByIds=cy,s.selectIssueTypeFieldValuesMapping=ay,s.selectIssueTypeFieldValuesOfIssue=D_,s.selectIssueTypeFields=_t,s.selectIssueTypeFieldsAttachmentById=Np,s.selectIssueTypeFieldsAttachments=vi,s.selectIssueTypeFieldsAttachmentsByIds=Kp,s.selectIssueTypeFieldsAttachmentsMapping=Gp,s.selectIssueTypeFieldsById=Ty,s.selectIssueTypeFieldsByIds=Iy,s.selectIssueTypeFieldsMapping=Ay,s.selectIssueTypeFieldsOfIssueType=C_,s.selectIssueTypeIdentifierById=Ky,s.selectIssueTypeIdentifierMapping=Ny,s.selectIssueTypeIdentifierValueById=cm,s.selectIssueTypeIdentifierValueMapping=nm,s.selectIssueTypeIdentifierValues=Yt,s.selectIssueTypeIdentifierValuesByIds=rm,s.selectIssueTypeIdentifierValuesOfIdentifier=L_,s.selectIssueTypeIdentifierValuesOfIssue=k_,s.selectIssueTypeIdentifiers=$i,s.selectIssueTypeIdentifiersByIds=Wy,s.selectIssueTypeIdentifiersOfIssueType=U_,s.selectIssueTypeMapping=Vm,s.selectIssueTypePriorities=Li,s.selectIssueTypePrioritiesByIds=Im,s.selectIssueTypePrioritiesOfIssueType=H_,s.selectIssueTypePriorityById=Hi,s.selectIssueTypePriorityMapping=Tm,s.selectIssueTypeStatusById=Xi,s.selectIssueTypeStatusMapping=Km,s.selectIssueTypeStatuses=Wi,s.selectIssueTypeStatusesByIds=Wm,s.selectIssueTypeStatusesOfIssueType=N_,s.selectIssueTypeValuesOfIssueType=$_,s.selectIssueTypes=Ni,s.selectIssueTypesByIds=zm,s.selectIssueTypesOfOrganization=G_,s.selectIssueUpdateById=tf,s.selectIssueUpdateMapping=ea,s.selectIssueUpdates=ta,s.selectIssueUpdatesByIds=sf,s.selectIssueUpdatesOfIssue=af,s.selectIssues=Wt,s.selectIssuesByIds=Sp,s.selectIssuesOfIssueType=Ap,s.selectIssuesOfProject=B_,s.selectLatestAssetTypeFieldsOfAssetType=s_,s.selectLatestFieldsByProcedureStep=bM,s.selectLatestFormRevisionOfForm=P_,s.selectLatestIssueTypeFieldsOfIssueType=q_,s.selectLatestProcedureStepFieldValuesReviewByProcedureStepFieldValues=EM,s.selectLatestProcedureStepFieldsOfProcedureStep=PM,s.selectLatestProcedureTypeFieldsOfProcedureType=$M,s.selectLatestRetryTime=J_,s.selectLatestReviewOfProcedureStepFieldValues=gM,s.selectMembershipsByUserOfTeam=NM,s.selectOrganizationAccessById=Rf,s.selectOrganizationAccessMapping=Qt,s.selectOrganizationAccessUserMapping=Ef,s.selectOrganizationAccessesByIds=wf,s.selectOrganizationById=Hf,s.selectOrganizationDocuments=f_,s.selectOrganizations=Lf,s.selectOrganizationsByIds=Gf,s.selectOrganizationsMapping=kf,s.selectProcedureById=qA,s.selectProcedureFieldValues=xa,s.selectProcedureFieldValuesAttachmentById=HP,s.selectProcedureFieldValuesAttachments=Ja,s.selectProcedureFieldValuesAttachmentsByIds=GP,s.selectProcedureFieldValuesAttachmentsMapping=LP,s.selectProcedureFieldValuesById=ab,s.selectProcedureFieldValuesByIds=nb,s.selectProcedureFieldValuesMapping=ib,s.selectProcedureInitiativeById=MA,s.selectProcedureInitiatives=ts,s.selectProcedureInitiativesByIds=gA,s.selectProcedureInitiativesMapping=_A,s.selectProcedureInitiativesOfProcedureType=dM,s.selectProcedureInitiativesOfProject=rM,s.selectProcedureStepAssigneeById=tT,s.selectProcedureStepAssignees=gt,s.selectProcedureStepAssigneesByIds=sT,s.selectProcedureStepAssigneesMapping=eT,s.selectProcedureStepAssigneesOfProcedure=lM,s.selectProcedureStepAssigneesOfProcedureAndProcedureStep=hM,s.selectProcedureStepAssigneesOfProcedureStep=oM,s.selectProcedureStepById=HO,s.selectProcedureStepCommentById=mT,s.selectProcedureStepComments=Rt,s.selectProcedureStepCommentsByIds=fT,s.selectProcedureStepCommentsMapping=yT,s.selectProcedureStepCommentsOfProcedure=pM,s.selectProcedureStepCommentsOfProcedureAndProcedureStep=mM,s.selectProcedureStepCommentsOfProcedureStep=yM,s.selectProcedureStepDefaultAssigneeById=wT,s.selectProcedureStepDefaultAssignees=Oa,s.selectProcedureStepDefaultAssigneesByIds=ET,s.selectProcedureStepDefaultAssigneesMapping=RT,s.selectProcedureStepDefaultAssigneesOfProcedureStep=fM,s.selectProcedureStepDefaultReviewerById=HT,s.selectProcedureStepDefaultReviewers=ba,s.selectProcedureStepDefaultReviewersByIds=GT,s.selectProcedureStepDefaultReviewersMapping=LT,s.selectProcedureStepDefaultReviewersOfProcedureStep=SM,s.selectProcedureStepEventById=iI,s.selectProcedureStepEvents=wt,s.selectProcedureStepEventsByIds=aI,s.selectProcedureStepEventsMapping=sI,s.selectProcedureStepEventsOfProcedure=AM,s.selectProcedureStepEventsOfProcedureAndProcedureStep=IM,s.selectProcedureStepEventsOfProcedureStep=TM,s.selectProcedureStepFieldValues=ot,s.selectProcedureStepFieldValuesAttachmentById=kI,s.selectProcedureStepFieldValuesAttachments=za,s.selectProcedureStepFieldValuesAttachmentsByIds=LI,s.selectProcedureStepFieldValuesAttachmentsMapping=UI,s.selectProcedureStepFieldValuesById=iO,s.selectProcedureStepFieldValuesByIds=aO,s.selectProcedureStepFieldValuesMapping=sO,s.selectProcedureStepFieldValuesOfProcedure=FM,s.selectProcedureStepFieldValuesOfProcedureAndProcedureStep=MM,s.selectProcedureStepFieldValuesOfProcedureStep=_M,s.selectProcedureStepFieldValuesReviewById=yO,s.selectProcedureStepFieldValuesReviews=ht,s.selectProcedureStepFieldValuesReviewsByIds=mO,s.selectProcedureStepFieldValuesReviewsMapping=pO,s.selectProcedureStepFieldValuesReviewsOfProcedure=RM,s.selectProcedureStepFieldValuesReviewsOfProcedureAndProcedureStep=wM,s.selectProcedureStepFields=ss,s.selectProcedureStepFieldsAttachmentById=fI,s.selectProcedureStepFieldsAttachments=Ra,s.selectProcedureStepFieldsAttachmentsByIds=SI,s.selectProcedureStepFieldsAttachmentsMapping=yI,s.selectProcedureStepFieldsById=wI,s.selectProcedureStepFieldsByIds=EI,s.selectProcedureStepFieldsMapping=Ea,s.selectProcedureStepFieldsOfProcedureStep=OM,s.selectProcedureStepReviewerById=wO,s.selectProcedureStepReviewers=Et,s.selectProcedureStepReviewersByIds=EO,s.selectProcedureStepReviewersMapping=RO,s.selectProcedureStepReviewersOfProcedure=vM,s.selectProcedureStepReviewersOfProcedureAndProcedureStep=BM,s.selectProcedureStepReviewersOfProcedureStep=VM,s.selectProcedureSteps=La,s.selectProcedureStepsByIds=GO,s.selectProcedureStepsMapping=ka,s.selectProcedureStepsMappingOfProcedureType=zM,s.selectProcedureStepsOfProcedureType=jM,s.selectProcedureTypeAttachmentById=iP,s.selectProcedureTypeAttachmentMapping=sP,s.selectProcedureTypeAttachments=Ga,s.selectProcedureTypeAttachmentsByIds=aP,s.selectProcedureTypeById=Ab,s.selectProcedureTypeFields=is,s.selectProcedureTypeFieldsAttachmentById=SP,s.selectProcedureTypeFieldsAttachments=Ka,s.selectProcedureTypeFieldsAttachmentsByIds=AP,s.selectProcedureTypeFieldsAttachmentsMapping=fP,s.selectProcedureTypeFieldsById=vP,s.selectProcedureTypeFieldsByIds=VP,s.selectProcedureTypeFieldsMapping=EP,s.selectProcedureTypeFieldsOfProcedureType=qM,s.selectProcedureTypes=tn,s.selectProcedureTypesByIds=Tb,s.selectProcedureTypesMapping=Sb,s.selectProcedureTypesOfOrganization=kM,s.selectProcedures=lt,s.selectProceduresByIds=$A,s.selectProceduresMapping=CA,s.selectProceduresOfAsset=kA,s.selectProceduresOfAssets=LA,s.selectProceduresOfProcedureInitiative=HA,s.selectProceduresOfProcedureType=UA,s.selectProceduresOfProject=uM,s.selectProjectAccessById=uS,s.selectProjectAccessMapping=la,s.selectProjectAccesses=Mt,s.selectProjectAccessesByIds=lS,s.selectProjectAccessesOfProject=x_,s.selectProjectAttachmentById=PS,s.selectProjectAttachmentMapping=OS,s.selectProjectAttachments=ha,s.selectProjectAttachmentsByIds=bS,s.selectProjectById=hA,s.selectProjectCommentById=DS,s.selectProjectCommentMapping=jS,s.selectProjectComments=xt,s.selectProjectCommentsByIds=CS,s.selectProjectDocuments=m_,s.selectProjectFileById=JS,s.selectProjectFileMapping=YS,s.selectProjectFiles=ZS,s.selectProjectFilesByIds=QS,s.selectProjectMapping=oA,s.selectProjects=es,s.selectProjectsByIds=pA,s.selectProjectsOfOrganization=cM,s.selectRehydrated=GM,s.selectReportById=Bb,s.selectReportMapping=vb,s.selectReports=Vb,s.selectReportsByIds=zb,s.selectReviewsOfProcedureStepFieldValues=fO,s.selectTeamById=rF,s.selectTeamMembershipById=Xb,s.selectTeamMemberships=as,s.selectTeamMembershipsByIds=Yb,s.selectTeamMembershipsMapping=Wb,s.selectTeams=rn,s.selectTeamsByIds=dF,s.selectTeamsMapping=cF,s.selectTeamsOfOrganization=WM,s.selectUserById=Jt,s.selectUsers=Zt,s.selectUsersByIds=ff,s.selectUsersMapping=na,s.selectUsersOfOrganization=Y_,s.selectUsersOfProject=tM,s.selectUsersOfTeam=KM,s.setAsset=sc,s.setAssetAttachment=Mn,s.setAssetAttachments=gn,s.setAssetComment=$n,s.setAssetComments=Un,s.setAssetType=xr,s.setAssetTypeAttachment=hc,s.setAssetTypeAttachments=pc,s.setAssetTypeFieldValues=pr,s.setAssetTypeFieldValuesAttachment=xc,s.setAssetTypeFieldValuesAttachments=er,s.setAssetTypeFieldValuesMany=yr,s.setAssetTypeFields=Uc,s.setAssetTypeFieldsAttachment=Mc,s.setAssetTypeFieldsAttachments=gc,s.setAssetTypeFieldsMany=kc,s.setAssetTypeIdentifier=gr,s.setAssetTypeIdentifierValue=kr,s.setAssetTypeIdentifierValues=Lr,s.setAssetTypeIdentifiers=Rr,s.setAssetTypeStatus=md,s.setAssetTypeStatuses=fd,s.setAssetTypes=ed,s.setAssets=ic,s.setClientSDK=BF,s.setClientStore=vF,s.setConversation=In,s.setConversations=WF,s.setCurrentUser=K_,s.setCurrentUserProfile=W_,s.setDocument=Kd,s.setDocumentAttachment=Vd,s.setDocumentAttachments=Bd,s.setDocuments=Wd,s.setEmailDomain=cu,s.setEmailDomains=ru,s.setForm=zl,s.setFormIdentifier=Iu,s.setFormIdentifierValue=zu,s.setFormIdentifierValues=ju,s.setFormIdentifiers=Ou,s.setFormRevision=rl,s.setFormRevisionAttachment=Xu,s.setFormRevisionAttachments=Yu,s.setFormRevisions=dl,s.setFormSubmission=Eo,s.setFormSubmissionComment=Ao,s.setFormSubmissionComments=To,s.setFormSubmissionFieldValues=ao,s.setFormSubmissionFieldValuesAttachment=Wl,s.setFormSubmissionFieldValuesAttachments=Xl,s.setFormSubmissionFieldValuesMany=no,s.setFormSubmissions=vo,s.setFormSubscriber=Il,s.setFormSubscribers=Ol,s.setForms=jl,s.setGeoImage=Wo,s.setGeoImages=Xo,s.setIssue=lp,s.setIssueAssociation=dh,s.setIssueAssociations=rh,s.setIssueAttachment=Fh,s.setIssueAttachments=_h,s.setIssueComment=Qh,s.setIssueCommentAttachment=qh,s.setIssueCommentAttachments=$h,s.setIssueComments=xh,s.setIssueType=Mm,s.setIssueTypeAttachment=Fp,s.setIssueTypeAttachments=_p,s.setIssueTypeFieldValues=Qp,s.setIssueTypeFieldValuesAttachment=_y,s.setIssueTypeFieldValuesAttachments=My,s.setIssueTypeFieldValuesMany=xp,s.setIssueTypeFields=hy,s.setIssueTypeFieldsAttachment=qp,s.setIssueTypeFieldsAttachments=$p,s.setIssueTypeFieldsMany=py,s.setIssueTypeIdentifier=$y,s.setIssueTypeIdentifierValue=xy,s.setIssueTypeIdentifierValues=em,s.setIssueTypeIdentifiers=Uy,s.setIssueTypePriorities=ym,s.setIssueTypePriority=pm,s.setIssueTypeStatus=Um,s.setIssueTypeStatuses=km,s.setIssueTypes=gm,s.setIssueUpdate=Jm,s.setIssueUpdates=Qm,s.setIssues=op,s.setLoggedIn=Md,s.setOrganization=zf,s.setOrganizationAccess=Of,s.setOrganizationAccesses=Pf,s.setOrganizations=Bf,s.setProcedure=vA,s.setProcedureFieldValues=ZP,s.setProcedureFieldValuesAttachment=DP,s.setProcedureFieldValuesAttachments=CP,s.setProcedureFieldValuesMany=JP,s.setProcedureInitiative=AA,s.setProcedureInitiatives=TA,s.setProcedureStep=zO,s.setProcedureStepAssignee=XA,s.setProcedureStepAssignees=YA,s.setProcedureStepComment=dT,s.setProcedureStepComments=uT,s.setProcedureStepDefaultAssignee=PT,s.setProcedureStepDefaultAssignees=bT,s.setProcedureStepDefaultReviewer=DT,s.setProcedureStepDefaultReviewers=CT,s.setProcedureStepEvent=ZT,s.setProcedureStepEvents=JT,s.setProcedureStepFieldValues=YI,s.setProcedureStepFieldValuesAttachment=jI,s.setProcedureStepFieldValuesAttachments=DI,s.setProcedureStepFieldValuesMany=ZI,s.setProcedureStepFieldValuesReview=dO,s.setProcedureStepFieldValuesReviews=uO,s.setProcedureStepFields=bI,s.setProcedureStepFieldsAttachment=uI,s.setProcedureStepFieldsAttachments=lI,s.setProcedureStepFieldsMany=FI,s.setProcedureStepReviewer=PO,s.setProcedureStepReviewers=bO,s.setProcedureSteps=jO,s.setProcedureType=lb,s.setProcedureTypeAttachment=YO,s.setProcedureTypeAttachments=ZO,s.setProcedureTypeFields=bP,s.setProcedureTypeFieldsAttachment=uP,s.setProcedureTypeFieldsAttachments=lP,s.setProcedureTypeFieldsMany=FP,s.setProcedureTypes=ob,s.setProcedures=VA,s.setProject=iA,s.setProjectAccess=sS,s.setProjectAccesses=iS,s.setProjectAttachment=mS,s.setProjectAttachments=fS,s.setProjectComment=wS,s.setProjectComments=ES,s.setProjectFile=kS,s.setProjectFiles=LS,s.setProjects=sA,s.setRehydrated=HM,s.setReport=_b,s.setReports=Mb,s.setTeam=eF,s.setTeamMembership=Ub,s.setTeamMemberships=kb,s.setTeams=tF,s.setTokens=l_,s.setUser=uf,s.setUsers=df,s.teamMembershipReducer=Kb,s.teamMembershipSlice=nn,s.teamReducer=uF,s.teamSlice=cn,s.updateAsset=xn,s.updateAssetAttachment=Rn,s.updateAssetAttachments=wn,s.updateAssetComment=kn,s.updateAssetComments=Ln,s.updateAssetType=id,s.updateAssetTypeAttachment=yc,s.updateAssetTypeAttachments=mc,s.updateAssetTypeFieldValues=mr,s.updateAssetTypeFieldValuesAttachment=tr,s.updateAssetTypeFieldValuesAttachments=sr,s.updateAssetTypeFieldValuesMany=fr,s.updateAssetTypeFields=Lc,s.updateAssetTypeFieldsAttachment=Rc,s.updateAssetTypeFieldsAttachments=wc,s.updateAssetTypeFieldsMany=Hc,s.updateAssetTypeIdentifier=wr,s.updateAssetTypeIdentifierValue=Hr,s.updateAssetTypeIdentifierValues=Gr,s.updateAssetTypeIdentifiers=Er,s.updateAssetTypeStatus=Sd,s.updateAssetTypeStatuses=Ad,s.updateAssetTypes=ad,s.updateAssets=ec,s.updateConversation=On,s.updateConversations=XF,s.updateDocument=Xd,s.updateDocumentAttachment=zd,s.updateDocumentAttachments=jd,s.updateDocuments=Yd,s.updateEmailDomain=du,s.updateEmailDomains=uu,s.updateForm=Dl,s.updateFormIdentifier=Pu,s.updateFormIdentifierValue=Du,s.updateFormIdentifierValues=Cu,s.updateFormIdentifiers=bu,s.updateFormRevision=ul,s.updateFormRevisionAttachment=Zu,s.updateFormRevisionAttachments=Ju,s.updateFormRevisions=ll,s.updateFormSubmission=Bo,s.updateFormSubmissionComment=Io,s.updateFormSubmissionComments=Oo,s.updateFormSubmissionFieldValues=co,s.updateFormSubmissionFieldValuesAttachment=Yl,s.updateFormSubmissionFieldValuesAttachments=Zl,s.updateFormSubmissionFieldValuesMany=ro,s.updateFormSubmissions=zo,s.updateFormSubscriber=Pl,s.updateFormSubscribers=bl,s.updateForms=Cl,s.updateGeoImage=Jo,s.updateGeoImages=Qo,s.updateIssue=hp,s.updateIssueAssociation=uh,s.updateIssueAssociations=lh,s.updateIssueAttachment=Mh,s.updateIssueAttachments=gh,s.updateIssueComment=ep,s.updateIssueCommentAttachment=Uh,s.updateIssueCommentAttachments=kh,s.updateIssueComments=tp,s.updateIssueType=Rm,s.updateIssueTypeAttachment=Mp,s.updateIssueTypeAttachments=gp,s.updateIssueTypeFieldValues=ey,s.updateIssueTypeFieldValuesAttachment=gy,s.updateIssueTypeFieldValuesAttachments=Ry,s.updateIssueTypeFieldValuesMany=ty,s.updateIssueTypeFields=yy,s.updateIssueTypeFieldsAttachment=Up,s.updateIssueTypeFieldsAttachments=kp,s.updateIssueTypeFieldsMany=my,s.updateIssueTypeIdentifier=ky,s.updateIssueTypeIdentifierValue=tm,s.updateIssueTypeIdentifierValues=sm,s.updateIssueTypeIdentifiers=Ly,s.updateIssueTypePriorities=fm,s.updateIssueTypePriority=mm,s.updateIssueTypeStatus=Lm,s.updateIssueTypeStatuses=Hm,s.updateIssueTypes=wm,s.updateIssueUpdate=xm,s.updateIssueUpdates=ef,s.updateIssues=pp,s.updateOrganization=qf,s.updateOrganizationAccess=bf,s.updateOrganizationAccesses=Ff,s.updateOrganizations=Cf,s.updateProcedure=BA,s.updateProcedureFieldValues=QP,s.updateProcedureFieldValuesAttachment=qP,s.updateProcedureFieldValuesAttachments=$P,s.updateProcedureFieldValuesMany=xP,s.updateProcedureInitiative=IA,s.updateProcedureInitiatives=OA,s.updateProcedureStep=qO,s.updateProcedureStepAssignee=ZA,s.updateProcedureStepAssignees=JA,s.updateProcedureStepComment=lT,s.updateProcedureStepComments=oT,s.updateProcedureStepDefaultAssignee=FT,s.updateProcedureStepDefaultAssignees=_T,s.updateProcedureStepDefaultReviewer=qT,s.updateProcedureStepDefaultReviewers=$T,s.updateProcedureStepEvent=QT,s.updateProcedureStepEvents=xT,s.updateProcedureStepFieldValues=JI,s.updateProcedureStepFieldValuesAttachment=CI,s.updateProcedureStepFieldValuesAttachments=qI,s.updateProcedureStepFieldValuesMany=QI,s.updateProcedureStepFieldValuesReview=lO,s.updateProcedureStepFieldValuesReviews=oO,s.updateProcedureStepFields=_I,s.updateProcedureStepFieldsAttachment=oI,s.updateProcedureStepFieldsAttachments=hI,s.updateProcedureStepFieldsMany=MI,s.updateProcedureStepReviewer=FO,s.updateProcedureStepReviewers=_O,s.updateProcedureSteps=$O,s.updateProcedureType=hb,s.updateProcedureTypeAttachment=JO,s.updateProcedureTypeAttachments=QO,s.updateProcedureTypeFields=_P,s.updateProcedureTypeFieldsAttachment=oP,s.updateProcedureTypeFieldsAttachments=hP,s.updateProcedureTypeFieldsMany=MP,s.updateProcedureTypes=pb,s.updateProcedures=zA,s.updateProject=rA,s.updateProjectAccess=aS,s.updateProjectAccesses=nS,s.updateProjectAttachment=SS,s.updateProjectAttachments=AS,s.updateProjectComment=vS,s.updateProjectComments=VS,s.updateProjectFile=NS,s.updateProjectFiles=KS,s.updateProjects=cA,s.updateReport=gb,s.updateReports=Rb,s.updateTeam=sF,s.updateTeamMembership=Lb,s.updateTeamMemberships=Hb,s.updateTeams=iF,s.updateUser=hf,s.updateUsers=of,s.userReducer=yf,s.userSlice=sa,Object.defineProperty(s,Symbol.toStringTag,{value:"Module"})}));
13
+ external URLs and therefore not prepended with VITE_API_URL.`;throw new Error(f)}return await this.cacheFile(p),p}processPresignedUrl(e,i){if("warning"in i){if(i.warning==="already_uploaded")return Promise.resolve(void 0);throw console.error(i.warning),new Error(i.warning)}return this.enqueueRequest({url:i.url,description:"Upload file to S3",method:o.POST,isExternalUrl:!0,isAuthNeeded:!1,attachmentHash:e,blockers:[`s3-${i.fields.key}`,"s3-presigned-upload"],blocks:[e,"s3-presigned-upload"],s3url:i})}processPresignedUrls(e){const i={};for(const[a,n]of Object.entries(e))i[a]=this.processPresignedUrl(a,n);return i}async getFilePayload(e){const a={sha1:await rs(e),file_type:e.type,extension:t_(e),size:e.size};return await this.client.files.cacheFile(e),a}async cachePresignedUrl(e,i){if(Sn.has(e))return;const a=await this.getDB();!!await a.get("presignedUrls",e)?console.warn(`Attempting to add a presigned url already cached, ${i}`):await a.put("presignedUrls",i,e),Sn.add(e)}async uncachePresignedUrl(e){await(await this.getDB()).delete("presignedUrls",e),Sn.delete(e)}async getPresignedUrlFromCache(e){const i=await(await this.getDB()).get("presignedUrls",e);if(!i)return;if(d_(i)){await this.uncachePresignedUrl(e);return}return i}}class uR extends g{name="Form Identifier";url="/form-identifiers";actions={addOne:qu,addMany:$u,setOne:Uu,setMany:ku,updateOne:Lu,updateMany:Hu,deleteOne:Gu,deleteMany:Nu,initialize:Du};selectors={selectById:Wu,selectByIds:Xu};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=this.select(h=>h.userReducer.currentUser?.id??null),d=new Date().toISOString(),r=l.uuidObj({...e,created_by:c,submitted_at:d});this.dispatch(i(r));const p=this.enqueueRequest({description:y(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(r),blockers:[r.form],blocks:[r.uuid]});return p.then(h=>{this.dispatch(a(h))}).catch(()=>{this.dispatch(n(r.uuid))}),[r,p]}update(e){const{updateOne:i}=this.actions,{selectById:a}=this.selectors,n=this.select(a(e.uuid));if(!n)throw new Error(`Expected form identifier with uuid ${e.uuid} to exist`);const c={...n,...e};this.dispatch(i(c));const d=this.enqueueRequest({description:y(o.PATCH,this.name,!1),method:o.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return d.then(r=>{this.dispatch(i(r))}).catch(()=>{this.dispatch(i(n))}),[c,d]}async delete(e){const{deleteOne:i,addOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`Expected form identifier with uuid ${e} to exist`);this.dispatch(i(e));try{return await this.enqueueRequest({description:y(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(d){throw this.dispatch(a(c)),d}}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({queryParams:{form__organization:e}},i);return this.dispatch(a(n)),n}}class lR extends g{name="Form Identifier Value";url="/form-identifier-values";actions={addOne:Qu,addMany:xu,setOne:el,setMany:tl,updateOne:sl,updateMany:il,deleteOne:al,deleteMany:nl,initialize:Ju};selectors={selectById:rl,selectByIds:dl};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=this.select(h=>h.userReducer.currentUser?.id??null),d=new Date().toISOString(),r=l.uuidObj({...e,created_by:c,submitted_at:d});this.dispatch(i(r));const p=this.enqueueRequest({description:y(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(r),blockers:[e.form_submission,e.form_identifier],blocks:[r.uuid]});return p.then(h=>{this.dispatch(a(h))}).catch(()=>{this.dispatch(n(r.uuid))}),[r,p]}async delete(e){const{deleteOne:i,addOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`Expected form identifier value with uuid ${e} to exist`);this.dispatch(i(e));try{return await this.enqueueRequest({description:y(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(d){throw this.dispatch(a(c)),d}}async refreshStore(e,i){const{initialize:a}=this.actions,c=(await Promise.all([this.listPaginated({queryParams:{latest:!0,form_submission__organization:e}},i),this.listPaginated({queryParams:{latest:!0,form_submission__project__organization:e}},i)])).flatMap(d=>d.flat());return this.dispatch(a(c)),c}}class oR extends v{name="Form Revision Attachment";url="/form-revision-attachments";actions={addOne:hl,addMany:pl,setOne:ml,setMany:yl,updateOne:fl,updateMany:Sl,deleteOne:Al,deleteMany:Tl,initialize:ol};selectors={selectById:bl,selectByIds:Ol};getId(e){return e.uuid}getBlockers(e){return[e.form_revision]}getBlocks(e){return[e.uuid]}buildModel(e){const i=this.select(n=>n.userReducer.currentUser?.id??null),a=new Date().toISOString();return l.uuidObj({...e,created_by:i,submitted_at:a})}buildPayload(e){const{uuid:i,field_identifier:a,form_revision:n,file_sha1:c,file_name:d,file_extension:r}=e;return{uuid:i,submitted_at:e.submitted_at,field_identifier:a,form_revision:n,file_sha1:c,file_name:d,file_extension:r}}buildBulkPayload(e){const{uuid:i,field_identifier:a,form_revision:n,file_sha1:c,file_name:d,file_extension:r}=e;return{uuid:i,field_identifier:a,form_revision:n,file_sha1:c,file_name:d,file_extension:r}}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({queryParams:{form_revision__form__organization:e}},i);return this.dispatch(a(n)),n}}class hR extends g{name="Form Revision";url="/form-revisions";actions={addOne:Ml,addMany:Js,setOne:gl,setMany:Rl,updateOne:wl,updateMany:El,deleteOne:vl,deleteMany:Qs,initialize:_l};selectors={selectById:Bl,selectByIds:zl};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=this.select(h=>h.userReducer.currentUser?.id??null),d=new Date().toISOString(),r=l.uuidObj({...e,created_by:c,submitted_at:d});this.dispatch(i(r));const p=this.enqueueRequest({description:y(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(r),blockers:[e.form],blocks:[r.uuid]});return p.then(h=>{this.dispatch(a(h))}).catch(()=>{this.dispatch(n(r.uuid))}),[r,p]}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({queryParams:{form__organization:e}},i);return this.dispatch(a(n)),n}}class pR extends g{name="Form";url="/forms";actions={addOne:Ql,addMany:xl,setOne:eo,setMany:to,updateOne:so,updateMany:io,deleteOne:ao,deleteMany:no,initialize:Jl};selectors={selectById:uo,selectByIds:lo};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=new Date().toISOString(),d=this.select(h=>h.userReducer.currentUser?.id??null),r=l.uuidObj({...e,submitted_at:c,created_by:d});this.dispatch(i(r));const p=this.enqueueRequest({description:y(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(r),blockers:[],blocks:[r.uuid]});return p.then(h=>{this.dispatch(a(h))}).catch(()=>{this.dispatch(n(r.uuid))}),[r,p]}update(e){const{updateOne:i}=this.actions,{selectById:a}=this.selectors,n=this.select(a(e.uuid));if(!n)throw new Error(`Expected form with uuid ${e.uuid} to exist`);const c={...n,...e};this.dispatch(i(c));const d=this.enqueueRequest({description:y(o.PATCH,this.name,!1),method:o.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[n.uuid],blocks:[n.uuid]});return d.then(r=>{this.dispatch(i(r))}).catch(()=>{this.dispatch(i(n))}),[c,d]}async delete(e){const{deleteOne:i,addOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error("Expected form to exist");const d=this.select(Th(e)),r=this.select(jl(e)),p=this.select(Xl(e));this.dispatch(i(e)),this.dispatch(ot(l.toUuidArray(d))),this.dispatch(Qs(l.toUuidArray(r))),this.dispatch(ti(l.toUuidArray(p)));try{return await this.enqueueRequest({description:y(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(h){throw this.dispatch(a(c)),this.dispatch(Js(r)),this.dispatch(lt(d)),this.dispatch(ei(p)),h}}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({queryParams:{organization:e}},i);return this.dispatch(a(n)),n}}class mR extends g{name="Form Subscriber";url="/form-subscribers";actions={addOne:$l,addMany:ei,setOne:Ul,setMany:kl,updateOne:Ll,updateMany:Hl,deleteOne:Gl,deleteMany:ti,initialize:ql};selectors={selectById:Kl,selectByIds:Wl};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=new Date().toISOString(),d=this.select(h=>h.userReducer.currentUser?.id??null),r=l.uuidObj({...e,created_by:d,submitted_at:c});this.dispatch(i(r));const p=this.enqueueRequest({description:y(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(r),blockers:[r.form],blocks:[r.uuid]});return p.then(h=>{this.dispatch(a(h))}).catch(()=>{this.dispatch(n(r.uuid))}),[r,p]}async delete(e){const{deleteOne:i,addOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`Expected form subscriber with uuid ${e} to exist`);this.dispatch(i(e));try{return await this.enqueueRequest({description:y(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(d){throw this.dispatch(a(c)),d}}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({queryParams:{form__organization:e}},i);return this.dispatch(a(n)),n}}class yR extends v{name="Form Submission Field Values Attachment";url="/form-submission-field-values-attachments";actions={addOne:po,addMany:ni,setOne:mo,setMany:yo,updateOne:fo,updateMany:So,deleteOne:Ao,deleteMany:ci,initialize:ho};selectors={selectById:To,selectByIds:ui};getId(e){return e.uuid}getBlockers(e){return[e.field_values]}getBlocks(e){return[e.uuid]}buildModel(e){const i=this.select(n=>n.userReducer.currentUser?.id??null),a=new Date().toISOString();return l.uuidObj({...e,created_by:i,submitted_at:a})}buildPayload(e){const{uuid:i,field_identifier:a,field_values:n,file_sha1:c,file_name:d,file_extension:r}=e;return{uuid:i,submitted_at:e.submitted_at,field_identifier:a,field_values:n,file_sha1:c,file_name:d,file_extension:r}}buildBulkPayload(e){const{uuid:i,field_identifier:a,field_values:n,file_sha1:c,file_name:d,file_extension:r}=e;return{uuid:i,field_identifier:a,field_values:n,file_sha1:c,file_name:d,file_extension:r}}async bulkDelete(e){const{deleteMany:i,addMany:a}=this.actions,n=this.select(ui(e));this.dispatch(i(e));try{return await this.enqueueRequest({description:y(o.DELETE,this.name,!0),method:o.DELETE,url:`${this.url}/bulk/`,payload:{uuids:e},blockers:e,blocks:[]})}catch(c){throw this.dispatch(a(n)),c}}async refreshStore(e,i){const{initialize:a}=this.actions,c=(await Promise.all([this.listPaginated({queryParams:{latest:!0,field_values__form_submission__organization:e}},i),this.listPaginated({queryParams:{latest:!0,field_values__form_submission__project__organization:e}},i)])).flatMap(d=>d.flat());return this.dispatch(a(c)),c}}class fR extends g{name="Form Submission Field Values";url="/form-submission-field-values";actions={addOne:Fo,addMany:oi,setOne:_o,setMany:Mo,updateOne:go,updateMany:Ro,deleteOne:wo,deleteMany:hi,initialize:Po};selectors={selectById:vo,selectByIds:Vo};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=this.select(h=>h.userReducer.currentUser?.id??null),d=new Date().toISOString(),r=l.uuidObj({...e,created_by:c,submitted_at:d});this.dispatch(i(r));const p=this.enqueueRequest({description:y(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(r),blockers:[r.form_submission],blocks:[r.uuid]});return p.then(h=>{this.dispatch(a(h))}).catch(()=>{this.dispatch(n(r.uuid))}),[r,p]}async refreshStore(e,i){const{initialize:a}=this.actions,c=(await Promise.all([this.listPaginated({queryParams:{latest:!0,form_submission__organization:e}},i),this.listPaginated({queryParams:{latest:!0,form_submission__project__organization:e}},i)])).flatMap(d=>d.flat());return this.dispatch(a(c)),c}}class SR extends v{name="Form Submission Comment Attachment";url="/form-submission-comment-attachments";actions={addOne:Do,addMany:qo,setOne:$o,setMany:Uo,updateOne:ko,updateMany:Lo,deleteOne:Ho,deleteMany:Go,initialize:Co};selectors={selectById:Ko,selectByIds:Wo};getId(e){return e.uuid}getBlockers(e){return[e.form_submission_comment]}getBlocks(e){return[e.uuid]}buildModel(e){const i=this.select(n=>n.userReducer.currentUser?.id??null),a=new Date().toISOString();return l.uuidObj({...e,created_by:i,submitted_at:a})}buildPayload(e){return{uuid:e.uuid,submitted_at:e.submitted_at,file_name:e.file_name,file_sha1:e.file_sha1,file_extension:e.file_extension,form_submission_comment:e.form_submission_comment}}buildBulkPayload(e){return{uuid:e.uuid,file_name:e.file_name,file_sha1:e.file_sha1,file_extension:e.file_extension,form_submission_comment:e.form_submission_comment}}async bulkDelete(e){const{deleteMany:i,addMany:a}=this.actions,{selectByIds:n}=this.selectors,c=this.select(n(e));this.dispatch(i(e));try{return await this.enqueueRequest({description:y(o.DELETE,this.name,!0),method:o.DELETE,url:`${this.url}/bulk/`,payload:{uuids:e},blockers:e,blocks:[]})}catch(d){throw this.dispatch(a(c)),d}}async refreshStore(e,i){const{initialize:a}=this.actions,c=(await Promise.all([this.listPaginated({queryParams:{form_submission_comment__form_submission__organization:e}},i),this.listPaginated({queryParams:{form_submission_comment__form_submission__project__organization:e}},i)])).flatMap(d=>d.flat());return this.dispatch(a(c)),c}}class AR extends g{name="Form Submission Comment";url="/form-submission-comments";actions={addOne:Jo,addMany:Si,setOne:Qo,setMany:xo,updateOne:eh,updateMany:th,deleteOne:sh,deleteMany:Ai,initialize:Zo};selectors={selectById:ah,selectByIds:nh};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=l.uuidObj({...e,created_by:this.select(r=>r.userReducer.currentUser?.id??null),submitted_at:new Date().toISOString()});this.dispatch(i(c));const d=this.enqueueRequest({description:y(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(c),blockers:[c.form_submission],blocks:[c.uuid]});return d.then(r=>{this.dispatch(a(r))}).catch(()=>{this.dispatch(n(c.uuid))}),[c,d]}update(e){const{updateOne:i}=this.actions,{selectById:a}=this.selectors,n=this.select(a(e.uuid));if(!n)throw new Error(`Form submission comment with uuid ${e.uuid} not found in store`);const c={...n,...e};this.dispatch(i(c));const d=this.enqueueRequest({description:y(o.PATCH,this.name,!1),method:o.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return d.then(r=>{this.dispatch(i(r))}).catch(()=>{this.dispatch(i(n))}),[c,d]}async delete(e){const{deleteOne:i,addOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`Form submission comment with uuid ${e} not found in store`);this.dispatch(i(e));try{return await this.enqueueRequest({description:y(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(d){throw this.dispatch(a(c)),d}}async refreshStore(e,i){const{initialize:a}=this.actions,c=(await Promise.all([this.listPaginated({queryParams:{form_submission__organization:e}},i),this.listPaginated({queryParams:{form_submission__project__organization:e}},i)])).flatMap(d=>d.flat());return this.dispatch(a(c)),c}}class TR extends g{name="Form Submission";url="/form-submissions";actions={addOne:hh,addMany:lt,setOne:lh,setMany:oh,updateOne:ph,updateMany:mh,deleteOne:yh,deleteMany:ot,initialize:uh};selectors={selectById:Sh,selectByIds:Ah};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=this.select(h=>h.userReducer.currentUser?.id??null),d=new Date().toISOString(),r=l.uuidObj({...e,created_by:c,submitted_at:d}),p=this.enqueueRequest({description:y(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(r),blockers:[e.form_revision],blocks:[r.uuid]});return this.dispatch(i(r)),p.then(h=>{this.dispatch(a(h))}).catch(()=>{this.dispatch(n(r.uuid))}),[r,p]}update(e){const{updateOne:i}=this.actions,{selectById:a}=this.selectors,n=this.select(a(e.uuid));if(!n)throw new Error(`Expected submission with uuid ${e.uuid} to exist`);const c={...n,...e};this.dispatch(i(c));const d=this.enqueueRequest({description:y(o.PATCH,this.name,!1),method:o.PATCH,url:`${this.url}/${c.uuid}/`,payload:e,blockers:[c.uuid],blocks:[c.uuid]});return d.then(r=>{this.dispatch(i(r))}).catch(()=>{this.dispatch(i(n))}),[c,d]}async delete(e){const{deleteOne:i,addOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`Expected submission with uuid ${e} to exist`);const d=this.select(Bo(e)),r=d.flatMap(({uuid:h})=>this.select(Io(h))),p=this.select(ch(e));this.dispatch(i(e)),this.dispatch(hi(l.toUuidArray(d))),this.dispatch(ci(l.toUuidArray(r))),this.dispatch(Ai(l.toUuidArray(p)));try{return await this.enqueueRequest({description:y(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(h){throw this.dispatch(a(c)),this.dispatch(oi(d)),this.dispatch(ni(r)),this.dispatch(Si(p)),h}}async refreshStore(e,i){const{initialize:a}=this.actions,c=(await Promise.all([this.listPaginated({queryParams:{organization:e}},i),this.listPaginated({queryParams:{project__organization:e}},i)])).flatMap(d=>d.flat());return this.dispatch(a(c)),c}}class IR extends v{name="Geo Image";url="/geo-images";actions={addOne:wh,addMany:Eh,setOne:gh,setMany:Rh,updateOne:vh,updateMany:Vh,deleteOne:Bh,deleteMany:zh,initialize:Mh};selectors={selectById:Ch,selectByIds:Dh};getId(e){return e.uuid}getBlockers(e){return[e.project]}getBlocks(e){return[e.uuid]}buildModel(e){const i=this.select(n=>n.userReducer.currentUser?.id??null),a=new Date().toISOString();return l.uuidObj({...e,created_by:i,submitted_at:a})}buildPayload(e){return{uuid:e.uuid,submitted_at:e.submitted_at,file_sha1:e.file_sha1,file_name:e.file_name,file_extension:e.file_extension,title:e.title,description:e.description,geo_marker:e.geo_marker,direction:e.direction,original_date:e.original_date,project:e.project}}buildBulkPayload(e){return{uuid:e.uuid,file_sha1:e.file_sha1,file_name:e.file_name,file_extension:e.file_extension,title:e.title,description:e.description,geo_marker:e.geo_marker,direction:e.direction,original_date:e.original_date,project:e.project}}update(e){const{updateOne:i}=this.actions,{selectById:a}=this.selectors,n=this.select(a(e.uuid));if(!n)throw new Error(`Geo image with uuid ${e.uuid} does not exist in the store`);const c={...n,...e};this.dispatch(i(c));const d=this.enqueueRequest({description:y(o.PATCH,this.name,!1),method:o.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blocks:[e.uuid],blockers:[e.uuid]});return d.then(r=>{this.dispatch(i(r))}).catch(()=>{this.dispatch(i(n))}),[c,d]}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({queryParams:{project:e}},i);return this.dispatch(a(n)),n}}class bR extends g{name="Issue Association";url="/issue-associations";actions={addOne:Nh,addMany:At,setOne:Lh,setMany:kh,updateOne:Hh,updateMany:Gh,deleteOne:Kh,deleteMany:Tt,initialize:Uh};selectors={selectById:Xh,selectByIds:Yh};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=new Date().toISOString(),d=this.select(h=>h.userReducer.currentUser?.id??null),r=l.uuidObj({...e,submitted_at:c,created_by:d});this.dispatch(i(r));const p=this.enqueueRequest({description:y(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(r),blockers:[e.issue,e.asset],blocks:[r.uuid]});return p.then(h=>{this.dispatch(a(h))}).catch(()=>{this.dispatch(n(r.uuid))}),[r,p]}bulkAdd(e){const{addMany:i,deleteMany:a,updateMany:n}=this.actions,c=this.select(h=>h.userReducer.currentUser?.id??null),d=new Date().toISOString(),r=e.map(h=>l.uuidObj({...h,submitted_at:d,created_by:c}));this.dispatch(i(r));const p=this.enqueueRequest({description:y(o.POST,this.name,!0),method:o.POST,url:`${this.url}/bulk/`,payload:{payloads:r.map(h=>M(h)),submitted_at:d},blockers:r.flatMap(h=>[h.issue,h.asset]),blocks:l.toUuidArray(r)});return p.then(h=>{this.dispatch(n(h))}).catch(()=>{this.dispatch(a(l.toUuidArray(r)))}),[r,p]}async delete(e){const{deleteOne:i,addOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`Issue association with uuid ${e} not found in store.`);this.dispatch(i(e));try{return await this.enqueueRequest({description:y(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(d){throw this.dispatch(a(c)),d}}async refreshStore(e,i){const{initialize:a}=this.actions,c=(await this.listPaginated({queryParams:{issue__project:e}},i)).flat();return this.dispatch(a(c)),c}}class OR extends v{name="Issue Attachment";url="/issue-attachments";actions={addOne:ip,addMany:Fi,setOne:ap,setMany:np,updateOne:cp,updateMany:rp,deleteOne:dp,deleteMany:_i,initialize:sp};selectors={selectById:op,selectByIds:hp};getId(e){return e.uuid}getBlockers(e){return[e.issue]}getBlocks(e){return[e.uuid]}buildModel(e){const i=this.select(n=>n.userReducer.currentUser?.id??null),a=new Date().toISOString();return l.uuidObj({...e,created_by:i,submitted_at:a})}buildPayload(e){return{uuid:e.uuid,submitted_at:e.submitted_at,file_name:e.file_name,file_sha1:e.file_sha1,file_extension:e.file_extension,issue:e.issue}}buildBulkPayload(e){return{uuid:e.uuid,file_name:e.file_name,file_sha1:e.file_sha1,file_extension:e.file_extension,issue:e.issue}}async refreshStore(e,i){const{initialize:a}=this.actions,c=(await this.listPaginated({queryParams:{issue__project:e}},i)).flat();return this.dispatch(a(c)),c}}class PR extends v{name="Issue Comment Attachment";url="/issue-comment-attachments";actions={addOne:fp,addMany:Sp,setOne:Ap,setMany:Tp,updateOne:Ip,updateMany:bp,deleteOne:Op,deleteMany:Pp,initialize:yp};selectors={selectById:_p,selectByIds:Mp};getId(e){return e.uuid}getBlockers(e){return[e.issue_comment]}getBlocks(e){return[e.uuid]}buildModel(e){const i=this.select(n=>n.userReducer.currentUser?.id??null),a=new Date().toISOString();return l.uuidObj({...e,created_by:i,submitted_at:a})}buildPayload(e){return{uuid:e.uuid,submitted_at:e.submitted_at,file_name:e.file_name,file_sha1:e.file_sha1,file_extension:e.file_extension,issue_comment:e.issue_comment}}buildBulkPayload(e){return{uuid:e.uuid,file_name:e.file_name,file_sha1:e.file_sha1,file_extension:e.file_extension,issue_comment:e.issue_comment}}async bulkDelete(e){const{deleteMany:i,addMany:a}=this.actions,{selectByIds:n}=this.selectors,c=this.select(n(e));this.dispatch(i(e));try{return await this.enqueueRequest({description:y(o.DELETE,this.name,!0),method:o.DELETE,url:`${this.url}/bulk/`,payload:{uuids:e},blockers:e,blocks:[]})}catch(d){throw this.dispatch(a(c)),d}}async refreshStore(e,i){const{initialize:a}=this.actions,c=(await this.listPaginated({queryParams:{issue_comment__issue__project:e}},i)).flat();return this.dispatch(a(c)),c}}class FR extends g{name="Issue Comment";url="/issue-comments";actions={addOne:Ep,addMany:vp,setOne:Vp,setMany:Bp,updateOne:zp,updateMany:jp,deleteOne:Cp,deleteMany:Dp,initialize:wp};selectors={selectById:qp,selectByIds:$p};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=l.uuidObj({...e,created_by:this.select(r=>r.userReducer.currentUser.id),submitted_at:new Date().toISOString()});this.dispatch(i(c));const d=this.enqueueRequest({description:y(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(c),blockers:[e.issue],blocks:[c.uuid]});return d.then(r=>{this.dispatch(a(r))}).catch(()=>{this.dispatch(n(c.uuid))}),[c,d]}update(e){const{updateOne:i}=this.actions,{selectById:a}=this.selectors,n=this.select(a(e.uuid));if(!n)throw new Error(`Comment with uuid ${e.uuid} not found in store`);const c={...n,...e};this.dispatch(i(c));const d=this.enqueueRequest({description:y(o.PATCH,this.name,!1),method:o.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return d.then(r=>{this.dispatch(i(r))}).catch(()=>{this.dispatch(i(n))}),[c,d]}async delete(e){const{deleteOne:i,addOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`Comment with uuid ${e} not found in store`);this.dispatch(i(e));try{return await this.enqueueRequest({description:y(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(d){throw this.dispatch(a(c)),d}}async refreshStore(e,i){const{initialize:a}=this.actions,c=(await this.listPaginated({queryParams:{issue__project:e}},i)).flat();return this.dispatch(a(c)),c}}class _R extends g{name="Issue";url="/issues";actions={addOne:Hp,addMany:Vi,setOne:Gp,setMany:Np,updateOne:Kp,updateMany:Wp,deleteOne:Xp,deleteMany:Bi,initialize:Lp};selectors={selectById:Zp,selectByIds:Jp};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=new Date().toISOString(),d=this.select(h=>h.userReducer.currentUser?.id??null),r=l.uuidObj({...e,submitted_at:c,created_by:d});this.dispatch(i(r));const p=this.enqueueRequest({description:y(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(r),blockers:[r.project,r.issue_type,r.status,r.priority],blocks:[r.uuid]});return p.then(h=>{this.dispatch(a(h))}).catch(h=>{throw this.dispatch(n(r.uuid)),h}),[r,p]}update(e){const{updateOne:i}=this.actions,{selectById:a}=this.selectors,n=this.select(a(e.uuid));if(!n)throw new Error(`Attempting to update an issue with uuid ${e.uuid} that doesn't exist in the store`);const c={...n,...e};this.dispatch(i(c));const d={};for(const h of[l.IssueUpdateChange.TITLE,l.IssueUpdateChange.DESCRIPTION,l.IssueUpdateChange.STATUS,l.IssueUpdateChange.PRIORITY,l.IssueUpdateChange.ASSIGNED_TO,l.IssueUpdateChange.DUE_DATE])if(h in e&&e[h]!==n[h])switch(h){case l.IssueUpdateChange.PRIORITY:{const f=e[h],A=this.select(Yi(f));if(!A)throw new Error(`Trying to update issue type priority with ${f} which does not exist in store`);d[h]={name:A.name,color:A.color,uuid:A.uuid};break}case l.IssueUpdateChange.DUE_DATE:d[h]=e.due_date;break;case l.IssueUpdateChange.DESCRIPTION:d[h]=e.description??"";break;case l.IssueUpdateChange.TITLE:d[h]=e.title??"";break;case l.IssueUpdateChange.STATUS:{const f=e[h],A=this.select(ea(f));if(!A)throw new Error(`Trying to update issue type status with ${f} which does not exist in store`);d[h]={name:A.name,color:A.color,uuid:A.uuid};break}case l.IssueUpdateChange.ASSIGNED_TO:{const f=e[h];if(f===null)d[h]=null;else{const A=this.select(xt(f));if(!A)throw new Error(`Trying to update assigned to with ${f} which does not exist in store.`);d[h]={full_name:A.username,id:A.id}}break}}const r=l.uuidObj({created_by:this.select(h=>h.userReducer.currentUser?.id??null),submitted_at:new Date().toISOString(),issue:n.uuid,changes:d});this.dispatch(sa(r));const p=this.enqueueRequest({description:y(o.PATCH,this.name,!1),method:o.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return p.then(h=>{this.dispatch(i(h))}).catch(()=>{this.dispatch(i(n)),this.dispatch(aa(r.uuid))}),[c,p]}bulkUpdate(e,i){const{updateMany:a}=this.actions,{selectByIds:n}=this.selectors,c=l.toUuidArray(e);if(new Set(c).size!==e.length)throw new Error("payloads contains duplicate uuids.");const d=this.select(n(c));if(c.length!=d.length)throw new Error(`Attempting to bulk update ${c.length-d.length} issues that dont exist in the store`);const r=d.toSorted((S,P)=>l.uuidSortFn(S.uuid,P.uuid)),p=e.toSorted((S,P)=>l.uuidSortFn(S.uuid,P.uuid)),h=[];for(let S=0;S<c.length;S++)h.push({...r[S],...p[S]});this.dispatch(a(h));const f=l.chunkArray(e,Math.min(i??e.length,D)),A=[];let I=null;for(const S of f){const P=ut.v4(),_=l.toUuidArray(S),F=S.map(({status:R})=>R).filter(Boolean),w=S.map(({priority:R})=>R).filter(Boolean),V=this.enqueueRequest({description:y(o.PATCH,this.name,!0),method:o.PATCH,url:`${this.url}/bulk/`,payload:{payloads:S},blockers:(I?[I]:[]).concat(_).concat(F).concat(w),blocks:[P].concat(_)});A.push(V),I=P}return Promise.all(A).then(S=>{this.dispatch(a(S.flat()))}).catch(()=>{this.dispatch(a(d))}),[h,A]}async delete(e){const{deleteOne:i,addOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`No issue with uuid ${e} found in the store`);const d=this.select(Jh(e)),r=this.select(lp(e)),p=this.select(qf(e)),h=this.select(Ih(e));this.dispatch(i(e)),this.dispatch(_i(l.toUuidArray(r))),this.dispatch(na(l.toUuidArray(p))),this.dispatch(Tt(l.toUuidArray(d))),this.dispatch(ot(l.toUuidArray(h)));try{return await this.enqueueRequest({description:y(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(f){throw this.dispatch(a(c)),this.dispatch(Fi(r)),this.dispatch(ia(p)),this.dispatch(At(d)),this.dispatch(lt(h)),f}}async bulkDelete(e){const{addMany:i,deleteMany:a}=this.actions,{selectByIds:n}=this.selectors,c=this.select(n(e)),d=this.select(Zh(e)),r=this.select(bh(e));this.dispatch(a(e)),this.dispatch(Tt(l.toUuidArray(d))),this.dispatch(ot(l.toUuidArray(r)));try{return await this.enqueueRequest({description:y(o.DELETE,this.name,!0),method:o.DELETE,url:`${this.url}/bulk/`,payload:{uuids:e},blockers:e,blocks:[]})}catch(p){throw this.dispatch(i(c)),this.dispatch(At(d)),this.dispatch(lt(r)),p}}async refreshStore(e,i){const{initialize:a}=this.actions,c=(await this.listPaginated({queryParams:{project:e}},i)).flat();return this.dispatch(a(c)),c}}class MR extends v{name="Issue Type Attachment";url="/issue-type-attachments";actions={addOne:sm,addMany:im,setOne:am,setMany:nm,updateOne:cm,updateMany:rm,deleteOne:dm,deleteMany:um,initialize:tm};selectors={selectById:om,selectByIds:hm};getId(e){return e.uuid}getBlockers(e){return[e.issue_type]}getBlocks(e){return[e.uuid]}buildModel(e){const i=this.select(n=>n.userReducer.currentUser?.id??null),a=new Date().toISOString();return l.uuidObj({...e,created_by:i,submitted_at:a})}buildPayload(e){return{uuid:e.uuid,submitted_at:e.submitted_at,file_name:e.file_name,file_sha1:e.file_sha1,file_extension:e.file_extension,issue_type:e.issue_type}}buildBulkPayload(e){return{uuid:e.uuid,file_name:e.file_name,file_sha1:e.file_sha1,file_extension:e.file_extension,issue_type:e.issue_type}}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({queryParams:{issue_type__organization:e}},i);return this.dispatch(a(n)),n}}class gR extends v{name="Issue Type Fields Attachment";url="/issue-type-fields-attachments";actions={addOne:fm,addMany:Sm,setOne:Am,setMany:Tm,updateOne:Im,updateMany:bm,deleteOne:Om,deleteMany:Pm,initialize:ym};selectors={selectById:_m,selectByIds:Mm};getId(e){return e.uuid}getBlockers(e){return[e.fields_revision]}getBlocks(e){return[e.uuid]}buildModel(e){const i=this.select(n=>n.userReducer.currentUser?.id??null),a=new Date().toISOString();return l.uuidObj({...e,created_by:i,submitted_at:a})}buildPayload(e){const{uuid:i,field_identifier:a,fields_revision:n,file_sha1:c,file_name:d,file_extension:r}=e;return{uuid:i,submitted_at:e.submitted_at,field_identifier:a,fields_revision:n,file_sha1:c,file_name:d,file_extension:r}}buildBulkPayload(e){const{uuid:i,field_identifier:a,fields_revision:n,file_sha1:c,file_name:d,file_extension:r}=e;return{uuid:i,field_identifier:a,fields_revision:n,file_sha1:c,file_name:d,file_extension:r}}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({queryParams:{fields_revision__issue_type__organization:e}},i);return this.dispatch(a(n)),n}}class RR extends g{name="Issue Type Fields";url="/issue-type-fields";actions={addOne:Gm,addMany:Nm,setOne:Km,setMany:Wm,updateOne:Xm,updateMany:Ym,deleteOne:Zm,deleteMany:Jm,initialize:Hm};selectors={selectById:xm,selectByIds:ey};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=this.select(h=>h.userReducer.currentUser?.id??null),d=new Date().toISOString(),r=l.uuidObj({...e,created_by:c,submitted_at:d});this.dispatch(i(r));const p=this.enqueueRequest({description:y(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(r),blockers:[r.issue_type],blocks:[r.uuid]});return p.then(h=>{this.dispatch(a(h))}).catch(h=>{throw this.dispatch(n(r.uuid)),h}),[r,p]}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({queryParams:{issue_type__organization:e}},i);return this.dispatch(a(n)),n}}class wR extends v{name="Issue Type Field Values Attachment";url="/issue-type-field-values-attachments";actions={addOne:ay,addMany:ki,setOne:ny,setMany:cy,updateOne:ry,updateMany:dy,deleteOne:uy,deleteMany:Li,initialize:iy};selectors={selectById:oy,selectByIds:hy};getId(e){return e.uuid}getBlockers(e){return[e.field_values]}getBlocks(e){return[e.uuid]}buildModel(e){const i=this.select(n=>n.userReducer.currentUser?.id??null),a=new Date().toISOString();return l.uuidObj({...e,created_by:i,submitted_at:a})}buildPayload(e){const{uuid:i,field_identifier:a,field_values:n,file_sha1:c,file_name:d,file_extension:r}=e;return{uuid:i,submitted_at:e.submitted_at,field_identifier:a,field_values:n,file_sha1:c,file_name:d,file_extension:r}}buildBulkPayload(e){const{uuid:i,field_identifier:a,field_values:n,file_sha1:c,file_name:d,file_extension:r}=e;return{uuid:i,field_identifier:a,field_values:n,file_sha1:c,file_name:d,file_extension:r}}async bulkDelete(e){const{deleteMany:i,addMany:a}=this.actions,{selectByIds:n}=this.selectors,c=this.select(n(e));this.dispatch(i(e));try{return await this.enqueueRequest({description:y(o.DELETE,this.name,!0),method:o.DELETE,url:`${this.url}/bulk/`,payload:{uuids:e},blockers:e,blocks:[]})}catch(d){throw this.dispatch(a(c)),d}}async refreshStore(e,i){const{initialize:a}=this.actions,c=(await this.listPaginated({queryParams:{field_values__issue__project:e,latest:!0}},i)).flat();return this.dispatch(a(c)),c}}class ER extends g{name="Issue Type Field Values";url="/issue-type-field-values";actions={addOne:Em,addMany:vm,setOne:Vm,setMany:Bm,updateOne:zm,updateMany:jm,deleteOne:Cm,deleteMany:Dm,initialize:wm};selectors={selectById:$m,selectByIds:Um};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=this.select(h=>h.userReducer.currentUser?.id??null),d=new Date().toISOString(),r=l.uuidObj({...e,created_by:c,submitted_at:d}),p=this.enqueueRequest({description:y(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(r),blockers:[e.issue,e.fields_revision],blocks:[r.uuid]});return this.dispatch(i(r)),p.then(h=>{this.dispatch(a(h))}).catch(()=>{this.dispatch(n(r.uuid))}),[r,p]}update(e){const{updateOne:i}=this.actions,{selectById:a}=this.selectors,n=this.select(a(e.uuid));if(!n)throw new Error(`Expected IssueTypeFieldValues with uuid ${e.uuid} to exist`);const c={...n,...e};this.dispatch(i(c));const d=this.enqueueRequest({description:y(o.PATCH,this.name,!1),method:o.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[c.uuid,c.fields_revision,c.issue],blocks:[c.uuid]});return d.then(r=>{this.dispatch(i(r))}).catch(()=>{this.dispatch(i(n))}),[c,d]}async delete(e){const{deleteOne:i,addOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`Expected submission with uuid ${e} to exist`);const d=this.select(py(e));this.dispatch(i(e)),this.dispatch(Li(l.toUuidArray(d)));try{return await this.enqueueRequest({description:y(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(r){throw this.dispatch(a(c)),this.dispatch(ki(d)),r}}async refreshStore(e,i){const{initialize:a}=this.actions,c=(await this.listPaginated({queryParams:{issue__project:e,latest:!0}},i)).flat();return this.dispatch(a(c)),c}}class vR extends g{name="Issue Type Identifier";url="/issue-type-identifiers";actions={addOne:Sy,addMany:Ay,setOne:Ty,setMany:Iy,updateOne:by,updateMany:Oy,deleteOne:Py,deleteMany:Fy,initialize:fy};selectors={selectById:My,selectByIds:gy};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=this.select(h=>h.userReducer.currentUser?.id??null),d=new Date().toISOString(),r=l.uuidObj({...e,created_by:c,submitted_at:d});this.dispatch(i(r));const p=this.enqueueRequest({description:y(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(r),blockers:[r.issue_type],blocks:[r.uuid]});return p.then(h=>{this.dispatch(a(h))}).catch(()=>{this.dispatch(n(r.uuid))}),[r,p]}update(e){const{updateOne:i}=this.actions,{selectById:a}=this.selectors,n=this.select(a(e.uuid));if(!n)throw new Error(`Expected issue type identifier with uuid ${e.uuid} to exist`);const c={...n,...e};this.dispatch(i(c));const d=this.enqueueRequest({description:y(o.PATCH,this.name,!1),method:o.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return d.then(r=>{this.dispatch(i(r))}).catch(()=>{this.dispatch(i(n))}),[c,d]}async delete(e){const{deleteOne:i,addOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`Expected issue type identifier with uuid ${e} to exist`);this.dispatch(i(e));try{return await this.enqueueRequest({description:y(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(d){throw this.dispatch(a(c)),d}}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({queryParams:{issue_type__organization:e}},i);return this.dispatch(a(n)),n}}class VR extends g{name="Issue Type Identifier Value";url="/issue-type-identifier-values";actions={addOne:vy,addMany:Vy,setOne:By,setMany:zy,updateOne:jy,updateMany:Cy,deleteOne:Dy,deleteMany:qy,initialize:Ey};selectors={selectById:Uy,selectByIds:ky};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=this.select(h=>h.userReducer.currentUser?.id??null),d=new Date().toISOString(),r=l.uuidObj({...e,created_by:c,submitted_at:d});this.dispatch(i(r));const p=this.enqueueRequest({description:y(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(r),blockers:[e.issue,e.issue_type_identifier],blocks:[r.uuid]});return p.then(h=>{this.dispatch(a(h))}).catch(()=>{this.dispatch(n(r.uuid))}),[r,p]}async delete(e){const{deleteOne:i,addOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`Expected issue type identifier value with uuid ${e} to exist`);this.dispatch(i(e));try{return await this.enqueueRequest({description:y(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(d){throw this.dispatch(a(c)),d}}async refreshStore(e,i){const{initialize:a}=this.actions,c=(await this.listPaginated({queryParams:{issue__project:e,latest:!0}},i)).flat();return this.dispatch(a(c)),c}}class BR extends g{name="Issue Type Priority";url="/issue-type-priorities";actions={addOne:Ny,addMany:Ky,setOne:Wy,setMany:Xy,updateOne:Yy,updateMany:Zy,deleteOne:Jy,deleteMany:Qy,initialize:Gy};selectors={selectById:Yi,selectByIds:ef};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=this.select(h=>h.userReducer.currentUser?.id??null),d=new Date().toISOString(),r=l.uuidObj({...e,created_by:c,submitted_at:d});this.dispatch(i(r));const p=this.enqueueRequest({description:y(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(r),blockers:[e.issue_type],blocks:[r.uuid]});return p.then(h=>{this.dispatch(a(h))}).catch(()=>{this.dispatch(n(r.uuid))}),[r,p]}update(e){const{updateOne:i}=this.actions,{selectById:a}=this.selectors,n=this.select(a(e.uuid));if(!n)throw new Error(`Expected an existing issue type priority with uuid ${e.uuid}`);const c={...n,...e};this.dispatch(i(c));const d=this.enqueueRequest({description:y(o.PATCH,this.name,!1),method:o.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return d.then(r=>{this.dispatch(i(r))}).catch(()=>{this.dispatch(i(n))}),[c,d]}async delete(e){const{deleteOne:i,addOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`No issue type priority with uuid ${e} found in the store`);this.dispatch(i(e));try{return await this.enqueueRequest({description:y(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(d){throw this.dispatch(a(c)),d}}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({queryParams:{issue_type__organization:e}},i);return this.dispatch(a(n)),n}}class zR extends g{name="Issue Type";url="/issue-types";actions={addOne:nf,addMany:cf,setOne:rf,setMany:df,updateOne:uf,updateMany:lf,deleteOne:of,deleteMany:hf,initialize:af};selectors={selectById:mf,selectByIds:yf};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=this.select(h=>h.userReducer.currentUser?.id??null),d=new Date().toISOString(),r=l.uuidObj({...e,submitted_at:d,created_by:c});this.dispatch(i(r));const p=this.enqueueRequest({method:o.POST,url:`${this.url}/`,payload:M(r),blockers:[],blocks:[r.uuid]});return p.then(h=>{this.dispatch(a(h))}).catch(()=>{this.dispatch(n(r.uuid))}),[r,p]}update(e){const{updateOne:i}=this.actions,{selectById:a}=this.selectors,n=this.select(a(e.uuid));if(!n)throw new Error(`IssueType with uuid ${e.uuid} does not exist in the store.`);const c={...n,...e};this.dispatch(i(c));const d=this.enqueueRequest({method:o.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return d.then(r=>{this.dispatch(i(r))}).catch(()=>{this.dispatch(i(n))}),[c,d]}async delete(e){const{addOne:i,deleteOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`IssueType with uuid ${e} does not exist in the store.`);const d=this.select(Qp(e));this.dispatch(a(e)),this.dispatch(Bi(l.toUuidArray(d)));try{return await this.enqueueRequest({description:y(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(r){throw this.dispatch(i(c)),this.dispatch(Vi(d)),r}}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({queryParams:{organization:e}},i);return this.dispatch(a(n)),n}}class jR extends g{name="Issue Type Status";url="/issue-type-statuses";actions={addOne:Tf,addMany:If,setOne:bf,setMany:Of,updateOne:Pf,updateMany:Ff,deleteOne:_f,deleteMany:Mf,initialize:Af};selectors={selectById:ea,selectByIds:Rf};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=this.select(h=>h.userReducer.currentUser?.id??null),d=new Date().toISOString(),r=l.uuidObj({...e,created_by:c,submitted_at:d});this.dispatch(i(r));const p=this.enqueueRequest({description:y(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(r),blockers:[e.issue_type],blocks:[r.uuid]});return p.then(h=>{this.dispatch(a(h))}).catch(()=>{this.dispatch(n(r.uuid))}),[r,p]}update(e){const{updateOne:i}=this.actions,{selectById:a}=this.selectors,n=this.select(a(e.uuid));if(!n)throw new Error(`Expected an existing issue type status with uuid ${e.uuid}`);const c={...n,...e};this.dispatch(i(c));const d=this.enqueueRequest({description:y(o.PATCH,this.name,!1),method:o.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return d.then(r=>{this.dispatch(i(r))}).catch(()=>{this.dispatch(i(n))}),[c,d]}async delete(e){const{deleteOne:i,addOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`No issue type status with uuid ${e} found in the store`);this.dispatch(i(e));try{return await this.enqueueRequest({description:y(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(d){throw this.dispatch(a(c)),d}}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({queryParams:{issue_type__organization:e}},i);return this.dispatch(a(n)),n}}class CR extends g{name="Issue Update";url="/issue-updates";actions={addOne:sa,addMany:ia,setOne:Vf,setMany:Bf,updateOne:zf,updateMany:jf,deleteOne:aa,deleteMany:na,initialize:vf};selectors={selectById:Cf,selectByIds:Df};async refreshStore(e,i){const{initialize:a}=this.actions,c=(await this.listPaginated({queryParams:{issue__project:e}},i)).flat();return this.dispatch(a(c)),c}}const DR=1800;function qR(t){if(!t.access)throw new Error("Missing access token");if(!t.refresh)throw new Error("Missing refresh token");return{accessToken:t.access,refreshToken:t.refresh}}class $R extends u_{_getRenewedTokens=async e=>{const i=this.performRequest({method:o.POST,url:this.refreshTokensUrl,payload:{refresh:e},isAuthNeeded:!1,checkAuth:!1});let a;try{a=await i}catch(n){console.error("Could not renew tokens; clearing auth",n),this.clearAuth();return}if(!a.access)throw new Error("Missing access token");return{accessToken:a.access,refreshToken:a.refresh??this.getRefreshToken()}};clearAuth(){console.debug(this.constructor.name,"clearing auth;"),this.dispatch(Kd(!1)),this.clearTokens(),this.dispatch(T()),this.dispatch(T())}async renewTokens(){const e=this.getRefreshToken();if(!e)throw new Error("No refresh token found");console.debug(this.constructor.name,"renewing tokens");try{const i=await this._getRenewedTokens(e);if(!i)return;console.debug("Got renewed tokens"),this.setTokens(i)}catch(i){throw console.error("Could not renew tokens; clearing auth",i),this.clearAuth(),i}}tokenIsExpiringSoon(){const e=this.getAccessToken();if(!e)return!1;const i=Date.now()/1e3;let a;try{a=P_(e).exp??i}catch{a=i}return a-i<DR}getAuthHeader(){return`Bearer ${this.getAccessToken()}`}async prepareAuth(){if(this.tokenIsExpiringSoon()){console.debug(this.constructor.name,"preparing auth");try{await this.renewTokens()}catch(e){return e instanceof z&&this.clearAuth(),e instanceof Error?Promise.reject(e):Promise.reject(new Error((e??l.ERROR_MSG_UNEXPECTED).toString()))}}}async handleUnauthorized(e,i){if(e.url.endsWith("/token/refresh/"))throw this.select(a=>a.authReducer.isLoggedIn)&&console.warn("No signed-in user to sign out."),this.clearAuth(),new z({message:"You have been signed out due to inactivity.",response:i,discard:!0});if(this.select(a=>a.authReducer.isLoggedIn))await this.renewTokens();else throw console.debug("Forbidden; user is not logged in."),new z({message:"Incorrect username or password.",response:i,discard:!0})}async initAuth(e){const i=ut.v4();return console.debug(this.constructor.name,"Initiating auth"),this.performRequest({uuid:i,method:o.POST,url:this.initTokensUrl,payload:e,isAuthNeeded:!1,checkAuth:!1}).then(a=>{this.setTokens(qR(a))})}}class UR extends dt{name="Organization Access";url="/organization-accesses";actions={addOne:xf,addMany:eS,setOne:tS,setMany:sS,updateOne:iS,updateMany:aS,deleteOne:nS,deleteMany:cS,initialize:Qf};selectors={selectById:dS,selectByIds:uS};update(e){const{updateOne:i}=this.actions,{selectById:a}=this.selectors,n=this.select(a(e.uuid)),c={...n,...e};this.dispatch(i(c));const d=this.enqueueRequest({description:y(o.PATCH,this.name,!1),method:o.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return d.then(r=>{this.dispatch(i(r))}).catch(r=>{throw this.dispatch(i(n)),r}),[c,d]}async delete(e){const{deleteOne:i,addOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e)),d=this.select(xt(c.user));this.dispatch(i(c.uuid)),this.dispatch(la(c.user));try{return await this.enqueueRequest({description:y(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${c.uuid}/`,blockers:[c.uuid],blocks:[]})}catch(r){throw this.dispatch(a(c)),this.dispatch(ua(d)),r}}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({queryParams:{organization:e}},i);return this.dispatch(a(n)),n}}class kR extends dt{name="Organization";url="/organizations";actions={addOne:fS,addMany:yS,setOne:mS,setMany:pS,updateOne:AS,updateMany:SS,deleteOne:TS,deleteMany:IS,initialize:hS};selectors={selectById:PS,selectByIds:FS};async add(e){const{addOne:i}=this.actions,a=await this.enqueueRequest({description:y(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:e,blockers:[],blocks:[]});return this.dispatch(i(a)),a}async update(e){const{updateOne:i}=this.actions,a=await this.enqueueRequest({description:y(o.PATCH,this.name,!1),method:o.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return this.dispatch(i(a)),a}async invite(e,i){return this.enqueueRequest({description:y(o.POST,this.name,!1),method:o.POST,url:`${this.url}/${e}/invite/${i}/`,blockers:[],blocks:[]})}async refreshStore(e){const{initialize:i}=this.actions,a=await this.list({},e);return this.dispatch(i(a)),a}}class LR extends g{name="Project Access";url="/project-accesses";actions={addOne:zS,addMany:jS,setOne:CS,setMany:DS,updateOne:qS,updateMany:$S,deleteOne:US,deleteMany:kS,initialize:BS};selectors={selectById:HS,selectByIds:GS};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=l.uuidObj({...e,created_by:this.select(r=>r.userReducer.currentUser?.id??null)});this.dispatch(i(c));const d=this.enqueueRequest({description:y(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(c),blockers:[c.organization_access,c.project],blocks:[c.uuid]});return d.then(r=>{this.dispatch(a(r))}).catch(r=>{throw this.dispatch(n(c.uuid)),r}),[c,d]}bulkAdd(e){const{addMany:i,deleteMany:a,updateMany:n}=this.actions,c=this.select(p=>p.userReducer.currentUser?.id??null),d=e.map(p=>l.uuidObj({...p,created_by:c}));this.dispatch(i(d));const r=this.enqueueRequest({description:y(o.POST,this.name,!0),method:o.POST,url:`${this.url}/bulk/`,payload:{project_accesses:d.map(p=>M(p))},blockers:d.flatMap(p=>[p.project,p.organization_access]),blocks:d.map(p=>p.uuid)});return r.then(p=>{this.dispatch(n(p))}).catch(p=>{throw this.dispatch(a(d.map(h=>h.uuid))),p}),[d,r]}update(e){const{updateOne:i}=this.actions,{selectById:a}=this.selectors,n=this.select(a(e.uuid)),c={...n,...e};this.dispatch(i(c));const d=this.enqueueRequest({description:y(o.PATCH,this.name,!1),method:o.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[]});return d.then(r=>{this.dispatch(i(r))}).catch(r=>{throw this.dispatch(i(n)),r}),[c,d]}async delete(e){const{deleteOne:i,addOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));this.dispatch(i(e));try{return await this.enqueueRequest({description:y(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(d){throw this.dispatch(a(c)),d}}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({queryParams:{project__organization:e}},i);return this.dispatch(a(n)),n}}class HR extends v{name="Project Attachment";url="/project-attachments";actions={addOne:WS,addMany:XS,setOne:YS,setMany:ZS,updateOne:JS,updateMany:QS,deleteOne:xS,deleteMany:eA,initialize:KS};selectors={selectById:sA,selectByIds:iA};getId(e){return e.uuid}getBlockers(e){return[e.project]}getBlocks(e){return[e.uuid]}buildModel(e){const i=this.select(n=>n.userReducer.currentUser?.id??null),a=new Date().toISOString();return l.uuidObj({...e,created_by:i,submitted_at:a})}buildPayload(e){return{uuid:e.uuid,submitted_at:e.submitted_at,file_name:e.file_name,file_sha1:e.file_sha1,file_extension:e.file_extension,project:e.project}}buildBulkPayload(e){return{uuid:e.uuid,file_name:e.file_name,file_sha1:e.file_sha1,file_extension:e.file_extension,project:e.project}}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({queryParams:{project__organization:e}},i);return this.dispatch(a(n)),n}}class GR extends g{name="Project Comment";url="/project-comments";actions={addOne:rA,addMany:dA,setOne:uA,setMany:lA,updateOne:oA,updateMany:hA,deleteOne:pA,deleteMany:mA,initialize:cA};selectors={selectById:fA,selectByIds:SA};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=l.uuidObj({...e,created_by:this.select(r=>r.userReducer.currentUser?.id??null),submitted_at:new Date().toISOString()});this.dispatch(i(c));const d=this.enqueueRequest({description:y(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(c),blockers:[c.project],blocks:[c.uuid]});return d.then(r=>{this.dispatch(a(r))}).catch(()=>{this.dispatch(n(c.uuid))}),[c,d]}update(e){const{updateOne:i}=this.actions,{selectById:a}=this.selectors,n=this.select(a(e.uuid));if(!n)throw new Error(`Project comment with uuid ${e.uuid} not found in store`);const c={...n,...e};this.dispatch(i(c));const d=this.enqueueRequest({description:y(o.PATCH,this.name,!1),method:o.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return d.then(r=>{this.dispatch(i(r))}).catch(()=>{this.dispatch(i(n))}),[c,d]}async delete(e){const{deleteOne:i,addOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`Project comment with uuid ${e} not found in store`);this.dispatch(i(e));try{return await this.enqueueRequest({description:y(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(d){throw this.dispatch(a(c)),d}}async refreshStore(e,i){const{initialize:a}=this.actions,c=(await this.listPaginated({queryParams:{project:e}},i)).flat();return this.dispatch(a(c)),c}}class NR extends v{name="Project File";url="/project-files";actions={addOne:PA,addMany:FA,setOne:bA,setMany:OA,updateOne:_A,updateMany:MA,deleteOne:gA,deleteMany:RA,initialize:IA};selectors={selectById:vA,selectByIds:VA};getId(e){return e.uuid}getBlockers(e){return[e.project]}getBlocks(e){return[e.uuid]}buildModel(e){const i=this.select(n=>n.userReducer.currentUser?.id??null),a=new Date().toISOString();return l.uuidObj({...e,created_by:i,submitted_at:a})}buildPayload(e){return{uuid:e.uuid,submitted_at:e.submitted_at,file_sha1:e.file_sha1,file_name:e.file_name,file_extension:e.file_extension,project:e.project,z_index:e.z_index,bounds:e.bounds}}buildBulkPayload(e){return{uuid:e.uuid,file_sha1:e.file_sha1,file_name:e.file_name,file_extension:e.file_extension,project:e.project,z_index:e.z_index,bounds:e.bounds}}update(e){const{updateOne:i}=this.actions,{selectById:a}=this.selectors,n=this.select(a(e.uuid));if(!n)throw new Error(`${this.name} with uuid ${e.uuid} does not exist in the store`);const c={...n,...e};this.dispatch(i(c));const d=this.enqueueRequest({description:y(o.PATCH,this.name,!1),method:o.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blocks:[e.uuid],blockers:[e.uuid]});return d.then(r=>{this.dispatch(i(r))}).catch(()=>{this.dispatch(i(n))}),[c,d]}async refreshStore(e,i){const{initialize:a}=this.actions,c=(await this.listPaginated({queryParams:{project:e}},i)).flat();return this.dispatch(a(c)),c}}class KR extends dt{name="Project";url="/projects";actions={addOne:$A,addMany:qA,setOne:DA,setMany:CA,updateOne:kA,updateMany:UA,deleteOne:LA,deleteMany:HA,initialize:jA};selectors={selectById:KA,selectByIds:WA};async add(e){const{addOne:i}=this.actions,a=await this.performRequest({method:o.POST,url:`${this.url}/`,payload:M(e)});return this.dispatch(i(a)),a}async update(e){const{updateOne:i}=this.actions,a=await this.performRequest({method:o.PATCH,url:`${this.url}/${e.uuid}/`,payload:M(e)});return this.dispatch(i(a)),a}async delete(e){const{deleteOne:i}=this.actions,a=await this.enqueueRequest({description:y(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]});return this.dispatch(i(e)),a}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({queryParams:{organization:e}},i);return this.dispatch(a(n)),n}}class WR extends dt{name="Report";url="/reports";actions={addOne:iF,addMany:aF,setOne:nF,setMany:cF,updateOne:rF,updateMany:dF,deleteOne:uF,deleteMany:lF,initialize:sF};selectors={selectById:pF,selectByIds:mF};async getPresignedUrl(e,i){return this.performRequest({url:`${this.url}/${e}/presigned-url/`,method:o.GET},i)}async refreshStore(e,i){const n=(await this.listPaginated({queryParams:{organization:e}},i)).flat();return this.dispatch(this.actions.initialize(n)),n}}class XR extends g{name="Procedure";url="/procedures";actions={addOne:lT,addMany:bt,setOne:oT,setMany:hT,updateOne:pT,updateMany:mT,deleteOne:yT,deleteMany:Ot,initialize:uT};selectors={selectById:AT,selectByIds:TT};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=l.uuidObj({...e,created_by:this.select(r=>r.userReducer.currentUser?.id??null),submitted_at:new Date().toISOString()});this.dispatch(i(c));const d=this.enqueueRequest({description:y(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(c),blockers:[c.procedure_type,c.project,c.asset,...c.procedure_initiative?[c.procedure_initiative]:[]],blocks:[c.uuid]});return d.then(r=>{this.dispatch(a(r))}).catch(()=>{this.dispatch(n(c.uuid))}),[c,d]}bulkAdd(e,i){const{store:a}=this.client,{addMany:n,updateMany:c,deleteMany:d}=this.actions,r=new Date().toISOString(),p=a.getState().userReducer.currentUser?.id??null,h=[],f=l.chunkArray(e,Math.min(i??e.length,D)),A=[];for(const S of f){const P=[],_=[],F=[];for(const V of S){const R=l.uuidObj({...V,submitted_at:r,created_by:p});h.push(R),P.push(M(R)),_.push(R.procedure_type,R.project,R.asset,...R.procedure_initiative?[R.procedure_initiative]:[]),F.push(R.uuid)}const w={payload:{submitted_at:r,payloads:P},blockers:_,blocks:F};A.push(w)}this.dispatch(n(h));const I=A.map(S=>{const{payload:P,blocks:_,blockers:F}=S;return this.enqueueRequest({description:y(o.POST,this.name,!0),method:o.POST,url:`${this.url}/bulk/`,payload:P,blockers:F,blocks:_})});return Promise.all(I).then(S=>{this.dispatch(c(S.flat()))}).catch(()=>{this.dispatch(d(l.toUuidArray(h)))}),[h,Promise.all(I).then(S=>S.flat())]}update(e){const{updateOne:i}=this.actions,{selectById:a}=this.selectors,n=this.select(a(e.uuid));if(!n)throw new Error(`Expected procedure with uuid ${e.uuid} to exist`);const c={...n,...e};this.dispatch(i(c));const d=this.enqueueRequest({description:y(o.PATCH,this.name,!1),method:o.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[n.uuid],blocks:[n.uuid]});return d.then(r=>{this.dispatch(i(r))}).catch(()=>{this.dispatch(i(n))}),[c,d]}async delete(e){const{deleteOne:i,addOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`Expected procedure with uuid ${e} to exist`);this.dispatch(i(e));try{return await this.enqueueRequest({description:y(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(d){throw this.dispatch(a(c)),d}}async bulkDelete(e){const{addMany:i,deleteMany:a}=this.actions,{selectByIds:n}=this.selectors,c=this.select(n(e));this.dispatch(a(l.toUuidArray(c)));try{return await this.enqueueRequest({description:y(o.DELETE,this.name,!0),method:o.DELETE,url:`${this.url}/bulk/`,payload:{uuids:e},blockers:e,blocks:[]})}catch(d){throw this.dispatch(i(c)),d}}async refreshStore(e,i){const{initialize:a}=this.actions,c=(await this.listPaginated({queryParams:{project:e}},i)).flat();return this.dispatch(a(c)),c}}class YR extends g{name="Procedure Step Assignee";url="/procedure-step-assignees";actions={addOne:MT,addMany:gT,setOne:RT,setMany:wT,updateOne:ET,updateMany:vT,deleteOne:VT,deleteMany:BT,initialize:_T};selectors={selectById:jT,selectByIds:CT};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=l.uuidObj({...e,created_by:this.select(r=>r.userReducer.currentUser?.id??null),submitted_at:new Date().toISOString()});this.dispatch(i(c));const d=this.enqueueRequest({description:y(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(c),blockers:[c.procedure,c.procedure_step],blocks:[c.uuid]});return d.then(r=>{this.dispatch(a(r))}).catch(()=>{this.dispatch(n(c.uuid))}),[c,d]}bulkAdd(e){const{addMany:i,updateMany:a,deleteMany:n}=this.actions,c=this.select(h=>h.userReducer.currentUser?.id??null),d=new Date().toISOString(),r=e.map(h=>l.uuidObj({...h,created_by:c,submitted_at:d}));this.dispatch(i(r));const p=this.enqueueRequest({description:y(o.POST,this.name,!0),method:o.POST,url:`${this.url}/bulk/`,payload:{procedure_step_assignees:r.map(h=>M(h)),submitted_at:d},blockers:r.flatMap(h=>[h.procedure,h.procedure_step]),blocks:l.toUuidArray(r)});return p.then(h=>{this.dispatch(a(h))}).catch(()=>{this.dispatch(n(l.toUuidArray(r)))}),[r,p]}async delete(e){const{deleteOne:i,addOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`Expected procedure step assignee with uuid ${e} to exist`);this.dispatch(i(e));try{return await this.enqueueRequest({description:y(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(d){throw this.dispatch(a(c)),d}}async bulkDelete(e){const{deleteMany:i,addMany:a}=this.actions,{selectByIds:n}=this.selectors,c=this.select(n(e));this.dispatch(i(e));try{return await this.enqueueRequest({description:y(o.DELETE,this.name,!0),method:o.DELETE,url:`${this.url}/bulk/`,payload:{uuids:e},blockers:e,blocks:[]})}catch(d){throw this.dispatch(a(c)),d}}async refreshStore(e,i){const{initialize:a}=this.actions,c=(await this.listPaginated({queryParams:{procedure__project:e}},i)).flat();return this.dispatch(a(c)),c}}class ZR extends g{name="Procedure Step Comment";url="/procedure-step-comments";actions={addOne:UT,addMany:kT,setOne:LT,setMany:HT,updateOne:GT,updateMany:NT,deleteOne:KT,deleteMany:WT,initialize:$T};selectors={selectById:YT,selectByIds:ZT};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=l.uuidObj({...e,created_by:this.select(r=>r.userReducer.currentUser?.id??null),submitted_at:new Date().toISOString()});this.dispatch(i(c));const d=this.enqueueRequest({description:y(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(c),blockers:[c.procedure,c.procedure_step],blocks:[c.uuid]});return d.then(r=>{this.dispatch(a(r))}).catch(()=>{this.dispatch(n(c.uuid))}),[c,d]}update(e){const{updateOne:i}=this.actions,{selectById:a}=this.selectors,n=this.select(a(e.uuid));if(!n)throw new Error(`Procedure step comment with uuid ${e.uuid} not found in store`);const c={...n,...e};this.dispatch(i(c));const d=this.enqueueRequest({description:y(o.PATCH,this.name,!1),method:o.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return d.then(r=>{this.dispatch(i(r))}).catch(()=>{this.dispatch(i(n))}),[c,d]}async delete(e){const{deleteOne:i,addOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`Procedure step comment with uuid ${e} not found in store`);this.dispatch(i(e));try{return await this.enqueueRequest({description:y(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(d){throw this.dispatch(a(c)),d}}async refreshStore(e,i){const{initialize:a}=this.actions,c=(await this.listPaginated({queryParams:{procedure__project:e}},i)).flat();return this.dispatch(a(c)),c}}class JR extends g{name="Procedure Step Default Assignee";url="/procedure-step-default-assignees";actions={addOne:eI,addMany:tI,setOne:sI,setMany:iI,updateOne:aI,updateMany:nI,deleteOne:cI,deleteMany:rI,initialize:xT};selectors={selectById:uI,selectByIds:lI};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=l.uuidObj({...e,created_by:this.select(r=>r.userReducer.currentUser?.id??null),submitted_at:new Date().toISOString()});this.dispatch(i(c));const d=this.enqueueRequest({description:y(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(c),blockers:[c.procedure_step],blocks:[c.uuid]});return d.then(r=>{this.dispatch(a(r))}).catch(()=>{this.dispatch(n(c.uuid))}),[c,d]}async delete(e){const{deleteOne:i,addOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`Expected procedure step default assignee with uuid ${e} to exist`);this.dispatch(i(e));try{return await this.enqueueRequest({description:y(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(d){throw this.dispatch(a(c)),d}}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({queryParams:{procedure_step__procedure_type__organization:e}},i);return this.dispatch(a(n)),n}}class QR extends g{name="Procedure Step Default Reviewer";url="/procedure-step-default-reviewers";actions={addOne:mI,addMany:yI,setOne:fI,setMany:SI,updateOne:AI,updateMany:TI,deleteOne:II,deleteMany:bI,initialize:pI};selectors={selectById:PI,selectByIds:FI};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=l.uuidObj({...e,created_by:this.select(r=>r.userReducer.currentUser?.id??null),submitted_at:new Date().toISOString()});this.dispatch(i(c));const d=this.enqueueRequest({description:y(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(c),blockers:[c.procedure_step],blocks:[c.uuid]});return d.then(r=>{this.dispatch(a(r))}).catch(()=>{this.dispatch(n(c.uuid))}),[c,d]}async delete(e){const{deleteOne:i,addOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`Expected procedure step default reviewer with uuid ${e} to exist`);this.dispatch(i(e));try{return await this.enqueueRequest({description:y(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(d){throw this.dispatch(a(c)),d}}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({queryParams:{procedure_step__procedure_type__organization:e}},i);return this.dispatch(a(n)),n}}class xR extends dt{name="Procedure Step Event";url="/procedure-step-events";actions={addOne:RI,addMany:wI,setOne:EI,setMany:vI,updateOne:VI,updateMany:BI,deleteOne:zI,deleteMany:jI,initialize:gI};selectors={selectById:DI,selectByIds:qI};async refreshStore(e,i){const{initialize:a}=this.actions,c=(await this.listPaginated({queryParams:{procedure__project:e}},i)).flat();return this.dispatch(a(c)),c}}class ew extends v{name="Procedure Step Fields Attachment";url="/procedure-step-fields-attachments";actions={addOne:LI,addMany:Va,setOne:HI,setMany:GI,updateOne:NI,updateMany:KI,deleteOne:WI,deleteMany:Ba,initialize:kI};selectors={selectById:ZI,selectByIds:JI};getId(e){return e.uuid}getBlockers(e){return[e.fields_revision]}getBlocks(e){return[e.uuid]}buildModel(e){return l.uuidObj({...e,created_by:this.select(i=>i.userReducer.currentUser?.id??null),submitted_at:new Date().toISOString()})}buildPayload(e){const{uuid:i,field_identifier:a,fields_revision:n,file_sha1:c,file_name:d,file_extension:r}=e;return{uuid:i,submitted_at:e.submitted_at,field_identifier:a,fields_revision:n,file_sha1:c,file_name:d,file_extension:r}}buildBulkPayload(e){const{uuid:i,field_identifier:a,fields_revision:n,file_sha1:c,file_name:d,file_extension:r}=e;return{uuid:i,field_identifier:a,fields_revision:n,file_sha1:c,file_name:d,file_extension:r}}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({queryParams:{fields_revision__procedure_step__procedure_type__organization:e}},i);return this.dispatch(a(n)),n}}class tw extends g{name="Procedure Step Fields";url="/procedure-step-fields";actions={addOne:tb,addMany:sb,setOne:ib,setMany:ab,updateOne:nb,updateMany:cb,deleteOne:rb,deleteMany:db,initialize:eb};selectors={selectById:ub,selectByIds:lb};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=l.uuidObj({...e,created_by:this.select(r=>r.userReducer.currentUser?.id??null),submitted_at:new Date().toISOString()});this.dispatch(i(c));const d=this.enqueueRequest({description:y(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(c),blockers:[c.procedure_step],blocks:[c.uuid]});return d.then(r=>{this.dispatch(a(r))}).catch(()=>{this.dispatch(n(c.uuid))}),[c,d]}update(e){const{updateOne:i}=this.actions,{selectById:a}=this.selectors,n=this.select(a(e.uuid));if(!n)throw new Error(`No procedure step fields with uuid ${e.uuid} found in the store`);const c={...n,...e};this.dispatch(i(c));const d=this.enqueueRequest({description:y(o.PATCH,this.name,!1),method:o.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return d.then(r=>{this.dispatch(i(r))}).catch(()=>{this.dispatch(i(n))}),[c,d]}async delete(e){const{deleteOne:i,addOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`Expected procedure step fields with uuid ${e} to exist`);const d=this.select(YI(e));this.dispatch(i(e)),this.dispatch(Ba(l.toUuidArray(d)));try{return await this.enqueueRequest({description:y(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(r){throw this.dispatch(a(c)),this.dispatch(Va(d)),r}}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({queryParams:{procedure_step__procedure_type__organization:e}},i);return this.dispatch(a(n)),n}}class sw extends v{name="Procedure Step Field Values Attachment";url="/procedure-step-field-values-attachments";actions={addOne:mb,addMany:qa,setOne:yb,setMany:fb,updateOne:Sb,updateMany:Ab,deleteOne:Tb,deleteMany:$a,initialize:pb};selectors={selectById:bb,selectByIds:Ob};getId(e){return e.uuid}getBlockers(e){return[e.field_values]}getBlocks(e){return[e.uuid]}buildModel(e){const i=this.select(n=>n.userReducer.currentUser?.id??null),a=new Date().toISOString();return l.uuidObj({...e,created_by:i,submitted_at:a})}buildPayload(e){const{uuid:i,field_identifier:a,field_values:n,file_sha1:c,file_name:d,file_extension:r}=e;return{uuid:i,submitted_at:e.submitted_at,field_identifier:a,field_values:n,file_sha1:c,file_name:d,file_extension:r}}buildBulkPayload(e){const{uuid:i,field_identifier:a,field_values:n,file_sha1:c,file_name:d,file_extension:r}=e;return{uuid:i,field_identifier:a,field_values:n,file_sha1:c,file_name:d,file_extension:r}}async bulkDelete(e){const{deleteMany:i,addMany:a}=this.actions,{selectByIds:n}=this.selectors,c=this.select(n(e));this.dispatch(i(e));try{return await this.enqueueRequest({description:y(o.DELETE,this.name,!0),method:o.DELETE,url:`${this.url}/bulk/`,payload:{uuids:e},blockers:e,blocks:[]})}catch(d){throw this.dispatch(a(c)),d}}async refreshStore(e,i){const{initialize:a}=this.actions,c=(await this.listPaginated({queryParams:{field_values__procedure__project:e,latest:!0}},i)).flat();return this.dispatch(a(c)),c}}class iw extends g{name="Procedure Step Field Values Review";url="/procedure-step-field-values-reviews";actions={addOne:kb,addMany:Ha,setOne:Lb,setMany:Hb,updateOne:Gb,updateMany:Nb,deleteOne:Kb,deleteMany:Ga,initialize:Ub};selectors={selectById:Xb,selectByIds:Yb};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=l.uuidObj({...e,created_by:this.select(r=>r.userReducer.currentUser?.id??null),submitted_at:new Date().toISOString()});this.dispatch(i(c));const d=this.enqueueRequest({description:y(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(c),blockers:[c.field_values],blocks:[c.uuid]});return d.then(r=>{this.dispatch(a(r))}).catch(()=>{this.dispatch(n(c.uuid))}),[c,d]}update(e){const{updateOne:i}=this.actions,{selectById:a}=this.selectors,n=this.select(a(e.uuid));if(!n)throw new Error(`Procedure step field values review with uuid ${e.uuid} not found in store`);const c={...n,...e};this.dispatch(i(c));const d=this.enqueueRequest({description:y(o.PATCH,this.name,!1),method:o.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return d.then(r=>{this.dispatch(i(r))}).catch(()=>{this.dispatch(i(n))}),[c,d]}async delete(e){const{deleteOne:i,addOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`Procedure step field values review with uuid ${e} not found in store`);this.dispatch(i(e));try{return await this.enqueueRequest({description:y(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(d){throw this.dispatch(a(c)),d}}async refreshStore(e,i){const{initialize:a}=this.actions,c=(await this.listPaginated({queryParams:{field_values__procedure__project:e}},i)).flat();return this.dispatch(a(c)),c}}class aw extends g{name="Procedure Step Field Values";url="/procedure-step-field-values";actions={addOne:gb,addMany:Rb,setOne:wb,setMany:Eb,updateOne:vb,updateMany:Vb,deleteOne:Bb,deleteMany:zb,initialize:Mb};selectors={selectById:Db,selectByIds:qb};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=this.select(h=>h.userReducer.currentUser?.id??null),d=new Date().toISOString(),r=l.uuidObj({...e,created_by:c,submitted_at:d}),p=this.enqueueRequest({description:y(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(r),blockers:[e.procedure,e.procedure_step,e.fields_revision],blocks:[r.uuid]});return this.dispatch(i(r)),p.then(h=>{this.dispatch(a(h))}).catch(()=>{this.dispatch(n(r.uuid))}),[r,p]}bulkAdd(e,i){const{addMany:a,updateMany:n,deleteMany:c}=this.actions,d=new Date().toISOString(),r=this.select(I=>I.userReducer.currentUser?.id??null),p=[],h=l.chunkArray(e,Math.min(i??e.length,D)),f=[];for(const I of h){const S=[],P=[],_=[];for(const F of I){const w=l.uuidObj({...F,values:F.values,created_by:r,submitted_at:d});p.push(w),S.push(M(w)),P.push(w.procedure_step,w.procedure,w.fields_revision),_.push(w.uuid)}f.push({payload:{payloads:S,submitted_at:d},blockers:P,blocks:_})}this.dispatch(a(p));const A=f.map(I=>{const{payload:S,blocks:P,blockers:_}=I;return this.enqueueRequest({description:y(o.POST,this.name,!0),method:o.POST,url:`${this.url}/bulk/`,payload:S,blockers:_,blocks:P})});return Promise.all(A).then(I=>{this.dispatch(n(I.flat()))}).catch(()=>{this.dispatch(c(l.toUuidArray(p)))}),[p,Promise.all(A).then(I=>I.flat())]}update(e){const{updateOne:i}=this.actions,{selectById:a}=this.selectors,n=this.select(a(e.uuid));if(!n)throw new Error(`Expected ProcedureStepFieldValues with uuid ${e.uuid} to exist`);const c={...n,...e};this.dispatch(i(c));const d=this.enqueueRequest({description:y(o.PATCH,this.name,!1),method:o.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[c.uuid,c.procedure,c.procedure_step,c.fields_revision],blocks:[c.uuid]});return d.then(r=>{this.dispatch(i(r))}).catch(()=>{this.dispatch(i(n))}),[c,d]}async delete(e){const{deleteOne:i,addOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`Expected ProcedureStepFieldValues with uuid ${e} to exist`);const d=this.select(Pb(e)),r=this.select(Zb(e));this.dispatch(i(e)),this.dispatch($a(l.toUuidArray(d))),this.dispatch(Ga(l.toUuidArray(r)));try{return await this.enqueueRequest({description:y(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(p){throw this.dispatch(a(c)),this.dispatch(qa(d)),this.dispatch(Ha(r)),p}}async refreshStore(e,i){const{initialize:a}=this.actions,c=(await this.listPaginated({queryParams:{procedure__project:e}},i)).flat();return this.dispatch(a(c)),c}}class nw extends g{name="Procedure Step Reviewer";url="/procedure-step-reviewers";actions={addOne:eO,addMany:tO,setOne:sO,setMany:iO,updateOne:aO,updateMany:nO,deleteOne:cO,deleteMany:rO,initialize:xb};selectors={selectById:uO,selectByIds:lO};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=l.uuidObj({...e,created_by:this.select(r=>r.userReducer.currentUser?.id??null),submitted_at:new Date().toISOString()});this.dispatch(i(c));const d=this.enqueueRequest({description:y(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(c),blockers:[c.procedure,c.procedure_step],blocks:[c.uuid]});return d.then(r=>{this.dispatch(a(r))}).catch(()=>{this.dispatch(n(c.uuid))}),[c,d]}bulkAdd(e){const{addMany:i,updateMany:a,deleteMany:n}=this.actions,c=this.select(h=>h.userReducer.currentUser?.id??null),d=new Date().toISOString(),r=e.map(h=>l.uuidObj({...h,created_by:c,submitted_at:d}));this.dispatch(i(r));const p=this.enqueueRequest({description:y(o.POST,this.name,!0),method:o.POST,url:`${this.url}/bulk/`,payload:{procedure_step_reviewers:r.map(h=>M(h)),submitted_at:d},blockers:r.flatMap(h=>[h.procedure,h.procedure_step]),blocks:r.map(h=>h.uuid)});return p.then(h=>{this.dispatch(a(h))}).catch(()=>{this.dispatch(n(l.toUuidArray(r)))}),[r,p]}async delete(e){const{deleteOne:i,addOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`Expected procedure step reviewer with uuid ${e} to exist`);this.dispatch(i(e));try{return await this.enqueueRequest({description:y(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(d){throw this.dispatch(a(c)),d}}async bulkDelete(e){const{deleteMany:i,addMany:a}=this.actions,{selectByIds:n}=this.selectors,c=this.select(n(e));this.dispatch(i(e));try{return await this.enqueueRequest({description:y(o.DELETE,this.name,!0),method:o.DELETE,url:`${this.url}/bulk/`,payload:{uuids:e},blockers:e,blocks:[]})}catch(d){throw this.dispatch(a(c)),d}}async refreshStore(e,i){const{initialize:a}=this.actions,c=(await this.listPaginated({queryParams:{procedure__project:e}},i)).flat();return this.dispatch(a(c)),c}}class cw extends g{name="Procedure Initiative";url="/procedure-initiatives";actions={addOne:ZA,addMany:JA,setOne:QA,setMany:xA,updateOne:eT,updateMany:tT,deleteOne:sT,deleteMany:iT,initialize:YA};selectors={selectById:cT,selectByIds:rT};add(e){const{store:i}=this.client,{addOne:a,updateOne:n,deleteOne:c}=this.actions,d=l.uuidObj({...e,created_by:i.getState().userReducer.currentUser?.id??null,submitted_at:new Date().toISOString()});this.dispatch(a(d));const r=this.enqueueRequest({description:y(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(d),blockers:[d.procedure_type,d.project],blocks:[d.uuid]});return r.then(p=>{this.dispatch(n(p))}).catch(()=>{this.dispatch(c(d.uuid))}),[d,r]}update(e){const{updateOne:i}=this.actions,{selectById:a}=this.selectors,n=this.select(a(e.uuid));if(!n)throw new Error(`Expected ${this.name} with uuid ${e.uuid} to exist`);const c={...n,...e};this.dispatch(i(c));const d=this.enqueueRequest({description:y(o.PATCH,this.name,!1),method:o.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[n.uuid],blocks:[n.uuid]});return d.then(r=>{this.dispatch(i(r))}).catch(()=>{this.dispatch(i(n))}),[c,d]}async delete(e){const{deleteOne:i,addOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`Expected ${this.name} with uuid ${e} to exist`);const d=this.select(PT(e));this.dispatch(i(e)),this.dispatch(Ot(l.toUuidArray(d)));try{return await this.enqueueRequest({description:y(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(r){throw this.dispatch(a(c)),this.dispatch(bt(d)),r}}async refreshStore(e,i){const{initialize:a}=this.actions,c=(await this.listPaginated({queryParams:{project:e}},i)).flat();return this.dispatch(a(c)),c}}class rw extends g{name="Procedure Step";url="/procedure-steps";actions={addOne:fO,addMany:SO,setOne:mO,setMany:yO,updateOne:AO,updateMany:TO,deleteOne:IO,deleteMany:bO,initialize:pO};selectors={selectById:PO,selectByIds:FO};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=l.uuidObj({...e,created_by:this.select(r=>r.userReducer.currentUser?.id??null),submitted_at:new Date().toISOString()});this.dispatch(i(c));const d=this.enqueueRequest({description:y(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(c),blockers:[c.procedure_type],blocks:[c.uuid]});return d.then(r=>{this.dispatch(a(r))}).catch(()=>{this.dispatch(n(c.uuid))}),[c,d]}update(e){const{updateOne:i}=this.actions,{selectById:a}=this.selectors,n=this.select(a(e.uuid));if(!n)throw new Error(`No procedure step with uuid ${e.uuid} found in the store`);const c={...n,...e};this.dispatch(i(c));const d=this.enqueueRequest({description:y(o.PATCH,this.name,!1),method:o.PATCH,url:`${this.url}/${n.uuid}/`,payload:e,blockers:[n.uuid],blocks:[n.uuid]});return d.then(r=>{this.dispatch(i(r))}).catch(()=>{this.dispatch(i(n))}),[c,d]}async delete(e){const{addOne:i,deleteOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`No procedure step with uuid ${e} found in the store`);this.dispatch(a(e));try{return await this.enqueueRequest({description:y(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(d){throw this.dispatch(i(c)),d}}bulkUpdate(e,i){const{updateMany:a}=this.actions,{selectByIds:n}=this.selectors,c=l.toUuidArray(e);if(new Set(c).size!==e.length)throw new Error("payloads contains duplicate uuids.");const d=this.select(n(c));if(c.length!=d.length)throw new Error(`Attempting to bulk update ${c.length-d.length} ${this.name} that dont exist in the store`);const r=d.toSorted((S,P)=>l.uuidSortFn(S.uuid,P.uuid)),p=e.toSorted((S,P)=>l.uuidSortFn(S.uuid,P.uuid)),h=[];for(let S=0;S<c.length;S++)h.push({...r[S],...p[S]});this.dispatch(a(h));const f=l.chunkArray(e,Math.min(i??e.length,D)),A=[];let I=null;for(const S of f){const P=ut.v4(),_=l.toUuidArray(S),F=this.enqueueRequest({description:y(o.PATCH,this.name,!0),method:o.PATCH,url:`${this.url}/bulk/`,payload:{payloads:S},blockers:(I?[I]:[]).concat(_),blocks:[P].concat(_)});A.push(F),I=P}return Promise.all(A).then(S=>{this.dispatch(a(S.flat()))}).catch(()=>{this.dispatch(a(d))}),[h,A]}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({queryParams:{procedure_type__organization:e}},i);return this.dispatch(a(n)),n}}class dw extends v{name="Procedure Type Attachment";url="/procedure-type-attachments";actions={addOne:gO,addMany:RO,setOne:wO,setMany:EO,updateOne:vO,updateMany:VO,deleteOne:BO,deleteMany:zO,initialize:MO};selectors={selectById:DO,selectByIds:qO};getId(e){return e.uuid}getBlockers(e){return[e.procedure_type]}getBlocks(e){return[e.uuid]}buildModel(e){const i=this.select(n=>n.userReducer.currentUser?.id??null),a=new Date().toISOString();return l.uuidObj({...e,created_by:i,submitted_at:a})}buildPayload(e){return{uuid:e.uuid,submitted_at:e.submitted_at,file_name:e.file_name,file_sha1:e.file_sha1,file_extension:e.file_extension,procedure_type:e.procedure_type}}buildBulkPayload(e){return{uuid:e.uuid,file_name:e.file_name,file_sha1:e.file_sha1,file_extension:e.file_extension,procedure_type:e.procedure_type}}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({queryParams:{procedure_type__organization:e}},i);return this.dispatch(a(n)),n}}class uw extends v{name="Procedure Type Fields Attachment";url="/procedure-type-fields-attachments";actions={addOne:kO,addMany:LO,setOne:HO,setMany:GO,updateOne:NO,updateMany:KO,deleteOne:WO,deleteMany:XO,initialize:UO};selectors={selectById:JO,selectByIds:QO};getId(e){return e.uuid}getBlockers(e){return[e.fields_revision]}getBlocks(e){return[e.uuid]}buildModel(e){const i=this.select(n=>n.userReducer.currentUser?.id??null),a=new Date().toISOString();return l.uuidObj({...e,created_by:i,submitted_at:a})}buildPayload(e){const{uuid:i,field_identifier:a,fields_revision:n,file_sha1:c,file_name:d,file_extension:r}=e;return{uuid:i,submitted_at:e.submitted_at,field_identifier:a,fields_revision:n,file_sha1:c,file_name:d,file_extension:r}}buildBulkPayload(e){const{uuid:i,field_identifier:a,fields_revision:n,file_sha1:c,file_name:d,file_extension:r}=e;return{uuid:i,field_identifier:a,fields_revision:n,file_sha1:c,file_name:d,file_extension:r}}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({queryParams:{fields_revision__procedure_type__organization:e}},i);return this.dispatch(a(n)),n}}class lw extends g{name="Procedure Type Fields";url="/procedure-type-fields";actions={addOne:tP,addMany:sP,setOne:iP,setMany:aP,updateOne:nP,updateMany:cP,deleteOne:rP,deleteMany:dP,initialize:eP};selectors={selectById:oP,selectByIds:hP};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=this.select(h=>h.userReducer.currentUser?.id??null),d=new Date().toISOString(),r=l.uuidObj({...e,created_by:c,submitted_at:d});this.dispatch(i(r));const p=this.enqueueRequest({description:y(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(r),blockers:[r.procedure_type],blocks:[r.uuid]});return p.then(h=>{this.dispatch(a(h))}).catch(h=>{throw this.dispatch(n(r.uuid)),h}),[r,p]}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({queryParams:{procedure_type__organization:e}},i);return this.dispatch(a(n)),n}}class ow extends v{name="Procedure Field Values Attachment";url="/procedure-field-values-attachments";actions={addOne:yP,addMany:tn,setOne:fP,setMany:SP,updateOne:AP,updateMany:TP,deleteOne:IP,deleteMany:sn,initialize:mP};selectors={selectById:PP,selectByIds:FP};getId(e){return e.uuid}getBlockers(e){return[e.field_values]}getBlocks(e){return[e.uuid]}buildModel(e){const i=this.select(n=>n.userReducer.currentUser?.id??null),a=new Date().toISOString();return l.uuidObj({...e,created_by:i,submitted_at:a})}buildPayload(e){const{uuid:i,field_identifier:a,field_values:n,file_sha1:c,file_name:d,file_extension:r}=e;return{uuid:i,submitted_at:e.submitted_at,field_identifier:a,field_values:n,file_sha1:c,file_name:d,file_extension:r}}buildBulkPayload(e){const{uuid:i,field_identifier:a,field_values:n,file_sha1:c,file_name:d,file_extension:r}=e;return{uuid:i,field_identifier:a,field_values:n,file_sha1:c,file_name:d,file_extension:r}}async bulkDelete(e){const{deleteMany:i,addMany:a}=this.actions,{selectByIds:n}=this.selectors,c=this.select(n(e));this.dispatch(i(e));try{return await this.enqueueRequest({description:y(o.DELETE,this.name,!0),method:o.DELETE,url:`${this.url}/bulk/`,payload:{uuids:e},blockers:e,blocks:[]})}catch(d){throw this.dispatch(a(c)),d}}async refreshStore(e,i){const{initialize:a}=this.actions,c=(await this.listPaginated({queryParams:{field_values__procedure__project:e,latest:!0}},i)).flat();return this.dispatch(a(c)),c}}class hw extends g{name="Procedure Field Values";url="/procedure-field-values";actions={addOne:RP,addMany:wP,setOne:EP,setMany:vP,updateOne:VP,updateMany:BP,deleteOne:zP,deleteMany:jP,initialize:gP};selectors={selectById:qP,selectByIds:$P};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=this.select(h=>h.userReducer.currentUser?.id??null),d=new Date().toISOString(),r=l.uuidObj({...e,created_by:c,submitted_at:d}),p=this.enqueueRequest({description:y(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(r),blockers:[e.fields_revision,e.procedure],blocks:[r.uuid]});return this.dispatch(i(r)),p.then(h=>{this.dispatch(a(h))}).catch(()=>{this.dispatch(n(r.uuid))}),[r,p]}bulkAdd(e,i){const{addMany:a,updateMany:n,deleteMany:c}=this.actions,d=new Date().toISOString(),r=this.select(I=>I.userReducer.currentUser?.id??null),p=[],h=l.chunkArray(e,Math.min(i??e.length,D)),f=[];for(const I of h){const S=[],P=[],_=[];for(const F of I){const w=l.uuidObj({...F,values:F.values,created_by:r,submitted_at:d});p.push(w),S.push(M(w)),P.push(w.procedure,w.fields_revision),_.push(w.uuid)}f.push({payload:{payloads:S,submitted_at:d},blockers:P,blocks:_})}this.dispatch(a(p));const A=f.map(I=>{const{payload:S,blocks:P,blockers:_}=I;return this.enqueueRequest({description:y(o.POST,this.name,!0),method:o.POST,url:`${this.url}/bulk/`,payload:S,blockers:_,blocks:P})});return Promise.all(A).then(I=>{this.dispatch(n(I.flat()))}).catch(()=>{this.dispatch(c(l.toUuidArray(p)))}),[p,Promise.all(A).then(I=>I.flat())]}update(e){const{updateOne:i}=this.actions,{selectById:a}=this.selectors,n=this.select(a(e.uuid));if(!n)throw new Error(`Expected ProcedureFieldValues with uuid ${e.uuid} to exist`);const c={...n,...e};this.dispatch(i(c));const d=this.enqueueRequest({description:y(o.PATCH,this.name,!1),method:o.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[c.fields_revision,c.procedure],blocks:[c.uuid]});return d.then(r=>{this.dispatch(i(r))}).catch(()=>{this.dispatch(i(n))}),[c,d]}async delete(e){const{deleteOne:i,addOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`Expected submission with uuid ${e} to exist`);const d=this.select(_P(e));this.dispatch(i(e)),this.dispatch(sn(l.toUuidArray(d)));try{return await this.enqueueRequest({description:y(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(r){throw this.dispatch(a(c)),this.dispatch(tn(d)),r}}async refreshStore(e,i){const{initialize:a}=this.actions,c=(await this.listPaginated({queryParams:{procedure__project:e,latest:!0}},i)).flat();return this.dispatch(a(c)),c}}class pw extends g{name="Procedure Type";url="/procedure-types";actions={addOne:LP,addMany:HP,setOne:GP,setMany:NP,updateOne:KP,updateMany:WP,deleteOne:XP,deleteMany:YP,initialize:kP};selectors={selectById:QP,selectByIds:xP};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=l.uuidObj({...e,created_by:this.select(r=>r.userReducer.currentUser?.id??null),submitted_at:new Date().toISOString()});this.dispatch(i(c));const d=this.enqueueRequest({description:y(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(c),blockers:[],blocks:[c.uuid]});return d.then(r=>{this.dispatch(a(r))}).catch(()=>{this.dispatch(n(c.uuid))}),[c,d]}update(e){const{updateOne:i}=this.actions,{selectById:a}=this.selectors,n=this.select(a(e.uuid));if(!n)throw new Error(`Expected procedure type with uuid ${e.uuid} to exist`);const c={...n,...e};this.dispatch(i(c));const d=this.enqueueRequest({description:y(o.PATCH,this.name,!1),method:o.PATCH,url:`${this.url}/${e.uuid}/`,payload:e,blockers:[n.uuid],blocks:[n.uuid]});return d.then(r=>{this.dispatch(i(r))}).catch(()=>{this.dispatch(i(n))}),[c,d]}async delete(e){const{deleteOne:i,addOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`Expected procedure type with uuid ${e} to exist`);const d=this.select(IT(e));this.dispatch(i(e)),this.dispatch(Ot(l.toUuidArray(d)));try{return await this.enqueueRequest({description:y(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[]})}catch(r){throw this.dispatch(a(c)),this.dispatch(bt(d)),r}}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({queryParams:{organization:e}},i);return this.dispatch(a(n)),n}}class mw extends g{name="Team Membership";url="/team-memberships";actions={addOne:AF,addMany:TF,setOne:IF,setMany:bF,updateOne:OF,updateMany:PF,deleteOne:FF,deleteMany:_F,initialize:SF};selectors={selectById:RF,selectByIds:wF};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=l.uuidObj({...e,created_by:this.select(r=>r.userReducer.currentUser?.id??null)});this.dispatch(i(c));const d=this.enqueueRequest({description:y(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(c),blockers:[e.team],blocks:[c.uuid]});return d.then(r=>{this.dispatch(a(r))}).catch(()=>{this.dispatch(n(c.uuid))}),[c,d]}bulkAdd(e){const{addMany:i,updateMany:a,deleteMany:n}=this.actions,c=this.select(p=>p.userReducer.currentUser?.id??null),d=e.map(p=>l.uuidObj({...p,created_by:c}));this.dispatch(i(d));const r=this.enqueueRequest({description:y(o.POST,this.name,!0),method:o.POST,url:`${this.url}/bulk/`,payload:{team_memberships:d.map(p=>M(p))},blockers:d.map(p=>p.team),blocks:d.map(p=>p.uuid)});return r.then(p=>{this.dispatch(a(p))}).catch(()=>{this.dispatch(n(d.map(p=>p.uuid)))}),[d,r]}async delete(e){const{addOne:i,deleteOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`Expected team membership with uuid ${e} to exist`);this.dispatch(a(e));try{return await this.enqueueRequest({description:y(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[e]})}catch(d){throw this.dispatch(i(c)),d}}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({queryParams:{team__organization:e}},i);return this.dispatch(a(n)),n}}class yw extends g{name="Team";url="/teams";actions={addOne:VF,addMany:BF,setOne:zF,setMany:jF,updateOne:CF,updateMany:DF,deleteOne:qF,deleteMany:$F,initialize:vF};selectors={selectById:kF,selectByIds:LF};add(e){const{addOne:i,updateOne:a,deleteOne:n}=this.actions,c=l.uuidObj({...e,submitted_at:new Date().toISOString(),created_by:this.select(r=>r.userReducer.currentUser?.id??null)});this.dispatch(i(c));const d=this.enqueueRequest({description:y(o.POST,this.name,!1),method:o.POST,url:`${this.url}/`,payload:M(c),blockers:[],blocks:[c.uuid]});return d.then(r=>{this.dispatch(a(r))}).catch(()=>{this.dispatch(n(c.uuid))}),[c,d]}update(e){const{updateOne:i}=this.actions,{selectById:a}=this.selectors,n=this.select(a(e.uuid));if(!n)throw new Error(`Expected team with uuid ${e.uuid} to exist`);const c={...n,...e};this.dispatch(i(c));const d=this.enqueueRequest({description:y(o.PATCH,this.name,!1),method:o.PATCH,url:`${this.url}/${e.uuid}/`,payload:M(e),blockers:[e.uuid],blocks:[e.uuid]});return d.then(r=>{this.dispatch(i(r))}).catch(()=>{this.dispatch(i(n))}),[c,d]}async delete(e){const{addOne:i,deleteOne:a}=this.actions,{selectById:n}=this.selectors,c=this.select(n(e));if(!c)throw new Error(`Expected team with uuid ${e} to exist`);this.dispatch(a(e));try{return await this.enqueueRequest({description:y(o.DELETE,this.name,!1),method:o.DELETE,url:`${this.url}/${e}/`,blockers:[e],blocks:[e]})}catch(d){throw this.dispatch(i(c)),d}}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({queryParams:{organization:e}},i);return this.dispatch(a(n)),n}}class fw extends dt{name="User";url="/user";actions={addOne:ua,addMany:Gf,setOne:Hf,setMany:Lf,updateOne:Kf,updateMany:Nf,deleteOne:la,deleteMany:Wf,initialize:kf};selectors={selectById:xt,selectByIds:Zf};async list(e,i){const{organizationUuid:a,...n}=e,c=a?`/organizations/${a}${this.url}s/`:`/${this.url}`;return this.performRequest({method:o.GET,url:c,...n},i)}async refreshStore(e,i){const{initialize:a}=this.actions,n=await this.list({organizationUuid:e},i);return this.dispatch(a(n)),n}}async function An(t,e,i,a,n){const c=a instanceof yt;c&&e.checkAuth!==!1&&await a.auth.prepareAuth();const d={queryParams:"",isAuthNeeded:!0},{s3url:r,payload:p,headers:h,method:f,queryParams:A,attachmentHash:I,isExternalUrl:S,isAuthNeeded:P,isResponseBlob:_}={...d,...e};let F=e.url;const w=I?await i.files.getFileFromCache(I):void 0,V=w?await e_(w):void 0;if(I){if(!V)throw new Error(`Cannot upload file ${I} because it's not cached.`);if(V.size===0)throw new Error(`Cannot upload file ${I} because its has a size of 0.`)}!S&&!F.startsWith("http")&&(!F.startsWith("/")&&!F.startsWith("blob:")&&(F="/"+F),F=t+F);const R=B=>{if(I){if(!r)throw new Error(`No S3 URL for file ${I}`);if("warning"in r)throw new Error(`S3 URL warning for file ${I}`);if(!V)throw new Error(`No file for file ${I}`);const q=r.fields["x-amz-checksum-sha1"];if(!q)throw new Error(`No checksum for file ${I}`);return B.set("x-amz-checksum-sha1",q).field({...p,...r.fields}).attach("file",V)}return B.send(p)},zt={[o.GET]:()=>_?St.get(F.toString()).responseType("blob"):St.get(F.toString()),[o.POST]:()=>{const B=St.post(F.toString());return R(B)},[o.PATCH]:()=>{const B=St.patch(F.toString());return R(B)},[o.PUT]:()=>{const B=St.put(F.toString());return R(B)},[o.DELETE]:()=>{const B=St.delete(F.toString());return R(B)}}[f];let j=zt();const ds=()=>{console.debug("aborting request:",e.url),j.abort()};n?.addEventListener("abort",ds),P&&c&&(j=a.auth.applyAuth(j)),h&&(j=j.set(h));try{return await j.query(A)}catch(B){const q=xF(B),jt=q?.status;throw c&&q&&a.auth.isAuthFailure(q)?(await a.auth.handleUnauthorized(j,q),new z({response:q,innerError:B,discard:!1})):new z({response:q,innerError:B,discard:yn.includes(jt)})}finally{n?.removeEventListener("abort",ds)}}class Sw{store;constructor(e){this.store=e}_performRequest(e,i,a,n){const c=new l.DeferredPromise,d={...i,uuid:i.uuid??ut.v4()};return An(e,d,this,a,n).then(r=>{c.resolve(r.body)}).catch(r=>{r instanceof Error?c.reject(r):c.reject(new Error((r??l.ERROR_MSG_UNEXPECTED).toString()))}),c}async performRequest(e,i,a,n){return this._performRequest(e,i,a,n).then(c=>{if(c instanceof z)throw c;return c})}async enqueueRequest(e,i,a){return this._enqueueRequest(e,i,a).then(n=>{if(n instanceof z)throw n;return n})}_enqueueRequest(e,i,a){const n=new l.DeferredPromise,c={...e,BASE_URL:i,serviceName:a},d=this.store.dispatch(RS(c)),r=h=>{if(h)n.resolve(h.body);else{const f=new z({message:"Could not get a response from the server.",response:h,discard:!0});n.reject(f)}},p=h=>{h instanceof z?h.options.discard=!0:(console.error("Received an unexpected error while processing a request:",h,`
14
+ Converting error to APIError and discarding.`),h=new z({message:"An error occurred while processing the request.",innerError:h,discard:!0})),n.reject(h)};return d.then(r,p),n}async performPagination(e,i,a,n,c){const d={...i,queryParams:{...i.queryParams,paginate:!0,limit:a}},{method:r}=d,p=[];let h=await this.performRequest(e,d,n,c);for(p.push(h.results);h.next;)h=await this.performRequest(e,{url:h.next,method:r},n,c),p.push(h.results);return p}}class Pt{graph;requestAttemptCounter;constructor(){this.graph=new F_.DepGraph,this.requestAttemptCounter={}}static _fromOutbox(e){const i=new Pt;for(let a=0;a<e.length;a++){const n=e[a];if(!n){console.error("Outbox item was undefined");continue}i.sneakRequest(n);for(let c=0;c<a;c++){const d=e[c];if(!d){console.error("Previous outbox item was undefined");continue}d.payload.uuid!==n.payload.uuid&&d.payload.blocks.some(r=>n.payload.blockers.includes(r))&&Pt._addDependency(n.payload.uuid,d.payload.uuid,i.graph)}}return i}_addDependency(e,i){Pt._addDependency(e,i,this.graph)}static _addDependency(e,i,a){if(e===i)throw new Error(`Tried to add dependency from node to itself: ${e}`);if(!a.hasNode(e))throw new Error(`Tried to add dependency from non-existent node: ${e} (to node: ${i})`);if(!a.hasNode(i))throw new Error(`Tried to add dependency to non-existent node: ${i} (from node: ${e})`);a.addDependency(e,i)}addRequest(e){if(this.graph.addNode(e.payload.uuid,e),!(e.payload.blockers.length===0||this.graph.size()===1))for(const i of this.graph.overallOrder()){if(i===e.payload.uuid)continue;const a=this.graph.getNodeData(i),n=new Set(a.payload.blocks);e.payload.blockers.some(c=>n.has(c))&&this._addDependency(e.payload.uuid,i)}}insertRequest(e){this.graph.addNode(e.payload.uuid,e);for(const i of this.graph.overallOrder()){if(i===e.payload.uuid)continue;const a=this.graph.getNodeData(i),n=new Set(e.payload.blocks);a.payload.blockers.some(c=>n.has(c))&&this._addDependency(i,e.payload.uuid)}}sneakRequest(e){this.graph.addNode(e.payload.uuid,e)}_getNextNode(){const e=this.graph.overallOrder(!0);let i=1/0,a;for(const n of e){const c=this.requestAttemptCounter[n]||0;c<i&&(i=c,a=n)}return a}peek(){const e=this._getNextNode();if(e)return this.graph.getNodeData(e)}remove(e){this.graph.removeNode(e),delete this.requestAttemptCounter[e]}pop(){const e=this.peek();return e&&this.graph.removeNode(e.payload.uuid),e}getQueue(){const e=this.graph.overallOrder().map(a=>this.graph.getNodeData(a)),i=this._getNextNode();if(i){const a=this.graph.getNodeData(i),n=e.findIndex(c=>c.payload.uuid===a.payload.uuid);n!==-1&&(e.splice(n,1),e.unshift(a))}return e}getReady(){let e=this.graph.overallOrder(!0).map(i=>this.graph.getNodeData(i));return e=e.sort((i,a)=>i.meta.offline.effect.timestamp.localeCompare(a.meta.offline.effect.timestamp)),e=e.sort((i,a)=>{const n=this.requestAttemptCounter[i.payload.uuid]||0,c=this.requestAttemptCounter[a.payload.uuid]||0;return n-c}),e}registerRetry(e){this.requestAttemptCounter[e]=(this.requestAttemptCounter[e]||0)+1}}let l_;function o_(t){l_=t}function Ft(){return l_}let h_;function p_(t){h_=t}function m_(){return h_}let Tn=null;function ft(){const t=Ft();if(!t)return console.warn("Client store not set; cannot get outbox coordinator yet."),null;if(Tn)return Tn;const e=t.getState().offline.outbox,i=Pt._fromOutbox(e);return Tn=i,i}const Aw=(t,e)=>{const i=new e(t);return p_(i),o_(t),i};class Tw{_all;_previous;constructor(e){this._all=[e],this._previous=e,this.then=this.then.bind(this),this.compile=this.compile.bind(this)}then(e){return this._previous&&(this._previous.next=e),this._all.push(e),this._previous=e,{then:this.then,compile:this.compile}}compile(){return this._all}}class In{next;constructor(){this.next=null}then(e){return new Tw(this).then(e)}async run(e){if(this.next)return this.next.run(e);{if(console.debug("Middleware finished. Performing request:",e.payload.url),!Ft())throw new Error("Client store not set");const a=m_();if(!a)throw new Error("Client SDK not set");return ZF(e,a)}}}class y_ extends In{async run(e){return super.run(e)}}class f_ extends In{async run(e){return super.run(e)}}const S_=new y_().then(new f_).compile();function A_(t){return S_[0]?.run(t)}s.ALL_MIDDLEWARE=S_,s.APIError=z,s.AgentService=Gg,s.AssetAttachmentService=Ng,s.AssetCommentAttachmentService=Kg,s.AssetCommentService=Wg,s.AssetService=Xg,s.AssetTypeAttachmentService=Yg,s.AssetTypeFieldValuesAttachmentService=Qg,s.AssetTypeFieldValuesService=xg,s.AssetTypeFieldsAttachmentService=Zg,s.AssetTypeFieldsService=Jg,s.AssetTypeIdentifierService=eR,s.AssetTypeIdentifierValueService=tR,s.AssetTypeService=sR,s.AssetTypeStatusService=iR,s.BaseApiService=yt,s.BaseAuthService=u_,s.BaseModelApiService=dt,s.BaseOfflineFileModelApiService=v,s.BaseOfflineModelApiService=g,s.BaseSDK=Sw,s.COMMON_AUTO_FIELDS=On,s.DEFAULT_PAGE_SIZE=NF,s.DISCARD_HTTP_STATUSES=yn,s.DocumentAttachmentService=aR,s.DocumentService=nR,s.EmailDomainsService=cR,s.EmailVerificationService=rR,s.FileService=dR,s.FormIdentifierService=uR,s.FormIdentifierValueService=lR,s.FormRevisionAttachmentService=oR,s.FormRevisionService=hR,s.FormService=pR,s.FormSubmissionCommentAttachmentService=SR,s.FormSubmissionCommentService=AR,s.FormSubmissionFieldValuesAttachmentService=yR,s.FormSubmissionFieldValuesService=fR,s.FormSubmissionService=TR,s.FormSubscriberService=mR,s.GeoImageService=IR,s.HttpMethod=o,s.IssueAssociationService=bR,s.IssueAttachmentService=OR,s.IssueCommentAttachmentService=PR,s.IssueCommentService=FR,s.IssueService=_R,s.IssueTypeAttachmentService=MR,s.IssueTypeFieldValuesAttachmentService=wR,s.IssueTypeFieldValuesService=ER,s.IssueTypeFieldsAttachmentService=gR,s.IssueTypeFieldsService=RR,s.IssueTypeIdentifierService=vR,s.IssueTypeIdentifierValueService=VR,s.IssueTypePriorityService=BR,s.IssueTypeService=zR,s.IssueTypeStatusService=jR,s.IssueUpdateService=CR,s.JWTService=$R,s.MAX_SERVICE_BATCH_SIZE=D,s.OUTBOX_RETRY_DELAY=6e4,s.OfflineAnalyticsMiddleware=y_,s.OfflineMiddleware=In,s.OrganizationAccessService=UR,s.OrganizationService=kR,s.OutboxCoordinator=Pt,s.ProcdureInitiativeService=cw,s.ProcedureFieldValuesAttachmentService=ow,s.ProcedureFieldValuesService=hw,s.ProcedureService=XR,s.ProcedureStepAssigneeService=YR,s.ProcedureStepCommentService=ZR,s.ProcedureStepDefaultAssigneeService=JR,s.ProcedureStepDefaultReviewerService=QR,s.ProcedureStepEventService=xR,s.ProcedureStepFieldValuesAttachmentService=sw,s.ProcedureStepFieldValuesReviewService=iw,s.ProcedureStepFieldValuesService=aw,s.ProcedureStepFieldsAttachmentService=ew,s.ProcedureStepFieldsService=tw,s.ProcedureStepReviewerService=nw,s.ProcedureStepService=rw,s.ProcedureTypeAttachmentService=dw,s.ProcedureTypeFieldsAttachmentService=uw,s.ProcedureTypeFieldsService=lw,s.ProcedureTypeService=pw,s.ProjectAccessService=LR,s.ProjectAttachmentService=HR,s.ProjectCommentService=GR,s.ProjectFileService=NR,s.ProjectService=KR,s.RESET_ORGANIZATION_STATE=O,s.RESET_PROJECT_STATE=E,s.RESET_STATE=T,s.RateLimitingMiddleware=f_,s.ReportService=WR,s.TeamMembershipService=mw,s.TeamService=yw,s.UserService=fw,s._setLatestRetryTime=ES,s.addAsset=Ac,s.addAssetAttachment=vn,s.addAssetAttachments=hs,s.addAssetComment=ac,s.addAssetCommentAttachment=Gn,s.addAssetCommentAttachments=Nn,s.addAssetComments=Ct,s.addAssetType=bd,s.addAssetTypeAttachment=vc,s.addAssetTypeAttachments=Os,s.addAssetTypeFieldValues=vr,s.addAssetTypeFieldValuesAttachment=Ar,s.addAssetTypeFieldValuesAttachments=ws,s.addAssetTypeFieldValuesMany=Vr,s.addAssetTypeFields=ar,s.addAssetTypeFieldsAttachment=Gc,s.addAssetTypeFieldsAttachments=Nc,s.addAssetTypeFieldsMany=nr,s.addAssetTypeIdentifier=Nr,s.addAssetTypeIdentifierValue=nd,s.addAssetTypeIdentifierValues=cd,s.addAssetTypeIdentifiers=Kr,s.addAssetTypeStatus=Bd,s.addAssetTypeStatuses=zd,s.addAssetTypes=Od,s.addAssets=Ts,s.addConversation=_n,s.addConversations=M_,s.addDocument=lu,s.addDocumentAttachment=Zd,s.addDocumentAttachments=Jd,s.addDocuments=ou,s.addEmailDomain=Fu,s.addEmailDomains=_u,s.addForm=Ql,s.addFormIdentifier=qu,s.addFormIdentifierValue=Qu,s.addFormIdentifierValues=xu,s.addFormIdentifiers=$u,s.addFormRevision=Ml,s.addFormRevisionAttachment=hl,s.addFormRevisionAttachments=pl,s.addFormRevisions=Js,s.addFormSubmission=hh,s.addFormSubmissionComment=Jo,s.addFormSubmissionCommentAttachment=Do,s.addFormSubmissionCommentAttachments=qo,s.addFormSubmissionComments=Si,s.addFormSubmissionFieldValues=Fo,s.addFormSubmissionFieldValuesAttachment=po,s.addFormSubmissionFieldValuesAttachments=ni,s.addFormSubmissionFieldValuesMany=oi,s.addFormSubmissions=lt,s.addFormSubscriber=$l,s.addFormSubscribers=ei,s.addForms=xl,s.addGeoImage=wh,s.addGeoImages=Eh,s.addIssue=Hp,s.addIssueAssociation=Nh,s.addIssueAssociations=At,s.addIssueAttachment=ip,s.addIssueAttachments=Fi,s.addIssueComment=Ep,s.addIssueCommentAttachment=fp,s.addIssueCommentAttachments=Sp,s.addIssueComments=vp,s.addIssueType=nf,s.addIssueTypeAttachment=sm,s.addIssueTypeAttachments=im,s.addIssueTypeFieldValues=Em,s.addIssueTypeFieldValuesAttachment=ay,s.addIssueTypeFieldValuesAttachments=ki,s.addIssueTypeFieldValuesMany=vm,s.addIssueTypeFields=Gm,s.addIssueTypeFieldsAttachment=fm,s.addIssueTypeFieldsAttachments=Sm,s.addIssueTypeFieldsMany=Nm,s.addIssueTypeIdentifier=Sy,s.addIssueTypeIdentifierValue=vy,s.addIssueTypeIdentifierValues=Vy,s.addIssueTypeIdentifiers=Ay,s.addIssueTypePriorities=Ky,s.addIssueTypePriority=Ny,s.addIssueTypeStatus=Tf,s.addIssueTypeStatuses=If,s.addIssueTypes=cf,s.addIssueUpdate=sa,s.addIssueUpdates=ia,s.addIssues=Vi,s.addOrganization=fS,s.addOrganizationAccess=xf,s.addOrganizationAccesses=eS,s.addOrganizations=yS,s.addProcedure=lT,s.addProcedureFieldValues=RP,s.addProcedureFieldValuesAttachment=yP,s.addProcedureFieldValuesAttachments=tn,s.addProcedureFieldValuesMany=wP,s.addProcedureInitiative=ZA,s.addProcedureInitiatives=JA,s.addProcedureStep=fO,s.addProcedureStepAssignee=MT,s.addProcedureStepAssignees=gT,s.addProcedureStepComment=UT,s.addProcedureStepComments=kT,s.addProcedureStepDefaultAssignee=eI,s.addProcedureStepDefaultAssignees=tI,s.addProcedureStepDefaultReviewer=mI,s.addProcedureStepDefaultReviewers=yI,s.addProcedureStepEvent=RI,s.addProcedureStepEvents=wI,s.addProcedureStepFieldValues=gb,s.addProcedureStepFieldValuesAttachment=mb,s.addProcedureStepFieldValuesAttachments=qa,s.addProcedureStepFieldValuesMany=Rb,s.addProcedureStepFieldValuesReview=kb,s.addProcedureStepFieldValuesReviews=Ha,s.addProcedureStepFields=tb,s.addProcedureStepFieldsAttachment=LI,s.addProcedureStepFieldsAttachments=Va,s.addProcedureStepFieldsMany=sb,s.addProcedureStepReviewer=eO,s.addProcedureStepReviewers=tO,s.addProcedureSteps=SO,s.addProcedureType=LP,s.addProcedureTypeAttachment=gO,s.addProcedureTypeAttachments=RO,s.addProcedureTypeFields=tP,s.addProcedureTypeFieldsAttachment=kO,s.addProcedureTypeFieldsAttachments=LO,s.addProcedureTypeFieldsMany=sP,s.addProcedureTypes=HP,s.addProcedures=bt,s.addProject=$A,s.addProjectAccess=zS,s.addProjectAccesses=jS,s.addProjectAttachment=WS,s.addProjectAttachments=XS,s.addProjectComment=rA,s.addProjectComments=dA,s.addProjectFile=PA,s.addProjectFiles=FA,s.addProjects=qA,s.addReport=iF,s.addReports=aF,s.addTeam=VF,s.addTeamMembership=AF,s.addTeamMemberships=TF,s.addTeams=BF,s.addUser=ua,s.addUsers=Gf,s.agentsReducer=Rn,s.agentsSlice=us,s.assetAttachmentReducer=kn,s.assetAttachmentSlice=os,s.assetCommentAttachmentReducer=tc,s.assetCommentAttachmentSlice=ys,s.assetCommentReducer=yc,s.assetCommentSlice=Ss,s.assetReducer=Rc,s.assetSlice=As,s.assetTypeAttachmentReducer=kc,s.assetTypeAttachmentSlice=bs,s.assetTypeFieldValuesAttachmentReducer=Rr,s.assetTypeFieldValuesAttachmentSlice=Rs,s.assetTypeFieldValuesReducer=Lr,s.assetTypeFieldValuesSlice=Vs,s.assetTypeFieldsAttachmentReducer=tr,s.assetTypeFieldsAttachmentSlice=_s,s.assetTypeFieldsReducer=yr,s.assetTypeFieldsSlice=gs,s.assetTypeIdentifierReducer=sd,s.assetTypeIdentifierSlice=Bs,s.assetTypeIdentifierValueReducer=fd,s.assetTypeIdentifierValueSlice=js,s.assetTypeReducer=Ed,s.assetTypeSlice=Cs,s.assetTypeStatusReducer=Gd,s.assetTypeStatusSlice=qs,s.authReducer=Wd,s.authSlice=Lt,s.baseReducer=Eg,s.baseReducers=mn,s.clearTokens=K_,s.createModelAdapter=b,s.createOfflineAction=MS,s.createPayload=M,s.createSelectionAdapter=__,s.deleteAsset=bc,s.deleteAssetAttachment=Cn,s.deleteAssetAttachments=ps,s.deleteAssetComment=uc,s.deleteAssetCommentAttachment=Zn,s.deleteAssetCommentAttachments=Jn,s.deleteAssetComments=Dt,s.deleteAssetType=_d,s.deleteAssetTypeAttachment=Cc,s.deleteAssetTypeAttachments=Ps,s.deleteAssetTypeFieldValues=Dr,s.deleteAssetTypeFieldValuesAttachment=Pr,s.deleteAssetTypeFieldValuesAttachments=Es,s.deleteAssetTypeFieldValuesMany=qr,s.deleteAssetTypeFields=lr,s.deleteAssetTypeFieldsAttachment=Zc,s.deleteAssetTypeFieldsAttachments=Jc,s.deleteAssetTypeFieldsMany=or,s.deleteAssetTypeIdentifier=Jr,s.deleteAssetTypeIdentifierValue=od,s.deleteAssetTypeIdentifierValues=hd,s.deleteAssetTypeIdentifiers=Qr,s.deleteAssetTypeStatus=$d,s.deleteAssetTypeStatuses=Ud,s.deleteAssetTypes=Md,s.deleteAssets=Is,s.deleteConversation=w_,s.deleteConversations=E_,s.deleteDocument=fu,s.deleteDocumentAttachment=su,s.deleteDocumentAttachments=iu,s.deleteDocuments=Su,s.deleteEmailDomain=Eu,s.deleteEmailDomains=vu,s.deleteForm=ao,s.deleteFormIdentifier=Gu,s.deleteFormIdentifierValue=al,s.deleteFormIdentifierValues=nl,s.deleteFormIdentifiers=Nu,s.deleteFormRevision=vl,s.deleteFormRevisionAttachment=Al,s.deleteFormRevisionAttachments=Tl,s.deleteFormRevisions=Qs,s.deleteFormSubmission=yh,s.deleteFormSubmissionComment=sh,s.deleteFormSubmissionCommentAttachment=Ho,s.deleteFormSubmissionCommentAttachments=Go,s.deleteFormSubmissionComments=Ai,s.deleteFormSubmissionFieldValues=wo,s.deleteFormSubmissionFieldValuesAttachment=Ao,s.deleteFormSubmissionFieldValuesAttachments=ci,s.deleteFormSubmissionFieldValuesMany=hi,s.deleteFormSubmissions=ot,s.deleteFormSubscriber=Gl,s.deleteFormSubscribers=ti,s.deleteForms=no,s.deleteGeoImage=Bh,s.deleteGeoImages=zh,s.deleteIssue=Xp,s.deleteIssueAssociation=Kh,s.deleteIssueAssociations=Tt,s.deleteIssueAttachment=dp,s.deleteIssueAttachments=_i,s.deleteIssueComment=Cp,s.deleteIssueCommentAttachment=Op,s.deleteIssueCommentAttachments=Pp,s.deleteIssueComments=Dp,s.deleteIssueType=of,s.deleteIssueTypeAttachment=dm,s.deleteIssueTypeAttachments=um,s.deleteIssueTypeFieldValues=Cm,s.deleteIssueTypeFieldValuesAttachment=uy,s.deleteIssueTypeFieldValuesAttachments=Li,s.deleteIssueTypeFieldValuesMany=Dm,s.deleteIssueTypeFields=Zm,s.deleteIssueTypeFieldsAttachment=Om,s.deleteIssueTypeFieldsAttachments=Pm,s.deleteIssueTypeFieldsMany=Jm,s.deleteIssueTypeIdentifier=Py,s.deleteIssueTypeIdentifierValue=Dy,s.deleteIssueTypeIdentifierValues=qy,s.deleteIssueTypeIdentifiers=Fy,s.deleteIssueTypePriorities=Qy,s.deleteIssueTypePriority=Jy,s.deleteIssueTypeStatus=_f,s.deleteIssueTypeStatuses=Mf,s.deleteIssueTypes=hf,s.deleteIssueUpdate=aa,s.deleteIssueUpdates=na,s.deleteIssues=Bi,s.deleteOrganization=TS,s.deleteOrganizationAccess=nS,s.deleteOrganizationAccesses=cS,s.deleteOrganizations=IS,s.deleteProcedure=yT,s.deleteProcedureFieldValues=zP,s.deleteProcedureFieldValuesAttachment=IP,s.deleteProcedureFieldValuesAttachments=sn,s.deleteProcedureFieldValuesMany=jP,s.deleteProcedureInitiative=sT,s.deleteProcedureInitiatives=iT,s.deleteProcedureStep=IO,s.deleteProcedureStepAssignee=VT,s.deleteProcedureStepAssignees=BT,s.deleteProcedureStepComment=KT,s.deleteProcedureStepComments=WT,s.deleteProcedureStepDefaultAssignee=cI,s.deleteProcedureStepDefaultAssignees=rI,s.deleteProcedureStepDefaultReviewer=II,s.deleteProcedureStepDefaultReviewers=bI,s.deleteProcedureStepEvent=zI,s.deleteProcedureStepEvents=jI,s.deleteProcedureStepFieldValues=Bb,s.deleteProcedureStepFieldValuesAttachment=Tb,s.deleteProcedureStepFieldValuesAttachments=$a,s.deleteProcedureStepFieldValuesMany=zb,s.deleteProcedureStepFieldValuesReview=Kb,s.deleteProcedureStepFieldValuesReviews=Ga,s.deleteProcedureStepFields=rb,s.deleteProcedureStepFieldsAttachment=WI,s.deleteProcedureStepFieldsAttachments=Ba,s.deleteProcedureStepFieldsMany=db,s.deleteProcedureStepReviewer=cO,s.deleteProcedureStepReviewers=rO,s.deleteProcedureSteps=bO,s.deleteProcedureType=XP,s.deleteProcedureTypeAttachment=BO,s.deleteProcedureTypeAttachments=zO,s.deleteProcedureTypeFields=rP,s.deleteProcedureTypeFieldsAttachment=WO,s.deleteProcedureTypeFieldsAttachments=XO,s.deleteProcedureTypeFieldsMany=dP,s.deleteProcedureTypes=YP,s.deleteProcedures=Ot,s.deleteProject=LA,s.deleteProjectAccess=US,s.deleteProjectAccesses=kS,s.deleteProjectAttachment=xS,s.deleteProjectAttachments=eA,s.deleteProjectComment=pA,s.deleteProjectComments=mA,s.deleteProjectFile=gA,s.deleteProjectFiles=RA,s.deleteProjects=HA,s.deleteReport=uF,s.deleteReports=lF,s.deleteTeam=qF,s.deleteTeamMembership=FF,s.deleteTeamMemberships=_F,s.deleteTeams=$F,s.deleteUser=la,s.deleteUsers=Wf,s.dequeue=YF,s.discard=JF,s.documentAttachmentReducer=ru,s.documentAttachmentSlice=Us,s.documentSlice=Ls,s.documentsReducer=Au,s.emailDomainsReducer=ju,s.emailDomainsSlice=Gs,s.enqueue=XF,s.enqueueRequest=RS,s.extractResponseFromError=xF,s.fetchBlobFromObjectUrl=s_,s.fetchFileFromObjectUrl=i_,s.fileToBlob=e_,s.formIdentifierReducer=Yu,s.formIdentifierSlice=Ks,s.formIdentifierValueReducer=ul,s.formIdentifierValueSlice=Xs,s.formReducer=co,s.formRevisionAttachmentReducer=Pl,s.formRevisionAttachmentSlice=Ys,s.formRevisionReducer=Cl,s.formRevisionsSlice=Zs,s.formSlice=si,s.formSubmissionCommentAttachmentReducer=Xo,s.formSubmissionCommentAttachmentSlice=mi,s.formSubmissionCommentReducer=rh,s.formSubmissionCommentSlice=fi,s.formSubmissionFieldValuesAttachmentReducer=bo,s.formSubmissionFieldValuesAttachmentSlice=ai,s.formSubmissionFieldValuesReducer=zo,s.formSubmissionFieldValuesSlice=li,s.formSubmissionReducer=Fh,s.formSubmissionSlice=Ti,s.formSubscriberReducer=Yl,s.formSubscriberSlice=xs,s.geoImageReducer=qh,s.geoImageSlice=Ii,s.getClientSDK=m_,s.getClientStore=Ft,s.getFileExtension=t_,s.getOutboxCoordinator=ft,s.getPresignedUrlExpiryDate=r_,s.getRenamedFile=Lg,s.getRequestDescription=y,s.getS3FileKey=kg,s.hashFile=rs,s.initSDK=Aw,s.initializeAssetAttachments=En,s.initializeAssetCommentAttachments=Hn,s.initializeAssetComments=ic,s.initializeAssetTypeAttachments=Ec,s.initializeAssetTypeFieldValues=Er,s.initializeAssetTypeFieldValuesAttachments=Sr,s.initializeAssetTypeFields=ir,s.initializeAssetTypeFieldsAttachments=Hc,s.initializeAssetTypeIdentifierValues=ad,s.initializeAssetTypeIdentifiers=Gr,s.initializeAssetTypeStatuses=Vd,s.initializeAssetTypes=Ad,s.initializeAssets=Sc,s.initializeConversations=Fn,s.initializeDocumentAttachments=Yd,s.initializeDocuments=uu,s.initializeEmailDomains=Pu,s.initializeFormIdentifierValues=Ju,s.initializeFormIdentifiers=Du,s.initializeFormRevisionAttachments=ol,s.initializeFormRevisions=_l,s.initializeFormSubmissionCommentAttachments=Co,s.initializeFormSubmissionComments=Zo,s.initializeFormSubmissionFieldValues=Po,s.initializeFormSubmissionFieldValuesAttachments=ho,s.initializeFormSubmissions=uh,s.initializeFormSubscribers=ql,s.initializeForms=Jl,s.initializeGeoImages=Mh,s.initializeIssueAssociations=Uh,s.initializeIssueAttachments=sp,s.initializeIssueCommentAttachments=yp,s.initializeIssueComments=wp,s.initializeIssueTypeAttachments=tm,s.initializeIssueTypeFieldValues=wm,s.initializeIssueTypeFieldValuesAttachments=iy,s.initializeIssueTypeFields=Hm,s.initializeIssueTypeFieldsAttachments=ym,s.initializeIssueTypeIdentifierValues=Ey,s.initializeIssueTypeIdentifiers=fy,s.initializeIssueTypePriorities=Gy,s.initializeIssueTypeStatuses=Af,s.initializeIssueTypes=af,s.initializeIssueUpdates=vf,s.initializeIssues=Lp,s.initializeOrganizationAccesses=Qf,s.initializeOrganizations=hS,s.initializeProcedureFieldValues=gP,s.initializeProcedureFieldValuesAttachments=mP,s.initializeProcedureInitiatives=YA,s.initializeProcedureStepAssignees=_T,s.initializeProcedureStepComments=$T,s.initializeProcedureStepDefaultAssignees=xT,s.initializeProcedureStepDefaultReviewers=pI,s.initializeProcedureStepEvents=gI,s.initializeProcedureStepFieldValues=Mb,s.initializeProcedureStepFieldValuesAttachments=pb,s.initializeProcedureStepFieldValuesReviews=Ub,s.initializeProcedureStepFields=eb,s.initializeProcedureStepFieldsAttachments=kI,s.initializeProcedureStepReviewers=xb,s.initializeProcedureSteps=pO,s.initializeProcedureTypeAttachments=MO,s.initializeProcedureTypeFields=eP,s.initializeProcedureTypeFieldsAttachments=UO,s.initializeProcedureTypes=kP,s.initializeProcedures=uT,s.initializeProjectAccesses=BS,s.initializeProjectAttachments=KS,s.initializeProjectComments=cA,s.initializeProjectFiles=IA,s.initializeProjects=jA,s.initializeReports=sF,s.initializeTeamMemberships=SF,s.initializeTeams=vF,s.initializeUsers=kf,s.isCloudfrontUrl=n_,s.isImageFile=Hg,s.isObjectUrl=a_,s.isPresignedUrlExpired=d_,s.isS3Url=c_,s.issueAssociationReducer=ep,s.issueAssociationSlice=Oi,s.issueAttachmentReducer=pp,s.issueAttachmentSlice=Pi,s.issueCommentAttachmentReducer=gp,s.issueCommentAttachmentSlice=gi,s.issueCommentReducer=Up,s.issueCommentSlice=wi,s.issueReducer=xp,s.issueSlice=vi,s.issueTypeAttachmentReducer=pm,s.issueTypeAttachmentSlice=zi,s.issueTypeFieldValuesAttachmentReducer=my,s.issueTypeFieldValuesAttachmentSlice=Ui,s.issueTypeFieldValuesReducer=km,s.issueTypeFieldValuesSlice=qi,s.issueTypeFieldsAttachmentReducer=gm,s.issueTypeFieldsAttachmentSlice=Ci,s.issueTypeFieldsReducer=ty,s.issueTypeFieldsSlice=$i,s.issueTypeIdentifierReducer=Ry,s.issueTypeIdentifierSlice=Gi,s.issueTypeIdentifierValueReducer=Ly,s.issueTypeIdentifierValueSlice=Ki,s.issueTypePriorityReducer=tf,s.issueTypePrioritySlice=Wi,s.issueTypeReducer=ff,s.issueTypeSlice=Zi,s.issueTypeStatusReducer=wf,s.issueTypeStatusSlice=Qi,s.issueUpdateReducer=$f,s.issueUpdateSlice=ta,s.markAsDeleted=wS,s.markForDeletion=zM,s.organizationAccessReducer=rS,s.organizationAccessSlice=ha,s.organizationReducer=_S,s.organizationSlice=pa,s.outboxReducer=vS,s.outboxSlice=ma,s.overmapEnhancer=jg,s.overmapReducer=vg,s.overmapReducers=GF,s.performRequest=An,s.performRequestFromAction=ZF,s.procedureFieldValuesAttachmentReducer=bP,s.procedureFieldValuesAttachmentSlice=en,s.procedureFieldValuesReducer=CP,s.procedureFieldValuesSlice=nn,s.procedureInitiativeReducer=aT,s.procedureInitiativeSlice=Oa,s.procedureReducer=fT,s.procedureSlice=Pa,s.procedureStepAssigneeReducer=DT,s.procedureStepAssigneeSlice=Fa,s.procedureStepCommentReducer=JT,s.procedureStepCommentSlice=_a,s.procedureStepDefaultAssigneeReducer=oI,s.procedureStepDefaultAssigneeSlice=Ma,s.procedureStepDefaultReviewerReducer=_I,s.procedureStepDefaultReviewerSlice=Ra,s.procedureStepEventReducer=$I,s.procedureStepEventSlice=Ea,s.procedureStepFieldValuesAttachmentReducer=Fb,s.procedureStepFieldValuesAttachmentSlice=Da,s.procedureStepFieldValuesReducer=jb,s.procedureStepFieldValuesReviewReducer=Jb,s.procedureStepFieldValuesReviewSlice=La,s.procedureStepFieldValuesSlice=ka,s.procedureStepFieldsAttachmentReducer=QI,s.procedureStepFieldsAttachmentSlice=va,s.procedureStepFieldsReducer=ob,s.procedureStepFieldsSlice=ja,s.procedureStepReducer=OO,s.procedureStepReviewerReducer=oO,s.procedureStepReviewerSlice=Na,s.procedureStepSlice=Ka,s.procedureTypeAttachmentReducer=jO,s.procedureTypeAttachmentSlice=Ya,s.procedureTypeFieldsAttachmentReducer=YO,s.procedureTypeFieldsAttachmentSlice=Ja,s.procedureTypeFieldsReducer=uP,s.procedureTypeFieldsSlice=xa,s.procedureTypeReducer=ZP,s.procedureTypeSlice=rn,s.projectAccessReducer=LS,s.projectAccessSlice=ya,s.projectAttachmentReducer=aA,s.projectAttachmentSlice=Sa,s.projectCommentReducer=AA,s.projectCommentSlice=Ta,s.projectFileReducer=BA,s.projectFileSlice=Ia,s.projectReducer=GA,s.projectSlice=ba,s.rehydratedReducer=eF,s.rehydratedSlice=un,s.reportReducer=yF,s.reportSlice=ln,s.restructureSelectorWithArgs=m,s.runMiddleware=A_,s.selectAccessToken=W_,s.selectAccessesByUserOfProject=CM,s.selectAccessibleProjects=kM,s.selectActiveOrganizationAccess=EM,s.selectAllDocumentAttachments=ks,s.selectAssetAttachmentById=qn,s.selectAssetAttachmentMapping=Dn,s.selectAssetAttachments=ms,s.selectAssetAttachmentsByIds=$n,s.selectAssetById=Mc,s.selectAssetCommentAttachmentById=xn,s.selectAssetCommentAttachmentMapping=Qn,s.selectAssetCommentAttachments=fs,s.selectAssetCommentAttachmentsByIds=ec,s.selectAssetCommentById=oc,s.selectAssetCommentMapping=lc,s.selectAssetComments=qt,s.selectAssetCommentsByIds=hc,s.selectAssetTypeAttachmentById=qc,s.selectAssetTypeAttachmentMapping=Dc,s.selectAssetTypeAttachments=Fs,s.selectAssetTypeAttachmentsByIds=$c,s.selectAssetTypeById=Rd,s.selectAssetTypeFieldValues=Ut,s.selectAssetTypeFieldValuesAttachmentById=_r,s.selectAssetTypeFieldValuesAttachments=vs,s.selectAssetTypeFieldValuesAttachmentsByIds=Mr,s.selectAssetTypeFieldValuesAttachmentsMapping=Fr,s.selectAssetTypeFieldValuesById=Ur,s.selectAssetTypeFieldValuesByIds=kr,s.selectAssetTypeFieldValuesMapping=$r,s.selectAssetTypeFieldValuesOfAsset=q_,s.selectAssetTypeFields=Mt,s.selectAssetTypeFieldsAttachmentById=xc,s.selectAssetTypeFieldsAttachments=Ms,s.selectAssetTypeFieldsAttachmentsByIds=er,s.selectAssetTypeFieldsAttachmentsMapping=Qc,s.selectAssetTypeFieldsById=pr,s.selectAssetTypeFieldsByIds=mr,s.selectAssetTypeFieldsMapping=hr,s.selectAssetTypeFieldsOfAssetType=C_,s.selectAssetTypeIdentifierById=ed,s.selectAssetTypeIdentifierMapping=xr,s.selectAssetTypeIdentifierValueById=md,s.selectAssetTypeIdentifierValueMapping=pd,s.selectAssetTypeIdentifierValues=kt,s.selectAssetTypeIdentifierValuesByIds=yd,s.selectAssetTypeIdentifierValuesOfAsset=k_,s.selectAssetTypeIdentifierValuesOfIdentifier=L_,s.selectAssetTypeIdentifiers=zs,s.selectAssetTypeIdentifiersByIds=td,s.selectAssetTypeIdentifiersOfAssetType=U_,s.selectAssetTypeStatusById=Ld,s.selectAssetTypeStatusMapping=kd,s.selectAssetTypeStatuses=$s,s.selectAssetTypeStatusesByIds=Hd,s.selectAssetTypeStatusesOfAssetType=G_,s.selectAssetTypeValuesOfAssetType=$_,s.selectAssetTypes=Ds,s.selectAssetTypesByIds=wd,s.selectAssetTypesMapping=gd,s.selectAssetTypesOfOrganization=H_,s.selectAssets=$t,s.selectAssetsByIds=gc,s.selectAssetsMapping=Fc,s.selectAssetsOfAssetType=_c,s.selectAssetsOfProject=z_,s.selectAttachmentsOfAsset=Un,s.selectAttachmentsOfAssetComment=B_,s.selectAttachmentsOfAssetType=Uc,s.selectAttachmentsOfAssetTypeFieldValues=gr,s.selectAttachmentsOfAssetTypeFields=j_,s.selectAttachmentsOfDocument=Y_,s.selectAttachmentsOfFormRevision=sM,s.selectAttachmentsOfFormSubmissionComment=cM,s.selectAttachmentsOfFormSubmissionFieldValues=Io,s.selectAttachmentsOfIssue=lp,s.selectAttachmentsOfIssueComment=pM,s.selectAttachmentsOfIssueType=fM,s.selectAttachmentsOfIssueTypeFieldValues=py,s.selectAttachmentsOfIssueTypeFields=SM,s.selectAttachmentsOfProcedureFieldValues=_P,s.selectAttachmentsOfProcedureStepFieldValues=Pb,s.selectAttachmentsOfProcedureStepFields=YI,s.selectAttachmentsOfProcedureType=Ag,s.selectAttachmentsOfProcedureTypeFields=Tg,s.selectAttachmentsOfProject=qM,s.selectCommentsOfAsset=pc,s.selectCommentsOfAssets=mc,s.selectCommentsOfFormSubmission=ch,s.selectCommentsOfFormSubmissions=rM,s.selectCommentsOfIssue=mM,s.selectCommentsOfProject=$M,s.selectCommentsOfProjects=UM,s.selectConversation=V_,s.selectConversationMapping=ls,s.selectConversations=v_,s.selectCurrentUser=Yf,s.selectDeletedRequests=VM,s.selectDescendantsOfDocument=bu,s.selectDocumentAttachmentById=nu,s.selectDocumentAttachmentMapping=au,s.selectDocumentAttachmentsByIds=cu,s.selectDocumentById=Tu,s.selectDocuments=Ht,s.selectDocumentsByIds=Iu,s.selectDocumentsMapping=Hs,s.selectEmailDomainById=Bu,s.selectEmailDomains=Ns,s.selectEmailDomainsAsMapping=Vu,s.selectEmailDomainsByIds=zu,s.selectEmailDomainsOfOrganization=Q_,s.selectFieldValuesOfProcedure=Og,s.selectFormById=uo,s.selectFormIdentifierById=Wu,s.selectFormIdentifierMapping=Ku,s.selectFormIdentifierValueById=rl,s.selectFormIdentifierValueMapping=cl,s.selectFormIdentifierValues=Gt,s.selectFormIdentifierValuesByIds=dl,s.selectFormIdentifierValuesOfFormSubmission=eM,s.selectFormIdentifierValuesOfIdentifier=tM,s.selectFormIdentifiers=Ws,s.selectFormIdentifiersByIds=Xu,s.selectFormIdentifiersOfForm=x_,s.selectFormMapping=ro,s.selectFormRevisionAttachmentById=bl,s.selectFormRevisionAttachments=Il,s.selectFormRevisionAttachmentsByIds=Ol,s.selectFormRevisionAttachmentsMapping=Nt,s.selectFormRevisionById=Bl,s.selectFormRevisionMapping=Vl,s.selectFormRevisions=Kt,s.selectFormRevisionsByIds=zl,s.selectFormRevisionsOfForm=jl,s.selectFormSubmissionById=Sh,s.selectFormSubmissionCommentAttachmentById=Ko,s.selectFormSubmissionCommentAttachmentMapping=No,s.selectFormSubmissionCommentAttachments=yi,s.selectFormSubmissionCommentAttachmentsByIds=Wo,s.selectFormSubmissionCommentById=ah,s.selectFormSubmissionCommentMapping=ih,s.selectFormSubmissionComments=Xt,s.selectFormSubmissionCommentsByIds=nh,s.selectFormSubmissionFieldValues=pi,s.selectFormSubmissionFieldValuesAttachmentById=To,s.selectFormSubmissionFieldValuesAttachments=di,s.selectFormSubmissionFieldValuesAttachmentsByIds=ui,s.selectFormSubmissionFieldValuesAttachmentsMapping=ri,s.selectFormSubmissionFieldValuesById=vo,s.selectFormSubmissionFieldValuesByIds=Vo,s.selectFormSubmissionFieldValuesMapping=Eo,s.selectFormSubmissionFieldValuesOfFormSubmission=Bo,s.selectFormSubmissions=C,s.selectFormSubmissionsByIds=Ah,s.selectFormSubmissionsMapping=fh,s.selectFormSubmissionsOfAsset=Oh,s.selectFormSubmissionsOfAssets=Ph,s.selectFormSubmissionsOfForm=Th,s.selectFormSubmissionsOfIssue=Ih,s.selectFormSubmissionsOfIssues=bh,s.selectFormSubmissionsOfOrganization=dM,s.selectFormSubmissionsOfOrganizationAndForm=oM,s.selectFormSubmissionsOfProject=uM,s.selectFormSubmissionsOfProjectAndForm=lM,s.selectFormSubscriberById=Kl,s.selectFormSubscriberMapping=Nl,s.selectFormSubscribers=Wt,s.selectFormSubscribersByIds=Wl,s.selectFormSubscribersOfForm=Xl,s.selectFormSubscribersOfUser=aM,s.selectForms=ii,s.selectFormsByIds=lo,s.selectFormsOfOrganization=nM,s.selectGeoImageById=Ch,s.selectGeoImageMapping=jh,s.selectGeoImages=bi,s.selectGeoImagesByIds=Dh,s.selectGeoImagesOfProject=hM,s.selectIsLoggedIn=X_,s.selectIssueAssociationById=Xh,s.selectIssueAssociationMapping=Wh,s.selectIssueAssociations=It,s.selectIssueAssociationsByIds=Yh,s.selectIssueAssociationsOfAsset=Qh,s.selectIssueAssociationsOfAssets=xh,s.selectIssueAssociationsOfIssue=Jh,s.selectIssueAssociationsOfIssues=Zh,s.selectIssueAttachmentById=op,s.selectIssueAttachmentMapping=up,s.selectIssueAttachments=Mi,s.selectIssueAttachmentsByIds=hp,s.selectIssueById=Zp,s.selectIssueCommentAttachmentById=_p,s.selectIssueCommentAttachmentMapping=Fp,s.selectIssueCommentAttachments=Ri,s.selectIssueCommentAttachmentsByIds=Mp,s.selectIssueCommentById=qp,s.selectIssueCommentMapping=Ei,s.selectIssueCommentsByIds=$p,s.selectIssueMapping=Yp,s.selectIssueTypeAttachmentById=om,s.selectIssueTypeAttachmentMapping=lm,s.selectIssueTypeAttachments=ji,s.selectIssueTypeAttachmentsByIds=hm,s.selectIssueTypeById=mf,s.selectIssueTypeFieldValues=Zt,s.selectIssueTypeFieldValuesAttachmentById=oy,s.selectIssueTypeFieldValuesAttachments=Hi,s.selectIssueTypeFieldValuesAttachmentsByIds=hy,s.selectIssueTypeFieldValuesAttachmentsMapping=ly,s.selectIssueTypeFieldValuesById=$m,s.selectIssueTypeFieldValuesByIds=Um,s.selectIssueTypeFieldValuesMapping=qm,s.selectIssueTypeFieldValuesOfIssue=AM,s.selectIssueTypeFields=gt,s.selectIssueTypeFieldsAttachmentById=_m,s.selectIssueTypeFieldsAttachments=Di,s.selectIssueTypeFieldsAttachmentsByIds=Mm,s.selectIssueTypeFieldsAttachmentsMapping=Fm,s.selectIssueTypeFieldsById=xm,s.selectIssueTypeFieldsByIds=ey,s.selectIssueTypeFieldsMapping=Qm,s.selectIssueTypeFieldsOfIssueType=TM,s.selectIssueTypeIdentifierById=My,s.selectIssueTypeIdentifierMapping=_y,s.selectIssueTypeIdentifierValueById=Uy,s.selectIssueTypeIdentifierValueMapping=$y,s.selectIssueTypeIdentifierValues=Jt,s.selectIssueTypeIdentifierValuesByIds=ky,s.selectIssueTypeIdentifierValuesOfIdentifier=FM,s.selectIssueTypeIdentifierValuesOfIssue=PM,s.selectIssueTypeIdentifiers=Ni,s.selectIssueTypeIdentifiersByIds=gy,s.selectIssueTypeIdentifiersOfIssueType=OM,s.selectIssueTypeMapping=pf,s.selectIssueTypePriorities=Xi,s.selectIssueTypePrioritiesByIds=ef,s.selectIssueTypePrioritiesOfIssueType=_M,s.selectIssueTypePriorityById=Yi,s.selectIssueTypePriorityMapping=xy,s.selectIssueTypeStatusById=ea,s.selectIssueTypeStatusMapping=gf,s.selectIssueTypeStatuses=xi,s.selectIssueTypeStatusesByIds=Rf,s.selectIssueTypeStatusesOfIssueType=gM,s.selectIssueTypeValuesOfIssueType=bM,s.selectIssueTypes=Ji,s.selectIssueTypesByIds=yf,s.selectIssueTypesOfOrganization=MM,s.selectIssueUpdateById=Cf,s.selectIssueUpdateMapping=ca,s.selectIssueUpdates=ra,s.selectIssueUpdatesByIds=Df,s.selectIssueUpdatesOfIssue=qf,s.selectIssues=Yt,s.selectIssuesByIds=Jp,s.selectIssuesOfIssueType=Qp,s.selectIssuesOfProject=yM,s.selectLatestAssetTypeFieldsOfAssetType=D_,s.selectLatestFieldsByProcedureStep=ng,s.selectLatestFormRevisionOfForm=iM,s.selectLatestIssueTypeFieldsOfIssueType=IM,s.selectLatestProcedureStepFieldValuesReviewByProcedureStepFieldValues=hg,s.selectLatestProcedureStepFieldsOfProcedureStep=ag,s.selectLatestProcedureTypeFieldsOfProcedureType=bg,s.selectLatestRetryTime=BM,s.selectLatestReviewOfProcedureStepFieldValues=ug,s.selectMembershipsByUserOfTeam=gg,s.selectOrganizationAccessById=dS,s.selectOrganizationAccessMapping=es,s.selectOrganizationAccessUserMapping=lS,s.selectOrganizationAccessesByIds=uS,s.selectOrganizationById=PS,s.selectOrganizationDocuments=J_,s.selectOrganizations=OS,s.selectOrganizationsByIds=FS,s.selectOrganizationsMapping=bS,s.selectProcedureById=AT,s.selectProcedureFieldValues=cn,s.selectProcedureFieldValuesAttachmentById=PP,s.selectProcedureFieldValuesAttachments=an,s.selectProcedureFieldValuesAttachmentsByIds=FP,s.selectProcedureFieldValuesAttachmentsMapping=OP,s.selectProcedureFieldValuesById=qP,s.selectProcedureFieldValuesByIds=$P,s.selectProcedureFieldValuesMapping=DP,s.selectProcedureInitiativeById=cT,s.selectProcedureInitiatives=is,s.selectProcedureInitiativesByIds=rT,s.selectProcedureInitiativesMapping=nT,s.selectProcedureInitiativesOfProcedureType=GM,s.selectProcedureInitiativesOfProject=HM,s.selectProcedureStepAssigneeById=jT,s.selectProcedureStepAssignees=wt,s.selectProcedureStepAssigneesByIds=CT,s.selectProcedureStepAssigneesMapping=zT,s.selectProcedureStepAssigneesOfProcedure=KM,s.selectProcedureStepAssigneesOfProcedureAndProcedureStep=XM,s.selectProcedureStepAssigneesOfProcedureStep=WM,s.selectProcedureStepById=PO,s.selectProcedureStepCommentById=YT,s.selectProcedureStepComments=Et,s.selectProcedureStepCommentsByIds=ZT,s.selectProcedureStepCommentsMapping=XT,s.selectProcedureStepCommentsOfProcedure=YM,s.selectProcedureStepCommentsOfProcedureAndProcedureStep=JM,s.selectProcedureStepCommentsOfProcedureStep=ZM,s.selectProcedureStepDefaultAssigneeById=uI,s.selectProcedureStepDefaultAssignees=ga,s.selectProcedureStepDefaultAssigneesByIds=lI,s.selectProcedureStepDefaultAssigneesMapping=dI,s.selectProcedureStepDefaultAssigneesOfProcedureStep=QM,s.selectProcedureStepDefaultReviewerById=PI,s.selectProcedureStepDefaultReviewers=wa,s.selectProcedureStepDefaultReviewersByIds=FI,s.selectProcedureStepDefaultReviewersMapping=OI,s.selectProcedureStepDefaultReviewersOfProcedureStep=xM,s.selectProcedureStepEventById=DI,s.selectProcedureStepEvents=vt,s.selectProcedureStepEventsByIds=qI,s.selectProcedureStepEventsMapping=CI,s.selectProcedureStepEventsOfProcedure=eg,s.selectProcedureStepEventsOfProcedureAndProcedureStep=sg,s.selectProcedureStepEventsOfProcedureStep=tg,s.selectProcedureStepFieldValues=pt,s.selectProcedureStepFieldValuesAttachmentById=bb,s.selectProcedureStepFieldValuesAttachments=Ua,s.selectProcedureStepFieldValuesAttachmentsByIds=Ob,s.selectProcedureStepFieldValuesAttachmentsMapping=Ib,s.selectProcedureStepFieldValuesById=Db,s.selectProcedureStepFieldValuesByIds=qb,s.selectProcedureStepFieldValuesMapping=Cb,s.selectProcedureStepFieldValuesOfProcedure=cg,s.selectProcedureStepFieldValuesOfProcedureAndProcedureStep=dg,s.selectProcedureStepFieldValuesOfProcedureStep=rg,s.selectProcedureStepFieldValuesReviewById=Xb,s.selectProcedureStepFieldValuesReviews=mt,s.selectProcedureStepFieldValuesReviewsByIds=Yb,s.selectProcedureStepFieldValuesReviewsMapping=Wb,s.selectProcedureStepFieldValuesReviewsOfProcedure=lg,s.selectProcedureStepFieldValuesReviewsOfProcedureAndProcedureStep=og,s.selectProcedureStepFields=as,s.selectProcedureStepFieldsAttachmentById=ZI,s.selectProcedureStepFieldsAttachments=za,s.selectProcedureStepFieldsAttachmentsByIds=JI,s.selectProcedureStepFieldsAttachmentsMapping=XI,s.selectProcedureStepFieldsById=ub,s.selectProcedureStepFieldsByIds=lb,s.selectProcedureStepFieldsMapping=Ca,s.selectProcedureStepFieldsOfProcedureStep=ig,s.selectProcedureStepReviewerById=uO,s.selectProcedureStepReviewers=Vt,s.selectProcedureStepReviewersByIds=lO,s.selectProcedureStepReviewersMapping=dO,s.selectProcedureStepReviewersOfProcedure=pg,s.selectProcedureStepReviewersOfProcedureAndProcedureStep=yg,s.selectProcedureStepReviewersOfProcedureStep=mg,s.selectProcedureSteps=Xa,s.selectProcedureStepsByIds=FO,s.selectProcedureStepsMapping=Wa,s.selectProcedureStepsMappingOfProcedureType=fg,s.selectProcedureStepsOfProcedureType=Sg,s.selectProcedureTypeAttachmentById=DO,s.selectProcedureTypeAttachmentMapping=CO,s.selectProcedureTypeAttachments=Za,s.selectProcedureTypeAttachmentsByIds=qO,s.selectProcedureTypeById=QP,s.selectProcedureTypeFields=ns,s.selectProcedureTypeFieldsAttachmentById=JO,s.selectProcedureTypeFieldsAttachments=Qa,s.selectProcedureTypeFieldsAttachmentsByIds=QO,s.selectProcedureTypeFieldsAttachmentsMapping=ZO,s.selectProcedureTypeFieldsById=oP,s.selectProcedureTypeFieldsByIds=hP,s.selectProcedureTypeFieldsMapping=lP,s.selectProcedureTypeFieldsOfProcedureType=Ig,s.selectProcedureTypes=dn,s.selectProcedureTypesByIds=xP,s.selectProcedureTypesMapping=JP,s.selectProcedureTypesOfOrganization=Pg,s.selectProcedures=ht,s.selectProceduresByIds=TT,s.selectProceduresMapping=ST,s.selectProceduresOfAsset=bT,s.selectProceduresOfAssets=OT,s.selectProceduresOfProcedureInitiative=PT,s.selectProceduresOfProcedureType=IT,s.selectProceduresOfProject=NM,s.selectProjectAccessById=HS,s.selectProjectAccessMapping=fa,s.selectProjectAccesses=Rt,s.selectProjectAccessesByIds=GS,s.selectProjectAccessesOfProject=jM,s.selectProjectAttachmentById=sA,s.selectProjectAttachmentMapping=tA,s.selectProjectAttachments=Aa,s.selectProjectAttachmentsByIds=iA,s.selectProjectById=KA,s.selectProjectCommentById=fA,s.selectProjectCommentMapping=yA,s.selectProjectComments=ts,s.selectProjectCommentsByIds=SA,s.selectProjectDocuments=Z_,s.selectProjectFileById=vA,s.selectProjectFileMapping=wA,s.selectProjectFiles=EA,s.selectProjectFilesByIds=VA,s.selectProjectMapping=NA,s.selectProjects=ss,s.selectProjectsByIds=WA,s.selectProjectsOfOrganization=LM,s.selectRehydrated=Mg,s.selectReportById=pF,s.selectReportMapping=oF,s.selectReports=hF,s.selectReportsByIds=mF,s.selectReviewsOfProcedureStepFieldValues=Zb,s.selectTeamById=kF,s.selectTeamMembershipById=RF,s.selectTeamMemberships=cs,s.selectTeamMembershipsByIds=wF,s.selectTeamMembershipsMapping=gF,s.selectTeams=pn,s.selectTeamsByIds=LF,s.selectTeamsMapping=UF,s.selectTeamsOfOrganization=wg,s.selectUserById=xt,s.selectUsers=Qt,s.selectUsersByIds=Zf,s.selectUsersMapping=oa,s.selectUsersOfOrganization=vM,s.selectUsersOfProject=DM,s.selectUsersOfTeam=Rg,s.setAsset=Oc,s.setAssetAttachment=Vn,s.setAssetAttachments=Bn,s.setAssetComment=nc,s.setAssetCommentAttachment=Kn,s.setAssetCommentAttachments=Wn,s.setAssetComments=cc,s.setAssetType=Td,s.setAssetTypeAttachment=Vc,s.setAssetTypeAttachments=Bc,s.setAssetTypeFieldValues=Br,s.setAssetTypeFieldValuesAttachment=Tr,s.setAssetTypeFieldValuesAttachments=Ir,s.setAssetTypeFieldValuesMany=zr,s.setAssetTypeFields=cr,s.setAssetTypeFieldsAttachment=Kc,s.setAssetTypeFieldsAttachments=Wc,s.setAssetTypeFieldsMany=rr,s.setAssetTypeIdentifier=Wr,s.setAssetTypeIdentifierValue=rd,s.setAssetTypeIdentifierValues=dd,s.setAssetTypeIdentifiers=Xr,s.setAssetTypeStatus=jd,s.setAssetTypeStatuses=Cd,s.setAssetTypes=Id,s.setAssets=Pc,s.setClientSDK=p_,s.setClientStore=o_,s.setConversation=Mn,s.setConversations=g_,s.setCurrentUser=RM,s.setCurrentUserProfile=wM,s.setDocument=hu,s.setDocumentAttachment=Qd,s.setDocumentAttachments=xd,s.setDocuments=pu,s.setEmailDomain=Mu,s.setEmailDomains=gu,s.setForm=eo,s.setFormIdentifier=Uu,s.setFormIdentifierValue=el,s.setFormIdentifierValues=tl,s.setFormIdentifiers=ku,s.setFormRevision=gl,s.setFormRevisionAttachment=ml,s.setFormRevisionAttachments=yl,s.setFormRevisions=Rl,s.setFormSubmission=lh,s.setFormSubmissionComment=Qo,s.setFormSubmissionCommentAttachment=$o,s.setFormSubmissionCommentAttachments=Uo,s.setFormSubmissionComments=xo,s.setFormSubmissionFieldValues=_o,s.setFormSubmissionFieldValuesAttachment=mo,s.setFormSubmissionFieldValuesAttachments=yo,s.setFormSubmissionFieldValuesMany=Mo,s.setFormSubmissions=oh,s.setFormSubscriber=Ul,s.setFormSubscribers=kl,s.setForms=to,s.setGeoImage=gh,s.setGeoImages=Rh,s.setIssue=Gp,s.setIssueAssociation=Lh,s.setIssueAssociations=kh,s.setIssueAttachment=ap,s.setIssueAttachments=np,s.setIssueComment=Vp,s.setIssueCommentAttachment=Ap,s.setIssueCommentAttachments=Tp,s.setIssueComments=Bp,s.setIssueType=rf,s.setIssueTypeAttachment=am,s.setIssueTypeAttachments=nm,s.setIssueTypeFieldValues=Vm,s.setIssueTypeFieldValuesAttachment=ny,s.setIssueTypeFieldValuesAttachments=cy,s.setIssueTypeFieldValuesMany=Bm,s.setIssueTypeFields=Km,s.setIssueTypeFieldsAttachment=Am,s.setIssueTypeFieldsAttachments=Tm,s.setIssueTypeFieldsMany=Wm,s.setIssueTypeIdentifier=Ty,s.setIssueTypeIdentifierValue=By,s.setIssueTypeIdentifierValues=zy,s.setIssueTypeIdentifiers=Iy,s.setIssueTypePriorities=Xy,s.setIssueTypePriority=Wy,s.setIssueTypeStatus=bf,s.setIssueTypeStatuses=Of,s.setIssueTypes=df,s.setIssueUpdate=Vf,s.setIssueUpdates=Bf,s.setIssues=Np,s.setLoggedIn=Kd,s.setOrganization=mS,s.setOrganizationAccess=tS,s.setOrganizationAccesses=sS,s.setOrganizations=pS,s.setProcedure=oT,s.setProcedureFieldValues=EP,s.setProcedureFieldValuesAttachment=fP,s.setProcedureFieldValuesAttachments=SP,s.setProcedureFieldValuesMany=vP,s.setProcedureInitiative=QA,s.setProcedureInitiatives=xA,s.setProcedureStep=mO,s.setProcedureStepAssignee=RT,s.setProcedureStepAssignees=wT,s.setProcedureStepComment=LT,s.setProcedureStepComments=HT,s.setProcedureStepDefaultAssignee=sI,s.setProcedureStepDefaultAssignees=iI,s.setProcedureStepDefaultReviewer=fI,s.setProcedureStepDefaultReviewers=SI,s.setProcedureStepEvent=EI,s.setProcedureStepEvents=vI,s.setProcedureStepFieldValues=wb,s.setProcedureStepFieldValuesAttachment=yb,s.setProcedureStepFieldValuesAttachments=fb,s.setProcedureStepFieldValuesMany=Eb,s.setProcedureStepFieldValuesReview=Lb,s.setProcedureStepFieldValuesReviews=Hb,s.setProcedureStepFields=ib,s.setProcedureStepFieldsAttachment=HI,s.setProcedureStepFieldsAttachments=GI,s.setProcedureStepFieldsMany=ab,s.setProcedureStepReviewer=sO,s.setProcedureStepReviewers=iO,s.setProcedureSteps=yO,s.setProcedureType=GP,s.setProcedureTypeAttachment=wO,s.setProcedureTypeAttachments=EO,s.setProcedureTypeFields=iP,s.setProcedureTypeFieldsAttachment=HO,s.setProcedureTypeFieldsAttachments=GO,s.setProcedureTypeFieldsMany=aP,s.setProcedureTypes=NP,s.setProcedures=hT,s.setProject=DA,s.setProjectAccess=CS,s.setProjectAccesses=DS,s.setProjectAttachment=YS,s.setProjectAttachments=ZS,s.setProjectComment=uA,s.setProjectComments=lA,s.setProjectFile=bA,s.setProjectFiles=OA,s.setProjects=CA,s.setRehydrated=_g,s.setReport=nF,s.setReports=cF,s.setTeam=zF,s.setTeamMembership=IF,s.setTeamMemberships=bF,s.setTeams=jF,s.setTokens=N_,s.setUser=Hf,s.setUsers=Lf,s.teamMembershipReducer=MF,s.teamMembershipSlice=on,s.teamReducer=HF,s.teamSlice=hn,s.updateAsset=Tc,s.updateAssetAttachment=zn,s.updateAssetAttachments=jn,s.updateAssetComment=rc,s.updateAssetCommentAttachment=Xn,s.updateAssetCommentAttachments=Yn,s.updateAssetComments=dc,s.updateAssetType=Pd,s.updateAssetTypeAttachment=zc,s.updateAssetTypeAttachments=jc,s.updateAssetTypeFieldValues=jr,s.updateAssetTypeFieldValuesAttachment=br,s.updateAssetTypeFieldValuesAttachments=Or,s.updateAssetTypeFieldValuesMany=Cr,s.updateAssetTypeFields=dr,s.updateAssetTypeFieldsAttachment=Xc,s.updateAssetTypeFieldsAttachments=Yc,s.updateAssetTypeFieldsMany=ur,s.updateAssetTypeIdentifier=Yr,s.updateAssetTypeIdentifierValue=ud,s.updateAssetTypeIdentifierValues=ld,s.updateAssetTypeIdentifiers=Zr,s.updateAssetTypeStatus=Dd,s.updateAssetTypeStatuses=qd,s.updateAssetTypes=Fd,s.updateAssets=Ic,s.updateConversation=gn,s.updateConversations=R_,s.updateDocument=mu,s.updateDocumentAttachment=eu,s.updateDocumentAttachments=tu,s.updateDocuments=yu,s.updateEmailDomain=Ru,s.updateEmailDomains=wu,s.updateForm=so,s.updateFormIdentifier=Lu,s.updateFormIdentifierValue=sl,s.updateFormIdentifierValues=il,s.updateFormIdentifiers=Hu,s.updateFormRevision=wl,s.updateFormRevisionAttachment=fl,s.updateFormRevisionAttachments=Sl,s.updateFormRevisions=El,s.updateFormSubmission=ph,s.updateFormSubmissionComment=eh,s.updateFormSubmissionCommentAttachment=ko,s.updateFormSubmissionCommentAttachments=Lo,s.updateFormSubmissionComments=th,s.updateFormSubmissionFieldValues=go,s.updateFormSubmissionFieldValuesAttachment=fo,s.updateFormSubmissionFieldValuesAttachments=So,s.updateFormSubmissionFieldValuesMany=Ro,s.updateFormSubmissions=mh,s.updateFormSubscriber=Ll,s.updateFormSubscribers=Hl,s.updateForms=io,s.updateGeoImage=vh,s.updateGeoImages=Vh,s.updateIssue=Kp,s.updateIssueAssociation=Hh,s.updateIssueAssociations=Gh,s.updateIssueAttachment=cp,s.updateIssueAttachments=rp,s.updateIssueComment=zp,s.updateIssueCommentAttachment=Ip,s.updateIssueCommentAttachments=bp,s.updateIssueComments=jp,s.updateIssueType=uf,s.updateIssueTypeAttachment=cm,s.updateIssueTypeAttachments=rm,s.updateIssueTypeFieldValues=zm,s.updateIssueTypeFieldValuesAttachment=ry,s.updateIssueTypeFieldValuesAttachments=dy,s.updateIssueTypeFieldValuesMany=jm,s.updateIssueTypeFields=Xm,s.updateIssueTypeFieldsAttachment=Im,s.updateIssueTypeFieldsAttachments=bm,s.updateIssueTypeFieldsMany=Ym,s.updateIssueTypeIdentifier=by,s.updateIssueTypeIdentifierValue=jy,s.updateIssueTypeIdentifierValues=Cy,s.updateIssueTypeIdentifiers=Oy,s.updateIssueTypePriorities=Zy,s.updateIssueTypePriority=Yy,s.updateIssueTypeStatus=Pf,s.updateIssueTypeStatuses=Ff,s.updateIssueTypes=lf,s.updateIssueUpdate=zf,s.updateIssueUpdates=jf,s.updateIssues=Wp,s.updateOrganization=AS,s.updateOrganizationAccess=iS,s.updateOrganizationAccesses=aS,s.updateOrganizations=SS,s.updateProcedure=pT,s.updateProcedureFieldValues=VP,s.updateProcedureFieldValuesAttachment=AP,s.updateProcedureFieldValuesAttachments=TP,s.updateProcedureFieldValuesMany=BP,s.updateProcedureInitiative=eT,s.updateProcedureInitiatives=tT,s.updateProcedureStep=AO,s.updateProcedureStepAssignee=ET,s.updateProcedureStepAssignees=vT,s.updateProcedureStepComment=GT,s.updateProcedureStepComments=NT,s.updateProcedureStepDefaultAssignee=aI,s.updateProcedureStepDefaultAssignees=nI,s.updateProcedureStepDefaultReviewer=AI,s.updateProcedureStepDefaultReviewers=TI,s.updateProcedureStepEvent=VI,s.updateProcedureStepEvents=BI,s.updateProcedureStepFieldValues=vb,s.updateProcedureStepFieldValuesAttachment=Sb,s.updateProcedureStepFieldValuesAttachments=Ab,s.updateProcedureStepFieldValuesMany=Vb,s.updateProcedureStepFieldValuesReview=Gb,s.updateProcedureStepFieldValuesReviews=Nb,s.updateProcedureStepFields=nb,s.updateProcedureStepFieldsAttachment=NI,s.updateProcedureStepFieldsAttachments=KI,s.updateProcedureStepFieldsMany=cb,s.updateProcedureStepReviewer=aO,s.updateProcedureStepReviewers=nO,s.updateProcedureSteps=TO,s.updateProcedureType=KP,s.updateProcedureTypeAttachment=vO,s.updateProcedureTypeAttachments=VO,s.updateProcedureTypeFields=nP,s.updateProcedureTypeFieldsAttachment=NO,s.updateProcedureTypeFieldsAttachments=KO,s.updateProcedureTypeFieldsMany=cP,s.updateProcedureTypes=WP,s.updateProcedures=mT,s.updateProject=kA,s.updateProjectAccess=qS,s.updateProjectAccesses=$S,s.updateProjectAttachment=JS,s.updateProjectAttachments=QS,s.updateProjectComment=oA,s.updateProjectComments=hA,s.updateProjectFile=_A,s.updateProjectFiles=MA,s.updateProjects=UA,s.updateReport=rF,s.updateReports=dF,s.updateTeam=CF,s.updateTeamMembership=OF,s.updateTeamMemberships=PF,s.updateTeams=DF,s.updateUser=Kf,s.updateUsers=Nf,s.userReducer=Xf,s.userSlice=da,Object.defineProperty(s,Symbol.toStringTag,{value:"Module"})}));