@overmap-ai/core 1.0.78-view-sets.27 → 1.0.78-view-sets-cleanup.0

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