@overmap-ai/core 1.0.78-org-form-submissions.0 → 1.0.78-org-form-submissions.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.
package/dist/overmap-core.js
CHANGED
|
@@ -1775,7 +1775,7 @@ const $ = P(
|
|
|
1775
1775
|
name: "formSubmissionAttachments",
|
|
1776
1776
|
initialState: $i,
|
|
1777
1777
|
extraReducers: (t) => t.addMatcher(
|
|
1778
|
-
F(S,
|
|
1778
|
+
F(S, O),
|
|
1779
1779
|
(e) => Object.assign(e, $i)
|
|
1780
1780
|
),
|
|
1781
1781
|
reducers: {
|
|
@@ -1825,7 +1825,7 @@ const $ = P(
|
|
|
1825
1825
|
name: "formSubmissions",
|
|
1826
1826
|
initialState: Gi,
|
|
1827
1827
|
extraReducers: (t) => t.addMatcher(
|
|
1828
|
-
F(S,
|
|
1828
|
+
F(S, O),
|
|
1829
1829
|
(e) => Object.assign(e, Gi)
|
|
1830
1830
|
),
|
|
1831
1831
|
reducers: {
|
|
@@ -6619,7 +6619,7 @@ class b_ extends V {
|
|
|
6619
6619
|
queryParams: {
|
|
6620
6620
|
limit: M,
|
|
6621
6621
|
paginate: !0,
|
|
6622
|
-
|
|
6622
|
+
form_submission__form_revision__form__organization: e
|
|
6623
6623
|
},
|
|
6624
6624
|
blockers: [],
|
|
6625
6625
|
blocks: []
|
|
@@ -6707,7 +6707,7 @@ class g_ extends V {
|
|
|
6707
6707
|
queryParams: {
|
|
6708
6708
|
limit: M,
|
|
6709
6709
|
paginate: !0,
|
|
6710
|
-
|
|
6710
|
+
form_revision__form_organization: e
|
|
6711
6711
|
},
|
|
6712
6712
|
blockers: [],
|
|
6713
6713
|
blocks: []
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(function(s,U){typeof exports=="object"&&typeof module<"u"?U(exports,require("@redux-offline/redux-offline/lib/types"),require("@reduxjs/toolkit"),require("superagent"),require("uuid"),require("file-saver"),require("react"),require("@redux-offline/redux-offline"),require("@redux-offline/redux-offline/lib/defaults"),require("buffer"),require("localforage"),require("redux-persist-migrate"),require("@overmap-ai/forms"),require("idb"),require("jwt-decode"),require("dependency-graph"),require("@tiptap/core")):typeof define=="function"&&define.amd?define(["exports","@redux-offline/redux-offline/lib/types","@reduxjs/toolkit","superagent","uuid","file-saver","react","@redux-offline/redux-offline","@redux-offline/redux-offline/lib/defaults","buffer","localforage","redux-persist-migrate","@overmap-ai/forms","idb","jwt-decode","dependency-graph","@tiptap/core"],U):(s=typeof globalThis<"u"?globalThis:s||self,U(s["overmap-core"]={},null,s.toolkit,s.request,s.uuid,s.fileSaver,s.react,s.reduxOffline,s.offlineConfig,null,s.localforage,s.createMigration,null,s.idb,s.jwtDecode,s.dependencyGraph))})(this,function(s,U,d,Ze,Je,Rp,vp,wp,xn,OF,Mp,Ep,_F,Vp,jp,qp){"use strict";var FF=Object.defineProperty;var PF=(s,U,d)=>U in s?FF(s,U,{enumerable:!0,configurable:!0,writable:!0,value:d}):s[U]=d;var S=(s,U,d)=>PF(s,typeof U!="symbol"?U+"":U,d);var _p;const ec=Object.freeze([]),tc=Object.freeze({});var sc=(t=>(t[t.GUEST=0]="GUEST",t[t.BASIC=2]="BASIC",t[t.ADMIN=4]="ADMIN",t))(sc||{}),l=(t=>(t.GET="GET",t.POST="POST",t.PATCH="PATCH",t.PUT="PUT",t.DELETE="DELETE",t))(l||{}),ic=(t=>(t.Issue="issue",t.Asset="asset",t.AssetType="asset_type",t.Project="project",t.Document="document",t))(ic||{}),Qt=(t=>(t[t.LOWEST=0]="LOWEST",t[t.LOW=2]="LOW",t[t.MEDIUM=4]="MEDIUM",t[t.HIGH=6]="HIGH",t[t.HIGHEST=8]="HIGHEST",t))(Qt||{}),xt=(t=>(t[t.BACKLOG=0]="BACKLOG",t[t.SELECTED=2]="SELECTED",t[t.DONE=4]="DONE",t))(xt||{}),V=(t=>(t.STATUS="status",t.PRIORITY="priority",t.CATEGORY="category",t.DESCRIPTION="description",t.TITLE="title",t.ASSIGNED_TO="assigned_to",t.DUE_DATE="due_date",t))(V||{});const zp=xt.BACKLOG,Up=Qt.MEDIUM,ac=6e4;function P(t){return{addOne:(p,A)=>{const f=t(A.payload);p.instances[f]=A.payload},addMany:(p,A)=>{for(const f of A.payload){const T=t(f);p.instances[T]=f}},setOne:(p,A)=>{const f=t(A.payload);p.instances[f]=A.payload},setMany:(p,A)=>{for(const f of A.payload){const T=t(f);p.instances[T]=f}},updateOne:(p,A)=>{const f=t(A.payload);p.instances[f]=A.payload},updateMany:(p,A)=>{for(const f of A.payload){const T=t(f);p.instances[T]=f}},deleteOne:(p,A)=>{delete p.instances[A.payload]},deleteMany:(p,A)=>{for(const f of A.payload)delete p.instances[f]},initialize:(p,A)=>{p.instances={};const f=new Set;for(const T of A.payload){const F=t(T);f.add(F),p.instances[F]=T}f.size!==A.payload.length&&console.warn("duplicate ids detected when initializing model instances.")},getInitialState:p=>({...p,instances:{}})}}function Dp(){return{initializeSelection:(m,o)=>{m.selection=Array.from(new Set(o.payload))},selectOne:(m,o)=>{new Set(m.selection).has(o.payload)||m.selection.push(o.payload)},selectMany:(m,o)=>{const h=new Set(m.selection);for(const p of o.payload)h.has(p)||h.add(p);m.selection=Array.from(h)},unselectOne:(m,o)=>{const h=new Set(m.selection);h.has(o.payload)&&(h.delete(o.payload),m.selection=Array.from(h))},unselectMany:(m,o)=>{const h=new Set(m.selection);for(const p of o.payload)h.has(p)&&h.delete(p);m.selection=Array.from(h)},toggleOne:(m,o)=>{const h=new Set(m.selection);h.has(o.payload)?h.delete(o.payload):h.add(o.payload),m.selection=Array.from(h)},toggleMany:(m,o)=>{const h=new Set(m.selection);for(const p of o.payload)h.has(p)?h.delete(p):h.add(p);m.selection=Array.from(h)},getInitialState:m=>({...m,selection:[]})}}const tt="versioning",g=d.createAction("RESET"),M=d.createAction("RESET_PROJECT_STATE"),O=d.createAction("RESET_ORGANIZATION_STATE");_p=Symbol.toStringTag;class nc{constructor(){S(this,_p,"Promise");S(this,"_promise");S(this,"_resolve");S(this,"_reject");S(this,"_state","pending");this._resolve=null,this._reject=null,this._promise=new Promise((e,i)=>{this._resolve=e,this._reject=i})}get state(){return this._state}then(e,i){return this._promise.then(e,i)}catch(e){return this._promise.catch(e)}resolve(e){if(!this._resolve)throw new Error("No resolve callback");this._resolve(e),this._state="fulfilled"}reject(e){if(!this._reject)throw e;this._reject(e),this._state="rejected"}finally(e){throw new Error("`finally` not implemented")}}let es=!1;["true","1"].includes("".toLowerCase())&&(es=!0);function Cp(t,e){if(t===e)return!0;if(typeof t!=typeof e)return!1;const i=Object.keys(t),a=Object.keys(e),n=i.length;if(n!==a.length)return!1;for(let c=0;c<n;c++){const r=i[c];if(!Object.prototype.hasOwnProperty.call(e,r)||t[r]!==e[r])return!1}return!0}function ts(t){const e={};return function(){const i=Array.prototype.slice.call(arguments);return i in e?(es&&console.debug(`Memoization debug: Using memorized return value for ${t.toString()}(`,i,")"),e[i]):(es&&console.debug(`Memoization debug: Cache miss! Memoizing ${t.toString()}(`,i,")"),e[i]=t.apply(this,i))}}function kp(t,e){if(t.length!==e.length)return!1;for(let i=0;i<t.length;i++)if(t[i]!==e[i])return!1;return!0}const I=t=>t.length===0?ec:t,Pt=t=>Object.keys(t).length===0?tc:t,cc=ts(t=>{if(!t)return"";const e=new Date(t),i=e.getFullYear()===ss.getFullYear(),a={day:"numeric",month:"short"};return i||(a.year="numeric"),e.toLocaleDateString([],a)}),Bp=new Intl.RelativeTimeFormat([],{style:"long",numeric:"auto"}),Gp=1e3*86400,ss=new Date,$p=t=>new Date(t).toDateString()===ss.toDateString(),Lp=ts((t,e,i)=>{const a=Math.round((new Date(t).getTime()-ss.getTime())/Gp);return a<e||a>i?cc(t):Bp.format(a,"days")});function Np(t){return new Uint8Array(t).reduce((i,a)=>i+a.toString(16).padStart(2,"0"),"")}const is=async(t,e)=>{e||(e=await Xe(t));let i=t.type;if(i.includes("/")&&(i=i.split("/")[1]),!i)throw new Error(`Could not extract file type from ${t.type}`);return`${e}.${i}`};function Xe(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 r=Np(c);e(r)})},a.readAsArrayBuffer(t)})}function Hp(t){if(!t.name||!t.type||!t.size){const e="File has no name, type, and/or size";throw new Error(e)}return`${t.name}&${t.type}${t.size}`}function rc(t,e){return new File([t],e,{type:t.type})}function Wp(t,e){const i=document.createElement("a");i.setAttribute("href","data:text/plain;charset=utf-8,"+encodeURIComponent(e)),i.setAttribute("download",t),i.style.display="none",document.body.appendChild(i),i.click(),document.body.removeChild(i)}const Yp=async t=>{const e={};for(const i of t){const a=await Xe(i);e[a]={sha1:a,extension:i.name.split(".").pop()||"",file_type:i.type,size:i.size}}return Object.values(e)},dc=async t=>(await fetch(t)).blob(),Kp=t=>new Promise((e,i)=>{const a=new FileReader;a.onloadend=()=>{var n;e(((n=a.result)==null?void 0:n.toString())||"")},a.readAsDataURL(t)});function Zp(t){const e=new Blob([t]);Rp.saveAs(e,t.name)}const uc={};function Jp(t,e,i,...a){const n=uc[t];let c=!1;n?n[e]||(n[e]=!0,c=!0):(uc[t]={[e]:!0},c=!0),c&&console[i](...a)}const oc=["created_at","updated_at","index","revision"];function b(t){return{...t,uuid:Je.v4()}}function lc(t){const e={};for(const i of t)e[i.uuid]=i;return e}function Xp(t,e=void 0,i=255){let a=t.replace(/[^a-z0-9_\-.]/gi,"_").replace(/_{2,}/g,"_");if(!e){const c=t.split(".");c.length>1&&(e=c[c.length-1])}e&&!e.startsWith(".")&&(e="."+e);const n=e?e.length:0;return a.length+n>i&&(a=a.slice(0,i-n)+(e||"")),a}function Qp(t){return t.toLowerCase().replace(" ","-")}function xp(t,e=!1){return t.normalize("NFKD").toLowerCase().replace(/[^\w\s-]/g,"").trim().replace(/[-\s]+/g,e?"_":"-")}function eA(t,e){if(t.length<=e)return t;const i=t.slice(0,e-1);return i.slice(0,i.lastIndexOf(" "))+"…"}const y=t=>e=>i=>t(i,e);function hc(t,e,i){return i.findIndex(a=>a.uuid===t.uuid)===e}function tA(t,e,i){return i.findIndex(a=>a.file_sha1===t.file_sha1)===e}const sA=/^.+@.+\..+$/;function v(t){const e={...t};for(const i of[...oc,"created_by"])i in e&&delete e[i];return e}const k=P(t=>t.uuid),mc=k.getInitialState({}),as=d.createSlice({name:"agents",initialState:mc,extraReducers:t=>t.addMatcher(d.isAnyOf(g,M,O),e=>Object.assign(e,mc)),reducers:{initializeConversations:k.initialize,addConversation:k.addOne,addConversations:k.addMany,setConversation:k.setOne,setConversations:k.setMany,updateConversation:k.updateOne,updateConversations:k.updateMany,deleteConversation:k.deleteOne,deleteConversations:k.deleteMany}}),{initializeConversations:pc,addConversation:Ac,addConversations:iA,setConversation:fc,setConversations:aA,updateConversation:yc,updateConversations:nA,deleteConversation:cA,deleteConversations:rA}=as.actions,ns=t=>t.agentsReducer.instances,dA=d.createSelector([ns],t=>Object.values(t)),uA=y(d.createSelector([ns,(t,e)=>e],(t,e)=>t[e])),Sc=as.reducer,B=P(t=>t.uuid),Ic=B.getInitialState({}),cs=d.createSlice({name:"assetAttachments",initialState:Ic,extraReducers:t=>t.addMatcher(d.isAnyOf(g,M,O),e=>Object.assign(e,Ic)),reducers:{initializeAssetAttachments:B.initialize,addAssetAttachment:B.addOne,addAssetAttachments:B.addMany,setAssetAttachment:B.setOne,setAssetAttachments:B.setMany,updateAssetAttachment:B.updateOne,updateAssetAttachments:B.updateMany,deleteAssetAttachment:B.deleteOne,deleteAssetAttachments:B.deleteMany}}),{initializeAssetAttachments:rs,addAssetAttachment:oA,addAssetAttachments:ds,setAssetAttachment:Tc,setAssetAttachments:lA,updateAssetAttachment:hA,updateAssetAttachments:gc,deleteAssetAttachment:bc,deleteAssetAttachments:us}=cs.actions,Fc=t=>t.assetAttachmentReducer.instances,Pc=d.createSelector([Fc],t=>Object.values(t)),Oc=t=>e=>e.assetAttachmentReducer.instances[t],_c=y(d.createSelector([Pc,(t,e)=>e],(t,e)=>I(t.filter(({asset:i})=>e===i)))),Rc=cs.reducer,G=P(t=>t.uuid),vc=G.getInitialState({}),os=d.createSlice({name:"assetProcedureAttachments",initialState:vc,extraReducers:t=>t.addMatcher(d.isAnyOf(g,O),e=>Object.assign(e,vc)),reducers:{initializeAssetProcedureAttachments:G.initialize,addAssetProcedureAttachment:G.addOne,addAssetProcedureAttachments:G.addMany,setAssetProcedureAttachment:G.setOne,setAssetProcedureAttachments:G.setMany,updateAssetProcedureAttachment:G.updateOne,updateAssetProcedureAttachments:G.updateMany,deleteAssetProcedureAttachment:G.deleteOne,deleteAssetProcedureAttachments:G.deleteMany}}),{initializeAssetProcedureAttachments:wc,addAssetProcedureAttachment:mA,addAssetProcedureAttachments:Mc,setAssetProcedureAttachment:Ec,setAssetProcedureAttachments:pA,updateAssetProcedureAttachment:AA,updateAssetProcedureAttachments:Vc,deleteAssetProcedureAttachment:jc,deleteAssetProcedureAttachments:qc}=os.actions,zc=os.reducer,Uc=t=>t.assetProcedureAttachmentReducer.instances,Dc=d.createSelector([Uc],t=>Object.values(t)),Cc=t=>e=>e.assetProcedureAttachmentReducer.instances[t],fA=y(d.createSelector([Dc,(t,e)=>e],(t,e)=>I(t.filter(({asset_procedure:i})=>e===i)))),$=P(t=>t.uuid),kc=$.getInitialState({}),ls=d.createSlice({name:"assetProcedureFieldsAttachments",initialState:kc,extraReducers:t=>t.addMatcher(d.isAnyOf(g,O),e=>Object.assign(e,kc)),reducers:{initializeAssetProcedureFieldsAttachments:$.initialize,addAssetProcedureFieldsAttachment:$.addOne,addAssetProcedureFieldsAttachments:$.addMany,setAssetProcedureFieldsAttachment:$.setOne,setAssetProcedureFieldsAttachments:$.setMany,updateAssetProcedureFieldsAttachment:$.updateOne,updateAssetProcedureFieldsAttachments:$.updateMany,deleteAssetProcedureFieldsAttachment:$.deleteOne,deleteAssetProcedureFieldsAttachments:$.deleteMany}}),{initializeAssetProcedureFieldsAttachments:Bc,addAssetProcedureFieldsAttachment:yA,addAssetProcedureFieldsAttachments:Gc,setAssetProcedureFieldsAttachment:SA,setAssetProcedureFieldsAttachments:IA,updateAssetProcedureFieldsAttachment:TA,updateAssetProcedureFieldsAttachments:$c,deleteAssetProcedureFieldsAttachment:gA,deleteAssetProcedureFieldsAttachments:Lc}=ls.actions,Nc=t=>t.assetProcedureFieldsAttachmentReducer.instances,Hc=d.createSelector([Nc],t=>Object.values(t)),bA=y(d.createSelector([Hc,(t,e)=>e],(t,e)=>I(t.filter(i=>i.fields_revision===e)))),FA=t=>e=>e.assetProcedureFieldsAttachmentReducer.instances[t],Wc=ls.reducer,L=P(t=>t.uuid),Yc=L.getInitialState({}),hs=d.createSlice({name:"assetProcedureFields",initialState:Yc,extraReducers:t=>t.addMatcher(d.isAnyOf(g,O),e=>Object.assign(e,Yc)),reducers:{initializeAssetProcedureFields:L.initialize,addAssetProcedureFields:L.addOne,addAssetProcedureFieldsMany:L.addMany,setAssetProcedureFields:L.setOne,setAssetProcedureFieldsMany:L.setMany,updateAssetProcedureFields:L.updateOne,updateAssetProcedureFieldsMany:L.updateMany,deleteAssetProcedureFields:L.deleteOne,deleteAssetProcedureFieldsMany:L.deleteMany}}),{initializeAssetProcedureFields:Kc,addAssetProcedureFields:Zc,addAssetProcedureFieldsMany:PA,setAssetProcedureFields:OA,setAssetProcedureFieldsMany:_A,updateAssetProcedureFields:Jc,updateAssetProcedureFieldsMany:RA,deleteAssetProcedureFields:Xc,deleteAssetProcedureFieldsMany:vA}=hs.actions,Qc=t=>t.assetProcedureFieldsReducer.instances,ms=d.createSelector([Qc],t=>Object.values(t)),wA=y(d.createSelector([ms,(t,e)=>e],(t,e)=>I(t.filter(i=>i.asset_procedure===e)))),MA=y(d.createSelector([ms,(t,e)=>e],(t,e)=>t.filter(i=>i.asset_procedure===e).sort((i,a)=>i.submitted_at>a.submitted_at?-1:1)[0])),EA=t=>e=>e.assetProcedureFieldsReducer.instances[t],xc=hs.reducer,N=P(t=>t.uuid),er=N.getInitialState({}),ps=d.createSlice({name:"assetProcedureFieldValuesAttachments",initialState:er,extraReducers:t=>t.addMatcher(d.isAnyOf(g,M,O),e=>Object.assign(e,er)),reducers:{initializeAssetProcedureFieldValuesAttachments:N.initialize,addAssetProcedureFieldValuesAttachment:N.addOne,addAssetProcedureFieldValuesAttachments:N.addMany,setAssetProcedureFieldValuesAttachment:N.setOne,setAssetProcedureFieldValuesAttachments:N.setMany,updateAssetProcedureFieldValuesAttachment:N.updateOne,updateAssetProcedureFieldValuesAttachments:N.updateMany,deleteAssetProcedureFieldValuesAttachment:N.deleteOne,deleteAssetProcedureFieldValuesAttachments:N.deleteMany}}),{initializeAssetProcedureFieldValuesAttachments:tr,addAssetProcedureFieldValuesAttachment:VA,addAssetProcedureFieldValuesAttachments:Ot,setAssetProcedureFieldValuesAttachment:jA,setAssetProcedureFieldValuesAttachments:qA,updateAssetProcedureFieldValuesAttachment:zA,updateAssetProcedureFieldValuesAttachments:sr,deleteAssetProcedureFieldValuesAttachment:UA,deleteAssetProcedureFieldValuesAttachments:_t}=ps.actions,As=t=>t.assetProcedureFieldValuesAttachmentReducer.instances,ir=d.createSelector([As],t=>Object.values(t)),DA=t=>e=>e.assetProcedureFieldValuesAttachmentReducer.instances[t],ar=y(d.createSelector([As,(t,e)=>e],(t,e)=>{const i=new Set(e);return I(Object.values(t).filter(a=>i.has(a.uuid)))})),nr=y(d.createSelector([ir,(t,e)=>e],(t,e)=>I(t.filter(i=>i.field_values===e)))),cr=ps.reducer,H=P(t=>t.uuid),rr=H.getInitialState({}),fs=d.createSlice({name:"assetProcedureFieldValues",initialState:rr,extraReducers:t=>t.addMatcher(d.isAnyOf(g,M,O),e=>Object.assign(e,rr)),reducers:{initializeAssetProcedureFieldValues:H.initialize,addAssetProcedureFieldValues:H.addOne,addAssetProcedureFieldValuesMany:H.addMany,setAssetProcedureFieldValues:H.setOne,setAssetProcedureFieldValuesMany:H.setMany,updateAssetProcedureFieldValues:H.updateOne,updateAssetProcedureFieldValuesMany:H.updateMany,deleteAssetProcedureFieldValues:H.deleteOne,deleteAssetProcedureFieldValuesMany:H.deleteMany}}),{initializeAssetProcedureFieldValues:dr,addAssetProcedureFieldValues:ys,addAssetProcedureFieldValuesMany:ur,setAssetProcedureFieldValues:CA,setAssetProcedureFieldValuesMany:kA,updateAssetProcedureFieldValues:st,updateAssetProcedureFieldValuesMany:or,deleteAssetProcedureFieldValues:Ss,deleteAssetProcedureFieldValuesMany:lr}=fs.actions,hr=fs.reducer,mr=t=>t.assetProcedureFieldValuesReducer.instances,Is=d.createSelector([mr],t=>Object.values(t)),BA=y(d.createSelector([Is,(t,e)=>e],(t,e)=>I(t.filter(i=>i.asset===e)))),GA=y(d.createSelector([Is,(t,e)=>e],(t,e)=>I(t.filter(i=>i.asset_procedure_instance===e)))),Ts=t=>e=>e.assetProcedureFieldValuesReducer.instances[t],W=P(t=>t.uuid),pr=W.getInitialState({}),gs=d.createSlice({name:"assetProcedureInstances",initialState:pr,extraReducers:t=>t.addMatcher(d.isAnyOf(g,M,O),e=>Object.assign(e,pr)),reducers:{initializeAssetProcedureInstances:W.initialize,addAssetProcedureInstance:W.addOne,addAssetProcedureInstances:W.addMany,setAssetProcedureInstance:W.setOne,setAssetProcedureInstances:W.setMany,updateAssetProcedureInstance:W.updateOne,updateAssetProcedureInstances:W.updateMany,deleteAssetProcedureInstance:W.deleteOne,deleteAssetProcedureInstances:W.deleteMany}}),{initializeAssetProcedureInstances:Ar,addAssetProcedureInstance:bs,addAssetProcedureInstances:fr,updateAssetProcedureInstance:it,updateAssetProcedureInstances:$A,deleteAssetProcedureInstance:Fs,deleteAssetProcedureInstances:yr,setAssetProcedureInstance:LA,setAssetProcedureInstances:NA}=gs.actions,Sr=gs.reducer,Ps=t=>t.assetProcedureInstanceReducer.instances,Os=d.createSelector([Ps],t=>Object.values(t)),Ir=y(d.createSelector([Os,(t,e)=>e],(t,e)=>I(t.filter(i=>i.asset_procedure===e)))),HA=y(d.createSelector([Os,(t,e)=>e],(t,e)=>I(t.filter(i=>i.asset_type===e)))),_s=t=>e=>e.assetProcedureInstanceReducer.instances[t],WA=y(d.createSelector([Ps,(t,e)=>e],(t,e)=>{const i=[];for(const a of e){const n=t[a];n&&i.push(n)}return I(i)})),Y=P(t=>t.uuid),Tr=Y.getInitialState({}),Rs=d.createSlice({name:"assetProcedures",initialState:Tr,extraReducers:t=>t.addMatcher(d.isAnyOf(g,O),e=>Object.assign(e,Tr)),reducers:{initializeAssetProcedures:Y.initialize,addAssetProcedure:Y.addOne,addAssetProcedures:Y.addMany,setAssetProcedure:Y.setOne,setAssetProcedures:Y.setMany,updateAssetProcedure:Y.updateOne,updateAssetProcedures:Y.updateMany,deleteAssetProcedure:Y.deleteOne,deleteAssetProcedures:Y.deleteMany}}),{initializeAssetProcedures:gr,addAssetProcedure:vs,addAssetProcedures:YA,updateAssetProcedure:at,updateAssetProcedures:KA,deleteAssetProcedure:ws,deleteAssetProcedures:ZA,setAssetProcedure:JA,setAssetProcedures:XA}=Rs.actions,br=Rs.reducer,Ms=t=>t.assetProcedureReducer.instances,Fr=d.createSelector([Ms],t=>Object.values(t)),Es=t=>e=>e.assetProcedureReducer.instances[t],QA=y(d.createSelector([Ms,(t,e)=>e],(t,e)=>{const i=[];for(const a of e){const n=t[a];n&&i.push(n)}return I(i)})),xA=y(d.createSelector([Fr,(t,e)=>e],(t,e)=>I(t.filter(i=>i.organization===e)))),K=P(t=>t.uuid),Pr=K.getInitialState({}),Vs=d.createSlice({name:"assetProcedureStepFieldsAttachments",initialState:Pr,extraReducers:t=>t.addMatcher(d.isAnyOf(g,O),e=>Object.assign(e,Pr)),reducers:{initializeAssetProcedureStepFieldsAttachments:K.initialize,addAssetProcedureStepFieldsAttachment:K.addOne,addAssetProcedureStepFieldsAttachments:K.addMany,setAssetProcedureStepFieldsAttachment:K.setOne,setAssetProcedureStepFieldsAttachments:K.setMany,updateAssetProcedureStepFieldsAttachment:K.updateOne,updateAssetProcedureStepFieldsAttachments:K.updateMany,deleteAssetProcedureStepFieldsAttachment:K.deleteOne,deleteAssetProcedureStepFieldsAttachments:K.deleteMany}}),{initializeAssetProcedureStepFieldsAttachments:Or,addAssetProcedureStepFieldsAttachment:ef,addAssetProcedureStepFieldsAttachments:_r,setAssetProcedureStepFieldsAttachment:tf,setAssetProcedureStepFieldsAttachments:sf,updateAssetProcedureStepFieldsAttachment:af,updateAssetProcedureStepFieldsAttachments:Rr,deleteAssetProcedureStepFieldsAttachment:nf,deleteAssetProcedureStepFieldsAttachments:vr}=Vs.actions,wr=t=>t.assetProcedureStepFieldsAttachmentReducer.instances,Mr=d.createSelector([wr],t=>Object.values(t)),cf=y(d.createSelector([Mr,(t,e)=>e],(t,e)=>I(t.filter(i=>i.fields_revision===e)))),rf=t=>e=>e.assetProcedureStepFieldsAttachmentReducer.instances[t],Er=Vs.reducer,Z=P(t=>t.uuid),Vr=Z.getInitialState({}),js=d.createSlice({name:"assetProcedureStepFields",initialState:Vr,extraReducers:t=>t.addMatcher(d.isAnyOf(g,O),e=>Object.assign(e,Vr)),reducers:{initializeAssetProcedureStepFields:Z.initialize,addAssetProcedureStepFields:Z.addOne,addAssetProcedureStepFieldsMany:Z.addMany,setAssetProcedureStepFields:Z.setOne,setAssetProcedureStepFieldsMany:Z.setMany,updateAssetProcedureStepFields:Z.updateOne,updateAssetProcedureStepFieldsMany:Z.updateMany,deleteAssetProcedureStepFields:Z.deleteOne,deleteAssetProcedureStepFieldsMany:Z.deleteMany}}),{initializeAssetProcedureStepFields:jr,addAssetProcedureStepFields:qs,addAssetProcedureStepFieldsMany:df,setAssetProcedureStepFields:uf,setAssetProcedureStepFieldsMany:of,updateAssetProcedureStepFields:nt,updateAssetProcedureStepFieldsMany:lf,deleteAssetProcedureStepFields:zs,deleteAssetProcedureStepFieldsMany:hf}=js.actions,Us=t=>t.assetProcedureStepFieldsReducer.instances,Ds=d.createSelector([Us],t=>Object.values(t)),mf=y(d.createSelector([Ds,(t,e)=>e],(t,e)=>I(t.filter(i=>i.asset_procedure_step===e)))),pf=y(d.createSelector([Ds,(t,e)=>e],(t,e)=>t.filter(i=>i.asset_procedure_step===e).sort((i,a)=>i.submitted_at>a.submitted_at?-1:1)[0])),Af=d.createSelector([Us],t=>{const e={};for(const i of Object.values(t)){const a=e[i.asset_procedure_step];(!a||a.submitted_at<i.submitted_at)&&(e[i.asset_procedure_step]=i)}return e}),ff=t=>e=>e.assetProcedureStepFieldsReducer.instances[t],qr=js.reducer,J=P(t=>t.uuid),zr=J.getInitialState({}),Cs=d.createSlice({name:"assetProcedureStepFieldValuesAttachments",initialState:zr,extraReducers:t=>t.addMatcher(d.isAnyOf(g,M,O),e=>Object.assign(e,zr)),reducers:{initializeAssetProcedureStepFieldValuesAttachments:J.initialize,addAssetProcedureStepFieldValuesAttachment:J.addOne,addAssetProcedureStepFieldValuesAttachments:J.addMany,setAssetProcedureStepFieldValuesAttachment:J.setOne,setAssetProcedureStepFieldValuesAttachments:J.setMany,updateAssetProcedureStepFieldValuesAttachment:J.updateOne,updateAssetProcedureStepFieldValuesAttachments:J.updateMany,deleteAssetProcedureStepFieldValuesAttachment:J.deleteOne,deleteAssetProcedureStepFieldValuesAttachments:J.deleteMany}}),{initializeAssetProcedureStepFieldValuesAttachments:Ur,addAssetProcedureStepFieldValuesAttachment:yf,addAssetProcedureStepFieldValuesAttachments:Rt,setAssetProcedureStepFieldValuesAttachment:Sf,setAssetProcedureStepFieldValuesAttachments:If,updateAssetProcedureStepFieldValuesAttachment:Tf,updateAssetProcedureStepFieldValuesAttachments:Dr,deleteAssetProcedureStepFieldValuesAttachment:gf,deleteAssetProcedureStepFieldValuesAttachments:vt}=Cs.actions,ks=t=>t.assetProcedureStepFieldValuesAttachmentReducer.instances,Cr=d.createSelector([ks],t=>Object.values(t)),bf=t=>e=>e.assetProcedureStepFieldValuesAttachmentReducer.instances[t],kr=y(d.createSelector([ks,(t,e)=>e],(t,e)=>{const i=new Set(e);return I(Object.values(t).filter(a=>i.has(a.uuid)))})),Br=y(d.createSelector([Cr,(t,e)=>e],(t,e)=>I(t.filter(i=>i.field_values===e)))),Gr=Cs.reducer,X=P(t=>t.uuid),$r=X.getInitialState({}),Bs=d.createSlice({name:"assetProcedureStepFieldValues",initialState:$r,extraReducers:t=>t.addMatcher(d.isAnyOf(g,M,O),e=>Object.assign(e,$r)),reducers:{initializeAssetProcedureStepFieldValues:X.initialize,addAssetProcedureStepFieldValues:X.addOne,addAssetProcedureStepFieldValuesMany:X.addMany,setAssetProcedureStepFieldValues:X.setOne,setAssetProcedureStepFieldValuesMany:X.setMany,updateAssetProcedureStepFieldValues:X.updateOne,updateAssetProcedureStepFieldValuesMany:X.updateMany,deleteAssetProcedureStepFieldValues:X.deleteOne,deleteAssetProcedureStepFieldValuesMany:X.deleteMany}}),{initializeAssetProcedureStepFieldValues:Lr,addAssetProcedureStepFieldValues:Gs,addAssetProcedureStepFieldValuesMany:Nr,setAssetProcedureStepFieldValues:Ff,setAssetProcedureStepFieldValuesMany:Pf,updateAssetProcedureStepFieldValues:ct,updateAssetProcedureStepFieldValuesMany:Hr,deleteAssetProcedureStepFieldValues:$s,deleteAssetProcedureStepFieldValuesMany:Wr}=Bs.actions,Yr=t=>t.assetProcedureStepFieldValuesReducer.instances,wt=d.createSelector([Yr],t=>Object.values(t)),Of=y(d.createSelector([wt,(t,e)=>e],(t,e)=>I(t.filter(i=>i.asset===e)))),_f=y(d.createSelector([wt,(t,e)=>e],(t,e)=>I(t.filter(i=>i.asset_procedure_instance===e)))),Rf=y(d.createSelector([wt,(t,e)=>e],(t,e)=>I(t.filter(i=>i.asset_procedure_step===e)))),Ls=t=>e=>e.assetProcedureStepFieldValuesReducer.instances[t],Kr=Bs.reducer,Q=P(t=>t.uuid),Zr=Q.getInitialState({}),Ns=d.createSlice({name:"assetProcedureSteps",initialState:Zr,extraReducers:t=>t.addMatcher(d.isAnyOf(g,O),e=>Object.assign(e,Zr)),reducers:{initializeAssetProcedureSteps:Q.initialize,setAssetProcedureStep:Q.setOne,setAssetProcedureSteps:Q.setMany,addAssetProcedureStep:Q.addOne,addAssetProcedureSteps:Q.addMany,updateAssetProcedureStep:Q.updateOne,updateAssetProcedureSteps:Q.updateMany,deleteAssetProcedureStep:Q.deleteOne,deleteAssetProcedureSteps:Q.deleteMany}}),{initializeAssetProcedureSteps:Jr,setAssetProcedureStep:Xr,setAssetProcedureSteps:vf,addAssetProcedureStep:Hs,addAssetProcedureSteps:wf,updateAssetProcedureStep:Mt,updateAssetProcedureSteps:Mf,deleteAssetProcedureStep:Ws,deleteAssetProcedureSteps:Ef}=Ns.actions,Qr=Ns.reducer,Et=t=>t.assetProcedureStepReducer.instances,Ys=t=>e=>e.assetProcedureStepReducer.instances[t],xr=d.createSelector([Et],t=>Object.values(t)),Vf=y(d.createSelector([Et,(t,e)=>e],(t,e)=>{const i={};for(const[a,n]of Object.entries(t))n.asset_procedure===e&&(i[a]=n);return Pt(i)})),jf=y(d.createSelector([xr,(t,e)=>e],(t,e)=>I(t.filter(i=>i.asset_procedure===e)))),qf=y(d.createSelector([Et,(t,e)=>e],(t,e)=>{const i=[];for(const a of e){const n=t[a];n?i.push(n):console.warn("selectAssetProcedureStepsByIds: No step exists with the id",a)}return I(i)})),x=P(t=>t.uuid),ed=x.getInitialState({}),Ks=d.createSlice({name:"assets",initialState:ed,extraReducers:t=>t.addMatcher(d.isAnyOf(g,M,O),e=>Object.assign(e,ed)),reducers:{initializeAssets:x.initialize,addAsset:x.addOne,addAssets:x.addMany,setAsset:x.setOne,setAssets:x.setMany,updateAsset:x.updateOne,updateAssets:x.updateMany,deleteAsset:x.deleteOne,deleteAssets:x.deleteMany}}),{initializeAssets:td,addAsset:Zs,addAssets:Vt,updateAsset:rt,updateAssets:zf,deleteAsset:Js,deleteAssets:Xs,setAsset:Uf,setAssets:Df}=Ks.actions,Qs=t=>t.assetReducer.instances,sd=d.createSelector([Qs],t=>I(Object.values(t))),xs=y(d.createSelector([sd,(t,e)=>e],(t,e)=>I(t.filter(i=>i.asset_type===e)))),ei=t=>e=>e.assetReducer.instances[t],id=y(d.createSelector([Qs,(t,e)=>e],(t,e)=>{const i=[];for(const a of e){const n=t[a];n&&i.push(n)}return I(i)})),Cf=t=>e=>xs(t)(e).length,ad=Ks.reducer,ee=P(t=>t.uuid),nd=ee.getInitialState({}),ti=d.createSlice({name:"assetStageCompletions",initialState:nd,extraReducers:t=>t.addMatcher(d.isAnyOf(g,M,O),e=>Object.assign(e,nd)),reducers:{initializeAssetStageCompletions:ee.initialize,addAssetStageCompletion:ee.addOne,addAssetStageCompletions:ee.addMany,setAssetStageCompletion:ee.setOne,setAssetStageCompletions:ee.setMany,updateAssetStageCompletion:ee.updateOne,updateAssetStageCompletions:ee.updateMany,deleteAssetStageCompletion:ee.deleteOne,deleteAssetStageCompletions:ee.deleteMany}}),{initializeAssetStageCompletions:cd,addAssetStageCompletion:si,addAssetStageCompletions:ii,setAssetStageCompletion:kf,setAssetStageCompletions:Bf,updateAssetStageCompletion:rd,updateAssetStageCompletions:dd,deleteAssetStageCompletion:ai,deleteAssetStageCompletions:ni}=ti.actions,ud=ti.reducer,ci=t=>t.assetStageCompletionReducer.instances,Gf=d.createSelector([ci],t=>Object.values(t)),od=t=>e=>e.assetStageCompletionReducer.instances[t],ld=y(d.createSelector([ci,(t,e)=>e],(t,e)=>{const i=new Set(e);return I(Object.values(t).filter(a=>i.has(a.uuid)))})),te=P(t=>t.uuid),hd=te.getInitialState({}),ri=d.createSlice({name:"assetStages",initialState:hd,extraReducers:t=>t.addMatcher(d.isAnyOf(g,O),e=>Object.assign(e,hd)),reducers:{initializeAssetStages:te.initialize,setAssetStage:te.setOne,setAssetStages:te.setMany,addAssetStage:te.addOne,addAssetStages:te.addMany,updateAssetStage:te.updateOne,updateAssetStages:te.updateMany,deleteAssetStage:te.deleteOne,deleteAssetStages:te.deleteMany}}),{initializeAssetStages:md,setAssetStage:pd,setAssetStages:$f,addAssetStage:di,addAssetStages:Lf,updateAssetStage:jt,updateAssetStages:Nf,deleteAssetStage:ui,deleteAssetStages:Hf}=ri.actions,Ad=ri.reducer,qt=t=>t.assetStageReducer.instances,oi=t=>e=>e.assetStageReducer.instances[t],fd=d.createSelector([qt],t=>Object.values(t)),Wf=y(d.createSelector([qt,(t,e)=>e],(t,e)=>{const i={};for(const[a,n]of Object.entries(t))n.asset_procedure===e&&(i[a]=n);return Pt(i)})),Yf=y(d.createSelector([fd,(t,e)=>e],(t,e)=>I(t.filter(i=>i.asset_procedure===e)))),Kf=y(d.createSelector([qt,(t,e)=>e],(t,e)=>{const i=[];for(const a of e){const n=t[a];n?i.push(n):console.warn("selectStagesFromStageIds: No stage exists with the id",a)}return I(i)})),se=P(t=>t.uuid),yd=se.getInitialState({}),li=d.createSlice({name:"assetTypeAttachments",initialState:yd,extraReducers:t=>t.addMatcher(d.isAnyOf(g,O),e=>Object.assign(e,yd)),reducers:{initializeAssetTypeAttachments:se.initialize,addAssetTypeAttachment:se.addOne,addAssetTypeAttachments:se.addMany,setAssetTypeAttachment:se.setOne,setAssetTypeAttachments:se.setMany,updateAssetTypeAttachment:se.updateOne,updateAssetTypeAttachments:se.updateMany,deleteAssetTypeAttachment:se.deleteOne,deleteAssetTypeAttachments:se.deleteMany}}),{initializeAssetTypeAttachments:Sd,addAssetTypeAttachment:Zf,addAssetTypeAttachments:hi,setAssetTypeAttachment:Id,setAssetTypeAttachments:Jf,updateAssetTypeAttachment:Xf,updateAssetTypeAttachments:Td,deleteAssetTypeAttachment:gd,deleteAssetTypeAttachments:mi}=li.actions,bd=t=>t.assetTypeAttachmentReducer.instances,Fd=d.createSelector([bd],t=>Object.values(t)),Pd=t=>e=>e.assetTypeAttachmentReducer.instances[t],Od=y(d.createSelector([Fd,(t,e)=>e],(t,e)=>I(t.filter(({asset_type:i})=>e===i)))),_d=li.reducer,ie=P(t=>t.uuid),Rd=ie.getInitialState({}),pi=d.createSlice({name:"assetTypeFieldsAttachments",initialState:Rd,extraReducers:t=>t.addMatcher(d.isAnyOf(g,O),e=>Object.assign(e,Rd)),reducers:{initializeAssetTypeFieldsAttachments:ie.initialize,addAssetTypeFieldsAttachment:ie.addOne,addAssetTypeFieldsAttachments:ie.addMany,setAssetTypeFieldsAttachment:ie.setOne,setAssetTypeFieldsAttachments:ie.setMany,updateAssetTypeFieldsAttachment:ie.updateOne,updateAssetTypeFieldsAttachments:ie.updateMany,deleteAssetTypeFieldsAttachment:ie.deleteOne,deleteAssetTypeFieldsAttachments:ie.deleteMany}}),{initializeAssetTypeFieldsAttachments:vd,addAssetTypeFieldsAttachment:Qf,addAssetTypeFieldsAttachments:wd,setAssetTypeFieldsAttachment:xf,setAssetTypeFieldsAttachments:ey,updateAssetTypeFieldsAttachment:ty,updateAssetTypeFieldsAttachments:Md,deleteAssetTypeFieldsAttachment:sy,deleteAssetTypeFieldsAttachments:Ed}=pi.actions,Vd=t=>t.assetTypeFieldsAttachmentReducer.instances,jd=d.createSelector([Vd],t=>Object.values(t)),iy=y(d.createSelector([jd,(t,e)=>e],(t,e)=>I(t.filter(i=>i.fields_revision===e)))),ay=t=>e=>e.assetTypeFieldsAttachmentReducer.instances[t],qd=pi.reducer,ae=P(t=>t.uuid),zd=ae.getInitialState({}),Ai=d.createSlice({name:"assetTypeFields",initialState:zd,extraReducers:t=>t.addMatcher(d.isAnyOf(g,O),e=>Object.assign(e,zd)),reducers:{initializeAssetTypeFields:ae.initialize,addAssetTypeFields:ae.addOne,addAssetTypeFieldsMany:ae.addMany,setAssetTypeFields:ae.setOne,setAssetTypeFieldsMany:ae.setMany,updateAssetTypeFields:ae.updateOne,updateAssetTypeFieldsMany:ae.updateMany,deleteAssetTypeFields:ae.deleteOne,deleteAssetTypeFieldsMany:ae.deleteMany}}),{initializeAssetTypeFields:Ud,addAssetTypeFields:Dd,addAssetTypeFieldsMany:ny,setAssetTypeFields:cy,setAssetTypeFieldsMany:ry,updateAssetTypeFields:Cd,updateAssetTypeFieldsMany:dy,deleteAssetTypeFields:kd,deleteAssetTypeFieldsMany:uy}=Ai.actions,Bd=t=>t.assetTypeFieldsReducer.instances,zt=d.createSelector([Bd],t=>Object.values(t)),oy=y(d.createSelector([zt,(t,e)=>e],(t,e)=>I(t.filter(i=>i.asset_type===e)))),ly=y(d.createSelector([zt,(t,e)=>e],(t,e)=>t.filter(i=>i.asset_type===e).sort((i,a)=>i.submitted_at>a.submitted_at?-1:1)[0])),hy=t=>e=>e.assetTypeFieldsReducer.instances[t],Gd=Ai.reducer,ne=P(t=>t.uuid),$d=ne.getInitialState({}),fi=d.createSlice({name:"assetTypeFieldValuesAttachments",initialState:$d,extraReducers:t=>t.addMatcher(d.isAnyOf(g,M,O),e=>Object.assign(e,$d)),reducers:{initializeAssetTypeFieldValuesAttachments:ne.initialize,addAssetTypeFieldValuesAttachment:ne.addOne,addAssetTypeFieldValuesAttachments:ne.addMany,setAssetTypeFieldValuesAttachment:ne.setOne,setAssetTypeFieldValuesAttachments:ne.setMany,updateAssetTypeFieldValuesAttachment:ne.updateOne,updateAssetTypeFieldValuesAttachments:ne.updateMany,deleteAssetTypeFieldValuesAttachment:ne.deleteOne,deleteAssetTypeFieldValuesAttachments:ne.deleteMany}}),{initializeAssetTypeFieldValuesAttachments:Ld,addAssetTypeFieldValuesAttachment:my,addAssetTypeFieldValuesAttachments:Ut,setAssetTypeFieldValuesAttachment:py,setAssetTypeFieldValuesAttachments:Ay,updateAssetTypeFieldValuesAttachment:fy,updateAssetTypeFieldValuesAttachments:Nd,deleteAssetTypeFieldValuesAttachment:yy,deleteAssetTypeFieldValuesAttachments:Dt}=fi.actions,yi=t=>t.assetTypeFieldValuesAttachmentReducer.instances,Hd=d.createSelector([yi],t=>Object.values(t)),Sy=t=>e=>e.assetTypeFieldValuesAttachmentReducer.instances[t],Wd=y(d.createSelector([yi,(t,e)=>e],(t,e)=>{const i=new Set(e);return I(Object.values(t).filter(a=>i.has(a.uuid)))})),Yd=y(d.createSelector([Hd,(t,e)=>e],(t,e)=>I(t.filter(i=>i.field_values===e)))),Kd=fi.reducer,ce=P(t=>t.uuid),Zd=ce.getInitialState({}),Si=d.createSlice({name:"assetTypeFieldValues",initialState:Zd,extraReducers:t=>t.addMatcher(d.isAnyOf(g,M,O),e=>Object.assign(e,Zd)),reducers:{initializeAssetTypeFieldValues:ce.initialize,addAssetTypeFieldValues:ce.addOne,addAssetTypeFieldValuesMany:ce.addMany,setAssetTypeFieldValues:ce.setOne,setAssetTypeFieldValuesMany:ce.setMany,updateAssetTypeFieldValues:ce.updateOne,updateAssetTypeFieldValuesMany:ce.updateMany,deleteAssetTypeFieldValues:ce.deleteOne,deleteAssetTypeFieldValuesMany:ce.deleteMany}}),{initializeAssetTypeFieldValues:Jd,addAssetTypeFieldValues:Ii,addAssetTypeFieldValuesMany:Xd,setAssetTypeFieldValues:Iy,setAssetTypeFieldValuesMany:Ty,updateAssetTypeFieldValues:dt,updateAssetTypeFieldValuesMany:Qd,deleteAssetTypeFieldValues:Ti,deleteAssetTypeFieldValuesMany:xd}=Si.actions,eu=t=>t.assetTypeFieldValuesReducer.instances,gi=d.createSelector([eu],t=>Object.values(t)),gy=y(d.createSelector([gi,(t,e)=>e],(t,e)=>I(t.filter(i=>i.asset===e)))),by=y(d.createSelector([zt,gi,(t,e)=>e],(t,e,i)=>{const a=new Set(t.filter(n=>n.asset_type===i).map(n=>n.uuid));return I(e.filter(n=>a.has(n.fields_revision)))})),bi=t=>e=>e.assetTypeFieldValuesReducer.instances[t],tu=Si.reducer,re=P(t=>t.uuid),su=re.getInitialState({}),Fi=d.createSlice({name:"assetTypeIdentifiers",initialState:su,extraReducers:t=>t.addMatcher(d.isAnyOf(g,O),e=>Object.assign(e,su)),reducers:{initializeAssetTypeIdentifiers:re.initialize,addAssetTypeIdentifier:re.addOne,addAssetTypeIdentifiers:re.addMany,setAssetTypeIdentifier:re.setOne,setAssetTypeIdentifiers:re.setMany,updateAssetTypeIdentifier:re.updateOne,updateAssetTypeIdentifiers:re.updateMany,deleteAssetTypeIdentifier:re.deleteOne,deleteAssetTypeIdentifiers:re.deleteMany}}),{initializeAssetTypeIdentifiers:iu,addAssetTypeIdentifier:Pi,addAssetTypeIdentifiers:Fy,setAssetTypeIdentifier:Py,setAssetTypeIdentifiers:Oy,updateAssetTypeIdentifier:ut,updateAssetTypeIdentifiers:_y,deleteAssetTypeIdentifier:Oi,deleteAssetTypeIdentifiers:Ry}=Fi.actions,au=t=>t.assetTypeIdentifierReducer.instances,nu=d.createSelector([au],t=>Object.values(t)),_i=t=>e=>e.assetTypeIdentifierReducer.instances[t],vy=y(d.createSelector([nu,(t,e)=>e],(t,e)=>I(t.filter(i=>i.asset_type===e)))),cu=Fi.reducer,de=P(t=>t.uuid),ru=de.getInitialState({}),Ri=d.createSlice({name:"assetTypeIdentifierValues",initialState:ru,extraReducers:t=>t.addMatcher(d.isAnyOf(g,M,O),e=>Object.assign(e,ru)),reducers:{initializeAssetTypeIdentifierValues:de.initialize,addAssetTypeIdentifierValue:de.addOne,addAssetTypeIdentifierValues:de.addMany,setAssetTypeIdentifierValue:de.setOne,setAssetTypeIdentifierValues:de.setMany,updateAssetTypeIdentifierValue:de.updateOne,updateAssetTypeIdentifierValues:de.updateMany,deleteAssetTypeIdentifierValue:de.deleteOne,deleteAssetTypeIdentifierValues:de.deleteMany}}),{initializeAssetTypeIdentifierValues:du,addAssetTypeIdentifierValue:vi,addAssetTypeIdentifierValues:wy,setAssetTypeIdentifierValue:My,setAssetTypeIdentifierValues:Ey,updateAssetTypeIdentifierValue:ot,updateAssetTypeIdentifierValues:Vy,deleteAssetTypeIdentifierValue:wi,deleteAssetTypeIdentifierValues:jy}=Ri.actions,uu=t=>t.assetTypeIdentifierValueReducer.instances,Mi=d.createSelector([uu],t=>Object.values(t)),Ei=t=>e=>e.assetTypeIdentifierValueReducer.instances[t],qy=y(d.createSelector([Mi,(t,e)=>e],(t,e)=>I(t.filter(i=>i.asset===e)))),zy=y(d.createSelector([Mi,(t,e)=>e],(t,e)=>I(t.filter(i=>i.asset_type_identifier===e)))),ou=Ri.reducer,ue=P(t=>t.uuid),lu=ue.getInitialState({}),Vi=d.createSlice({name:"assetTypes",initialState:lu,extraReducers:t=>t.addMatcher(d.isAnyOf(g,O),e=>Object.assign(e,lu)),reducers:{initializeAssetTypes:ue.initialize,setAssetType:ue.setOne,setAssetTypes:ue.setMany,addAssetType:ue.addOne,addAssetTypes:ue.addMany,updateAssetType:ue.updateOne,updateAssetTypes:ue.updateMany,deleteAssetType:ue.deleteOne,deleteAssetTypes:ue.deleteMany}}),{initializeAssetTypes:hu,setAssetType:Uy,setAssetTypes:Dy,addAssetType:ji,addAssetTypes:Cy,updateAssetType:lt,updateAssetTypes:ky,deleteAssetType:qi,deleteAssetTypes:By}=Vi.actions,zi=t=>t.assetTypeReducer.instances,mu=d.createSelector([zi],t=>Object.values(t)),Ui=t=>e=>e.assetTypeReducer.instances[t],Gy=y(d.createSelector([zi,(t,e)=>e],(t,e)=>{const i=[];for(const a of e){const n=t[a];n?i.push(n):console.warn("selectAssetTypesByIds: No assetType exists with the id",a)}return I(i)})),$y=y(d.createSelector([mu,(t,e)=>e],(t,e)=>I(t.filter(i=>i.organization===e)))),pu=Vi.reducer,Au={accessToken:"",refreshToken:"",isLoggedIn:!1},Ct=d.createSlice({name:"auth",initialState:Au,extraReducers:t=>t.addCase(g,e=>Object.assign(e,Au)),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||Ct.caseReducers.clearTokens(t),t.isLoggedIn=e.payload}}}),{setTokens:Ly,clearTokens:Ny,setLoggedIn:fu}=Ct.actions,Hy=t=>t.authReducer.accessToken,Wy=t=>t.authReducer.isLoggedIn,yu=Ct.reducer,oe=P(t=>t.uuid),Su=oe.getInitialState({}),Di=d.createSlice({name:"categories",initialState:Su,extraReducers:t=>t.addMatcher(d.isAnyOf(g,O),e=>Object.assign(e,Su)),reducers:{initializeCategories:oe.initialize,addCategory:oe.addOne,addCategories:oe.addMany,setCategory:oe.setOne,setCategories:oe.setMany,updateCategory:oe.updateOne,updateCategories:oe.updateMany,deleteCategory:oe.deleteOne,deleteCategories:oe.deleteMany}}),{initializeCategories:Iu,addCategory:Ci,addCategories:Yy,setCategory:Ky,setCategories:Zy,updateCategory:Tu,updateCategories:Jy,deleteCategory:gu,deleteCategories:Xy}=Di.actions,ki=t=>t.categoryReducer.instances,bu=d.createSelector([ki],t=>Object.values(t)),Bi=t=>e=>e.categoryReducer.instances[t],Qy=y(d.createSelector([ki,(t,e)=>e],(t,e)=>{const i=[];for(const a of e){const n=t[a];n?i.push(n):console.warn("selectCategoryByIds: No category exists with the id",a)}return I(i)})),xy=y(d.createSelector([bu,(t,e)=>e],(t,e)=>I(t.filter(i=>i.project===e)))),Fu=Di.reducer,le=P(t=>t.uuid),Pu=le.getInitialState({}),Gi=d.createSlice({name:"documentAttachments",initialState:Pu,extraReducers:t=>t.addCase(g,e=>Object.assign(e,Pu)),reducers:{initializeDocumentAttachments:le.initialize,addDocumentAttachment:le.addOne,addDocumentAttachments:le.addMany,setDocumentAttachment:le.setOne,setDocumentAttachments:le.setMany,updateDocumentAttachment:le.updateOne,updateDocumentAttachments:le.updateMany,deleteDocumentAttachment:le.deleteOne,deleteDocumentAttachments:le.deleteMany}}),{initializeDocumentAttachments:Ou,addDocumentAttachment:eS,addDocumentAttachments:_u,setDocumentAttachment:Ru,setDocumentAttachments:tS,updateDocumentAttachment:sS,updateDocumentAttachments:vu,deleteDocumentAttachment:wu,deleteDocumentAttachments:Mu}=Gi.actions,Eu=t=>t.documentAttachmentReducer.instances,Vu=d.createSelector([Eu],t=>Object.values(t)),ju=t=>e=>e.documentAttachmentReducer.instances[t],iS=y(d.createSelector([Vu,(t,e)=>e],(t,e)=>I(t.filter(({document:i})=>e===i)))),qu=Gi.reducer,zu={documents:{}},$i=d.createSlice({name:"documents",initialState:zu,extraReducers:t=>t.addCase(g,e=>{Object.assign(e,zu)}),reducers:{setDocuments:(t,e)=>{if(e.payload.filter(hc).length!==e.payload.length)throw new Error("Tried to use setIssues reducer with duplicate ID's");t.documents=lc(e.payload)},addDocuments:(t,e)=>{for(const i of e.payload)if(i.uuid in t.documents)throw new Error(`attempting to add a document with uuid ${i.uuid} which already exists in state.documents.`);for(const i of e.payload){if(i.parent_document&&t.documents[i.parent_document]){const a=t.documents[i.parent_document];t.documents[i.parent_document]={...a,children_documents:[...a.children_documents,i.uuid]}}t.documents[i.uuid]=i}},updateDocuments:(t,e)=>{for(const i of e.payload)if(!(i.uuid in t.documents))throw new Error(`attempting to update a document with uuid ${i.uuid} which doesn't exists in state.documents.`);for(const i of e.payload){const a=t.documents[i.uuid];if(i.organization!==void 0&&i.organization!==a.organization)throw new Error("organization cannot be updated");if(i.project!==void 0&&i.project!==a.project)throw new Error("project cannot be updated");t.documents[i.uuid]={...a,...i}}},removeDocuments:(t,e)=>{for(const i of e.payload)if(!(i in t.documents))throw new Error(`attempting to delete a document with uuid ${i} which doesn't exists in state.documents.`);for(const i of e.payload){const a=t.documents[i];if(a.parent_document&&t.documents[a.parent_document]){const n=t.documents[a.parent_document];t.documents[a.parent_document]={...n,children_documents:n.children_documents.filter(c=>c!==a.uuid)}}delete t.documents[i]}}}}),{setDocuments:Uu,addDocuments:Du,updateDocuments:Qe,removeDocuments:Li}=$i.actions,kt=t=>t.documentsReducer.documents,Ni=d.createSelector([kt],t=>Object.values(t)),Cu=t=>e=>e.documentsReducer.documents[t],aS=y(d.createSelector([kt,(t,e)=>e],(t,e)=>{const i=[];for(const a of e){const n=t[a];n?i.push(n):console.warn("selectDocumentByIds: No document exists with the id",a)}return I(i)})),nS=y(d.createSelector([Ni,(t,e)=>e],(t,e)=>t.filter(i=>i.project===e))),cS=y(d.createSelector([Ni,(t,e)=>e],(t,e)=>t.filter(i=>i.organization===e))),ku=$i.reducer,he=P(t=>t.uuid),Bu=he.getInitialState({}),Hi=d.createSlice({name:"emailDomains",initialState:Bu,extraReducers:t=>t.addMatcher(d.isAnyOf(g,O),e=>Object.assign(e,Bu)),reducers:{initializeEmailDomains:he.initialize,addEmailDomain:he.addOne,addEmailDomains:he.addMany,setEmailDomain:he.setOne,setEmailDomains:he.setMany,updateEmailDomain:he.updateOne,updateEmailDomains:he.updateMany,deleteEmailDomain:he.deleteOne,deleteEmailDomains:he.deleteMany}}),{initializeEmailDomains:Gu,addEmailDomain:$u,addEmailDomains:rS,setEmailDomain:dS,setEmailDomains:uS,updateEmailDomain:oS,updateEmailDomains:lS,deleteEmailDomain:Lu,deleteEmailDomains:hS}=Hi.actions,Nu=t=>t.emailDomainsReducer.instances,Hu=d.createSelector([Nu],t=>Object.values(t)),mS=y(d.createSelector([Hu,(t,e)=>e],(t,e)=>I(t.filter(i=>i.organization===e)))),Wu=Hi.reducer,Yu={s3Urls:{}},Ku=1e3*60*60,pS=Ku*24*7,Wi=d.createSlice({name:"file",initialState:Yu,extraReducers:t=>t.addCase(g,e=>Object.assign(e,Yu)),reducers:{setUploadUrl:(t,e)=>{const{url:i,fields:a,sha1:n}=e.payload,c=new Date,r=new Date(c.getTime()+pS);t.s3Urls[n]={url:i,fields:a,exp:r.getTime()}}}}),{setUploadUrl:Zu}=Wi.actions,Ju=t=>e=>{const i=e.fileReducer.s3Urls[t];if(!i)return;const a=new Date().getTime();if(!((i.exp??a)-a<Ku))return i},Xu=Wi.reducer,me=P(t=>t.uuid),Qu=me.getInitialState({}),Yi=d.createSlice({name:"formIdentifiers",initialState:Qu,extraReducers:t=>t.addMatcher(d.isAnyOf(g,O),e=>Object.assign(e,Qu)),reducers:{initializeFormIdentifiers:me.initialize,addFormIdentifier:me.addOne,addFormIdentifiers:me.addMany,setFormIdentifier:me.setOne,setFormIdentifiers:me.setMany,updateFormIdentifier:me.updateOne,updateFormIdentifiers:me.updateMany,deleteFormIdentifier:me.deleteOne,deleteFormIdentifiers:me.deleteMany}}),{initializeFormIdentifiers:xu,addFormIdentifier:Ki,addFormIdentifiers:AS,setFormIdentifier:fS,setFormIdentifiers:yS,updateFormIdentifier:ht,updateFormIdentifiers:SS,deleteFormIdentifier:Zi,deleteFormIdentifiers:IS}=Yi.actions,eo=t=>t.formIdentifierReducer.instances,to=d.createSelector([eo],t=>Object.values(t)),Ji=t=>e=>e.formIdentifierReducer.instances[t],TS=y(d.createSelector([to,(t,e)=>e],(t,e)=>I(t.filter(i=>i.form===e)))),so=Yi.reducer,pe=P(t=>t.uuid),io=pe.getInitialState({}),Xi=d.createSlice({name:"formIdentifierValues",initialState:io,extraReducers:t=>t.addMatcher(d.isAnyOf(g,M,O),e=>Object.assign(e,io)),reducers:{initializeFormIdentifierValues:pe.initialize,addFormIdentifierValue:pe.addOne,addFormIdentifierValues:pe.addMany,setFormIdentifierValue:pe.setOne,setFormIdentifierValues:pe.setMany,updateFormIdentifierValue:pe.updateOne,updateFormIdentifierValues:pe.updateMany,deleteFormIdentifierValue:pe.deleteOne,deleteFormIdentifierValues:pe.deleteMany}}),{initializeFormIdentifierValues:ao,addFormIdentifierValue:Qi,addFormIdentifierValues:gS,setFormIdentifierValue:bS,setFormIdentifierValues:FS,updateFormIdentifierValue:mt,updateFormIdentifierValues:PS,deleteFormIdentifierValue:xi,deleteFormIdentifierValues:OS}=Xi.actions,no=t=>t.formIdentifierValueReducer.instances,ea=d.createSelector([no],t=>Object.values(t)),ta=t=>e=>e.formIdentifierValueReducer.instances[t],_S=y(d.createSelector([ea,(t,e)=>e],(t,e)=>I(t.filter(i=>i.form_submission===e)))),RS=y(d.createSelector([ea,(t,e)=>e],(t,e)=>I(t.filter(i=>i.form_identifier===e)))),co=Xi.reducer,Ae=P(t=>t.uuid),ro=Ae.getInitialState({}),sa=d.createSlice({name:"formRevisionAttachments",initialState:ro,extraReducers:t=>t.addMatcher(d.isAnyOf(g,O),e=>Object.assign(e,ro)),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:uo,addFormRevisionAttachment:vS,addFormRevisionAttachments:oo,setFormRevisionAttachment:wS,setFormRevisionAttachments:MS,updateFormRevisionAttachment:ES,updateFormRevisionAttachments:lo,deleteFormRevisionAttachment:VS,deleteFormRevisionAttachments:ho}=sa.actions,mo=t=>t.formRevisionAttachmentReducer.instances,jS=y(d.createSelector([mo,(t,e)=>e],(t,e)=>I(Object.values(t).filter(i=>i.form_revision===e)))),po=sa.reducer,fe=P(t=>t.uuid),Ao=fe.getInitialState({}),ia=d.createSlice({name:"formRevisions",initialState:Ao,extraReducers:t=>t.addMatcher(d.isAnyOf(g,O),e=>Object.assign(e,Ao)),reducers:{initializeFormRevisions:fe.initialize,addFormRevision:fe.addOne,addFormRevisions:fe.addMany,setFormRevision:fe.setOne,setFormRevisions:fe.setMany,updateFormRevision:fe.updateOne,updateFormRevisions:fe.updateMany,deleteFormRevision:fe.deleteOne,deleteFormRevisions:fe.deleteMany}}),{initializeFormRevisions:fo,addFormRevision:aa,addFormRevisions:yo,setFormRevision:So,setFormRevisions:qS,updateFormRevision:zS,updateFormRevisions:US,deleteFormRevision:na,deleteFormRevisions:Io}=ia.actions,ca=t=>t.formRevisionReducer.instances,ra=d.createSelector([ca],t=>Object.values(t)),DS=t=>e=>e.formRevisionReducer.instances[t],CS=y(d.createSelector([ra,(t,e)=>e],(t,e)=>t.filter(i=>i.form===e).sort((i,a)=>i.submitted_at>a.submitted_at?-1:1)[0])),To=y(d.createSelector([ra,(t,e)=>e],(t,e)=>I(t.filter(i=>i.form===e)))),go=ia.reducer,ye=P(t=>t.uuid),bo=ye.getInitialState({}),da=d.createSlice({name:"forms",initialState:bo,extraReducers:t=>t.addMatcher(d.isAnyOf(g,O),e=>Object.assign(e,bo)),reducers:{initializeForms:ye.initialize,addForm:ye.addOne,addForms:ye.addMany,setForm:ye.setOne,setForms:ye.setMany,updateForm:ye.updateOne,updateForms:ye.updateMany,deleteForm:ye.deleteOne,deleteForms:ye.deleteMany}}),{initializeForms:Fo,addForm:ua,addForms:kS,setForm:BS,setForms:GS,updateForm:$S,updateForms:LS,deleteForm:oa,deleteForms:NS}=da.actions,Po=da.reducer,Oo=t=>t.formReducer.instances,_o=d.createSelector([Oo],t=>Object.values(t)),Ro=t=>e=>e.formReducer.instances[t],HS=y(d.createSelector([_o,(t,e)=>e],(t,e)=>I(t.filter(i=>i.organization===e)))),Se=P(t=>t.uuid),vo=Se.getInitialState({}),la=d.createSlice({name:"formSubmissionAttachments",initialState:vo,extraReducers:t=>t.addMatcher(d.isAnyOf(g,M,O),e=>Object.assign(e,vo)),reducers:{initializeFormSubmissionAttachments:Se.initialize,addFormSubmissionAttachment:Se.addOne,addFormSubmissionAttachments:Se.addMany,setFormSubmissionAttachment:Se.setOne,setFormSubmissionAttachments:Se.setMany,updateFormSubmissionAttachment:Se.updateOne,updateFormSubmissionAttachments:Se.updateMany,deleteFormSubmissionAttachment:Se.deleteOne,deleteFormSubmissionAttachments:Se.deleteMany}}),{initializeFormSubmissionAttachments:wo,addFormSubmissionAttachment:WS,addFormSubmissionAttachments:Bt,setFormSubmissionAttachment:YS,setFormSubmissionAttachments:KS,updateFormSubmissionAttachment:ZS,updateFormSubmissionAttachments:Mo,deleteFormSubmissionAttachment:JS,deleteFormSubmissionAttachments:Gt}=la.actions,Eo=t=>t.formSubmissionAttachmentReducer.instances,ha=d.createSelector([Eo],t=>Object.values(t)),Vo=y(d.createSelector([ha,(t,e)=>e],(t,e)=>{const i=new Set(e);return I(t.filter(a=>i.has(a.uuid)))})),jo=y(d.createSelector([ha,(t,e)=>e],(t,e)=>I(t.filter(i=>i.form_submission===e)))),qo=la.reducer,Ie=P(t=>t.uuid),zo=Ie.getInitialState({}),ma=d.createSlice({name:"formSubmissions",initialState:zo,extraReducers:t=>t.addMatcher(d.isAnyOf(g,M,O),e=>Object.assign(e,zo)),reducers:{initializeFormSubmissions:Ie.initialize,setFormSubmission:Ie.setOne,setFormSubmissions:Ie.setMany,addFormSubmission:Ie.addOne,addFormSubmissions:Ie.addMany,updateFormSubmission:Ie.updateOne,updateFormSubmissions:Ie.updateMany,deleteFormSubmission:Ie.deleteOne,deleteFormSubmissions:Ie.deleteMany}}),{initializeFormSubmissions:Uo,setFormSubmission:$t,setFormSubmissions:XS,addFormSubmission:pa,addFormSubmissions:Do,updateFormSubmission:Co,updateFormSubmissions:QS,deleteFormSubmission:Aa,deleteFormSubmissions:ko}=ma.actions,fa=t=>t.formSubmissionReducer.instances,xS=d.createSelector([fa],t=>Object.values(t)),ya=t=>e=>e.formSubmissionReducer.instances[t],Bo=y(d.createSelector([fa,ca,(t,e)=>e],(t,e,i)=>{const a=new Set;for(const n of Object.values(e))n.form===i&&a.add(n.uuid);return Object.values(t).filter(n=>a.has(n.form_revision))})),Go=ma.reducer,Te=P(t=>t.uuid),$o=Te.getInitialState({}),Sa=d.createSlice({name:"geoImages",initialState:$o,extraReducers:t=>t.addMatcher(d.isAnyOf(g,M,O),e=>Object.assign(e,$o)),reducers:{initializeGeoImages:Te.initialize,setGeoImage:Te.setOne,setGeoImages:Te.setMany,addGeoImage:Te.addOne,addGeoImages:Te.addMany,updateGeoImage:Te.updateOne,updateGeoImages:Te.updateMany,deleteGeoImage:Te.deleteOne,deleteGeoImages:Te.deleteMany}}),{initializeGeoImages:Lo,setGeoImage:pt,setGeoImages:No,addGeoImage:Ho,addGeoImages:Wo,updateGeoImage:Yo,updateGeoImages:eI,deleteGeoImage:Ia,deleteGeoImages:Ko}=Sa.actions,Zo=t=>t.geoImageReducer.instances,Jo=d.createSelector([Zo],t=>Object.values(t)),Ta=t=>e=>e.geoImageReducer.instances[t],tI=y(d.createSelector([Jo,(t,e)=>e],(t,e)=>I(t.filter(i=>i.project===e)))),Xo=Sa.reducer,ge=P(t=>t.uuid),Qo=ge.getInitialState({}),ga=d.createSlice({name:"issueAssociations",initialState:Qo,extraReducers:t=>t.addMatcher(d.isAnyOf(g,M,O),e=>Object.assign(e,Qo)),reducers:{initializeIssueAssociations:ge.initialize,addIssueAssociation:ge.addOne,addIssueAssociations:ge.addMany,setIssueAssociation:ge.setOne,setIssueAssociations:ge.setMany,updateIssueAssociation:ge.updateOne,updateIssueAssociations:ge.updateMany,deleteIssueAssociation:ge.deleteOne,deleteIssueAssociations:ge.deleteMany}}),{initializeIssueAssociations:xo,setIssueAssociations:sI,setIssueAssociation:iI,updateIssueAssociation:el,updateIssueAssociations:aI,addIssueAssociation:ba,addIssueAssociations:Fa,deleteIssueAssociation:Pa,deleteIssueAssociations:Oa}=ga.actions,At=t=>t.issueAssociationReducer.instances,nI=d.createSelector([At],t=>Object.values(t)),tl=t=>e=>e.issueAssociationReducer.instances[t],sl=y(d.createSelector([At,(t,e)=>e],(t,e)=>I(Object.values(t).filter(i=>i.associated_issue===e)))),il=y(d.createSelector([At,(t,e)=>e],(t,e)=>I(Object.values(t).filter(i=>i.issue===e)))),al=y(d.createSelector([At,(t,e)=>e],(t,e)=>I(Object.values(t).filter(i=>i.asset===e)))),nl=ga.reducer,be=P(t=>t.uuid),cl=be.getInitialState({}),_a=d.createSlice({name:"issueAttachments",initialState:cl,extraReducers:t=>t.addMatcher(d.isAnyOf(g,M,O),e=>Object.assign(e,cl)),reducers:{initializeIssueAttachments:be.initialize,addIssueAttachment:be.addOne,addIssueAttachments:be.addMany,setIssueAttachment:be.setOne,setIssueAttachments:be.setMany,updateIssueAttachment:be.updateOne,updateIssueAttachments:be.updateMany,deleteIssueAttachment:be.deleteOne,deleteIssueAttachments:be.deleteMany}}),{initializeIssueAttachments:Ra,addIssueAttachment:cI,addIssueAttachments:va,setIssueAttachment:rl,setIssueAttachments:rI,updateIssueAttachment:dI,updateIssueAttachments:dl,deleteIssueAttachment:ul,deleteIssueAttachments:wa}=_a.actions,ol=t=>t.issueAttachmentReducer.instances,ll=d.createSelector([ol],t=>Object.values(t)),hl=y(d.createSelector([ll,(t,e)=>e],(t,e)=>I(t.filter(({issue:i})=>e===i)))),ml=t=>e=>e.issueAttachmentReducer.instances[t],pl=_a.reducer,Fe=P(t=>t.uuid),Al=Fe.getInitialState({}),Ma=d.createSlice({name:"issueCommentAttachments",initialState:Al,extraReducers:t=>t.addMatcher(d.isAnyOf(g,M,O),e=>Object.assign(e,Al)),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:Ea,addIssueCommentAttachment:uI,addIssueCommentAttachments:fl,setIssueCommentAttachment:yl,setIssueCommentAttachments:oI,updateIssueCommentAttachment:lI,updateIssueCommentAttachments:Sl,deleteIssueCommentAttachment:Il,deleteIssueCommentAttachments:Tl}=Ma.actions,gl=t=>t.issueCommentAttachmentReducer.instances,bl=d.createSelector([gl],t=>Object.values(t)),Fl=t=>e=>e.issueCommentAttachmentReducer.instances[t],hI=y(d.createSelector([bl,(t,e)=>e],(t,e)=>I(t.filter(({issue_comment:i})=>e===i)))),Pl=Ma.reducer,Pe=P(t=>t.uuid),Ol=Pe.getInitialState({}),Va=d.createSlice({name:"issueComments",initialState:Ol,extraReducers:t=>t.addMatcher(d.isAnyOf(g,M,O),e=>Object.assign(e,Ol)),reducers:{initializeIssueComments:Pe.initialize,addIssueComment:Pe.addOne,addIssueComments:Pe.addMany,setIssueComment:Pe.setOne,setIssueComments:Pe.setMany,updateIssueComment:Pe.updateOne,updateIssueComments:Pe.updateMany,deleteIssueComment:Pe.deleteOne,deleteIssueComments:Pe.deleteMany}}),{initializeIssueComments:mI,addIssueComment:ja,addIssueComments:pI,setIssueComment:qa,setIssueComments:_l,updateIssueComment:AI,updateIssueComments:fI,deleteIssueComment:za,deleteIssueComments:yI}=Va.actions,Rl=t=>t.issueCommentReducer.instances,Ua=t=>e=>e.issueCommentReducer.instances[t],SI=y(d.createSelector([Rl,(t,e)=>e],(t,e)=>I(Object.values(t).filter(i=>i.issue===e)))),vl=Va.reducer,Oe=P(t=>t.uuid),wl=Oe.getInitialState({}),Da=d.createSlice({name:"issues",initialState:wl,extraReducers:t=>t.addMatcher(d.isAnyOf(g,M,O),e=>Object.assign(e,wl)),reducers:{initializeIssues:Oe.initialize,addIssue:Oe.addOne,addIssues:Oe.addMany,setIssue:Oe.setOne,setIssues:Oe.setMany,updateIssue:Oe.updateOne,updateIssues:Oe.updateMany,deleteIssue:Oe.deleteOne,deleteIssues:Oe.deleteMany}}),{initializeIssues:Ml,addIssue:Ca,addIssues:El,setIssue:II,setIssues:TI,updateIssue:Lt,updateIssues:gI,deleteIssue:ka,deleteIssues:Vl}=Da.actions,Ba=t=>t.issueReducer.instances,Ga=d.createSelector([Ba],t=>Object.values(t)),$a=t=>e=>e.issueReducer.instances[t],bI=y(d.createSelector([Ba,(t,e)=>e],(t,e)=>{const i=[];for(const a of e){const n=t[a];n?i.push(n):console.warn("selectIssuesByIds: No issue exists with the id",a)}return I(i)})),FI=y(d.createSelector([Ga,(t,e)=>e],(t,e)=>t.filter(i=>i.project===e))),jl=y(d.createSelector([Ga,(t,e)=>e],(t,e)=>t.filter(i=>i.issue_type===e))),ql=Da.reducer,_e=P(t=>t.uuid),zl=_e.getInitialState({}),La=d.createSlice({name:"issueTypeAttachments",initialState:zl,extraReducers:t=>t.addMatcher(d.isAnyOf(g,O),e=>Object.assign(e,zl)),reducers:{initializeIssueTypeAttachments:_e.initialize,addIssueTypeAttachment:_e.addOne,addIssueTypeAttachments:_e.addMany,setIssueTypeAttachment:_e.setOne,setIssueTypeAttachments:_e.setMany,updateIssueTypeAttachment:_e.updateOne,updateIssueTypeAttachments:_e.updateMany,deleteIssueTypeAttachment:_e.deleteOne,deleteIssueTypeAttachments:_e.deleteMany}}),{initializeIssueTypeAttachments:Na,addIssueTypeAttachment:PI,addIssueTypeAttachments:Ul,setIssueTypeAttachment:Dl,setIssueTypeAttachments:OI,updateIssueTypeAttachment:_I,updateIssueTypeAttachments:Cl,deleteIssueTypeAttachment:kl,deleteIssueTypeAttachments:Bl}=La.actions,Gl=t=>t.issueTypeAttachmentReducer.instances,$l=d.createSelector([Gl],t=>Object.values(t)),Ll=t=>e=>e.issueTypeAttachmentReducer.instances[t],RI=y(d.createSelector([$l,(t,e)=>e],(t,e)=>I(t.filter(({issue_type:i})=>e===i)))),Nl=La.reducer,Re=P(t=>t.uuid),Hl=Re.getInitialState({}),Ha=d.createSlice({name:"issueTypeFieldsAttachments",initialState:Hl,extraReducers:t=>t.addMatcher(d.isAnyOf(g,O),e=>Object.assign(e,Hl)),reducers:{initializeIssueTypeFieldsAttachments:Re.initialize,addIssueTypeFieldsAttachment:Re.addOne,addIssueTypeFieldsAttachments:Re.addMany,setIssueTypeFieldsAttachment:Re.setOne,setIssueTypeFieldsAttachments:Re.setMany,updateIssueTypeFieldsAttachment:Re.updateOne,updateIssueTypeFieldsAttachments:Re.updateMany,deleteIssueTypeFieldsAttachment:Re.deleteOne,deleteIssueTypeFieldsAttachments:Re.deleteMany}}),{initializeIssueTypeFieldsAttachments:Wl,addIssueTypeFieldsAttachment:vI,addIssueTypeFieldsAttachments:Yl,setIssueTypeFieldsAttachment:wI,setIssueTypeFieldsAttachments:MI,updateIssueTypeFieldsAttachment:EI,updateIssueTypeFieldsAttachments:Kl,deleteIssueTypeFieldsAttachment:VI,deleteIssueTypeFieldsAttachments:Zl}=Ha.actions,Jl=t=>t.issueTypeFieldsAttachmentReducer.instances,Xl=d.createSelector([Jl],t=>Object.values(t)),jI=y(d.createSelector([Xl,(t,e)=>e],(t,e)=>I(t.filter(i=>i.fields_revision===e)))),qI=t=>e=>e.issueTypeFieldsAttachmentReducer.instances[t],Ql=Ha.reducer,ve=P(t=>t.uuid),xl=ve.getInitialState({}),Wa=d.createSlice({name:"issueTypeFieldValues",initialState:xl,extraReducers:t=>t.addMatcher(d.isAnyOf(g,M,O),e=>Object.assign(e,xl)),reducers:{initializeIssueTypeFieldValues:ve.initialize,addIssueTypeFieldValues:ve.addOne,addIssueTypeFieldValuesMany:ve.addMany,setIssueTypeFieldValues:ve.setOne,setIssueTypeFieldValuesMany:ve.setMany,updateIssueTypeFieldValues:ve.updateOne,updateIssueTypeFieldValuesMany:ve.updateMany,deleteIssueTypeFieldValues:ve.deleteOne,deleteIssueTypeFieldValuesMany:ve.deleteMany}}),{initializeIssueTypeFieldValues:eh,addIssueTypeFieldValues:Ya,addIssueTypeFieldValuesMany:zI,setIssueTypeFieldValues:UI,setIssueTypeFieldValuesMany:DI,updateIssueTypeFieldValues:ft,updateIssueTypeFieldValuesMany:CI,deleteIssueTypeFieldValues:Ka,deleteIssueTypeFieldValuesMany:kI}=Wa.actions,th=t=>t.issueTypeFieldValuesReducer.instances,Za=d.createSelector([th],t=>Object.values(t)),BI=y(d.createSelector([Za,(t,e)=>e],(t,e)=>I(t.filter(i=>i.issue===e)))),Ja=t=>e=>e.issueTypeFieldValuesReducer.instances[t],sh=Wa.reducer,we=P(t=>t.uuid),ih=we.getInitialState({}),Xa=d.createSlice({name:"issueTypeFields",initialState:ih,extraReducers:t=>t.addMatcher(d.isAnyOf(g,O),e=>Object.assign(e,ih)),reducers:{initializeIssueTypeFields:we.initialize,addIssueTypeFields:we.addOne,addIssueTypeFieldsMany:we.addMany,setIssueTypeFields:we.setOne,setIssueTypeFieldsMany:we.setMany,updateIssueTypeFields:we.updateOne,updateIssueTypeFieldsMany:we.updateMany,deleteIssueTypeFields:we.deleteOne,deleteIssueTypeFieldsMany:we.deleteMany}}),{initializeIssueTypeFields:ah,addIssueTypeFields:nh,addIssueTypeFieldsMany:GI,setIssueTypeFields:$I,setIssueTypeFieldsMany:LI,updateIssueTypeFields:ch,updateIssueTypeFieldsMany:NI,deleteIssueTypeFields:rh,deleteIssueTypeFieldsMany:HI}=Xa.actions,dh=t=>t.issueTypeFieldsReducer.instances,Nt=d.createSelector([dh],t=>Object.values(t)),WI=y(d.createSelector([Nt,(t,e)=>e],(t,e)=>I(t.filter(i=>i.issue_type===e)))),YI=y(d.createSelector([Nt,(t,e)=>e],(t,e)=>t.filter(i=>i.issue_type===e).sort((i,a)=>i.submitted_at>a.submitted_at?-1:1)[0])),KI=y(d.createSelector([Nt,Za,(t,e)=>e],(t,e,i)=>{const a=new Set(t.filter(n=>n.issue_type===i).map(n=>n.uuid));return I(e.filter(n=>a.has(n.fields_revision)))})),ZI=t=>e=>e.issueTypeFieldsReducer.instances[t],uh=Xa.reducer,Me=P(t=>t.uuid),oh=Me.getInitialState({}),Qa=d.createSlice({name:"issueTypeFieldValuesAttachments",initialState:oh,extraReducers:t=>t.addMatcher(d.isAnyOf(g,M,O),e=>Object.assign(e,oh)),reducers:{initializeIssueTypeFieldValuesAttachments:Me.initialize,addIssueTypeFieldValuesAttachment:Me.addOne,addIssueTypeFieldValuesAttachments:Me.addMany,setIssueTypeFieldValuesAttachment:Me.setOne,setIssueTypeFieldValuesAttachments:Me.setMany,updateIssueTypeFieldValuesAttachment:Me.updateOne,updateIssueTypeFieldValuesAttachments:Me.updateMany,deleteIssueTypeFieldValuesAttachment:Me.deleteOne,deleteIssueTypeFieldValuesAttachments:Me.deleteMany}}),{initializeIssueTypeFieldValuesAttachments:lh,addIssueTypeFieldValuesAttachment:JI,addIssueTypeFieldValuesAttachments:Ht,setIssueTypeFieldValuesAttachment:XI,setIssueTypeFieldValuesAttachments:QI,updateIssueTypeFieldValuesAttachment:xI,updateIssueTypeFieldValuesAttachments:hh,deleteIssueTypeFieldValuesAttachment:eT,deleteIssueTypeFieldValuesAttachments:Wt}=Qa.actions,mh=t=>t.issueTypeFieldValuesAttachmentReducer.instances,xa=d.createSelector([mh],t=>Object.values(t)),tT=t=>e=>e.issueTypeFieldValuesAttachmentReducer.instances[t],ph=y(d.createSelector([xa,(t,e)=>e],(t,e)=>{const i=new Set(e);return I(t.filter(a=>i.has(a.uuid)))})),Ah=y(d.createSelector([xa,(t,e)=>e],(t,e)=>I(t.filter(i=>i.field_values===e)))),fh=Qa.reducer,Ee=P(t=>t.uuid),yh=Ee.getInitialState({}),en=d.createSlice({name:"issueTypeIdentifiers",initialState:yh,extraReducers:t=>t.addMatcher(d.isAnyOf(g,O),e=>Object.assign(e,yh)),reducers:{initializeIssueTypeIdentifiers:Ee.initialize,addIssueTypeIdentifier:Ee.addOne,addIssueTypeIdentifiers:Ee.addMany,setIssueTypeIdentifier:Ee.setOne,setIssueTypeIdentifiers:Ee.setMany,updateIssueTypeIdentifier:Ee.updateOne,updateIssueTypeIdentifiers:Ee.updateMany,deleteIssueTypeIdentifier:Ee.deleteOne,deleteIssueTypeIdentifiers:Ee.deleteMany}}),{initializeIssueTypeIdentifiers:Sh,addIssueTypeIdentifier:tn,addIssueTypeIdentifiers:sT,setIssueTypeIdentifier:iT,setIssueTypeIdentifiers:aT,updateIssueTypeIdentifier:yt,updateIssueTypeIdentifiers:nT,deleteIssueTypeIdentifier:sn,deleteIssueTypeIdentifiers:cT}=en.actions,Ih=t=>t.issueTypeIdentifierReducer.instances,Th=d.createSelector([Ih],t=>Object.values(t)),an=t=>e=>e.issueTypeIdentifierReducer.instances[t],rT=y(d.createSelector([Th,(t,e)=>e],(t,e)=>I(t.filter(i=>i.issue_type===e)))),gh=en.reducer,Ve=P(t=>t.uuid),bh=Ve.getInitialState({}),nn=d.createSlice({name:"issueTypeIdentifierValues",initialState:bh,extraReducers:t=>t.addMatcher(d.isAnyOf(g,M,O),e=>Object.assign(e,bh)),reducers:{initializeIssueTypeIdentifierValues:Ve.initialize,addIssueTypeIdentifierValue:Ve.addOne,addIssueTypeIdentifierValues:Ve.addMany,setIssueTypeIdentifierValue:Ve.setOne,setIssueTypeIdentifierValues:Ve.setMany,updateIssueTypeIdentifierValue:Ve.updateOne,updateIssueTypeIdentifierValues:Ve.updateMany,deleteIssueTypeIdentifierValue:Ve.deleteOne,deleteIssueTypeIdentifierValues:Ve.deleteMany}}),{initializeIssueTypeIdentifierValues:Fh,addIssueTypeIdentifierValue:cn,addIssueTypeIdentifierValues:dT,setIssueTypeIdentifierValue:uT,setIssueTypeIdentifierValues:oT,updateIssueTypeIdentifierValue:St,updateIssueTypeIdentifierValues:lT,deleteIssueTypeIdentifierValue:rn,deleteIssueTypeIdentifierValues:hT}=nn.actions,Ph=t=>t.issueTypeIdentifierValueReducer.instances,dn=d.createSelector([Ph],t=>Object.values(t)),un=t=>e=>e.issueTypeIdentifierValueReducer.instances[t],mT=y(d.createSelector([dn,(t,e)=>e],(t,e)=>I(t.filter(i=>i.issue===e)))),pT=y(d.createSelector([dn,(t,e)=>e],(t,e)=>I(t.filter(i=>i.issue_type_identifier===e)))),Oh=nn.reducer,C=P(t=>t.uuid),_h=C.getInitialState({}),on=d.createSlice({name:"issueTypes",initialState:_h,extraReducers:t=>t.addMatcher(d.isAnyOf(g,O),e=>Object.assign(e,_h)),reducers:{initializeIssueTypes:C.initialize,addIssueType:C.addOne,addIssueTypes:C.addMany,setIssueType:C.setOne,setIssueTypes:C.setMany,updateIssueType:C.updateOne,updateIssueTypes:C.updateMany,deleteIssueType:C.deleteOne,deleteIssueTypes:C.deleteMany,removeIssueType:C.deleteOne}}),{initializeIssueTypes:Rh,addIssueType:vh,addIssueTypes:AT,setIssueType:It,setIssueTypes:fT,updateIssueType:wh,updateIssueTypes:yT,deleteIssueType:ST,deleteIssueTypes:IT,removeIssueType:ln}=on.actions,hn=t=>t.issueTypeReducer.instances,Mh=d.createSelector(hn,t=>Object.values(t)),mn=t=>e=>e.issueTypeReducer.instances[t],TT=y(d.createSelector([hn,(t,e)=>e],(t,e)=>{const i=[];for(const a of e){const n=t[a];n?i.push(n):console.warn("selectIssueTypesByIds: No issue type exists with the id",a)}return i})),gT=y(d.createSelector([Mh,(t,e)=>e],(t,e)=>I(t.filter(i=>i.organization===e)))),Eh=on.reducer,je=P(t=>t.uuid),Vh=je.getInitialState({}),pn=d.createSlice({name:"issueUpdates",initialState:Vh,extraReducers:t=>t.addMatcher(d.isAnyOf(g,M,O),e=>Object.assign(e,Vh)),reducers:{initializeIssueUpdates:je.initialize,addIssueUpdate:je.addOne,addIssueUpdates:je.addMany,setIssueUpdate:je.setOne,setIssueUpdates:je.setMany,updateIssueUpdate:je.updateOne,updateIssueUpdates:je.updateMany,deleteIssueUpdate:je.deleteOne,deleteIssueUpdates:je.deleteMany}}),{initializeIssueUpdates:jh,addIssueUpdate:qh,addIssueUpdates:zh,setIssueUpdate:bT,setIssueUpdates:FT,updateIssueUpdate:PT,updateIssueUpdates:OT,deleteIssueUpdate:Uh,deleteIssueUpdates:Dh}=pn.actions,Ch=t=>t.issueUpdateReducer.instances,kh=d.createSelector([Ch],t=>Object.values(t)),Bh=y(d.createSelector([kh,(t,e)=>e],(t,e)=>I(t.filter(i=>i.issue===e)))),Gh=pn.reducer,qe=P(t=>t.id),$h=qe.getInitialState({currentUser:null}),An=d.createSlice({name:"users",initialState:$h,extraReducers:t=>t.addMatcher(d.isAnyOf(g,O),e=>Object.assign(e,$h)),reducers:{initializeUsers:qe.initialize,setUsers:qe.setMany,setUser:qe.setOne,addUsers:qe.addMany,addUser:qe.addOne,updateUsers:qe.updateMany,updateUser:qe.updateOne,deleteUser:qe.deleteOne,deleteUsers:qe.deleteMany,setCurrentUser:(t,e)=>{t.currentUser=e.payload},setProfilePicture:(t,e)=>{if(!t.currentUser)return;t.currentUser.profile.file=e.payload.file??null,t.currentUser.profile.file_sha1=e.payload.file_sha1??null;const i=t.instances[t.currentUser.id];if(!i)throw new Error("Unable to find current user in users slice");i.profile.file=e.payload.file??null,i.profile.file_sha1=e.payload.file_sha1??null}}}),{initializeUsers:Lh,setUsers:_T,setUser:RT,addUsers:vT,addUser:Nh,updateUsers:wT,updateUser:MT,deleteUser:Hh,deleteUsers:ET,setCurrentUser:VT,setProfilePicture:jT}=An.actions,Wh=An.reducer,Yh=t=>t.userReducer.currentUser,Yt=t=>t.userReducer.instances,fn=d.createSelector([Yt],t=>Object.values(t)),Kh=t=>e=>e.userReducer.instances[t],qT=y(d.createSelector([Yt,(t,e)=>e],(t,e)=>{const i=[];for(const a of e){const n=t[a];n?i.push(n):console.warn("selectUsersByIds: No user exists with the id",a)}return I(i)})),ze=P(t=>t.uuid),Zh=ze.getInitialState({}),yn=d.createSlice({name:"organizationAccess",initialState:Zh,extraReducers:t=>t.addMatcher(d.isAnyOf(g,O),e=>Object.assign(e,Zh)),reducers:{initializeOrganizationAccesses:ze.initialize,addOrganizationAccess:ze.addOne,addOrganizationAccesses:ze.addMany,setOrganizationAccess:ze.setOne,setOrganizationAccesses:ze.setMany,updateOrganizationAccess:ze.updateOne,updateOrganizationAccesses:ze.updateMany,deleteOrganizationAccess:ze.deleteOne,deleteOrganizationAccesses:ze.deleteMany}}),{initializeOrganizationAccesses:Jh,addOrganizationAccess:Xh,addOrganizationAccesses:zT,setOrganizationAccess:UT,setOrganizationAccesses:DT,updateOrganizationAccess:Kt,updateOrganizationAccesses:CT,deleteOrganizationAccess:Qh,deleteOrganizationAccesses:kT}=yn.actions,xh=yn.reducer,Sn=t=>t.organizationAccessReducer.instances,In=t=>e=>e.organizationAccessReducer.instances[t],BT=d.createSelector([Yh,Sn],(t,e)=>Object.values(e).find(a=>a.user===(t==null?void 0:t.id))??null),em=d.createSelector([Sn],t=>{const e={};for(const i of Object.values(t))e[i.user]=i;return Pt(e)}),GT=y(d.createSelector([Yt,em,(t,e)=>e],(t,e,i)=>I(Object.values(t).filter(a=>{const n=e[a.id];return!!n&&n.organization===i})))),Ue=P(t=>t.uuid),tm=Ue.getInitialState({}),Tn=d.createSlice({name:"organizations",initialState:tm,extraReducers:t=>t.addMatcher(d.isAnyOf(g,O),e=>Object.assign(e,tm)),reducers:{initializeOrganizations:Ue.initialize,setOrganizations:Ue.setMany,setOrganization:Ue.setOne,addOrganizations:Ue.addMany,addOrganization:Ue.addOne,updateOrganizations:Ue.updateMany,updateOrganization:Ue.updateOne,deleteOrganization:Ue.deleteOne,deleteOrganizations:Ue.deleteMany}}),{initializeOrganizations:sm,setOrganizations:$T,setOrganization:LT,addOrganizations:NT,addOrganization:im,updateOrganizations:HT,updateOrganization:am,deleteOrganization:WT,deleteOrganizations:YT}=Tn.actions,nm=t=>t.organizationReducer.instances,KT=d.createSelector([nm],t=>Object.values(t)),ZT=t=>e=>e.organizationReducer.instances[t],cm=Tn.reducer,rm=(t,e,i)=>{const a=t.uuid?t:{...t,uuid:Je.v4()};return{payload:a,type:"",meta:{offline:{effect:{timestamp:new Date().toISOString(),request:a,BASE_URL:e,serviceName:i}}}}},dm={deletedRequests:[],latestRetryTime:0},gn=d.createSlice({name:"outbox",initialState:dm,extraReducers:t=>t.addCase(g,e=>Object.assign(e,dm)),reducers:{enqueueRequest:{reducer:(t,e)=>t,prepare:t=>{console.debug("Preparing to enqueue request",t);const{BASE_URL:e,serviceName:i,...a}=t;return rm(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}}}),JT=t=>t.outboxReducer.deletedRequests,XT=t=>t.outboxReducer.latestRetryTime,{enqueueRequest:um,markForDeletion:QT,markAsDeleted:om,_setLatestRetryTime:lm}=gn.actions,hm=gn.reducer,De=P(t=>t.uuid),mm=De.getInitialState({}),bn=d.createSlice({name:"projectAccess",initialState:mm,extraReducers:t=>t.addMatcher(d.isAnyOf(g,O),e=>Object.assign(e,mm)),reducers:{initializeProjectAccesses:De.initialize,addProjectAccess:De.addOne,addProjectAccesses:De.addMany,setProjectAccess:De.setOne,setProjectAccesses:De.setMany,updateProjectAccess:De.updateOne,updateProjectAccesses:De.updateMany,deleteProjectAccess:De.deleteOne,deleteProjectAccesses:De.deleteMany}}),{initializeProjectAccesses:pm,addProjectAccess:Fn,addProjectAccesses:Pn,setProjectAccess:xT,setProjectAccesses:eg,updateProjectAccess:Tt,updateProjectAccesses:Am,deleteProjectAccess:On,deleteProjectAccesses:_n}=bn.actions,fm=bn.reducer,Rn=t=>t.projectAccessReducer.instances,Zt=d.createSelector(Rn,t=>Object.values(t)),vn=t=>e=>e.projectAccessReducer.instances[t],ym=y(d.createSelector([Rn,(t,e)=>e],(t,e)=>I(Object.values(t).filter(i=>i.project===e)))),tg=y(d.createSelector([Zt,(t,e)=>e],(t,e)=>{const i={};for(const a of t.filter(n=>n.project===e))i[a.user]=a;return i})),sg=y(d.createSelector([fn,Zt,(t,e)=>e],(t,e,i)=>{const a=new Set(e.filter(n=>n.project===i).map(n=>n.user));return I(t.filter(n=>a.has(n.id)))})),Ce=P(t=>t.uuid),Sm=Ce.getInitialState({}),wn=d.createSlice({name:"projectAttachments",initialState:Sm,extraReducers:t=>t.addMatcher(d.isAnyOf(g,O),e=>Object.assign(e,Sm)),reducers:{initializeProjectAttachments:Ce.initialize,addProjectAttachment:Ce.addOne,addProjectAttachments:Ce.addMany,setProjectAttachment:Ce.setOne,setProjectAttachments:Ce.setMany,updateProjectAttachment:Ce.updateOne,updateProjectAttachments:Ce.updateMany,deleteProjectAttachment:Ce.deleteOne,deleteProjectAttachments:Ce.deleteMany}}),{initializeProjectAttachments:Im,addProjectAttachment:ig,addProjectAttachments:Tm,setProjectAttachment:gm,setProjectAttachments:bm,updateProjectAttachment:ag,updateProjectAttachments:Fm,deleteProjectAttachment:Pm,deleteProjectAttachments:Mn}=wn.actions,Om=t=>t.projectAttachmentReducer.instances,_m=d.createSelector([Om],t=>Object.values(t)),Rm=t=>e=>e.projectAttachmentReducer.instances[t],vm=y(d.createSelector([_m,(t,e)=>e],(t,e)=>I(t.filter(({project:i})=>e===i)))),wm=wn.reducer,ke=P(t=>t.uuid),Mm=ke.getInitialState({activeProjectFileId:null,isImportingProjectFile:!1}),En=d.createSlice({name:"projectFiles",initialState:Mm,extraReducers:t=>t.addMatcher(d.isAnyOf(g,M,O),e=>Object.assign(e,Mm)),reducers:{initializeProjectFiles:ke.initialize,setProjectFile:ke.setOne,setProjectFiles:ke.setMany,addProjectFile:ke.addOne,addProjectFiles:ke.addMany,updateProjectFile:ke.updateOne,updateProjectFiles:ke.updateMany,deleteProjectFile:ke.deleteOne,deleteProjectFiles:ke.deleteMany,setIsImportingProjectFile:(t,e)=>{t.isImportingProjectFile=e.payload},saveActiveProjectFileBounds:(t,e)=>{const i=t.activeProjectFileId;if(!i)throw new Error("Tried to save bounds for active project file, but no active project file was set.");if(!t.instances[i])throw new Error(`Tried to save bounds for active project file, but project file with ID ${i}
|
|
1
|
+
(function(s,U){typeof exports=="object"&&typeof module<"u"?U(exports,require("@redux-offline/redux-offline/lib/types"),require("@reduxjs/toolkit"),require("superagent"),require("uuid"),require("file-saver"),require("react"),require("@redux-offline/redux-offline"),require("@redux-offline/redux-offline/lib/defaults"),require("buffer"),require("localforage"),require("redux-persist-migrate"),require("@overmap-ai/forms"),require("idb"),require("jwt-decode"),require("dependency-graph"),require("@tiptap/core")):typeof define=="function"&&define.amd?define(["exports","@redux-offline/redux-offline/lib/types","@reduxjs/toolkit","superagent","uuid","file-saver","react","@redux-offline/redux-offline","@redux-offline/redux-offline/lib/defaults","buffer","localforage","redux-persist-migrate","@overmap-ai/forms","idb","jwt-decode","dependency-graph","@tiptap/core"],U):(s=typeof globalThis<"u"?globalThis:s||self,U(s["overmap-core"]={},null,s.toolkit,s.request,s.uuid,s.fileSaver,s.react,s.reduxOffline,s.offlineConfig,null,s.localforage,s.createMigration,null,s.idb,s.jwtDecode,s.dependencyGraph))})(this,function(s,U,d,Ze,Je,Rp,vp,wp,xn,OF,Mp,Ep,_F,Vp,jp,qp){"use strict";var FF=Object.defineProperty;var PF=(s,U,d)=>U in s?FF(s,U,{enumerable:!0,configurable:!0,writable:!0,value:d}):s[U]=d;var S=(s,U,d)=>PF(s,typeof U!="symbol"?U+"":U,d);var _p;const ec=Object.freeze([]),tc=Object.freeze({});var sc=(t=>(t[t.GUEST=0]="GUEST",t[t.BASIC=2]="BASIC",t[t.ADMIN=4]="ADMIN",t))(sc||{}),l=(t=>(t.GET="GET",t.POST="POST",t.PATCH="PATCH",t.PUT="PUT",t.DELETE="DELETE",t))(l||{}),ic=(t=>(t.Issue="issue",t.Asset="asset",t.AssetType="asset_type",t.Project="project",t.Document="document",t))(ic||{}),Qt=(t=>(t[t.LOWEST=0]="LOWEST",t[t.LOW=2]="LOW",t[t.MEDIUM=4]="MEDIUM",t[t.HIGH=6]="HIGH",t[t.HIGHEST=8]="HIGHEST",t))(Qt||{}),xt=(t=>(t[t.BACKLOG=0]="BACKLOG",t[t.SELECTED=2]="SELECTED",t[t.DONE=4]="DONE",t))(xt||{}),V=(t=>(t.STATUS="status",t.PRIORITY="priority",t.CATEGORY="category",t.DESCRIPTION="description",t.TITLE="title",t.ASSIGNED_TO="assigned_to",t.DUE_DATE="due_date",t))(V||{});const zp=xt.BACKLOG,Up=Qt.MEDIUM,ac=6e4;function P(t){return{addOne:(p,A)=>{const f=t(A.payload);p.instances[f]=A.payload},addMany:(p,A)=>{for(const f of A.payload){const T=t(f);p.instances[T]=f}},setOne:(p,A)=>{const f=t(A.payload);p.instances[f]=A.payload},setMany:(p,A)=>{for(const f of A.payload){const T=t(f);p.instances[T]=f}},updateOne:(p,A)=>{const f=t(A.payload);p.instances[f]=A.payload},updateMany:(p,A)=>{for(const f of A.payload){const T=t(f);p.instances[T]=f}},deleteOne:(p,A)=>{delete p.instances[A.payload]},deleteMany:(p,A)=>{for(const f of A.payload)delete p.instances[f]},initialize:(p,A)=>{p.instances={};const f=new Set;for(const T of A.payload){const F=t(T);f.add(F),p.instances[F]=T}f.size!==A.payload.length&&console.warn("duplicate ids detected when initializing model instances.")},getInitialState:p=>({...p,instances:{}})}}function Dp(){return{initializeSelection:(m,o)=>{m.selection=Array.from(new Set(o.payload))},selectOne:(m,o)=>{new Set(m.selection).has(o.payload)||m.selection.push(o.payload)},selectMany:(m,o)=>{const h=new Set(m.selection);for(const p of o.payload)h.has(p)||h.add(p);m.selection=Array.from(h)},unselectOne:(m,o)=>{const h=new Set(m.selection);h.has(o.payload)&&(h.delete(o.payload),m.selection=Array.from(h))},unselectMany:(m,o)=>{const h=new Set(m.selection);for(const p of o.payload)h.has(p)&&h.delete(p);m.selection=Array.from(h)},toggleOne:(m,o)=>{const h=new Set(m.selection);h.has(o.payload)?h.delete(o.payload):h.add(o.payload),m.selection=Array.from(h)},toggleMany:(m,o)=>{const h=new Set(m.selection);for(const p of o.payload)h.has(p)?h.delete(p):h.add(p);m.selection=Array.from(h)},getInitialState:m=>({...m,selection:[]})}}const tt="versioning",g=d.createAction("RESET"),M=d.createAction("RESET_PROJECT_STATE"),O=d.createAction("RESET_ORGANIZATION_STATE");_p=Symbol.toStringTag;class nc{constructor(){S(this,_p,"Promise");S(this,"_promise");S(this,"_resolve");S(this,"_reject");S(this,"_state","pending");this._resolve=null,this._reject=null,this._promise=new Promise((e,i)=>{this._resolve=e,this._reject=i})}get state(){return this._state}then(e,i){return this._promise.then(e,i)}catch(e){return this._promise.catch(e)}resolve(e){if(!this._resolve)throw new Error("No resolve callback");this._resolve(e),this._state="fulfilled"}reject(e){if(!this._reject)throw e;this._reject(e),this._state="rejected"}finally(e){throw new Error("`finally` not implemented")}}let es=!1;["true","1"].includes("".toLowerCase())&&(es=!0);function Cp(t,e){if(t===e)return!0;if(typeof t!=typeof e)return!1;const i=Object.keys(t),a=Object.keys(e),n=i.length;if(n!==a.length)return!1;for(let c=0;c<n;c++){const r=i[c];if(!Object.prototype.hasOwnProperty.call(e,r)||t[r]!==e[r])return!1}return!0}function ts(t){const e={};return function(){const i=Array.prototype.slice.call(arguments);return i in e?(es&&console.debug(`Memoization debug: Using memorized return value for ${t.toString()}(`,i,")"),e[i]):(es&&console.debug(`Memoization debug: Cache miss! Memoizing ${t.toString()}(`,i,")"),e[i]=t.apply(this,i))}}function kp(t,e){if(t.length!==e.length)return!1;for(let i=0;i<t.length;i++)if(t[i]!==e[i])return!1;return!0}const I=t=>t.length===0?ec:t,Pt=t=>Object.keys(t).length===0?tc:t,cc=ts(t=>{if(!t)return"";const e=new Date(t),i=e.getFullYear()===ss.getFullYear(),a={day:"numeric",month:"short"};return i||(a.year="numeric"),e.toLocaleDateString([],a)}),Bp=new Intl.RelativeTimeFormat([],{style:"long",numeric:"auto"}),Gp=1e3*86400,ss=new Date,$p=t=>new Date(t).toDateString()===ss.toDateString(),Lp=ts((t,e,i)=>{const a=Math.round((new Date(t).getTime()-ss.getTime())/Gp);return a<e||a>i?cc(t):Bp.format(a,"days")});function Np(t){return new Uint8Array(t).reduce((i,a)=>i+a.toString(16).padStart(2,"0"),"")}const is=async(t,e)=>{e||(e=await Xe(t));let i=t.type;if(i.includes("/")&&(i=i.split("/")[1]),!i)throw new Error(`Could not extract file type from ${t.type}`);return`${e}.${i}`};function Xe(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 r=Np(c);e(r)})},a.readAsArrayBuffer(t)})}function Hp(t){if(!t.name||!t.type||!t.size){const e="File has no name, type, and/or size";throw new Error(e)}return`${t.name}&${t.type}${t.size}`}function rc(t,e){return new File([t],e,{type:t.type})}function Wp(t,e){const i=document.createElement("a");i.setAttribute("href","data:text/plain;charset=utf-8,"+encodeURIComponent(e)),i.setAttribute("download",t),i.style.display="none",document.body.appendChild(i),i.click(),document.body.removeChild(i)}const Yp=async t=>{const e={};for(const i of t){const a=await Xe(i);e[a]={sha1:a,extension:i.name.split(".").pop()||"",file_type:i.type,size:i.size}}return Object.values(e)},dc=async t=>(await fetch(t)).blob(),Kp=t=>new Promise((e,i)=>{const a=new FileReader;a.onloadend=()=>{var n;e(((n=a.result)==null?void 0:n.toString())||"")},a.readAsDataURL(t)});function Zp(t){const e=new Blob([t]);Rp.saveAs(e,t.name)}const uc={};function Jp(t,e,i,...a){const n=uc[t];let c=!1;n?n[e]||(n[e]=!0,c=!0):(uc[t]={[e]:!0},c=!0),c&&console[i](...a)}const oc=["created_at","updated_at","index","revision"];function b(t){return{...t,uuid:Je.v4()}}function lc(t){const e={};for(const i of t)e[i.uuid]=i;return e}function Xp(t,e=void 0,i=255){let a=t.replace(/[^a-z0-9_\-.]/gi,"_").replace(/_{2,}/g,"_");if(!e){const c=t.split(".");c.length>1&&(e=c[c.length-1])}e&&!e.startsWith(".")&&(e="."+e);const n=e?e.length:0;return a.length+n>i&&(a=a.slice(0,i-n)+(e||"")),a}function Qp(t){return t.toLowerCase().replace(" ","-")}function xp(t,e=!1){return t.normalize("NFKD").toLowerCase().replace(/[^\w\s-]/g,"").trim().replace(/[-\s]+/g,e?"_":"-")}function eA(t,e){if(t.length<=e)return t;const i=t.slice(0,e-1);return i.slice(0,i.lastIndexOf(" "))+"…"}const y=t=>e=>i=>t(i,e);function hc(t,e,i){return i.findIndex(a=>a.uuid===t.uuid)===e}function tA(t,e,i){return i.findIndex(a=>a.file_sha1===t.file_sha1)===e}const sA=/^.+@.+\..+$/;function v(t){const e={...t};for(const i of[...oc,"created_by"])i in e&&delete e[i];return e}const k=P(t=>t.uuid),mc=k.getInitialState({}),as=d.createSlice({name:"agents",initialState:mc,extraReducers:t=>t.addMatcher(d.isAnyOf(g,M,O),e=>Object.assign(e,mc)),reducers:{initializeConversations:k.initialize,addConversation:k.addOne,addConversations:k.addMany,setConversation:k.setOne,setConversations:k.setMany,updateConversation:k.updateOne,updateConversations:k.updateMany,deleteConversation:k.deleteOne,deleteConversations:k.deleteMany}}),{initializeConversations:pc,addConversation:Ac,addConversations:iA,setConversation:fc,setConversations:aA,updateConversation:yc,updateConversations:nA,deleteConversation:cA,deleteConversations:rA}=as.actions,ns=t=>t.agentsReducer.instances,dA=d.createSelector([ns],t=>Object.values(t)),uA=y(d.createSelector([ns,(t,e)=>e],(t,e)=>t[e])),Sc=as.reducer,B=P(t=>t.uuid),Ic=B.getInitialState({}),cs=d.createSlice({name:"assetAttachments",initialState:Ic,extraReducers:t=>t.addMatcher(d.isAnyOf(g,M,O),e=>Object.assign(e,Ic)),reducers:{initializeAssetAttachments:B.initialize,addAssetAttachment:B.addOne,addAssetAttachments:B.addMany,setAssetAttachment:B.setOne,setAssetAttachments:B.setMany,updateAssetAttachment:B.updateOne,updateAssetAttachments:B.updateMany,deleteAssetAttachment:B.deleteOne,deleteAssetAttachments:B.deleteMany}}),{initializeAssetAttachments:rs,addAssetAttachment:oA,addAssetAttachments:ds,setAssetAttachment:Tc,setAssetAttachments:lA,updateAssetAttachment:hA,updateAssetAttachments:gc,deleteAssetAttachment:bc,deleteAssetAttachments:us}=cs.actions,Fc=t=>t.assetAttachmentReducer.instances,Pc=d.createSelector([Fc],t=>Object.values(t)),Oc=t=>e=>e.assetAttachmentReducer.instances[t],_c=y(d.createSelector([Pc,(t,e)=>e],(t,e)=>I(t.filter(({asset:i})=>e===i)))),Rc=cs.reducer,G=P(t=>t.uuid),vc=G.getInitialState({}),os=d.createSlice({name:"assetProcedureAttachments",initialState:vc,extraReducers:t=>t.addMatcher(d.isAnyOf(g,O),e=>Object.assign(e,vc)),reducers:{initializeAssetProcedureAttachments:G.initialize,addAssetProcedureAttachment:G.addOne,addAssetProcedureAttachments:G.addMany,setAssetProcedureAttachment:G.setOne,setAssetProcedureAttachments:G.setMany,updateAssetProcedureAttachment:G.updateOne,updateAssetProcedureAttachments:G.updateMany,deleteAssetProcedureAttachment:G.deleteOne,deleteAssetProcedureAttachments:G.deleteMany}}),{initializeAssetProcedureAttachments:wc,addAssetProcedureAttachment:mA,addAssetProcedureAttachments:Mc,setAssetProcedureAttachment:Ec,setAssetProcedureAttachments:pA,updateAssetProcedureAttachment:AA,updateAssetProcedureAttachments:Vc,deleteAssetProcedureAttachment:jc,deleteAssetProcedureAttachments:qc}=os.actions,zc=os.reducer,Uc=t=>t.assetProcedureAttachmentReducer.instances,Dc=d.createSelector([Uc],t=>Object.values(t)),Cc=t=>e=>e.assetProcedureAttachmentReducer.instances[t],fA=y(d.createSelector([Dc,(t,e)=>e],(t,e)=>I(t.filter(({asset_procedure:i})=>e===i)))),$=P(t=>t.uuid),kc=$.getInitialState({}),ls=d.createSlice({name:"assetProcedureFieldsAttachments",initialState:kc,extraReducers:t=>t.addMatcher(d.isAnyOf(g,O),e=>Object.assign(e,kc)),reducers:{initializeAssetProcedureFieldsAttachments:$.initialize,addAssetProcedureFieldsAttachment:$.addOne,addAssetProcedureFieldsAttachments:$.addMany,setAssetProcedureFieldsAttachment:$.setOne,setAssetProcedureFieldsAttachments:$.setMany,updateAssetProcedureFieldsAttachment:$.updateOne,updateAssetProcedureFieldsAttachments:$.updateMany,deleteAssetProcedureFieldsAttachment:$.deleteOne,deleteAssetProcedureFieldsAttachments:$.deleteMany}}),{initializeAssetProcedureFieldsAttachments:Bc,addAssetProcedureFieldsAttachment:yA,addAssetProcedureFieldsAttachments:Gc,setAssetProcedureFieldsAttachment:SA,setAssetProcedureFieldsAttachments:IA,updateAssetProcedureFieldsAttachment:TA,updateAssetProcedureFieldsAttachments:$c,deleteAssetProcedureFieldsAttachment:gA,deleteAssetProcedureFieldsAttachments:Lc}=ls.actions,Nc=t=>t.assetProcedureFieldsAttachmentReducer.instances,Hc=d.createSelector([Nc],t=>Object.values(t)),bA=y(d.createSelector([Hc,(t,e)=>e],(t,e)=>I(t.filter(i=>i.fields_revision===e)))),FA=t=>e=>e.assetProcedureFieldsAttachmentReducer.instances[t],Wc=ls.reducer,L=P(t=>t.uuid),Yc=L.getInitialState({}),hs=d.createSlice({name:"assetProcedureFields",initialState:Yc,extraReducers:t=>t.addMatcher(d.isAnyOf(g,O),e=>Object.assign(e,Yc)),reducers:{initializeAssetProcedureFields:L.initialize,addAssetProcedureFields:L.addOne,addAssetProcedureFieldsMany:L.addMany,setAssetProcedureFields:L.setOne,setAssetProcedureFieldsMany:L.setMany,updateAssetProcedureFields:L.updateOne,updateAssetProcedureFieldsMany:L.updateMany,deleteAssetProcedureFields:L.deleteOne,deleteAssetProcedureFieldsMany:L.deleteMany}}),{initializeAssetProcedureFields:Kc,addAssetProcedureFields:Zc,addAssetProcedureFieldsMany:PA,setAssetProcedureFields:OA,setAssetProcedureFieldsMany:_A,updateAssetProcedureFields:Jc,updateAssetProcedureFieldsMany:RA,deleteAssetProcedureFields:Xc,deleteAssetProcedureFieldsMany:vA}=hs.actions,Qc=t=>t.assetProcedureFieldsReducer.instances,ms=d.createSelector([Qc],t=>Object.values(t)),wA=y(d.createSelector([ms,(t,e)=>e],(t,e)=>I(t.filter(i=>i.asset_procedure===e)))),MA=y(d.createSelector([ms,(t,e)=>e],(t,e)=>t.filter(i=>i.asset_procedure===e).sort((i,a)=>i.submitted_at>a.submitted_at?-1:1)[0])),EA=t=>e=>e.assetProcedureFieldsReducer.instances[t],xc=hs.reducer,N=P(t=>t.uuid),er=N.getInitialState({}),ps=d.createSlice({name:"assetProcedureFieldValuesAttachments",initialState:er,extraReducers:t=>t.addMatcher(d.isAnyOf(g,M,O),e=>Object.assign(e,er)),reducers:{initializeAssetProcedureFieldValuesAttachments:N.initialize,addAssetProcedureFieldValuesAttachment:N.addOne,addAssetProcedureFieldValuesAttachments:N.addMany,setAssetProcedureFieldValuesAttachment:N.setOne,setAssetProcedureFieldValuesAttachments:N.setMany,updateAssetProcedureFieldValuesAttachment:N.updateOne,updateAssetProcedureFieldValuesAttachments:N.updateMany,deleteAssetProcedureFieldValuesAttachment:N.deleteOne,deleteAssetProcedureFieldValuesAttachments:N.deleteMany}}),{initializeAssetProcedureFieldValuesAttachments:tr,addAssetProcedureFieldValuesAttachment:VA,addAssetProcedureFieldValuesAttachments:Ot,setAssetProcedureFieldValuesAttachment:jA,setAssetProcedureFieldValuesAttachments:qA,updateAssetProcedureFieldValuesAttachment:zA,updateAssetProcedureFieldValuesAttachments:sr,deleteAssetProcedureFieldValuesAttachment:UA,deleteAssetProcedureFieldValuesAttachments:_t}=ps.actions,As=t=>t.assetProcedureFieldValuesAttachmentReducer.instances,ir=d.createSelector([As],t=>Object.values(t)),DA=t=>e=>e.assetProcedureFieldValuesAttachmentReducer.instances[t],ar=y(d.createSelector([As,(t,e)=>e],(t,e)=>{const i=new Set(e);return I(Object.values(t).filter(a=>i.has(a.uuid)))})),nr=y(d.createSelector([ir,(t,e)=>e],(t,e)=>I(t.filter(i=>i.field_values===e)))),cr=ps.reducer,H=P(t=>t.uuid),rr=H.getInitialState({}),fs=d.createSlice({name:"assetProcedureFieldValues",initialState:rr,extraReducers:t=>t.addMatcher(d.isAnyOf(g,M,O),e=>Object.assign(e,rr)),reducers:{initializeAssetProcedureFieldValues:H.initialize,addAssetProcedureFieldValues:H.addOne,addAssetProcedureFieldValuesMany:H.addMany,setAssetProcedureFieldValues:H.setOne,setAssetProcedureFieldValuesMany:H.setMany,updateAssetProcedureFieldValues:H.updateOne,updateAssetProcedureFieldValuesMany:H.updateMany,deleteAssetProcedureFieldValues:H.deleteOne,deleteAssetProcedureFieldValuesMany:H.deleteMany}}),{initializeAssetProcedureFieldValues:dr,addAssetProcedureFieldValues:ys,addAssetProcedureFieldValuesMany:ur,setAssetProcedureFieldValues:CA,setAssetProcedureFieldValuesMany:kA,updateAssetProcedureFieldValues:st,updateAssetProcedureFieldValuesMany:or,deleteAssetProcedureFieldValues:Ss,deleteAssetProcedureFieldValuesMany:lr}=fs.actions,hr=fs.reducer,mr=t=>t.assetProcedureFieldValuesReducer.instances,Is=d.createSelector([mr],t=>Object.values(t)),BA=y(d.createSelector([Is,(t,e)=>e],(t,e)=>I(t.filter(i=>i.asset===e)))),GA=y(d.createSelector([Is,(t,e)=>e],(t,e)=>I(t.filter(i=>i.asset_procedure_instance===e)))),Ts=t=>e=>e.assetProcedureFieldValuesReducer.instances[t],W=P(t=>t.uuid),pr=W.getInitialState({}),gs=d.createSlice({name:"assetProcedureInstances",initialState:pr,extraReducers:t=>t.addMatcher(d.isAnyOf(g,M,O),e=>Object.assign(e,pr)),reducers:{initializeAssetProcedureInstances:W.initialize,addAssetProcedureInstance:W.addOne,addAssetProcedureInstances:W.addMany,setAssetProcedureInstance:W.setOne,setAssetProcedureInstances:W.setMany,updateAssetProcedureInstance:W.updateOne,updateAssetProcedureInstances:W.updateMany,deleteAssetProcedureInstance:W.deleteOne,deleteAssetProcedureInstances:W.deleteMany}}),{initializeAssetProcedureInstances:Ar,addAssetProcedureInstance:bs,addAssetProcedureInstances:fr,updateAssetProcedureInstance:it,updateAssetProcedureInstances:$A,deleteAssetProcedureInstance:Fs,deleteAssetProcedureInstances:yr,setAssetProcedureInstance:LA,setAssetProcedureInstances:NA}=gs.actions,Sr=gs.reducer,Ps=t=>t.assetProcedureInstanceReducer.instances,Os=d.createSelector([Ps],t=>Object.values(t)),Ir=y(d.createSelector([Os,(t,e)=>e],(t,e)=>I(t.filter(i=>i.asset_procedure===e)))),HA=y(d.createSelector([Os,(t,e)=>e],(t,e)=>I(t.filter(i=>i.asset_type===e)))),_s=t=>e=>e.assetProcedureInstanceReducer.instances[t],WA=y(d.createSelector([Ps,(t,e)=>e],(t,e)=>{const i=[];for(const a of e){const n=t[a];n&&i.push(n)}return I(i)})),Y=P(t=>t.uuid),Tr=Y.getInitialState({}),Rs=d.createSlice({name:"assetProcedures",initialState:Tr,extraReducers:t=>t.addMatcher(d.isAnyOf(g,O),e=>Object.assign(e,Tr)),reducers:{initializeAssetProcedures:Y.initialize,addAssetProcedure:Y.addOne,addAssetProcedures:Y.addMany,setAssetProcedure:Y.setOne,setAssetProcedures:Y.setMany,updateAssetProcedure:Y.updateOne,updateAssetProcedures:Y.updateMany,deleteAssetProcedure:Y.deleteOne,deleteAssetProcedures:Y.deleteMany}}),{initializeAssetProcedures:gr,addAssetProcedure:vs,addAssetProcedures:YA,updateAssetProcedure:at,updateAssetProcedures:KA,deleteAssetProcedure:ws,deleteAssetProcedures:ZA,setAssetProcedure:JA,setAssetProcedures:XA}=Rs.actions,br=Rs.reducer,Ms=t=>t.assetProcedureReducer.instances,Fr=d.createSelector([Ms],t=>Object.values(t)),Es=t=>e=>e.assetProcedureReducer.instances[t],QA=y(d.createSelector([Ms,(t,e)=>e],(t,e)=>{const i=[];for(const a of e){const n=t[a];n&&i.push(n)}return I(i)})),xA=y(d.createSelector([Fr,(t,e)=>e],(t,e)=>I(t.filter(i=>i.organization===e)))),K=P(t=>t.uuid),Pr=K.getInitialState({}),Vs=d.createSlice({name:"assetProcedureStepFieldsAttachments",initialState:Pr,extraReducers:t=>t.addMatcher(d.isAnyOf(g,O),e=>Object.assign(e,Pr)),reducers:{initializeAssetProcedureStepFieldsAttachments:K.initialize,addAssetProcedureStepFieldsAttachment:K.addOne,addAssetProcedureStepFieldsAttachments:K.addMany,setAssetProcedureStepFieldsAttachment:K.setOne,setAssetProcedureStepFieldsAttachments:K.setMany,updateAssetProcedureStepFieldsAttachment:K.updateOne,updateAssetProcedureStepFieldsAttachments:K.updateMany,deleteAssetProcedureStepFieldsAttachment:K.deleteOne,deleteAssetProcedureStepFieldsAttachments:K.deleteMany}}),{initializeAssetProcedureStepFieldsAttachments:Or,addAssetProcedureStepFieldsAttachment:ef,addAssetProcedureStepFieldsAttachments:_r,setAssetProcedureStepFieldsAttachment:tf,setAssetProcedureStepFieldsAttachments:sf,updateAssetProcedureStepFieldsAttachment:af,updateAssetProcedureStepFieldsAttachments:Rr,deleteAssetProcedureStepFieldsAttachment:nf,deleteAssetProcedureStepFieldsAttachments:vr}=Vs.actions,wr=t=>t.assetProcedureStepFieldsAttachmentReducer.instances,Mr=d.createSelector([wr],t=>Object.values(t)),cf=y(d.createSelector([Mr,(t,e)=>e],(t,e)=>I(t.filter(i=>i.fields_revision===e)))),rf=t=>e=>e.assetProcedureStepFieldsAttachmentReducer.instances[t],Er=Vs.reducer,Z=P(t=>t.uuid),Vr=Z.getInitialState({}),js=d.createSlice({name:"assetProcedureStepFields",initialState:Vr,extraReducers:t=>t.addMatcher(d.isAnyOf(g,O),e=>Object.assign(e,Vr)),reducers:{initializeAssetProcedureStepFields:Z.initialize,addAssetProcedureStepFields:Z.addOne,addAssetProcedureStepFieldsMany:Z.addMany,setAssetProcedureStepFields:Z.setOne,setAssetProcedureStepFieldsMany:Z.setMany,updateAssetProcedureStepFields:Z.updateOne,updateAssetProcedureStepFieldsMany:Z.updateMany,deleteAssetProcedureStepFields:Z.deleteOne,deleteAssetProcedureStepFieldsMany:Z.deleteMany}}),{initializeAssetProcedureStepFields:jr,addAssetProcedureStepFields:qs,addAssetProcedureStepFieldsMany:df,setAssetProcedureStepFields:uf,setAssetProcedureStepFieldsMany:of,updateAssetProcedureStepFields:nt,updateAssetProcedureStepFieldsMany:lf,deleteAssetProcedureStepFields:zs,deleteAssetProcedureStepFieldsMany:hf}=js.actions,Us=t=>t.assetProcedureStepFieldsReducer.instances,Ds=d.createSelector([Us],t=>Object.values(t)),mf=y(d.createSelector([Ds,(t,e)=>e],(t,e)=>I(t.filter(i=>i.asset_procedure_step===e)))),pf=y(d.createSelector([Ds,(t,e)=>e],(t,e)=>t.filter(i=>i.asset_procedure_step===e).sort((i,a)=>i.submitted_at>a.submitted_at?-1:1)[0])),Af=d.createSelector([Us],t=>{const e={};for(const i of Object.values(t)){const a=e[i.asset_procedure_step];(!a||a.submitted_at<i.submitted_at)&&(e[i.asset_procedure_step]=i)}return e}),ff=t=>e=>e.assetProcedureStepFieldsReducer.instances[t],qr=js.reducer,J=P(t=>t.uuid),zr=J.getInitialState({}),Cs=d.createSlice({name:"assetProcedureStepFieldValuesAttachments",initialState:zr,extraReducers:t=>t.addMatcher(d.isAnyOf(g,M,O),e=>Object.assign(e,zr)),reducers:{initializeAssetProcedureStepFieldValuesAttachments:J.initialize,addAssetProcedureStepFieldValuesAttachment:J.addOne,addAssetProcedureStepFieldValuesAttachments:J.addMany,setAssetProcedureStepFieldValuesAttachment:J.setOne,setAssetProcedureStepFieldValuesAttachments:J.setMany,updateAssetProcedureStepFieldValuesAttachment:J.updateOne,updateAssetProcedureStepFieldValuesAttachments:J.updateMany,deleteAssetProcedureStepFieldValuesAttachment:J.deleteOne,deleteAssetProcedureStepFieldValuesAttachments:J.deleteMany}}),{initializeAssetProcedureStepFieldValuesAttachments:Ur,addAssetProcedureStepFieldValuesAttachment:yf,addAssetProcedureStepFieldValuesAttachments:Rt,setAssetProcedureStepFieldValuesAttachment:Sf,setAssetProcedureStepFieldValuesAttachments:If,updateAssetProcedureStepFieldValuesAttachment:Tf,updateAssetProcedureStepFieldValuesAttachments:Dr,deleteAssetProcedureStepFieldValuesAttachment:gf,deleteAssetProcedureStepFieldValuesAttachments:vt}=Cs.actions,ks=t=>t.assetProcedureStepFieldValuesAttachmentReducer.instances,Cr=d.createSelector([ks],t=>Object.values(t)),bf=t=>e=>e.assetProcedureStepFieldValuesAttachmentReducer.instances[t],kr=y(d.createSelector([ks,(t,e)=>e],(t,e)=>{const i=new Set(e);return I(Object.values(t).filter(a=>i.has(a.uuid)))})),Br=y(d.createSelector([Cr,(t,e)=>e],(t,e)=>I(t.filter(i=>i.field_values===e)))),Gr=Cs.reducer,X=P(t=>t.uuid),$r=X.getInitialState({}),Bs=d.createSlice({name:"assetProcedureStepFieldValues",initialState:$r,extraReducers:t=>t.addMatcher(d.isAnyOf(g,M,O),e=>Object.assign(e,$r)),reducers:{initializeAssetProcedureStepFieldValues:X.initialize,addAssetProcedureStepFieldValues:X.addOne,addAssetProcedureStepFieldValuesMany:X.addMany,setAssetProcedureStepFieldValues:X.setOne,setAssetProcedureStepFieldValuesMany:X.setMany,updateAssetProcedureStepFieldValues:X.updateOne,updateAssetProcedureStepFieldValuesMany:X.updateMany,deleteAssetProcedureStepFieldValues:X.deleteOne,deleteAssetProcedureStepFieldValuesMany:X.deleteMany}}),{initializeAssetProcedureStepFieldValues:Lr,addAssetProcedureStepFieldValues:Gs,addAssetProcedureStepFieldValuesMany:Nr,setAssetProcedureStepFieldValues:Ff,setAssetProcedureStepFieldValuesMany:Pf,updateAssetProcedureStepFieldValues:ct,updateAssetProcedureStepFieldValuesMany:Hr,deleteAssetProcedureStepFieldValues:$s,deleteAssetProcedureStepFieldValuesMany:Wr}=Bs.actions,Yr=t=>t.assetProcedureStepFieldValuesReducer.instances,wt=d.createSelector([Yr],t=>Object.values(t)),Of=y(d.createSelector([wt,(t,e)=>e],(t,e)=>I(t.filter(i=>i.asset===e)))),_f=y(d.createSelector([wt,(t,e)=>e],(t,e)=>I(t.filter(i=>i.asset_procedure_instance===e)))),Rf=y(d.createSelector([wt,(t,e)=>e],(t,e)=>I(t.filter(i=>i.asset_procedure_step===e)))),Ls=t=>e=>e.assetProcedureStepFieldValuesReducer.instances[t],Kr=Bs.reducer,Q=P(t=>t.uuid),Zr=Q.getInitialState({}),Ns=d.createSlice({name:"assetProcedureSteps",initialState:Zr,extraReducers:t=>t.addMatcher(d.isAnyOf(g,O),e=>Object.assign(e,Zr)),reducers:{initializeAssetProcedureSteps:Q.initialize,setAssetProcedureStep:Q.setOne,setAssetProcedureSteps:Q.setMany,addAssetProcedureStep:Q.addOne,addAssetProcedureSteps:Q.addMany,updateAssetProcedureStep:Q.updateOne,updateAssetProcedureSteps:Q.updateMany,deleteAssetProcedureStep:Q.deleteOne,deleteAssetProcedureSteps:Q.deleteMany}}),{initializeAssetProcedureSteps:Jr,setAssetProcedureStep:Xr,setAssetProcedureSteps:vf,addAssetProcedureStep:Hs,addAssetProcedureSteps:wf,updateAssetProcedureStep:Mt,updateAssetProcedureSteps:Mf,deleteAssetProcedureStep:Ws,deleteAssetProcedureSteps:Ef}=Ns.actions,Qr=Ns.reducer,Et=t=>t.assetProcedureStepReducer.instances,Ys=t=>e=>e.assetProcedureStepReducer.instances[t],xr=d.createSelector([Et],t=>Object.values(t)),Vf=y(d.createSelector([Et,(t,e)=>e],(t,e)=>{const i={};for(const[a,n]of Object.entries(t))n.asset_procedure===e&&(i[a]=n);return Pt(i)})),jf=y(d.createSelector([xr,(t,e)=>e],(t,e)=>I(t.filter(i=>i.asset_procedure===e)))),qf=y(d.createSelector([Et,(t,e)=>e],(t,e)=>{const i=[];for(const a of e){const n=t[a];n?i.push(n):console.warn("selectAssetProcedureStepsByIds: No step exists with the id",a)}return I(i)})),x=P(t=>t.uuid),ed=x.getInitialState({}),Ks=d.createSlice({name:"assets",initialState:ed,extraReducers:t=>t.addMatcher(d.isAnyOf(g,M,O),e=>Object.assign(e,ed)),reducers:{initializeAssets:x.initialize,addAsset:x.addOne,addAssets:x.addMany,setAsset:x.setOne,setAssets:x.setMany,updateAsset:x.updateOne,updateAssets:x.updateMany,deleteAsset:x.deleteOne,deleteAssets:x.deleteMany}}),{initializeAssets:td,addAsset:Zs,addAssets:Vt,updateAsset:rt,updateAssets:zf,deleteAsset:Js,deleteAssets:Xs,setAsset:Uf,setAssets:Df}=Ks.actions,Qs=t=>t.assetReducer.instances,sd=d.createSelector([Qs],t=>I(Object.values(t))),xs=y(d.createSelector([sd,(t,e)=>e],(t,e)=>I(t.filter(i=>i.asset_type===e)))),ei=t=>e=>e.assetReducer.instances[t],id=y(d.createSelector([Qs,(t,e)=>e],(t,e)=>{const i=[];for(const a of e){const n=t[a];n&&i.push(n)}return I(i)})),Cf=t=>e=>xs(t)(e).length,ad=Ks.reducer,ee=P(t=>t.uuid),nd=ee.getInitialState({}),ti=d.createSlice({name:"assetStageCompletions",initialState:nd,extraReducers:t=>t.addMatcher(d.isAnyOf(g,M,O),e=>Object.assign(e,nd)),reducers:{initializeAssetStageCompletions:ee.initialize,addAssetStageCompletion:ee.addOne,addAssetStageCompletions:ee.addMany,setAssetStageCompletion:ee.setOne,setAssetStageCompletions:ee.setMany,updateAssetStageCompletion:ee.updateOne,updateAssetStageCompletions:ee.updateMany,deleteAssetStageCompletion:ee.deleteOne,deleteAssetStageCompletions:ee.deleteMany}}),{initializeAssetStageCompletions:cd,addAssetStageCompletion:si,addAssetStageCompletions:ii,setAssetStageCompletion:kf,setAssetStageCompletions:Bf,updateAssetStageCompletion:rd,updateAssetStageCompletions:dd,deleteAssetStageCompletion:ai,deleteAssetStageCompletions:ni}=ti.actions,ud=ti.reducer,ci=t=>t.assetStageCompletionReducer.instances,Gf=d.createSelector([ci],t=>Object.values(t)),od=t=>e=>e.assetStageCompletionReducer.instances[t],ld=y(d.createSelector([ci,(t,e)=>e],(t,e)=>{const i=new Set(e);return I(Object.values(t).filter(a=>i.has(a.uuid)))})),te=P(t=>t.uuid),hd=te.getInitialState({}),ri=d.createSlice({name:"assetStages",initialState:hd,extraReducers:t=>t.addMatcher(d.isAnyOf(g,O),e=>Object.assign(e,hd)),reducers:{initializeAssetStages:te.initialize,setAssetStage:te.setOne,setAssetStages:te.setMany,addAssetStage:te.addOne,addAssetStages:te.addMany,updateAssetStage:te.updateOne,updateAssetStages:te.updateMany,deleteAssetStage:te.deleteOne,deleteAssetStages:te.deleteMany}}),{initializeAssetStages:md,setAssetStage:pd,setAssetStages:$f,addAssetStage:di,addAssetStages:Lf,updateAssetStage:jt,updateAssetStages:Nf,deleteAssetStage:ui,deleteAssetStages:Hf}=ri.actions,Ad=ri.reducer,qt=t=>t.assetStageReducer.instances,oi=t=>e=>e.assetStageReducer.instances[t],fd=d.createSelector([qt],t=>Object.values(t)),Wf=y(d.createSelector([qt,(t,e)=>e],(t,e)=>{const i={};for(const[a,n]of Object.entries(t))n.asset_procedure===e&&(i[a]=n);return Pt(i)})),Yf=y(d.createSelector([fd,(t,e)=>e],(t,e)=>I(t.filter(i=>i.asset_procedure===e)))),Kf=y(d.createSelector([qt,(t,e)=>e],(t,e)=>{const i=[];for(const a of e){const n=t[a];n?i.push(n):console.warn("selectStagesFromStageIds: No stage exists with the id",a)}return I(i)})),se=P(t=>t.uuid),yd=se.getInitialState({}),li=d.createSlice({name:"assetTypeAttachments",initialState:yd,extraReducers:t=>t.addMatcher(d.isAnyOf(g,O),e=>Object.assign(e,yd)),reducers:{initializeAssetTypeAttachments:se.initialize,addAssetTypeAttachment:se.addOne,addAssetTypeAttachments:se.addMany,setAssetTypeAttachment:se.setOne,setAssetTypeAttachments:se.setMany,updateAssetTypeAttachment:se.updateOne,updateAssetTypeAttachments:se.updateMany,deleteAssetTypeAttachment:se.deleteOne,deleteAssetTypeAttachments:se.deleteMany}}),{initializeAssetTypeAttachments:Sd,addAssetTypeAttachment:Zf,addAssetTypeAttachments:hi,setAssetTypeAttachment:Id,setAssetTypeAttachments:Jf,updateAssetTypeAttachment:Xf,updateAssetTypeAttachments:Td,deleteAssetTypeAttachment:gd,deleteAssetTypeAttachments:mi}=li.actions,bd=t=>t.assetTypeAttachmentReducer.instances,Fd=d.createSelector([bd],t=>Object.values(t)),Pd=t=>e=>e.assetTypeAttachmentReducer.instances[t],Od=y(d.createSelector([Fd,(t,e)=>e],(t,e)=>I(t.filter(({asset_type:i})=>e===i)))),_d=li.reducer,ie=P(t=>t.uuid),Rd=ie.getInitialState({}),pi=d.createSlice({name:"assetTypeFieldsAttachments",initialState:Rd,extraReducers:t=>t.addMatcher(d.isAnyOf(g,O),e=>Object.assign(e,Rd)),reducers:{initializeAssetTypeFieldsAttachments:ie.initialize,addAssetTypeFieldsAttachment:ie.addOne,addAssetTypeFieldsAttachments:ie.addMany,setAssetTypeFieldsAttachment:ie.setOne,setAssetTypeFieldsAttachments:ie.setMany,updateAssetTypeFieldsAttachment:ie.updateOne,updateAssetTypeFieldsAttachments:ie.updateMany,deleteAssetTypeFieldsAttachment:ie.deleteOne,deleteAssetTypeFieldsAttachments:ie.deleteMany}}),{initializeAssetTypeFieldsAttachments:vd,addAssetTypeFieldsAttachment:Qf,addAssetTypeFieldsAttachments:wd,setAssetTypeFieldsAttachment:xf,setAssetTypeFieldsAttachments:ey,updateAssetTypeFieldsAttachment:ty,updateAssetTypeFieldsAttachments:Md,deleteAssetTypeFieldsAttachment:sy,deleteAssetTypeFieldsAttachments:Ed}=pi.actions,Vd=t=>t.assetTypeFieldsAttachmentReducer.instances,jd=d.createSelector([Vd],t=>Object.values(t)),iy=y(d.createSelector([jd,(t,e)=>e],(t,e)=>I(t.filter(i=>i.fields_revision===e)))),ay=t=>e=>e.assetTypeFieldsAttachmentReducer.instances[t],qd=pi.reducer,ae=P(t=>t.uuid),zd=ae.getInitialState({}),Ai=d.createSlice({name:"assetTypeFields",initialState:zd,extraReducers:t=>t.addMatcher(d.isAnyOf(g,O),e=>Object.assign(e,zd)),reducers:{initializeAssetTypeFields:ae.initialize,addAssetTypeFields:ae.addOne,addAssetTypeFieldsMany:ae.addMany,setAssetTypeFields:ae.setOne,setAssetTypeFieldsMany:ae.setMany,updateAssetTypeFields:ae.updateOne,updateAssetTypeFieldsMany:ae.updateMany,deleteAssetTypeFields:ae.deleteOne,deleteAssetTypeFieldsMany:ae.deleteMany}}),{initializeAssetTypeFields:Ud,addAssetTypeFields:Dd,addAssetTypeFieldsMany:ny,setAssetTypeFields:cy,setAssetTypeFieldsMany:ry,updateAssetTypeFields:Cd,updateAssetTypeFieldsMany:dy,deleteAssetTypeFields:kd,deleteAssetTypeFieldsMany:uy}=Ai.actions,Bd=t=>t.assetTypeFieldsReducer.instances,zt=d.createSelector([Bd],t=>Object.values(t)),oy=y(d.createSelector([zt,(t,e)=>e],(t,e)=>I(t.filter(i=>i.asset_type===e)))),ly=y(d.createSelector([zt,(t,e)=>e],(t,e)=>t.filter(i=>i.asset_type===e).sort((i,a)=>i.submitted_at>a.submitted_at?-1:1)[0])),hy=t=>e=>e.assetTypeFieldsReducer.instances[t],Gd=Ai.reducer,ne=P(t=>t.uuid),$d=ne.getInitialState({}),fi=d.createSlice({name:"assetTypeFieldValuesAttachments",initialState:$d,extraReducers:t=>t.addMatcher(d.isAnyOf(g,M,O),e=>Object.assign(e,$d)),reducers:{initializeAssetTypeFieldValuesAttachments:ne.initialize,addAssetTypeFieldValuesAttachment:ne.addOne,addAssetTypeFieldValuesAttachments:ne.addMany,setAssetTypeFieldValuesAttachment:ne.setOne,setAssetTypeFieldValuesAttachments:ne.setMany,updateAssetTypeFieldValuesAttachment:ne.updateOne,updateAssetTypeFieldValuesAttachments:ne.updateMany,deleteAssetTypeFieldValuesAttachment:ne.deleteOne,deleteAssetTypeFieldValuesAttachments:ne.deleteMany}}),{initializeAssetTypeFieldValuesAttachments:Ld,addAssetTypeFieldValuesAttachment:my,addAssetTypeFieldValuesAttachments:Ut,setAssetTypeFieldValuesAttachment:py,setAssetTypeFieldValuesAttachments:Ay,updateAssetTypeFieldValuesAttachment:fy,updateAssetTypeFieldValuesAttachments:Nd,deleteAssetTypeFieldValuesAttachment:yy,deleteAssetTypeFieldValuesAttachments:Dt}=fi.actions,yi=t=>t.assetTypeFieldValuesAttachmentReducer.instances,Hd=d.createSelector([yi],t=>Object.values(t)),Sy=t=>e=>e.assetTypeFieldValuesAttachmentReducer.instances[t],Wd=y(d.createSelector([yi,(t,e)=>e],(t,e)=>{const i=new Set(e);return I(Object.values(t).filter(a=>i.has(a.uuid)))})),Yd=y(d.createSelector([Hd,(t,e)=>e],(t,e)=>I(t.filter(i=>i.field_values===e)))),Kd=fi.reducer,ce=P(t=>t.uuid),Zd=ce.getInitialState({}),Si=d.createSlice({name:"assetTypeFieldValues",initialState:Zd,extraReducers:t=>t.addMatcher(d.isAnyOf(g,M,O),e=>Object.assign(e,Zd)),reducers:{initializeAssetTypeFieldValues:ce.initialize,addAssetTypeFieldValues:ce.addOne,addAssetTypeFieldValuesMany:ce.addMany,setAssetTypeFieldValues:ce.setOne,setAssetTypeFieldValuesMany:ce.setMany,updateAssetTypeFieldValues:ce.updateOne,updateAssetTypeFieldValuesMany:ce.updateMany,deleteAssetTypeFieldValues:ce.deleteOne,deleteAssetTypeFieldValuesMany:ce.deleteMany}}),{initializeAssetTypeFieldValues:Jd,addAssetTypeFieldValues:Ii,addAssetTypeFieldValuesMany:Xd,setAssetTypeFieldValues:Iy,setAssetTypeFieldValuesMany:Ty,updateAssetTypeFieldValues:dt,updateAssetTypeFieldValuesMany:Qd,deleteAssetTypeFieldValues:Ti,deleteAssetTypeFieldValuesMany:xd}=Si.actions,eu=t=>t.assetTypeFieldValuesReducer.instances,gi=d.createSelector([eu],t=>Object.values(t)),gy=y(d.createSelector([gi,(t,e)=>e],(t,e)=>I(t.filter(i=>i.asset===e)))),by=y(d.createSelector([zt,gi,(t,e)=>e],(t,e,i)=>{const a=new Set(t.filter(n=>n.asset_type===i).map(n=>n.uuid));return I(e.filter(n=>a.has(n.fields_revision)))})),bi=t=>e=>e.assetTypeFieldValuesReducer.instances[t],tu=Si.reducer,re=P(t=>t.uuid),su=re.getInitialState({}),Fi=d.createSlice({name:"assetTypeIdentifiers",initialState:su,extraReducers:t=>t.addMatcher(d.isAnyOf(g,O),e=>Object.assign(e,su)),reducers:{initializeAssetTypeIdentifiers:re.initialize,addAssetTypeIdentifier:re.addOne,addAssetTypeIdentifiers:re.addMany,setAssetTypeIdentifier:re.setOne,setAssetTypeIdentifiers:re.setMany,updateAssetTypeIdentifier:re.updateOne,updateAssetTypeIdentifiers:re.updateMany,deleteAssetTypeIdentifier:re.deleteOne,deleteAssetTypeIdentifiers:re.deleteMany}}),{initializeAssetTypeIdentifiers:iu,addAssetTypeIdentifier:Pi,addAssetTypeIdentifiers:Fy,setAssetTypeIdentifier:Py,setAssetTypeIdentifiers:Oy,updateAssetTypeIdentifier:ut,updateAssetTypeIdentifiers:_y,deleteAssetTypeIdentifier:Oi,deleteAssetTypeIdentifiers:Ry}=Fi.actions,au=t=>t.assetTypeIdentifierReducer.instances,nu=d.createSelector([au],t=>Object.values(t)),_i=t=>e=>e.assetTypeIdentifierReducer.instances[t],vy=y(d.createSelector([nu,(t,e)=>e],(t,e)=>I(t.filter(i=>i.asset_type===e)))),cu=Fi.reducer,de=P(t=>t.uuid),ru=de.getInitialState({}),Ri=d.createSlice({name:"assetTypeIdentifierValues",initialState:ru,extraReducers:t=>t.addMatcher(d.isAnyOf(g,M,O),e=>Object.assign(e,ru)),reducers:{initializeAssetTypeIdentifierValues:de.initialize,addAssetTypeIdentifierValue:de.addOne,addAssetTypeIdentifierValues:de.addMany,setAssetTypeIdentifierValue:de.setOne,setAssetTypeIdentifierValues:de.setMany,updateAssetTypeIdentifierValue:de.updateOne,updateAssetTypeIdentifierValues:de.updateMany,deleteAssetTypeIdentifierValue:de.deleteOne,deleteAssetTypeIdentifierValues:de.deleteMany}}),{initializeAssetTypeIdentifierValues:du,addAssetTypeIdentifierValue:vi,addAssetTypeIdentifierValues:wy,setAssetTypeIdentifierValue:My,setAssetTypeIdentifierValues:Ey,updateAssetTypeIdentifierValue:ot,updateAssetTypeIdentifierValues:Vy,deleteAssetTypeIdentifierValue:wi,deleteAssetTypeIdentifierValues:jy}=Ri.actions,uu=t=>t.assetTypeIdentifierValueReducer.instances,Mi=d.createSelector([uu],t=>Object.values(t)),Ei=t=>e=>e.assetTypeIdentifierValueReducer.instances[t],qy=y(d.createSelector([Mi,(t,e)=>e],(t,e)=>I(t.filter(i=>i.asset===e)))),zy=y(d.createSelector([Mi,(t,e)=>e],(t,e)=>I(t.filter(i=>i.asset_type_identifier===e)))),ou=Ri.reducer,ue=P(t=>t.uuid),lu=ue.getInitialState({}),Vi=d.createSlice({name:"assetTypes",initialState:lu,extraReducers:t=>t.addMatcher(d.isAnyOf(g,O),e=>Object.assign(e,lu)),reducers:{initializeAssetTypes:ue.initialize,setAssetType:ue.setOne,setAssetTypes:ue.setMany,addAssetType:ue.addOne,addAssetTypes:ue.addMany,updateAssetType:ue.updateOne,updateAssetTypes:ue.updateMany,deleteAssetType:ue.deleteOne,deleteAssetTypes:ue.deleteMany}}),{initializeAssetTypes:hu,setAssetType:Uy,setAssetTypes:Dy,addAssetType:ji,addAssetTypes:Cy,updateAssetType:lt,updateAssetTypes:ky,deleteAssetType:qi,deleteAssetTypes:By}=Vi.actions,zi=t=>t.assetTypeReducer.instances,mu=d.createSelector([zi],t=>Object.values(t)),Ui=t=>e=>e.assetTypeReducer.instances[t],Gy=y(d.createSelector([zi,(t,e)=>e],(t,e)=>{const i=[];for(const a of e){const n=t[a];n?i.push(n):console.warn("selectAssetTypesByIds: No assetType exists with the id",a)}return I(i)})),$y=y(d.createSelector([mu,(t,e)=>e],(t,e)=>I(t.filter(i=>i.organization===e)))),pu=Vi.reducer,Au={accessToken:"",refreshToken:"",isLoggedIn:!1},Ct=d.createSlice({name:"auth",initialState:Au,extraReducers:t=>t.addCase(g,e=>Object.assign(e,Au)),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||Ct.caseReducers.clearTokens(t),t.isLoggedIn=e.payload}}}),{setTokens:Ly,clearTokens:Ny,setLoggedIn:fu}=Ct.actions,Hy=t=>t.authReducer.accessToken,Wy=t=>t.authReducer.isLoggedIn,yu=Ct.reducer,oe=P(t=>t.uuid),Su=oe.getInitialState({}),Di=d.createSlice({name:"categories",initialState:Su,extraReducers:t=>t.addMatcher(d.isAnyOf(g,O),e=>Object.assign(e,Su)),reducers:{initializeCategories:oe.initialize,addCategory:oe.addOne,addCategories:oe.addMany,setCategory:oe.setOne,setCategories:oe.setMany,updateCategory:oe.updateOne,updateCategories:oe.updateMany,deleteCategory:oe.deleteOne,deleteCategories:oe.deleteMany}}),{initializeCategories:Iu,addCategory:Ci,addCategories:Yy,setCategory:Ky,setCategories:Zy,updateCategory:Tu,updateCategories:Jy,deleteCategory:gu,deleteCategories:Xy}=Di.actions,ki=t=>t.categoryReducer.instances,bu=d.createSelector([ki],t=>Object.values(t)),Bi=t=>e=>e.categoryReducer.instances[t],Qy=y(d.createSelector([ki,(t,e)=>e],(t,e)=>{const i=[];for(const a of e){const n=t[a];n?i.push(n):console.warn("selectCategoryByIds: No category exists with the id",a)}return I(i)})),xy=y(d.createSelector([bu,(t,e)=>e],(t,e)=>I(t.filter(i=>i.project===e)))),Fu=Di.reducer,le=P(t=>t.uuid),Pu=le.getInitialState({}),Gi=d.createSlice({name:"documentAttachments",initialState:Pu,extraReducers:t=>t.addCase(g,e=>Object.assign(e,Pu)),reducers:{initializeDocumentAttachments:le.initialize,addDocumentAttachment:le.addOne,addDocumentAttachments:le.addMany,setDocumentAttachment:le.setOne,setDocumentAttachments:le.setMany,updateDocumentAttachment:le.updateOne,updateDocumentAttachments:le.updateMany,deleteDocumentAttachment:le.deleteOne,deleteDocumentAttachments:le.deleteMany}}),{initializeDocumentAttachments:Ou,addDocumentAttachment:eS,addDocumentAttachments:_u,setDocumentAttachment:Ru,setDocumentAttachments:tS,updateDocumentAttachment:sS,updateDocumentAttachments:vu,deleteDocumentAttachment:wu,deleteDocumentAttachments:Mu}=Gi.actions,Eu=t=>t.documentAttachmentReducer.instances,Vu=d.createSelector([Eu],t=>Object.values(t)),ju=t=>e=>e.documentAttachmentReducer.instances[t],iS=y(d.createSelector([Vu,(t,e)=>e],(t,e)=>I(t.filter(({document:i})=>e===i)))),qu=Gi.reducer,zu={documents:{}},$i=d.createSlice({name:"documents",initialState:zu,extraReducers:t=>t.addCase(g,e=>{Object.assign(e,zu)}),reducers:{setDocuments:(t,e)=>{if(e.payload.filter(hc).length!==e.payload.length)throw new Error("Tried to use setIssues reducer with duplicate ID's");t.documents=lc(e.payload)},addDocuments:(t,e)=>{for(const i of e.payload)if(i.uuid in t.documents)throw new Error(`attempting to add a document with uuid ${i.uuid} which already exists in state.documents.`);for(const i of e.payload){if(i.parent_document&&t.documents[i.parent_document]){const a=t.documents[i.parent_document];t.documents[i.parent_document]={...a,children_documents:[...a.children_documents,i.uuid]}}t.documents[i.uuid]=i}},updateDocuments:(t,e)=>{for(const i of e.payload)if(!(i.uuid in t.documents))throw new Error(`attempting to update a document with uuid ${i.uuid} which doesn't exists in state.documents.`);for(const i of e.payload){const a=t.documents[i.uuid];if(i.organization!==void 0&&i.organization!==a.organization)throw new Error("organization cannot be updated");if(i.project!==void 0&&i.project!==a.project)throw new Error("project cannot be updated");t.documents[i.uuid]={...a,...i}}},removeDocuments:(t,e)=>{for(const i of e.payload)if(!(i in t.documents))throw new Error(`attempting to delete a document with uuid ${i} which doesn't exists in state.documents.`);for(const i of e.payload){const a=t.documents[i];if(a.parent_document&&t.documents[a.parent_document]){const n=t.documents[a.parent_document];t.documents[a.parent_document]={...n,children_documents:n.children_documents.filter(c=>c!==a.uuid)}}delete t.documents[i]}}}}),{setDocuments:Uu,addDocuments:Du,updateDocuments:Qe,removeDocuments:Li}=$i.actions,kt=t=>t.documentsReducer.documents,Ni=d.createSelector([kt],t=>Object.values(t)),Cu=t=>e=>e.documentsReducer.documents[t],aS=y(d.createSelector([kt,(t,e)=>e],(t,e)=>{const i=[];for(const a of e){const n=t[a];n?i.push(n):console.warn("selectDocumentByIds: No document exists with the id",a)}return I(i)})),nS=y(d.createSelector([Ni,(t,e)=>e],(t,e)=>t.filter(i=>i.project===e))),cS=y(d.createSelector([Ni,(t,e)=>e],(t,e)=>t.filter(i=>i.organization===e))),ku=$i.reducer,he=P(t=>t.uuid),Bu=he.getInitialState({}),Hi=d.createSlice({name:"emailDomains",initialState:Bu,extraReducers:t=>t.addMatcher(d.isAnyOf(g,O),e=>Object.assign(e,Bu)),reducers:{initializeEmailDomains:he.initialize,addEmailDomain:he.addOne,addEmailDomains:he.addMany,setEmailDomain:he.setOne,setEmailDomains:he.setMany,updateEmailDomain:he.updateOne,updateEmailDomains:he.updateMany,deleteEmailDomain:he.deleteOne,deleteEmailDomains:he.deleteMany}}),{initializeEmailDomains:Gu,addEmailDomain:$u,addEmailDomains:rS,setEmailDomain:dS,setEmailDomains:uS,updateEmailDomain:oS,updateEmailDomains:lS,deleteEmailDomain:Lu,deleteEmailDomains:hS}=Hi.actions,Nu=t=>t.emailDomainsReducer.instances,Hu=d.createSelector([Nu],t=>Object.values(t)),mS=y(d.createSelector([Hu,(t,e)=>e],(t,e)=>I(t.filter(i=>i.organization===e)))),Wu=Hi.reducer,Yu={s3Urls:{}},Ku=1e3*60*60,pS=Ku*24*7,Wi=d.createSlice({name:"file",initialState:Yu,extraReducers:t=>t.addCase(g,e=>Object.assign(e,Yu)),reducers:{setUploadUrl:(t,e)=>{const{url:i,fields:a,sha1:n}=e.payload,c=new Date,r=new Date(c.getTime()+pS);t.s3Urls[n]={url:i,fields:a,exp:r.getTime()}}}}),{setUploadUrl:Zu}=Wi.actions,Ju=t=>e=>{const i=e.fileReducer.s3Urls[t];if(!i)return;const a=new Date().getTime();if(!((i.exp??a)-a<Ku))return i},Xu=Wi.reducer,me=P(t=>t.uuid),Qu=me.getInitialState({}),Yi=d.createSlice({name:"formIdentifiers",initialState:Qu,extraReducers:t=>t.addMatcher(d.isAnyOf(g,O),e=>Object.assign(e,Qu)),reducers:{initializeFormIdentifiers:me.initialize,addFormIdentifier:me.addOne,addFormIdentifiers:me.addMany,setFormIdentifier:me.setOne,setFormIdentifiers:me.setMany,updateFormIdentifier:me.updateOne,updateFormIdentifiers:me.updateMany,deleteFormIdentifier:me.deleteOne,deleteFormIdentifiers:me.deleteMany}}),{initializeFormIdentifiers:xu,addFormIdentifier:Ki,addFormIdentifiers:AS,setFormIdentifier:fS,setFormIdentifiers:yS,updateFormIdentifier:ht,updateFormIdentifiers:SS,deleteFormIdentifier:Zi,deleteFormIdentifiers:IS}=Yi.actions,eo=t=>t.formIdentifierReducer.instances,to=d.createSelector([eo],t=>Object.values(t)),Ji=t=>e=>e.formIdentifierReducer.instances[t],TS=y(d.createSelector([to,(t,e)=>e],(t,e)=>I(t.filter(i=>i.form===e)))),so=Yi.reducer,pe=P(t=>t.uuid),io=pe.getInitialState({}),Xi=d.createSlice({name:"formIdentifierValues",initialState:io,extraReducers:t=>t.addMatcher(d.isAnyOf(g,M,O),e=>Object.assign(e,io)),reducers:{initializeFormIdentifierValues:pe.initialize,addFormIdentifierValue:pe.addOne,addFormIdentifierValues:pe.addMany,setFormIdentifierValue:pe.setOne,setFormIdentifierValues:pe.setMany,updateFormIdentifierValue:pe.updateOne,updateFormIdentifierValues:pe.updateMany,deleteFormIdentifierValue:pe.deleteOne,deleteFormIdentifierValues:pe.deleteMany}}),{initializeFormIdentifierValues:ao,addFormIdentifierValue:Qi,addFormIdentifierValues:gS,setFormIdentifierValue:bS,setFormIdentifierValues:FS,updateFormIdentifierValue:mt,updateFormIdentifierValues:PS,deleteFormIdentifierValue:xi,deleteFormIdentifierValues:OS}=Xi.actions,no=t=>t.formIdentifierValueReducer.instances,ea=d.createSelector([no],t=>Object.values(t)),ta=t=>e=>e.formIdentifierValueReducer.instances[t],_S=y(d.createSelector([ea,(t,e)=>e],(t,e)=>I(t.filter(i=>i.form_submission===e)))),RS=y(d.createSelector([ea,(t,e)=>e],(t,e)=>I(t.filter(i=>i.form_identifier===e)))),co=Xi.reducer,Ae=P(t=>t.uuid),ro=Ae.getInitialState({}),sa=d.createSlice({name:"formRevisionAttachments",initialState:ro,extraReducers:t=>t.addMatcher(d.isAnyOf(g,O),e=>Object.assign(e,ro)),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:uo,addFormRevisionAttachment:vS,addFormRevisionAttachments:oo,setFormRevisionAttachment:wS,setFormRevisionAttachments:MS,updateFormRevisionAttachment:ES,updateFormRevisionAttachments:lo,deleteFormRevisionAttachment:VS,deleteFormRevisionAttachments:ho}=sa.actions,mo=t=>t.formRevisionAttachmentReducer.instances,jS=y(d.createSelector([mo,(t,e)=>e],(t,e)=>I(Object.values(t).filter(i=>i.form_revision===e)))),po=sa.reducer,fe=P(t=>t.uuid),Ao=fe.getInitialState({}),ia=d.createSlice({name:"formRevisions",initialState:Ao,extraReducers:t=>t.addMatcher(d.isAnyOf(g,O),e=>Object.assign(e,Ao)),reducers:{initializeFormRevisions:fe.initialize,addFormRevision:fe.addOne,addFormRevisions:fe.addMany,setFormRevision:fe.setOne,setFormRevisions:fe.setMany,updateFormRevision:fe.updateOne,updateFormRevisions:fe.updateMany,deleteFormRevision:fe.deleteOne,deleteFormRevisions:fe.deleteMany}}),{initializeFormRevisions:fo,addFormRevision:aa,addFormRevisions:yo,setFormRevision:So,setFormRevisions:qS,updateFormRevision:zS,updateFormRevisions:US,deleteFormRevision:na,deleteFormRevisions:Io}=ia.actions,ca=t=>t.formRevisionReducer.instances,ra=d.createSelector([ca],t=>Object.values(t)),DS=t=>e=>e.formRevisionReducer.instances[t],CS=y(d.createSelector([ra,(t,e)=>e],(t,e)=>t.filter(i=>i.form===e).sort((i,a)=>i.submitted_at>a.submitted_at?-1:1)[0])),To=y(d.createSelector([ra,(t,e)=>e],(t,e)=>I(t.filter(i=>i.form===e)))),go=ia.reducer,ye=P(t=>t.uuid),bo=ye.getInitialState({}),da=d.createSlice({name:"forms",initialState:bo,extraReducers:t=>t.addMatcher(d.isAnyOf(g,O),e=>Object.assign(e,bo)),reducers:{initializeForms:ye.initialize,addForm:ye.addOne,addForms:ye.addMany,setForm:ye.setOne,setForms:ye.setMany,updateForm:ye.updateOne,updateForms:ye.updateMany,deleteForm:ye.deleteOne,deleteForms:ye.deleteMany}}),{initializeForms:Fo,addForm:ua,addForms:kS,setForm:BS,setForms:GS,updateForm:$S,updateForms:LS,deleteForm:oa,deleteForms:NS}=da.actions,Po=da.reducer,Oo=t=>t.formReducer.instances,_o=d.createSelector([Oo],t=>Object.values(t)),Ro=t=>e=>e.formReducer.instances[t],HS=y(d.createSelector([_o,(t,e)=>e],(t,e)=>I(t.filter(i=>i.organization===e)))),Se=P(t=>t.uuid),vo=Se.getInitialState({}),la=d.createSlice({name:"formSubmissionAttachments",initialState:vo,extraReducers:t=>t.addMatcher(d.isAnyOf(g,O),e=>Object.assign(e,vo)),reducers:{initializeFormSubmissionAttachments:Se.initialize,addFormSubmissionAttachment:Se.addOne,addFormSubmissionAttachments:Se.addMany,setFormSubmissionAttachment:Se.setOne,setFormSubmissionAttachments:Se.setMany,updateFormSubmissionAttachment:Se.updateOne,updateFormSubmissionAttachments:Se.updateMany,deleteFormSubmissionAttachment:Se.deleteOne,deleteFormSubmissionAttachments:Se.deleteMany}}),{initializeFormSubmissionAttachments:wo,addFormSubmissionAttachment:WS,addFormSubmissionAttachments:Bt,setFormSubmissionAttachment:YS,setFormSubmissionAttachments:KS,updateFormSubmissionAttachment:ZS,updateFormSubmissionAttachments:Mo,deleteFormSubmissionAttachment:JS,deleteFormSubmissionAttachments:Gt}=la.actions,Eo=t=>t.formSubmissionAttachmentReducer.instances,ha=d.createSelector([Eo],t=>Object.values(t)),Vo=y(d.createSelector([ha,(t,e)=>e],(t,e)=>{const i=new Set(e);return I(t.filter(a=>i.has(a.uuid)))})),jo=y(d.createSelector([ha,(t,e)=>e],(t,e)=>I(t.filter(i=>i.form_submission===e)))),qo=la.reducer,Ie=P(t=>t.uuid),zo=Ie.getInitialState({}),ma=d.createSlice({name:"formSubmissions",initialState:zo,extraReducers:t=>t.addMatcher(d.isAnyOf(g,O),e=>Object.assign(e,zo)),reducers:{initializeFormSubmissions:Ie.initialize,setFormSubmission:Ie.setOne,setFormSubmissions:Ie.setMany,addFormSubmission:Ie.addOne,addFormSubmissions:Ie.addMany,updateFormSubmission:Ie.updateOne,updateFormSubmissions:Ie.updateMany,deleteFormSubmission:Ie.deleteOne,deleteFormSubmissions:Ie.deleteMany}}),{initializeFormSubmissions:Uo,setFormSubmission:$t,setFormSubmissions:XS,addFormSubmission:pa,addFormSubmissions:Do,updateFormSubmission:Co,updateFormSubmissions:QS,deleteFormSubmission:Aa,deleteFormSubmissions:ko}=ma.actions,fa=t=>t.formSubmissionReducer.instances,xS=d.createSelector([fa],t=>Object.values(t)),ya=t=>e=>e.formSubmissionReducer.instances[t],Bo=y(d.createSelector([fa,ca,(t,e)=>e],(t,e,i)=>{const a=new Set;for(const n of Object.values(e))n.form===i&&a.add(n.uuid);return Object.values(t).filter(n=>a.has(n.form_revision))})),Go=ma.reducer,Te=P(t=>t.uuid),$o=Te.getInitialState({}),Sa=d.createSlice({name:"geoImages",initialState:$o,extraReducers:t=>t.addMatcher(d.isAnyOf(g,M,O),e=>Object.assign(e,$o)),reducers:{initializeGeoImages:Te.initialize,setGeoImage:Te.setOne,setGeoImages:Te.setMany,addGeoImage:Te.addOne,addGeoImages:Te.addMany,updateGeoImage:Te.updateOne,updateGeoImages:Te.updateMany,deleteGeoImage:Te.deleteOne,deleteGeoImages:Te.deleteMany}}),{initializeGeoImages:Lo,setGeoImage:pt,setGeoImages:No,addGeoImage:Ho,addGeoImages:Wo,updateGeoImage:Yo,updateGeoImages:eI,deleteGeoImage:Ia,deleteGeoImages:Ko}=Sa.actions,Zo=t=>t.geoImageReducer.instances,Jo=d.createSelector([Zo],t=>Object.values(t)),Ta=t=>e=>e.geoImageReducer.instances[t],tI=y(d.createSelector([Jo,(t,e)=>e],(t,e)=>I(t.filter(i=>i.project===e)))),Xo=Sa.reducer,ge=P(t=>t.uuid),Qo=ge.getInitialState({}),ga=d.createSlice({name:"issueAssociations",initialState:Qo,extraReducers:t=>t.addMatcher(d.isAnyOf(g,M,O),e=>Object.assign(e,Qo)),reducers:{initializeIssueAssociations:ge.initialize,addIssueAssociation:ge.addOne,addIssueAssociations:ge.addMany,setIssueAssociation:ge.setOne,setIssueAssociations:ge.setMany,updateIssueAssociation:ge.updateOne,updateIssueAssociations:ge.updateMany,deleteIssueAssociation:ge.deleteOne,deleteIssueAssociations:ge.deleteMany}}),{initializeIssueAssociations:xo,setIssueAssociations:sI,setIssueAssociation:iI,updateIssueAssociation:el,updateIssueAssociations:aI,addIssueAssociation:ba,addIssueAssociations:Fa,deleteIssueAssociation:Pa,deleteIssueAssociations:Oa}=ga.actions,At=t=>t.issueAssociationReducer.instances,nI=d.createSelector([At],t=>Object.values(t)),tl=t=>e=>e.issueAssociationReducer.instances[t],sl=y(d.createSelector([At,(t,e)=>e],(t,e)=>I(Object.values(t).filter(i=>i.associated_issue===e)))),il=y(d.createSelector([At,(t,e)=>e],(t,e)=>I(Object.values(t).filter(i=>i.issue===e)))),al=y(d.createSelector([At,(t,e)=>e],(t,e)=>I(Object.values(t).filter(i=>i.asset===e)))),nl=ga.reducer,be=P(t=>t.uuid),cl=be.getInitialState({}),_a=d.createSlice({name:"issueAttachments",initialState:cl,extraReducers:t=>t.addMatcher(d.isAnyOf(g,M,O),e=>Object.assign(e,cl)),reducers:{initializeIssueAttachments:be.initialize,addIssueAttachment:be.addOne,addIssueAttachments:be.addMany,setIssueAttachment:be.setOne,setIssueAttachments:be.setMany,updateIssueAttachment:be.updateOne,updateIssueAttachments:be.updateMany,deleteIssueAttachment:be.deleteOne,deleteIssueAttachments:be.deleteMany}}),{initializeIssueAttachments:Ra,addIssueAttachment:cI,addIssueAttachments:va,setIssueAttachment:rl,setIssueAttachments:rI,updateIssueAttachment:dI,updateIssueAttachments:dl,deleteIssueAttachment:ul,deleteIssueAttachments:wa}=_a.actions,ol=t=>t.issueAttachmentReducer.instances,ll=d.createSelector([ol],t=>Object.values(t)),hl=y(d.createSelector([ll,(t,e)=>e],(t,e)=>I(t.filter(({issue:i})=>e===i)))),ml=t=>e=>e.issueAttachmentReducer.instances[t],pl=_a.reducer,Fe=P(t=>t.uuid),Al=Fe.getInitialState({}),Ma=d.createSlice({name:"issueCommentAttachments",initialState:Al,extraReducers:t=>t.addMatcher(d.isAnyOf(g,M,O),e=>Object.assign(e,Al)),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:Ea,addIssueCommentAttachment:uI,addIssueCommentAttachments:fl,setIssueCommentAttachment:yl,setIssueCommentAttachments:oI,updateIssueCommentAttachment:lI,updateIssueCommentAttachments:Sl,deleteIssueCommentAttachment:Il,deleteIssueCommentAttachments:Tl}=Ma.actions,gl=t=>t.issueCommentAttachmentReducer.instances,bl=d.createSelector([gl],t=>Object.values(t)),Fl=t=>e=>e.issueCommentAttachmentReducer.instances[t],hI=y(d.createSelector([bl,(t,e)=>e],(t,e)=>I(t.filter(({issue_comment:i})=>e===i)))),Pl=Ma.reducer,Pe=P(t=>t.uuid),Ol=Pe.getInitialState({}),Va=d.createSlice({name:"issueComments",initialState:Ol,extraReducers:t=>t.addMatcher(d.isAnyOf(g,M,O),e=>Object.assign(e,Ol)),reducers:{initializeIssueComments:Pe.initialize,addIssueComment:Pe.addOne,addIssueComments:Pe.addMany,setIssueComment:Pe.setOne,setIssueComments:Pe.setMany,updateIssueComment:Pe.updateOne,updateIssueComments:Pe.updateMany,deleteIssueComment:Pe.deleteOne,deleteIssueComments:Pe.deleteMany}}),{initializeIssueComments:mI,addIssueComment:ja,addIssueComments:pI,setIssueComment:qa,setIssueComments:_l,updateIssueComment:AI,updateIssueComments:fI,deleteIssueComment:za,deleteIssueComments:yI}=Va.actions,Rl=t=>t.issueCommentReducer.instances,Ua=t=>e=>e.issueCommentReducer.instances[t],SI=y(d.createSelector([Rl,(t,e)=>e],(t,e)=>I(Object.values(t).filter(i=>i.issue===e)))),vl=Va.reducer,Oe=P(t=>t.uuid),wl=Oe.getInitialState({}),Da=d.createSlice({name:"issues",initialState:wl,extraReducers:t=>t.addMatcher(d.isAnyOf(g,M,O),e=>Object.assign(e,wl)),reducers:{initializeIssues:Oe.initialize,addIssue:Oe.addOne,addIssues:Oe.addMany,setIssue:Oe.setOne,setIssues:Oe.setMany,updateIssue:Oe.updateOne,updateIssues:Oe.updateMany,deleteIssue:Oe.deleteOne,deleteIssues:Oe.deleteMany}}),{initializeIssues:Ml,addIssue:Ca,addIssues:El,setIssue:II,setIssues:TI,updateIssue:Lt,updateIssues:gI,deleteIssue:ka,deleteIssues:Vl}=Da.actions,Ba=t=>t.issueReducer.instances,Ga=d.createSelector([Ba],t=>Object.values(t)),$a=t=>e=>e.issueReducer.instances[t],bI=y(d.createSelector([Ba,(t,e)=>e],(t,e)=>{const i=[];for(const a of e){const n=t[a];n?i.push(n):console.warn("selectIssuesByIds: No issue exists with the id",a)}return I(i)})),FI=y(d.createSelector([Ga,(t,e)=>e],(t,e)=>t.filter(i=>i.project===e))),jl=y(d.createSelector([Ga,(t,e)=>e],(t,e)=>t.filter(i=>i.issue_type===e))),ql=Da.reducer,_e=P(t=>t.uuid),zl=_e.getInitialState({}),La=d.createSlice({name:"issueTypeAttachments",initialState:zl,extraReducers:t=>t.addMatcher(d.isAnyOf(g,O),e=>Object.assign(e,zl)),reducers:{initializeIssueTypeAttachments:_e.initialize,addIssueTypeAttachment:_e.addOne,addIssueTypeAttachments:_e.addMany,setIssueTypeAttachment:_e.setOne,setIssueTypeAttachments:_e.setMany,updateIssueTypeAttachment:_e.updateOne,updateIssueTypeAttachments:_e.updateMany,deleteIssueTypeAttachment:_e.deleteOne,deleteIssueTypeAttachments:_e.deleteMany}}),{initializeIssueTypeAttachments:Na,addIssueTypeAttachment:PI,addIssueTypeAttachments:Ul,setIssueTypeAttachment:Dl,setIssueTypeAttachments:OI,updateIssueTypeAttachment:_I,updateIssueTypeAttachments:Cl,deleteIssueTypeAttachment:kl,deleteIssueTypeAttachments:Bl}=La.actions,Gl=t=>t.issueTypeAttachmentReducer.instances,$l=d.createSelector([Gl],t=>Object.values(t)),Ll=t=>e=>e.issueTypeAttachmentReducer.instances[t],RI=y(d.createSelector([$l,(t,e)=>e],(t,e)=>I(t.filter(({issue_type:i})=>e===i)))),Nl=La.reducer,Re=P(t=>t.uuid),Hl=Re.getInitialState({}),Ha=d.createSlice({name:"issueTypeFieldsAttachments",initialState:Hl,extraReducers:t=>t.addMatcher(d.isAnyOf(g,O),e=>Object.assign(e,Hl)),reducers:{initializeIssueTypeFieldsAttachments:Re.initialize,addIssueTypeFieldsAttachment:Re.addOne,addIssueTypeFieldsAttachments:Re.addMany,setIssueTypeFieldsAttachment:Re.setOne,setIssueTypeFieldsAttachments:Re.setMany,updateIssueTypeFieldsAttachment:Re.updateOne,updateIssueTypeFieldsAttachments:Re.updateMany,deleteIssueTypeFieldsAttachment:Re.deleteOne,deleteIssueTypeFieldsAttachments:Re.deleteMany}}),{initializeIssueTypeFieldsAttachments:Wl,addIssueTypeFieldsAttachment:vI,addIssueTypeFieldsAttachments:Yl,setIssueTypeFieldsAttachment:wI,setIssueTypeFieldsAttachments:MI,updateIssueTypeFieldsAttachment:EI,updateIssueTypeFieldsAttachments:Kl,deleteIssueTypeFieldsAttachment:VI,deleteIssueTypeFieldsAttachments:Zl}=Ha.actions,Jl=t=>t.issueTypeFieldsAttachmentReducer.instances,Xl=d.createSelector([Jl],t=>Object.values(t)),jI=y(d.createSelector([Xl,(t,e)=>e],(t,e)=>I(t.filter(i=>i.fields_revision===e)))),qI=t=>e=>e.issueTypeFieldsAttachmentReducer.instances[t],Ql=Ha.reducer,ve=P(t=>t.uuid),xl=ve.getInitialState({}),Wa=d.createSlice({name:"issueTypeFieldValues",initialState:xl,extraReducers:t=>t.addMatcher(d.isAnyOf(g,M,O),e=>Object.assign(e,xl)),reducers:{initializeIssueTypeFieldValues:ve.initialize,addIssueTypeFieldValues:ve.addOne,addIssueTypeFieldValuesMany:ve.addMany,setIssueTypeFieldValues:ve.setOne,setIssueTypeFieldValuesMany:ve.setMany,updateIssueTypeFieldValues:ve.updateOne,updateIssueTypeFieldValuesMany:ve.updateMany,deleteIssueTypeFieldValues:ve.deleteOne,deleteIssueTypeFieldValuesMany:ve.deleteMany}}),{initializeIssueTypeFieldValues:eh,addIssueTypeFieldValues:Ya,addIssueTypeFieldValuesMany:zI,setIssueTypeFieldValues:UI,setIssueTypeFieldValuesMany:DI,updateIssueTypeFieldValues:ft,updateIssueTypeFieldValuesMany:CI,deleteIssueTypeFieldValues:Ka,deleteIssueTypeFieldValuesMany:kI}=Wa.actions,th=t=>t.issueTypeFieldValuesReducer.instances,Za=d.createSelector([th],t=>Object.values(t)),BI=y(d.createSelector([Za,(t,e)=>e],(t,e)=>I(t.filter(i=>i.issue===e)))),Ja=t=>e=>e.issueTypeFieldValuesReducer.instances[t],sh=Wa.reducer,we=P(t=>t.uuid),ih=we.getInitialState({}),Xa=d.createSlice({name:"issueTypeFields",initialState:ih,extraReducers:t=>t.addMatcher(d.isAnyOf(g,O),e=>Object.assign(e,ih)),reducers:{initializeIssueTypeFields:we.initialize,addIssueTypeFields:we.addOne,addIssueTypeFieldsMany:we.addMany,setIssueTypeFields:we.setOne,setIssueTypeFieldsMany:we.setMany,updateIssueTypeFields:we.updateOne,updateIssueTypeFieldsMany:we.updateMany,deleteIssueTypeFields:we.deleteOne,deleteIssueTypeFieldsMany:we.deleteMany}}),{initializeIssueTypeFields:ah,addIssueTypeFields:nh,addIssueTypeFieldsMany:GI,setIssueTypeFields:$I,setIssueTypeFieldsMany:LI,updateIssueTypeFields:ch,updateIssueTypeFieldsMany:NI,deleteIssueTypeFields:rh,deleteIssueTypeFieldsMany:HI}=Xa.actions,dh=t=>t.issueTypeFieldsReducer.instances,Nt=d.createSelector([dh],t=>Object.values(t)),WI=y(d.createSelector([Nt,(t,e)=>e],(t,e)=>I(t.filter(i=>i.issue_type===e)))),YI=y(d.createSelector([Nt,(t,e)=>e],(t,e)=>t.filter(i=>i.issue_type===e).sort((i,a)=>i.submitted_at>a.submitted_at?-1:1)[0])),KI=y(d.createSelector([Nt,Za,(t,e)=>e],(t,e,i)=>{const a=new Set(t.filter(n=>n.issue_type===i).map(n=>n.uuid));return I(e.filter(n=>a.has(n.fields_revision)))})),ZI=t=>e=>e.issueTypeFieldsReducer.instances[t],uh=Xa.reducer,Me=P(t=>t.uuid),oh=Me.getInitialState({}),Qa=d.createSlice({name:"issueTypeFieldValuesAttachments",initialState:oh,extraReducers:t=>t.addMatcher(d.isAnyOf(g,M,O),e=>Object.assign(e,oh)),reducers:{initializeIssueTypeFieldValuesAttachments:Me.initialize,addIssueTypeFieldValuesAttachment:Me.addOne,addIssueTypeFieldValuesAttachments:Me.addMany,setIssueTypeFieldValuesAttachment:Me.setOne,setIssueTypeFieldValuesAttachments:Me.setMany,updateIssueTypeFieldValuesAttachment:Me.updateOne,updateIssueTypeFieldValuesAttachments:Me.updateMany,deleteIssueTypeFieldValuesAttachment:Me.deleteOne,deleteIssueTypeFieldValuesAttachments:Me.deleteMany}}),{initializeIssueTypeFieldValuesAttachments:lh,addIssueTypeFieldValuesAttachment:JI,addIssueTypeFieldValuesAttachments:Ht,setIssueTypeFieldValuesAttachment:XI,setIssueTypeFieldValuesAttachments:QI,updateIssueTypeFieldValuesAttachment:xI,updateIssueTypeFieldValuesAttachments:hh,deleteIssueTypeFieldValuesAttachment:eT,deleteIssueTypeFieldValuesAttachments:Wt}=Qa.actions,mh=t=>t.issueTypeFieldValuesAttachmentReducer.instances,xa=d.createSelector([mh],t=>Object.values(t)),tT=t=>e=>e.issueTypeFieldValuesAttachmentReducer.instances[t],ph=y(d.createSelector([xa,(t,e)=>e],(t,e)=>{const i=new Set(e);return I(t.filter(a=>i.has(a.uuid)))})),Ah=y(d.createSelector([xa,(t,e)=>e],(t,e)=>I(t.filter(i=>i.field_values===e)))),fh=Qa.reducer,Ee=P(t=>t.uuid),yh=Ee.getInitialState({}),en=d.createSlice({name:"issueTypeIdentifiers",initialState:yh,extraReducers:t=>t.addMatcher(d.isAnyOf(g,O),e=>Object.assign(e,yh)),reducers:{initializeIssueTypeIdentifiers:Ee.initialize,addIssueTypeIdentifier:Ee.addOne,addIssueTypeIdentifiers:Ee.addMany,setIssueTypeIdentifier:Ee.setOne,setIssueTypeIdentifiers:Ee.setMany,updateIssueTypeIdentifier:Ee.updateOne,updateIssueTypeIdentifiers:Ee.updateMany,deleteIssueTypeIdentifier:Ee.deleteOne,deleteIssueTypeIdentifiers:Ee.deleteMany}}),{initializeIssueTypeIdentifiers:Sh,addIssueTypeIdentifier:tn,addIssueTypeIdentifiers:sT,setIssueTypeIdentifier:iT,setIssueTypeIdentifiers:aT,updateIssueTypeIdentifier:yt,updateIssueTypeIdentifiers:nT,deleteIssueTypeIdentifier:sn,deleteIssueTypeIdentifiers:cT}=en.actions,Ih=t=>t.issueTypeIdentifierReducer.instances,Th=d.createSelector([Ih],t=>Object.values(t)),an=t=>e=>e.issueTypeIdentifierReducer.instances[t],rT=y(d.createSelector([Th,(t,e)=>e],(t,e)=>I(t.filter(i=>i.issue_type===e)))),gh=en.reducer,Ve=P(t=>t.uuid),bh=Ve.getInitialState({}),nn=d.createSlice({name:"issueTypeIdentifierValues",initialState:bh,extraReducers:t=>t.addMatcher(d.isAnyOf(g,M,O),e=>Object.assign(e,bh)),reducers:{initializeIssueTypeIdentifierValues:Ve.initialize,addIssueTypeIdentifierValue:Ve.addOne,addIssueTypeIdentifierValues:Ve.addMany,setIssueTypeIdentifierValue:Ve.setOne,setIssueTypeIdentifierValues:Ve.setMany,updateIssueTypeIdentifierValue:Ve.updateOne,updateIssueTypeIdentifierValues:Ve.updateMany,deleteIssueTypeIdentifierValue:Ve.deleteOne,deleteIssueTypeIdentifierValues:Ve.deleteMany}}),{initializeIssueTypeIdentifierValues:Fh,addIssueTypeIdentifierValue:cn,addIssueTypeIdentifierValues:dT,setIssueTypeIdentifierValue:uT,setIssueTypeIdentifierValues:oT,updateIssueTypeIdentifierValue:St,updateIssueTypeIdentifierValues:lT,deleteIssueTypeIdentifierValue:rn,deleteIssueTypeIdentifierValues:hT}=nn.actions,Ph=t=>t.issueTypeIdentifierValueReducer.instances,dn=d.createSelector([Ph],t=>Object.values(t)),un=t=>e=>e.issueTypeIdentifierValueReducer.instances[t],mT=y(d.createSelector([dn,(t,e)=>e],(t,e)=>I(t.filter(i=>i.issue===e)))),pT=y(d.createSelector([dn,(t,e)=>e],(t,e)=>I(t.filter(i=>i.issue_type_identifier===e)))),Oh=nn.reducer,C=P(t=>t.uuid),_h=C.getInitialState({}),on=d.createSlice({name:"issueTypes",initialState:_h,extraReducers:t=>t.addMatcher(d.isAnyOf(g,O),e=>Object.assign(e,_h)),reducers:{initializeIssueTypes:C.initialize,addIssueType:C.addOne,addIssueTypes:C.addMany,setIssueType:C.setOne,setIssueTypes:C.setMany,updateIssueType:C.updateOne,updateIssueTypes:C.updateMany,deleteIssueType:C.deleteOne,deleteIssueTypes:C.deleteMany,removeIssueType:C.deleteOne}}),{initializeIssueTypes:Rh,addIssueType:vh,addIssueTypes:AT,setIssueType:It,setIssueTypes:fT,updateIssueType:wh,updateIssueTypes:yT,deleteIssueType:ST,deleteIssueTypes:IT,removeIssueType:ln}=on.actions,hn=t=>t.issueTypeReducer.instances,Mh=d.createSelector(hn,t=>Object.values(t)),mn=t=>e=>e.issueTypeReducer.instances[t],TT=y(d.createSelector([hn,(t,e)=>e],(t,e)=>{const i=[];for(const a of e){const n=t[a];n?i.push(n):console.warn("selectIssueTypesByIds: No issue type exists with the id",a)}return i})),gT=y(d.createSelector([Mh,(t,e)=>e],(t,e)=>I(t.filter(i=>i.organization===e)))),Eh=on.reducer,je=P(t=>t.uuid),Vh=je.getInitialState({}),pn=d.createSlice({name:"issueUpdates",initialState:Vh,extraReducers:t=>t.addMatcher(d.isAnyOf(g,M,O),e=>Object.assign(e,Vh)),reducers:{initializeIssueUpdates:je.initialize,addIssueUpdate:je.addOne,addIssueUpdates:je.addMany,setIssueUpdate:je.setOne,setIssueUpdates:je.setMany,updateIssueUpdate:je.updateOne,updateIssueUpdates:je.updateMany,deleteIssueUpdate:je.deleteOne,deleteIssueUpdates:je.deleteMany}}),{initializeIssueUpdates:jh,addIssueUpdate:qh,addIssueUpdates:zh,setIssueUpdate:bT,setIssueUpdates:FT,updateIssueUpdate:PT,updateIssueUpdates:OT,deleteIssueUpdate:Uh,deleteIssueUpdates:Dh}=pn.actions,Ch=t=>t.issueUpdateReducer.instances,kh=d.createSelector([Ch],t=>Object.values(t)),Bh=y(d.createSelector([kh,(t,e)=>e],(t,e)=>I(t.filter(i=>i.issue===e)))),Gh=pn.reducer,qe=P(t=>t.id),$h=qe.getInitialState({currentUser:null}),An=d.createSlice({name:"users",initialState:$h,extraReducers:t=>t.addMatcher(d.isAnyOf(g,O),e=>Object.assign(e,$h)),reducers:{initializeUsers:qe.initialize,setUsers:qe.setMany,setUser:qe.setOne,addUsers:qe.addMany,addUser:qe.addOne,updateUsers:qe.updateMany,updateUser:qe.updateOne,deleteUser:qe.deleteOne,deleteUsers:qe.deleteMany,setCurrentUser:(t,e)=>{t.currentUser=e.payload},setProfilePicture:(t,e)=>{if(!t.currentUser)return;t.currentUser.profile.file=e.payload.file??null,t.currentUser.profile.file_sha1=e.payload.file_sha1??null;const i=t.instances[t.currentUser.id];if(!i)throw new Error("Unable to find current user in users slice");i.profile.file=e.payload.file??null,i.profile.file_sha1=e.payload.file_sha1??null}}}),{initializeUsers:Lh,setUsers:_T,setUser:RT,addUsers:vT,addUser:Nh,updateUsers:wT,updateUser:MT,deleteUser:Hh,deleteUsers:ET,setCurrentUser:VT,setProfilePicture:jT}=An.actions,Wh=An.reducer,Yh=t=>t.userReducer.currentUser,Yt=t=>t.userReducer.instances,fn=d.createSelector([Yt],t=>Object.values(t)),Kh=t=>e=>e.userReducer.instances[t],qT=y(d.createSelector([Yt,(t,e)=>e],(t,e)=>{const i=[];for(const a of e){const n=t[a];n?i.push(n):console.warn("selectUsersByIds: No user exists with the id",a)}return I(i)})),ze=P(t=>t.uuid),Zh=ze.getInitialState({}),yn=d.createSlice({name:"organizationAccess",initialState:Zh,extraReducers:t=>t.addMatcher(d.isAnyOf(g,O),e=>Object.assign(e,Zh)),reducers:{initializeOrganizationAccesses:ze.initialize,addOrganizationAccess:ze.addOne,addOrganizationAccesses:ze.addMany,setOrganizationAccess:ze.setOne,setOrganizationAccesses:ze.setMany,updateOrganizationAccess:ze.updateOne,updateOrganizationAccesses:ze.updateMany,deleteOrganizationAccess:ze.deleteOne,deleteOrganizationAccesses:ze.deleteMany}}),{initializeOrganizationAccesses:Jh,addOrganizationAccess:Xh,addOrganizationAccesses:zT,setOrganizationAccess:UT,setOrganizationAccesses:DT,updateOrganizationAccess:Kt,updateOrganizationAccesses:CT,deleteOrganizationAccess:Qh,deleteOrganizationAccesses:kT}=yn.actions,xh=yn.reducer,Sn=t=>t.organizationAccessReducer.instances,In=t=>e=>e.organizationAccessReducer.instances[t],BT=d.createSelector([Yh,Sn],(t,e)=>Object.values(e).find(a=>a.user===(t==null?void 0:t.id))??null),em=d.createSelector([Sn],t=>{const e={};for(const i of Object.values(t))e[i.user]=i;return Pt(e)}),GT=y(d.createSelector([Yt,em,(t,e)=>e],(t,e,i)=>I(Object.values(t).filter(a=>{const n=e[a.id];return!!n&&n.organization===i})))),Ue=P(t=>t.uuid),tm=Ue.getInitialState({}),Tn=d.createSlice({name:"organizations",initialState:tm,extraReducers:t=>t.addMatcher(d.isAnyOf(g,O),e=>Object.assign(e,tm)),reducers:{initializeOrganizations:Ue.initialize,setOrganizations:Ue.setMany,setOrganization:Ue.setOne,addOrganizations:Ue.addMany,addOrganization:Ue.addOne,updateOrganizations:Ue.updateMany,updateOrganization:Ue.updateOne,deleteOrganization:Ue.deleteOne,deleteOrganizations:Ue.deleteMany}}),{initializeOrganizations:sm,setOrganizations:$T,setOrganization:LT,addOrganizations:NT,addOrganization:im,updateOrganizations:HT,updateOrganization:am,deleteOrganization:WT,deleteOrganizations:YT}=Tn.actions,nm=t=>t.organizationReducer.instances,KT=d.createSelector([nm],t=>Object.values(t)),ZT=t=>e=>e.organizationReducer.instances[t],cm=Tn.reducer,rm=(t,e,i)=>{const a=t.uuid?t:{...t,uuid:Je.v4()};return{payload:a,type:"",meta:{offline:{effect:{timestamp:new Date().toISOString(),request:a,BASE_URL:e,serviceName:i}}}}},dm={deletedRequests:[],latestRetryTime:0},gn=d.createSlice({name:"outbox",initialState:dm,extraReducers:t=>t.addCase(g,e=>Object.assign(e,dm)),reducers:{enqueueRequest:{reducer:(t,e)=>t,prepare:t=>{console.debug("Preparing to enqueue request",t);const{BASE_URL:e,serviceName:i,...a}=t;return rm(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}}}),JT=t=>t.outboxReducer.deletedRequests,XT=t=>t.outboxReducer.latestRetryTime,{enqueueRequest:um,markForDeletion:QT,markAsDeleted:om,_setLatestRetryTime:lm}=gn.actions,hm=gn.reducer,De=P(t=>t.uuid),mm=De.getInitialState({}),bn=d.createSlice({name:"projectAccess",initialState:mm,extraReducers:t=>t.addMatcher(d.isAnyOf(g,O),e=>Object.assign(e,mm)),reducers:{initializeProjectAccesses:De.initialize,addProjectAccess:De.addOne,addProjectAccesses:De.addMany,setProjectAccess:De.setOne,setProjectAccesses:De.setMany,updateProjectAccess:De.updateOne,updateProjectAccesses:De.updateMany,deleteProjectAccess:De.deleteOne,deleteProjectAccesses:De.deleteMany}}),{initializeProjectAccesses:pm,addProjectAccess:Fn,addProjectAccesses:Pn,setProjectAccess:xT,setProjectAccesses:eg,updateProjectAccess:Tt,updateProjectAccesses:Am,deleteProjectAccess:On,deleteProjectAccesses:_n}=bn.actions,fm=bn.reducer,Rn=t=>t.projectAccessReducer.instances,Zt=d.createSelector(Rn,t=>Object.values(t)),vn=t=>e=>e.projectAccessReducer.instances[t],ym=y(d.createSelector([Rn,(t,e)=>e],(t,e)=>I(Object.values(t).filter(i=>i.project===e)))),tg=y(d.createSelector([Zt,(t,e)=>e],(t,e)=>{const i={};for(const a of t.filter(n=>n.project===e))i[a.user]=a;return i})),sg=y(d.createSelector([fn,Zt,(t,e)=>e],(t,e,i)=>{const a=new Set(e.filter(n=>n.project===i).map(n=>n.user));return I(t.filter(n=>a.has(n.id)))})),Ce=P(t=>t.uuid),Sm=Ce.getInitialState({}),wn=d.createSlice({name:"projectAttachments",initialState:Sm,extraReducers:t=>t.addMatcher(d.isAnyOf(g,O),e=>Object.assign(e,Sm)),reducers:{initializeProjectAttachments:Ce.initialize,addProjectAttachment:Ce.addOne,addProjectAttachments:Ce.addMany,setProjectAttachment:Ce.setOne,setProjectAttachments:Ce.setMany,updateProjectAttachment:Ce.updateOne,updateProjectAttachments:Ce.updateMany,deleteProjectAttachment:Ce.deleteOne,deleteProjectAttachments:Ce.deleteMany}}),{initializeProjectAttachments:Im,addProjectAttachment:ig,addProjectAttachments:Tm,setProjectAttachment:gm,setProjectAttachments:bm,updateProjectAttachment:ag,updateProjectAttachments:Fm,deleteProjectAttachment:Pm,deleteProjectAttachments:Mn}=wn.actions,Om=t=>t.projectAttachmentReducer.instances,_m=d.createSelector([Om],t=>Object.values(t)),Rm=t=>e=>e.projectAttachmentReducer.instances[t],vm=y(d.createSelector([_m,(t,e)=>e],(t,e)=>I(t.filter(({project:i})=>e===i)))),wm=wn.reducer,ke=P(t=>t.uuid),Mm=ke.getInitialState({activeProjectFileId:null,isImportingProjectFile:!1}),En=d.createSlice({name:"projectFiles",initialState:Mm,extraReducers:t=>t.addMatcher(d.isAnyOf(g,M,O),e=>Object.assign(e,Mm)),reducers:{initializeProjectFiles:ke.initialize,setProjectFile:ke.setOne,setProjectFiles:ke.setMany,addProjectFile:ke.addOne,addProjectFiles:ke.addMany,updateProjectFile:ke.updateOne,updateProjectFiles:ke.updateMany,deleteProjectFile:ke.deleteOne,deleteProjectFiles:ke.deleteMany,setIsImportingProjectFile:(t,e)=>{t.isImportingProjectFile=e.payload},saveActiveProjectFileBounds:(t,e)=>{const i=t.activeProjectFileId;if(!i)throw new Error("Tried to save bounds for active project file, but no active project file was set.");if(!t.instances[i])throw new Error(`Tried to save bounds for active project file, but project file with ID ${i}
|
|
2
2
|
doesn't exist.`);t.instances[i].bounds=e.payload},setActiveProjectFileId:(t,e)=>{t.activeProjectFileId=e.payload},resetProjectFileObjectUrls:(t,...e)=>{for(const i in t.instances)delete t.instances[i].objectURL}}}),{initializeProjectFiles:Em,setProjectFile:ng,setProjectFiles:cg,addProjectFile:rg,addProjectFiles:Vm,updateProjectFile:Vn,updateProjectFiles:dg,deleteProjectFile:jm,deleteProjectFiles:qm,setIsImportingProjectFile:zm,setActiveProjectFileId:Um,saveActiveProjectFileBounds:Dm,resetProjectFileObjectUrls:ug}=En.actions,Cm=t=>t.projectFileReducer.instances,km=d.createSelector([Cm],t=>I(Object.values(t).sort((e,i)=>e.z_index-i.z_index))),og=t=>e=>e.projectFileReducer.instances[t],lg=t=>t.projectFileReducer.activeProjectFileId,hg=t=>t.projectFileReducer.isImportingProjectFile,Bm=En.reducer,Be=P(t=>t.uuid),Gm=Be.getInitialState({}),jn=d.createSlice({name:"projects",initialState:Gm,extraReducers:t=>t.addMatcher(d.isAnyOf(g,O),e=>Object.assign(e,Gm)),reducers:{initializeProjects:Be.initialize,setProjects:Be.setMany,setProject:Be.setOne,addProjects:Be.addMany,addProject:Be.addOne,updateProjects:Be.updateMany,updateProject:Be.updateOne,deleteProject:Be.deleteOne,deleteProjects:Be.deleteMany}}),{initializeProjects:$m,setProjects:mg,setProject:pg,addProjects:Ag,addProject:qn,updateProjects:fg,updateProject:Lm,deleteProject:zn,deleteProjects:yg}=jn.actions,Nm=jn.reducer,Hm=t=>t.projectReducer.instances,Un=d.createSelector([Hm],t=>I(Object.values(t))),Wm=t=>e=>e.projectReducer.instances[t],Sg=y(d.createSelector([Un,Zt,(t,e)=>e],(t,e,i)=>{const a=new Set(e.filter(n=>n.user===i).map(n=>n.project));return I(t.filter(n=>a.has(n.uuid)))})),Ig=y(d.createSelector([Un,(t,e)=>e],(t,e)=>I(t.filter(i=>i.organization===e)))),Tg={isRehydrated:!1},Dn=d.createSlice({name:"rehydrated",initialState:Tg,reducers:{setRehydrated:(t,e)=>{t.isRehydrated=e.payload}}}),{setRehydrated:gg}=Dn.actions,bg=t=>t.rehydratedReducer.isRehydrated,Ym=Dn.reducer,Ge=P(t=>t.uuid),Km=Ge.getInitialState({}),Cn=d.createSlice({name:"teamMemberships",initialState:Km,extraReducers:t=>t.addMatcher(d.isAnyOf(g,O),e=>Object.assign(e,Km)),reducers:{initializeTeamMemberships:Ge.initialize,addTeamMembership:Ge.addOne,addTeamMemberships:Ge.addMany,setTeamMembership:Ge.setOne,setTeamMemberships:Ge.setMany,updateTeamMembership:Ge.updateOne,updateTeamMemberships:Ge.updateMany,deleteTeamMembership:Ge.deleteOne,deleteTeamMemberships:Ge.deleteMany}}),{initializeTeamMemberships:Zm,addTeamMembership:Jm,addTeamMemberships:Xm,setTeamMembership:kn,setTeamMemberships:Qm,updateTeamMembership:Fg,updateTeamMemberships:Pg,deleteTeamMembership:Bn,deleteTeamMemberships:xm}=Cn.actions,ep=Cn.reducer,tp=t=>t.teamMembershipReducer.instances,Gn=d.createSelector([tp],t=>Object.values(t)),sp=t=>e=>e.teamMembershipReducer.instances[t],Og=y(d.createSelector([Gn,(t,e)=>e],(t,e)=>{const i={};for(const a of t.filter(n=>n.team===e))i[a.user]=a;return i})),_g=y(d.createSelector([fn,Gn,(t,e)=>e],(t,e,i)=>{const a=new Set(e.filter(n=>n.team===i).map(n=>n.user));return I(t.filter(n=>a.has(n.id)))})),$e=P(t=>t.uuid),ip=$e.getInitialState({}),$n=d.createSlice({name:"teams",initialState:ip,extraReducers:t=>t.addMatcher(d.isAnyOf(g,O),e=>Object.assign(e,ip)),reducers:{initializeTeams:$e.initialize,addTeam:$e.addOne,addTeams:$e.addMany,setTeam:$e.setOne,setTeams:$e.setMany,updateTeam:$e.updateOne,updateTeams:$e.updateMany,deleteTeam:$e.deleteOne,deleteTeams:$e.deleteMany}}),{initializeTeams:ap,addTeam:np,addTeams:Rg,setTeam:gt,setTeams:vg,updateTeam:cp,updateTeams:wg,deleteTeam:Ln,deleteTeams:Mg}=$n.actions,Nn=t=>t.teamReducer.instances,rp=d.createSelector([Nn],t=>Object.values(t)),Hn=t=>e=>e.teamReducer.instances[t],Eg=y(d.createSelector([Nn,(t,e)=>e],(t,e)=>{const i=[];for(const a of e){const n=t[a];n?i.push(n):console.warn("selectTeamsByIds: No team exists with the id",a)}return I(i)})),Vg=y(d.createSelector([rp,(t,e)=>e],(t,e)=>I(t.filter(i=>i.organization===e)))),dp=$n.reducer,jg={version:0},up=d.createSlice({name:"versioning",initialState:jg,reducers:{}}),op=up.reducer,Wn={outboxReducer:hm,fileReducer:Xu,authReducer:yu},qg=d.combineReducers(Wn),lp={...Wn,[tt]:op,categoryReducer:Fu,assetReducer:ad,assetAttachmentReducer:Rc,assetStageCompletionReducer:ud,assetStageReducer:Ad,assetTypeReducer:pu,assetTypeAttachmentReducer:_d,issueReducer:ql,issueAttachmentReducer:pl,issueTypeReducer:Eh,issueTypeAttachmentReducer:Nl,organizationReducer:cm,projectReducer:Nm,projectAttachmentReducer:wm,projectAccessReducer:fm,organizationAccessReducer:xh,projectFileReducer:Bm,rehydratedReducer:Ym,formReducer:Po,formRevisionReducer:go,formRevisionAttachmentReducer:po,formSubmissionAttachmentReducer:qo,formSubmissionReducer:Go,formIdentifierReducer:so,formIdentifierValueReducer:co,userReducer:Wh,emailDomainsReducer:Wu,documentsReducer:ku,documentAttachmentReducer:qu,teamReducer:dp,agentsReducer:Sc,issueCommentReducer:vl,issueCommentAttachmentReducer:Pl,issueUpdateReducer:Gh,geoImageReducer:Xo,issueAssociationReducer:nl,issueTypeFieldsReducer:uh,issueTypeFieldValuesReducer:sh,issueTypeFieldsAttachmentReducer:Ql,issueTypeFieldValuesAttachmentReducer:fh,issueTypeIdentifierReducer:gh,issueTypeIdentifierValueReducer:Oh,assetTypeFieldsReducer:Gd,assetTypeFieldValuesReducer:tu,assetTypeFieldsAttachmentReducer:qd,assetTypeFieldValuesAttachmentReducer:Kd,assetTypeIdentifierReducer:cu,assetTypeIdentifierValueReducer:ou,assetProcedureReducer:br,assetProcedureInstanceReducer:Sr,assetProcedureFieldsReducer:xc,assetProcedureFieldValuesReducer:hr,assetProcedureFieldsAttachmentReducer:Wc,assetProcedureFieldValuesAttachmentReducer:cr,assetProcedureAttachmentReducer:zc,assetProcedureStepFieldsAttachmentReducer:Er,assetProcedureStepFieldsReducer:qr,assetProcedureStepFieldValuesAttachmentReducer:Gr,assetProcedureStepFieldValuesReducer:Kr,assetProcedureStepReducer:Qr,teamMembershipReducer:ep},zg=d.combineReducers(lp);function Ug(t,e){return vp.useMemo(t,e)}class Dg{constructor(e){S(this,"operations",[]);S(this,"getData");this.getData=e}performOperations(e){let i=e;for(const a of this.operations)i=a(i);return i}filter(e,i){return this.operations.push(a=>a.filter(n=>n[e]===i)),this}exclude(e,i){return this.operations.push(a=>a.filter(n=>n[e]!==i)),this}orderBy(e){return this.operations.push(i=>[...i].sort((a,n)=>a[e]<=n[e]?1:-1)),this}reverse(){return this.operations.push(e=>[...e].reverse()),this}all(){return this.operations.push(e=>e),this}get(e,i){return d.createSelector([this.getData],a=>this.performOperations(a).find(n=>n[e]===i))}count(){return d.createSelector([this.getData],e=>this.performOperations(e).length)}first(){return d.createSelector([this.getData],e=>this.performOperations(e)[0])}last(){return d.createSelector([this.getData],e=>{const i=this.performOperations(e);return i[i.length-1]})}exists(){return d.createSelector([this.getData],e=>this.performOperations(e).length>0)}toSelector(){return d.createSelector([this.getData],e=>I(this.performOperations(e)))}}let hp;function Cg(t){hp=t}function bt(){return hp}let mp;function kg(t){mp=t}function Bg(){return mp}const pp={};class Ap{constructor(e){S(this,"client");pp[this.constructor.name]=this,this.client=e}async enqueueRequest(e,i){return this.client.enqueueRequest(e,this.host,this.constructor.name,i)}async performPagination(e,i,a){const n=[];let c=await this.client.enqueueRequest(e,this.host,this.constructor.name,a);for(n.push(c.results);c.next;)c=await this.client.enqueueRequest(i(c.next),this.host,this.constructor.name,a),n.push(c.results);return n}dispatch(e){this.client.store.dispatch(e)}}const fp=()=>Ip.length-1,yp=t=>(t[tt]={version:fp()},t),Sp=()=>yp({}),Gg=t=>(t.outboxReducer&&(t.outboxReducer.deletedRequests=[]),t),$g=t=>e=>{var i;return e===void 0&&(e={}),((i=e[tt])==null?void 0:i.version)===fp()?e:t(e)},Ip=[yp,Sp,Sp,Gg],Lg=Object.fromEntries(Ip.map((t,e)=>[e,$g(t)]));let Yn=null;function Ye(){const t=bt();if(!t)return console.warn("Client store not set; cannot get outbox coordinator yet."),null;if(Yn)return Yn;const e=t.getState().offline.outbox,i=et._fromOutbox(e);return Yn=i,i}const Ng=t=>{if(t)throw t;const e=bt();e?e.dispatch({type:"rehydrated/setRehydrated",payload:!0}):console.error("Client store not set")},Tp=(t,e,i)=>{const a=Ye();return a?(a.addRequest(e),a.getQueue()):(console.warn("Outbox coordinator not set; cannot enqueue request yet."),[])},gp=(t,e,i)=>{const a=Ye();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 Hg(t,e){if(!e.payload)throw new Error("Received empty payload");return eb(e)}const Wg={...xn,effect:Hg,discard:Zn,returnPromises:!0,persistCallback:Ng,retry:sb,persistOptions:{storage:Mp},queue:{...xn.queue,enqueue:Tp,dequeue:gp,peek:(...t)=>tb(...t)}},Yg=Ep(Lg,tt),Kg=d.compose(wp.offline(Wg),Yg);function Zg(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}}async function Kn(t,e,i){const a=pp[t.meta.offline.effect.serviceName];if(!a)throw new Error(`Service ${t.meta.offline.effect.serviceName} not found`);const n=a instanceof R;if(e.store.getState().outboxReducer.deletedRequests.includes(t.payload.uuid))throw new Error("Request was marked for deletion");n&&t.payload.checkAuth!==!1&&await a.auth.prepareAuth();const r={queryParams:"",isAuthNeeded:!0},u=t.meta.offline.effect,{payload:m,headers:o,method:h,queryParams:p,attachmentHash:A,isExternalUrl:f,isAuthNeeded:T,isResponseBlob:F}={...r,...u.request},_=u.request;let w=_.url;const z=A?await e.files.fetchCache(A):void 0;if(A&&!z)throw new Error(`Cannot upload file ${A} because it's not cached.`);!f&&!w.startsWith("http")&&(!w.startsWith("/")&&!w.startsWith("blob:")&&(w="/"+w),w=t.meta.offline.effect.BASE_URL+w);const Le=q=>{if(A){const Ne=_.s3url;if(!Ne)throw new Error(`No S3 URL for file ${A}`);if("warning"in Ne)throw new Error(`S3 URL warning for file ${A}`);if(!z)throw new Error(`No file for file ${A}`);const Ft=Ne.fields["x-amz-checksum-sha1"];if(!Ft)throw new Error(`No checksum for file ${A}`);return q.set("x-amz-checksum-sha1",Ft).field({...m,...Ne.fields}).attach("file",z)}return q.send(m)},bF={[l.GET]:()=>F?Ze.get(w.toString()).responseType("blob"):Ze.get(w.toString()),[l.POST]:()=>{const q=Ze.post(w.toString());return Le(q)},[l.PATCH]:()=>{const q=Ze.patch(w.toString());return Le(q)},[l.PUT]:()=>{const q=Ze.put(w.toString());return Le(q)},[l.DELETE]:()=>{const q=Ze.delete(w.toString());return Le(q)}}[h];let We=bF();if(i==null||i.addEventListener("abort",()=>{console.debug("aborting request:",_),We.abort()}),T&&n){const q=a.auth.getAuthHeader();We=We.set("Authorization",q)}o&&(We=We.set(o));try{return await We.query(p)}catch(q){const Ne=Zg(q),Ft=Ne==null?void 0:Ne.status;if(n&&Ft===401)return await a.auth.handleUnauthorized(We,Ne),We.query(p);throw new D({response:Ne,innerError:q,discard:Fp.includes(Ft)})}}class Jg{constructor(e){S(this,"_all");S(this,"_previous");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 bp{constructor(){S(this,"next");this.next=null}then(e){return new Jg(this).then(e)}async run(e){if(this.next)return this.next.run(e);{if(console.debug("Middleware finished. Performing request:",e),!bt())throw new Error("Client store not set");const a=Bg();if(!a)throw new Error("Client SDK not set");return Kn(e,a)}}}class Xg extends bp{async run(e){return super.run(e)}}class Qg extends bp{async run(e){return super.run(e)}}const xg=new Xg().then(new Qg).compile();function eb(t){var e;return(e=xg[0])==null?void 0:e.run(t)}const Fp=[400,409,403,404,405,500];function Zn(t,e,i=0){var o;if(console.debug("Considering discarding request due to error:",t,`(${typeof t})`,`
|
|
3
3
|
Action:`,e,`
|
|
4
4
|
Retries:`,i),!(t instanceof Error))throw console.error("ENCOUNTERED NON-ERROR ERROR:",t,"(throwing immediately, which may lead to unexpected behavior)"),t;const a=bt(),c=a.getState().outboxReducer.deletedRequests,r=e.payload.uuid;function u(){a.dispatch(om(r));const h=Ye();if(!h)throw new Error("Outbox coordinator not set");h.remove(e.payload.uuid);const p=e.meta.offline.rollback;throw p&&(console.warn("Rolling back request due to SDK error:",e),a.dispatch(p)),t}if(t instanceof D&&t.options.discard)return console.debug("Discarding request due to explicit discard:",e),u();if(c.includes(r))return console.debug("Discarding request due to deletion:",e),u();if(t instanceof D){const h=t.status||((o=t.response)==null?void 0:o.status);if(h||console.warn("Error has no status code:",t),h!==void 0&&Fp.includes(h)){console.warn("Discarding request due to error:",t,`
|
|
@@ -11,5 +11,5 @@ Action:`,e);const p=Ye();if(!p)throw new Error("Outbox coordinator not set");p.r
|
|
|
11
11
|
REST API, you will be requesting localhost:80 (where this app runs), resulting in a transformed blob
|
|
12
12
|
(with an uuid attached) being returned. Alternatively, you may be running with
|
|
13
13
|
import.meta.env.PROD, which will result in some file requests being treated as
|
|
14
|
-
external URLs and therefore not prepended with VITE_API_URL.`;throw new Error(f)}const p=o.type.split("/")[1];if(!p)throw new Error("File has no extension");const A=n??h+"."+p;if(o=rc(o,A),!o.name)throw new Error("Failed to set file's name");await this.addCache(o,h),Jt[c]=new Promise(f=>{f(o)})}return o}}class Bb extends R{add(e){var u;const{store:i}=this.client,a=(u=i.getState().userReducer.currentUser)==null?void 0:u.id,n=new Date().toISOString(),c=b({...e,created_by:a,submitted_at:n});this.dispatch(Ki(c));const r=this.enqueueRequest({description:"Create form identifier",method:l.POST,url:"/form-identifiers/",payload:v(c),blockers:[c.form],blocks:[c.uuid]});return r.then(m=>{this.dispatch(ht(m))}).catch(()=>{this.dispatch(Zi(c.uuid))}),[c,r]}update(e){const{store:i}=this.client,a=Ji(e.uuid)(i.getState());if(!a)throw new Error(`Expected form identifier with uuid ${e.uuid} to exist`);const n={...a,...e};this.dispatch(ht(n));const c=this.enqueueRequest({description:"Update form identifier",method:l.PATCH,url:`/form-identifiers/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return c.then(r=>{this.dispatch(ht(r))}).catch(()=>{this.dispatch(ht(a))}),[n,c]}async delete(e){const{store:i}=this.client,a=i.getState(),n=Ji(e)(a);if(!n)throw new Error(`Expected form identifier with uuid ${e} to exist`);this.dispatch(Zi(e));try{return await this.enqueueRequest({description:"Delete form identifier",method:l.DELETE,url:`/form-identifiers/${e}/`,blockers:[e],blocks:[]})}catch(c){throw this.dispatch(Ki(n)),c}}async refreshStore(e,i){const a=await this.enqueueRequest({description:"Get form identifiers",method:l.GET,url:"/form-identifiers/",queryParams:{form__organization:e},blockers:[],blocks:[]},i);return this.dispatch(xu(a)),a}}class Gb extends R{add(e){var u;const{store:i}=this.client,a=(u=i.getState().userReducer.currentUser)==null?void 0:u.id,n=new Date().toISOString(),c=b({...e,created_by:a,submitted_at:n});this.dispatch(Qi(c));const r=this.enqueueRequest({description:"Create form identifier value",method:l.POST,url:"/form-identifier-values/",payload:v(c),blockers:[e.form_submission,e.form_identifier],blocks:[c.uuid]});return r.then(m=>{this.dispatch(mt(m))}).catch(()=>{this.dispatch(xi(c.uuid))}),[c,r]}update(e){const{store:i}=this.client,a=ta(e.uuid)(i.getState());if(!a)throw new Error(`Expected form identifier value with uuid ${e.uuid} to exist`);const n={...a,...e};this.dispatch(mt(n));const c=this.enqueueRequest({description:"Update form identifier value",method:l.PATCH,url:`/form-identifier-values/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return c.then(r=>{this.dispatch(mt(r))}).catch(()=>{this.dispatch(mt(a))}),[n,c]}async delete(e){const{store:i}=this.client,a=i.getState(),n=ta(e)(a);if(!n)throw new Error(`Expected form identifier value with uuid ${e} to exist`);this.dispatch(xi(e));try{return await this.enqueueRequest({description:"Delete form identifier value",method:l.DELETE,url:`/form-identifier-values/${e}/`,blockers:[e],blocks:[]})}catch(c){throw this.dispatch(Qi(n)),c}}async refreshStore(e,i){const n=(await this.performPagination({immediate:!0,description:"Get form identifier values",method:l.GET,url:"/form-identifier-values/",queryParams:{limit:E,paginate:!0,form_submission__project:e},blockers:[],blocks:[]},c=>({immediate:!0,description:"Get form identifier values",method:l.GET,url:c,blockers:[],blocks:[]}),i)).flat();return this.dispatch(ao(n)),n}}class $b extends j{async bulkAdd(e){var m;const i=new Date().toISOString(),a=(m=this.client.store.getState().userReducer.currentUser)==null?void 0:m.id,n={},c=[],r=[];for(const o of e){const{revisionUuid:h,fieldIdentifier:p,file:A}=o,f=await this.getFilePayload(A);f.sha1 in n||(n[f.sha1]=f);const T=b({file:URL.createObjectURL(A),file_type:A.type,file_name:A.name,file_sha1:f.sha1,created_by:a,form_revision:h,submitted_at:i,field_identifier:p});c.push(T);const F={uuid:T.uuid,file_name:A.name,field_identifier:p,file_extension:f.extension,file_sha1:f.sha1,form_revision:h};r.push(F)}this.dispatch(oo(c));const u=this.enqueueRequest({description:"Attach files to form revision",method:l.POST,url:"/form-revision-attachments/bulk/",payload:{submitted_at:i,attachments:r,files:Object.values(n)},blockers:c.map(o=>o.form_revision),blocks:c.map(o=>o.uuid)});return u.then(o=>{this.processPresignedUrls(o.presigned_urls),this.dispatch(lo(o.attachments))}).catch(()=>{this.dispatch(ho(c.map(o=>o.uuid)))}),[c,u.then(({attachments:o})=>o)]}async refreshStore(e,i){const a=await this.enqueueRequest({immediate:!0,description:"Fetch organization form revision attachments",method:l.GET,url:"/form-revision-attachments/",queryParams:{form_revision__form__organization:e},blockers:[e],blocks:[]},i);return this.dispatch(uo(a)),a}}class Lb extends j{add(e){var u;const{store:i}=this.client,n=(u=i.getState().userReducer.currentUser)==null?void 0:u.id,c=b({...e,created_by:n,submitted_at:new Date().toISOString()});this.dispatch(aa(c));const r=this.enqueueRequest({description:"Create form revision",method:l.POST,url:"/form-revisions/",payload:v(c),blockers:[e.form],blocks:[c.uuid]});return r.then(m=>{this.dispatch(So(m))}).catch(()=>{this.dispatch(na(c.uuid))}),[c,r]}async refreshStore(e,i){const a=await this.enqueueRequest({immediate:!0,description:"Get organization form revisions",method:l.GET,url:"/form-revisions/",queryParams:{form__organization:e},blockers:[e],blocks:[]},i);return this.dispatch(fo(a)),a}}class Nb extends j{add(e,i){var o;const{store:a}=this.client,n=new Date().toISOString(),c=(o=a.getState().userReducer.currentUser)==null?void 0:o.id,r=b({...e,submitted_at:n,created_by:c}),u=b({...i,form:r.uuid,submitted_at:n,created_by:c});this.dispatch(ua(r)),this.dispatch(aa(u));const m=this.enqueueRequest({description:"Create form",method:l.POST,url:"/forms/",payload:{...v(r),initial_revision:{uuid:u.uuid,submitted_at:u.submitted_at,title:u.title,description:u.description,fields:u.fields}},blockers:[],blocks:[r.uuid,u.uuid]});return m.catch(h=>{throw this.dispatch(oa(r.uuid)),this.dispatch(na(u.uuid)),h}),[r,u,m]}async delete(e){const{store:i}=this.client,a=i.getState(),n=Ro(e)(a);if(!n)throw new Error("Expected form to exist");const c=Bo(e)(a);c.length>0&&this.dispatch(ko(c.map(({uuid:u})=>u)));const r=To(e)(a);r.length>0&&this.dispatch(Io(r.map(({uuid:u})=>u))),this.dispatch(oa(e));try{return await this.enqueueRequest({description:"Delete form",method:l.DELETE,url:`/forms/${e}/`,blockers:[e],blocks:[]})}catch(u){throw this.dispatch(ua(n)),r.length>0&&this.dispatch(yo(r)),c.length>0&&this.dispatch(Do(c)),u}}async refreshStore(e,i){const a=await this.enqueueRequest({immediate:!0,description:"Fetch organization forms",method:l.GET,url:"/forms/",queryParams:{organization:e},blockers:[e],blocks:[]},i);return this.dispatch(Fo(a)),a}}class Hb extends j{async bulkAdd(e){var m;const i=new Date().toISOString(),a=(m=this.client.store.getState().userReducer.currentUser)==null?void 0:m.id,n={},c=[],r=[];for(const o of e){const{submissionUuid:h,fieldIdentifier:p,file:A}=o,f=await this.getFilePayload(A);f.sha1 in n||(n[f.sha1]=f);const T=b({file:URL.createObjectURL(A),file_type:A.type,file_name:A.name,file_sha1:f.sha1,created_by:a,form_submission:h,submitted_at:i,field_identifier:p});c.push(T);const F={uuid:T.uuid,file_name:A.name,file_sha1:f.sha1,file_extension:f.extension,field_identifier:p,form_submission:h};r.push(F)}this.dispatch(Bt(c));const u=this.enqueueRequest({description:"Attach files to form submission",method:l.POST,url:"/form-submission-attachments/bulk/",payload:{submitted_at:i,attachments:r,files:Object.values(n)},blockers:c.map(o=>o.form_submission),blocks:c.map(o=>o.uuid)});return u.then(o=>{this.processPresignedUrls(o.presigned_urls),this.dispatch(Mo(o.attachments))}).catch(o=>{throw this.dispatch(Gt(c.map(h=>h.uuid))),o}),[c,u.then(({attachments:o})=>o)]}async bulkDelete(e){const{store:i}=this.client,a=i.getState(),n=Vo(e)(a);this.dispatch(Gt(e));try{await this.enqueueRequest({description:"Delete form submission attachments",method:l.DELETE,url:"/form-submission-attachments/bulk/",payload:{uuids:e},blockers:e,blocks:[]})}catch(c){throw this.dispatch(Bt(n)),c}}async refreshStore(e,i){const n=(await this.performPagination({immediate:!0,description:"Get form submission attachments",method:l.GET,url:"/form-submission-attachments/",queryParams:{limit:E,paginate:!0,form_submission__project:e},blockers:[],blocks:[]},c=>({immediate:!0,description:"Get form submission attachments",method:l.GET,url:c,blockers:[],blocks:[]}),i)).flat();return this.dispatch(wo(n)),n}}class Wb extends j{add(e){var r;const{store:i}=this.client,a=i.getState(),n=b({...e,created_by:(r=a.userReducer.currentUser)==null?void 0:r.id,submitted_at:new Date().toISOString()}),c=this.enqueueRequest({description:"Add form submission",method:l.POST,url:"/form-submissions/",payload:v(n),blockers:[e.form_revision],blocks:[n.uuid]});return this.dispatch(pa(n)),c.then(u=>(this.dispatch($t(u)),u)).catch(()=>{this.dispatch(Aa(n.uuid))}),[n,c]}update(e){const{store:i}=this.client,a=i.getState(),n=ya(e.uuid)(a);if(!n)throw new Error(`Expected submission with uuid ${e.uuid} to exist`);const c={...n,...e};this.dispatch(Co(c));const r=this.enqueueRequest({description:"Delete user form submissions",method:l.PATCH,url:`/form-submissions/${c.uuid}/`,payload:e,blockers:[c.uuid],blocks:[c.uuid]});return r.then(u=>{this.dispatch($t(u))}).catch(()=>{this.dispatch($t(n))}),[c,r]}async delete(e){const{store:i}=this.client,a=i.getState(),n=ya(e)(a);if(!n)throw new Error(`Expected submission with uuid ${e} to exist`);const c=jo(e)(a);this.dispatch(Aa(e)),this.dispatch(Gt(c.map(r=>r.uuid)));try{return await this.enqueueRequest({description:"Delete user form submissions",method:l.DELETE,url:`/form-submissions/${e}/`,blockers:[e],blocks:[]})}catch(r){throw this.dispatch(pa(n)),this.dispatch(Bt(c)),r}}async refreshStore(e,i){const n=(await this.performPagination({immediate:!0,description:"Fetch form submissions",method:l.GET,url:"/form-submissions/",queryParams:{limit:E,paginate:!0,project:e},blockers:[],blocks:[]},c=>({immediate:!0,description:"Fetch form submissions",method:l.GET,url:c,blockers:[],blocks:[]}),i)).flat();return this.dispatch(Uo(n)),n}}class Yb extends j{async add(e){var p;const{store:i}=this.client,{file:a,...n}=e,c=new Date().toISOString(),r=(p=i.getState().userReducer.currentUser)==null?void 0:p.id,u=n.project,m=await this.getFilePayload(a),o=b({...n,file_name:a.name,file_sha1:m.sha1,file:URL.createObjectURL(a),submitted_at:c,created_by:r});this.dispatch(Ho(o));const h=this.enqueueRequest({description:"Add geo image",method:l.POST,url:"/geo-images/",payload:{uuid:o.uuid,submitted_at:c,title:o.title,description:o.description,geo_marker:o.geo_marker,canvas_marker:o.canvas_marker,sha1:o.file_sha1,project:o.project,file_name:o.file_name,direction:o.direction,original_date:o.original_date,file:m},blocks:[u],blockers:[u]});return h.then(A=>{this.processPresignedUrls(A.presigned_urls),this.dispatch(pt(A.geo_image))}).catch(()=>{this.dispatch(Ia(o.uuid))}),[o,h.then(A=>A.geo_image)]}async bulkAdd(e,i){var p;const{store:a}=this.client,n=new Date().toISOString(),c=(p=a.getState().userReducer.currentUser)==null?void 0:p.id,r=[],u=[],m=[],o={};for(const A of e){const{file:f,...T}=A,F=await this.getFilePayload(f);F.sha1 in o||(o[F.sha1]=F);const _=b({...T,file_name:f.name,file_sha1:F.sha1,file:URL.createObjectURL(f),submitted_at:n,created_by:c,project:i});r.push(_),u.push(_.uuid),m.push({uuid:_.uuid,sha1:_.file_sha1,file_name:_.file_name,title:_.title,description:_.description,geo_marker:_.geo_marker,canvas_marker:_.canvas_marker,direction:_.direction,original_date:_.original_date})}this.dispatch(Wo(r));const h=this.enqueueRequest({description:"Bulk add geo images",method:l.POST,url:"/geo-images/bulk/",payload:{submitted_at:n,project:i,geo_images:m,files:Object.values(o)},blocks:[i],blockers:u});return h.then(A=>{this.processPresignedUrls(A.presigned_urls),this.dispatch(No(A.geo_images))}).catch(()=>{this.dispatch(Ko(u))}),[r,h.then(A=>A.geo_images)]}update(e){const{store:i}=this.client,a=i.getState(),n=Ta(e.uuid)(a);if(!n)throw new Error(`Map image with uuid ${e.uuid} does not exist in the store`);const c={...n,...e};this.dispatch(Yo(c));const r=this.enqueueRequest({description:"Update geo image",method:l.PATCH,url:`/geo-images/${e.uuid}/`,payload:e,blocks:[e.uuid],blockers:[e.uuid]});return r.then(u=>{this.dispatch(pt(u))}).catch(()=>{this.dispatch(pt(n))}),[c,r]}async delete(e){const{store:i}=this.client,a=i.getState(),n=Ta(e)(a);if(!n)throw new Error(`Map image with uuid ${e} does not exist in the store`);this.dispatch(Ia(e));const c=this.enqueueRequest({description:"Delete geo image",method:l.DELETE,url:`/geo-images/${e}/`,blocks:[e],blockers:[e]});return c.catch(()=>{this.dispatch(pt(n))}),c}async refreshStore(e,i){const a=await this.enqueueRequest({immediate:!0,description:"Get geo images",method:l.GET,url:"/geo-images/",queryParams:{project:e},blocks:[e],blockers:[]},i);return this.dispatch(Lo(a)),a}}class Kb extends R{add(e){var u;const{store:i}=this.client,a=new Date().toISOString(),n=(u=i.getState().userReducer.currentUser)==null?void 0:u.id,c=b({...e,submitted_at:a,created_by:n});this.dispatch(ba(c));const r=this.enqueueRequest({description:"Add issue association",method:l.POST,url:"/issue-associations/",payload:v(c),blockers:[e.associated_issue,...e.issue?[e.issue]:[],...e.asset?[e.asset]:[]],blocks:[c.uuid]});return r.then(m=>{this.dispatch(el(m))}).catch(()=>{this.dispatch(Pa(c.uuid))}),[c,r]}async delete(e){const{store:i}=this.client,a=tl(e)(i.getState());if(!a)throw new Error(`Issue association with uuid ${e} not found in store.`);this.dispatch(Pa(e));const n=this.enqueueRequest({description:"Delete issue association",method:l.DELETE,url:`/issue-associations/${e}/`,blockers:[e],blocks:[]});return n.catch(()=>{this.dispatch(ba(a))}),n}async refreshStore(e,i){const n=(await this.performPagination({immediate:!0,description:"Fetch issue associations",method:l.GET,url:"/issue-associations/",queryParams:{limit:E,paginate:!0,associated_issue__project:e},blockers:[],blocks:[]},c=>({immediate:!0,description:"Fetch issue associations",method:l.GET,url:c,blockers:[],blocks:[]}),i)).flat();return this.dispatch(xo(n)),n}}class Zb extends He{constructor(){super(...arguments);S(this,"name","Issue Attachment");S(this,"url","/issue-attachments");S(this,"initializeAttachments",Ra);S(this,"addAttachments",va);S(this,"updateAttachments",dl);S(this,"removeAttachments",wa);S(this,"removeAttachment",ul);S(this,"setAttachment",rl);S(this,"selectAttachment",ml)}buildOfflineAttachment(i){return b({file:URL.createObjectURL(i.file),file_sha1:i.file_sha1,created_by:i.created_by,file_name:i.file.name,file_type:i.file.type,submitted_at:i.submitted_at,description:i.description,issue:i.modelUuid})}buildAttachmentPayload(i){return{...i,issue:i.modelUuid}}async bulkAdd(i){return this._bulkAdd(i.map(a=>({modelUuid:a.issueUuid,file:a.file})))}async delete(i){return this._delete(i)}async refreshStore(i,a){const c=(await this.performPagination({immediate:!0,description:"Get issue attachments",method:l.GET,url:`${this.url}/`,queryParams:{limit:E,paginate:!0,issue__project:i},blocks:[],blockers:[]},r=>({immediate:!0,description:"Get issue attachments",method:l.GET,url:r,blockers:[],blocks:[]}),a)).flat();return this.dispatch(Ra(c)),c}}class Jb extends He{constructor(){super(...arguments);S(this,"name","Issue Comment Attachment");S(this,"url","/issue-comment-attachments");S(this,"initializeAttachments",Ea);S(this,"addAttachments",fl);S(this,"updateAttachments",Sl);S(this,"removeAttachments",Tl);S(this,"removeAttachment",Il);S(this,"setAttachment",yl);S(this,"selectAttachment",Fl)}buildOfflineAttachment(i){return b({file:URL.createObjectURL(i.file),file_sha1:i.file_sha1,created_by:i.created_by,file_name:i.file.name,file_type:i.file.type,submitted_at:i.submitted_at,description:i.description,issue_comment:i.modelUuid})}buildAttachmentPayload(i){return{...i,issue_comment:i.modelUuid}}async bulkAdd(i){return this._bulkAdd(i.map(a=>({modelUuid:a.issueCommentUuid,file:a.file})))}async delete(i){return this._delete(i)}async refreshStore(i,a){const c=(await this.performPagination({immediate:!0,description:"Get issue comment attachments",method:l.GET,url:`${this.url}/`,queryParams:{limit:E,paginate:!0,issue_comment__issue__project:i},blocks:[],blockers:[]},r=>({immediate:!0,description:"Get issue comment attachments",method:l.GET,url:r,blockers:[],blocks:[]}),a)).flat();return this.dispatch(Ea(c)),c}}class Xb extends R{add(e){var c;const{store:i}=this.client,a=b({...e,author:(c=i.getState().userReducer.currentUser)==null?void 0:c.id,submitted_at:new Date().toISOString()});this.dispatch(ja(a));const n=this.enqueueRequest({description:"Add issue comment",method:l.POST,url:"/issue-comments/",payload:v(a),blockers:[e.issue],blocks:[a.uuid]});return n.catch(()=>{this.dispatch(za(a.uuid))}),[a,n]}update(e){const{store:i}=this.client,a=Ua(e.uuid)(i.getState());if(!a)throw new Error(`Comment with uuid ${e.uuid} not found in store`);const n={...a,...e};this.dispatch(qa(n));const c=this.enqueueRequest({description:"Edit issue comment",method:l.PATCH,url:`/issue-comments/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return c.catch(()=>{this.dispatch(qa(a))}),[n,c]}remove(e){const{store:i}=this.client,a=Ua(e)(i.getState());if(!a)throw new Error(`Comment with uuid ${e} not found in store`);this.dispatch(za(e));const n=this.enqueueRequest({description:"Delete comment",method:l.DELETE,url:`/issue-comments/${e}/`,blockers:[e],blocks:[]});return n.catch(()=>{this.dispatch(ja(a))}),n}async refreshStore(e,i){const a=await this.enqueueRequest({immediate:!0,description:"Get comments",method:l.GET,url:"/issue-comments/",queryParams:{issue__project:e},blockers:[],blocks:[]},i);return this.dispatch(_l(a)),a}}class Qb extends R{add(e){var m;const{store:i}=this.client,a=i.getState(),n=new Date().toISOString(),c=(m=a.userReducer.currentUser)==null?void 0:m.id,r=b({...e,submitted_at:n,created_by:c});this.dispatch(Ca(r));const u=this.enqueueRequest({description:"Create issue",method:l.POST,url:"/issues/",payload:v(r),blockers:[r.project,r.issue_type,...r.category?[r.category]:[]],blocks:[r.uuid]});return u.then(o=>{this.dispatch(Lt(o))}).catch(o=>{throw this.dispatch(ka(r.uuid)),o}),[r,u]}update(e){var m;const i=this.client.store.getState(),a=$a(e.uuid)(i);if(!a)throw new Error(`Attempting to update an issue with uuid ${e.uuid} that doesn't exist in the store`);const n={...a,...e};this.dispatch(Lt(n));const c={};for(const o of[V.TITLE,V.DESCRIPTION,V.STATUS,V.CATEGORY,V.PRIORITY,V.ASSIGNED_TO,V.DUE_DATE])if(o in e&&e[o]!==a[o])switch(o){case V.PRIORITY:case V.STATUS:{const h=e[o];c[o]=h!==void 0?Number(h):null;break}case V.DUE_DATE:case V.DESCRIPTION:case V.TITLE:c[o]=e[o]??null;break;case V.CATEGORY:{let h=null;const p=e[o];if(p&&(h=i.categoryReducer.instances[p]??null,!h))throw new Error(`Trying to update issue category to ${p} which does not exist in store`);c[o]=h?{name:h.name,color:h.color,uuid:h.uuid}:null;break}case V.ASSIGNED_TO:{let h=null;const p=e[o];if(p&&(h=i.userReducer.instances[p]??null,!h))throw new Error(`Trying to update issue assigned_to to ${p} which does not exist in store`);c[o]=h?{full_name:h.username,id:h.id}:null;break}}const r=b({created_by:(m=i.userReducer.currentUser)==null?void 0:m.id,submitted_at:new Date().toISOString(),issue:a.uuid,changes:c});this.dispatch(qh(r));const u=this.enqueueRequest({description:"Edit issue",method:l.PATCH,url:`/issues/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return u.catch(()=>{this.dispatch(Lt(a)),this.dispatch(Uh(r.uuid))}),[n,u]}async remove(e){const{store:i}=this.client,a=i.getState(),n=$a(e)(a);if(!n)throw new Error(`No issue with uuid ${e} found in the store`);const c=hl(e)(a),r=Bh(e)(a),u={};for(const o of sl(e)(a))u[o.uuid]=o;for(const o of il(e)(a))u[o.uuid]=o;const m=Object.values(u);this.dispatch(ka(e)),c.length>0&&this.dispatch(wa(c.map(({uuid:o})=>o))),r.length>0&&this.dispatch(Dh(r.map(({uuid:o})=>o))),m.length>0&&this.dispatch(Oa(m.map(({uuid:o})=>o)));try{return await this.enqueueRequest({description:"Delete issue",method:l.DELETE,url:`/issues/${e}/`,blockers:[e],blocks:[]})}catch(o){throw this.dispatch(Ca(n)),this.dispatch(va(c)),this.dispatch(zh(r)),this.dispatch(Fa(m)),o}}async refreshStore(e,i){const n=(await this.performPagination({immediate:!0,description:"Get issues",method:l.GET,url:"/issues/",queryParams:{limit:E,paginate:!0,project:e},blockers:[],blocks:[]},c=>({immediate:!0,description:"Get issues",method:l.GET,url:c,blockers:[],blocks:[]}),i)).flat();return this.dispatch(Ml(n)),n}}class xb extends He{constructor(){super(...arguments);S(this,"name","Issue Type Attachment");S(this,"url","/issue-type-attachments");S(this,"initializeAttachments",Na);S(this,"addAttachments",Ul);S(this,"updateAttachments",Cl);S(this,"removeAttachments",Bl);S(this,"removeAttachment",kl);S(this,"setAttachment",Dl);S(this,"selectAttachment",Ll)}buildOfflineAttachment(i){return b({file:URL.createObjectURL(i.file),file_sha1:i.file_sha1,created_by:i.created_by,file_name:i.file.name,file_type:i.file.type,submitted_at:i.submitted_at,description:i.description,issue_type:i.modelUuid})}buildAttachmentPayload(i){return{...i,issue_type:i.modelUuid}}async bulkAdd(i){return this._bulkAdd(i.map(a=>({modelUuid:a.issueTypeUuid,file:a.file})))}async delete(i){return this._delete(i)}async refreshStore(i,a){const n=await this.enqueueRequest({immediate:!0,description:"Get issue type attachments",method:l.GET,url:`${this.url}/`,queryParams:{issue_type__organization:i},blocks:[],blockers:[]},a);return this.dispatch(Na(n)),n}}class eF extends j{async bulkAdd(e){var m;const i=new Date().toISOString(),a=(m=this.client.store.getState().userReducer.currentUser)==null?void 0:m.id,n={},c=[],r=[];for(const o of e){const{fieldsRevisionUuid:h,fieldIdentifier:p,file:A}=o,f=await this.getFilePayload(A);f.sha1 in n||(n[f.sha1]=f);const T=b({file:URL.createObjectURL(A),file_type:A.type,file_name:A.name,file_sha1:f.sha1,created_by:a,fields_revision:h,submitted_at:i,field_identifier:p});c.push(T);const F={uuid:T.uuid,file_name:A.name,file_extension:f.extension,field_identifier:p,file_sha1:f.sha1,fields_revision:h};r.push(F)}this.dispatch(Yl(c));const u=this.enqueueRequest({description:"Add issue type fields attachments",method:l.POST,url:"/issue-type-fields-attachments/bulk/",payload:{submitted_at:i,attachments:r,files:Object.values(n)},blockers:c.map(o=>o.fields_revision),blocks:c.map(o=>o.uuid)});return u.then(o=>{this.processPresignedUrls(o.presigned_urls),this.dispatch(Kl(o.attachments))}).catch(()=>{this.dispatch(Zl(c.map(o=>o.uuid)))}),[c,u.then(({attachments:o})=>o)]}async refreshStore(e,i){const a=await this.enqueueRequest({immediate:!0,description:"get issue type fields attachments",method:l.GET,url:"/issue-type-fields-attachments/",queryParams:{fields_revision__issue_type__organization:e},blockers:[e],blocks:[]},i);return this.dispatch(Wl(a)),a}}class tF extends R{add(e){var u;const{store:i}=this.client,a=(u=i.getState().userReducer.currentUser)==null?void 0:u.id,n=new Date().toISOString(),c=b({...e,created_by:a,submitted_at:n});this.dispatch(nh(c));const r=this.enqueueRequest({description:"Add Issue Type Fields",method:l.POST,url:"/issue-type-fields/",payload:v(c),blockers:[c.issue_type],blocks:[c.uuid]});return r.then(m=>{this.dispatch(ch(m))}).catch(m=>{throw this.dispatch(rh(c.uuid)),m}),[c,r]}async refreshStore(e,i){const a=await this.enqueueRequest({immediate:!0,description:"Get Issue Type Fields",method:l.GET,url:"/issue-type-fields/",queryParams:{issue_type__organization:e},blockers:[],blocks:[]},i);return this.dispatch(ah(a)),a}}class sF extends j{async bulkAdd(e){var m;const i=new Date().toISOString(),a=(m=this.client.store.getState().userReducer.currentUser)==null?void 0:m.id,n={},c=[],r=[];for(const o of e){const{fieldValuesUuid:h,fieldIdentifier:p,file:A}=o,f=await this.getFilePayload(A);f.sha1 in n||(n[f.sha1]=f);const T=b({file:URL.createObjectURL(A),file_type:A.type,file_name:A.name,file_sha1:f.sha1,created_by:a,field_values:h,submitted_at:i,field_identifier:p});c.push(T);const F={uuid:T.uuid,file_name:A.name,file_sha1:f.sha1,file_extension:f.extension,field_identifier:p,field_values:h};r.push(F)}this.dispatch(Ht(c));const u=this.enqueueRequest({description:"Add issue type field values attachments",method:l.POST,url:"/issue-type-field-values-attachments/bulk/",payload:{submitted_at:i,attachments:r,files:Object.values(n)},blockers:c.map(o=>o.field_values),blocks:c.map(o=>o.uuid)});return u.then(({presigned_urls:o,attachments:h})=>{this.processPresignedUrls(o),this.dispatch(hh(h))}).catch(o=>{throw this.dispatch(Wt(c.map(h=>h.uuid))),o}),[c,u.then(({attachments:o})=>o)]}async bulkDelete(e){const{store:i}=this.client,a=i.getState(),n=ph(e)(a);this.dispatch(Wt(e));try{await this.enqueueRequest({description:"Delete issue type field values attachments",method:l.DELETE,url:"/issue-type-field-values-attachments/bulk/",payload:{uuids:e},blockers:e,blocks:[]})}catch(c){throw this.dispatch(Ht(n)),c}}async refreshStore(e,i){const n=(await this.performPagination({immediate:!0,description:"Get issue type field values attachments",method:l.GET,url:"/issue-type-field-values-attachments/",queryParams:{limit:E,paginate:!0,field_values__issue__project:e},blockers:[],blocks:[]},c=>({immediate:!0,description:"Get issue type field values attachments",method:l.GET,url:c,blockers:[],blocks:[]}),i)).flat();return this.dispatch(lh(n)),n}}class iF extends R{add(e){var r;const{store:i}=this.client,a=i.getState(),n=b({...e,created_by:(r=a.userReducer.currentUser)==null?void 0:r.id,submitted_at:new Date().toISOString()}),c=this.enqueueRequest({description:"Add issue type field values",method:l.POST,url:"/issue-type-field-values/",payload:v(n),blockers:[e.issue,e.fields_revision],blocks:[n.uuid]});return this.dispatch(Ya(n)),c.then(u=>(this.dispatch(ft(u)),u)).catch(()=>{this.dispatch(Ka(n.uuid))}),[n,c]}update(e){const{store:i}=this.client,a=i.getState(),n=Ja(e.uuid)(a);if(!n)throw new Error(`Expected IssueTypeFieldValues with uuid ${e.uuid} to exist`);const c={...n,...e};this.dispatch(ft(c));const r=this.enqueueRequest({description:"Update issue type field values",method:l.PATCH,url:`/issue-type-field-values/${e.uuid}/`,payload:e,blockers:[c.uuid,c.fields_revision,c.issue],blocks:[c.uuid]});return r.then(u=>{this.dispatch(ft(u))}).catch(()=>{this.dispatch(ft(n))}),[c,r]}async delete(e){const{store:i}=this.client,a=i.getState(),n=Ja(e)(a);if(!n)throw new Error(`Expected submission with uuid ${e} to exist`);const c=Ah(e)(a);this.dispatch(Ka(e)),this.dispatch(Wt(c.map(r=>r.uuid)));try{await this.enqueueRequest({description:"Delete issue type field values",method:l.DELETE,url:`/issue-type-field-values/${e}/`,blockers:[e],blocks:[]})}catch(r){throw this.dispatch(Ya(n)),this.dispatch(Ht(c)),r}}async refreshStore(e,i){const n=(await this.performPagination({immediate:!0,description:"Get issue type field values",method:l.GET,url:"/issue-type-field-values/",queryParams:{limit:E,paginate:!0,issue__project:e},blockers:[],blocks:[]},c=>({immediate:!0,description:"Get issue type field values",method:l.GET,url:c,blockers:[],blocks:[]}),i)).flat();return this.dispatch(eh(n)),n}}class aF extends R{add(e){var u;const{store:i}=this.client,a=(u=i.getState().userReducer.currentUser)==null?void 0:u.id,n=new Date().toISOString(),c=b({...e,created_by:a,submitted_at:n});this.dispatch(tn(c));const r=this.enqueueRequest({description:"Create issue type identifier",method:l.POST,url:"/issue-type-identifiers/",payload:v(c),blockers:[c.issue_type],blocks:[c.uuid]});return r.then(m=>{this.dispatch(yt(m))}).catch(()=>{this.dispatch(sn(c.uuid))}),[c,r]}update(e){const{store:i}=this.client,a=an(e.uuid)(i.getState());if(!a)throw new Error(`Expected issue type identifier with uuid ${e.uuid} to exist`);const n={...a,...e};this.dispatch(yt(n));const c=this.enqueueRequest({description:"Update issue type identifier",method:l.PATCH,url:`/issue-type-identifiers/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return c.then(r=>{this.dispatch(yt(r))}).catch(()=>{this.dispatch(yt(a))}),[n,c]}async delete(e){const{store:i}=this.client,a=i.getState(),n=an(e)(a);if(!n)throw new Error(`Expected issue type identifier with uuid ${e} to exist`);this.dispatch(sn(e));try{return await this.enqueueRequest({description:"Delete issue type identifier",method:l.DELETE,url:`/issue-type-identifiers/${e}/`,blockers:[e],blocks:[]})}catch(c){throw this.dispatch(tn(n)),c}}async refreshStore(e,i){const a=await this.enqueueRequest({description:"Get issue type identifiers",method:l.GET,url:"/issue-type-identifiers/",queryParams:{issue_type__organization:e},blockers:[],blocks:[]},i);return this.dispatch(Sh(a)),a}}class nF extends R{add(e){var u;const{store:i}=this.client,a=(u=i.getState().userReducer.currentUser)==null?void 0:u.id,n=new Date().toISOString(),c=b({...e,created_by:a,submitted_at:n});this.dispatch(cn(c));const r=this.enqueueRequest({description:"Create issue type identifier value",method:l.POST,url:"/issue-type-identifier-values/",payload:v(c),blockers:[e.issue,e.issue_type_identifier],blocks:[c.uuid]});return r.then(m=>{this.dispatch(St(m))}).catch(()=>{this.dispatch(rn(c.uuid))}),[c,r]}update(e){const{store:i}=this.client,a=un(e.uuid)(i.getState());if(!a)throw new Error(`Expected issue type identifier value with uuid ${e.uuid} to exist`);const n={...a,...e};this.dispatch(St(n));const c=this.enqueueRequest({description:"Update issue type identifier value",method:l.PATCH,url:`/issue-type-identifier-values/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return c.then(r=>{this.dispatch(St(r))}).catch(()=>{this.dispatch(St(a))}),[n,c]}async delete(e){const{store:i}=this.client,a=i.getState(),n=un(e)(a);if(!n)throw new Error(`Expected issue type identifier value with uuid ${e} to exist`);this.dispatch(rn(e));try{return await this.enqueueRequest({description:"Delete issue type identifier value",method:l.DELETE,url:`/issue-type-identifier-values/${e}/`,blockers:[e],blocks:[]})}catch(c){throw this.dispatch(cn(n)),c}}async refreshStore(e,i){const n=(await this.performPagination({immediate:!0,description:"Get issue type identifier values",method:l.GET,url:"/issue-type-identifier-values/",queryParams:{limit:E,paginate:!0,issue__project:e},blockers:[],blocks:[]},c=>({immediate:!0,description:"Get issue type identifier values",method:l.GET,url:c,blockers:[],blocks:[]}),i)).flat();return this.dispatch(Fh(n)),n}}class cF extends R{add(e){var r;const{store:i}=this.client,a=i.getState(),n=b({...e,submitted_at:new Date().toISOString(),created_by:(r=a.userReducer.currentUser)==null?void 0:r.id});this.dispatch(vh(n));const c=this.enqueueRequest({method:l.POST,url:"/issue-types/",payload:v(n),blockers:[],blocks:[n.uuid]});return c.then(u=>{this.dispatch(It(u))}).catch(()=>{this.dispatch(ln(n.uuid))}),[n,c]}update(e){const{store:i}=this.client,a=i.getState(),n=mn(e.uuid)(a);if(!n)throw new Error(`IssueType with uuid ${e.uuid} does not exist in the store.`);const c={...n,...e};this.dispatch(wh(c));const r=this.enqueueRequest({method:l.PATCH,url:`/issue-types/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return r.then(u=>{this.dispatch(It(u))}).catch(()=>{this.dispatch(It(n))}),[c,r]}delete(e){const{store:i}=this.client,a=i.getState(),n=mn(e)(a);if(!n)throw new Error(`IssueType with uuid ${e} does not exist in the store.`);const c=jl(e)(a);this.dispatch(ln(e)),this.dispatch(Vl(c.map(u=>u.uuid)));const r=this.enqueueRequest({method:l.DELETE,url:`/issue-types/${e}/`,blockers:[e],blocks:[]});return r.catch(()=>{this.dispatch(It(n)),this.dispatch(El(c))}),r}async refreshStore(e,i){const a=await this.enqueueRequest({immediate:!0,method:l.GET,url:"/issue-types/",queryParams:{organization:e},blockers:[],blocks:[]},i);return this.dispatch(Rh(a)),a}}class rF extends R{async refreshStore(e,i){const n=(await this.performPagination({immediate:!0,description:"Get issue updates",method:l.GET,url:"/issue-updates/",queryParams:{limit:E,paginate:!0,issue__project:e},blockers:[],blocks:[]},c=>({immediate:!0,description:"Get issue updates",method:l.GET,url:c,blockers:[],blocks:[]}),i)).flat();return this.dispatch(jh(n)),n}}const dF=1800;function uF(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 oF extends nb{constructor(){super(...arguments);S(this,"_getRenewedTokens",async i=>{const a=this.enqueueRequest({description:"Get renewed tokens",method:l.POST,url:this.refreshTokensUrl,payload:{refresh:i},isAuthNeeded:!1,blockers:[],blocks:[],checkAuth:!1,immediate:!0});let n;try{n=await a}catch(c){console.error("Could not renew tokens; clearing auth",c),this.clearAuth();return}if(!n.access)throw new Error("Missing access token");return{accessToken:n.access,refreshToken:n.refresh??this.getRefreshToken()}})}clearAuth(){console.debug(this.constructor.name,"clearing auth;"),this.dispatch(fu(!1)),this.clearTokens(),this.dispatch(g()),this.dispatch(g())}async renewTokens(){const i=this.getRefreshToken();if(!i)throw new Error("No refresh token found");console.debug(this.constructor.name,"renewing tokens");try{const a=await this._getRenewedTokens(i);if(!a)return;console.log("Got renewed tokens"),this.setTokens(a)}catch(a){throw console.error("Could not renew tokens; clearing auth",a),this.clearAuth(),a}}tokenIsExpiringSoon(){const i=this.getAccessToken();if(!i)return!1;const a=Date.now()/1e3;let n;try{n=jp(i).exp??a}catch{n=a}return n-a<dF}getAuthHeader(){return`Bearer ${this.getAccessToken()}`}async prepareAuth(){if(this.tokenIsExpiringSoon()){console.debug(this.constructor.name,"preparing auth");try{await this.renewTokens()}catch(i){return i instanceof D&&this.clearAuth(),i instanceof Error?Promise.reject(i):Promise.reject(new Error((i??xe).toString()))}}}async handleUnauthorized(i,a){const n=this.client.store.getState();if(i.url.endsWith("/token/refresh/"))throw n.authReducer.isLoggedIn&&console.warn("No signed-in user to sign out."),this.clearAuth(),new D({message:"You have been signed out due to inactivity.",response:a,discard:!0});if(n.authReducer.isLoggedIn)await this.renewTokens();else throw console.debug("Forbidden; user is not logged in."),new D({message:"Incorrect username or password.",response:a,discard:!0})}async initAuth(i){const a=Je.v4();return console.debug(this.constructor.name,"Initiating auth"),this.enqueueRequest({uuid:a,description:"Get token pair",method:l.POST,url:this.initTokensUrl,payload:i,isAuthNeeded:!1,checkAuth:!1,immediate:!0,blockers:[],blocks:[]}).then(n=>{this.setTokens(uF(n))})}}class lF extends R{update(e){const{store:i}=this.client,a=In(e.uuid)(i.getState()),n={...a,...e};this.dispatch(Kt(n));const c=this.enqueueRequest({description:"Edit organization access",method:l.PATCH,url:`/organization-accesses/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return c.then(r=>{this.dispatch(Kt(r))}).catch(r=>{throw this.dispatch(Kt(a)),r}),[n,c]}async remove(e){const{store:i}=this.client,a=i.getState(),n=In(e)(a),c=Kh(n.user)(a);this.dispatch(Qh(n.uuid)),this.dispatch(Hh(n.user));try{await this.enqueueRequest({description:"Remove organization access",method:l.DELETE,url:`/organization-accesses/${n.uuid}/`,blockers:[n.uuid],blocks:[]})}catch(r){throw this.dispatch(Xh(n)),this.dispatch(Nh(c)),r}}async refreshStore(e,i){const a=await this.enqueueRequest({immediate:!0,description:"Get organization accesses",method:l.GET,url:"/organization-accesses/",queryParams:{organization:e},blockers:[],blocks:[]},i);return this.dispatch(Jh(a)),a}}class hF extends R{async add(e){const i=await this.enqueueRequest({description:"Create organization",method:l.POST,url:"/organizations/",payload:e,blockers:[],blocks:[]});return this.dispatch(im(i)),i}async update(e){const i=await this.enqueueRequest({description:"Edit organization",method:l.PATCH,url:`/organizations/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return this.dispatch(am(i)),i}async invite(e,i){return this.enqueueRequest({description:"Invite user to organization",method:l.POST,url:`/organizations/${e}/invite/${i}/`,blockers:[],blocks:[]})}async refreshStore(e){const i=await this.enqueueRequest({immediate:!0,description:"Fetch organizations",method:l.GET,url:"/organizations/",blockers:[],blocks:[]},e);return this.dispatch(sm(i)),i}}class mF extends R{add(e){var c;const{store:i}=this.client,a=b({...e,created_by:(c=i.getState().userReducer.currentUser)==null?void 0:c.id});this.dispatch(Fn(a));const n=this.enqueueRequest({description:"Add project access",method:l.POST,url:"/project-accesses/",payload:v(a),blockers:[a.organization_access,a.project],blocks:[a.uuid]});return n.then(r=>{this.dispatch(Tt(r))}).catch(r=>{throw this.dispatch(On(a.uuid)),r}),[a,n]}bulkAdd(e){var r;const{store:i}=this.client,a=(r=i.getState().userReducer.currentUser)==null?void 0:r.id,n=e.map(u=>b({...u,created_by:a}));this.dispatch(Pn(n));const c=this.enqueueRequest({description:"Add project accesses",method:l.POST,url:"/project-accesses/bulk/",payload:{project_accesses:n.map(u=>v(u))},blockers:n.flatMap(u=>[u.project,u.organization_access]),blocks:n.map(u=>u.uuid)});return c.then(u=>{this.dispatch(Am(u))}).catch(u=>{throw this.dispatch(_n(n.map(m=>m.uuid))),u}),[n,c]}update(e){const{store:i}=this.client,a=vn(e.uuid)(i.getState()),n={...a,...e};this.dispatch(Tt(n));const c=this.enqueueRequest({description:"Edit project access",method:l.PATCH,url:`/project-accesses/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[]});return c.then(r=>{this.dispatch(Tt(r))}).catch(r=>{throw this.dispatch(Tt(a)),r}),[n,c]}async remove(e){const{store:i}=this.client,a=vn(e)(i.getState());this.dispatch(On(e));try{await this.enqueueRequest({description:"Delete project access",method:l.DELETE,url:`/project-accesses/${e}/`,blockers:[e],blocks:[]})}catch(n){throw this.dispatch(Fn(a)),n}}async refreshStore(e,i){const a=await this.enqueueRequest({immediate:!0,description:"Get project accesses",method:l.GET,url:"/project-accesses/",queryParams:{project__organization:e},blockers:[],blocks:[]},i);return this.dispatch(pm(a)),a}}class pF extends He{constructor(){super(...arguments);S(this,"name","Project Attachment");S(this,"url","/project-attachments");S(this,"addAttachments",Tm);S(this,"updateAttachments",Fm);S(this,"removeAttachments",Mn);S(this,"removeAttachment",Pm);S(this,"setAttachment",gm);S(this,"selectAttachment",Rm)}buildOfflineAttachment(i){return b({file:URL.createObjectURL(i.file),file_sha1:i.file_sha1,created_by:i.created_by,file_name:i.file.name,file_type:i.file.type,submitted_at:i.submitted_at,description:i.description,project:i.modelUuid})}buildAttachmentPayload(i){return{...i,project:i.modelUuid}}async bulkAdd(i){return this._bulkAdd(i.map(a=>({modelUuid:a.projectUuid,file:a.file})))}async delete(i){return this._delete(i)}async refreshStore(i,a){const n=await this.enqueueRequest({immediate:!0,description:"Get project attachments",method:l.GET,url:`${this.url}/`,queryParams:{project__organization:i},blockers:[],blocks:[]},a);return this.dispatch(Im(n)),n}}class AF extends R{async saveExisting(e){if(!e.uuid)throw new Error("You can only use this method to save existing project files. The one provided has no uuid.");const i={...e};delete i.file;const a=this.enqueueRequest({method:l.PATCH,url:`/project-files/${e.uuid}/`,payload:i,blockers:[e.uuid],blocks:[e.uuid]});return a.then(n=>{this.dispatch(Vn(n))}),a}saveActive(){const{store:e}=this.client,i=e.getState(),a=i.projectFileReducer.activeProjectFileId;if(!a)throw new Error("No active project file");const n=i.projectFileReducer.instances[a];if(!n)throw new Error("No active project file");if(!n.bounds&&!n.canvas_bounds)throw new Error("Project file must either have bounds or canvas_bounds set");let c;if(typeof n.file=="string"&&!n.file.startsWith("blob:")){const m={...n};delete m.file,c={method:l.PATCH,url:`/project-files/${a}/`,payload:m,blockers:[a],blocks:[a]}}else c=new Promise((m,o)=>{this.client.files.uploadFileToS3(n.file_sha1).then(([h])=>{m({method:l.POST,url:"/project-files/",payload:{...n,...h},blockers:[a],blocks:[a]})}).catch(o)});const u=Promise.resolve(c).then(m=>this.enqueueRequest(m));return u.then(m=>{this.dispatch(Vn(m))}),this.dispatch(Dm),this.dispatch(Um(null)),this.dispatch(zm(!1)),[n,u]}delete(e){return this.dispatch(jm(e)),this.enqueueRequest({method:l.DELETE,url:`/project-files/${e}`,blockers:[e],blocks:[]})}async refreshStore(e,i){const n=(await this.performPagination({immediate:!0,description:"Get project files",method:l.GET,url:"/project-files/",queryParams:{limit:E,paginate:!0,project:e},blockers:[],blocks:[]},c=>({immediate:!0,description:"Get project files",method:l.GET,url:c,blockers:[],blocks:[]}),i)).flat();return this.dispatch(Em(n)),n}}class fF extends R{async add(e){const i=await this.enqueueRequest({description:"Create project",method:l.POST,url:"/projects/",payload:v(e),blockers:[],blocks:[]});return this.dispatch(qn(i)),i}async update(e){if(!e.bounds&&!e.canvas_bounds)throw new Error("Project must either have bounds or canvas_bounds set");return this.dispatch(Lm(e)),await this.enqueueRequest({description:"Update project",method:l.PATCH,url:`/projects/${e.uuid}/`,payload:{name:e.name,bounds:e.bounds},blockers:[e.uuid],blocks:[e.uuid]})}async delete(e){const{store:i}=this.client,a=i.getState(),n=Wm(e)(a);if(!n)throw new Error("Expected project to exist");const c=km(a).filter(m=>m.project===e);this.dispatch(qm(c.map(({uuid:m})=>m)));const r=vm(n.uuid)(a);this.dispatch(Mn(r.map(({uuid:m})=>m)));const u=ym(e)(a);this.dispatch(_n(u.map(({uuid:m})=>m))),this.dispatch(zn(n.uuid));try{await this.enqueueRequest({description:"Delete project",method:l.DELETE,url:`/projects/${e}/`,blockers:[e],blocks:[]}),this.dispatch(zn(n.uuid))}catch(m){throw this.dispatch(qn(n)),this.dispatch(Pn(Object.values(u))),this.dispatch(Vm(c)),this.dispatch(bm(r)),m}}async refreshStore(e,i){const a=await this.enqueueRequest({immediate:!0,description:"Fetch projects",method:l.GET,url:"/projects/",queryParams:{organization:e},blockers:[],blocks:[]},i);return this.dispatch($m(a)),a}}class yF extends R{add(e){var c;const{store:i}=this.client,a=b({...e,created_by:(c=i.getState().userReducer.currentUser)==null?void 0:c.id});this.dispatch(Jm(a));const n=this.enqueueRequest({description:"Create team membership",method:l.POST,url:"/team-memberships/",payload:v(a),blockers:[e.team],blocks:[a.uuid]});return n.then(r=>{this.dispatch(kn(r))}).catch(()=>{this.dispatch(Bn(a.uuid))}),[a,n]}bulkAdd(e){var r;const{store:i}=this.client,a=(r=i.getState().userReducer.currentUser)==null?void 0:r.id,n=e.map(u=>b({...u,created_by:a}));this.dispatch(Xm(n));const c=this.enqueueRequest({description:"Create team memberships",method:l.POST,url:"/team-memberships/bulk/",payload:{team_memberships:n.map(u=>v(u))},blockers:n.map(u=>u.team),blocks:n.map(u=>u.uuid)});return c.then(u=>{this.dispatch(Qm(u))}).catch(()=>{this.dispatch(xm(n.map(u=>u.uuid)))}),[n,c]}async delete(e){const{store:i}=this.client,a=i.getState(),n=sp(e)(a);if(!n)throw new Error(`Expected team membership with uuid ${e} to exist`);this.dispatch(Bn(e));try{return await this.enqueueRequest({description:"Delete team membership",method:l.DELETE,url:`/team-memberships/${e}/`,blockers:[e],blocks:[e]})}catch(c){throw this.dispatch(kn(n)),c}}async refreshStore(e,i){const a=await this.enqueueRequest({immediate:!0,description:"Fetch team memberships",method:l.GET,url:"/team-memberships/",queryParams:{team__organization:e},blockers:[],blocks:[]},i);return this.dispatch(Zm(a)),a}}class SF extends R{add(e){var c;const{store:i}=this.client,a=b({...e,submitted_at:new Date().toISOString(),created_by:(c=i.getState().userReducer.currentUser)==null?void 0:c.id});this.dispatch(np(a));const n=this.enqueueRequest({description:"Create team",method:l.POST,url:"/teams/",payload:v(a),blockers:[],blocks:[a.uuid]});return n.then(r=>{this.dispatch(gt(r))}).catch(()=>{this.dispatch(Ln(a.uuid))}),[a,n]}update(e){const{store:i}=this.client,a=Hn(e.uuid)(i.getState());if(!a)throw new Error(`Expected team with uuid ${e.uuid} to exist`);const n={...a,...e};this.dispatch(cp(n));const c=this.enqueueRequest({description:"Update team",method:l.PATCH,url:`/teams/${e.uuid}/`,payload:v(e),blockers:[e.uuid],blocks:[e.uuid]});return c.then(r=>{this.dispatch(gt(r))}).catch(()=>{this.dispatch(gt(a))}),[n,c]}async delete(e){const{store:i}=this.client,a=i.getState(),n=Hn(e)(a);if(!n)throw new Error(`Expected team with uuid ${e} to exist`);this.dispatch(Ln(e));try{return await this.enqueueRequest({description:"Delete team",method:l.DELETE,url:`/teams/${e}/`,blockers:[e],blocks:[e]})}catch(c){throw this.dispatch(gt(n)),c}}async refreshStore(e,i){const a=await this.enqueueRequest({immediate:!0,description:"Fetch teams",method:l.GET,url:"/teams/",queryParams:{organization:e},blockers:[],blocks:[]},i);return this.dispatch(ap(a)),a}}class IF extends R{async refreshStore(e,i){const a=await this.enqueueRequest({immediate:!0,description:"Fetch organization users",method:l.GET,url:`/organizations/${e}/users/`,blockers:[],blocks:[]},i);return this.dispatch(Lh(a)),a}}class TF{constructor(e){S(this,"store");this.store=e}async enqueueRequest(e,i,a,n){return this._enqueueRequest(e,i,a,n).then(c=>{if(c instanceof D)throw c;return c})}_enqueueRequest(e,i,a,n){const c=new nc,r={...e,BASE_URL:i,serviceName:a};if(e.immediate){const u={...r,uuid:e.uuid??Je.v4()},m={payload:u,type:"",meta:{offline:{effect:{timestamp:new Date().toISOString(),request:u,BASE_URL:i,serviceName:a}}}};Kn(m,this,n).then(o=>{c.resolve(o.body)}).catch(o=>{Zn(o,m),o instanceof Error?c.reject(o):c.reject(new Error((o??xe).toString()))})}else{const u=this.store.dispatch(um(r)),m=h=>{if(h)c.resolve(h.body);else{const p=new D({message:"Could not get a response from the server.",response:h,discard:!0});c.reject(p)}},o=h=>{h instanceof D?h.options.discard=!0:(console.error("Received an unexpected error while processing a request:",h,`
|
|
14
|
+
external URLs and therefore not prepended with VITE_API_URL.`;throw new Error(f)}const p=o.type.split("/")[1];if(!p)throw new Error("File has no extension");const A=n??h+"."+p;if(o=rc(o,A),!o.name)throw new Error("Failed to set file's name");await this.addCache(o,h),Jt[c]=new Promise(f=>{f(o)})}return o}}class Bb extends R{add(e){var u;const{store:i}=this.client,a=(u=i.getState().userReducer.currentUser)==null?void 0:u.id,n=new Date().toISOString(),c=b({...e,created_by:a,submitted_at:n});this.dispatch(Ki(c));const r=this.enqueueRequest({description:"Create form identifier",method:l.POST,url:"/form-identifiers/",payload:v(c),blockers:[c.form],blocks:[c.uuid]});return r.then(m=>{this.dispatch(ht(m))}).catch(()=>{this.dispatch(Zi(c.uuid))}),[c,r]}update(e){const{store:i}=this.client,a=Ji(e.uuid)(i.getState());if(!a)throw new Error(`Expected form identifier with uuid ${e.uuid} to exist`);const n={...a,...e};this.dispatch(ht(n));const c=this.enqueueRequest({description:"Update form identifier",method:l.PATCH,url:`/form-identifiers/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return c.then(r=>{this.dispatch(ht(r))}).catch(()=>{this.dispatch(ht(a))}),[n,c]}async delete(e){const{store:i}=this.client,a=i.getState(),n=Ji(e)(a);if(!n)throw new Error(`Expected form identifier with uuid ${e} to exist`);this.dispatch(Zi(e));try{return await this.enqueueRequest({description:"Delete form identifier",method:l.DELETE,url:`/form-identifiers/${e}/`,blockers:[e],blocks:[]})}catch(c){throw this.dispatch(Ki(n)),c}}async refreshStore(e,i){const a=await this.enqueueRequest({description:"Get form identifiers",method:l.GET,url:"/form-identifiers/",queryParams:{form__organization:e},blockers:[],blocks:[]},i);return this.dispatch(xu(a)),a}}class Gb extends R{add(e){var u;const{store:i}=this.client,a=(u=i.getState().userReducer.currentUser)==null?void 0:u.id,n=new Date().toISOString(),c=b({...e,created_by:a,submitted_at:n});this.dispatch(Qi(c));const r=this.enqueueRequest({description:"Create form identifier value",method:l.POST,url:"/form-identifier-values/",payload:v(c),blockers:[e.form_submission,e.form_identifier],blocks:[c.uuid]});return r.then(m=>{this.dispatch(mt(m))}).catch(()=>{this.dispatch(xi(c.uuid))}),[c,r]}update(e){const{store:i}=this.client,a=ta(e.uuid)(i.getState());if(!a)throw new Error(`Expected form identifier value with uuid ${e.uuid} to exist`);const n={...a,...e};this.dispatch(mt(n));const c=this.enqueueRequest({description:"Update form identifier value",method:l.PATCH,url:`/form-identifier-values/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return c.then(r=>{this.dispatch(mt(r))}).catch(()=>{this.dispatch(mt(a))}),[n,c]}async delete(e){const{store:i}=this.client,a=i.getState(),n=ta(e)(a);if(!n)throw new Error(`Expected form identifier value with uuid ${e} to exist`);this.dispatch(xi(e));try{return await this.enqueueRequest({description:"Delete form identifier value",method:l.DELETE,url:`/form-identifier-values/${e}/`,blockers:[e],blocks:[]})}catch(c){throw this.dispatch(Qi(n)),c}}async refreshStore(e,i){const n=(await this.performPagination({immediate:!0,description:"Get form identifier values",method:l.GET,url:"/form-identifier-values/",queryParams:{limit:E,paginate:!0,form_submission__project:e},blockers:[],blocks:[]},c=>({immediate:!0,description:"Get form identifier values",method:l.GET,url:c,blockers:[],blocks:[]}),i)).flat();return this.dispatch(ao(n)),n}}class $b extends j{async bulkAdd(e){var m;const i=new Date().toISOString(),a=(m=this.client.store.getState().userReducer.currentUser)==null?void 0:m.id,n={},c=[],r=[];for(const o of e){const{revisionUuid:h,fieldIdentifier:p,file:A}=o,f=await this.getFilePayload(A);f.sha1 in n||(n[f.sha1]=f);const T=b({file:URL.createObjectURL(A),file_type:A.type,file_name:A.name,file_sha1:f.sha1,created_by:a,form_revision:h,submitted_at:i,field_identifier:p});c.push(T);const F={uuid:T.uuid,file_name:A.name,field_identifier:p,file_extension:f.extension,file_sha1:f.sha1,form_revision:h};r.push(F)}this.dispatch(oo(c));const u=this.enqueueRequest({description:"Attach files to form revision",method:l.POST,url:"/form-revision-attachments/bulk/",payload:{submitted_at:i,attachments:r,files:Object.values(n)},blockers:c.map(o=>o.form_revision),blocks:c.map(o=>o.uuid)});return u.then(o=>{this.processPresignedUrls(o.presigned_urls),this.dispatch(lo(o.attachments))}).catch(()=>{this.dispatch(ho(c.map(o=>o.uuid)))}),[c,u.then(({attachments:o})=>o)]}async refreshStore(e,i){const a=await this.enqueueRequest({immediate:!0,description:"Fetch organization form revision attachments",method:l.GET,url:"/form-revision-attachments/",queryParams:{form_revision__form__organization:e},blockers:[e],blocks:[]},i);return this.dispatch(uo(a)),a}}class Lb extends j{add(e){var u;const{store:i}=this.client,n=(u=i.getState().userReducer.currentUser)==null?void 0:u.id,c=b({...e,created_by:n,submitted_at:new Date().toISOString()});this.dispatch(aa(c));const r=this.enqueueRequest({description:"Create form revision",method:l.POST,url:"/form-revisions/",payload:v(c),blockers:[e.form],blocks:[c.uuid]});return r.then(m=>{this.dispatch(So(m))}).catch(()=>{this.dispatch(na(c.uuid))}),[c,r]}async refreshStore(e,i){const a=await this.enqueueRequest({immediate:!0,description:"Get organization form revisions",method:l.GET,url:"/form-revisions/",queryParams:{form__organization:e},blockers:[e],blocks:[]},i);return this.dispatch(fo(a)),a}}class Nb extends j{add(e,i){var o;const{store:a}=this.client,n=new Date().toISOString(),c=(o=a.getState().userReducer.currentUser)==null?void 0:o.id,r=b({...e,submitted_at:n,created_by:c}),u=b({...i,form:r.uuid,submitted_at:n,created_by:c});this.dispatch(ua(r)),this.dispatch(aa(u));const m=this.enqueueRequest({description:"Create form",method:l.POST,url:"/forms/",payload:{...v(r),initial_revision:{uuid:u.uuid,submitted_at:u.submitted_at,title:u.title,description:u.description,fields:u.fields}},blockers:[],blocks:[r.uuid,u.uuid]});return m.catch(h=>{throw this.dispatch(oa(r.uuid)),this.dispatch(na(u.uuid)),h}),[r,u,m]}async delete(e){const{store:i}=this.client,a=i.getState(),n=Ro(e)(a);if(!n)throw new Error("Expected form to exist");const c=Bo(e)(a);c.length>0&&this.dispatch(ko(c.map(({uuid:u})=>u)));const r=To(e)(a);r.length>0&&this.dispatch(Io(r.map(({uuid:u})=>u))),this.dispatch(oa(e));try{return await this.enqueueRequest({description:"Delete form",method:l.DELETE,url:`/forms/${e}/`,blockers:[e],blocks:[]})}catch(u){throw this.dispatch(ua(n)),r.length>0&&this.dispatch(yo(r)),c.length>0&&this.dispatch(Do(c)),u}}async refreshStore(e,i){const a=await this.enqueueRequest({immediate:!0,description:"Fetch organization forms",method:l.GET,url:"/forms/",queryParams:{organization:e},blockers:[e],blocks:[]},i);return this.dispatch(Fo(a)),a}}class Hb extends j{async bulkAdd(e){var m;const i=new Date().toISOString(),a=(m=this.client.store.getState().userReducer.currentUser)==null?void 0:m.id,n={},c=[],r=[];for(const o of e){const{submissionUuid:h,fieldIdentifier:p,file:A}=o,f=await this.getFilePayload(A);f.sha1 in n||(n[f.sha1]=f);const T=b({file:URL.createObjectURL(A),file_type:A.type,file_name:A.name,file_sha1:f.sha1,created_by:a,form_submission:h,submitted_at:i,field_identifier:p});c.push(T);const F={uuid:T.uuid,file_name:A.name,file_sha1:f.sha1,file_extension:f.extension,field_identifier:p,form_submission:h};r.push(F)}this.dispatch(Bt(c));const u=this.enqueueRequest({description:"Attach files to form submission",method:l.POST,url:"/form-submission-attachments/bulk/",payload:{submitted_at:i,attachments:r,files:Object.values(n)},blockers:c.map(o=>o.form_submission),blocks:c.map(o=>o.uuid)});return u.then(o=>{this.processPresignedUrls(o.presigned_urls),this.dispatch(Mo(o.attachments))}).catch(o=>{throw this.dispatch(Gt(c.map(h=>h.uuid))),o}),[c,u.then(({attachments:o})=>o)]}async bulkDelete(e){const{store:i}=this.client,a=i.getState(),n=Vo(e)(a);this.dispatch(Gt(e));try{await this.enqueueRequest({description:"Delete form submission attachments",method:l.DELETE,url:"/form-submission-attachments/bulk/",payload:{uuids:e},blockers:e,blocks:[]})}catch(c){throw this.dispatch(Bt(n)),c}}async refreshStore(e,i){const n=(await this.performPagination({immediate:!0,description:"Get form submission attachments",method:l.GET,url:"/form-submission-attachments/",queryParams:{limit:E,paginate:!0,form_submission__form_revision__form__organization:e},blockers:[],blocks:[]},c=>({immediate:!0,description:"Get form submission attachments",method:l.GET,url:c,blockers:[],blocks:[]}),i)).flat();return this.dispatch(wo(n)),n}}class Wb extends j{add(e){var r;const{store:i}=this.client,a=i.getState(),n=b({...e,created_by:(r=a.userReducer.currentUser)==null?void 0:r.id,submitted_at:new Date().toISOString()}),c=this.enqueueRequest({description:"Add form submission",method:l.POST,url:"/form-submissions/",payload:v(n),blockers:[e.form_revision],blocks:[n.uuid]});return this.dispatch(pa(n)),c.then(u=>(this.dispatch($t(u)),u)).catch(()=>{this.dispatch(Aa(n.uuid))}),[n,c]}update(e){const{store:i}=this.client,a=i.getState(),n=ya(e.uuid)(a);if(!n)throw new Error(`Expected submission with uuid ${e.uuid} to exist`);const c={...n,...e};this.dispatch(Co(c));const r=this.enqueueRequest({description:"Delete user form submissions",method:l.PATCH,url:`/form-submissions/${c.uuid}/`,payload:e,blockers:[c.uuid],blocks:[c.uuid]});return r.then(u=>{this.dispatch($t(u))}).catch(()=>{this.dispatch($t(n))}),[c,r]}async delete(e){const{store:i}=this.client,a=i.getState(),n=ya(e)(a);if(!n)throw new Error(`Expected submission with uuid ${e} to exist`);const c=jo(e)(a);this.dispatch(Aa(e)),this.dispatch(Gt(c.map(r=>r.uuid)));try{return await this.enqueueRequest({description:"Delete user form submissions",method:l.DELETE,url:`/form-submissions/${e}/`,blockers:[e],blocks:[]})}catch(r){throw this.dispatch(pa(n)),this.dispatch(Bt(c)),r}}async refreshStore(e,i){const n=(await this.performPagination({immediate:!0,description:"Fetch form submissions",method:l.GET,url:"/form-submissions/",queryParams:{limit:E,paginate:!0,form_revision__form_organization:e},blockers:[],blocks:[]},c=>({immediate:!0,description:"Fetch form submissions",method:l.GET,url:c,blockers:[],blocks:[]}),i)).flat();return this.dispatch(Uo(n)),n}}class Yb extends j{async add(e){var p;const{store:i}=this.client,{file:a,...n}=e,c=new Date().toISOString(),r=(p=i.getState().userReducer.currentUser)==null?void 0:p.id,u=n.project,m=await this.getFilePayload(a),o=b({...n,file_name:a.name,file_sha1:m.sha1,file:URL.createObjectURL(a),submitted_at:c,created_by:r});this.dispatch(Ho(o));const h=this.enqueueRequest({description:"Add geo image",method:l.POST,url:"/geo-images/",payload:{uuid:o.uuid,submitted_at:c,title:o.title,description:o.description,geo_marker:o.geo_marker,canvas_marker:o.canvas_marker,sha1:o.file_sha1,project:o.project,file_name:o.file_name,direction:o.direction,original_date:o.original_date,file:m},blocks:[u],blockers:[u]});return h.then(A=>{this.processPresignedUrls(A.presigned_urls),this.dispatch(pt(A.geo_image))}).catch(()=>{this.dispatch(Ia(o.uuid))}),[o,h.then(A=>A.geo_image)]}async bulkAdd(e,i){var p;const{store:a}=this.client,n=new Date().toISOString(),c=(p=a.getState().userReducer.currentUser)==null?void 0:p.id,r=[],u=[],m=[],o={};for(const A of e){const{file:f,...T}=A,F=await this.getFilePayload(f);F.sha1 in o||(o[F.sha1]=F);const _=b({...T,file_name:f.name,file_sha1:F.sha1,file:URL.createObjectURL(f),submitted_at:n,created_by:c,project:i});r.push(_),u.push(_.uuid),m.push({uuid:_.uuid,sha1:_.file_sha1,file_name:_.file_name,title:_.title,description:_.description,geo_marker:_.geo_marker,canvas_marker:_.canvas_marker,direction:_.direction,original_date:_.original_date})}this.dispatch(Wo(r));const h=this.enqueueRequest({description:"Bulk add geo images",method:l.POST,url:"/geo-images/bulk/",payload:{submitted_at:n,project:i,geo_images:m,files:Object.values(o)},blocks:[i],blockers:u});return h.then(A=>{this.processPresignedUrls(A.presigned_urls),this.dispatch(No(A.geo_images))}).catch(()=>{this.dispatch(Ko(u))}),[r,h.then(A=>A.geo_images)]}update(e){const{store:i}=this.client,a=i.getState(),n=Ta(e.uuid)(a);if(!n)throw new Error(`Map image with uuid ${e.uuid} does not exist in the store`);const c={...n,...e};this.dispatch(Yo(c));const r=this.enqueueRequest({description:"Update geo image",method:l.PATCH,url:`/geo-images/${e.uuid}/`,payload:e,blocks:[e.uuid],blockers:[e.uuid]});return r.then(u=>{this.dispatch(pt(u))}).catch(()=>{this.dispatch(pt(n))}),[c,r]}async delete(e){const{store:i}=this.client,a=i.getState(),n=Ta(e)(a);if(!n)throw new Error(`Map image with uuid ${e} does not exist in the store`);this.dispatch(Ia(e));const c=this.enqueueRequest({description:"Delete geo image",method:l.DELETE,url:`/geo-images/${e}/`,blocks:[e],blockers:[e]});return c.catch(()=>{this.dispatch(pt(n))}),c}async refreshStore(e,i){const a=await this.enqueueRequest({immediate:!0,description:"Get geo images",method:l.GET,url:"/geo-images/",queryParams:{project:e},blocks:[e],blockers:[]},i);return this.dispatch(Lo(a)),a}}class Kb extends R{add(e){var u;const{store:i}=this.client,a=new Date().toISOString(),n=(u=i.getState().userReducer.currentUser)==null?void 0:u.id,c=b({...e,submitted_at:a,created_by:n});this.dispatch(ba(c));const r=this.enqueueRequest({description:"Add issue association",method:l.POST,url:"/issue-associations/",payload:v(c),blockers:[e.associated_issue,...e.issue?[e.issue]:[],...e.asset?[e.asset]:[]],blocks:[c.uuid]});return r.then(m=>{this.dispatch(el(m))}).catch(()=>{this.dispatch(Pa(c.uuid))}),[c,r]}async delete(e){const{store:i}=this.client,a=tl(e)(i.getState());if(!a)throw new Error(`Issue association with uuid ${e} not found in store.`);this.dispatch(Pa(e));const n=this.enqueueRequest({description:"Delete issue association",method:l.DELETE,url:`/issue-associations/${e}/`,blockers:[e],blocks:[]});return n.catch(()=>{this.dispatch(ba(a))}),n}async refreshStore(e,i){const n=(await this.performPagination({immediate:!0,description:"Fetch issue associations",method:l.GET,url:"/issue-associations/",queryParams:{limit:E,paginate:!0,associated_issue__project:e},blockers:[],blocks:[]},c=>({immediate:!0,description:"Fetch issue associations",method:l.GET,url:c,blockers:[],blocks:[]}),i)).flat();return this.dispatch(xo(n)),n}}class Zb extends He{constructor(){super(...arguments);S(this,"name","Issue Attachment");S(this,"url","/issue-attachments");S(this,"initializeAttachments",Ra);S(this,"addAttachments",va);S(this,"updateAttachments",dl);S(this,"removeAttachments",wa);S(this,"removeAttachment",ul);S(this,"setAttachment",rl);S(this,"selectAttachment",ml)}buildOfflineAttachment(i){return b({file:URL.createObjectURL(i.file),file_sha1:i.file_sha1,created_by:i.created_by,file_name:i.file.name,file_type:i.file.type,submitted_at:i.submitted_at,description:i.description,issue:i.modelUuid})}buildAttachmentPayload(i){return{...i,issue:i.modelUuid}}async bulkAdd(i){return this._bulkAdd(i.map(a=>({modelUuid:a.issueUuid,file:a.file})))}async delete(i){return this._delete(i)}async refreshStore(i,a){const c=(await this.performPagination({immediate:!0,description:"Get issue attachments",method:l.GET,url:`${this.url}/`,queryParams:{limit:E,paginate:!0,issue__project:i},blocks:[],blockers:[]},r=>({immediate:!0,description:"Get issue attachments",method:l.GET,url:r,blockers:[],blocks:[]}),a)).flat();return this.dispatch(Ra(c)),c}}class Jb extends He{constructor(){super(...arguments);S(this,"name","Issue Comment Attachment");S(this,"url","/issue-comment-attachments");S(this,"initializeAttachments",Ea);S(this,"addAttachments",fl);S(this,"updateAttachments",Sl);S(this,"removeAttachments",Tl);S(this,"removeAttachment",Il);S(this,"setAttachment",yl);S(this,"selectAttachment",Fl)}buildOfflineAttachment(i){return b({file:URL.createObjectURL(i.file),file_sha1:i.file_sha1,created_by:i.created_by,file_name:i.file.name,file_type:i.file.type,submitted_at:i.submitted_at,description:i.description,issue_comment:i.modelUuid})}buildAttachmentPayload(i){return{...i,issue_comment:i.modelUuid}}async bulkAdd(i){return this._bulkAdd(i.map(a=>({modelUuid:a.issueCommentUuid,file:a.file})))}async delete(i){return this._delete(i)}async refreshStore(i,a){const c=(await this.performPagination({immediate:!0,description:"Get issue comment attachments",method:l.GET,url:`${this.url}/`,queryParams:{limit:E,paginate:!0,issue_comment__issue__project:i},blocks:[],blockers:[]},r=>({immediate:!0,description:"Get issue comment attachments",method:l.GET,url:r,blockers:[],blocks:[]}),a)).flat();return this.dispatch(Ea(c)),c}}class Xb extends R{add(e){var c;const{store:i}=this.client,a=b({...e,author:(c=i.getState().userReducer.currentUser)==null?void 0:c.id,submitted_at:new Date().toISOString()});this.dispatch(ja(a));const n=this.enqueueRequest({description:"Add issue comment",method:l.POST,url:"/issue-comments/",payload:v(a),blockers:[e.issue],blocks:[a.uuid]});return n.catch(()=>{this.dispatch(za(a.uuid))}),[a,n]}update(e){const{store:i}=this.client,a=Ua(e.uuid)(i.getState());if(!a)throw new Error(`Comment with uuid ${e.uuid} not found in store`);const n={...a,...e};this.dispatch(qa(n));const c=this.enqueueRequest({description:"Edit issue comment",method:l.PATCH,url:`/issue-comments/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return c.catch(()=>{this.dispatch(qa(a))}),[n,c]}remove(e){const{store:i}=this.client,a=Ua(e)(i.getState());if(!a)throw new Error(`Comment with uuid ${e} not found in store`);this.dispatch(za(e));const n=this.enqueueRequest({description:"Delete comment",method:l.DELETE,url:`/issue-comments/${e}/`,blockers:[e],blocks:[]});return n.catch(()=>{this.dispatch(ja(a))}),n}async refreshStore(e,i){const a=await this.enqueueRequest({immediate:!0,description:"Get comments",method:l.GET,url:"/issue-comments/",queryParams:{issue__project:e},blockers:[],blocks:[]},i);return this.dispatch(_l(a)),a}}class Qb extends R{add(e){var m;const{store:i}=this.client,a=i.getState(),n=new Date().toISOString(),c=(m=a.userReducer.currentUser)==null?void 0:m.id,r=b({...e,submitted_at:n,created_by:c});this.dispatch(Ca(r));const u=this.enqueueRequest({description:"Create issue",method:l.POST,url:"/issues/",payload:v(r),blockers:[r.project,r.issue_type,...r.category?[r.category]:[]],blocks:[r.uuid]});return u.then(o=>{this.dispatch(Lt(o))}).catch(o=>{throw this.dispatch(ka(r.uuid)),o}),[r,u]}update(e){var m;const i=this.client.store.getState(),a=$a(e.uuid)(i);if(!a)throw new Error(`Attempting to update an issue with uuid ${e.uuid} that doesn't exist in the store`);const n={...a,...e};this.dispatch(Lt(n));const c={};for(const o of[V.TITLE,V.DESCRIPTION,V.STATUS,V.CATEGORY,V.PRIORITY,V.ASSIGNED_TO,V.DUE_DATE])if(o in e&&e[o]!==a[o])switch(o){case V.PRIORITY:case V.STATUS:{const h=e[o];c[o]=h!==void 0?Number(h):null;break}case V.DUE_DATE:case V.DESCRIPTION:case V.TITLE:c[o]=e[o]??null;break;case V.CATEGORY:{let h=null;const p=e[o];if(p&&(h=i.categoryReducer.instances[p]??null,!h))throw new Error(`Trying to update issue category to ${p} which does not exist in store`);c[o]=h?{name:h.name,color:h.color,uuid:h.uuid}:null;break}case V.ASSIGNED_TO:{let h=null;const p=e[o];if(p&&(h=i.userReducer.instances[p]??null,!h))throw new Error(`Trying to update issue assigned_to to ${p} which does not exist in store`);c[o]=h?{full_name:h.username,id:h.id}:null;break}}const r=b({created_by:(m=i.userReducer.currentUser)==null?void 0:m.id,submitted_at:new Date().toISOString(),issue:a.uuid,changes:c});this.dispatch(qh(r));const u=this.enqueueRequest({description:"Edit issue",method:l.PATCH,url:`/issues/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return u.catch(()=>{this.dispatch(Lt(a)),this.dispatch(Uh(r.uuid))}),[n,u]}async remove(e){const{store:i}=this.client,a=i.getState(),n=$a(e)(a);if(!n)throw new Error(`No issue with uuid ${e} found in the store`);const c=hl(e)(a),r=Bh(e)(a),u={};for(const o of sl(e)(a))u[o.uuid]=o;for(const o of il(e)(a))u[o.uuid]=o;const m=Object.values(u);this.dispatch(ka(e)),c.length>0&&this.dispatch(wa(c.map(({uuid:o})=>o))),r.length>0&&this.dispatch(Dh(r.map(({uuid:o})=>o))),m.length>0&&this.dispatch(Oa(m.map(({uuid:o})=>o)));try{return await this.enqueueRequest({description:"Delete issue",method:l.DELETE,url:`/issues/${e}/`,blockers:[e],blocks:[]})}catch(o){throw this.dispatch(Ca(n)),this.dispatch(va(c)),this.dispatch(zh(r)),this.dispatch(Fa(m)),o}}async refreshStore(e,i){const n=(await this.performPagination({immediate:!0,description:"Get issues",method:l.GET,url:"/issues/",queryParams:{limit:E,paginate:!0,project:e},blockers:[],blocks:[]},c=>({immediate:!0,description:"Get issues",method:l.GET,url:c,blockers:[],blocks:[]}),i)).flat();return this.dispatch(Ml(n)),n}}class xb extends He{constructor(){super(...arguments);S(this,"name","Issue Type Attachment");S(this,"url","/issue-type-attachments");S(this,"initializeAttachments",Na);S(this,"addAttachments",Ul);S(this,"updateAttachments",Cl);S(this,"removeAttachments",Bl);S(this,"removeAttachment",kl);S(this,"setAttachment",Dl);S(this,"selectAttachment",Ll)}buildOfflineAttachment(i){return b({file:URL.createObjectURL(i.file),file_sha1:i.file_sha1,created_by:i.created_by,file_name:i.file.name,file_type:i.file.type,submitted_at:i.submitted_at,description:i.description,issue_type:i.modelUuid})}buildAttachmentPayload(i){return{...i,issue_type:i.modelUuid}}async bulkAdd(i){return this._bulkAdd(i.map(a=>({modelUuid:a.issueTypeUuid,file:a.file})))}async delete(i){return this._delete(i)}async refreshStore(i,a){const n=await this.enqueueRequest({immediate:!0,description:"Get issue type attachments",method:l.GET,url:`${this.url}/`,queryParams:{issue_type__organization:i},blocks:[],blockers:[]},a);return this.dispatch(Na(n)),n}}class eF extends j{async bulkAdd(e){var m;const i=new Date().toISOString(),a=(m=this.client.store.getState().userReducer.currentUser)==null?void 0:m.id,n={},c=[],r=[];for(const o of e){const{fieldsRevisionUuid:h,fieldIdentifier:p,file:A}=o,f=await this.getFilePayload(A);f.sha1 in n||(n[f.sha1]=f);const T=b({file:URL.createObjectURL(A),file_type:A.type,file_name:A.name,file_sha1:f.sha1,created_by:a,fields_revision:h,submitted_at:i,field_identifier:p});c.push(T);const F={uuid:T.uuid,file_name:A.name,file_extension:f.extension,field_identifier:p,file_sha1:f.sha1,fields_revision:h};r.push(F)}this.dispatch(Yl(c));const u=this.enqueueRequest({description:"Add issue type fields attachments",method:l.POST,url:"/issue-type-fields-attachments/bulk/",payload:{submitted_at:i,attachments:r,files:Object.values(n)},blockers:c.map(o=>o.fields_revision),blocks:c.map(o=>o.uuid)});return u.then(o=>{this.processPresignedUrls(o.presigned_urls),this.dispatch(Kl(o.attachments))}).catch(()=>{this.dispatch(Zl(c.map(o=>o.uuid)))}),[c,u.then(({attachments:o})=>o)]}async refreshStore(e,i){const a=await this.enqueueRequest({immediate:!0,description:"get issue type fields attachments",method:l.GET,url:"/issue-type-fields-attachments/",queryParams:{fields_revision__issue_type__organization:e},blockers:[e],blocks:[]},i);return this.dispatch(Wl(a)),a}}class tF extends R{add(e){var u;const{store:i}=this.client,a=(u=i.getState().userReducer.currentUser)==null?void 0:u.id,n=new Date().toISOString(),c=b({...e,created_by:a,submitted_at:n});this.dispatch(nh(c));const r=this.enqueueRequest({description:"Add Issue Type Fields",method:l.POST,url:"/issue-type-fields/",payload:v(c),blockers:[c.issue_type],blocks:[c.uuid]});return r.then(m=>{this.dispatch(ch(m))}).catch(m=>{throw this.dispatch(rh(c.uuid)),m}),[c,r]}async refreshStore(e,i){const a=await this.enqueueRequest({immediate:!0,description:"Get Issue Type Fields",method:l.GET,url:"/issue-type-fields/",queryParams:{issue_type__organization:e},blockers:[],blocks:[]},i);return this.dispatch(ah(a)),a}}class sF extends j{async bulkAdd(e){var m;const i=new Date().toISOString(),a=(m=this.client.store.getState().userReducer.currentUser)==null?void 0:m.id,n={},c=[],r=[];for(const o of e){const{fieldValuesUuid:h,fieldIdentifier:p,file:A}=o,f=await this.getFilePayload(A);f.sha1 in n||(n[f.sha1]=f);const T=b({file:URL.createObjectURL(A),file_type:A.type,file_name:A.name,file_sha1:f.sha1,created_by:a,field_values:h,submitted_at:i,field_identifier:p});c.push(T);const F={uuid:T.uuid,file_name:A.name,file_sha1:f.sha1,file_extension:f.extension,field_identifier:p,field_values:h};r.push(F)}this.dispatch(Ht(c));const u=this.enqueueRequest({description:"Add issue type field values attachments",method:l.POST,url:"/issue-type-field-values-attachments/bulk/",payload:{submitted_at:i,attachments:r,files:Object.values(n)},blockers:c.map(o=>o.field_values),blocks:c.map(o=>o.uuid)});return u.then(({presigned_urls:o,attachments:h})=>{this.processPresignedUrls(o),this.dispatch(hh(h))}).catch(o=>{throw this.dispatch(Wt(c.map(h=>h.uuid))),o}),[c,u.then(({attachments:o})=>o)]}async bulkDelete(e){const{store:i}=this.client,a=i.getState(),n=ph(e)(a);this.dispatch(Wt(e));try{await this.enqueueRequest({description:"Delete issue type field values attachments",method:l.DELETE,url:"/issue-type-field-values-attachments/bulk/",payload:{uuids:e},blockers:e,blocks:[]})}catch(c){throw this.dispatch(Ht(n)),c}}async refreshStore(e,i){const n=(await this.performPagination({immediate:!0,description:"Get issue type field values attachments",method:l.GET,url:"/issue-type-field-values-attachments/",queryParams:{limit:E,paginate:!0,field_values__issue__project:e},blockers:[],blocks:[]},c=>({immediate:!0,description:"Get issue type field values attachments",method:l.GET,url:c,blockers:[],blocks:[]}),i)).flat();return this.dispatch(lh(n)),n}}class iF extends R{add(e){var r;const{store:i}=this.client,a=i.getState(),n=b({...e,created_by:(r=a.userReducer.currentUser)==null?void 0:r.id,submitted_at:new Date().toISOString()}),c=this.enqueueRequest({description:"Add issue type field values",method:l.POST,url:"/issue-type-field-values/",payload:v(n),blockers:[e.issue,e.fields_revision],blocks:[n.uuid]});return this.dispatch(Ya(n)),c.then(u=>(this.dispatch(ft(u)),u)).catch(()=>{this.dispatch(Ka(n.uuid))}),[n,c]}update(e){const{store:i}=this.client,a=i.getState(),n=Ja(e.uuid)(a);if(!n)throw new Error(`Expected IssueTypeFieldValues with uuid ${e.uuid} to exist`);const c={...n,...e};this.dispatch(ft(c));const r=this.enqueueRequest({description:"Update issue type field values",method:l.PATCH,url:`/issue-type-field-values/${e.uuid}/`,payload:e,blockers:[c.uuid,c.fields_revision,c.issue],blocks:[c.uuid]});return r.then(u=>{this.dispatch(ft(u))}).catch(()=>{this.dispatch(ft(n))}),[c,r]}async delete(e){const{store:i}=this.client,a=i.getState(),n=Ja(e)(a);if(!n)throw new Error(`Expected submission with uuid ${e} to exist`);const c=Ah(e)(a);this.dispatch(Ka(e)),this.dispatch(Wt(c.map(r=>r.uuid)));try{await this.enqueueRequest({description:"Delete issue type field values",method:l.DELETE,url:`/issue-type-field-values/${e}/`,blockers:[e],blocks:[]})}catch(r){throw this.dispatch(Ya(n)),this.dispatch(Ht(c)),r}}async refreshStore(e,i){const n=(await this.performPagination({immediate:!0,description:"Get issue type field values",method:l.GET,url:"/issue-type-field-values/",queryParams:{limit:E,paginate:!0,issue__project:e},blockers:[],blocks:[]},c=>({immediate:!0,description:"Get issue type field values",method:l.GET,url:c,blockers:[],blocks:[]}),i)).flat();return this.dispatch(eh(n)),n}}class aF extends R{add(e){var u;const{store:i}=this.client,a=(u=i.getState().userReducer.currentUser)==null?void 0:u.id,n=new Date().toISOString(),c=b({...e,created_by:a,submitted_at:n});this.dispatch(tn(c));const r=this.enqueueRequest({description:"Create issue type identifier",method:l.POST,url:"/issue-type-identifiers/",payload:v(c),blockers:[c.issue_type],blocks:[c.uuid]});return r.then(m=>{this.dispatch(yt(m))}).catch(()=>{this.dispatch(sn(c.uuid))}),[c,r]}update(e){const{store:i}=this.client,a=an(e.uuid)(i.getState());if(!a)throw new Error(`Expected issue type identifier with uuid ${e.uuid} to exist`);const n={...a,...e};this.dispatch(yt(n));const c=this.enqueueRequest({description:"Update issue type identifier",method:l.PATCH,url:`/issue-type-identifiers/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return c.then(r=>{this.dispatch(yt(r))}).catch(()=>{this.dispatch(yt(a))}),[n,c]}async delete(e){const{store:i}=this.client,a=i.getState(),n=an(e)(a);if(!n)throw new Error(`Expected issue type identifier with uuid ${e} to exist`);this.dispatch(sn(e));try{return await this.enqueueRequest({description:"Delete issue type identifier",method:l.DELETE,url:`/issue-type-identifiers/${e}/`,blockers:[e],blocks:[]})}catch(c){throw this.dispatch(tn(n)),c}}async refreshStore(e,i){const a=await this.enqueueRequest({description:"Get issue type identifiers",method:l.GET,url:"/issue-type-identifiers/",queryParams:{issue_type__organization:e},blockers:[],blocks:[]},i);return this.dispatch(Sh(a)),a}}class nF extends R{add(e){var u;const{store:i}=this.client,a=(u=i.getState().userReducer.currentUser)==null?void 0:u.id,n=new Date().toISOString(),c=b({...e,created_by:a,submitted_at:n});this.dispatch(cn(c));const r=this.enqueueRequest({description:"Create issue type identifier value",method:l.POST,url:"/issue-type-identifier-values/",payload:v(c),blockers:[e.issue,e.issue_type_identifier],blocks:[c.uuid]});return r.then(m=>{this.dispatch(St(m))}).catch(()=>{this.dispatch(rn(c.uuid))}),[c,r]}update(e){const{store:i}=this.client,a=un(e.uuid)(i.getState());if(!a)throw new Error(`Expected issue type identifier value with uuid ${e.uuid} to exist`);const n={...a,...e};this.dispatch(St(n));const c=this.enqueueRequest({description:"Update issue type identifier value",method:l.PATCH,url:`/issue-type-identifier-values/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return c.then(r=>{this.dispatch(St(r))}).catch(()=>{this.dispatch(St(a))}),[n,c]}async delete(e){const{store:i}=this.client,a=i.getState(),n=un(e)(a);if(!n)throw new Error(`Expected issue type identifier value with uuid ${e} to exist`);this.dispatch(rn(e));try{return await this.enqueueRequest({description:"Delete issue type identifier value",method:l.DELETE,url:`/issue-type-identifier-values/${e}/`,blockers:[e],blocks:[]})}catch(c){throw this.dispatch(cn(n)),c}}async refreshStore(e,i){const n=(await this.performPagination({immediate:!0,description:"Get issue type identifier values",method:l.GET,url:"/issue-type-identifier-values/",queryParams:{limit:E,paginate:!0,issue__project:e},blockers:[],blocks:[]},c=>({immediate:!0,description:"Get issue type identifier values",method:l.GET,url:c,blockers:[],blocks:[]}),i)).flat();return this.dispatch(Fh(n)),n}}class cF extends R{add(e){var r;const{store:i}=this.client,a=i.getState(),n=b({...e,submitted_at:new Date().toISOString(),created_by:(r=a.userReducer.currentUser)==null?void 0:r.id});this.dispatch(vh(n));const c=this.enqueueRequest({method:l.POST,url:"/issue-types/",payload:v(n),blockers:[],blocks:[n.uuid]});return c.then(u=>{this.dispatch(It(u))}).catch(()=>{this.dispatch(ln(n.uuid))}),[n,c]}update(e){const{store:i}=this.client,a=i.getState(),n=mn(e.uuid)(a);if(!n)throw new Error(`IssueType with uuid ${e.uuid} does not exist in the store.`);const c={...n,...e};this.dispatch(wh(c));const r=this.enqueueRequest({method:l.PATCH,url:`/issue-types/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return r.then(u=>{this.dispatch(It(u))}).catch(()=>{this.dispatch(It(n))}),[c,r]}delete(e){const{store:i}=this.client,a=i.getState(),n=mn(e)(a);if(!n)throw new Error(`IssueType with uuid ${e} does not exist in the store.`);const c=jl(e)(a);this.dispatch(ln(e)),this.dispatch(Vl(c.map(u=>u.uuid)));const r=this.enqueueRequest({method:l.DELETE,url:`/issue-types/${e}/`,blockers:[e],blocks:[]});return r.catch(()=>{this.dispatch(It(n)),this.dispatch(El(c))}),r}async refreshStore(e,i){const a=await this.enqueueRequest({immediate:!0,method:l.GET,url:"/issue-types/",queryParams:{organization:e},blockers:[],blocks:[]},i);return this.dispatch(Rh(a)),a}}class rF extends R{async refreshStore(e,i){const n=(await this.performPagination({immediate:!0,description:"Get issue updates",method:l.GET,url:"/issue-updates/",queryParams:{limit:E,paginate:!0,issue__project:e},blockers:[],blocks:[]},c=>({immediate:!0,description:"Get issue updates",method:l.GET,url:c,blockers:[],blocks:[]}),i)).flat();return this.dispatch(jh(n)),n}}const dF=1800;function uF(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 oF extends nb{constructor(){super(...arguments);S(this,"_getRenewedTokens",async i=>{const a=this.enqueueRequest({description:"Get renewed tokens",method:l.POST,url:this.refreshTokensUrl,payload:{refresh:i},isAuthNeeded:!1,blockers:[],blocks:[],checkAuth:!1,immediate:!0});let n;try{n=await a}catch(c){console.error("Could not renew tokens; clearing auth",c),this.clearAuth();return}if(!n.access)throw new Error("Missing access token");return{accessToken:n.access,refreshToken:n.refresh??this.getRefreshToken()}})}clearAuth(){console.debug(this.constructor.name,"clearing auth;"),this.dispatch(fu(!1)),this.clearTokens(),this.dispatch(g()),this.dispatch(g())}async renewTokens(){const i=this.getRefreshToken();if(!i)throw new Error("No refresh token found");console.debug(this.constructor.name,"renewing tokens");try{const a=await this._getRenewedTokens(i);if(!a)return;console.log("Got renewed tokens"),this.setTokens(a)}catch(a){throw console.error("Could not renew tokens; clearing auth",a),this.clearAuth(),a}}tokenIsExpiringSoon(){const i=this.getAccessToken();if(!i)return!1;const a=Date.now()/1e3;let n;try{n=jp(i).exp??a}catch{n=a}return n-a<dF}getAuthHeader(){return`Bearer ${this.getAccessToken()}`}async prepareAuth(){if(this.tokenIsExpiringSoon()){console.debug(this.constructor.name,"preparing auth");try{await this.renewTokens()}catch(i){return i instanceof D&&this.clearAuth(),i instanceof Error?Promise.reject(i):Promise.reject(new Error((i??xe).toString()))}}}async handleUnauthorized(i,a){const n=this.client.store.getState();if(i.url.endsWith("/token/refresh/"))throw n.authReducer.isLoggedIn&&console.warn("No signed-in user to sign out."),this.clearAuth(),new D({message:"You have been signed out due to inactivity.",response:a,discard:!0});if(n.authReducer.isLoggedIn)await this.renewTokens();else throw console.debug("Forbidden; user is not logged in."),new D({message:"Incorrect username or password.",response:a,discard:!0})}async initAuth(i){const a=Je.v4();return console.debug(this.constructor.name,"Initiating auth"),this.enqueueRequest({uuid:a,description:"Get token pair",method:l.POST,url:this.initTokensUrl,payload:i,isAuthNeeded:!1,checkAuth:!1,immediate:!0,blockers:[],blocks:[]}).then(n=>{this.setTokens(uF(n))})}}class lF extends R{update(e){const{store:i}=this.client,a=In(e.uuid)(i.getState()),n={...a,...e};this.dispatch(Kt(n));const c=this.enqueueRequest({description:"Edit organization access",method:l.PATCH,url:`/organization-accesses/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return c.then(r=>{this.dispatch(Kt(r))}).catch(r=>{throw this.dispatch(Kt(a)),r}),[n,c]}async remove(e){const{store:i}=this.client,a=i.getState(),n=In(e)(a),c=Kh(n.user)(a);this.dispatch(Qh(n.uuid)),this.dispatch(Hh(n.user));try{await this.enqueueRequest({description:"Remove organization access",method:l.DELETE,url:`/organization-accesses/${n.uuid}/`,blockers:[n.uuid],blocks:[]})}catch(r){throw this.dispatch(Xh(n)),this.dispatch(Nh(c)),r}}async refreshStore(e,i){const a=await this.enqueueRequest({immediate:!0,description:"Get organization accesses",method:l.GET,url:"/organization-accesses/",queryParams:{organization:e},blockers:[],blocks:[]},i);return this.dispatch(Jh(a)),a}}class hF extends R{async add(e){const i=await this.enqueueRequest({description:"Create organization",method:l.POST,url:"/organizations/",payload:e,blockers:[],blocks:[]});return this.dispatch(im(i)),i}async update(e){const i=await this.enqueueRequest({description:"Edit organization",method:l.PATCH,url:`/organizations/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[e.uuid]});return this.dispatch(am(i)),i}async invite(e,i){return this.enqueueRequest({description:"Invite user to organization",method:l.POST,url:`/organizations/${e}/invite/${i}/`,blockers:[],blocks:[]})}async refreshStore(e){const i=await this.enqueueRequest({immediate:!0,description:"Fetch organizations",method:l.GET,url:"/organizations/",blockers:[],blocks:[]},e);return this.dispatch(sm(i)),i}}class mF extends R{add(e){var c;const{store:i}=this.client,a=b({...e,created_by:(c=i.getState().userReducer.currentUser)==null?void 0:c.id});this.dispatch(Fn(a));const n=this.enqueueRequest({description:"Add project access",method:l.POST,url:"/project-accesses/",payload:v(a),blockers:[a.organization_access,a.project],blocks:[a.uuid]});return n.then(r=>{this.dispatch(Tt(r))}).catch(r=>{throw this.dispatch(On(a.uuid)),r}),[a,n]}bulkAdd(e){var r;const{store:i}=this.client,a=(r=i.getState().userReducer.currentUser)==null?void 0:r.id,n=e.map(u=>b({...u,created_by:a}));this.dispatch(Pn(n));const c=this.enqueueRequest({description:"Add project accesses",method:l.POST,url:"/project-accesses/bulk/",payload:{project_accesses:n.map(u=>v(u))},blockers:n.flatMap(u=>[u.project,u.organization_access]),blocks:n.map(u=>u.uuid)});return c.then(u=>{this.dispatch(Am(u))}).catch(u=>{throw this.dispatch(_n(n.map(m=>m.uuid))),u}),[n,c]}update(e){const{store:i}=this.client,a=vn(e.uuid)(i.getState()),n={...a,...e};this.dispatch(Tt(n));const c=this.enqueueRequest({description:"Edit project access",method:l.PATCH,url:`/project-accesses/${e.uuid}/`,payload:e,blockers:[e.uuid],blocks:[]});return c.then(r=>{this.dispatch(Tt(r))}).catch(r=>{throw this.dispatch(Tt(a)),r}),[n,c]}async remove(e){const{store:i}=this.client,a=vn(e)(i.getState());this.dispatch(On(e));try{await this.enqueueRequest({description:"Delete project access",method:l.DELETE,url:`/project-accesses/${e}/`,blockers:[e],blocks:[]})}catch(n){throw this.dispatch(Fn(a)),n}}async refreshStore(e,i){const a=await this.enqueueRequest({immediate:!0,description:"Get project accesses",method:l.GET,url:"/project-accesses/",queryParams:{project__organization:e},blockers:[],blocks:[]},i);return this.dispatch(pm(a)),a}}class pF extends He{constructor(){super(...arguments);S(this,"name","Project Attachment");S(this,"url","/project-attachments");S(this,"addAttachments",Tm);S(this,"updateAttachments",Fm);S(this,"removeAttachments",Mn);S(this,"removeAttachment",Pm);S(this,"setAttachment",gm);S(this,"selectAttachment",Rm)}buildOfflineAttachment(i){return b({file:URL.createObjectURL(i.file),file_sha1:i.file_sha1,created_by:i.created_by,file_name:i.file.name,file_type:i.file.type,submitted_at:i.submitted_at,description:i.description,project:i.modelUuid})}buildAttachmentPayload(i){return{...i,project:i.modelUuid}}async bulkAdd(i){return this._bulkAdd(i.map(a=>({modelUuid:a.projectUuid,file:a.file})))}async delete(i){return this._delete(i)}async refreshStore(i,a){const n=await this.enqueueRequest({immediate:!0,description:"Get project attachments",method:l.GET,url:`${this.url}/`,queryParams:{project__organization:i},blockers:[],blocks:[]},a);return this.dispatch(Im(n)),n}}class AF extends R{async saveExisting(e){if(!e.uuid)throw new Error("You can only use this method to save existing project files. The one provided has no uuid.");const i={...e};delete i.file;const a=this.enqueueRequest({method:l.PATCH,url:`/project-files/${e.uuid}/`,payload:i,blockers:[e.uuid],blocks:[e.uuid]});return a.then(n=>{this.dispatch(Vn(n))}),a}saveActive(){const{store:e}=this.client,i=e.getState(),a=i.projectFileReducer.activeProjectFileId;if(!a)throw new Error("No active project file");const n=i.projectFileReducer.instances[a];if(!n)throw new Error("No active project file");if(!n.bounds&&!n.canvas_bounds)throw new Error("Project file must either have bounds or canvas_bounds set");let c;if(typeof n.file=="string"&&!n.file.startsWith("blob:")){const m={...n};delete m.file,c={method:l.PATCH,url:`/project-files/${a}/`,payload:m,blockers:[a],blocks:[a]}}else c=new Promise((m,o)=>{this.client.files.uploadFileToS3(n.file_sha1).then(([h])=>{m({method:l.POST,url:"/project-files/",payload:{...n,...h},blockers:[a],blocks:[a]})}).catch(o)});const u=Promise.resolve(c).then(m=>this.enqueueRequest(m));return u.then(m=>{this.dispatch(Vn(m))}),this.dispatch(Dm),this.dispatch(Um(null)),this.dispatch(zm(!1)),[n,u]}delete(e){return this.dispatch(jm(e)),this.enqueueRequest({method:l.DELETE,url:`/project-files/${e}`,blockers:[e],blocks:[]})}async refreshStore(e,i){const n=(await this.performPagination({immediate:!0,description:"Get project files",method:l.GET,url:"/project-files/",queryParams:{limit:E,paginate:!0,project:e},blockers:[],blocks:[]},c=>({immediate:!0,description:"Get project files",method:l.GET,url:c,blockers:[],blocks:[]}),i)).flat();return this.dispatch(Em(n)),n}}class fF extends R{async add(e){const i=await this.enqueueRequest({description:"Create project",method:l.POST,url:"/projects/",payload:v(e),blockers:[],blocks:[]});return this.dispatch(qn(i)),i}async update(e){if(!e.bounds&&!e.canvas_bounds)throw new Error("Project must either have bounds or canvas_bounds set");return this.dispatch(Lm(e)),await this.enqueueRequest({description:"Update project",method:l.PATCH,url:`/projects/${e.uuid}/`,payload:{name:e.name,bounds:e.bounds},blockers:[e.uuid],blocks:[e.uuid]})}async delete(e){const{store:i}=this.client,a=i.getState(),n=Wm(e)(a);if(!n)throw new Error("Expected project to exist");const c=km(a).filter(m=>m.project===e);this.dispatch(qm(c.map(({uuid:m})=>m)));const r=vm(n.uuid)(a);this.dispatch(Mn(r.map(({uuid:m})=>m)));const u=ym(e)(a);this.dispatch(_n(u.map(({uuid:m})=>m))),this.dispatch(zn(n.uuid));try{await this.enqueueRequest({description:"Delete project",method:l.DELETE,url:`/projects/${e}/`,blockers:[e],blocks:[]}),this.dispatch(zn(n.uuid))}catch(m){throw this.dispatch(qn(n)),this.dispatch(Pn(Object.values(u))),this.dispatch(Vm(c)),this.dispatch(bm(r)),m}}async refreshStore(e,i){const a=await this.enqueueRequest({immediate:!0,description:"Fetch projects",method:l.GET,url:"/projects/",queryParams:{organization:e},blockers:[],blocks:[]},i);return this.dispatch($m(a)),a}}class yF extends R{add(e){var c;const{store:i}=this.client,a=b({...e,created_by:(c=i.getState().userReducer.currentUser)==null?void 0:c.id});this.dispatch(Jm(a));const n=this.enqueueRequest({description:"Create team membership",method:l.POST,url:"/team-memberships/",payload:v(a),blockers:[e.team],blocks:[a.uuid]});return n.then(r=>{this.dispatch(kn(r))}).catch(()=>{this.dispatch(Bn(a.uuid))}),[a,n]}bulkAdd(e){var r;const{store:i}=this.client,a=(r=i.getState().userReducer.currentUser)==null?void 0:r.id,n=e.map(u=>b({...u,created_by:a}));this.dispatch(Xm(n));const c=this.enqueueRequest({description:"Create team memberships",method:l.POST,url:"/team-memberships/bulk/",payload:{team_memberships:n.map(u=>v(u))},blockers:n.map(u=>u.team),blocks:n.map(u=>u.uuid)});return c.then(u=>{this.dispatch(Qm(u))}).catch(()=>{this.dispatch(xm(n.map(u=>u.uuid)))}),[n,c]}async delete(e){const{store:i}=this.client,a=i.getState(),n=sp(e)(a);if(!n)throw new Error(`Expected team membership with uuid ${e} to exist`);this.dispatch(Bn(e));try{return await this.enqueueRequest({description:"Delete team membership",method:l.DELETE,url:`/team-memberships/${e}/`,blockers:[e],blocks:[e]})}catch(c){throw this.dispatch(kn(n)),c}}async refreshStore(e,i){const a=await this.enqueueRequest({immediate:!0,description:"Fetch team memberships",method:l.GET,url:"/team-memberships/",queryParams:{team__organization:e},blockers:[],blocks:[]},i);return this.dispatch(Zm(a)),a}}class SF extends R{add(e){var c;const{store:i}=this.client,a=b({...e,submitted_at:new Date().toISOString(),created_by:(c=i.getState().userReducer.currentUser)==null?void 0:c.id});this.dispatch(np(a));const n=this.enqueueRequest({description:"Create team",method:l.POST,url:"/teams/",payload:v(a),blockers:[],blocks:[a.uuid]});return n.then(r=>{this.dispatch(gt(r))}).catch(()=>{this.dispatch(Ln(a.uuid))}),[a,n]}update(e){const{store:i}=this.client,a=Hn(e.uuid)(i.getState());if(!a)throw new Error(`Expected team with uuid ${e.uuid} to exist`);const n={...a,...e};this.dispatch(cp(n));const c=this.enqueueRequest({description:"Update team",method:l.PATCH,url:`/teams/${e.uuid}/`,payload:v(e),blockers:[e.uuid],blocks:[e.uuid]});return c.then(r=>{this.dispatch(gt(r))}).catch(()=>{this.dispatch(gt(a))}),[n,c]}async delete(e){const{store:i}=this.client,a=i.getState(),n=Hn(e)(a);if(!n)throw new Error(`Expected team with uuid ${e} to exist`);this.dispatch(Ln(e));try{return await this.enqueueRequest({description:"Delete team",method:l.DELETE,url:`/teams/${e}/`,blockers:[e],blocks:[e]})}catch(c){throw this.dispatch(gt(n)),c}}async refreshStore(e,i){const a=await this.enqueueRequest({immediate:!0,description:"Fetch teams",method:l.GET,url:"/teams/",queryParams:{organization:e},blockers:[],blocks:[]},i);return this.dispatch(ap(a)),a}}class IF extends R{async refreshStore(e,i){const a=await this.enqueueRequest({immediate:!0,description:"Fetch organization users",method:l.GET,url:`/organizations/${e}/users/`,blockers:[],blocks:[]},i);return this.dispatch(Lh(a)),a}}class TF{constructor(e){S(this,"store");this.store=e}async enqueueRequest(e,i,a,n){return this._enqueueRequest(e,i,a,n).then(c=>{if(c instanceof D)throw c;return c})}_enqueueRequest(e,i,a,n){const c=new nc,r={...e,BASE_URL:i,serviceName:a};if(e.immediate){const u={...r,uuid:e.uuid??Je.v4()},m={payload:u,type:"",meta:{offline:{effect:{timestamp:new Date().toISOString(),request:u,BASE_URL:i,serviceName:a}}}};Kn(m,this,n).then(o=>{c.resolve(o.body)}).catch(o=>{Zn(o,m),o instanceof Error?c.reject(o):c.reject(new Error((o??xe).toString()))})}else{const u=this.store.dispatch(um(r)),m=h=>{if(h)c.resolve(h.body);else{const p=new D({message:"Could not get a response from the server.",response:h,discard:!0});c.reject(p)}},o=h=>{h instanceof D?h.options.discard=!0:(console.error("Received an unexpected error while processing a request:",h,`
|
|
15
15
|
Converting error to APIError and discarding.`),h=new D({message:"An error occurred while processing the request.",innerError:h,discard:!0})),c.reject(h)};u.then(m,o)}return c}}class et{constructor(){S(this,"graph");S(this,"requestAttemptCounter");this.graph=new qp.DepGraph,this.requestAttemptCounter={}}static _fromOutbox(e){const i=new et;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 r=e[c];if(!r){console.error("Previous outbox item was undefined");continue}r.payload.uuid!==n.payload.uuid&&r.payload.blocks.some(u=>n.payload.blockers.includes(u))&&et._addDependency(n.payload.uuid,r.payload.uuid,i.graph)}}return i}_addDependency(e,i){et._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);e.payload.blockers.some(n=>a.payload.blocks.includes(n))&&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;this.graph.getNodeData(i).payload.blockers.some(n=>e.payload.blocks.includes(n))&&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}}const gF=(t,e)=>{const i=new e(t);return kg(i),Cg(t),i};var Op=(t=>(t[t.USER_REGISTRATION=0]="USER_REGISTRATION",t[t.APPLICATION_INVITE=2]="APPLICATION_INVITE",t[t.PROJECT_INVITE=4]="PROJECT_INVITE",t[t.ORGANIZATION_INVITE=6]="ORGANIZATION_INVITE",t[t.ADD_EMAIL_DOMAIN=8]="ADD_EMAIL_DOMAIN",t[t.RESET_PASSWORD=10]="RESET_PASSWORD",t))(Op||{});s.APIError=D,s.AgentService=cb,s.AssetAttachmentService=ub,s.AssetProcedureAttachmentService=ob,s.AssetProcedureFieldValuesAttachmentService=mb,s.AssetProcedureFieldValuesService=pb,s.AssetProcedureFieldsAttachmentService=lb,s.AssetProcedureFieldsService=hb,s.AssetProcedureInstanceService=Ab,s.AssetProcedureService=fb,s.AssetProcedureStepFieldValuesAttachmentService=Ib,s.AssetProcedureStepFieldValuesService=Tb,s.AssetProcedureStepFieldsAttachmentService=yb,s.AssetProcedureStepFieldsService=Sb,s.AssetProcedureStepService=gb,s.AssetService=bb,s.AssetStageCompletionService=Fb,s.AssetStageService=Pb,s.AssetTypeAttachmentService=Ob,s.AssetTypeFieldValuesAttachmentService=vb,s.AssetTypeFieldValuesService=wb,s.AssetTypeFieldsAttachmentService=_b,s.AssetTypeFieldsService=Rb,s.AssetTypeIdentifierService=Mb,s.AssetTypeIdentifierValueService=Eb,s.AssetTypeService=Vb,s.AttachmentModel=ic,s.BaseApiService=R,s.BaseSDK=TF,s.COMMON_AUTO_FIELDS=oc,s.CategoryService=jb,s.DEFAULT_ISSUE_PRIORITY=Up,s.DEFAULT_ISSUE_STATUS=zp,s.DEFAULT_PAGINATION_PAGE_SIZE=E,s.DeferredPromise=nc,s.DocumentAttachmentService=qb,s.DocumentService=zb,s.EMPTY_ARRAY=ec,s.EMPTY_OBJECT=tc,s.EmailDomainsService=Ub,s.EmailVerificationService=Db,s.FileService=kb,s.FormIdentifierService=Bb,s.FormIdentifierValueService=Gb,s.FormRevisionAttachmentService=$b,s.FormRevisionService=Lb,s.FormService=Nb,s.FormSubmissionAttachmentService=Hb,s.FormSubmissionService=Wb,s.GeoImageService=Yb,s.HttpMethod=l,s.IssueAssociationService=Kb,s.IssueAttachmentService=Zb,s.IssueCommentAttachmentService=Jb,s.IssueCommentService=Xb,s.IssuePriority=Qt,s.IssueService=Qb,s.IssueStatus=xt,s.IssueTypeAttachmentService=xb,s.IssueTypeFieldValuesAttachmentService=sF,s.IssueTypeFieldValuesService=iF,s.IssueTypeFieldsAttachmentService=eF,s.IssueTypeFieldsService=tF,s.IssueTypeIdentifierService=aF,s.IssueTypeIdentifierValueService=nF,s.IssueTypeService=cF,s.IssueUpdateChange=V,s.IssueUpdateService=rF,s.JWTService=oF,s.OUTBOX_RETRY_DELAY=ac,s.OrganizationAccessLevel=sc,s.OrganizationAccessService=lF,s.OrganizationService=hF,s.OutboxCoordinator=et,s.PAGINATION_MAX_PAGE_SIZE=rb,s.PAGINATION_PAGE_SIZE_QUERY_PARAM=db,s.ProjectAccessService=mF,s.ProjectAttachmentService=pF,s.ProjectFileService=AF,s.ProjectService=fF,s.RESET_ORGANIZATION_STATE=O,s.RESET_PROJECT_STATE=M,s.RESET_STATE=g,s.SelectorBuilder=Dg,s.TeamMembershipService=yF,s.TeamService=SF,s.UNKNOWN_ERROR_MESSAGE=xe,s.UserService=IF,s.VERSION_REDUCER_KEY=tt,s.VerificationCodeType=Op,s._setLatestRetryTime=lm,s.addAsset=Zs,s.addAssetAttachment=oA,s.addAssetAttachments=ds,s.addAssetProcedure=vs,s.addAssetProcedureAttachment=mA,s.addAssetProcedureAttachments=Mc,s.addAssetProcedureFieldValues=ys,s.addAssetProcedureFieldValuesAttachment=VA,s.addAssetProcedureFieldValuesAttachments=Ot,s.addAssetProcedureFieldValuesMany=ur,s.addAssetProcedureFields=Zc,s.addAssetProcedureFieldsAttachment=yA,s.addAssetProcedureFieldsAttachments=Gc,s.addAssetProcedureFieldsMany=PA,s.addAssetProcedureInstance=bs,s.addAssetProcedureInstances=fr,s.addAssetProcedureStep=Hs,s.addAssetProcedureStepFieldValues=Gs,s.addAssetProcedureStepFieldValuesAttachment=yf,s.addAssetProcedureStepFieldValuesAttachments=Rt,s.addAssetProcedureStepFieldValuesMany=Nr,s.addAssetProcedureStepFields=qs,s.addAssetProcedureStepFieldsAttachment=ef,s.addAssetProcedureStepFieldsAttachments=_r,s.addAssetProcedureStepFieldsMany=df,s.addAssetProcedureSteps=wf,s.addAssetProcedures=YA,s.addAssetStage=di,s.addAssetStageCompletion=si,s.addAssetStageCompletions=ii,s.addAssetStages=Lf,s.addAssetType=ji,s.addAssetTypeAttachment=Zf,s.addAssetTypeAttachments=hi,s.addAssetTypeFieldValues=Ii,s.addAssetTypeFieldValuesAttachment=my,s.addAssetTypeFieldValuesAttachments=Ut,s.addAssetTypeFieldValuesMany=Xd,s.addAssetTypeFields=Dd,s.addAssetTypeFieldsAttachment=Qf,s.addAssetTypeFieldsAttachments=wd,s.addAssetTypeFieldsMany=ny,s.addAssetTypeIdentifier=Pi,s.addAssetTypeIdentifierValue=vi,s.addAssetTypeIdentifierValues=wy,s.addAssetTypeIdentifiers=Fy,s.addAssetTypes=Cy,s.addAssets=Vt,s.addCategories=Yy,s.addCategory=Ci,s.addConversation=Ac,s.addConversations=iA,s.addDocumentAttachment=eS,s.addDocumentAttachments=_u,s.addDocuments=Du,s.addEmailDomain=$u,s.addEmailDomains=rS,s.addForm=ua,s.addFormIdentifier=Ki,s.addFormIdentifierValue=Qi,s.addFormIdentifierValues=gS,s.addFormIdentifiers=AS,s.addFormRevision=aa,s.addFormRevisionAttachment=vS,s.addFormRevisionAttachments=oo,s.addFormRevisions=yo,s.addFormSubmission=pa,s.addFormSubmissionAttachment=WS,s.addFormSubmissionAttachments=Bt,s.addFormSubmissions=Do,s.addForms=kS,s.addGeoImage=Ho,s.addGeoImages=Wo,s.addIssue=Ca,s.addIssueAssociation=ba,s.addIssueAssociations=Fa,s.addIssueAttachment=cI,s.addIssueAttachments=va,s.addIssueComment=ja,s.addIssueCommentAttachment=uI,s.addIssueCommentAttachments=fl,s.addIssueComments=pI,s.addIssueType=vh,s.addIssueTypeAttachment=PI,s.addIssueTypeAttachments=Ul,s.addIssueTypeFieldValues=Ya,s.addIssueTypeFieldValuesAttachment=JI,s.addIssueTypeFieldValuesAttachments=Ht,s.addIssueTypeFieldValuesMany=zI,s.addIssueTypeFields=nh,s.addIssueTypeFieldsAttachment=vI,s.addIssueTypeFieldsAttachments=Yl,s.addIssueTypeFieldsMany=GI,s.addIssueTypeIdentifier=tn,s.addIssueTypeIdentifierValue=cn,s.addIssueTypeIdentifierValues=dT,s.addIssueTypeIdentifiers=sT,s.addIssueTypes=AT,s.addIssueUpdate=qh,s.addIssueUpdates=zh,s.addIssues=El,s.addOrganization=im,s.addOrganizationAccess=Xh,s.addOrganizationAccesses=zT,s.addOrganizations=NT,s.addProject=qn,s.addProjectAccess=Fn,s.addProjectAccesses=Pn,s.addProjectAttachment=ig,s.addProjectAttachments=Tm,s.addProjectFile=rg,s.addProjectFiles=Vm,s.addProjects=Ag,s.addTeam=np,s.addTeamMembership=Jm,s.addTeamMemberships=Xm,s.addTeams=Rg,s.addUser=Nh,s.addUsers=vT,s.agentsReducer=Sc,s.agentsSlice=as,s.areArraysEqual=kp,s.assetAttachmentReducer=Rc,s.assetAttachmentSlice=cs,s.assetProcedureAttachmentReducer=zc,s.assetProcedureAttachmentSlice=os,s.assetProcedureFieldValuesAttachmentReducer=cr,s.assetProcedureFieldValuesAttachmentSlice=ps,s.assetProcedureFieldValuesReducer=hr,s.assetProcedureFieldValuesSlice=fs,s.assetProcedureFieldsAttachmentReducer=Wc,s.assetProcedureFieldsAttachmentSlice=ls,s.assetProcedureFieldsReducer=xc,s.assetProcedureFieldsSlice=hs,s.assetProcedureInstanceReducer=Sr,s.assetProcedureInstanceSlice=gs,s.assetProcedureReducer=br,s.assetProcedureSlice=Rs,s.assetProcedureStepFieldValuesAttachmentReducer=Gr,s.assetProcedureStepFieldValuesAttachmentSlice=Cs,s.assetProcedureStepFieldValuesReducer=Kr,s.assetProcedureStepFieldValuesSlice=Bs,s.assetProcedureStepFieldsAttachmentReducer=Er,s.assetProcedureStepFieldsAttachmentSlice=Vs,s.assetProcedureStepFieldsReducer=qr,s.assetProcedureStepFieldsSlice=js,s.assetProcedureStepReducer=Qr,s.assetProcedureStepSlice=Ns,s.assetReducer=ad,s.assetSlice=Ks,s.assetStageCompletionReducer=ud,s.assetStageCompletionSlice=ti,s.assetStageReducer=Ad,s.assetStageSlice=ri,s.assetTypeAttachmentReducer=_d,s.assetTypeAttachmentSlice=li,s.assetTypeFieldValuesAttachmentReducer=Kd,s.assetTypeFieldValuesAttachmentSlice=fi,s.assetTypeFieldValuesReducer=tu,s.assetTypeFieldValuesSlice=Si,s.assetTypeFieldsAttachmentReducer=qd,s.assetTypeFieldsAttachmentSlice=pi,s.assetTypeFieldsReducer=Gd,s.assetTypeFieldsSlice=Ai,s.assetTypeIdentifierReducer=cu,s.assetTypeIdentifierSlice=Fi,s.assetTypeIdentifierValueReducer=ou,s.assetTypeIdentifierValueSlice=Ri,s.assetTypeReducer=pu,s.assetTypeSlice=Vi,s.authReducer=yu,s.authSlice=Ct,s.baseReducer=qg,s.baseReducers=Wn,s.blobToBase64=Kp,s.categoryReducer=Fu,s.categorySlice=Di,s.clearTokens=Ny,s.constructUploadedFilePayloads=Yp,s.createModelAdapter=P,s.createOfflineAction=rm,s.createPayload=v,s.createSelectionAdapter=Dp,s.deleteAsset=Js,s.deleteAssetAttachment=bc,s.deleteAssetAttachments=us,s.deleteAssetProcedure=ws,s.deleteAssetProcedureAttachment=jc,s.deleteAssetProcedureAttachments=qc,s.deleteAssetProcedureFieldValues=Ss,s.deleteAssetProcedureFieldValuesAttachment=UA,s.deleteAssetProcedureFieldValuesAttachments=_t,s.deleteAssetProcedureFieldValuesMany=lr,s.deleteAssetProcedureFields=Xc,s.deleteAssetProcedureFieldsAttachment=gA,s.deleteAssetProcedureFieldsAttachments=Lc,s.deleteAssetProcedureFieldsMany=vA,s.deleteAssetProcedureInstance=Fs,s.deleteAssetProcedureInstances=yr,s.deleteAssetProcedureStep=Ws,s.deleteAssetProcedureStepFieldValues=$s,s.deleteAssetProcedureStepFieldValuesAttachment=gf,s.deleteAssetProcedureStepFieldValuesAttachments=vt,s.deleteAssetProcedureStepFieldValuesMany=Wr,s.deleteAssetProcedureStepFields=zs,s.deleteAssetProcedureStepFieldsAttachment=nf,s.deleteAssetProcedureStepFieldsAttachments=vr,s.deleteAssetProcedureStepFieldsMany=hf,s.deleteAssetProcedureSteps=Ef,s.deleteAssetProcedures=ZA,s.deleteAssetStage=ui,s.deleteAssetStageCompletion=ai,s.deleteAssetStageCompletions=ni,s.deleteAssetStages=Hf,s.deleteAssetType=qi,s.deleteAssetTypeAttachment=gd,s.deleteAssetTypeAttachments=mi,s.deleteAssetTypeFieldValues=Ti,s.deleteAssetTypeFieldValuesAttachment=yy,s.deleteAssetTypeFieldValuesAttachments=Dt,s.deleteAssetTypeFieldValuesMany=xd,s.deleteAssetTypeFields=kd,s.deleteAssetTypeFieldsAttachment=sy,s.deleteAssetTypeFieldsAttachments=Ed,s.deleteAssetTypeFieldsMany=uy,s.deleteAssetTypeIdentifier=Oi,s.deleteAssetTypeIdentifierValue=wi,s.deleteAssetTypeIdentifierValues=jy,s.deleteAssetTypeIdentifiers=Ry,s.deleteAssetTypes=By,s.deleteAssets=Xs,s.deleteCategories=Xy,s.deleteCategory=gu,s.deleteConversation=cA,s.deleteConversations=rA,s.deleteDocumentAttachment=wu,s.deleteDocumentAttachments=Mu,s.deleteEmailDomain=Lu,s.deleteEmailDomains=hS,s.deleteForm=oa,s.deleteFormIdentifier=Zi,s.deleteFormIdentifierValue=xi,s.deleteFormIdentifierValues=OS,s.deleteFormIdentifiers=IS,s.deleteFormRevision=na,s.deleteFormRevisionAttachment=VS,s.deleteFormRevisionAttachments=ho,s.deleteFormRevisions=Io,s.deleteFormSubmission=Aa,s.deleteFormSubmissionAttachment=JS,s.deleteFormSubmissionAttachments=Gt,s.deleteFormSubmissions=ko,s.deleteForms=NS,s.deleteGeoImage=Ia,s.deleteGeoImages=Ko,s.deleteIssue=ka,s.deleteIssueAssociation=Pa,s.deleteIssueAssociations=Oa,s.deleteIssueAttachment=ul,s.deleteIssueAttachments=wa,s.deleteIssueComment=za,s.deleteIssueCommentAttachment=Il,s.deleteIssueCommentAttachments=Tl,s.deleteIssueComments=yI,s.deleteIssueType=ST,s.deleteIssueTypeAttachment=kl,s.deleteIssueTypeAttachments=Bl,s.deleteIssueTypeFieldValues=Ka,s.deleteIssueTypeFieldValuesAttachment=eT,s.deleteIssueTypeFieldValuesAttachments=Wt,s.deleteIssueTypeFieldValuesMany=kI,s.deleteIssueTypeFields=rh,s.deleteIssueTypeFieldsAttachment=VI,s.deleteIssueTypeFieldsAttachments=Zl,s.deleteIssueTypeFieldsMany=HI,s.deleteIssueTypeIdentifier=sn,s.deleteIssueTypeIdentifierValue=rn,s.deleteIssueTypeIdentifierValues=hT,s.deleteIssueTypeIdentifiers=cT,s.deleteIssueTypes=IT,s.deleteIssueUpdate=Uh,s.deleteIssueUpdates=Dh,s.deleteIssues=Vl,s.deleteOrganization=WT,s.deleteOrganizationAccess=Qh,s.deleteOrganizationAccesses=kT,s.deleteOrganizations=YT,s.deleteProject=zn,s.deleteProjectAccess=On,s.deleteProjectAccesses=_n,s.deleteProjectAttachment=Pm,s.deleteProjectAttachments=Mn,s.deleteProjectFile=jm,s.deleteProjectFiles=qm,s.deleteProjects=yg,s.deleteTeam=Ln,s.deleteTeamMembership=Bn,s.deleteTeamMemberships=xm,s.deleteTeams=Mg,s.deleteUser=Hh,s.deleteUsers=ET,s.dequeue=gp,s.discard=Zn,s.documentAttachmentReducer=qu,s.documentAttachmentSlice=Gi,s.documentSlice=$i,s.documentsReducer=ku,s.downloadFile=Zp,s.downloadInMemoryFile=Wp,s.emailDomainsReducer=Wu,s.emailDomainsSlice=Hi,s.emailRegex=sA,s.enqueue=Tp,s.enqueueRequest=um,s.fallbackToEmptyArray=I,s.fallbackToEmptyObject=Pt,s.fileReducer=Xu,s.fileSlice=Wi,s.fileToBlob=dc,s.formIdentifierReducer=so,s.formIdentifierSlice=Yi,s.formIdentifierValueReducer=co,s.formIdentifierValueSlice=Xi,s.formReducer=Po,s.formRevisionAttachmentReducer=po,s.formRevisionAttachmentSlice=sa,s.formRevisionReducer=go,s.formRevisionsSlice=ia,s.formSlice=da,s.formSubmissionAttachmentReducer=qo,s.formSubmissionAttachmentSlice=la,s.formSubmissionReducer=Go,s.formSubmissionSlice=ma,s.geoImageReducer=Xo,s.geoImageSlice=Sa,s.getFileIdentifier=Hp,s.getFileS3Key=is,s.getLocalDateString=cc,s.getLocalRelativeDateString=Lp,s.getOutboxCoordinator=Ye,s.getRenamedFile=rc,s.hashFile=Xe,s.initSDK=gF,s.initializeAssetAttachments=rs,s.initializeAssetProcedureAttachments=wc,s.initializeAssetProcedureFieldValues=dr,s.initializeAssetProcedureFieldValuesAttachments=tr,s.initializeAssetProcedureFields=Kc,s.initializeAssetProcedureFieldsAttachments=Bc,s.initializeAssetProcedureInstances=Ar,s.initializeAssetProcedureStepFieldValues=Lr,s.initializeAssetProcedureStepFieldValuesAttachments=Ur,s.initializeAssetProcedureStepFields=jr,s.initializeAssetProcedureStepFieldsAttachments=Or,s.initializeAssetProcedureSteps=Jr,s.initializeAssetProcedures=gr,s.initializeAssetStageCompletions=cd,s.initializeAssetStages=md,s.initializeAssetTypeAttachments=Sd,s.initializeAssetTypeFieldValues=Jd,s.initializeAssetTypeFieldValuesAttachments=Ld,s.initializeAssetTypeFields=Ud,s.initializeAssetTypeFieldsAttachments=vd,s.initializeAssetTypeIdentifierValues=du,s.initializeAssetTypeIdentifiers=iu,s.initializeAssetTypes=hu,s.initializeAssets=td,s.initializeCategories=Iu,s.initializeConversations=pc,s.initializeDocumentAttachments=Ou,s.initializeEmailDomains=Gu,s.initializeFormIdentifierValues=ao,s.initializeFormIdentifiers=xu,s.initializeFormRevisionAttachments=uo,s.initializeFormRevisions=fo,s.initializeFormSubmissionAttachments=wo,s.initializeFormSubmissions=Uo,s.initializeForms=Fo,s.initializeGeoImages=Lo,s.initializeIssueAssociations=xo,s.initializeIssueAttachments=Ra,s.initializeIssueCommentAttachments=Ea,s.initializeIssueComments=mI,s.initializeIssueTypeAttachments=Na,s.initializeIssueTypeFieldValues=eh,s.initializeIssueTypeFieldValuesAttachments=lh,s.initializeIssueTypeFields=ah,s.initializeIssueTypeFieldsAttachments=Wl,s.initializeIssueTypeIdentifierValues=Fh,s.initializeIssueTypeIdentifiers=Sh,s.initializeIssueTypes=Rh,s.initializeIssueUpdates=jh,s.initializeIssues=Ml,s.initializeOrganizationAccesses=Jh,s.initializeOrganizations=sm,s.initializeProjectAccesses=pm,s.initializeProjectAttachments=Im,s.initializeProjectFiles=Em,s.initializeProjects=$m,s.initializeTeamMemberships=Zm,s.initializeTeams=ap,s.initializeUsers=Lh,s.isToday=$p,s.issueAssociationReducer=nl,s.issueAssociationSlice=ga,s.issueAttachmentReducer=pl,s.issueAttachmentSlice=_a,s.issueCommentAttachmentReducer=Pl,s.issueCommentAttachmentSlice=Ma,s.issueCommentReducer=vl,s.issueCommentSlice=Va,s.issueReducer=ql,s.issueSlice=Da,s.issueTypeAttachmentReducer=Nl,s.issueTypeAttachmentSlice=La,s.issueTypeFieldValuesAttachmentReducer=fh,s.issueTypeFieldValuesAttachmentSlice=Qa,s.issueTypeFieldValuesReducer=sh,s.issueTypeFieldValuesSlice=Wa,s.issueTypeFieldsAttachmentReducer=Ql,s.issueTypeFieldsAttachmentSlice=Ha,s.issueTypeFieldsReducer=uh,s.issueTypeFieldsSlice=Xa,s.issueTypeIdentifierReducer=gh,s.issueTypeIdentifierSlice=en,s.issueTypeIdentifierValueReducer=Oh,s.issueTypeIdentifierValueSlice=nn,s.issueTypeReducer=Eh,s.issueTypeSlice=on,s.issueUpdateReducer=Gh,s.issueUpdateSlice=pn,s.logOnlyOnce=Jp,s.markAsDeleted=om,s.markForDeletion=QT,s.memoize=ts,s.offline=b,s.onlyUniqueHashes=tA,s.onlyUniqueOfflineIds=hc,s.organizationAccessReducer=xh,s.organizationAccessSlice=yn,s.organizationReducer=cm,s.organizationSlice=Tn,s.outboxReducer=hm,s.outboxSlice=gn,s.overmapEnhancer=Kg,s.overmapReducer=zg,s.overmapReducers=lp,s.performRequest=Kn,s.projectAccessReducer=fm,s.projectAccessSlice=bn,s.projectAttachmentReducer=wm,s.projectAttachmentSlice=wn,s.projectFileReducer=Bm,s.projectFileSlice=En,s.projectReducer=Nm,s.projectSlice=jn,s.rehydratedReducer=Ym,s.rehydratedSlice=Dn,s.removeDocuments=Li,s.removeIssueType=ln,s.resetProjectFileObjectUrls=ug,s.restructureCreateSelectorWithArgs=y,s.saveActiveProjectFileBounds=Dm,s.selectAccessToken=Hy,s.selectAccessesByUserOfProject=tg,s.selectAccessibleProjects=Sg,s.selectActiveOrganizationAccess=BT,s.selectActiveProjectFileId=lg,s.selectAllDocumentAttachments=Vu,s.selectAllProjectAttachments=_m,s.selectAssetAttachmentById=Oc,s.selectAssetAttachmentMapping=Fc,s.selectAssetAttachments=Pc,s.selectAssetById=ei,s.selectAssetProcedureAttachmentById=Cc,s.selectAssetProcedureAttachmentMapping=Uc,s.selectAssetProcedureAttachments=Dc,s.selectAssetProcedureById=Es,s.selectAssetProcedureFieldValues=Is,s.selectAssetProcedureFieldValuesAttachmentById=DA,s.selectAssetProcedureFieldValuesAttachments=ir,s.selectAssetProcedureFieldValuesAttachmentsByIds=ar,s.selectAssetProcedureFieldValuesAttachmentsMapping=As,s.selectAssetProcedureFieldValuesById=Ts,s.selectAssetProcedureFieldValuesMapping=mr,s.selectAssetProcedureFieldValuesOfAsset=BA,s.selectAssetProcedureFields=ms,s.selectAssetProcedureFieldsAttachmentById=FA,s.selectAssetProcedureFieldsAttachments=Hc,s.selectAssetProcedureFieldsAttachmentsMapping=Nc,s.selectAssetProcedureFieldsById=EA,s.selectAssetProcedureFieldsMapping=Qc,s.selectAssetProcedureFieldsOfAssetProcedure=wA,s.selectAssetProcedureInstanceById=_s,s.selectAssetProcedureInstances=Os,s.selectAssetProcedureInstancesByIds=WA,s.selectAssetProcedureInstancesMapping=Ps,s.selectAssetProcedureInstancesOfAssetProcedure=Ir,s.selectAssetProcedureInstancesOfAssetType=HA,s.selectAssetProcedureStepById=Ys,s.selectAssetProcedureStepFieldValues=wt,s.selectAssetProcedureStepFieldValuesAttachmentById=bf,s.selectAssetProcedureStepFieldValuesAttachments=Cr,s.selectAssetProcedureStepFieldValuesAttachmentsByIds=kr,s.selectAssetProcedureStepFieldValuesAttachmentsMapping=ks,s.selectAssetProcedureStepFieldValuesById=Ls,s.selectAssetProcedureStepFieldValuesMapping=Yr,s.selectAssetProcedureStepFieldValuesOfAsset=Of,s.selectAssetProcedureStepFieldValuesOfAssetProcedureInstance=_f,s.selectAssetProcedureStepFieldValuesOfAssetProcedureStep=Rf,s.selectAssetProcedureStepFields=Ds,s.selectAssetProcedureStepFieldsAttachmentById=rf,s.selectAssetProcedureStepFieldsAttachments=Mr,s.selectAssetProcedureStepFieldsAttachmentsMapping=wr,s.selectAssetProcedureStepFieldsById=ff,s.selectAssetProcedureStepFieldsMapping=Us,s.selectAssetProcedureStepFieldsOfAssetProcedureStep=mf,s.selectAssetProcedureStepMapping=Et,s.selectAssetProcedureSteps=xr,s.selectAssetProcedureStepsByIds=qf,s.selectAssetProcedureStepsMappingOfAssetProcedure=Vf,s.selectAssetProcedureStepsOfAssetProcedure=jf,s.selectAssetProcedures=Fr,s.selectAssetProceduresByIds=QA,s.selectAssetProceduresMapping=Ms,s.selectAssetProceduresOfOrganization=xA,s.selectAssetStageById=oi,s.selectAssetStageCompletionById=od,s.selectAssetStageCompletionMapping=ci,s.selectAssetStageCompletions=Gf,s.selectAssetStageCompletionsByIds=ld,s.selectAssetStages=fd,s.selectAssetStagesByIds=Kf,s.selectAssetStagesMappingOfAssetProcedure=Wf,s.selectAssetStagesOfAssetProcedure=Yf,s.selectAssetTypeAttachmentById=Pd,s.selectAssetTypeAttachmentMapping=bd,s.selectAssetTypeAttachments=Fd,s.selectAssetTypeById=Ui,s.selectAssetTypeFieldValues=gi,s.selectAssetTypeFieldValuesAttachmentById=Sy,s.selectAssetTypeFieldValuesAttachments=Hd,s.selectAssetTypeFieldValuesAttachmentsByIds=Wd,s.selectAssetTypeFieldValuesAttachmentsMapping=yi,s.selectAssetTypeFieldValuesById=bi,s.selectAssetTypeFieldValuesMapping=eu,s.selectAssetTypeFieldValuesOfAsset=gy,s.selectAssetTypeFields=zt,s.selectAssetTypeFieldsAttachmentById=ay,s.selectAssetTypeFieldsAttachments=jd,s.selectAssetTypeFieldsAttachmentsMapping=Vd,s.selectAssetTypeFieldsById=hy,s.selectAssetTypeFieldsMapping=Bd,s.selectAssetTypeFieldsOfAssetType=oy,s.selectAssetTypeIdentifierById=_i,s.selectAssetTypeIdentifierMapping=au,s.selectAssetTypeIdentifierValueById=Ei,s.selectAssetTypeIdentifierValueMapping=uu,s.selectAssetTypeIdentifierValues=Mi,s.selectAssetTypeIdentifierValuesOfAsset=qy,s.selectAssetTypeIdentifierValuesOfIdentifier=zy,s.selectAssetTypeIdentifiers=nu,s.selectAssetTypeIdentifiersOfAssetType=vy,s.selectAssetTypeValuesOfAssetType=by,s.selectAssetTypes=mu,s.selectAssetTypesByIds=Gy,s.selectAssetTypesMapping=zi,s.selectAssetTypesOfOrganization=$y,s.selectAssets=sd,s.selectAssetsByIds=id,s.selectAssetsMapping=Qs,s.selectAssetsOfAssetType=xs,s.selectAttachmentsOfAsset=_c,s.selectAttachmentsOfAssetProcedure=fA,s.selectAttachmentsOfAssetProcedureFieldValues=nr,s.selectAttachmentsOfAssetProcedureFields=bA,s.selectAttachmentsOfAssetProcedureStepFieldValues=Br,s.selectAttachmentsOfAssetProcedureStepFields=cf,s.selectAttachmentsOfAssetType=Od,s.selectAttachmentsOfAssetTypeFieldValues=Yd,s.selectAttachmentsOfAssetTypeFields=iy,s.selectAttachmentsOfDocument=iS,s.selectAttachmentsOfFormRevision=jS,s.selectAttachmentsOfFormSubmission=jo,s.selectAttachmentsOfIssue=hl,s.selectAttachmentsOfIssueComment=hI,s.selectAttachmentsOfIssueType=RI,s.selectAttachmentsOfIssueTypeFieldValues=Ah,s.selectAttachmentsOfIssueTypeFields=jI,s.selectAttachmentsOfProject=vm,s.selectCategories=bu,s.selectCategoriesByIds=Qy,s.selectCategoriesOfProject=xy,s.selectCategoryById=Bi,s.selectCategoryMapping=ki,s.selectCommentsOfIssue=SI,s.selectConversation=uA,s.selectConversationMapping=ns,s.selectConversations=dA,s.selectCurrentUser=Yh,s.selectDeletedRequests=JT,s.selectDocumentAttachmentById=ju,s.selectDocumentAttachmentMapping=Eu,s.selectDocumentById=Cu,s.selectDocuments=Ni,s.selectDocumentsByIds=aS,s.selectDocumentsMapping=kt,s.selectEmailDomains=Hu,s.selectEmailDomainsAsMapping=Nu,s.selectEmailDomainsOfOrganization=mS,s.selectFieldValuesOfAssetProcedureInstance=GA,s.selectFormById=Ro,s.selectFormIdentifierById=Ji,s.selectFormIdentifierMapping=eo,s.selectFormIdentifierValueById=ta,s.selectFormIdentifierValueMapping=no,s.selectFormIdentifierValues=ea,s.selectFormIdentifierValuesOfFormSubmission=_S,s.selectFormIdentifierValuesOfIdentifier=RS,s.selectFormIdentifiers=to,s.selectFormIdentifiersOfForm=TS,s.selectFormMapping=Oo,s.selectFormRevisionAttachmentsMapping=mo,s.selectFormRevisionById=DS,s.selectFormRevisionMapping=ca,s.selectFormRevisions=ra,s.selectFormRevisionsOfForm=To,s.selectFormSubmissionAttachemntsByIds=Vo,s.selectFormSubmissionAttachments=ha,s.selectFormSubmissionAttachmentsMapping=Eo,s.selectFormSubmissionById=ya,s.selectFormSubmissions=xS,s.selectFormSubmissionsMapping=fa,s.selectFormSubmissionsOfForm=Bo,s.selectForms=_o,s.selectFormsOfOrganization=HS,s.selectGeoImageById=Ta,s.selectGeoImageMapping=Zo,s.selectGeoImages=Jo,s.selectGeoImagesOfProject=tI,s.selectIsImportingProjectFile=hg,s.selectIsLoggedIn=Wy,s.selectIssueAssociationById=tl,s.selectIssueAssociationMapping=At,s.selectIssueAssociations=nI,s.selectIssueAssociationsOfAsset=al,s.selectIssueAssociationsOfIssue=il,s.selectIssueAssociationsToIssue=sl,s.selectIssueAttachmentById=ml,s.selectIssueAttachmentMapping=ol,s.selectIssueAttachments=ll,s.selectIssueById=$a,s.selectIssueCommentAttachmentById=Fl,s.selectIssueCommentAttachmentMapping=gl,s.selectIssueCommentAttachments=bl,s.selectIssueCommentById=Ua,s.selectIssueCommentMapping=Rl,s.selectIssueMapping=Ba,s.selectIssueTypeAttachmentById=Ll,s.selectIssueTypeAttachmentMapping=Gl,s.selectIssueTypeAttachments=$l,s.selectIssueTypeById=mn,s.selectIssueTypeFieldValues=Za,s.selectIssueTypeFieldValuesAttachmentById=tT,s.selectIssueTypeFieldValuesAttachments=xa,s.selectIssueTypeFieldValuesAttachmentsByIds=ph,s.selectIssueTypeFieldValuesAttachmentsMapping=mh,s.selectIssueTypeFieldValuesById=Ja,s.selectIssueTypeFieldValuesMapping=th,s.selectIssueTypeFieldValuesOfIssue=BI,s.selectIssueTypeFields=Nt,s.selectIssueTypeFieldsAttachmentById=qI,s.selectIssueTypeFieldsAttachments=Xl,s.selectIssueTypeFieldsAttachmentsMapping=Jl,s.selectIssueTypeFieldsById=ZI,s.selectIssueTypeFieldsMapping=dh,s.selectIssueTypeFieldsOfIssueType=WI,s.selectIssueTypeIdentifierById=an,s.selectIssueTypeIdentifierMapping=Ih,s.selectIssueTypeIdentifierValueById=un,s.selectIssueTypeIdentifierValueMapping=Ph,s.selectIssueTypeIdentifierValues=dn,s.selectIssueTypeIdentifierValuesOfIdentifier=pT,s.selectIssueTypeIdentifierValuesOfIssue=mT,s.selectIssueTypeIdentifiers=Th,s.selectIssueTypeIdentifiersOfIssueType=rT,s.selectIssueTypeMapping=hn,s.selectIssueTypeValuesOfIssueType=KI,s.selectIssueTypes=Mh,s.selectIssueTypesByIds=TT,s.selectIssueTypesOfOrganization=gT,s.selectIssueUpdateMapping=Ch,s.selectIssueUpdates=kh,s.selectIssueUpdatesOfIssue=Bh,s.selectIssues=Ga,s.selectIssuesByIds=bI,s.selectIssuesOfIssueType=jl,s.selectIssuesOfProject=FI,s.selectLatestAssetProcedureFieldsOfAssetProcedure=MA,s.selectLatestAssetProcedureStepFieldsOfAssetProcedureStep=pf,s.selectLatestAssetTypeFieldsOfAssetType=ly,s.selectLatestFieldsByAssetProcedureStep=Af,s.selectLatestFormRevisionOfForm=CS,s.selectLatestIssueTypeFieldsOfIssueType=YI,s.selectLatestRetryTime=XT,s.selectMembershipsByUserOfTeam=Og,s.selectNumberOfAssetsOfAssetType=Cf,s.selectOrganizationAccessById=In,s.selectOrganizationAccessMapping=Sn,s.selectOrganizationAccessUserMapping=em,s.selectOrganizationById=ZT,s.selectOrganizationDocuments=cS,s.selectOrganizations=KT,s.selectOrganizationsMapping=nm,s.selectProjectAccessById=vn,s.selectProjectAccessMapping=Rn,s.selectProjectAccesses=Zt,s.selectProjectAccessesOfProject=ym,s.selectProjectAttachmentById=Rm,s.selectProjectAttachmentMapping=Om,s.selectProjectById=Wm,s.selectProjectDocuments=nS,s.selectProjectFileById=og,s.selectProjectFileMapping=Cm,s.selectProjectFiles=km,s.selectProjectMapping=Hm,s.selectProjects=Un,s.selectProjectsOfOrganization=Ig,s.selectRehydrated=bg,s.selectStageMapping=qt,s.selectTeamById=Hn,s.selectTeamMembershipById=sp,s.selectTeamMemberships=Gn,s.selectTeamMembershipsMapping=tp,s.selectTeams=rp,s.selectTeamsByIds=Eg,s.selectTeamsMapping=Nn,s.selectTeamsOfOrganization=Vg,s.selectUploadUrl=Ju,s.selectUserById=Kh,s.selectUsers=fn,s.selectUsersByIds=qT,s.selectUsersMapping=Yt,s.selectUsersOfOrganization=GT,s.selectUsersOfProject=sg,s.selectUsersOfTeam=_g,s.setActiveProjectFileId=Um,s.setAsset=Uf,s.setAssetAttachment=Tc,s.setAssetAttachments=lA,s.setAssetProcedure=JA,s.setAssetProcedureAttachment=Ec,s.setAssetProcedureAttachments=pA,s.setAssetProcedureFieldValues=CA,s.setAssetProcedureFieldValuesAttachment=jA,s.setAssetProcedureFieldValuesAttachments=qA,s.setAssetProcedureFieldValuesMany=kA,s.setAssetProcedureFields=OA,s.setAssetProcedureFieldsAttachment=SA,s.setAssetProcedureFieldsAttachments=IA,s.setAssetProcedureFieldsMany=_A,s.setAssetProcedureInstance=LA,s.setAssetProcedureInstances=NA,s.setAssetProcedureStep=Xr,s.setAssetProcedureStepFieldValues=Ff,s.setAssetProcedureStepFieldValuesAttachment=Sf,s.setAssetProcedureStepFieldValuesAttachments=If,s.setAssetProcedureStepFieldValuesMany=Pf,s.setAssetProcedureStepFields=uf,s.setAssetProcedureStepFieldsAttachment=tf,s.setAssetProcedureStepFieldsAttachments=sf,s.setAssetProcedureStepFieldsMany=of,s.setAssetProcedureSteps=vf,s.setAssetProcedures=XA,s.setAssetStage=pd,s.setAssetStageCompletion=kf,s.setAssetStageCompletions=Bf,s.setAssetStages=$f,s.setAssetType=Uy,s.setAssetTypeAttachment=Id,s.setAssetTypeAttachments=Jf,s.setAssetTypeFieldValues=Iy,s.setAssetTypeFieldValuesAttachment=py,s.setAssetTypeFieldValuesAttachments=Ay,s.setAssetTypeFieldValuesMany=Ty,s.setAssetTypeFields=cy,s.setAssetTypeFieldsAttachment=xf,s.setAssetTypeFieldsAttachments=ey,s.setAssetTypeFieldsMany=ry,s.setAssetTypeIdentifier=Py,s.setAssetTypeIdentifierValue=My,s.setAssetTypeIdentifierValues=Ey,s.setAssetTypeIdentifiers=Oy,s.setAssetTypes=Dy,s.setAssets=Df,s.setCategories=Zy,s.setCategory=Ky,s.setConversation=fc,s.setConversations=aA,s.setCurrentUser=VT,s.setDocumentAttachment=Ru,s.setDocumentAttachments=tS,s.setDocuments=Uu,s.setEmailDomain=dS,s.setEmailDomains=uS,s.setForm=BS,s.setFormIdentifier=fS,s.setFormIdentifierValue=bS,s.setFormIdentifierValues=FS,s.setFormIdentifiers=yS,s.setFormRevision=So,s.setFormRevisionAttachment=wS,s.setFormRevisionAttachments=MS,s.setFormRevisions=qS,s.setFormSubmission=$t,s.setFormSubmissionAttachment=YS,s.setFormSubmissionAttachments=KS,s.setFormSubmissions=XS,s.setForms=GS,s.setGeoImage=pt,s.setGeoImages=No,s.setIsImportingProjectFile=zm,s.setIssue=II,s.setIssueAssociation=iI,s.setIssueAssociations=sI,s.setIssueAttachment=rl,s.setIssueAttachments=rI,s.setIssueComment=qa,s.setIssueCommentAttachment=yl,s.setIssueCommentAttachments=oI,s.setIssueComments=_l,s.setIssueType=It,s.setIssueTypeAttachment=Dl,s.setIssueTypeAttachments=OI,s.setIssueTypeFieldValues=UI,s.setIssueTypeFieldValuesAttachment=XI,s.setIssueTypeFieldValuesAttachments=QI,s.setIssueTypeFieldValuesMany=DI,s.setIssueTypeFields=$I,s.setIssueTypeFieldsAttachment=wI,s.setIssueTypeFieldsAttachments=MI,s.setIssueTypeFieldsMany=LI,s.setIssueTypeIdentifier=iT,s.setIssueTypeIdentifierValue=uT,s.setIssueTypeIdentifierValues=oT,s.setIssueTypeIdentifiers=aT,s.setIssueTypes=fT,s.setIssueUpdate=bT,s.setIssueUpdates=FT,s.setIssues=TI,s.setLoggedIn=fu,s.setOrganization=LT,s.setOrganizationAccess=UT,s.setOrganizationAccesses=DT,s.setOrganizations=$T,s.setProfilePicture=jT,s.setProject=pg,s.setProjectAccess=xT,s.setProjectAccesses=eg,s.setProjectAttachment=gm,s.setProjectAttachments=bm,s.setProjectFile=ng,s.setProjectFiles=cg,s.setProjects=mg,s.setRehydrated=gg,s.setTeam=gt,s.setTeamMembership=kn,s.setTeamMemberships=Qm,s.setTeams=vg,s.setTokens=Ly,s.setUploadUrl=Zu,s.setUser=RT,s.setUsers=_T,s.shallowEqual=Cp,s.slugify=xp,s.spacesToDashesLower=Qp,s.teamMembershipReducer=ep,s.teamMembershipSlice=Cn,s.teamReducer=dp,s.teamSlice=$n,s.toFileNameSafeString=Xp,s.toOfflineIdRecord=lc,s.truncate=eA,s.updateAsset=rt,s.updateAssetAttachment=hA,s.updateAssetAttachments=gc,s.updateAssetProcedure=at,s.updateAssetProcedureAttachment=AA,s.updateAssetProcedureAttachments=Vc,s.updateAssetProcedureFieldValues=st,s.updateAssetProcedureFieldValuesAttachment=zA,s.updateAssetProcedureFieldValuesAttachments=sr,s.updateAssetProcedureFieldValuesMany=or,s.updateAssetProcedureFields=Jc,s.updateAssetProcedureFieldsAttachment=TA,s.updateAssetProcedureFieldsAttachments=$c,s.updateAssetProcedureFieldsMany=RA,s.updateAssetProcedureInstance=it,s.updateAssetProcedureInstances=$A,s.updateAssetProcedureStep=Mt,s.updateAssetProcedureStepFieldValues=ct,s.updateAssetProcedureStepFieldValuesAttachment=Tf,s.updateAssetProcedureStepFieldValuesAttachments=Dr,s.updateAssetProcedureStepFieldValuesMany=Hr,s.updateAssetProcedureStepFields=nt,s.updateAssetProcedureStepFieldsAttachment=af,s.updateAssetProcedureStepFieldsAttachments=Rr,s.updateAssetProcedureStepFieldsMany=lf,s.updateAssetProcedureSteps=Mf,s.updateAssetProcedures=KA,s.updateAssetStage=jt,s.updateAssetStageCompletion=rd,s.updateAssetStageCompletions=dd,s.updateAssetStages=Nf,s.updateAssetType=lt,s.updateAssetTypeAttachment=Xf,s.updateAssetTypeAttachments=Td,s.updateAssetTypeFieldValues=dt,s.updateAssetTypeFieldValuesAttachment=fy,s.updateAssetTypeFieldValuesAttachments=Nd,s.updateAssetTypeFieldValuesMany=Qd,s.updateAssetTypeFields=Cd,s.updateAssetTypeFieldsAttachment=ty,s.updateAssetTypeFieldsAttachments=Md,s.updateAssetTypeFieldsMany=dy,s.updateAssetTypeIdentifier=ut,s.updateAssetTypeIdentifierValue=ot,s.updateAssetTypeIdentifierValues=Vy,s.updateAssetTypeIdentifiers=_y,s.updateAssetTypes=ky,s.updateAssets=zf,s.updateCategories=Jy,s.updateCategory=Tu,s.updateConversation=yc,s.updateConversations=nA,s.updateDocumentAttachment=sS,s.updateDocumentAttachments=vu,s.updateDocuments=Qe,s.updateEmailDomain=oS,s.updateEmailDomains=lS,s.updateForm=$S,s.updateFormIdentifier=ht,s.updateFormIdentifierValue=mt,s.updateFormIdentifierValues=PS,s.updateFormIdentifiers=SS,s.updateFormRevision=zS,s.updateFormRevisionAttachment=ES,s.updateFormRevisionAttachments=lo,s.updateFormRevisions=US,s.updateFormSubmission=Co,s.updateFormSubmissionAttachment=ZS,s.updateFormSubmissionAttachments=Mo,s.updateFormSubmissions=QS,s.updateForms=LS,s.updateGeoImage=Yo,s.updateGeoImages=eI,s.updateIssue=Lt,s.updateIssueAssociation=el,s.updateIssueAssociations=aI,s.updateIssueAttachment=dI,s.updateIssueAttachments=dl,s.updateIssueComment=AI,s.updateIssueCommentAttachment=lI,s.updateIssueCommentAttachments=Sl,s.updateIssueComments=fI,s.updateIssueType=wh,s.updateIssueTypeAttachment=_I,s.updateIssueTypeAttachments=Cl,s.updateIssueTypeFieldValues=ft,s.updateIssueTypeFieldValuesAttachment=xI,s.updateIssueTypeFieldValuesAttachments=hh,s.updateIssueTypeFieldValuesMany=CI,s.updateIssueTypeFields=ch,s.updateIssueTypeFieldsAttachment=EI,s.updateIssueTypeFieldsAttachments=Kl,s.updateIssueTypeFieldsMany=NI,s.updateIssueTypeIdentifier=yt,s.updateIssueTypeIdentifierValue=St,s.updateIssueTypeIdentifierValues=lT,s.updateIssueTypeIdentifiers=nT,s.updateIssueTypes=yT,s.updateIssueUpdate=PT,s.updateIssueUpdates=OT,s.updateIssues=gI,s.updateOrganization=am,s.updateOrganizationAccess=Kt,s.updateOrganizationAccesses=CT,s.updateOrganizations=HT,s.updateProject=Lm,s.updateProjectAccess=Tt,s.updateProjectAccesses=Am,s.updateProjectAttachment=ag,s.updateProjectAttachments=Fm,s.updateProjectFile=Vn,s.updateProjectFiles=dg,s.updateProjects=fg,s.updateTeam=cp,s.updateTeamMembership=Fg,s.updateTeamMemberships=Pg,s.updateTeams=wg,s.updateUser=MT,s.updateUsers=wT,s.useSelectorBuilder=Ug,s.userReducer=Wh,s.userSlice=An,s.versioningReducer=op,s.versioningSlice=up,Object.defineProperty(s,Symbol.toStringTag,{value:"Module"})});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { OvermapRootState } from '../../store';
|
|
2
|
-
import { FormSubmission, FormSubmissionAttachment,
|
|
2
|
+
import { FormSubmission, FormSubmissionAttachment, Organization } from '../../typings';
|
|
3
3
|
import { BaseSDK } from '../base';
|
|
4
4
|
import { OptimisticMultipleModelResult } from '../typings';
|
|
5
5
|
import { BaseUploadService } from './BaseUploadService';
|
|
@@ -10,5 +10,5 @@ export declare abstract class FormSubmissionAttachmentService<TState extends Ove
|
|
|
10
10
|
file: File;
|
|
11
11
|
}[]): Promise<OptimisticMultipleModelResult<FormSubmissionAttachment>>;
|
|
12
12
|
bulkDelete(uuids: FormSubmissionAttachment["uuid"][]): Promise<void>;
|
|
13
|
-
refreshStore(
|
|
13
|
+
refreshStore(organizationUuid: Organization["uuid"], signal?: AbortSignal): Promise<FormSubmissionAttachment[]>;
|
|
14
14
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { OvermapRootState } from '../../store';
|
|
2
|
-
import { FormSubmission,
|
|
2
|
+
import { FormSubmission, Organization, Payload, UUID } from '../../typings';
|
|
3
3
|
import { BaseSDK } from '../base';
|
|
4
4
|
import { OptimisticModelResult } from '../typings';
|
|
5
5
|
import { BaseUploadService } from './BaseUploadService';
|
|
@@ -7,5 +7,5 @@ export declare abstract class FormSubmissionService<TState extends OvermapRootSt
|
|
|
7
7
|
add(payload: Payload<FormSubmission>): OptimisticModelResult<FormSubmission>;
|
|
8
8
|
update(payload: UUID<Partial<Payload<FormSubmission>>>): OptimisticModelResult<FormSubmission>;
|
|
9
9
|
delete(uuid: FormSubmission["uuid"]): Promise<undefined>;
|
|
10
|
-
refreshStore(
|
|
10
|
+
refreshStore(organizationUuid: Organization["uuid"], signal?: AbortSignal): Promise<FormSubmission[]>;
|
|
11
11
|
}
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"description": "Core functionality for Overmap",
|
|
4
4
|
"author": "Wôrdn Inc.",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
|
-
"version": "1.0.78-org-form-submissions.
|
|
6
|
+
"version": "1.0.78-org-form-submissions.1",
|
|
7
7
|
"type": "module",
|
|
8
8
|
"main": "dist/overmap-core.umd.cjs",
|
|
9
9
|
"module": "dist/overmap-core.js",
|